diff options
-rw-r--r-- | Interfaces/English.lproj/DBView.xib | 544 | ||||
-rw-r--r-- | Source/TablesList.h | 4 | ||||
-rw-r--r-- | Source/TablesList.m | 230 |
3 files changed, 214 insertions, 564 deletions
diff --git a/Interfaces/English.lproj/DBView.xib b/Interfaces/English.lproj/DBView.xib index cec05aa8..a4db02ad 100644 --- a/Interfaces/English.lproj/DBView.xib +++ b/Interfaces/English.lproj/DBView.xib @@ -18,7 +18,7 @@ <bool key="EncodedWithXMLCoder">YES</bool> <string>740</string> <string>740</string> - <string>1.2.1</string> + <string>1.2.5</string> </object> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> @@ -1691,6 +1691,7 @@ <bool key="BWGBHasTopBorder">NO</bool> <bool key="BWGBHasBottomBorder">NO</bool> <bool key="BWGBHasGradient">NO</bool> + <bool key="BWGBHasFillColor">NO</bool> <float key="BWGBTopInsetAlpha">0.0</float> <float key="BWGBBottomInsetAlpha">0.0</float> </object> @@ -5956,107 +5957,6 @@ <string key="NSMinSize">{260, 149}</string> <string key="NSMaxSize">{600, 149}</string> </object> - <object class="NSWindowTemplate" id="399092485"> - <int key="NSWindowStyleMask">9</int> - <int key="NSWindowBacking">2</int> - <string key="NSWindowRect">{{343, 483}, {260, 112}}</string> - <int key="NSWTFlags">1886912512</int> - <string key="NSWindowTitle">Rename Table</string> - <string key="NSWindowClass">NSWindow</string> - <object class="NSMutableString" key="NSViewClass"> - <characters key="NS.bytes">View</characters> - </object> - <string key="NSWindowContentMaxSize">{600, 112}</string> - <string key="NSWindowContentMinSize">{260, 112}</string> - <object class="NSView" key="NSWindowView" id="44272488"> - <nil key="NSNextResponder"/> - <int key="NSvFlags">256</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSTextField" id="731300775"> - <reference key="NSNextResponder" ref="44272488"/> - <int key="NSvFlags">266</int> - <string key="NSFrame">{{17, 78}, {235, 14}}</string> - <reference key="NSSuperview" ref="44272488"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="487237473"> - <int key="NSCellFlags">67239488</int> - <int key="NSCellFlags2">4196864</int> - <string key="NSContents">Rename table %@ to:</string> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="731300775"/> - <reference key="NSBackgroundColor" ref="62854682"/> - <reference key="NSTextColor" ref="454249633"/> - </object> - </object> - <object class="NSTextField" id="272856728"> - <reference key="NSNextResponder" ref="44272488"/> - <int key="NSvFlags">258</int> - <string key="NSFrame">{{20, 52}, {220, 18}}</string> - <reference key="NSSuperview" ref="44272488"/> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="859957158"> - <int key="NSCellFlags">-1804468671</int> - <int key="NSCellFlags2">4326400</int> - <string key="NSContents"/> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="272856728"/> - <bool key="NSDrawsBackground">YES</bool> - <reference key="NSBackgroundColor" ref="480189472"/> - <reference key="NSTextColor" ref="690893883"/> - </object> - </object> - <object class="NSButton" id="994798282"> - <reference key="NSNextResponder" ref="44272488"/> - <int key="NSvFlags">289</int> - <string key="NSFrame">{{166, 13}, {79, 28}}</string> - <reference key="NSSuperview" ref="44272488"/> - <int key="NSTag">1</int> - <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="825486974"> - <int key="NSCellFlags">604110336</int> - <int key="NSCellFlags2">138018816</int> - <string key="NSContents">Rename</string> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="994798282"/> - <int key="NSTag">1</int> - <int key="NSButtonFlags">-2038284033</int> - <int key="NSButtonFlags2">1</int> - <reference key="NSAlternateImage" ref="932958253"/> - <string key="NSAlternateContents"/> - <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string> - <int key="NSPeriodicDelay">200</int> - <int key="NSPeriodicInterval">25</int> - </object> - </object> - <object class="NSButton" id="88145988"> - <reference key="NSNextResponder" ref="44272488"/> - <int key="NSvFlags">257</int> - <string key="NSFrame">{{91, 13}, {77, 28}}</string> - <reference key="NSSuperview" ref="44272488"/> - <bool key="NSEnabled">YES</bool> - <object class="NSButtonCell" key="NSCell" id="875831639"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">138018816</int> - <string key="NSContents">Cancel</string> - <reference key="NSSupport" ref="26"/> - <reference key="NSControlView" ref="88145988"/> - <int key="NSButtonFlags">-2038284033</int> - <int key="NSButtonFlags2">1</int> - <reference key="NSAlternateImage" ref="932958253"/> - <string key="NSAlternateContents"/> - <string type="base64-UTF8" key="NSKeyEquivalent">Gw</string> - <int key="NSPeriodicDelay">200</int> - <int key="NSPeriodicInterval">25</int> - </object> - </object> - </object> - <string key="NSFrameSize">{260, 112}</string> - </object> - <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> - <string key="NSMinSize">{260, 134}</string> - <string key="NSMaxSize">{600, 134}</string> - </object> <object class="NSWindowTemplate" id="549044462"> <int key="NSWindowStyleMask">1</int> <int key="NSWindowBacking">2</int> @@ -12973,30 +12873,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <int key="connectionID">5605</int> </object> <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">tableRenameSheet</string> - <reference key="source" ref="438574515"/> - <reference key="destination" ref="399092485"/> - </object> - <int key="connectionID">5685</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">tableRenameText</string> - <reference key="source" ref="438574515"/> - <reference key="destination" ref="731300775"/> - </object> - <int key="connectionID">5686</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">closeSheet:</string> - <reference key="source" ref="438574515"/> - <reference key="destination" ref="88145988"/> - </object> - <int key="connectionID">5691</int> - </object> - <object class="IBConnectionRecord"> <object class="IBActionConnection" key="connection"> <string key="label">closeSheet:</string> <reference key="source" ref="438574515"/> @@ -13005,30 +12881,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <int key="connectionID">5692</int> </object> <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> - <string key="label">closeSheet:</string> - <reference key="source" ref="438574515"/> - <reference key="destination" ref="994798282"/> - </object> - <int key="connectionID">5693</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">delegate</string> - <reference key="source" ref="272856728"/> - <reference key="destination" ref="438574515"/> - </object> - <int key="connectionID">5694</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> - <string key="label">tableRenameField</string> - <reference key="source" ref="438574515"/> - <reference key="destination" ref="272856728"/> - </object> - <int key="connectionID">5697</int> - </object> - <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> <string key="label">tableNameField</string> <reference key="source" ref="438574515"/> @@ -13762,14 +13614,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">renameTableButton</string> - <reference key="source" ref="438574515"/> - <reference key="destination" ref="994798282"/> - </object> - <int key="connectionID">6206</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">databaseDataInstance</string> <reference key="source" ref="438574515"/> <reference key="destination" ref="631714493"/> @@ -19025,84 +18869,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <reference key="parent" ref="81525228"/> </object> <object class="IBObjectRecord"> - <int key="objectID">5675</int> - <reference key="object" ref="399092485"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="44272488"/> - </object> - <reference key="parent" ref="0"/> - <string key="objectName">Rename Table Sheet</string> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5676</int> - <reference key="object" ref="44272488"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="994798282"/> - <reference ref="731300775"/> - <reference ref="272856728"/> - <reference ref="88145988"/> - </object> - <reference key="parent" ref="399092485"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5677</int> - <reference key="object" ref="88145988"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="875831639"/> - </object> - <reference key="parent" ref="44272488"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5678</int> - <reference key="object" ref="272856728"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="859957158"/> - </object> - <reference key="parent" ref="44272488"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5679</int> - <reference key="object" ref="731300775"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="487237473"/> - </object> - <reference key="parent" ref="44272488"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5680</int> - <reference key="object" ref="994798282"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="825486974"/> - </object> - <reference key="parent" ref="44272488"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5681</int> - <reference key="object" ref="825486974"/> - <reference key="parent" ref="994798282"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5682</int> - <reference key="object" ref="487237473"/> - <reference key="parent" ref="731300775"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5683</int> - <reference key="object" ref="859957158"/> - <reference key="parent" ref="272856728"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">5684</int> - <reference key="object" ref="875831639"/> - <reference key="parent" ref="88145988"/> - </object> - <object class="IBObjectRecord"> <int key="objectID">5701</int> <reference key="object" ref="799840790"/> <object class="NSMutableArray" key="children"> @@ -21862,28 +21628,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>5658.IBPluginDependency</string> <string>5659.IBPluginDependency</string> <string>5660.IBPluginDependency</string> - <string>5675.IBEditorWindowLastContentRect</string> - <string>5675.IBPluginDependency</string> - <string>5675.IBWindowTemplateEditedContentRect</string> - <string>5675.ImportedFromIB2</string> - <string>5675.windowTemplate.hasMaxSize</string> - <string>5675.windowTemplate.hasMinSize</string> - <string>5675.windowTemplate.maxSize</string> - <string>5675.windowTemplate.minSize</string> - <string>5676.IBPluginDependency</string> - <string>5676.ImportedFromIB2</string> - <string>5677.IBPluginDependency</string> - <string>5677.ImportedFromIB2</string> - <string>5678.IBPluginDependency</string> - <string>5678.ImportedFromIB2</string> - <string>5679.IBPluginDependency</string> - <string>5679.ImportedFromIB2</string> - <string>5680.IBPluginDependency</string> - <string>5680.ImportedFromIB2</string> - <string>5681.IBPluginDependency</string> - <string>5682.IBPluginDependency</string> - <string>5683.IBPluginDependency</string> - <string>5684.IBPluginDependency</string> <string>5701.IBPluginDependency</string> <string>5701.ImportedFromIB2</string> <string>5702.IBPluginDependency</string> @@ -23544,28 +23288,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{654, 442}, {260, 112}}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{654, 442}, {260, 112}}</string> - <integer value="1"/> - <boolean value="YES"/> - <integer value="1"/> - <string>{600, 112}</string> - <string>{260, 112}</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="1"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="1"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="1"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="1"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <integer value="1"/> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -24258,14 +23980,12 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <object class="NSArray" key="dict.sortedKeys"> <bool key="EncodedWithXMLCoder">YES</bool> <string>mySQLConnection</string> - <string>tableData</string> <string>tableInstance</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <string>id</string> <string>id</string> - <string>id</string> </object> </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> @@ -24314,7 +24034,9 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <bool key="EncodedWithXMLCoder">YES</bool> <string>chooseQueryFavorite:</string> <string>chooseQueryHistory:</string> + <string>clearQueryHistory:</string> <string>closeSheet:</string> + <string>copyQueryHistory:</string> <string>filterQueryFavorites:</string> <string>filterQueryHistory:</string> <string>gearMenuItemSelected:</string> @@ -24327,6 +24049,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>helpTargetDispatcher:</string> <string>runAllQueries:</string> <string>runSelectedQueries:</string> + <string>saveQueryHistory:</string> <string>showAutoHelpForCurrentWord:</string> <string>showHelpForCurrentWord:</string> <string>showHelpForSearchString:</string> @@ -24351,6 +24074,9 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>id</string> <string>id</string> <string>id</string> + <string>id</string> + <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -24366,8 +24092,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>commentCurrentQueryMenuItem</string> <string>commentLineOrSelectionMenuItem</string> <string>completionListMenuItem</string> + <string>copyHistoryMenuItem</string> + <string>customQueryScrollView</string> <string>customQueryView</string> <string>editorFontMenuItem</string> + <string>encodingPopUp</string> <string>errorText</string> <string>helpNavigator</string> <string>helpSearchField</string> @@ -24392,6 +24121,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>runAllMenuItem</string> <string>runSelectionButton</string> <string>runSelectionMenuItem</string> + <string>saveHistoryMenuItem</string> <string>saveQueryFavoriteButton</string> <string>saveQueryFavoriteGlobal</string> <string>shiftLeftMenuItem</string> @@ -24413,8 +24143,11 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>NSMenuItem</string> <string>NSMenuItem</string> <string>NSMenuItem</string> + <string>NSMenuItem</string> + <string>NSScrollView</string> <string>CMCopyTable</string> <string>NSMenuItem</string> + <string>NSPopUpButton</string> <string>id</string> <string>NSSegmentedControl</string> <string>NSSearchField</string> @@ -24439,6 +24172,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>NSMenuItem</string> <string>id</string> <string>NSMenuItem</string> + <string>NSMenuItem</string> <string>NSButton</string> <string>id</string> <string>NSMenuItem</string> @@ -25080,7 +24814,7 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>NSView</string> <string>id</string> <string>id</string> - <string>id</string> + <string>NSPopUpButton</string> <string>id</string> <string>id</string> <string>id</string> @@ -25743,173 +25477,76 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> </object> - <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.1+"> + <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBPartialClassDescription"> - <string key="className">CustomQuery</string> - <string key="superclassName">NSObject</string> - <object class="NSMutableDictionary" key="actions"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>chooseQueryFavorite:</string> - <string>chooseQueryHistory:</string> - <string>clearQueryHistory:</string> - <string>closeSheet:</string> - <string>copyQueryHistory:</string> - <string>filterQueryFavorites:</string> - <string>filterQueryHistory:</string> - <string>gearMenuItemSelected:</string> - <string>helpSearchFindNextInPage:</string> - <string>helpSearchFindPreviousInPage:</string> - <string>helpSegmentDispatcher:</string> - <string>helpSelectHelpTargetMySQL:</string> - <string>helpSelectHelpTargetPage:</string> - <string>helpSelectHelpTargetWeb:</string> - <string>helpTargetDispatcher:</string> - <string>runAllQueries:</string> - <string>runSelectedQueries:</string> - <string>saveQueryHistory:</string> - <string>showAutoHelpForCurrentWord:</string> - <string>showHelpForCurrentWord:</string> - <string>showHelpForSearchString:</string> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - <string>id</string> - </object> + <string key="className">BWAnchoredButton</string> + <string key="superclassName">NSButton</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWAnchoredButton.h</string> </object> - <object class="NSMutableDictionary" key="outlets"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSArray" key="dict.sortedKeys"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>affectedRowsText</string> - <string>autohelpMenuItem</string> - <string>autoindentMenuItem</string> - <string>autopairMenuItem</string> - <string>autouppercaseKeywordsMenuItem</string> - <string>clearHistoryMenuItem</string> - <string>commentCurrentQueryMenuItem</string> - <string>commentLineOrSelectionMenuItem</string> - <string>completionListMenuItem</string> - <string>copyHistoryMenuItem</string> - <string>customQueryScrollView</string> - <string>customQueryView</string> - <string>editorFontMenuItem</string> - <string>errorText</string> - <string>helpNavigator</string> - <string>helpSearchField</string> - <string>helpSearchFieldCell</string> - <string>helpTargetSelector</string> - <string>helpWebView</string> - <string>helpWebViewWindow</string> - <string>multipleLineEditingButton</string> - <string>queryFavoriteNameTextField</string> - <string>queryFavoritesButton</string> - <string>queryFavoritesSaveAllMenuItem</string> - <string>queryFavoritesSaveAsMenuItem</string> - <string>queryFavoritesSearchField</string> - <string>queryFavoritesSearchFieldView</string> - <string>queryFavoritesSearchMenuItem</string> - <string>queryFavoritesSheet</string> - <string>queryHistoryButton</string> - <string>queryHistorySearchField</string> - <string>queryHistorySearchFieldView</string> - <string>queryHistorySearchMenuItem</string> - <string>runAllButton</string> - <string>runAllMenuItem</string> - <string>runSelectionButton</string> - <string>runSelectionMenuItem</string> - <string>saveHistoryMenuItem</string> - <string>saveQueryFavoriteButton</string> - <string>saveQueryFavoriteGlobal</string> - <string>shiftLeftMenuItem</string> - <string>shiftRightMenuItem</string> - <string>tableDocumentInstance</string> - <string>tableWindow</string> - <string>textView</string> - <string>valueSheet</string> - <string>valueTextField</string> - </object> - <object class="NSMutableArray" key="dict.values"> - <bool key="EncodedWithXMLCoder">YES</bool> - <string>id</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSScrollView</string> - <string>CMCopyTable</string> - <string>NSMenuItem</string> - <string>id</string> - <string>NSSegmentedControl</string> - <string>NSSearchField</string> - <string>NSSearchFieldCell</string> - <string>NSSegmentedControl</string> - <string>WebView</string> - <string>NSWindow</string> - <string>id</string> - <string>NSTextField</string> - <string>id</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSSearchField</string> - <string>id</string> - <string>NSMenuItem</string> - <string>NSWindow</string> - <string>id</string> - <string>NSSearchField</string> - <string>id</string> - <string>NSMenuItem</string> - <string>id</string> - <string>NSMenuItem</string> - <string>id</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>NSButton</string> - <string>id</string> - <string>NSMenuItem</string> - <string>NSMenuItem</string> - <string>id</string> - <string>id</string> - <string>CMTextView</string> - <string>id</string> - <string>id</string> - </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWAnchoredButtonBar</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWAnchoredButtonBar.h</string> </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWAnchoredButtonCell</string> + <string key="superclassName">NSButtonCell</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBDocumentRelativeSource</string> - <string key="minorKey">../../Source/CustomQuery.h</string> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWAnchoredButtonCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWAnchoredPopUpButton</string> + <string key="superclassName">NSPopUpButton</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWAnchoredPopUpButton.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWAnchoredPopUpButtonCell</string> + <string key="superclassName">NSPopUpButtonCell</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWAnchoredPopUpButtonCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWGradientBox</string> + <string key="superclassName">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWGradientBox.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWInsetTextField</string> + <string key="superclassName">NSTextField</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWInsetTextField.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">BWSplitView</string> + <string key="superclassName">NSSplitView</string> + <object class="NSMutableDictionary" key="actions"> + <string key="NS.key.0">toggleCollapse:</string> + <string key="NS.object.0">id</string> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/BWSplitView.h</string> </object> </object> - </object> - <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+"> - <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBPartialClassDescription"> <string key="className">NSActionCell</string> <string key="superclassName">NSCell</string> @@ -25962,6 +25599,13 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSApplication</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/NSApplication+BWAdditions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSBox</string> <string key="superclassName">NSView</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> @@ -26715,6 +26359,13 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <reference key="sourceIdentifier" ref="559681503"/> </object> <object class="IBPartialClassDescription"> + <string key="className">NSView</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/NSView+BWAdditions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSWindow</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> @@ -26737,6 +26388,13 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSWindow</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">BWToolkitFramework.framework/Headers/NSWindow+BWAdditions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSWindowController</string> <string key="superclassName">NSResponder</string> <object class="NSMutableDictionary" key="actions"> diff --git a/Source/TablesList.h b/Source/TablesList.h index 1318108b..b64e0de0 100644 --- a/Source/TablesList.h +++ b/Source/TablesList.h @@ -73,10 +73,6 @@ enum sp_table_types IBOutlet id toolbarActionsButton; IBOutlet id toolbarReloadButton; IBOutlet id addTableButton; - IBOutlet id tableRenameSheet; - IBOutlet id tableRenameField; - IBOutlet id tableRenameText; - IBOutlet id renameTableButton; IBOutlet id truncateTableButton; IBOutlet id truncateTableContextButton; IBOutlet NSSplitView *tableListSplitView; diff --git a/Source/TablesList.m b/Source/TablesList.m index 31cbd599..cff345fc 100644 --- a/Source/TablesList.m +++ b/Source/TablesList.m @@ -45,10 +45,9 @@ - (void)truncateTable; - (void)addTable; - (void)copyTable; -- (void)renameTable; -- (void)renameTableFrom:(NSString *)oldTableName To:(NSString *)newTableName; -- (BOOL)isTableNameValid:(NSString *)tableName; -- (BOOL)isTableNameValid:(NSString *)tableName ignoringSelectedTable:(BOOL)ignoreSelectedTable; +- (void)renameTableOfType: (enum sp_table_types)tableType from:(NSString *)oldTableName to:(NSString *)newTableName; +- (BOOL)isTableNameValid:(NSString *)tableName forType: (enum sp_table_types)tableType; +- (BOOL)isTableNameValid:(NSString *)tableName forType: (enum sp_table_types)tableType ignoringSelectedTable:(BOOL)ignoreSelectedTable; @end @@ -417,7 +416,7 @@ } /** - * Renames the currently selected table. + * This action starts editing the table name in the table list */ - (IBAction)renameTable:(id)sender { @@ -426,7 +425,15 @@ } [tableWindow endEditingFor:nil]; - [tableRenameField setStringValue:[self tableName]]; + + if ([tablesListView numberOfSelectedRows] != 1) return; + if (![[self tableName] length]) return; + + [tablesListView editColumn:0 row:[tablesListView selectedRow] withEvent:nil select:YES]; + + /* + + [tableRenameField setStringValue:[self tableName]]; [renameTableButton setEnabled:NO]; NSString *tableType; @@ -448,11 +455,13 @@ [tableRenameText setStringValue:[NSString stringWithFormat:NSLocalizedString(@"Rename %@ '%@' to:",@"rename item name to:"), tableType, [self tableName]]]; + [NSApp beginSheet:tableRenameSheet modalForWindow:tableWindow modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:@"renameTable"]; + */ } /** @@ -539,11 +548,6 @@ [self copyTable]; } } - else if ([contextInfo isEqualToString:@"renameTable"]) { - if (returnCode == NSOKButton) { - [self renameTable]; - } - } } #pragma mark - @@ -572,21 +576,15 @@ */ - (void)controlTextDidChange:(NSNotification *)notification { - id object = [notification object]; if (object == tableNameField) { - [addTableButton setEnabled:[self isTableNameValid:[tableNameField stringValue]]]; + [addTableButton setEnabled:[self isTableNameValid:[tableNameField stringValue] forType: SP_TABLETYPE_TABLE]]; } else if (object == copyTableNameField) { - [copyTableButton setEnabled:[self isTableNameValid:[copyTableNameField stringValue]]]; - } - - else if (object == tableRenameField) { - [renameTableButton setEnabled:[self isTableNameValid:[tableRenameField stringValue] ignoringSelectedTable:YES]]; + [copyTableButton setEnabled:[self isTableNameValid:[copyTableNameField stringValue] forType:[self tableType]]]; } - } /* @@ -601,10 +599,7 @@ if([[[notification userInfo] objectForKey:@"NSTextMovement"] integerValue] != 0) return; - if (object == tableRenameField) { - [renameTableButton performClick:object]; - } - else if (object == tableNameField) { + if (object == tableNameField) { [addTableButton performClick:object]; } else if (object == copyTableNameField) { @@ -1219,67 +1214,76 @@ */ - (void)tableView:(NSTableView *)aTableView setObjectValue:(id)anObject forTableColumn:(NSTableColumn *)aTableColumn row:(NSInteger)rowIndex { - if ([selectedTableName isEqualToString:anObject]) { + //first trim whitespace whitespace + NSString *newTableName = [anObject stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]; + + if ([selectedTableName isEqualToString:newTableName]) { // No changes in table name return; } - if ([anObject isEqualToString:@""]) { - // Table has no name - alertSheetOpened = YES; + if ([newTableName isEqualToString:@""]) { + // empty table names are not allowed + // don't annoy the user about it, just ignore this + // this is also how the MacOS Finder handles renaming files + return; + } + + if (![self isTableNameValid:newTableName forType:selectedTableType ignoringSelectedTable:YES]) { + // Table has invalid name + // Since we trimmed whitespace and checked for empty string, this means there is already a table with that name SPBeginAlertSheet(NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, - @selector(sheetDidEnd:returnCode:contextInfo:), nil, @"addRow", NSLocalizedString(@"Empty names are not allowed.", @"message of panel when no name is given for an item")); + @selector(sheetDidEnd:returnCode:contextInfo:), nil, nil, + [NSString stringWithFormat: NSLocalizedString(@"The name '%@' is already used.", @"message when trying to rename a table/view/proc/etc to an already used name"), newTableName]); return; - } + } + @try { - [self renameTableFrom:[self tableName] To:anObject]; + // first: update the database + [self renameTableOfType:selectedTableType from:selectedTableName to:newTableName]; - // Renamed with success + // second: update the table list if (isTableListFiltered) { NSInteger unfilteredIndex = [tables indexOfObject:[filteredTables objectAtIndex:rowIndex]]; - [tables replaceObjectAtIndex:unfilteredIndex withObject:anObject]; + [tables replaceObjectAtIndex:unfilteredIndex withObject:newTableName]; } - [filteredTables replaceObjectAtIndex:rowIndex withObject:anObject]; + [filteredTables replaceObjectAtIndex:rowIndex withObject:newTableName]; if (selectedTableName) [selectedTableName release]; - selectedTableName = [[NSString alloc] initWithString:anObject]; - - if(selectedTableType == SP_TABLETYPE_FUNC || selectedTableType == SP_TABLETYPE_PROC) - return; - NSInteger selectedIndex = [tabView indexOfTabViewItem:[tabView selectedTabViewItem]]; + selectedTableName = [[NSString alloc] initWithString:newTableName]; - if (selectedIndex == 0) { - [tableSourceInstance loadTable:anObject]; - structureLoaded = YES; - contentLoaded = NO; - statusLoaded = NO; - } - else if (selectedIndex == 1) { - [tableContentInstance loadTable:anObject]; - structureLoaded = NO; - contentLoaded = YES; - statusLoaded = NO; - } - else if (selectedIndex == 3) { - [extendedTableInfoInstance loadTable:anObject]; - structureLoaded = NO; - contentLoaded = NO; - statusLoaded = YES; - } - else { - statusLoaded = NO; - structureLoaded = NO; - contentLoaded = NO; + // if the 'table' is a view or a table, reload the currently selected view + if (selectedTableType == SP_TABLETYPE_TABLE || selectedTableType == SP_TABLETYPE_VIEW) + { + switch ([tabView indexOfTabViewItem:[tabView selectedTabViewItem]]) { + case 0: + [tableSourceInstance loadTable:newTableName]; + structureLoaded = YES; + contentLoaded = statusLoaded = NO; + break; + case 1: + [tableContentInstance loadTable:newTableName]; + contentLoaded = YES; + structureLoaded = statusLoaded = NO; + break; + case 3: + [extendedTableInfoInstance loadTable:newTableName]; + statusLoaded = YES; + structureLoaded = contentLoaded = NO; + break; + default: + statusLoaded = structureLoaded = contentLoaded = NO; + } } - - // Set window title - [tableWindow setTitle:[tableDocumentInstance displaySPName]]; - - // Query the structure of all databases in the background (mainly for completion) - [NSThread detachNewThreadSelector:@selector(queryDbStructure) toTarget:mySQLConnection withObject:nil]; } @catch (NSException * myException) { - SPBeginAlertSheet( NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, myException.reason); + SPBeginAlertSheet( NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, [myException reason]); } + + // Set window title to reflect the new table name + [tableWindow setTitle:[tableDocumentInstance displaySPName]]; + + // Query the structure of all databases in the background (mainly for completion) + [NSThread detachNewThreadSelector:@selector(queryDbStructure) toTarget:mySQLConnection withObject:nil]; } #pragma mark - @@ -2125,43 +2129,12 @@ } } -/** - * Renames the currently selected object (table, view, procedure, function, etc.). - */ -- (void)renameTable -{ - // if the table name didn't change, do nothing - if ([[tableRenameField stringValue] isEqualToString:[self tableName]]) return; - - @try { - [self renameTableFrom:[self tableName] To:[tableRenameField stringValue]]; - - //rename the table in our list and reload the table view's data - if (isTableListFiltered) { - [tables replaceObjectAtIndex:[tables indexOfObject:[self tableName]] withObject:[tableRenameField stringValue]]; - } - [filteredTables replaceObjectAtIndex:[tablesListView selectedRow] withObject:[tableRenameField stringValue]]; - if (selectedTableName) [selectedTableName release]; - selectedTableName = [[NSString alloc] initWithString:[tableRenameField stringValue]]; - [tablesListView reloadData]; - [self updateSelectionWithTaskString:[NSString stringWithFormat:NSLocalizedString(@"Loading %@...", @"Loading table task string"), selectedTableName]]; - - // Query the structure of all databases in the background (mainly for completion) - [NSThread detachNewThreadSelector:@selector(queryDbStructure) toTarget:mySQLConnection withObject:nil]; - } - @catch (NSException * myException) { - SPBeginAlertSheet( NSLocalizedString(@"Error", @"error"), NSLocalizedString(@"OK", @"OK button"), nil, nil, tableWindow, self, nil, nil, nil, myException.reason); - } - - // Set window title - [tableWindow setTitle:[tableDocumentInstance displaySPName]]; -} - /* * Renames a table, view, procedure or function. Also handles only changes in case! + * This function ONLY changes the database. It does NOT refresh the views etc. * CAREFUL: This function raises an exception if renaming fails, and does not show an error message. */ -- (void)renameTableFrom:(NSString *)oldTableName To:(NSString *)newTableName; +- (void)renameTableOfType: (enum sp_table_types)tableType from:(NSString *)oldTableName to:(NSString *)newTableName { // check if the name really changed if ([oldTableName isEqualToString:newTableName]) return; @@ -2175,20 +2148,20 @@ int tempNumber; for(tempNumber=2; tempNumber<100; tempNumber++) { tempTableName = [NSString stringWithFormat:@"%@-%d",selectedTableName,tempNumber]; - if ([self isTableNameValid:tempTableName]) break; + if ([self isTableNameValid:tempTableName forType:tableType]) break; } if (tempNumber==100) { // we couldn't find a temporary name [NSException raise:@"No Tempname found" format:NSLocalizedString(@"An error occured while renaming '%@'. No temporary name could be found. Please try renaming to something else first.", @"rename table error - no temporary name found"), oldTableName]; } - [self renameTableFrom:oldTableName To:tempTableName]; - [self renameTableFrom:tempTableName To:newTableName]; + [self renameTableOfType:tableType from:oldTableName to:tempTableName]; + [self renameTableOfType:tableType from:tempTableName to:newTableName]; return; } //check if we are trying to rename a TABLE or a VIEW - if (selectedTableType == SP_TABLETYPE_VIEW || selectedTableType == SP_TABLETYPE_TABLE) { + if (tableType == SP_TABLETYPE_VIEW || tableType == SP_TABLETYPE_TABLE) { // we can use the rename table statement [mySQLConnection queryString:[NSString stringWithFormat:@"RENAME TABLE %@ TO %@", [oldTableName backtickQuotedString], [newTableName backtickQuotedString]]]; // check for errors @@ -2199,17 +2172,17 @@ } //check if we are trying to rename a PROCEDURE or a FUNCTION - if (selectedTableType == SP_TABLETYPE_PROC || selectedTableType == SP_TABLETYPE_FUNC) { + if (tableType == SP_TABLETYPE_PROC || tableType == SP_TABLETYPE_FUNC) { // procedures and functions can only be renamed if one creates a new one and deletes the old one // first get the create syntax - NSString *tableType; - switch (selectedTableType){ - case SP_TABLETYPE_PROC: tableType = @"PROCEDURE"; break; - case SP_TABLETYPE_FUNC: tableType = @"FUNCTION"; break; + NSString *stringTableType; + switch (tableType){ + case SP_TABLETYPE_PROC: stringTableType = @"PROCEDURE"; break; + case SP_TABLETYPE_FUNC: stringTableType = @"FUNCTION"; break; } - MCPResult *theResult = [mySQLConnection queryString:[NSString stringWithFormat:@"SHOW CREATE %@ %@", tableType, [oldTableName backtickQuotedString] ] ]; + MCPResult *theResult = [mySQLConnection queryString:[NSString stringWithFormat:@"SHOW CREATE %@ %@", stringTableType, [oldTableName backtickQuotedString] ] ]; if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) { [NSException raise:@"MySQL Error" format:NSLocalizedString(@"An error occured while renaming. I couldn't retrieve the syntax for '%@'.\n\nMySQL said: %@", @"rename precedure/function error - can't retrieve syntax"), oldTableName, [mySQLConnection getLastErrorMessage]]; } @@ -2217,14 +2190,18 @@ NSString *oldCreateSyntax = [[theResult fetchRowAsArray] objectAtIndex:2]; // replace the old name with the new name - NSString *newCreateSyntax = [oldCreateSyntax stringByReplacingCharactersInRange:[oldCreateSyntax rangeOfString: [NSString stringWithFormat:@"%@ %@", tableType, [oldTableName backtickQuotedString] ] ] - withString:[NSString stringWithFormat:@"%@ %@", tableType, [newTableName backtickQuotedString] ] ]; + NSRange rangeOfProcedureName = [oldCreateSyntax rangeOfString: [NSString stringWithFormat:@"%@ %@", stringTableType, [oldTableName backtickQuotedString] ] ]; + if (rangeOfProcedureName.length == 0) { + [NSException raise:@"Unknown Syntax" format:NSLocalizedString(@"An error occured while renaming. The CREATE syntax of '%@' could not be parsed.", @"rename error - invalid create syntax"), oldTableName]; + } + NSString *newCreateSyntax = [oldCreateSyntax stringByReplacingCharactersInRange: rangeOfProcedureName + withString: [NSString stringWithFormat:@"%@ %@", stringTableType, [newTableName backtickQuotedString] ] ]; [mySQLConnection queryString: newCreateSyntax]; if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) { [NSException raise:@"MySQL Error" format:NSLocalizedString(@"An error occured while renaming. I couldn't recreate '%@'.\n\nMySQL said: %@", @"rename precedure/function error - can't recreate procedure"), oldTableName, [mySQLConnection getLastErrorMessage]]; } - [mySQLConnection queryString: [NSString stringWithFormat: @"DROP %@ %@", tableType, [oldTableName backtickQuotedString]]]; + [mySQLConnection queryString: [NSString stringWithFormat: @"DROP %@ %@", stringTableType, [oldTableName backtickQuotedString]]]; if (![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) { [NSException raise:@"MySQL Error" format:NSLocalizedString(@"An error occured while renaming. I couldn't remove '%@'.\n\nMySQL said: %@", @"rename precedure/function error - can't remove old procedure"), oldTableName, [mySQLConnection getLastErrorMessage]]; } @@ -2240,11 +2217,12 @@ * Check tableName for length and if the tableName doesn't match * against current database table/view names (case-insensitive). */ -- (BOOL)isTableNameValid:(NSString *)tableName +- (BOOL)isTableNameValid:(NSString *)tableName forType: (enum sp_table_types)tableType { - return [self isTableNameValid:tableName ignoringSelectedTable:NO]; + return [self isTableNameValid:tableName forType:tableType ignoringSelectedTable:NO]; } -- (BOOL)isTableNameValid:(NSString *)tableName ignoringSelectedTable:(BOOL)ignoreSelectedTable + +- (BOOL)isTableNameValid:(NSString *)tableName forType: (enum sp_table_types)tableType ignoringSelectedTable:(BOOL)ignoreSelectedTable { BOOL isValid = YES; @@ -2259,7 +2237,25 @@ if([fieldStr length] == 0) return NO; - for(id table in [self allTableAndViewNames]) { + NSArray *similarTables; + switch (tableType) { + case SP_TABLETYPE_VIEW: + case SP_TABLETYPE_TABLE: + similarTables = [self allTableAndViewNames]; + break; + case SP_TABLETYPE_PROC: + similarTables = [self allProcedureNames]; + break; + case SP_TABLETYPE_FUNC: + similarTables = [self allFunctionNames]; + break; + default: + // if some other table type is given, just return yes + // better a mysql error than not being able to change something at all + return YES; + } + + for(id table in similarTables) { //compare case insensitive here if([lowercaseFieldStr isEqualToString:[table lowercaseString]]) { if (ignoreSelectedTable) { |