diff options
author | rowanbeentje <rowan@beent.je> | 2010-12-05 00:40:09 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2010-12-05 00:40:09 +0000 |
commit | 5d61e164670c386e73de8903dace40802f00fc00 (patch) | |
tree | aeac970c32bc95ca0db8a6a8671a26d2cdb38bd7 | |
parent | c84d39d22cdc466b6a3d0c0e71966d074789b090 (diff) | |
download | sequelpro-5d61e164670c386e73de8903dace40802f00fc00.tar.gz sequelpro-5d61e164670c386e73de8903dace40802f00fc00.tar.bz2 sequelpro-5d61e164670c386e73de8903dace40802f00fc00.zip |
Apply a tweaked version of a patch by Aaron Linville (http://www.linville.org/) to handle table linking in .dot exports on case-insensitive servers:
- Adds a new checkbox on the .dot export interface controlling the case sensitivty of link handling
- Improve .dot export to use lowercase link references when the option is enabled, fixing .dot exports of table relations of table names with uppercase characters on case-insensitive servers
- Check the server's case-sensitivity setting and use that to control the checkbox when using the export interface to select .dot export
This addresses Issue #920.
-rw-r--r-- | Interfaces/English.lproj/ExportDialog.xib | 200 | ||||
-rw-r--r-- | Resources/English.lproj/Credits.rtf | 8 | ||||
-rw-r--r-- | Resources/English.lproj/ExportDialog.strings | bin | 24298 -> 24584 bytes | |||
-rw-r--r-- | Source/SPDotExporter.h | 11 | ||||
-rw-r--r-- | Source/SPDotExporter.m | 6 | ||||
-rw-r--r-- | Source/SPExportController.h | 8 | ||||
-rw-r--r-- | Source/SPExportController.m | 18 | ||||
-rw-r--r-- | Source/SPExportInitializer.m | 1 |
8 files changed, 213 insertions, 39 deletions
diff --git a/Interfaces/English.lproj/ExportDialog.xib b/Interfaces/English.lproj/ExportDialog.xib index 1d2668e2..9e2fe8cf 100644 --- a/Interfaces/English.lproj/ExportDialog.xib +++ b/Interfaces/English.lproj/ExportDialog.xib @@ -2,9 +2,9 @@ <archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10"> <data> <int key="IBDocument.SystemTarget">1050</int> - <string key="IBDocument.SystemVersion">10F569</string> - <string key="IBDocument.InterfaceBuilderVersion">823</string> - <string key="IBDocument.AppKitVersion">1038.29</string> + <string key="IBDocument.SystemVersion">10H574</string> + <string key="IBDocument.InterfaceBuilderVersion">788</string> + <string key="IBDocument.AppKitVersion">1038.35</string> <string key="IBDocument.HIToolboxVersion">461.00</string> <object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -15,18 +15,18 @@ </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>823</string> + <string>788</string> <string>1.2.5</string> </object> </object> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="1215"/> + <integer value="1225"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> - <string>com.brandonwalkin.BWToolkit</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.brandonwalkin.BWToolkit</string> </object> <object class="NSMutableDictionary" key="IBDocument.Metadata"> <string key="NS.key.0">PluginDependencyRecalculationVersion</string> @@ -51,7 +51,7 @@ <string key="NSWindowTitle">Export</string> <string key="NSWindowClass">NSWindow</string> <nil key="NSViewClass"/> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{449, 480}</string> <object class="NSView" key="NSWindowView" id="13817034"> <nil key="NSNextResponder"/> @@ -68,9 +68,10 @@ <object class="NSTabViewItem" id="397902451"> <string key="NSIdentifier">sql</string> <object class="NSView" key="NSView" id="254508059"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder" ref="109227463"/> <int key="NSvFlags">256</int> <string key="NSFrame">{{10, 33}, {447, 359}}</string> + <reference key="NSSuperview" ref="109227463"/> </object> <string key="NSLabel">SQL</string> <object class="NSColor" key="NSColor" id="683790803"> @@ -79,7 +80,7 @@ <string key="NSColorName">controlColor</string> <object class="NSColor" key="NSColor" id="1056664274"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MC42NjY2NjY2ODY1AA</bytes> + <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes> </object> </object> <reference key="NSTabView" ref="109227463"/> @@ -109,17 +110,16 @@ <object class="NSTabViewItem" id="940036775"> <string key="NSIdentifier">dot</string> <object class="NSView" key="NSView" id="622234095"> - <reference key="NSNextResponder" ref="109227463"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <string key="NSFrame">{{10, 33}, {447, 359}}</string> - <reference key="NSSuperview" ref="109227463"/> </object> <string key="NSLabel">Dot</string> <reference key="NSColor" ref="683790803"/> <reference key="NSTabView" ref="109227463"/> </object> </object> - <reference key="NSSelectedTabViewItem" ref="940036775"/> + <reference key="NSSelectedTabViewItem" ref="397902451"/> <object class="NSFont" key="NSFont" id="695505032"> <string key="NSName">LucidaGrande</string> <double key="NSSize">13</double> @@ -129,7 +129,7 @@ <bool key="NSDrawsBackground">YES</bool> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="622234095"/> + <reference ref="254508059"/> </object> </object> <object class="NSButton" id="842573327"> @@ -428,7 +428,7 @@ </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{449, 502}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSFrameAutosaveName">SPExportWindow</string> </object> <object class="NSWindowTemplate" id="480162967"> @@ -441,7 +441,7 @@ <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{213, 50}</string> <object class="NSView" key="NSWindowView" id="217849587"> <nil key="NSNextResponder"/> @@ -565,7 +565,7 @@ </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{213, 72}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> </object> <object class="NSWindowTemplate" id="172544148"> <int key="NSWindowStyleMask">9</int> @@ -577,7 +577,7 @@ <object class="NSMutableString" key="NSViewClass"> <characters key="NS.bytes">View</characters> </object> - <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string> <string key="NSWindowContentMinSize">{213, 107}</string> <object class="NSView" key="NSWindowView" id="487307915"> <nil key="NSNextResponder"/> @@ -764,7 +764,7 @@ </object> <string key="NSScreenRect">{{0, 0}, {1680, 1028}}</string> <string key="NSMinSize">{213, 129}</string> - <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string> + <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string> </object> <object class="NSCustomView" id="1039688935"> <reference key="NSNextResponder"/> @@ -2289,7 +2289,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> </object> - <string key="NSFrame">{{10, 7}, {168, 229}}</string> + <string key="NSFrame">{{10, 7}, {189, 229}}</string> </object> <string key="NSLabel">CSV</string> <reference key="NSColor" ref="683790803"/> @@ -2300,7 +2300,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSView" key="NSView" id="701209678"> <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> - <string key="NSFrame">{{10, 7}, {168, 229}}</string> + <string key="NSFrame">{{10, 7}, {189, 229}}</string> </object> <string key="NSLabel">HTML</string> <reference key="NSColor" ref="683790803"/> @@ -2309,7 +2309,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTabViewItem" id="317037302"> <string key="NSIdentifier">xml</string> <object class="NSView" key="NSView" id="855848511"> - <reference key="NSNextResponder" ref="683006936"/> + <nil key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2479,7 +2479,6 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> <string key="NSFrame">{{10, 7}, {189, 229}}</string> - <reference key="NSSuperview" ref="683006936"/> </object> <string key="NSLabel">XML</string> <reference key="NSColor" ref="683790803"/> @@ -2499,23 +2498,48 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSTabViewItem" id="992964191"> <string key="NSIdentifier">dot</string> <object class="NSView" key="NSView" id="243567307"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder" ref="683006936"/> <int key="NSvFlags">256</int> + <object class="NSMutableArray" key="NSSubviews"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSButton" id="227266718"> + <reference key="NSNextResponder" ref="243567307"/> + <int key="NSvFlags">268</int> + <string key="NSFrame">{{2, 198}, {186, 18}}</string> + <reference key="NSSuperview" ref="243567307"/> + <bool key="NSEnabled">YES</bool> + <object class="NSButtonCell" key="NSCell" id="464364038"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">131072</int> + <string key="NSContents">Use case-insentive links</string> + <reference key="NSSupport" ref="26"/> + <reference key="NSControlView" ref="227266718"/> + <int key="NSButtonFlags">1211912703</int> + <int key="NSButtonFlags2">2</int> + <reference key="NSAlternateImage" ref="506551266"/> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent"/> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> + </object> + </object> + </object> <string key="NSFrame">{{10, 7}, {189, 229}}</string> + <reference key="NSSuperview" ref="683006936"/> </object> <string key="NSLabel">Dot</string> <reference key="NSColor" ref="683790803"/> <reference key="NSTabView" ref="683006936"/> </object> </object> - <reference key="NSSelectedTabViewItem" ref="317037302"/> + <reference key="NSSelectedTabViewItem" ref="992964191"/> <reference key="NSFont" ref="695505032"/> <int key="NSTvFlags">4</int> <bool key="NSAllowTruncatedLabels">YES</bool> <bool key="NSDrawsBackground">YES</bool> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="855848511"/> + <reference ref="243567307"/> </object> </object> <object class="NSScrollView" id="505274803"> @@ -2748,7 +2772,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> <reference ref="307218216"/> </object> - <string key="NSFrame">{{20, 43}, {201, 219}}</string> + <string key="NSFrame">{{21, 43}, {201, 219}}</string> <reference key="NSSuperview" ref="1039688935"/> <reference key="NSNextKeyView" ref="475696168"/> <int key="NSsFlags">530</int> @@ -3376,6 +3400,14 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> <int key="connectionID">1374</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">exportDotForceLowerTableNamesCheck</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="227266718"/> + </object> + <int key="connectionID">1377</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -4581,6 +4613,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="IBObjectRecord"> <int key="objectID">1225</int> <reference key="object" ref="243567307"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="227266718"/> + </object> <reference key="parent" ref="992964191"/> </object> <object class="IBObjectRecord"> @@ -4924,6 +4960,20 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <reference key="object" ref="713176599"/> <reference key="parent" ref="875960206"/> </object> + <object class="IBObjectRecord"> + <int key="objectID">1375</int> + <reference key="object" ref="227266718"/> + <object class="NSMutableArray" key="children"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="464364038"/> + </object> + <reference key="parent" ref="243567307"/> + </object> + <object class="IBObjectRecord"> + <int key="objectID">1376</int> + <reference key="object" ref="464364038"/> + <reference key="parent" ref="227266718"/> + </object> </object> </object> <object class="NSMutableDictionary" key="flattenedProperties"> @@ -4964,9 +5014,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>1107.IBPluginDependency</string> <string>1108.IBPluginDependency</string> <string>1109.IBPluginDependency</string> + <string>1109.IBViewBoundsToFrameTransform</string> <string>1110.CustomClassName</string> <string>1110.IBPluginDependency</string> <string>1111.IBPluginDependency</string> + <string>1111.IBViewBoundsToFrameTransform</string> <string>1112.IBPluginDependency</string> <string>1113.IBPluginDependency</string> <string>1114.CustomClassName</string> @@ -5065,6 +5117,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>1194.ImportedFromIB2</string> <string>1195.IBPluginDependency</string> <string>1196.IBPluginDependency</string> + <string>1196.IBViewBoundsToFrameTransform</string> <string>1196.ImportedFromIB2</string> <string>1197.IBPluginDependency</string> <string>1198.IBPluginDependency</string> @@ -5145,6 +5198,11 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>1371.IBPluginDependency</string> <string>1371.IBViewBoundsToFrameTransform</string> <string>1372.IBPluginDependency</string> + <string>1375.IBPluginDependency</string> + <string>1375.IBViewBoundsToFrameTransform</string> + <string>1375.ImportedFromIB2</string> + <string>1375.notes</string> + <string>1376.IBPluginDependency</string> <string>2.IBPluginDependency</string> <string>2.IBUserGuides</string> <string>294.IBEditorWindowLastContentRect</string> @@ -5210,15 +5268,15 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{509, 248}, {451, 480}}</string> + <string>{{354, 248}, {451, 480}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <boolean value="NO"/> <boolean value="NO"/> - <string>{{509, 248}, {451, 480}}</string> + <string>{{354, 248}, {451, 480}}</string> <boolean value="NO"/> <boolean value="YES"/> <string>{449, 480}</string> - <string>{{463, 507}, {450, 359}}</string> + <string>{{391, 418}, {450, 359}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableDictionary"> @@ -5266,9 +5324,15 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">AcEwAADAgAAAA</bytes> + </object> <string>NSTokenField</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">AUHQAABBIAAAA</bytes> + </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>NSTokenField</string> @@ -5428,6 +5492,9 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABAoAAAw1YAAA</bytes> + </object> <integer value="1"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> @@ -5539,6 +5606,37 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <object class="NSAffineTransform"> + <bytes key="NSTransformStruct">P4AAAL+AAABBAAAAwu4AAA</bytes> + </object> + <integer value="1"/> + <object class="NSMutableAttributedString"> + <object class="NSMutableString" key="NSString"> + <characters key="NS.bytes">When the default configuration of MySQL server is running on Windows or Mac OS X, or case sensitivity has been disabled, this option should be enabled to allow table relations to work correctly.</characters> + </object> + <object class="NSDictionary" key="NSAttributes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSColor</string> + <string>NSFont</string> + <string>NSOriginalFont</string> + <string>NSParagraphStyle</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <reference ref="876496808"/> + <reference ref="26"/> + <reference ref="26"/> + <object class="NSParagraphStyle"> + <int key="NSAlignment">4</int> + <nil key="NSTabStops"/> + </object> + </object> + </object> + </object> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> + <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <object class="NSMutableArray"> <bool key="EncodedWithXMLCoder">YES</bool> </object> @@ -5626,7 +5724,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> <nil key="sourceID"/> - <int key="maxID">1374</int> + <int key="maxID">1377</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -5639,6 +5737,13 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSMenu</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPMenuAdditions.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> @@ -5734,6 +5839,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>doSelectionTitleCase:</string> <string>doSelectionUpperCase:</string> <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> <string>insertNULLvalue:</string> <string>moveSelectionLineDown:</string> <string>moveSelectionLineUp:</string> @@ -5758,6 +5864,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="actionInfosByName"> @@ -5773,6 +5880,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>doSelectionTitleCase:</string> <string>doSelectionUpperCase:</string> <string>doTranspose:</string> + <string>executeBundleItemForInputField:</string> <string>insertNULLvalue:</string> <string>moveSelectionLineDown:</string> <string>moveSelectionLineUp:</string> @@ -5819,6 +5927,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string key="candidateClassName">id</string> </object> <object class="IBActionInfo"> + <string key="name">executeBundleItemForInputField:</string> + <string key="candidateClassName">id</string> + </object> + <object class="IBActionInfo"> <string key="name">insertNULLvalue:</string> <string key="candidateClassName">id</string> </object> @@ -6019,6 +6131,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>exportCustomFilenameViewButton</string> <string>exportCustomFilenameViewLabelButton</string> <string>exportDeselectAllTablesButton</string> + <string>exportDotForceLowerTableNamesCheck</string> <string>exportExcelSheetOrFilePerTableMatrix</string> <string>exportFilePerTableCheck</string> <string>exportFilenameDividerBox</string> @@ -6076,6 +6189,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>NSButton</string> <string>NSButton</string> <string>NSButton</string> + <string>NSButton</string> <string>NSMatrix</string> <string>NSButton</string> <string>NSBox</string> @@ -6136,6 +6250,7 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string>exportCustomFilenameViewButton</string> <string>exportCustomFilenameViewLabelButton</string> <string>exportDeselectAllTablesButton</string> + <string>exportDotForceLowerTableNamesCheck</string> <string>exportExcelSheetOrFilePerTableMatrix</string> <string>exportFilePerTableCheck</string> <string>exportFilenameDividerBox</string> @@ -6251,6 +6366,10 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string key="candidateClassName">NSButton</string> </object> <object class="IBToOneOutletInfo"> + <string key="name">exportDotForceLowerTableNamesCheck</string> + <string key="candidateClassName">NSButton</string> + </object> + <object class="IBToOneOutletInfo"> <string key="name">exportExcelSheetOrFilePerTableMatrix</string> <string key="candidateClassName">NSMatrix</string> </object> @@ -6941,6 +7060,27 @@ AAMAAAABAAEAAAFTAAMAAAAEAAAFwgAAAAAACAAIAAgACAABAAEAAQABA</bytes> <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderCell.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRRecorderControl.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">ShortcutRecorder.framework/Headers/SRValidator.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">Sparkle.framework/Headers/SUAppcast.h</string> </object> </object> diff --git a/Resources/English.lproj/Credits.rtf b/Resources/English.lproj/Credits.rtf index 7c565da9..d8a3dfb3 100644 --- a/Resources/English.lproj/Credits.rtf +++ b/Resources/English.lproj/Credits.rtf @@ -1,7 +1,6 @@ -{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf320 +{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf350 {\fonttbl\f0\fnil\fcharset0 LucidaGrande;\f1\fmodern\fcharset0 Courier;} {\colortbl;\red255\green255\blue255;\red25\green25\blue25;\red0\green27\blue199;} -\vieww19500\viewh14400\viewkind0 \pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\qc\pardirnatural \f0\b\fs22 \cf2 Current Developers @@ -64,9 +63,12 @@ Matt Gallagher\ ( \f1\fs24 NSFileManagerAddition \f0\fs22 )\ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\qc\pardirnatural +{\field{\*\fldinst{HYPERLINK "http://www.linville.org/"}}{\fldrslt \cf0 Aaron Linville}}\ \ +\pard\tx566\tx1133\tx1700\tx2267\tx2834\tx3401\tx3968\tx4535\tx5102\tx5669\tx6236\tx6803\qc\pardirnatural -\b RegexKitLite +\b \cf0 RegexKitLite \b0 \ \pard\pardeftab720\qc \cf0 Copyright (c) 2008-2010\ diff --git a/Resources/English.lproj/ExportDialog.strings b/Resources/English.lproj/ExportDialog.strings Binary files differindex 8262d0e5..827d965c 100644 --- a/Resources/English.lproj/ExportDialog.strings +++ b/Resources/English.lproj/ExportDialog.strings diff --git a/Source/SPDotExporter.h b/Source/SPDotExporter.h index 5de22927..4a962c7b 100644 --- a/Source/SPDotExporter.h +++ b/Source/SPDotExporter.h @@ -42,9 +42,11 @@ NSArray *dotExportTables; NSString *dotExportCurrentTable; - + + BOOL dotForceLowerTableNames; + SPTableData *dotTableData; - + NSString *dotDatabaseHost; NSString *dotDatabaseName; NSString *dotDatabaseVersion; @@ -66,6 +68,11 @@ @property(readwrite, retain) NSString *dotExportCurrentTable; /** + * @property dotForceLowerTableNames dotForceLowerTableNames Force lowercase table names + */ +@property(readwrite, assign) BOOL dotForceLowerTableNames; + +/** * @property dotTableData Table data */ @property(readwrite, retain) SPTableData *dotTableData; diff --git a/Source/SPDotExporter.m b/Source/SPDotExporter.m index 85b497e9..55ab645b 100644 --- a/Source/SPDotExporter.m +++ b/Source/SPDotExporter.m @@ -33,6 +33,7 @@ @synthesize delegate; @synthesize dotExportTables; @synthesize dotExportCurrentTable; +@synthesize dotForceLowerTableNames; @synthesize dotTableData; @synthesize dotDatabaseHost; @synthesize dotDatabaseName; @@ -115,6 +116,7 @@ } NSString *tableName = NSArrayObjectAtIndex([self dotExportTables], i); + NSString *tableLinkName = [self dotForceLowerTableNames]?[tableName lowercaseString]:tableName; NSDictionary *tableInfo = [[self dotTableData] informationForTable:tableName]; // Set the current table @@ -131,7 +133,7 @@ [metaString setString:[NSString stringWithFormat:@"\tsubgraph \"table_%@\" {\n", tableName]]; [metaString appendString:@"\t\tnode [ shape = \"plaintext\" ];\n"]; - [metaString appendFormat:@"\t\t\"%@\" [ label=<\n", tableName]; + [metaString appendFormat:@"\t\t\"%@\" [ label=<\n", tableLinkName]; [metaString appendString:@"\t\t\t<TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLBORDER=\"1\">\n"]; [metaString appendFormat:@"\t\t\t<TR><TD COLSPAN=\"3\" BGCOLOR=\"%@\">%@</TD></TR>\n", hdrColor, tableName]; @@ -173,7 +175,7 @@ extra = @" [ arrowhead=crow, arrowtail=odiamond ]"; } - [fkInfo addObject:[NSString stringWithFormat:@"%@:%@ -> %@:%@ %@", tableName, [originColumns objectAtIndex:0], [aConstraint objectForKey:@"ref_table"], [referenceColumns objectAtIndex:0], extra]]; + [fkInfo addObject:[NSString stringWithFormat:@"%@:%@ -> %@:%@ %@", tableLinkName, [originColumns objectAtIndex:0], [aConstraint objectForKey:@"ref_table"], [[referenceColumns objectAtIndex:0] lowercaseString], extra]]; } } diff --git a/Source/SPExportController.h b/Source/SPExportController.h index 24c30b39..ff5c65ba 100644 --- a/Source/SPExportController.h +++ b/Source/SPExportController.h @@ -108,6 +108,9 @@ IBOutlet NSButton *exportXMLIncludeStructure; IBOutlet NSButton *exportXMLIncludeContent; IBOutlet NSTextField *exportXMLNULLValuesAsTextField; + + // Dot + IBOutlet NSButton *exportDotForceLowerTableNamesCheck; /** * Cancellation flag @@ -204,6 +207,11 @@ */ BOOL sqlPreviousConnectionEncodingViaLatin1; + /** + * The server's lower_case_table_names setting + */ + NSInteger serverLowerCaseTableNameValue; + NSInteger heightOffset1; NSInteger heightOffset2; NSUInteger windowMinWidth; diff --git a/Source/SPExportController.m b/Source/SPExportController.m index 755a4f74..1d70f88f 100644 --- a/Source/SPExportController.m +++ b/Source/SPExportController.m @@ -93,7 +93,8 @@ static const NSString *SPTableViewDropColumnID = @"drop"; showAdvancedView = NO; showCustomFilenameView = NO; - + serverLowerCaseTableNameValue = NSNotFound; + heightOffset1 = 0; heightOffset2 = 0; windowMinWidth = [[self window] minSize].width; @@ -706,10 +707,23 @@ static const NSString *SPTableViewDropColumnID = @"drop"; // Set the tooltip [[exportTableList tableColumnWithIdentifier:SPTableViewContentColumnID] setHeaderToolTip:(enable) ? @"" : NSLocalizedString(@"Include content", @"include content table column tooltip")]; + // When switching to Dot export, ensure the server's lower_case_table_names value is checked the first time + // to set the export's link case sensitivity setting + if (isDot && serverLowerCaseTableNameValue == NSNotFound) { + MCPResult *caseResult = [connection queryString:@"SHOW VARIABLES LIKE 'lower_case_table_names'"]; + [caseResult setReturnDataAsStrings:YES]; + if ([caseResult numOfRows] == 1) { + serverLowerCaseTableNameValue = [[[caseResult fetchRowAsDictionary] objectForKey:@"Value"] integerValue]; + } else { + serverLowerCaseTableNameValue = 0; + } + [exportDotForceLowerTableNamesCheck setState:(serverLowerCaseTableNameValue == 0)?NSOffState:NSOnState]; + } + [exportCSVNULLValuesAsTextField setStringValue:[prefs stringForKey:SPNullValue]]; [exportXMLNULLValuesAsTextField setStringValue:[prefs stringForKey:SPNullValue]]; - [self _displayExportTypeOptions:(isSQL || isCSV || isXML)]; + [self _displayExportTypeOptions:(isSQL || isCSV || isXML || isDot)]; [self updateAvailableExportFilenameTokens]; if (!showCustomFilenameView) [self updateDisplayedExportFilename]; diff --git a/Source/SPExportInitializer.m b/Source/SPExportInitializer.m index 9544bf4b..db951b5f 100644 --- a/Source/SPExportInitializer.m +++ b/Source/SPExportInitializer.m @@ -353,6 +353,7 @@ SPDotExporter *dotExporter = [[SPDotExporter alloc] initWithDelegate:self]; [dotExporter setDotTableData:tableDataInstance]; + [dotExporter setDotForceLowerTableNames:[exportDotForceLowerTableNamesCheck state]]; [dotExporter setDotDatabaseHost:[tableDocumentInstance host]]; [dotExporter setDotDatabaseName:[tableDocumentInstance database]]; [dotExporter setDotDatabaseVersion:[tableDocumentInstance mySQLVersion]]; |