From fe555b6d511a51f3bdfb5c0a2b00a3206993076b Mon Sep 17 00:00:00 2001 From: stuconnolly Date: Tue, 1 May 2012 11:52:33 +0000 Subject: Bring outline view branch up to date with trunk (r3594:r3602). --- Interfaces/English.lproj/IndexesView.xib | 3284 ++++++++++++++++++++++-------- Source/SPIndexesController.h | 1 + Source/SPIndexesController.m | 160 +- 3 files changed, 2510 insertions(+), 935 deletions(-) diff --git a/Interfaces/English.lproj/IndexesView.xib b/Interfaces/English.lproj/IndexesView.xib index 2489b11c..2efa5785 100644 --- a/Interfaces/English.lproj/IndexesView.xib +++ b/Interfaces/English.lproj/IndexesView.xib @@ -2,9 +2,9 @@ 1050 - 10H574 - 788 - 1038.35 + 10K549 + 851 + 1038.36 461.00 YES @@ -15,17 +15,18 @@ YES - 788 + 851 1.2.5 YES + YES - com.apple.InterfaceBuilder.CocoaPlugin com.brandonwalkin.BWToolkit + com.apple.InterfaceBuilder.CocoaPlugin PluginDependencyRecalculationVersion @@ -52,7 +53,7 @@ View - {1.79769e+308, 1.79769e+308} + {3.40282e+38, 3.40282e+38} {267, 274} @@ -64,7 +65,6 @@ 268 {{83, 233}, {167, 22}} - YES -2076049856 @@ -84,23 +84,23 @@ 400 75 - + - FULLTEXT + UNIQUE 1048576 2147483647 1 - + NSImage NSMenuCheckmark - + NSImage NSMenuMixedState _popUpItemAction: - 3 + 2 YES @@ -116,8 +116,8 @@ 1048576 2147483647 - - + + _popUpItemAction: @@ -127,28 +127,16 @@ 1048576 2147483647 - - + + _popUpItemAction: 1 - - - UNIQUE - - 1048576 - 2147483647 - - - _popUpItemAction: - 2 - - - + - 3 + 2 3 YES YES @@ -160,7 +148,6 @@ 268 {{86, 211}, {161, 19}} - YES -1267597759 @@ -195,7 +182,6 @@ 268 {{17, 213}, {64, 14}} - YES 67239424 @@ -209,7 +195,7 @@ controlColor 3 - MC42NjY2NjY2NjY3AA + MC42NjY2NjY2ODY1AA @@ -225,7 +211,6 @@ 268 {{17, 238}, {64, 14}} - YES 67239424 @@ -252,14 +237,12 @@ 256 {267, 80} - YES 256 {267, 17} - @@ -267,13 +250,12 @@ -2147483392 {{224, 0}, {16, 17}} - YES name - 264 + 185 40 1000 @@ -396,9 +378,76 @@ 337772096 - 133120 + -2147350528 Text Cell + + + YES + + YES + allowsFloats + formatterBehavior + locale + minimum + negativeInfinitySymbol + nilSymbol + positiveInfinitySymbol + + + YES + + + + + + + -∞ + + +∞ + + + # + # + + + + + + + + NaN + + YES + + YES + + + YES + + + + + + 0 + 0 + YES + NO + 1 + AAAAAAAAAAAAAAAAAAAAAA + + + 3 + YES + YES + YES + + . + , + NO + NO + YES + optional @@ -406,7 +455,6 @@ YES - YES 3 @@ -427,7 +475,6 @@ {{1, 17}, {267, 80}} - @@ -438,7 +485,6 @@ -2147483392 {{224, 17}, {15, 102}} - _doScroller: 0.80263155698776245 @@ -448,7 +494,6 @@ -2147483392 {{-100, -100}, {225, 11}} - 257 _doScroller: @@ -463,7 +508,6 @@ {{1, 0}, {267, 17}} - @@ -473,7 +517,6 @@ {{-1, 97}, {269, 98}} - 530 @@ -501,13 +544,12 @@ 268 - {{21, 42}, {78, 14}} + {{21, 42}, {116, 14}} - YES 68288064 - 272761856 + 71435264 Storage Type: @@ -518,9 +560,8 @@ 268 - {{101, 37}, {162, 22}} + {{139, 37}, {124, 22}} - YES -2076049856 @@ -540,8 +581,8 @@ 1048576 2147483647 1 - - + + _popUpItemAction: @@ -558,8 +599,8 @@ 2147483647 - - + + _popUpItemAction: @@ -569,8 +610,8 @@ 1048576 2147483647 - - + + _popUpItemAction: @@ -580,8 +621,8 @@ 1048576 2147483647 - - + + _popUpItemAction: @@ -601,13 +642,12 @@ 268 - {{15, 16}, {84, 14}} + {{15, 16}, {122, 14}} - YES 68288064 - 272761856 + 71435264 Key Block Size: @@ -618,9 +658,8 @@ 268 - {{104, 14}, {63, 19}} + {{142, 14}, {63, 19}} - YES -1804468671 @@ -646,9 +685,7 @@ YES - - - + -∞ @@ -667,15 +704,7 @@ NaN - - YES - - YES - - - YES - - + @@ -700,12 +729,10 @@ {{1, 1}, {278, 71}} - {{-5, -4}, {280, 73}} - {0, 0} 67239424 @@ -729,7 +756,6 @@ 268 {{-83, 41}, {100, 18}} - YES 67239424 @@ -755,7 +781,6 @@ {{-2, -30}, {272, 67}} - NSView @@ -763,7 +788,6 @@ 292 {{0, 40}, {29, 26}} - YES 67239424 @@ -785,7 +809,6 @@ 292 {{24, 41}, {214, 22}} - YES -2080244224 @@ -811,7 +834,6 @@ 289 {{152, 13}, {100, 28}} - 1 YES @@ -838,7 +860,6 @@ 289 {{54, 13}, {100, 28}} - YES 67239424 @@ -865,7 +886,6 @@ 268 {{1, 0}, {32, 24}} - YES 67239424 @@ -890,7 +910,6 @@ 268 {{32, 0}, {32, 24}} - YES 604110336 @@ -913,7 +932,6 @@ {{-2, 74}, {270, 24}} - NO NO NO @@ -922,11 +940,10 @@ {267, 274} - {{0, 0}, {1680, 1028}} {267, 296} - {1.79769e+308, 1.79769e+308} + {3.40282e+38, 3.40282e+38} @@ -937,8 +954,8 @@ Remove Field 2147483647 - - + + @@ -1310,7 +1327,6 @@ YES - @@ -1321,11 +1337,6 @@ - - 18 - - - 19 @@ -1399,6 +1410,10 @@ 59 + + YES + + @@ -1663,6 +1678,11 @@ + + 139 + + + @@ -1699,6 +1719,9 @@ 136.IBPluginDependency 138.IBPluginDependency 138.ImportedFromIB2 + 139.IBNumberFormatterBehaviorMetadataKey + 139.IBNumberFormatterLocalizesFormatMetadataKey + 139.IBPluginDependency 14.IBEditorWindowLastContentRect 14.IBPluginDependency 14.ImportedFromIB2 @@ -1706,8 +1729,6 @@ 16.ImportedFromIB2 17.IBPluginDependency 17.ImportedFromIB2 - 18.IBPluginDependency - 18.ImportedFromIB2 19.IBPluginDependency 23.IBPluginDependency 24.IBPluginDependency @@ -1806,7 +1827,7 @@ com.apple.InterfaceBuilder.CocoaPlugin - {{663, 479}, {142, 23}} + {{944, 348}, {142, 23}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1818,7 +1839,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - P4AAAL+AAABC0AAAwgwAAA + P4AAAL+AAABC0AAAwfgAAA com.apple.InterfaceBuilder.CocoaPlugin @@ -1826,9 +1847,10 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{683, 655}, {167, 71}} + + com.apple.InterfaceBuilder.CocoaPlugin - + {{536, 557}, {167, 54}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1838,9 +1860,9 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{611, 471}, {267, 274}} + {{464, 356}, {267, 274}} com.apple.InterfaceBuilder.CocoaPlugin - {{611, 471}, {267, 274}} + {{464, 356}, {267, 274}} @@ -1894,7 +1916,7 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - {{772, 286}, {168, 64}} + {{695, 433}, {162, 64}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -1922,7 +1944,7 @@ - 138 + 139 @@ -1945,21 +1967,21 @@ NSObject IBProjectSource - Frameworks/MCPKit/MCPFoundationKit/MCPNull.h + Frameworks/PSMTabBar/PSMTabBarCell.h NSObject IBProjectSource - Frameworks/PSMTabBar/PSMTabBarCell.h + Frameworks/PSMTabBar/PSMTabBarControl.h NSObject IBProjectSource - Frameworks/PSMTabBar/PSMTabBarControl.h + Frameworks/PSMTabBar/PSMTabBarController.h @@ -1997,6 +2019,13 @@ Source/SPNotLoaded.h + + NSObject + + IBProjectSource + Source/SPObjectAdditions.h + + NSObject @@ -2167,63 +2196,86 @@ - SPDatabaseDocument + SPCopyTable + SPTableView + + YES + + YES + copy: + executeBundleItemForDataTable: + + + YES + id + id + + + + YES + + YES + copy: + executeBundleItemForDataTable: + + + YES + + copy: + id + + + executeBundleItemForDataTable: + id + + + + + mySQLConnection + id + + + mySQLConnection + + mySQLConnection + id + + IBProjectSource - Source/SPConnectionDelegate.h + Source/SPCopyTable.h - SPDatabaseDocument + SPCustomQuery NSObject YES YES - addConnectionToFavorites: - addDatabase: - analyzeTable: - backForwardInHistory: - cancelTask: - checkTable: - checksumTable: - chooseDatabase: - chooseEncoding: - closePanelSheet: - closePasswordSheet: + chooseQueryFavorite: + chooseQueryHistory: + clearQueryHistory: closeSheet: - copyChecksumFromSheet: - copyCreateTableSyntax: - copyCreateTableSyntaxFromSheet: - copyDatabase: - export: - exportSelectedTablesAs: - flushPrivileges: - flushTable: - focusOnTableContentFilter: - focusOnTableListFilter: - import: - importFromClipboard: - openCurrentConnectionInNewWindow: - openDatabaseInNewTab: - optimizeTable: - refreshTables: - removeDatabase: - renameDatabase: - repairTable: - saveConnectionSheet: - saveCreateSyntax: - setDatabases: - showConsole: - showCreateTableSyntax: - showMySQLHelp: - showNavigator: - showServerProcesses: - showServerVariables: - showUserManager: - toggleNavigator: - updateWindowTitle: - validateSaveConnectionAccessory: + copyQueryHistory: + filterQueryFavorites: + filterQueryHistory: + gearMenuItemSelected: + helpSearchFindNextInPage: + helpSearchFindPreviousInPage: + helpSegmentDispatcher: + helpSelectHelpTargetMySQL: + helpSelectHelpTargetPage: + helpSelectHelpTargetWeb: + helpTargetDispatcher: + runAllQueries: + runSelectedQueries: + saveQueryHistory: + showAutoHelpForCurrentWord: + showCompletionList: + showHelpForCurrentWord: + showHelpForSearchString: + toggleQueryInfoPaneCollapse: YES @@ -2249,256 +2301,130 @@ id id id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id + NSButton YES YES - addConnectionToFavorites: - addDatabase: - analyzeTable: - backForwardInHistory: - cancelTask: - checkTable: - checksumTable: - chooseDatabase: - chooseEncoding: - closePanelSheet: - closePasswordSheet: + chooseQueryFavorite: + chooseQueryHistory: + clearQueryHistory: closeSheet: - copyChecksumFromSheet: - copyCreateTableSyntax: - copyCreateTableSyntaxFromSheet: - copyDatabase: - export: - exportSelectedTablesAs: - flushPrivileges: - flushTable: - focusOnTableContentFilter: - focusOnTableListFilter: - import: - importFromClipboard: - openCurrentConnectionInNewWindow: - openDatabaseInNewTab: - optimizeTable: - refreshTables: - removeDatabase: - renameDatabase: - repairTable: - saveConnectionSheet: - saveCreateSyntax: - setDatabases: - showConsole: - showCreateTableSyntax: - showMySQLHelp: - showNavigator: - showServerProcesses: - showServerVariables: - showUserManager: - toggleNavigator: - updateWindowTitle: - validateSaveConnectionAccessory: + copyQueryHistory: + filterQueryFavorites: + filterQueryHistory: + gearMenuItemSelected: + helpSearchFindNextInPage: + helpSearchFindPreviousInPage: + helpSegmentDispatcher: + helpSelectHelpTargetMySQL: + helpSelectHelpTargetPage: + helpSelectHelpTargetWeb: + helpTargetDispatcher: + runAllQueries: + runSelectedQueries: + saveQueryHistory: + showAutoHelpForCurrentWord: + showCompletionList: + showHelpForCurrentWord: + showHelpForSearchString: + toggleQueryInfoPaneCollapse: YES - addConnectionToFavorites: + chooseQueryFavorite: id - addDatabase: + chooseQueryHistory: id - analyzeTable: + clearQueryHistory: id - backForwardInHistory: + closeSheet: id - cancelTask: + copyQueryHistory: id - checkTable: + filterQueryFavorites: id - checksumTable: + filterQueryHistory: id - chooseDatabase: + gearMenuItemSelected: id - chooseEncoding: + helpSearchFindNextInPage: id - closePanelSheet: + helpSearchFindPreviousInPage: id - closePasswordSheet: + helpSegmentDispatcher: id - closeSheet: + helpSelectHelpTargetMySQL: id - copyChecksumFromSheet: + helpSelectHelpTargetPage: id - copyCreateTableSyntax: + helpSelectHelpTargetWeb: id - copyCreateTableSyntaxFromSheet: - id - - - copyDatabase: - id - - - export: - id - - - exportSelectedTablesAs: - id - - - flushPrivileges: - id - - - flushTable: - id - - - focusOnTableContentFilter: - id - - - focusOnTableListFilter: - id - - - import: - id - - - importFromClipboard: - id - - - openCurrentConnectionInNewWindow: - id - - - openDatabaseInNewTab: - id - - - optimizeTable: - id - - - refreshTables: - id - - - removeDatabase: - id - - - renameDatabase: - id - - - repairTable: - id - - - saveConnectionSheet: - id - - - saveCreateSyntax: - id - - - setDatabases: - id - - - showConsole: - id - - - showCreateTableSyntax: + helpTargetDispatcher: id - showMySQLHelp: + runAllQueries: id - showNavigator: + runSelectedQueries: id - showServerProcesses: + saveQueryHistory: id - showServerVariables: + showAutoHelpForCurrentWord: id - showUserManager: + showCompletionList: id - toggleNavigator: + showHelpForCurrentWord: id - updateWindowTitle: + showHelpForSearchString: id - validateSaveConnectionAccessory: - id + toggleQueryInfoPaneCollapse: + NSButton @@ -2506,143 +2432,113 @@ YES YES - addDatabaseButton - chooseDatabaseButton - connectionErrorDialog - contentViewSplitter - copyDatabaseButton - copyDatabaseDataButton - copyDatabaseMessageField - createTableSyntaxTextField - createTableSyntaxTextView - createTableSyntaxWindow - customQueryInstance - customQueryTextView - databaseCopyNameField - databaseCopySheet - databaseDataInstance - databaseEncodingButton - databaseNameField - databaseRenameNameField - databaseRenameSheet - databaseSheet - dbTablesTableView + affectedRowsText + autohelpMenuItem + autoindentMenuItem + autopairMenuItem + autouppercaseKeywordsMenuItem + clearHistoryMenuItem + commentCurrentQueryMenuItem + commentLineOrSelectionMenuItem + completionListMenuItem + copyHistoryMenuItem + customQueryScrollView + customQueryView + editorFontMenuItem encodingPopUp - exportControllerInstance - extendedTableInfoInstance - favoritesButton - historyControl - inputTextWindow - inputTextWindowHeader - inputTextWindowMessage - inputTextWindowSecureTextField - listFilterField - parentView - queryProgressBar - renameDatabaseButton - renameDatabaseMessageField - saveConnectionAccessory - saveConnectionAutoConnect - saveConnectionEncrypt - saveConnectionEncryptString - saveConnectionIncludeData - saveConnectionIncludeQuery - saveConnectionSavePassword - saveConnectionSavePasswordAlert - sidebarGrabber - spHistoryControllerInstance - statusTableAccessoryView - statusTableCopyChecksum - statusTableView - statusValues - tableContentInstance - tableDataInstance - tableDumpInstance - tableInfoCollapseButton - tableInfoTable - tableListSplitter - tableRelationsInstance - tableSourceInstance - tableTabView - tableTriggersInstance + errorText + errorTextScrollView + helpNavigator + helpSearchField + helpSearchFieldCell + helpTargetSelector + helpWebView + helpWebViewWindow + multipleLineEditingButton + nextHistoryMenuItem + previousHistoryMenuItem + queryFavoriteNameTextField + queryFavoritesButton + queryFavoritesSaveAllMenuItem + queryFavoritesSaveAsMenuItem + queryFavoritesSearchField + queryFavoritesSearchFieldView + queryFavoritesSearchMenuItem + queryFavoritesSheet + queryHistoryButton + queryHistorySearchField + queryHistorySearchFieldView + queryHistorySearchMenuItem + queryInfoButton + queryInfoPaneSplitView + runAllButton + runAllMenuItem + runSelectionButton + runSelectionMenuItem + saveHistoryMenuItem + saveQueryFavoriteButton + saveQueryFavoriteGlobal + shiftLeftMenuItem + shiftRightMenuItem + tableDocumentInstance tablesListInstance - taskCancelButton - taskCancellationCallbackObject - taskDescriptionText - taskProgressIndicator - taskProgressLayer - titleAccessoryView - titleImageView - titleStringView + textView + valueSheet + valueTextField YES id + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSMenuItem + NSScrollView + SPCopyTable + NSMenuItem + NSPopUpButton id + NSScrollView + NSSegmentedControl + NSSearchField + NSSearchFieldCell + NSSegmentedControl + WebView NSWindow - NSSplitView - id - id id + NSMenuItem + NSMenuItem NSTextField - NSTextView - NSWindow - id - NSTextView - id - id - id - id - id - id - id - id - NSTableView - NSPopUpButton - id - id - id - id - id - id - id id + NSMenuItem + NSMenuItem NSSearchField - NSView - id - id - id - id - id - id - NSSecureTextField - id - id - id - id - id - id - id - id - id - id id + NSMenuItem + NSWindow id + NSSearchField id + NSMenuItem NSButton - NSTableView NSSplitView id + NSMenuItem id - NSTabView - id - id + NSMenuItem + NSMenuItem NSButton + NSButton + NSMenuItem + NSMenuItem id id - id - NSBox - id + SPTextView id id @@ -2651,368 +2547,1542 @@ YES YES - addDatabaseButton - chooseDatabaseButton - connectionErrorDialog - contentViewSplitter - copyDatabaseButton - copyDatabaseDataButton - copyDatabaseMessageField - createTableSyntaxTextField - createTableSyntaxTextView - createTableSyntaxWindow - customQueryInstance - customQueryTextView - databaseCopyNameField - databaseCopySheet - databaseDataInstance - databaseEncodingButton - databaseNameField - databaseRenameNameField - databaseRenameSheet - databaseSheet - dbTablesTableView + affectedRowsText + autohelpMenuItem + autoindentMenuItem + autopairMenuItem + autouppercaseKeywordsMenuItem + clearHistoryMenuItem + commentCurrentQueryMenuItem + commentLineOrSelectionMenuItem + completionListMenuItem + copyHistoryMenuItem + customQueryScrollView + customQueryView + editorFontMenuItem encodingPopUp - exportControllerInstance - extendedTableInfoInstance - favoritesButton - historyControl - inputTextWindow - inputTextWindowHeader - inputTextWindowMessage - inputTextWindowSecureTextField - listFilterField - parentView - queryProgressBar - renameDatabaseButton - renameDatabaseMessageField - saveConnectionAccessory - saveConnectionAutoConnect - saveConnectionEncrypt - saveConnectionEncryptString - saveConnectionIncludeData - saveConnectionIncludeQuery - saveConnectionSavePassword - saveConnectionSavePasswordAlert - sidebarGrabber - spHistoryControllerInstance - statusTableAccessoryView - statusTableCopyChecksum - statusTableView - statusValues - tableContentInstance - tableDataInstance - tableDumpInstance - tableInfoCollapseButton - tableInfoTable - tableListSplitter - tableRelationsInstance - tableSourceInstance - tableTabView - tableTriggersInstance + errorText + errorTextScrollView + helpNavigator + helpSearchField + helpSearchFieldCell + helpTargetSelector + helpWebView + helpWebViewWindow + multipleLineEditingButton + nextHistoryMenuItem + previousHistoryMenuItem + queryFavoriteNameTextField + queryFavoritesButton + queryFavoritesSaveAllMenuItem + queryFavoritesSaveAsMenuItem + queryFavoritesSearchField + queryFavoritesSearchFieldView + queryFavoritesSearchMenuItem + queryFavoritesSheet + queryHistoryButton + queryHistorySearchField + queryHistorySearchFieldView + queryHistorySearchMenuItem + queryInfoButton + queryInfoPaneSplitView + runAllButton + runAllMenuItem + runSelectionButton + runSelectionMenuItem + saveHistoryMenuItem + saveQueryFavoriteButton + saveQueryFavoriteGlobal + shiftLeftMenuItem + shiftRightMenuItem + tableDocumentInstance tablesListInstance - taskCancelButton - taskCancellationCallbackObject - taskDescriptionText - taskProgressIndicator - taskProgressLayer - titleAccessoryView - titleImageView - titleStringView + textView + valueSheet + valueTextField YES - addDatabaseButton + affectedRowsText id - chooseDatabaseButton - id + autohelpMenuItem + NSMenuItem - connectionErrorDialog - NSWindow + autoindentMenuItem + NSMenuItem - contentViewSplitter - NSSplitView + autopairMenuItem + NSMenuItem - copyDatabaseButton - id + autouppercaseKeywordsMenuItem + NSMenuItem - copyDatabaseDataButton - id + clearHistoryMenuItem + NSMenuItem - copyDatabaseMessageField - id + commentCurrentQueryMenuItem + NSMenuItem - createTableSyntaxTextField - NSTextField + commentLineOrSelectionMenuItem + NSMenuItem - createTableSyntaxTextView - NSTextView + completionListMenuItem + NSMenuItem - createTableSyntaxWindow - NSWindow + copyHistoryMenuItem + NSMenuItem - customQueryInstance - id + customQueryScrollView + NSScrollView - customQueryTextView - NSTextView + customQueryView + SPCopyTable - databaseCopyNameField - id + editorFontMenuItem + NSMenuItem - databaseCopySheet - id + encodingPopUp + NSPopUpButton - databaseDataInstance + errorText id - databaseEncodingButton - id + errorTextScrollView + NSScrollView - databaseNameField - id + helpNavigator + NSSegmentedControl - databaseRenameNameField - id + helpSearchField + NSSearchField - databaseRenameSheet - id + helpSearchFieldCell + NSSearchFieldCell - databaseSheet - id + helpTargetSelector + NSSegmentedControl - dbTablesTableView - NSTableView + helpWebView + WebView - encodingPopUp - NSPopUpButton + helpWebViewWindow + NSWindow - exportControllerInstance + multipleLineEditingButton id - extendedTableInfoInstance - id + nextHistoryMenuItem + NSMenuItem - favoritesButton - id + previousHistoryMenuItem + NSMenuItem - historyControl - id + queryFavoriteNameTextField + NSTextField - inputTextWindow + queryFavoritesButton id - inputTextWindowHeader - id + queryFavoritesSaveAllMenuItem + NSMenuItem - inputTextWindowMessage - id + queryFavoritesSaveAsMenuItem + NSMenuItem - inputTextWindowSecureTextField + queryFavoritesSearchField + NSSearchField + + + queryFavoritesSearchFieldView id - listFilterField - NSSearchField + queryFavoritesSearchMenuItem + NSMenuItem - parentView - NSView + queryFavoritesSheet + NSWindow - queryProgressBar + queryHistoryButton id - renameDatabaseButton - id + queryHistorySearchField + NSSearchField - renameDatabaseMessageField + queryHistorySearchFieldView id - saveConnectionAccessory - id + queryHistorySearchMenuItem + NSMenuItem - saveConnectionAutoConnect - id + queryInfoButton + NSButton - saveConnectionEncrypt + queryInfoPaneSplitView + NSSplitView + + + runAllButton id - saveConnectionEncryptString - NSSecureTextField + runAllMenuItem + NSMenuItem - saveConnectionIncludeData + runSelectionButton id - saveConnectionIncludeQuery - id + runSelectionMenuItem + NSMenuItem - saveConnectionSavePassword + saveHistoryMenuItem + NSMenuItem + + + saveQueryFavoriteButton + NSButton + + + saveQueryFavoriteGlobal + NSButton + + + shiftLeftMenuItem + NSMenuItem + + + shiftRightMenuItem + NSMenuItem + + + tableDocumentInstance id - saveConnectionSavePasswordAlert + tablesListInstance id - sidebarGrabber + textView + SPTextView + + + valueSheet id - spHistoryControllerInstance + valueTextField id + + + + IBProjectSource + Source/SPCustomQuery.h + + + + SPDatabaseData + NSObject + + IBProjectSource + Source/SPDatabaseData.h + + + + SPDatabaseDocument + + IBProjectSource + Source/SPConnectionDelegate.h + + + + SPDatabaseDocument + NSObject + + YES + + YES + addConnectionToFavorites: + addDatabase: + analyzeTable: + backForwardInHistory: + cancelTask: + checkTable: + checksumTable: + chooseDatabase: + chooseEncoding: + closePanelSheet: + closePasswordSheet: + closeSheet: + copyChecksumFromSheet: + copyCreateTableSyntax: + copyCreateTableSyntaxFromSheet: + copyDatabase: + export: + exportSelectedTablesAs: + flushPrivileges: + flushTable: + focusOnTableContentFilter: + focusOnTableListFilter: + import: + importFromClipboard: + openCurrentConnectionInNewWindow: + openDatabaseInNewTab: + optimizeTable: + refreshTables: + removeDatabase: + renameDatabase: + repairTable: + saveConnectionSheet: + saveCreateSyntax: + setDatabases: + showConsole: + showCreateTableSyntax: + showMySQLHelp: + showNavigator: + showServerProcesses: + showServerVariables: + showUserManager: + toggleNavigator: + updateWindowTitle: + validateSaveConnectionAccessory: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + addConnectionToFavorites: + addDatabase: + analyzeTable: + backForwardInHistory: + cancelTask: + checkTable: + checksumTable: + chooseDatabase: + chooseEncoding: + closePanelSheet: + closePasswordSheet: + closeSheet: + copyChecksumFromSheet: + copyCreateTableSyntax: + copyCreateTableSyntaxFromSheet: + copyDatabase: + export: + exportSelectedTablesAs: + flushPrivileges: + flushTable: + focusOnTableContentFilter: + focusOnTableListFilter: + import: + importFromClipboard: + openCurrentConnectionInNewWindow: + openDatabaseInNewTab: + optimizeTable: + refreshTables: + removeDatabase: + renameDatabase: + repairTable: + saveConnectionSheet: + saveCreateSyntax: + setDatabases: + showConsole: + showCreateTableSyntax: + showMySQLHelp: + showNavigator: + showServerProcesses: + showServerVariables: + showUserManager: + toggleNavigator: + updateWindowTitle: + validateSaveConnectionAccessory: + + + YES + + addConnectionToFavorites: + id + + + addDatabase: + id + + + analyzeTable: + id + + + backForwardInHistory: + id + + + cancelTask: + id + + + checkTable: + id + + + checksumTable: + id + + + chooseDatabase: + id + + + chooseEncoding: + id + + + closePanelSheet: + id + + + closePasswordSheet: + id + + + closeSheet: + id + + + copyChecksumFromSheet: + id + + + copyCreateTableSyntax: + id + + + copyCreateTableSyntaxFromSheet: + id + + + copyDatabase: + id + + + export: + id + + + exportSelectedTablesAs: + id + + + flushPrivileges: + id + + + flushTable: + id + + + focusOnTableContentFilter: + id + + + focusOnTableListFilter: + id + + + import: + id + + + importFromClipboard: + id + + + openCurrentConnectionInNewWindow: + id + + + openDatabaseInNewTab: + id + + + optimizeTable: + id + + + refreshTables: + id + + + removeDatabase: + id + + + renameDatabase: + id + + + repairTable: + id + + + saveConnectionSheet: + id + + + saveCreateSyntax: + id + + + setDatabases: + id + + + showConsole: + id + + + showCreateTableSyntax: + id + + + showMySQLHelp: + id + + + showNavigator: + id + + + showServerProcesses: + id + + + showServerVariables: + id + + + showUserManager: + id + + + toggleNavigator: + id + + + updateWindowTitle: + id + + + validateSaveConnectionAccessory: + id + + + + + YES + + YES + addDatabaseButton + chooseDatabaseButton + connectionErrorDialog + contentViewSplitter + copyDatabaseButton + copyDatabaseDataButton + copyDatabaseMessageField + createTableSyntaxTextField + createTableSyntaxTextView + createTableSyntaxWindow + customQueryInstance + customQueryTextView + databaseCopyNameField + databaseCopySheet + databaseDataInstance + databaseEncodingButton + databaseNameField + databaseRenameNameField + databaseRenameSheet + databaseSheet + dbTablesTableView + delegate + documentActivityScrollView + encodingPopUp + exportControllerInstance + extendedTableInfoInstance + favoritesButton + historyControl + inputTextWindow + inputTextWindowHeader + inputTextWindowMessage + inputTextWindowSecureTextField + listFilterField + parentView + queryProgressBar + renameDatabaseButton + renameDatabaseMessageField + saveConnectionAccessory + saveConnectionAutoConnect + saveConnectionEncrypt + saveConnectionEncryptString + saveConnectionIncludeData + saveConnectionIncludeQuery + saveConnectionSavePassword + saveConnectionSavePasswordAlert + sidebarGrabber + spHistoryControllerInstance + statusTableAccessoryView + statusTableCopyChecksum + statusTableView + tableContentInstance + tableDataInstance + tableDumpInstance + tableInfoCollapseButton + tableInfoScrollView + tableInfoTable + tableListSplitter + tableRelationsInstance + tableSourceInstance + tableTabView + tableTriggersInstance + tablesListInstance + taskCancelButton + taskCancellationCallbackObject + taskDescriptionText + taskProgressIndicator + taskProgressLayer + titleAccessoryView + titleImageView + titleStringView + + + YES + id + id + NSWindow + NSSplitView + id + NSButton + id + NSTextField + NSTextView + NSWindow + id + NSTextView + id + id + id + id + id + id + id + id + NSTableView + id + NSScrollView + NSPopUpButton + id + id + id + id + id + id + id + id + NSSearchField + NSView + NSProgressIndicator + id + id + id + NSButton + NSButton + NSSecureTextField + NSButton + NSButton + NSButton + id + id + id + id + id + id + SPTableContent + SPTableData + id + NSButton + NSScrollView + NSTableView + NSSplitView + id + SPTableStructure + NSTabView + id + SPTablesList + NSButton + id + id + id + NSBox + id + id + id + + + + YES + + YES + addDatabaseButton + chooseDatabaseButton + connectionErrorDialog + contentViewSplitter + copyDatabaseButton + copyDatabaseDataButton + copyDatabaseMessageField + createTableSyntaxTextField + createTableSyntaxTextView + createTableSyntaxWindow + customQueryInstance + customQueryTextView + databaseCopyNameField + databaseCopySheet + databaseDataInstance + databaseEncodingButton + databaseNameField + databaseRenameNameField + databaseRenameSheet + databaseSheet + dbTablesTableView + delegate + documentActivityScrollView + encodingPopUp + exportControllerInstance + extendedTableInfoInstance + favoritesButton + historyControl + inputTextWindow + inputTextWindowHeader + inputTextWindowMessage + inputTextWindowSecureTextField + listFilterField + parentView + queryProgressBar + renameDatabaseButton + renameDatabaseMessageField + saveConnectionAccessory + saveConnectionAutoConnect + saveConnectionEncrypt + saveConnectionEncryptString + saveConnectionIncludeData + saveConnectionIncludeQuery + saveConnectionSavePassword + saveConnectionSavePasswordAlert + sidebarGrabber + spHistoryControllerInstance + statusTableAccessoryView + statusTableCopyChecksum + statusTableView + tableContentInstance + tableDataInstance + tableDumpInstance + tableInfoCollapseButton + tableInfoScrollView + tableInfoTable + tableListSplitter + tableRelationsInstance + tableSourceInstance + tableTabView + tableTriggersInstance + tablesListInstance + taskCancelButton + taskCancellationCallbackObject + taskDescriptionText + taskProgressIndicator + taskProgressLayer + titleAccessoryView + titleImageView + titleStringView + + + YES + + addDatabaseButton + id + + + chooseDatabaseButton + id + + + connectionErrorDialog + NSWindow + + + contentViewSplitter + NSSplitView + + + copyDatabaseButton + id + + + copyDatabaseDataButton + NSButton + + + copyDatabaseMessageField + id + + + createTableSyntaxTextField + NSTextField + + + createTableSyntaxTextView + NSTextView + + + createTableSyntaxWindow + NSWindow + + + customQueryInstance + id + + + customQueryTextView + NSTextView + + + databaseCopyNameField + id + + + databaseCopySheet + id + + + databaseDataInstance + id + + + databaseEncodingButton + id + + + databaseNameField + id + + + databaseRenameNameField + id + + + databaseRenameSheet + id + + + databaseSheet + id + + + dbTablesTableView + NSTableView + + + delegate + id + + + documentActivityScrollView + NSScrollView + + + encodingPopUp + NSPopUpButton + + + exportControllerInstance + id + + + extendedTableInfoInstance + id + + + favoritesButton + id + + + historyControl + id + + + inputTextWindow + id + + + inputTextWindowHeader + id + + + inputTextWindowMessage + id + + + inputTextWindowSecureTextField + id + + + listFilterField + NSSearchField + + + parentView + NSView + + + queryProgressBar + NSProgressIndicator + + + renameDatabaseButton + id + + + renameDatabaseMessageField + id + + + saveConnectionAccessory + id + + + saveConnectionAutoConnect + NSButton + + + saveConnectionEncrypt + NSButton + + + saveConnectionEncryptString + NSSecureTextField + + + saveConnectionIncludeData + NSButton + + + saveConnectionIncludeQuery + NSButton + + + saveConnectionSavePassword + NSButton + + + saveConnectionSavePasswordAlert + id + + + sidebarGrabber + id + + + spHistoryControllerInstance + id + + + statusTableAccessoryView + id + + + statusTableCopyChecksum + id + + + statusTableView + id + + + tableContentInstance + SPTableContent + + + tableDataInstance + SPTableData + + + tableDumpInstance + id + + + tableInfoCollapseButton + NSButton + + + tableInfoScrollView + NSScrollView + + + tableInfoTable + NSTableView + + + tableListSplitter + NSSplitView + + + tableRelationsInstance + id + + + tableSourceInstance + SPTableStructure + + + tableTabView + NSTabView + + + tableTriggersInstance + id + + + tablesListInstance + SPTablesList + + + taskCancelButton + NSButton + + + taskCancellationCallbackObject + id + + + taskDescriptionText + id + + + taskProgressIndicator + id + + + taskProgressLayer + NSBox + + + titleAccessoryView + id + + + titleImageView + id + + + titleStringView + id + + + + + IBProjectSource + Source/SPDatabaseDocument.h + + + + SPDatabaseDocument + + YES + + YES + viewContent: + viewQuery: + viewRelations: + viewStatus: + viewStructure: + viewTriggers: + + + YES + id + id + id + id + id + id + + + + YES + + YES + viewContent: + viewQuery: + viewRelations: + viewStatus: + viewStructure: + viewTriggers: + + + YES + + viewContent: + id + + + viewQuery: + id + + + viewRelations: + id + + + viewStatus: + id + + + viewStructure: + id + + + viewTriggers: + id + + + + + IBProjectSource + Source/SPDatabaseViewController.h + + + + SPDatabaseDocument + + IBProjectSource + Source/SPPrintController.h + + + + SPHistoryController + NSObject + + historyControlClicked: + NSSegmentedControl + + + historyControlClicked: + + historyControlClicked: + NSSegmentedControl + + + + YES + + YES + historyControl + theDocument + + + YES + NSSegmentedControl + SPDatabaseDocument + + + + YES + + YES + historyControl + theDocument + + + YES + + historyControl + NSSegmentedControl + + + theDocument + SPDatabaseDocument + + + + + IBProjectSource + Source/SPHistoryController.h + + + + SPIndexesController + NSWindowController + + YES + + YES + addIndex: + addIndexedField: + chooseIndexType: + closeSheet: + removeIndex: + removeIndexedField: + toggleAdvancedIndexOptionsView: + + + YES + id + id + id + id + id + id + id + + + + YES + + YES + addIndex: + addIndexedField: + chooseIndexType: + closeSheet: + removeIndex: + removeIndexedField: + toggleAdvancedIndexOptionsView: + + + YES + + addIndex: + id + + + addIndexedField: + id + + + chooseIndexType: + id + + + closeSheet: + id + + + removeIndex: + id + + + removeIndexedField: + id + + + toggleAdvancedIndexOptionsView: + id + + + + + YES + + YES + addIndexButton + addIndexedColumnButton + anchoredButtonBar + confirmAddIndexButton + dbDocument + indexAdvancedOptionsView + indexAdvancedOptionsViewButton + indexAdvancedOptionsViewLabelButton + indexKeyBlockSizeTextField + indexNameLabel + indexNameTextField + indexSizeTableColumn + indexStorageTypePopUpButton + indexTypeLabel + indexTypePopUpButton + indexedColumnsScrollView + indexedColumnsTableView + indexesTableView + removeIndexButton + removeIndexedColumnButton + tableData + tableStructure + tablesList + + + YES + NSButton + NSButton + BWAnchoredButtonBar + NSButton + SPDatabaseDocument + NSView + NSButton + NSButton + NSTextField + NSTextField + NSTextField + NSTableColumn + NSPopUpButton + NSTextField + NSPopUpButton + NSScrollView + NSTableView + SPTableView + NSButton + NSButton + SPTableData + SPTableStructure + SPTablesList + + + + YES + + YES + addIndexButton + addIndexedColumnButton + anchoredButtonBar + confirmAddIndexButton + dbDocument + indexAdvancedOptionsView + indexAdvancedOptionsViewButton + indexAdvancedOptionsViewLabelButton + indexKeyBlockSizeTextField + indexNameLabel + indexNameTextField + indexSizeTableColumn + indexStorageTypePopUpButton + indexTypeLabel + indexTypePopUpButton + indexedColumnsScrollView + indexedColumnsTableView + indexesTableView + removeIndexButton + removeIndexedColumnButton + tableData + tableStructure + tablesList + + + YES - statusTableAccessoryView - id + addIndexButton + NSButton - statusTableCopyChecksum - id + addIndexedColumnButton + NSButton - statusTableView - id + anchoredButtonBar + BWAnchoredButtonBar - statusValues - id + confirmAddIndexButton + NSButton - tableContentInstance - id + dbDocument + SPDatabaseDocument - tableDataInstance - id + indexAdvancedOptionsView + NSView - tableDumpInstance - id + indexAdvancedOptionsViewButton + NSButton - tableInfoCollapseButton + indexAdvancedOptionsViewLabelButton NSButton - tableInfoTable - NSTableView + indexKeyBlockSizeTextField + NSTextField - tableListSplitter - NSSplitView + indexNameLabel + NSTextField - tableRelationsInstance - id + indexNameTextField + NSTextField - tableSourceInstance - id + indexSizeTableColumn + NSTableColumn - tableTabView - NSTabView + indexStorageTypePopUpButton + NSPopUpButton - tableTriggersInstance - id + indexTypeLabel + NSTextField - tablesListInstance - id + indexTypePopUpButton + NSPopUpButton - taskCancelButton - NSButton + indexedColumnsScrollView + NSScrollView - taskCancellationCallbackObject - id + indexedColumnsTableView + NSTableView - taskDescriptionText - id + indexesTableView + SPTableView - taskProgressIndicator - id + removeIndexButton + NSButton - taskProgressLayer - NSBox + removeIndexedColumnButton + NSButton - titleAccessoryView - id + tableData + SPTableData - titleImageView - id + tableStructure + SPTableStructure - titleStringView - id + tablesList + SPTablesList IBProjectSource - Source/SPDatabaseDocument.h + Source/SPIndexesController.h - SPDatabaseDocument + SPTableContent + NSObject YES YES - viewContent: - viewQuery: - viewRelations: - viewStatus: - viewStructure: - viewTriggers: + addRow: + closeSheet: + duplicateRow: + filterTable: + navigatePaginationFromButton: + reloadTable: + removeRow: + setCompareTypes: + setDefaultOperator: + showDefaultOperaterHelp: + showFilterTable: + swapFilterTable: + tableFilterClear: + toggleDistinctSelect: + toggleFilterField: + toggleLookAllFieldsMode: + toggleNegateClause: + togglePagination: YES @@ -3022,177 +4092,116 @@ id id id + id + id + id + id + id + id + id + id + id + id + id + NSButton YES YES - viewContent: - viewQuery: - viewRelations: - viewStatus: - viewStructure: - viewTriggers: + addRow: + closeSheet: + duplicateRow: + filterTable: + navigatePaginationFromButton: + reloadTable: + removeRow: + setCompareTypes: + setDefaultOperator: + showDefaultOperaterHelp: + showFilterTable: + swapFilterTable: + tableFilterClear: + toggleDistinctSelect: + toggleFilterField: + toggleLookAllFieldsMode: + toggleNegateClause: + togglePagination: YES - viewContent: + addRow: id - viewQuery: + closeSheet: id - viewRelations: + duplicateRow: id - viewStatus: + filterTable: id - viewStructure: + navigatePaginationFromButton: id - viewTriggers: + reloadTable: id - - - - IBProjectSource - Source/SPDatabaseViewController.h - - - - SPDatabaseDocument - - IBProjectSource - Source/SPPrintController.h - - - - SPHistoryController - NSObject - - historyControlClicked: - NSSegmentedControl - - - historyControlClicked: - - historyControlClicked: - NSSegmentedControl - - - - YES - - YES - historyControl - theDocument - - - YES - NSSegmentedControl - SPDatabaseDocument - - - - YES - - YES - historyControl - theDocument - - - YES - - historyControl - NSSegmentedControl + + removeRow: + id - - theDocument - SPDatabaseDocument + + setCompareTypes: + id - - - - IBProjectSource - Source/SPHistoryController.h - - - - SPIndexesController - NSWindowController - - YES - - YES - addIndex: - addIndexedField: - chooseIndexType: - closeSheet: - removeIndex: - removeIndexedField: - toggleAdvancedIndexOptionsView: - - - YES - id - id - id - id - id - id - id - - - - YES - - YES - addIndex: - addIndexedField: - chooseIndexType: - closeSheet: - removeIndex: - removeIndexedField: - toggleAdvancedIndexOptionsView: - - - YES - addIndex: + setDefaultOperator: id - addIndexedField: + showDefaultOperaterHelp: + id + + + showFilterTable: + id + + + swapFilterTable: + id + + + tableFilterClear: id - chooseIndexType: + toggleDistinctSelect: id - closeSheet: + toggleFilterField: id - removeIndex: + toggleLookAllFieldsMode: id - removeIndexedField: + toggleNegateClause: id - toggleAdvancedIndexOptionsView: - id + togglePagination: + NSButton @@ -3200,198 +4209,390 @@ YES YES - addIndexButton - addIndexedColumnButton - anchoredButtonBar - confirmAddIndexButton - dbDocument - indexAdvancedOptionsView - indexAdvancedOptionsViewButton - indexAdvancedOptionsViewLabelButton - indexKeyBlockSizeTextField - indexNameLabel - indexNameTextField - indexSizeTableColumn - indexStorageTypePopUpButton - indexTypeLabel - indexTypePopUpButton - indexedColumnsScrollView - indexedColumnsTableView - indexesTableView - removeIndexButton - removeIndexedColumnButton - tableData - tableStructure - tablesList + addButton + argumentField + betweenTextField + compareField + contentViewPane + countText + duplicateButton + fieldField + filterButton + filterTableClearButton + filterTableDistinctMenuItem + filterTableFilterButton + filterTableGearLookAllFields + filterTableLiveSearchCheckbox + filterTableNegateCheckbox + filterTableSetDefaultOperatorSheet + filterTableSetDefaultOperatorValue + filterTableView + filterTableWhereClause + filterTableWindow + firstBetweenField + limitRowsButton + limitRowsField + limitRowsStepper + multipleLineEditingButton + paginationButton + paginationNextButton + paginationPageField + paginationPageStepper + paginationPreviousButton + paginationView + reloadButton + removeButton + secondBetweenField + spHistoryControllerInstance + tableContentView + tableDataInstance + tableDocumentInstance + tableInfoInstance + tableSourceInstance + tablesListInstance YES + id + id + id + id + NSView + id + id + NSPopUpButton + id NSButton + NSMenuItem NSButton - BWAnchoredButtonBar + NSMenuItem NSButton - SPDatabaseDocument - NSView NSButton + NSPanel + NSComboBox + SPCopyTable + SPTextView + NSPanel + id + id + id + id NSButton - NSTextField - NSTextField - NSTextField - NSTableColumn - NSPopUpButton - NSTextField - NSPopUpButton - NSScrollView - NSTableView - NSTableView NSButton NSButton + NSTextField + NSStepper + NSButton + NSView + id + id + id + SPHistoryController + SPCopyTable SPTableData - SPTableStructure - SPTablesList + SPDatabaseDocument + SPTableInfo + id + id YES YES - addIndexButton - addIndexedColumnButton - anchoredButtonBar - confirmAddIndexButton - dbDocument - indexAdvancedOptionsView - indexAdvancedOptionsViewButton - indexAdvancedOptionsViewLabelButton - indexKeyBlockSizeTextField - indexNameLabel - indexNameTextField - indexSizeTableColumn - indexStorageTypePopUpButton - indexTypeLabel - indexTypePopUpButton - indexedColumnsScrollView - indexedColumnsTableView - indexesTableView - removeIndexButton - removeIndexedColumnButton - tableData - tableStructure - tablesList + addButton + argumentField + betweenTextField + compareField + contentViewPane + countText + duplicateButton + fieldField + filterButton + filterTableClearButton + filterTableDistinctMenuItem + filterTableFilterButton + filterTableGearLookAllFields + filterTableLiveSearchCheckbox + filterTableNegateCheckbox + filterTableSetDefaultOperatorSheet + filterTableSetDefaultOperatorValue + filterTableView + filterTableWhereClause + filterTableWindow + firstBetweenField + limitRowsButton + limitRowsField + limitRowsStepper + multipleLineEditingButton + paginationButton + paginationNextButton + paginationPageField + paginationPageStepper + paginationPreviousButton + paginationView + reloadButton + removeButton + secondBetweenField + spHistoryControllerInstance + tableContentView + tableDataInstance + tableDocumentInstance + tableInfoInstance + tableSourceInstance + tablesListInstance YES - addIndexButton - NSButton + addButton + id - addIndexedColumnButton - NSButton + argumentField + id - anchoredButtonBar - BWAnchoredButtonBar + betweenTextField + id - confirmAddIndexButton + compareField + id + + + contentViewPane + NSView + + + countText + id + + + duplicateButton + id + + + fieldField + NSPopUpButton + + + filterButton + id + + + filterTableClearButton NSButton - dbDocument - SPDatabaseDocument + filterTableDistinctMenuItem + NSMenuItem - indexAdvancedOptionsView - NSView + filterTableFilterButton + NSButton - indexAdvancedOptionsViewButton + filterTableGearLookAllFields + NSMenuItem + + + filterTableLiveSearchCheckbox NSButton - indexAdvancedOptionsViewLabelButton + filterTableNegateCheckbox NSButton - indexKeyBlockSizeTextField - NSTextField + filterTableSetDefaultOperatorSheet + NSPanel - indexNameLabel - NSTextField + filterTableSetDefaultOperatorValue + NSComboBox - indexNameTextField - NSTextField + filterTableView + SPCopyTable - indexSizeTableColumn - NSTableColumn + filterTableWhereClause + SPTextView - indexStorageTypePopUpButton - NSPopUpButton + filterTableWindow + NSPanel - indexTypeLabel - NSTextField + firstBetweenField + id - indexTypePopUpButton - NSPopUpButton + limitRowsButton + id - indexedColumnsScrollView - NSScrollView + limitRowsField + id - indexedColumnsTableView - NSTableView + limitRowsStepper + id - indexesTableView - NSTableView + multipleLineEditingButton + NSButton - removeIndexButton + paginationButton NSButton - removeIndexedColumnButton + paginationNextButton NSButton - tableData + paginationPageField + NSTextField + + + paginationPageStepper + NSStepper + + + paginationPreviousButton + NSButton + + + paginationView + NSView + + + reloadButton + id + + + removeButton + id + + + secondBetweenField + id + + + spHistoryControllerInstance + SPHistoryController + + + tableContentView + SPCopyTable + + + tableDataInstance SPTableData - tableStructure - SPTableStructure + tableDocumentInstance + SPDatabaseDocument + + + tableInfoInstance + SPTableInfo + + + tableSourceInstance + id + + + tablesListInstance + id + + + + + IBProjectSource + Source/SPTableContent.h + + + + SPTableContent + + IBProjectSource + Source/SPTableContentDataSource.h + + + + SPTableContent + + IBProjectSource + Source/SPTableContentDelegate.h + + + + SPTableData + NSObject + + YES + + YES + tableDocumentInstance + tableListInstance + + + YES + SPDatabaseDocument + SPTablesList + + + + YES + + YES + tableDocumentInstance + tableListInstance + + + YES + + tableDocumentInstance + SPDatabaseDocument - tablesList + tableListInstance SPTablesList IBProjectSource - Source/SPIndexesController.h + Source/SPTableData.h - SPTableData + SPTableInfo NSObject YES YES + activitiesTable + containerView + infoTable + tableDataInstance tableDocumentInstance + tableInfoScrollView + tableList tableListInstance YES + NSTableView + NSView + id + id + id + NSScrollView id id @@ -3400,15 +4601,45 @@ YES YES + activitiesTable + containerView + infoTable + tableDataInstance tableDocumentInstance + tableInfoScrollView + tableList tableListInstance YES + + activitiesTable + NSTableView + + + containerView + NSView + + + infoTable + id + + + tableDataInstance + id + tableDocumentInstance id + + tableInfoScrollView + NSScrollView + + + tableList + id + tableListInstance id @@ -3417,7 +4648,7 @@ IBProjectSource - Source/SPTableData.h + Source/SPTableInfo.h @@ -3429,7 +4660,7 @@ YES addField: closeSheet: - copyField: + duplicateField: reloadTable: removeField: resetAutoIncrement: @@ -3446,7 +4677,7 @@ id id id - id + NSMenuItem id @@ -3456,7 +4687,7 @@ YES addField: closeSheet: - copyField: + duplicateField: reloadTable: removeField: resetAutoIncrement: @@ -3475,7 +4706,7 @@ id - copyField: + duplicateField: id @@ -3496,7 +4727,7 @@ toggleColumnView: - id + NSMenuItem unhideIndexesView: @@ -3511,8 +4742,8 @@ addFieldButton addIndexButton chooseKeyButton - copyFieldButton databaseDataInstance + duplicateFieldButton editTableButton encodingPopupCell extendedTableInfoInstance @@ -3541,13 +4772,14 @@ id id id + SPDatabaseData id id + NSPopUpButtonCell id - id - id - id + SPIndexesController NSButton + SPTableView id id id @@ -3557,13 +4789,12 @@ id id id + SPTableData + SPDatabaseDocument id - id - id - id - id + SPTableView NSSplitView - id + SPTablesList id @@ -3574,8 +4805,8 @@ addFieldButton addIndexButton chooseKeyButton - copyFieldButton databaseDataInstance + duplicateFieldButton editTableButton encodingPopupCell extendedTableInfoInstance @@ -3614,11 +4845,11 @@ id - copyFieldButton - id + databaseDataInstance + SPDatabaseData - databaseDataInstance + duplicateFieldButton id @@ -3627,7 +4858,7 @@ encodingPopupCell - id + NSPopUpButtonCell extendedTableInfoInstance @@ -3635,7 +4866,7 @@ indexesController - id + SPIndexesController indexesShowButton @@ -3643,7 +4874,7 @@ indexesTableView - id + SPTableView keySheet @@ -3683,11 +4914,11 @@ tableDataInstance - id + SPTableData tableDocumentInstance - id + SPDatabaseDocument tableInfoInstance @@ -3695,7 +4926,7 @@ tableSourceView - id + SPTableView tablesIndexesSplitView @@ -3703,7 +4934,7 @@ tablesListInstance - id + SPTablesList viewColumnsMenu @@ -3723,6 +4954,14 @@ Source/SPTableStructureDelegate.h + + SPTableView + NSTableView + + IBProjectSource + Source/SPTableView.h + + SPTablesList NSObject @@ -3819,6 +5058,8 @@ YES addTableButton + copyCreateSyntaxContextMenuItem + copyCreateSyntaxMenuItem copyTableButton copyTableContentSwitch copyTableMessageField @@ -3838,8 +5079,10 @@ renameTableMenuItem separatorTableContextMenuItem separatorTableContextMenuItem2 + separatorTableContextMenuItem3 separatorTableMenuItem separatorTableMenuItem2 + separatorTableMenuItem3 showCreateSyntaxContextMenuItem showCreateSyntaxMenuItem spHistoryControllerInstance @@ -3860,6 +5103,7 @@ tablesListView toolbarActionsButton toolbarAddButton + toolbarDeleteButton toolbarReloadButton truncateTableButton truncateTableContextMenuItem @@ -3867,13 +5111,15 @@ YES id + NSMenuItem + NSMenuItem id + NSButton id id id id - id - id + SPDatabaseData NSMenuItem NSMenuItem id @@ -3890,10 +5136,12 @@ NSMenuItem NSMenuItem NSMenuItem + NSMenuItem + NSMenuItem SPHistoryController + SPTableContent id - id - id + SPDatabaseDocument id id NSButton @@ -3902,9 +5150,10 @@ NSSplitView id id + SPTableStructure id id - id + SPTableView id id id @@ -3918,6 +5167,8 @@ YES addTableButton + copyCreateSyntaxContextMenuItem + copyCreateSyntaxMenuItem copyTableButton copyTableContentSwitch copyTableMessageField @@ -3937,8 +5188,10 @@ renameTableMenuItem separatorTableContextMenuItem separatorTableContextMenuItem2 + separatorTableContextMenuItem3 separatorTableMenuItem separatorTableMenuItem2 + separatorTableMenuItem3 showCreateSyntaxContextMenuItem showCreateSyntaxMenuItem spHistoryControllerInstance @@ -3959,6 +5212,7 @@ tablesListView toolbarActionsButton toolbarAddButton + toolbarDeleteButton toolbarReloadButton truncateTableButton truncateTableContextMenuItem @@ -3969,13 +5223,21 @@ addTableButton id + + copyCreateSyntaxContextMenuItem + NSMenuItem + + + copyCreateSyntaxMenuItem + NSMenuItem + copyTableButton id copyTableContentSwitch - id + NSButton copyTableMessageField @@ -3995,7 +5257,7 @@ databaseDataInstance - id + SPDatabaseData duplicateTableContextMenuItem @@ -4045,6 +5307,10 @@ separatorTableContextMenuItem2 NSMenuItem + + separatorTableContextMenuItem3 + NSMenuItem + separatorTableMenuItem NSMenuItem @@ -4053,6 +5319,10 @@ separatorTableMenuItem2 NSMenuItem + + separatorTableMenuItem3 + NSMenuItem + showCreateSyntaxContextMenuItem NSMenuItem @@ -4067,7 +5337,7 @@ tableContentInstance - id + SPTableContent tableDataInstance @@ -4075,7 +5345,7 @@ tableDocumentInstance - id + SPDatabaseDocument tableDumpInstance @@ -4111,7 +5381,7 @@ tableSourceInstance - id + SPTableStructure tableTriggersInstance @@ -4123,7 +5393,7 @@ tablesListView - id + SPTableView toolbarActionsButton @@ -4133,6 +5403,10 @@ toolbarAddButton id + + toolbarDeleteButton + id + toolbarReloadButton id @@ -4149,6 +5423,71 @@ + + SPTextView + NSTextView + + showMySQLHelpForCurrentWord: + id + + + showMySQLHelpForCurrentWord: + + showMySQLHelpForCurrentWord: + id + + + + YES + + YES + customQueryInstance + scrollView + tableDocumentInstance + tablesListInstance + + + YES + SPCustomQuery + NSScrollView + SPDatabaseDocument + SPTablesList + + + + YES + + YES + customQueryInstance + scrollView + tableDocumentInstance + tablesListInstance + + + YES + + customQueryInstance + SPCustomQuery + + + scrollView + NSScrollView + + + tableDocumentInstance + SPDatabaseDocument + + + tablesListInstance + SPTablesList + + + + + IBProjectSource + Source/SPTextView.h + + YES @@ -4266,6 +5605,14 @@ AppKit.framework/Headers/NSCell.h + + NSComboBox + NSTextField + + IBFrameworkSource + AppKit.framework/Headers/NSComboBox.h + + NSComboBoxCell NSTextFieldCell @@ -4692,6 +6039,14 @@ WebKit.framework/Headers/WebUIDelegate.h + + NSPanel + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSPanel.h + + NSPopUpButton NSButton @@ -4708,6 +6063,14 @@ AppKit.framework/Headers/NSPopUpButtonCell.h + + NSProgressIndicator + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSProgressIndicator.h + + NSResponder @@ -4747,6 +6110,14 @@ AppKit.framework/Headers/NSSearchField.h + + NSSearchFieldCell + NSTextFieldCell + + IBFrameworkSource + AppKit.framework/Headers/NSSearchFieldCell.h + + NSSecureTextField NSTextField @@ -4771,6 +6142,14 @@ AppKit.framework/Headers/NSSplitView.h + + NSStepper + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSStepper.h + + NSTabView NSView @@ -4910,6 +6289,109 @@ AppKit.framework/Headers/NSWindowController.h + + WebView + NSView + + YES + + YES + goBack: + goForward: + makeTextLarger: + makeTextSmaller: + makeTextStandardSize: + reload: + reloadFromOrigin: + stopLoading: + takeStringURLFrom: + toggleContinuousSpellChecking: + toggleSmartInsertDelete: + + + YES + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + goBack: + goForward: + makeTextLarger: + makeTextSmaller: + makeTextStandardSize: + reload: + reloadFromOrigin: + stopLoading: + takeStringURLFrom: + toggleContinuousSpellChecking: + toggleSmartInsertDelete: + + + YES + + goBack: + id + + + goForward: + id + + + makeTextLarger: + id + + + makeTextSmaller: + id + + + makeTextStandardSize: + id + + + reload: + id + + + reloadFromOrigin: + id + + + stopLoading: + id + + + takeStringURLFrom: + id + + + toggleContinuousSpellChecking: + id + + + toggleSmartInsertDelete: + id + + + + + IBFrameworkSource + WebKit.framework/Headers/WebView.h + + 0 diff --git a/Source/SPIndexesController.h b/Source/SPIndexesController.h index e014a4a7..8c79f4af 100644 --- a/Source/SPIndexesController.h +++ b/Source/SPIndexesController.h @@ -68,6 +68,7 @@ #endif BOOL _mainNibLoaded; + BOOL isMyISAMTale; NSString *table; NSMutableArray *fields, *indexes, *indexedFields; diff --git a/Source/SPIndexesController.m b/Source/SPIndexesController.m index 44de06c8..9db491ae 100644 --- a/Source/SPIndexesController.m +++ b/Source/SPIndexesController.m @@ -44,6 +44,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; @interface SPIndexesController (PrivateAPI) +- (void)_addAdditionalIndexTypes; - (void)_reloadIndexedColumnsTableData; - (void)_addIndexUsingDetails:(NSDictionary *)indexDetails; @@ -58,6 +59,13 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; @synthesize table; @synthesize connection; +#ifdef SP_REFACTOR +@synthesize indexesTableView; +@synthesize tableStructure; +@synthesize addIndexButton; +@synthesize removeIndexButton; +#endif + #pragma mark - /** @@ -65,8 +73,13 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; */ - (id)init { - if ((self = [super initWithWindowNibName:@"IndexesView"])) { +#ifndef SP_REFACTOR + NSString* nibName = @"IndexesView"; +#else + NSString* nibName = @"SQLIndexes"; +#endif + if ((self = [super initWithWindowNibName:nibName])) { _mainNibLoaded = NO; table = @""; @@ -76,13 +89,13 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; #ifndef SP_REFACTOR /* init ivars */ prefs = [NSUserDefaults standardUserDefaults]; -#endif showAdvancedView = NO; heightOffset = 0; windowMinWidth = [[self window] minSize].width; windowMinHeigth = [[self window] minSize].height; +#endif // Create an array of field types that supporting specifying an index length prefix supportsLength = [[NSArray alloc] initWithObjects: @@ -103,7 +116,6 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; */ - (void)awakeFromNib { - // As this controller also loads its own nib, it may call awakeFromNib multiple times; perform setup only once. if (_mainNibLoaded) return; _mainNibLoaded = YES; @@ -144,13 +156,14 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; */ - (IBAction)addIndex:(id)sender { - // Check whether table editing is permitted (necessary as some actions - eg table double-click - bypass validation) if ([dbDocument isWorking] || [tablesList tableType] != SPTableTypeTable) return; // Check whether a save of the current field row is required. if (![tableStructure saveRowOnDeselect]) return; - + + isMyISAMTale = [[[tableData statusValues] objectForKey:@"Engine"] isEqualToString:@"MyISAM"]; + // Reset visibility of the primary key item [[[indexTypePopUpButton menu] itemWithTag:SPPrimaryKeyMenuTag] setHidden:NO]; @@ -159,19 +172,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [indexNameTextField setEnabled:NO]; [indexNameTextField setStringValue:@"PRIMARY"]; - // Remove any existing SPATIAL menu item - if ([indexTypePopUpButton indexOfItemWithTag:SPSpatialMenuTag] != -1) - [indexTypePopUpButton removeItemAtIndex:[indexTypePopUpButton indexOfItemWithTag:SPSpatialMenuTag]]; - - // If the table is of type MyISAM and Spatial extension support is available, (re-)add the SPATIAL type - NSString *engine = [[tableData statusValues] objectForKey:@"Engine"]; - - if ([engine isEqualToString:@"MyISAM"] && [[dbDocument serverSupport] supportsSpatialExtensions]) { - NSMenuItem *spatialMenuItem = [[[NSMenuItem alloc] init] autorelease]; - [spatialMenuItem setTitle:NSLocalizedString(@"SPATIAL", @"Spatial index menu item title")]; - [spatialMenuItem setTag:SPSpatialMenuTag]; - [[indexTypePopUpButton menu] addItem:spatialMenuItem]; - } + [self _addAdditionalIndexTypes]; // Check to see whether a primary key already exists for the table, and if so select INDEX instead for (NSDictionary *field in fields) @@ -224,17 +225,19 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; // initial key has a required size [indexSizeTableColumn setHidden:![requiresLength containsObject:[[initialField objectForKey:@"type"] uppercaseString]]]; - [indexedColumnsTableView reloadData]; + [self _reloadIndexedColumnsTableData]; [addIndexedColumnButton setEnabled:([indexedFields count] < [fields count])]; +#ifndef SP_REFACTOR // MyISAM and InnoDB tables only support BTREE storage types so disable the storage type popup button // as it's the default anyway. - [indexStorageTypePopUpButton setEnabled:(!([engine isEqualToString:@"MyISAM"] || [engine isEqualToString:@"InnoDB"]))]; + [indexStorageTypePopUpButton setEnabled:(!(isMyISAMTale || [[[tableData statusValues] objectForKey:@"Engine"] isEqualToString:@"InnoDB"]))]; // The ability to specify an index's key block size was added in MySQL 5.1.10 so disable the textfield // if it's not supported. [indexKeyBlockSizeTextField setEnabled:[[dbDocument serverSupport] supportsIndexKeyBlockSize]]; +#endif // Begin the sheet [NSApp beginSheet:[self window] @@ -285,7 +288,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; defaultButton:NSLocalizedString(@"Delete", @"delete button") alternateButton:NSLocalizedString(@"Cancel", @"cancel button") otherButton:nil - informativeTextWithFormat:(hasForeignKey) ? [NSString stringWithFormat:NSLocalizedString(@"The foreign key relationship '%@' has a dependency on this index. This relationship must be removed before the index can be deleted.\n\nAre you sure you want to continue to delete the relationship and the index? This action cannot be undone.", @"delete index and foreign key informative message"), constraintName] : [NSString stringWithFormat:NSLocalizedString(@"Are you sure you want to delete the index '%@'? This action cannot be undone.", @"delete index informative message"), keyName]]; + informativeTextWithFormat:hasForeignKey ? [NSString stringWithFormat:NSLocalizedString(@"The foreign key relationship '%@' has a dependency on this index. This relationship must be removed before the index can be deleted.\n\nAre you sure you want to continue to delete the relationship and the index? This action cannot be undone.", @"delete index and foreign key informative message"), constraintName] : [NSString stringWithFormat:NSLocalizedString(@"Are you sure you want to delete the index '%@'? This action cannot be undone.", @"delete index informative message"), keyName]]; [alert setAlertStyle:NSCriticalAlertStyle]; @@ -309,7 +312,9 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; if (indexType == SPPrimaryKeyMenuTag) { [indexNameTextField setEnabled:NO]; [indexNameTextField setStringValue:@"PRIMARY"]; +#ifndef SP_REFACTOR [indexStorageTypePopUpButton setEnabled:NO]; +#endif } else { [indexNameTextField setEnabled:YES]; @@ -318,9 +323,16 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [indexNameTextField setStringValue:@""]; } +#ifndef SP_REFACTOR + NSString *engine = [[tableData statusValues] objectForKey:@"Engine"]; + // Specifiying an index storage type (i.e. HASH or BTREE) is not permitted with SPATIAL indexes - [indexStorageTypePopUpButton setEnabled:(indexType != SPSpatialMenuTag)]; + [indexStorageTypePopUpButton setEnabled:(indexType != SPSpatialMenuTag) && !(isMyISAMTale || [engine isEqualToString:@"InnoDB"])]; +#endif } + + [indexSizeTableColumn setHidden:[[indexTypePopUpButton selectedItem] tag] == SPFullTextMenuTag]; + [indexesTableView reloadData]; } /** @@ -328,10 +340,12 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; */ - (IBAction)closeSheet:(id)sender { +#ifndef SP_REFACTOR // Close the advanced options view if it's open [indexAdvancedOptionsView setHidden:YES]; [indexAdvancedOptionsViewButton setState:NSOffState]; showAdvancedView = NO; +#endif // Hide the size column [indexSizeTableColumn setHidden:YES]; @@ -341,8 +355,10 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [NSApp endSheet:[sender window] returnCode:[sender tag]]; [[sender window] orderOut:self]; +#ifndef SP_REFACTOR // Clear the index key block size field [indexKeyBlockSizeTextField setStringValue:@""]; +#endif } /** @@ -369,7 +385,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [self _reloadIndexedColumnsTableData]; // Select new added row - [indexedColumnsTableView selectRowIndexes:[NSIndexSet indexSetWithIndex:[indexedFields count]-1] byExtendingSelection:NO]; + [indexedColumnsTableView selectRowIndexes:[NSIndexSet indexSetWithIndex:[indexedFields count] - 1] byExtendingSelection:NO]; [addIndexedColumnButton setEnabled:([indexedFields count] < [fields count])]; } @@ -391,6 +407,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; */ - (IBAction)toggleAdvancedIndexOptionsView:(id)sender { +#ifndef SP_REFACTOR showAdvancedView = (!showAdvancedView); [indexAdvancedOptionsViewButton setState:showAdvancedView]; @@ -399,14 +416,18 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; // When hiding the advanced options, the size column would normally be hidden as well // - unless any of the ndexes fields have a required key size. BOOL hideSizesColumn = !showAdvancedView; + if (hideSizesColumn) { - for (NSDictionary *aField in indexedFields) { + for (NSDictionary *aField in indexedFields) + { if ([requiresLength containsObject:[[aField objectForKey:@"type"] uppercaseString]]) hideSizesColumn = NO; } } + [indexSizeTableColumn setHidden:hideSizesColumn]; [self _resizeWindowForAdvancedOptionsViewByHeightDelta:(showAdvancedView) ? ([indexAdvancedOptionsView frame].size.height + 10) : 0]; +#endif } #pragma mark - @@ -425,9 +446,11 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; } else { id object = [[indexedFields objectAtIndex:rowIndex] objectForKey:[tableColumn identifier]]; + if ([[tableColumn identifier] isEqualToString:@"Size"] && object) { object = [NSNumber numberWithLongLong:[object longLongValue]]; } + return object; } } @@ -453,9 +476,11 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; if ([object isKindOfClass:[NSNumber class]]) { object = [NSString stringWithFormat:@"%llu", [object unsignedLongLongValue]]; } + if (object) { [[indexedFields objectAtIndex:rowIndex] setObject:object forKey:[tableColumn identifier]]; - } else { + } + else { [[indexedFields objectAtIndex:rowIndex] removeObjectForKey:[tableColumn identifier]]; } } @@ -468,8 +493,10 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; if ([[tableColumn identifier] isEqualToString:@"Size"]) { // If the field is of type TEXT or BLOB then a index prefix length is required so change the default - // placeholder of 'optional' to 'required'. - [cell setPlaceholderString:([requiresLength containsObject:[[[indexedFields objectAtIndex:rowIndex] objectForKey:@"type"] uppercaseString]]) ? NSLocalizedString(@"required", @"required placeholder string") : NSLocalizedString(@"optional", @"optional placeholder string")]; + // placeholder of 'optional' to 'required', BUT only if the index type is not FULLTEXT. + BOOL isFullTextType = [[indexTypePopUpButton selectedItem] tag] == SPFullTextMenuTag; + + [cell setPlaceholderString:([requiresLength containsObject:[[[indexedFields objectAtIndex:rowIndex] objectForKey:@"type"] uppercaseString]] && !isFullTextType) ? NSLocalizedString(@"required", @"required placeholder string") : NSLocalizedString(@"optional", @"optional placeholder string")]; } } @@ -584,7 +611,9 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [indexDetails setObject:indexedFields forKey:SPNewIndexIndexedColumns]; [indexDetails setObject:[indexNameTextField stringValue] forKey:SPNewIndexIndexName]; - switch ([[indexTypePopUpButton selectedItem] tag]) { + + switch ([[indexTypePopUpButton selectedItem] tag]) + { case SPPrimaryKeyMenuTag: [indexDetails setObject:@"PRIMARY KEY" forKey:SPNewIndexIndexType]; break; @@ -602,6 +631,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; break; } +#ifndef SP_REFACTOR // If there is a key block size set it means the database version supports it if ([[indexKeyBlockSizeTextField stringValue] length]) { [indexDetails setObject:[NSNumber numberWithInteger:[indexKeyBlockSizeTextField integerValue]] forKey:SPNewIndexKeyBlockSize]; @@ -610,6 +640,7 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; if (([indexStorageTypePopUpButton indexOfSelectedItem] > 0) && ([[indexTypePopUpButton selectedItem] tag] != SPSpatialMenuTag)) { [indexDetails setObject:[indexStorageTypePopUpButton titleOfSelectedItem] forKey:SPNewIndexStorageType]; } +#endif if ([NSThread isMainThread]) { [NSThread detachNewThreadSelector:@selector(_addIndexUsingDetails:) toTarget:self withObject:indexDetails]; @@ -707,6 +738,39 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; #pragma mark - #pragma mark Private API methods +/** + * Adds any additional index types depending on the table type. + */ +- (void)_addAdditionalIndexTypes +{ + if ([indexTypePopUpButton indexOfItemWithTag:SPSpatialMenuTag] > -1) { + [indexTypePopUpButton removeItemAtIndex:[indexTypePopUpButton indexOfItemWithTag:SPSpatialMenuTag]]; + } + + if ([indexTypePopUpButton indexOfItemWithTag:SPFullTextMenuTag] > -1) { + [indexTypePopUpButton removeItemAtIndex:[indexTypePopUpButton indexOfItemWithTag:SPFullTextMenuTag]]; + } + + // FULLTEXT and SPATIAL index types are only available using the MyISAM engine + if (isMyISAMTale) { + if ([[dbDocument serverSupport] supportsSpatialExtensions]) { + NSMenuItem *spatialMenuItem = [[[NSMenuItem alloc] init] autorelease]; + + [spatialMenuItem setTitle:NSLocalizedString(@"SPATIAL", @"spatial index menu item title")]; + [spatialMenuItem setTag:SPSpatialMenuTag]; + + [[indexTypePopUpButton menu] addItem:spatialMenuItem]; + } + + NSMenuItem *fullTextMenuItem = [[[NSMenuItem alloc] init] autorelease]; + + [fullTextMenuItem setTitle:NSLocalizedString(@"FULLTEXT", @"full text index menu item title")]; + [fullTextMenuItem setTag:SPFullTextMenuTag]; + + [[indexTypePopUpButton menu] addItem:fullTextMenuItem]; + } +} + /** * Reloads the indexed columns table view data and displays the size column if required. */ @@ -715,20 +779,25 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; NSUInteger sizeRequiredFieldAndNotYetSet = 0; NSUInteger sizeRequired = 0; - for (NSDictionary *field in indexedFields) { + for (NSDictionary *field in indexedFields) + { if ([requiresLength containsObject:[[field objectForKey:@"type"] uppercaseString]]) { sizeRequired++; sizeRequiredFieldAndNotYetSet++; - if([field objectForKey:@"Size"] && [(NSString *)[field objectForKey:@"Size"] length]) + + if ([field objectForKey:@"Size"] && [(NSString *)[field objectForKey:@"Size"] length]) { sizeRequiredFieldAndNotYetSet--; + } } } +#ifndef SP_REFACTOR // Only toggle the sizes column if the advanced view is hidden and at least one field requires a size - if (!showAdvancedView) [indexSizeTableColumn setHidden:(!sizeRequired)]; + if (!showAdvancedView) [indexSizeTableColumn setHidden:!sizeRequired]; +#endif // Validate Add Button - [confirmAddIndexButton setEnabled:(!sizeRequiredFieldAndNotYetSet)]; + [confirmAddIndexButton setEnabled:!sizeRequiredFieldAndNotYetSet]; [indexedColumnsTableView reloadData]; } @@ -773,11 +842,13 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; if ((![columnName length]) || (![columnType length])) continue; + BOOL isFullTextType = [indexType isEqualToString:@"FULLTEXT"]; + // If this field type requires a length and one hasn't been specified (interface validation // should ensure this doesn't happen), then skip it. - if ([requiresLength containsObject:[columnType uppercaseString]] && (![(NSString *)[column objectForKey:@"Size"] length])) continue; + if ([requiresLength containsObject:[columnType uppercaseString]] && (![(NSString *)[column objectForKey:@"Size"] length]) && !isFullTextType) continue; - if ([column objectForKey:@"Size"] && [supportsLength containsObject:columnType]) { + if ([column objectForKey:@"Size"] && [supportsLength containsObject:columnType] && !isFullTextType) { [tempIndexedColumns addObject:[NSString stringWithFormat:@"%@ (%@)", [columnName backtickQuotedString], [column objectForKey:@"Size"]]]; } @@ -924,11 +995,14 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; NSUInteger popUpMask = [indexTypePopUpButton autoresizingMask]; NSUInteger nameFieldMask = [indexNameTextField autoresizingMask]; NSUInteger scrollMask = [indexedColumnsScrollView autoresizingMask]; +#ifndef SP_REFACTOR NSUInteger buttonMask = [indexAdvancedOptionsViewButton autoresizingMask]; NSUInteger textFieldMask = [indexAdvancedOptionsViewLabelButton autoresizingMask]; NSUInteger advancedViewMask = [indexAdvancedOptionsView autoresizingMask]; +#endif NSUInteger typeLabelMask = [indexTypeLabel autoresizingMask]; NSUInteger nameLabelMask = [indexNameLabel autoresizingMask]; +#ifndef SP_REFACTOR NSUInteger buttonBarMask = [(NSView*)anchoredButtonBar autoresizingMask]; NSRect frame = [[self window] frame]; @@ -939,21 +1013,27 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [[self window] setFrame:frame display:YES animate:YES]; } +#endif [indexTypePopUpButton setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; [indexNameTextField setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; [indexedColumnsScrollView setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; +#ifndef SP_REFACTOR [indexAdvancedOptionsViewButton setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; [indexAdvancedOptionsViewLabelButton setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; [indexAdvancedOptionsView setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; +#endif [indexTypeLabel setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; [indexNameLabel setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; +#ifndef SP_REFACTOR [(NSView*)anchoredButtonBar setAutoresizingMask:NSViewNotSizable | NSViewMinYMargin]; NSInteger newMinHeight = (windowMinHeigth - heightOffset + delta < windowMinHeigth) ? windowMinHeigth : windowMinHeigth - heightOffset + delta; [[self window] setMinSize:NSMakeSize(windowMinWidth, newMinHeight)]; +#endif +#ifndef SP_REFACTOR frame.origin.y += heightOffset; frame.size.height -= heightOffset; @@ -963,16 +1043,21 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; frame.size.height += heightOffset; [[self window] setFrame:frame display:YES animate:YES]; +#endif [indexTypePopUpButton setAutoresizingMask:popUpMask]; [indexNameTextField setAutoresizingMask:nameFieldMask]; [indexedColumnsScrollView setAutoresizingMask:scrollMask]; +#ifndef SP_REFACTOR [indexAdvancedOptionsViewButton setAutoresizingMask:buttonMask]; [indexAdvancedOptionsViewLabelButton setAutoresizingMask:textFieldMask]; [indexAdvancedOptionsView setAutoresizingMask:advancedViewMask]; +#endif [indexTypeLabel setAutoresizingMask:typeLabelMask]; [indexNameLabel setAutoresizingMask:nameLabelMask]; +#ifndef SP_REFACTOR [(NSView*)anchoredButtonBar setAutoresizingMask:buttonBarMask]; +#endif } #pragma mark - @@ -998,4 +1083,11 @@ static const NSString *SPNewIndexKeyBlockSize = @"IndexKeyBlockSize"; [super dealloc]; } +#ifdef SP_REFACTOR +- (void)setDatabaseDocument:(SPDatabaseDocument*)db +{ + dbDocument = db; +} +#endif + @end -- cgit v1.2.3