From 842e85a37b698be1245dee0948a1abd99973638c Mon Sep 17 00:00:00 2001 From: Bibiko Date: Wed, 1 Dec 2010 21:42:58 +0000 Subject: =?UTF-8?q?=E2=80=A2=20Bundle=20Editor=20/=20Bundle=20commands=20-?= =?UTF-8?q?=20enabled=20trigger=20support=20to=20run=20a=20command=20if=20?= =?UTF-8?q?db,=20table,=20or=20table=20row=20was=20changed=20-=20HTML=20ou?= =?UTF-8?q?tput=20window=20will=20be=20ordered=20out=20without=20making=20?= =?UTF-8?q?it=20the=20key=20window=20to=20remain=20the=20first=20responder?= =?UTF-8?q?=20=E2=80=A2=20SPTableTExtFieldCell=20-=20forgotten=20to=20remo?= =?UTF-8?q?ve=20expansionFrameWithFrame:=20method?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Source/SPDatabaseDocument.m | 36 ++++++++++++++++++++---------------- 1 file changed, 20 insertions(+), 16 deletions(-) (limited to 'Source/SPDatabaseDocument.m') diff --git a/Source/SPDatabaseDocument.m b/Source/SPDatabaseDocument.m index 02889b5e..2729932f 100644 --- a/Source/SPDatabaseDocument.m +++ b/Source/SPDatabaseDocument.m @@ -5301,6 +5301,19 @@ [[parentWindow onMainThread] makeFirstResponder:[tablesListInstance valueForKeyPath:@"tablesListView"]]; } + // If a the table has changed, update the selection + if (![targetItemName isEqualToString:[self table]]) { + if (targetItemName) { + [tablesListInstance selectItemWithName:targetItemName]; + } else { + [[tablesListInstance onMainThread] setTableListSelectability:YES]; + [[[tablesListInstance valueForKey:@"tablesListView"] onMainThread] deselectAll:self]; + [[tablesListInstance onMainThread] setTableListSelectability:NO]; + } + } + + [self endTask]; + NSArray *triggeredCommands = [[NSApp delegate] bundleCommandsForTrigger:SPBundleTriggerActionDatabaseChanged]; for(NSString* cmdPath in triggeredCommands) { NSArray *data = [cmdPath componentsSeparatedByString:@"|"]; @@ -5308,28 +5321,19 @@ [aMenuItem setTag:0]; [aMenuItem setToolTip:[data objectAtIndex:0]]; if([[data objectAtIndex:1] isEqualToString:SPBundleScopeGeneral]) { - ; - } - else if([[data objectAtIndex:1] isEqualToString:SPBundleScopeInputField]) { - ; + [[[NSApp delegate] onMainThread] executeBundleItemForApp:aMenuItem]; } else if([[data objectAtIndex:1] isEqualToString:SPBundleScopeDataTable]) { - ; + if([[[NSApp mainWindow] firstResponder] isKindOfClass:[SPCopyTable class]]) + [[[[NSApp mainWindow] firstResponder] onMainThread] executeBundleItemForDataTable:aMenuItem]; } - } - - // If a the table has changed, update the selection - if (![targetItemName isEqualToString:[self table]]) { - if (targetItemName) { - [tablesListInstance selectItemWithName:targetItemName]; - } else { - [[tablesListInstance onMainThread] setTableListSelectability:YES]; - [[[tablesListInstance valueForKey:@"tablesListView"] onMainThread] deselectAll:self]; - [[tablesListInstance onMainThread] setTableListSelectability:NO]; + else if([[data objectAtIndex:1] isEqualToString:SPBundleScopeInputField]) { + if([[[NSApp mainWindow] firstResponder] isKindOfClass:[NSTextView class]]) + [[[[NSApp mainWindow] firstResponder] onMainThread] executeBundleItemForInputField:aMenuItem]; } } - [self endTask]; [taskPool drain]; + } @end -- cgit v1.2.3