aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrowanbeentje <rowan@beent.je>2009-11-10 00:22:43 +0000
committerrowanbeentje <rowan@beent.je>2009-11-10 00:22:43 +0000
commit0ce7f983fad694c57aff9217666435685dea5e05 (patch)
tree281d98e3572d4127b1150703cc03c1fdc393f1a6
parentf04ce0c7a9266238d3391f03c9193ca92071812e (diff)
downloadsequelpro-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.xib401
-rw-r--r--Source/TableDocument.h5
-rw-r--r--Source/TableDocument.m83
-rw-r--r--Source/TablesList.m5
-rw-r--r--Source/YRKSpinningProgressIndicator.m1
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];