diff options
author | Bibiko <bibiko@eva.mpg.de> | 2010-11-23 14:20:26 +0000 |
---|---|---|
committer | Bibiko <bibiko@eva.mpg.de> | 2010-11-23 14:20:26 +0000 |
commit | cc5aa6c295b6072b5feedc1b912df264c34a9edb (patch) | |
tree | cd247e012e95c137dc5c6bf77cbad048e9daf0f3 /Source/SPCopyTable.m | |
parent | 9f5c7db05e8a999df38b200d93031b1475adf5dc (diff) | |
download | sequelpro-cc5aa6c295b6072b5feedc1b912df264c34a9edb.tar.gz sequelpro-cc5aa6c295b6072b5feedc1b912df264c34a9edb.tar.bz2 sequelpro-cc5aa6c295b6072b5feedc1b912df264c34a9edb.zip |
• Bundle Editor
- fixed gui arragement
- suppress error message if no ouptut key found in command.plist
• added sequelpro://ID@/passToDoc/SelectTableRows/1/3/4/.. scheme command which selects given rows in current table if a SPCopyTable is the first responder; not valid given rows are ignored
• added SP_SELECTED_ROW_INDICES as passed shell variable for Data Table scope
Diffstat (limited to 'Source/SPCopyTable.m')
-rw-r--r-- | Source/SPCopyTable.m | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/Source/SPCopyTable.m b/Source/SPCopyTable.m index 28fcb476..4de00d00 100644 --- a/Source/SPCopyTable.m +++ b/Source/SPCopyTable.m @@ -802,6 +802,26 @@ NSInteger MENU_EDIT_COPY_AS_SQL = 2003; } +- (void)selectTableRows:(NSArray*)rowIndices +{ + + if(!rowIndices || ![rowIndices count]) return; + + NSMutableIndexSet *selection = [NSMutableIndexSet indexSet]; + NSInteger rows = [[self delegate] numberOfRowsInTableView:self]; + NSUInteger i; + if(rows > 0) { + for(NSString* idx in rowIndices) { + i = [idx longLongValue]; + if(i >= 0 && i < rows) + [selection addIndex:i]; + } + + [self selectRowIndexes:selection byExtendingSelection:NO]; + } + +} + - (IBAction)executeBundleItemForDataTable:(id)sender { NSInteger idx = [sender tag] - 1000000; @@ -857,6 +877,17 @@ NSInteger MENU_EDIT_COPY_AS_SQL = 2003; if([[self delegate] respondsToSelector:@selector(usedQuery)] && [[self delegate] usedQuery]) [env setObject:[[self delegate] usedQuery] forKey:@"SP_USED_QUERY_FOR_TABLE"]; + if([self numberOfSelectedRows]) { + NSMutableArray *sel = [NSMutableArray array]; + NSIndexSet *selectedRows = [self selectedRowIndexes]; + NSUInteger rowIndex = [selectedRows firstIndex]; + while ( rowIndex != NSNotFound ) { + [sel addObject:[NSString stringWithFormat:@"%ld", rowIndex]]; + rowIndex = [selectedRows indexGreaterThanIndex:rowIndex]; + } + [env setObject:[sel componentsJoinedByString:@"\t"] forKey:@"SP_SELECTED_ROW_INDICES"]; + } + NSError *inputFileError = nil; NSString *input = @""; if([inputAction isEqualToString:SPBundleInputSourceSelectedTableRowsAsTab]) { @@ -896,8 +927,8 @@ NSInteger MENU_EDIT_COPY_AS_SQL = 2003; [[NSFileManager defaultManager] removeItemAtPath:bundleInputFilePath error:nil]; - if(err == nil && output && [cmdData objectForKey:SPBundleFileOutputActionKey]) { - if([[cmdData objectForKey:SPBundleFileOutputActionKey] length] + if(err == nil && output) { + if([cmdData objectForKey:SPBundleFileOutputActionKey] && [[cmdData objectForKey:SPBundleFileOutputActionKey] length] && ![[cmdData objectForKey:SPBundleFileOutputActionKey] isEqualToString:SPBundleOutputActionNone]) { NSString *action = [[cmdData objectForKey:SPBundleFileOutputActionKey] lowercaseString]; NSPoint pos = [NSEvent mouseLocation]; |