diff options
author | rowanbeentje <rowan@beent.je> | 2009-11-10 00:22:43 +0000 |
---|---|---|
committer | rowanbeentje <rowan@beent.je> | 2009-11-10 00:22:43 +0000 |
commit | 0ce7f983fad694c57aff9217666435685dea5e05 (patch) | |
tree | 281d98e3572d4127b1150703cc03c1fdc393f1a6 | |
parent | f04ce0c7a9266238d3391f03c9193ca92071812e (diff) | |
download | sequelpro-0ce7f983fad694c57aff9217666435685dea5e05.tar.gz sequelpro-0ce7f983fad694c57aff9217666435685dea5e05.tar.bz2 sequelpro-0ce7f983fad694c57aff9217666435685dea5e05.zip |
- Fix an issue when switching databases - allow the table selection to be cleared/reset as necessary
- Move the task progress layer to a child window, which can then be faded in - smooths the visual appearance and fixes drawing artifacts
-rw-r--r-- | Interfaces/English.lproj/ProgressIndicatorLayer.xib | 401 | ||||
-rw-r--r-- | Source/TableDocument.h | 5 | ||||
-rw-r--r-- | Source/TableDocument.m | 83 | ||||
-rw-r--r-- | Source/TablesList.m | 5 | ||||
-rw-r--r-- | Source/YRKSpinningProgressIndicator.m | 1 |
5 files changed, 313 insertions, 182 deletions
diff --git a/Interfaces/English.lproj/ProgressIndicatorLayer.xib b/Interfaces/English.lproj/ProgressIndicatorLayer.xib index c63e9c95..33adda95 100644 --- a/Interfaces/English.lproj/ProgressIndicatorLayer.xib +++ b/Interfaces/English.lproj/ProgressIndicatorLayer.xib @@ -53,174 +53,130 @@ <int key="NSvFlags">301</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSBox" id="901363568"> + <object class="NSBox" id="450247213"> <reference key="NSNextResponder" ref="1005"/> - <int key="NSvFlags">18</int> + <int key="NSvFlags">45</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSView" id="50582797"> - <reference key="NSNextResponder" ref="901363568"/> + <object class="NSView" id="950529842"> + <reference key="NSNextResponder" ref="450247213"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSBox" id="450247213"> - <reference key="NSNextResponder" ref="50582797"/> - <int key="NSvFlags">45</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSView" id="950529842"> - <reference key="NSNextResponder" ref="450247213"/> - <int key="NSvFlags">256</int> - <object class="NSMutableArray" key="NSSubviews"> - <bool key="EncodedWithXMLCoder">YES</bool> - <object class="NSCustomView" id="602680912"> - <reference key="NSNextResponder" ref="950529842"/> - <int key="NSvFlags">274</int> - <string key="NSFrame">{{50, 84}, {160, 160}}</string> - <reference key="NSSuperview" ref="950529842"/> - <bool key="NSViewIsLayerTreeHost">YES</bool> - <object class="NSShadow" key="NSViewShadow"> - <double key="NSShadowHoriz">1</double> - <double key="NSShadowVert">-1</double> - <double key="NSShadowBlurRadius">1</double> - <object class="NSColor" key="NSShadowColor" id="823228870"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MAA</bytes> - </object> - </object> - <int key="NSViewLayerContentsRedrawPolicy">2</int> - <string key="NSClassName">YRKSpinningProgressIndicator</string> - </object> - <object class="NSTextField" id="545295640"> - <reference key="NSNextResponder" ref="950529842"/> - <int key="NSvFlags">290</int> - <string key="NSFrame">{{13, 34}, {234, 42}}</string> - <reference key="NSSuperview" ref="950529842"/> - <bool key="NSViewIsLayerTreeHost">YES</bool> - <object class="NSShadow" key="NSViewShadow"> - <double key="NSShadowHoriz">1</double> - <double key="NSShadowVert">-1</double> - <double key="NSShadowBlurRadius">2</double> - <reference key="NSShadowColor" ref="823228870"/> - </object> - <int key="NSViewLayerContentsRedrawPolicy">2</int> - <bool key="NSEnabled">YES</bool> - <object class="NSTextFieldCell" key="NSCell" id="39991509"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">138678272</int> - <string key="NSContents">Multiline Label</string> - <object class="NSFont" key="NSSupport"> - <string key="NSName">LucidaGrande-Bold</string> - <double key="NSSize">13</double> - <int key="NSfFlags">16</int> - </object> - <reference key="NSControlView" ref="545295640"/> - <object class="NSColor" key="NSBackgroundColor"> - <int key="NSColorSpace">1</int> - <bytes key="NSRGB">MCAwIDAAA</bytes> - </object> - <object class="NSColor" key="NSTextColor" id="424449304"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MQA</bytes> - </object> - </object> - </object> - <object class="BWTransparentButton" id="540103856"> - <reference key="NSNextResponder" ref="950529842"/> - <int key="NSvFlags">-2147483358</int> - <string key="NSFrame">{{89, 4}, {81, 28}}</string> - <reference key="NSSuperview" ref="950529842"/> - <bool key="NSEnabled">YES</bool> - <object class="BWTransparentButtonCell" key="NSCell" id="1030687082"> - <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">134348800</int> - <string key="NSContents">Cancel</string> - <object class="NSFont" key="NSSupport" id="26"> - <string key="NSName">LucidaGrande</string> - <double key="NSSize">11</double> - <int key="NSfFlags">3100</int> - </object> - <reference key="NSControlView" ref="540103856"/> - <int key="NSButtonFlags">-2038284033</int> - <int key="NSButtonFlags2">268435585</int> - <string key="NSAlternateContents"/> - <string key="NSKeyEquivalent">.</string> - <int key="NSPeriodicDelay">200</int> - <int key="NSPeriodicInterval">25</int> - </object> - </object> - </object> - <string key="NSFrameSize">{260, 260}</string> - <reference key="NSSuperview" ref="450247213"/> + <object class="NSCustomView" id="602680912"> + <reference key="NSNextResponder" ref="950529842"/> + <int key="NSvFlags">274</int> + <string key="NSFrame">{{50, 84}, {160, 160}}</string> + <reference key="NSSuperview" ref="950529842"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSShadow" key="NSViewShadow"> + <double key="NSShadowHoriz">1</double> + <double key="NSShadowVert">-1</double> + <double key="NSShadowBlurRadius">1</double> + <object class="NSColor" key="NSShadowColor" id="823228870"> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MAA</bytes> </object> </object> - <string key="NSFrame">{{70, 48}, {260, 260}}</string> - <reference key="NSSuperview" ref="50582797"/> - <string key="NSOffsets">{0, 0}</string> - <object class="NSTextFieldCell" key="NSTitleCell"> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <string key="NSClassName">YRKSpinningProgressIndicator</string> + </object> + <object class="NSTextField" id="545295640"> + <reference key="NSNextResponder" ref="950529842"/> + <int key="NSvFlags">290</int> + <string key="NSFrame">{{13, 34}, {234, 42}}</string> + <reference key="NSSuperview" ref="950529842"/> + <bool key="NSViewIsLayerTreeHost">YES</bool> + <object class="NSShadow" key="NSViewShadow"> + <double key="NSShadowHoriz">1</double> + <double key="NSShadowVert">-1</double> + <double key="NSShadowBlurRadius">2</double> + <reference key="NSShadowColor" ref="823228870"/> + </object> + <int key="NSViewLayerContentsRedrawPolicy">2</int> + <bool key="NSEnabled">YES</bool> + <object class="NSTextFieldCell" key="NSCell" id="39991509"> <int key="NSCellFlags">67239424</int> - <int key="NSCellFlags2">0</int> - <string key="NSContents">Box</string> - <reference key="NSSupport" ref="26"/> - <object class="NSColor" key="NSBackgroundColor" id="893876185"> - <int key="NSColorSpace">6</int> - <string key="NSCatalogName">System</string> - <string key="NSColorName">textBackgroundColor</string> - <reference key="NSColor" ref="424449304"/> + <int key="NSCellFlags2">138678272</int> + <string key="NSContents">Multiline Label</string> + <object class="NSFont" key="NSSupport"> + <string key="NSName">LucidaGrande-Bold</string> + <double key="NSSize">13</double> + <int key="NSfFlags">16</int> </object> - <object class="NSColor" key="NSTextColor"> + <reference key="NSControlView" ref="545295640"/> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">1</int> + <bytes key="NSRGB">MCAwIDAAA</bytes> + </object> + <object class="NSColor" key="NSTextColor" id="424449304"> <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MCAwLjgwMDAwMDAxMTkAA</bytes> + <bytes key="NSWhite">MQA</bytes> </object> </object> - <reference key="NSContentView" ref="950529842"/> - <int key="NSBorderType">0</int> - <int key="NSBoxType">4</int> - <int key="NSTitlePosition">0</int> - <bool key="NSTransparent">NO</bool> - <real value="0.0" key="NSBorderWidth2"/> - <double key="NSCornerRadius2">15</double> - <object class="NSColor" key="NSFillColor2"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MCAwLjUAA</bytes> + </object> + <object class="BWTransparentButton" id="540103856"> + <reference key="NSNextResponder" ref="950529842"/> + <int key="NSvFlags">-2147483358</int> + <string key="NSFrame">{{89, 4}, {81, 28}}</string> + <reference key="NSSuperview" ref="950529842"/> + <bool key="NSEnabled">YES</bool> + <object class="BWTransparentButtonCell" key="NSCell" id="1030687082"> + <int key="NSCellFlags">67239424</int> + <int key="NSCellFlags2">134348800</int> + <string key="NSContents">Cancel</string> + <object class="NSFont" key="NSSupport" id="26"> + <string key="NSName">LucidaGrande</string> + <double key="NSSize">11</double> + <int key="NSfFlags">3100</int> + </object> + <reference key="NSControlView" ref="540103856"/> + <int key="NSButtonFlags">-2038284033</int> + <int key="NSButtonFlags2">268435585</int> + <string key="NSAlternateContents"/> + <string key="NSKeyEquivalent">.</string> + <int key="NSPeriodicDelay">200</int> + <int key="NSPeriodicInterval">25</int> </object> </object> </object> - <string key="NSFrameSize">{400, 349}</string> - <reference key="NSSuperview" ref="901363568"/> + <string key="NSFrameSize">{260, 260}</string> + <reference key="NSSuperview" ref="450247213"/> </object> </object> - <string key="NSFrameSize">{400, 349}</string> + <string key="NSFrameSize">{260, 260}</string> <reference key="NSSuperview" ref="1005"/> <string key="NSOffsets">{0, 0}</string> <object class="NSTextFieldCell" key="NSTitleCell"> <int key="NSCellFlags">67239424</int> <int key="NSCellFlags2">0</int> - <string key="NSContents">Background</string> + <string key="NSContents">Box</string> <reference key="NSSupport" ref="26"/> - <reference key="NSBackgroundColor" ref="893876185"/> + <object class="NSColor" key="NSBackgroundColor"> + <int key="NSColorSpace">6</int> + <string key="NSCatalogName">System</string> + <string key="NSColorName">textBackgroundColor</string> + <reference key="NSColor" ref="424449304"/> + </object> <object class="NSColor" key="NSTextColor"> <int key="NSColorSpace">3</int> <bytes key="NSWhite">MCAwLjgwMDAwMDAxMTkAA</bytes> </object> </object> - <reference key="NSContentView" ref="50582797"/> - <int key="NSBorderType">1</int> + <reference key="NSContentView" ref="950529842"/> + <int key="NSBorderType">0</int> <int key="NSBoxType">4</int> <int key="NSTitlePosition">0</int> <bool key="NSTransparent">NO</bool> <real value="0.0" key="NSBorderWidth2"/> - <object class="NSColor" key="NSBorderColor2"> - <int key="NSColorSpace">3</int> - <bytes key="NSWhite">MCAwAA</bytes> - </object> + <double key="NSCornerRadius2">15</double> <object class="NSColor" key="NSFillColor2"> - <int key="NSColorSpace">1</int> - <bytes key="NSRGB">MSAxIDEgMAA</bytes> + <int key="NSColorSpace">3</int> + <bytes key="NSWhite">MCAwLjUAA</bytes> </object> </object> </object> - <string key="NSFrameSize">{400, 349}</string> + <string key="NSFrameSize">{260, 260}</string> <reference key="NSSuperview"/> <int key="NSViewLayerContentsRedrawPolicy">2</int> <string key="NSClassName">NSView</string> @@ -239,14 +195,6 @@ </object> <object class="IBConnectionRecord"> <object class="IBOutletConnection" key="connection"> - <string key="label">taskProgressLayer</string> - <reference key="source" ref="1001"/> - <reference key="destination" ref="901363568"/> - </object> - <int key="connectionID">24</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBOutletConnection" key="connection"> <string key="label">taskProgressIndicator</string> <reference key="source" ref="1001"/> <reference key="destination" ref="602680912"/> @@ -261,6 +209,14 @@ </object> <int key="connectionID">33</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">taskProgressLayer</string> + <reference key="source" ref="1001"/> + <reference key="destination" ref="450247213"/> + </object> + <int key="connectionID">34</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -294,18 +250,9 @@ <reference key="object" ref="1005"/> <object class="NSMutableArray" key="children"> <bool key="EncodedWithXMLCoder">YES</bool> - <reference ref="901363568"/> - </object> - <reference key="parent" ref="0"/> - </object> - <object class="IBObjectRecord"> - <int key="objectID">19</int> - <reference key="object" ref="901363568"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> <reference ref="450247213"/> </object> - <reference key="parent" ref="1005"/> + <reference key="parent" ref="0"/> </object> <object class="IBObjectRecord"> <int key="objectID">10</int> @@ -316,7 +263,7 @@ <reference ref="545295640"/> <reference ref="602680912"/> </object> - <reference key="parent" ref="901363568"/> + <reference key="parent" ref="1005"/> </object> <object class="IBObjectRecord"> <int key="objectID">17</int> @@ -339,9 +286,6 @@ <object class="IBObjectRecord"> <int key="objectID">11</int> <reference key="object" ref="602680912"/> - <object class="NSMutableArray" key="children"> - <bool key="EncodedWithXMLCoder">YES</bool> - </object> <reference key="parent" ref="450247213"/> </object> <object class="IBObjectRecord"> @@ -381,7 +325,6 @@ <string>16.IBPluginDependency</string> <string>17.IBPluginDependency</string> <string>18.IBPluginDependency</string> - <string>19.IBPluginDependency</string> </object> <object class="NSMutableArray" key="dict.values"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -395,7 +338,7 @@ </object> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{309, 442}, {400, 349}}</string> + <string>{{393, 332}, {260, 260}}</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>{628, 654}</string> <string>{{357, 416}, {480, 272}}</string> @@ -412,7 +355,6 @@ <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <string>com.brandonwalkin.BWToolkit</string> <string>com.brandonwalkin.BWToolkit</string> - <string>com.apple.InterfaceBuilder.CocoaPlugin</string> </object> </object> <object class="NSMutableDictionary" key="unlocalizedProperties"> @@ -431,12 +373,19 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">33</int> + <int key="maxID">34</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> <bool key="EncodedWithXMLCoder">YES</bool> <object class="IBPartialClassDescription"> + <string key="className">NSDictionary</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/NSDictionary_DeepMutableCopy.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> @@ -546,6 +495,56 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">SPUserManager</string> + <string key="superclassName">NSWindowController</string> + <object class="NSMutableDictionary" key="actions"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>addHost:</string> + <string>addUser:</string> + <string>checkAllPrivileges:</string> + <string>doApply:</string> + <string>doCancel:</string> + <string>removeHost:</string> + <string>removeUser:</string> + <string>uncheckAllPrivileges:</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> + </object> + </object> + <object class="NSMutableDictionary" key="outlets"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSArray" key="dict.sortedKeys"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>outlineView</string> + <string>privsSupportedByServer</string> + <string>tabView</string> + <string>treeController</string> + </object> + <object class="NSMutableArray" key="dict.values"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>NSOutlineView</string> + <string>NSMutableDictionary</string> + <string>NSTabView</string> + <string>NSTreeController</string> + </object> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/SPUserManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">TableDocument</string> <string key="superclassName">NSDocument</string> <object class="NSMutableDictionary" key="actions"> @@ -560,7 +559,6 @@ <string>checksumTable:</string> <string>chooseDatabase:</string> <string>chooseEncoding:</string> - <string>closeDatabaseSheet:</string> <string>closeErrorConnectionSheet:</string> <string>closePanelSheet:</string> <string>closePasswordSheet:</string> @@ -638,7 +636,6 @@ <string>id</string> <string>id</string> <string>id</string> - <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -699,6 +696,7 @@ <string>titleAccessoryView</string> <string>titleImageView</string> <string>titleStringView</string> + <string>userManagerInstance</string> <string>variablesCountTextField</string> <string>variablesSearchField</string> <string>variablesSheet</string> @@ -760,6 +758,7 @@ <string>id</string> <string>id</string> <string>id</string> + <string>SPUserManager</string> <string>NSTextField</string> <string>NSSearchField</string> <string>id</string> @@ -889,6 +888,36 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSController</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSDictionary</string> + <string key="superclassName">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="299437348"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSDictionary.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSDictionary</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="409450098"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSDictionary</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="972782503"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSDocument</string> <string key="superclassName">NSObject</string> <object class="NSMutableDictionary" key="actions"> @@ -941,6 +970,15 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSMutableDictionary</string> + <string key="superclassName">NSDictionary</string> + <reference key="sourceIdentifier" ref="299437348"/> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSMutableDictionary</string> + <reference key="sourceIdentifier" ref="972782503"/> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> @@ -1011,7 +1049,7 @@ </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1039558761"> <string key="majorKey">IBFrameworkSource</string> <string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string> </object> @@ -1074,17 +1112,11 @@ </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBFrameworkSource</string> - <string key="minorKey">Foundation.framework/Headers/NSFileManager.h</string> - </object> + <reference key="sourceIdentifier" ref="409450098"/> </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBFrameworkSource</string> - <string key="minorKey">Foundation.framework/Headers/NSKeyValueCoding.h</string> - </object> + <reference key="sourceIdentifier" ref="972782503"/> </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> @@ -1276,6 +1308,19 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSObjectController</string> + <string key="superclassName">NSController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSObjectController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSOutlineView</string> + <string key="superclassName">NSTableView</string> + <reference key="sourceIdentifier" ref="1039558761"/> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSPopUpButton</string> <string key="superclassName">NSButton</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> @@ -1368,6 +1413,14 @@ </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSTreeController</string> + <string key="superclassName">NSObjectController</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSTreeController.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSView</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBFrameworkSource</string> @@ -1415,6 +1468,18 @@ <string key="minorKey">AppKit.framework/Headers/NSWindowScripting.h</string> </object> </object> + <object class="IBPartialClassDescription"> + <string key="className">NSWindowController</string> + <string key="superclassName">NSResponder</string> + <object class="NSMutableDictionary" key="actions"> + <string key="NS.key.0">showWindow:</string> + <string key="NS.object.0">id</string> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBFrameworkSource</string> + <string key="minorKey">AppKit.framework/Headers/NSWindowController.h</string> + </object> + </object> </object> </object> <int key="IBDocument.localizationMode">0</int> diff --git a/Source/TableDocument.h b/Source/TableDocument.h index 34df12f8..843bb9c3 100644 --- a/Source/TableDocument.h +++ b/Source/TableDocument.h @@ -139,11 +139,13 @@ enum sp_current_query_mode BOOL databaseListIsSelectable; int _queryMode; + NSWindow *taskProgressWindow; BOOL taskDisplayIsIndeterminate; float taskProgressValue; float taskDisplayLastValue; float taskProgressValueDisplayInterval; NSTimer *taskDrawTimer; + NSViewAnimation *taskFadeAnimator; NSToolbar *mainToolbar; NSToolbarItem *chooseDatabaseToolbarItem; @@ -186,13 +188,14 @@ enum sp_current_query_mode // Task progress and notification methods - (void) startTaskWithDescription:(NSString *)description; -- (void) showTaskProgressLayer:(NSTimer *)theTimer; +- (void) showTaskProgressWindow:(NSTimer *)theTimer; - (void) setTaskDescription:(NSString *)description; - (void) setTaskPercentage:(float)taskPercentage; - (void) setTaskProgressToIndeterminate; - (void) endTask; - (BOOL) isWorking; - (void) setDatabaseListIsSelectable:(BOOL)isSelectable; +- (void) centerTaskWindow; // Encoding methods - (void)setConnectionEncoding:(NSString *)mysqlEncoding reloadingViews:(BOOL)reloadViews; diff --git a/Source/TableDocument.m b/Source/TableDocument.m index b0f11df2..11a2c102 100644 --- a/Source/TableDocument.m +++ b/Source/TableDocument.m @@ -96,11 +96,13 @@ spfPreferences = [[NSMutableDictionary alloc] init]; spfDocData = [[NSMutableDictionary alloc] init]; + taskProgressWindow = nil; taskDisplayIsIndeterminate = YES; taskDisplayLastValue = 0; taskProgressValue = 0; taskProgressValueDisplayInterval = 1; taskDrawTimer = nil; + taskFadeAnimator = nil; keyChainID = nil; @@ -211,10 +213,14 @@ NSLog(@"Progress indicator layer could not be loaded; progress display will not function correctly."); } - // Set up the progress indicator layer - add to main window, change indicator color and size - [taskProgressLayer setHidden:YES]; - [taskProgressLayer setFrame:[contentViewSplitter frame]]; - [[tableWindow contentView] addSubview:taskProgressLayer positioned:NSWindowAbove relativeTo:contentViewSplitter]; + // Set up the progress indicator child window and later - add to main window, change indicator color and size + taskProgressWindow = [[NSWindow alloc] initWithContentRect:[taskProgressLayer bounds] styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]; + [taskProgressWindow setOpaque:NO]; + [taskProgressWindow setIgnoresMouseEvents:YES]; + [taskProgressWindow setBackgroundColor:[NSColor clearColor]]; + [taskProgressWindow setAlphaValue:0.0]; + [[taskProgressWindow contentView] addSubview:taskProgressLayer]; + [tableWindow addChildWindow:taskProgressWindow ordered:NSWindowAbove]; [taskProgressIndicator setForeColor:[NSColor whiteColor]]; } @@ -1183,9 +1189,18 @@ - (void) startTaskWithDescription:(NSString *)description { - // Increment the working level and set the task text + // Set the task text. If a nil string was supplied, a generic query notification is occurring - + // if a task is not already active, use default text. + if (!description) { + if (!_isWorkingLevel) [taskDescriptionText setStringValue:NSLocalizedString(@"Working...", @"Generic working description")]; + + // Otherwise display the supplied string + } else { + [taskDescriptionText setStringValue:description]; + } + + // Increment the task level _isWorkingLevel++; - [taskDescriptionText setStringValue:description]; // Reset the progress indicator if necessary if (_isWorkingLevel == 1 || !taskDisplayIsIndeterminate) { @@ -1204,21 +1219,30 @@ databaseListIsSelectable = NO; [[NSNotificationCenter defaultCenter] postNotificationName:SPDocumentTaskStartNotification object:self]; - // Set the descriptive label and schedule appearance in the near future - taskDrawTimer = [[NSTimer scheduledTimerWithTimeInterval:0.2 target:self selector:@selector(showTaskProgressLayer:) userInfo:nil repeats:NO] retain]; + // Schedule appearance of the task window in the near future + taskDrawTimer = [[NSTimer scheduledTimerWithTimeInterval:0.25 target:self selector:@selector(showTaskProgressWindow:) userInfo:nil repeats:NO] retain]; } } /** - * Show the task progress layer - after a small delay to minimise flicker. + * Show the task progress window, after a small delay to minimise flicker. */ -- (void) showTaskProgressLayer:(NSTimer *)theTimer +- (void) showTaskProgressWindow:(NSTimer *)theTimer { - [taskProgressLayer setHidden:NO]; - [taskProgressLayer display]; [taskDrawTimer release], taskDrawTimer = nil; + + // Center the task window and fade it in + [self centerTaskWindow]; + NSDictionary *animationDetails = [NSDictionary dictionaryWithObjectsAndKeys: + NSViewAnimationFadeInEffect, NSViewAnimationEffectKey, + taskProgressWindow, NSViewAnimationTargetKey, + nil]; + taskFadeAnimator = [[NSViewAnimation alloc] initWithViewAnimations:[NSArray arrayWithObject:animationDetails]]; + [taskFadeAnimator setDuration:0.6]; + [taskFadeAnimator startAnimation]; } + /** * Updates the task description shown to the user. */ @@ -1275,9 +1299,15 @@ // Cancel the draw timer if it exists if (taskDrawTimer) [taskDrawTimer invalidate], [taskDrawTimer release], taskDrawTimer = nil; + // Cancel the fade-in animator if it exists + if (taskFadeAnimator) { + if ([taskFadeAnimator isAnimating]) [taskFadeAnimator stopAnimation]; + [taskFadeAnimator release], taskFadeAnimator = nil; + } + // Hide the task interface if (taskDisplayIsIndeterminate) [taskProgressIndicator stopAnimation:self]; - [taskProgressLayer setHidden:YES]; + [taskProgressWindow setAlphaValue:0.0]; // Re-enable window interface [historyControl setEnabled:YES]; @@ -1304,6 +1334,21 @@ databaseListIsSelectable = isSelectable; } +/** + * Reposition the task window within the main window. + */ +- (void) centerTaskWindow +{ + NSPoint newBottomLeftPoint; + NSRect mainWindowRect = [tableWindow frame]; + NSRect taskWindowRect = [taskProgressWindow frame]; + + newBottomLeftPoint.x = round(mainWindowRect.origin.x + mainWindowRect.size.width/2 - taskWindowRect.size.width/2); + newBottomLeftPoint.y = round(mainWindowRect.origin.y + mainWindowRect.size.height/2 - taskWindowRect.size.height/2); + + [taskProgressWindow setFrameOrigin:newBottomLeftPoint]; +} + #pragma mark - #pragma mark Encoding Methods @@ -3391,6 +3436,16 @@ return YES; } +/** + * Invoked when the document window is resized + */ +- (void)windowDidResize:(NSNotification *)notification +{ + + // If the task interface is visible, re-center the task child window + if (_isWorkingLevel) [self centerTaskWindow]; +} + /* * Invoked if user chose "Save" from 'Do you want save changes you made...' sheet * which is called automatically if [self isDocumentEdited] == YES and user wanted to close an Untitled doc. @@ -3638,10 +3693,12 @@ if (mySQLVersion) [mySQLVersion release]; [allDatabases release]; if (taskDrawTimer) [taskDrawTimer release]; + if (taskFadeAnimator) [taskFadeAnimator release]; if(queryEditorInitString) [queryEditorInitString release]; if(spfSession) [spfSession release]; if(spfDocData) [spfDocData release]; if(keyChainID) [keyChainID release]; + if (taskProgressWindow) [taskProgressWindow release]; [super dealloc]; } diff --git a/Source/TablesList.m b/Source/TablesList.m index fbbd412c..5bba8be5 100644 --- a/Source/TablesList.m +++ b/Source/TablesList.m @@ -63,6 +63,7 @@ int i; NSString *previousSelectedTable = nil; NSInteger selectedRowIndex; + BOOL previousTableListIsSelectable = tableListIsSelectable; selectedRowIndex = [tablesListView selectedRow]; @@ -76,7 +77,9 @@ } tableListContainsViews = NO; + tableListIsSelectable = YES; [tablesListView deselectAll:self]; + tableListIsSelectable = previousTableListIsSelectable; [tables removeAllObjects]; [tableTypes removeAllObjects]; @@ -216,7 +219,9 @@ // if the previous selected table still exists, select it if( previousSelectedTable != nil && [tables indexOfObject:previousSelectedTable] < [tables count]) { int itemToReselect = [tables indexOfObject:previousSelectedTable]; + tableListIsSelectable = YES; [tablesListView selectRowIndexes:[NSIndexSet indexSetWithIndex:itemToReselect] byExtendingSelection:NO]; + tableListIsSelectable = previousTableListIsSelectable; if (selectedTableName) [selectedTableName release]; selectedTableName = [[NSString alloc] initWithString:[tables objectAtIndex:itemToReselect]]; selectedTableType = [[tableTypes objectAtIndex:itemToReselect] intValue]; diff --git a/Source/YRKSpinningProgressIndicator.m b/Source/YRKSpinningProgressIndicator.m index 935d613c..4d211be3 100644 --- a/Source/YRKSpinningProgressIndicator.m +++ b/Source/YRKSpinningProgressIndicator.m @@ -192,6 +192,7 @@ - (void)startAnimation:(id)sender { + if (_isAnimating) return; _isAnimating = YES; _animationThread = [[NSThread alloc] initWithTarget:self selector:@selector(animateInBackgroundThread) object:nil]; |