Skip to content

Commit

Permalink
Pass the trigger type as the indirect argument.
Browse files Browse the repository at this point in the history
  • Loading branch information
tiennou committed Jan 23, 2013
1 parent b654fb3 commit 0aaec29
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 6 deletions.
26 changes: 22 additions & 4 deletions Quicksilver/Code-QuickStepCore/QSCommand.m
Expand Up @@ -23,6 +23,9 @@

#import "QSTriggersPrefPane.h"

/* I know that sounds stupid, but if trigger themselves are one day made QSObjects then we'll be glad */
#define QSTriggerTypeType @"QSTriggerTypeType"

@interface QSObject (QSCommandCompletionProtocol)
- (void)completeAndExecuteCommand:(QSCommand *)command;
@end
Expand All @@ -45,9 +48,22 @@ - (BOOL)loadIconForObject:(QSObject *)object {
}

- (NSArray *)validIndirectObjectsForAction:(NSString *)action directObject:(QSObject *)dObject {
if ([action isEqualToString:@"QSCommandSaveAction"])
if ([action isEqualToString:@"QSCommandSaveAction"]) {
return nil;
else
} else if ([action isEqualToString:@"QSCommandAddTriggerAction"]) {
NSMutableArray *triggerTypesObjects = [NSMutableArray array];
NSDictionary *triggerManagers = [QSReg instancesForTable:@"QSTriggerManagers"];
for (NSString *key in triggerManagers) {
QSTriggerManager *manager = [triggerManagers objectForKey:key];
QSObject *triggerType = [QSObject makeObjectWithIdentifier:key];
[triggerType setPrimaryType:QSTriggerTypeType];
[triggerType setIcon:[manager image]];
[triggerType setName:[manager name]];
[triggerType setObject:key forType:QSTriggerTypeType];
[triggerTypesObjects addObject:triggerType];
}
return triggerTypesObjects;
} else
return [NSArray arrayWithObject:[QSObject textProxyObjectWithDefaultValue:@""]];
}

Expand Down Expand Up @@ -123,11 +139,13 @@ - (QSObject *)saveCommand:(QSObject *)dObject toPath:(QSObject *)iObject {
return [QSObject fileObjectWithPath:destination];
}

- (QSObject*)addTrigger:(QSObject *)dObject {
- (QSObject*)addTrigger:(QSObject *)dObject withType:(QSObject *)type {
QSCommand *command = (QSCommand*)dObject;

NSString *typeString = [type objectForType:QSTriggerTypeType];

NSMutableDictionary *info = [NSMutableDictionary dictionaryWithCapacity:5];
[info setObject:@"QSHotKeyTrigger" forKey:@"type"];
[info setObject:typeString forKey:@"type"];
[info setObject:[NSNumber numberWithBool:YES] forKey:kItemEnabled];

if (command)
Expand Down
Expand Up @@ -811,7 +811,7 @@
<string>qs.command</string>
</array>
<key>actionSelector</key>
<string>addTrigger:</string>
<string>addTrigger:withType:</string>
<key>icon</key>
<string>Quicksilver</string>
</dict>
Expand Down
Expand Up @@ -145,7 +145,7 @@
<key>QSCommandSaveAction</key>
<string>Save Command to File...</string>
<key>QSCommandAddTriggerAction</key>
<string>Add Trigger</string>
<string>Add Trigger</string>
<key>QSCommandExecuteAction</key>
<string>Run</string>
<key>QSCommandExecuteAfterDelayAction</key>
Expand Down

0 comments on commit 0aaec29

Please sign in to comment.