aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPCopyTable.m
diff options
context:
space:
mode:
authorBibiko <bibiko@eva.mpg.de>2010-11-23 14:20:26 +0000
committerBibiko <bibiko@eva.mpg.de>2010-11-23 14:20:26 +0000
commitcc5aa6c295b6072b5feedc1b912df264c34a9edb (patch)
treecd247e012e95c137dc5c6bf77cbad048e9daf0f3 /Source/SPCopyTable.m
parent9f5c7db05e8a999df38b200d93031b1475adf5dc (diff)
downloadsequelpro-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.m35
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];