diff options
Diffstat (limited to 'Source/SPDatabaseDocument.m')
-rw-r--r-- | Source/SPDatabaseDocument.m | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/Source/SPDatabaseDocument.m b/Source/SPDatabaseDocument.m index 6091ed3b..2a10b900 100644 --- a/Source/SPDatabaseDocument.m +++ b/Source/SPDatabaseDocument.m @@ -2691,14 +2691,12 @@ static int64_t SPDatabaseDocumentInstanceCounter = 0; { [parentWindow endEditingFor:nil]; #ifndef SP_CODA - switch ([tableTabView indexOfTabViewItem:[tableTabView selectedTabViewItem]]) { + switch ([self currentlySelectedView]) { - // Table structure view - case 0: + case SPTableViewStructure: return [tableSourceInstance saveRowOnDeselect]; - // Table content view - case 1: + case SPTableViewContent: return [tableContentInstance saveRowOnDeselect]; default: @@ -2884,6 +2882,35 @@ static int64_t SPDatabaseDocumentInstanceCounter = 0; return [dbInfo autorelease]; } +/** + * Retrieve the view that is currently selected from the database + * + * MUST BE CALLED ON THE UI THREAD! + */ +- (SPTableViewType)currentlySelectedView +{ + SPTableViewType theView = NSNotFound; + + // -selectedTabViewItem is a UI method according to Xcode 9.2! + NSString *viewName = [[tableTabView selectedTabViewItem] identifier]; + + if ([viewName isEqualToString:@"source"]) { + theView = SPTableViewStructure; + } else if ([viewName isEqualToString:@"content"]) { + theView = SPTableViewContent; + } else if ([viewName isEqualToString:@"customQuery"]) { + theView = SPTableViewCustomQuery; + } else if ([viewName isEqualToString:@"status"]) { + theView = SPTableViewStatus; + } else if ([viewName isEqualToString:@"relations"]) { + theView = SPTableViewRelations; + } else if ([viewName isEqualToString:@"triggers"]) { + theView = SPTableViewTriggers; + } + + return theView; +} + #pragma mark - #pragma mark Notification center methods @@ -3736,7 +3763,7 @@ static int64_t SPDatabaseDocumentInstanceCounter = 0; // If Custom Query Tab is active the textView will handle printDocument by itself // if it is first responder; otherwise allow to print the Query Result table even // if no db/table is selected - [tableTabView indexOfTabViewItem:[tableTabView selectedTabViewItem]] == 2); + [self currentlySelectedView] == SPTableViewCustomQuery); } #endif @@ -4687,7 +4714,7 @@ static int64_t SPDatabaseDocumentInstanceCounter = 0; [sessionState setObject:[self table] forKey:@"table"]; NSString *currentlySelectedViewName; - switch ([spHistoryControllerInstance currentlySelectedView]) { + switch ([self currentlySelectedView]) { case SPTableViewStructure: currentlySelectedViewName = @"SP_VIEW_STRUCTURE"; break; @@ -5921,7 +5948,7 @@ static int64_t SPDatabaseDocumentInstanceCounter = 0; // Locate the sheet "Reset Auto Increment" just centered beneath the chosen index row // if Structure Pane is active - if([tableTabView indexOfTabViewItem:[tableTabView selectedTabViewItem]] == 0 + if([self currentlySelectedView] == SPTableViewStructure && [[sheet title] isEqualToString:@"Reset Auto Increment"]) { id it = [tableSourceInstance valueForKeyPath:@"indexesTableView"]; |