diff options
-rw-r--r-- | Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m | 7 | ||||
-rw-r--r-- | Frameworks/BWToolkitFramework.framework/BWSplitView.m | 6 | ||||
-rw-r--r-- | Interfaces/English.lproj/ConnectionView.xib | 34 | ||||
-rw-r--r-- | Interfaces/English.lproj/DBView.xib | 96 | ||||
-rw-r--r-- | Resources/PreferenceDefaults.plist | 2 | ||||
-rw-r--r-- | Source/SPConnectionController.h | 7 | ||||
-rw-r--r-- | Source/SPConnectionController.m | 3 | ||||
-rw-r--r-- | Source/TableDocument.h | 1 | ||||
-rw-r--r-- | Source/TableDocument.m | 3 | ||||
-rw-r--r-- | Source/TablesList.h | 9 | ||||
-rw-r--r-- | Source/TablesList.m | 25 |
11 files changed, 164 insertions, 29 deletions
diff --git a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m index 48f20cdb..0c49c84a 100644 --- a/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m +++ b/Frameworks/BWToolkitFramework.framework/BWAnchoredButtonBar.m @@ -262,6 +262,13 @@ static float scaleFactor = 0.0f; #pragma mark NSSplitView Delegate Methods +// Forward resize events to the delegate if set and supported +- (void) splitViewDidResizeSubviews:(NSNotification *)aNotification +{ + if ([splitViewDelegate respondsToSelector:@selector(splitViewDidResizeSubviews:)]) + [splitViewDelegate splitViewDidResizeSubviews:aNotification]; +} + // Add the resize handle rect to the split view hot zone - (NSRect)splitView:(NSSplitView *)aSplitView additionalEffectiveRectOfDividerAtIndex:(NSInteger)dividerIndex { diff --git a/Frameworks/BWToolkitFramework.framework/BWSplitView.m b/Frameworks/BWToolkitFramework.framework/BWSplitView.m index 08164931..a3c20dbf 100644 --- a/Frameworks/BWToolkitFramework.framework/BWSplitView.m +++ b/Frameworks/BWToolkitFramework.framework/BWSplitView.m @@ -683,6 +683,12 @@ static float scaleFactor = 1.0f; } [self setNeedsDisplay:YES]; + + // Tell the original delegate to update if appropriate + if (![secondaryDelegate isKindOfClass:NSClassFromString(@"BWAnchoredButtonBar")] && + [secondaryDelegate respondsToSelector:@selector(splitViewDidResizeSubviews:)]) { + [secondaryDelegate splitViewDidResizeSubviews:aNotification]; + } } #pragma mark - Resize Subviews Delegate Method and Helper Methods diff --git a/Interfaces/English.lproj/ConnectionView.xib b/Interfaces/English.lproj/ConnectionView.xib index cdb71f80..2587aec9 100644 --- a/Interfaces/English.lproj/ConnectionView.xib +++ b/Interfaces/English.lproj/ConnectionView.xib @@ -8,7 +8,7 @@ <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> - <integer value="5168"/> + <integer value="5343"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -2467,6 +2467,14 @@ </object> <int key="connectionID">5446</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">connectionSplitViewButtonBar</string> + <reference key="source" ref="545410097"/> + <reference key="destination" ref="805249222"/> + </object> + <int key="connectionID">5448</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -4008,7 +4016,7 @@ </object> </object> <nil key="sourceID"/> - <int key="maxID">5447</int> + <int key="maxID">5448</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -4025,14 +4033,32 @@ <string key="className">NSObject</string> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Frameworks/MCPKit/MCPFoundationKit/MCPConnection.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Frameworks/MCPKit/MCPFoundationKit/MCPNull.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="IBClassDescriptionSource" key="sourceIdentifier"> + <string key="majorKey">IBProjectSource</string> <string key="minorKey">Source/CMImageView.h</string> </object> </object> <object class="IBPartialClassDescription"> <string key="className">NSObject</string> + <object class="NSMutableDictionary" key="actions"> + <string key="NS.key.0">toggleCollapse:</string> + <string key="NS.object.0">id</string> + </object> <object class="IBClassDescriptionSource" key="sourceIdentifier"> <string key="majorKey">IBProjectSource</string> - <string key="minorKey">Source/CMMCPConnection.h</string> + <string key="minorKey">Source/TablesList.h</string> </object> </object> <object class="IBPartialClassDescription"> @@ -4112,6 +4138,7 @@ <string>connectButton</string> <string>connectionResizeContainer</string> <string>connectionSplitView</string> + <string>connectionSplitViewButtonBar</string> <string>connectionView</string> <string>errorDetailText</string> <string>errorDetailWindow</string> @@ -4135,6 +4162,7 @@ <string>NSView</string> <string>NSSplitView</string> <string>NSView</string> + <string>NSView</string> <string>NSTextView</string> <string>NSWindow</string> <string>NSTableView</string> diff --git a/Interfaces/English.lproj/DBView.xib b/Interfaces/English.lproj/DBView.xib index 54f9e234..ac6e568b 100644 --- a/Interfaces/English.lproj/DBView.xib +++ b/Interfaces/English.lproj/DBView.xib @@ -8,6 +8,7 @@ <string key="IBDocument.HIToolboxVersion">353.00</string> <object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> <bool key="EncodedWithXMLCoder">YES</bool> + <integer value="6142"/> </object> <object class="NSArray" key="IBDocument.PluginDependencies"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -46,7 +47,7 @@ <string key="NSWindowContentMaxSize">{3.40282e+38, 3.40282e+38}</string> <string key="NSWindowContentMinSize">{780, 480}</string> <object class="NSView" key="NSWindowView" id="579726586"> - <nil key="NSNextResponder"/> + <reference key="NSNextResponder"/> <int key="NSvFlags">256</int> <object class="NSMutableArray" key="NSSubviews"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -345,7 +346,7 @@ <string key="NSFrameSize">{212, 145}</string> <reference key="NSSuperview" ref="192579410"/> <reference key="NSNextKeyView" ref="685057119"/> - <int key="NSsFlags">512</int> + <int key="NSsFlags">528</int> <reference key="NSVScroller" ref="245346414"/> <reference key="NSHScroller" ref="353686052"/> <reference key="NSContentView" ref="685057119"/> @@ -2524,6 +2525,29 @@ <object class="NSTextView" id="1055190999"> <reference key="NSNextResponder" ref="1072692119"/> <int key="NSvFlags">6418</int> + <object class="NSMutableSet" key="NSDragTypes"> + <bool key="EncodedWithXMLCoder">YES</bool> + <object class="NSMutableArray" key="set.sortedObjects"> + <bool key="EncodedWithXMLCoder">YES</bool> + <string>Apple HTML pasteboard type</string> + <string>Apple PDF pasteboard type</string> + <string>Apple PICT pasteboard type</string> + <string>Apple PNG pasteboard type</string> + <string>Apple URL pasteboard type</string> + <string>CorePasteboardFlavorType 0x6D6F6F76</string> + <string>CorePasteboardFlavorType 0x75726C20</string> + <string>NSColor pasteboard type</string> + <string>NSFilenamesPboardType</string> + <string>NSStringPboardType</string> + <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string> + <string>NeXT RTFD pasteboard type</string> + <string>NeXT Rich Text Format v1.0 pasteboard type</string> + <string>NeXT TIFF v4.0 pasteboard type</string> + <string>NeXT font pasteboard type</string> + <string>NeXT ruler pasteboard type</string> + <string>WebURLsWithTitlesPboardType</string> + </object> + </object> <string key="NSFrameSize">{688, 14}</string> <reference key="NSSuperview" ref="1072692119"/> <object class="NSTextContainer" key="NSTextContainer" id="326170846"> @@ -2899,7 +2923,7 @@ <reference key="NSControlView" ref="363916571"/> <int key="NSButtonFlags">-2042609409</int> <int key="NSButtonFlags2">35</int> - <object class="NSCustomResource" key="NSNormalImage"> + <object class="NSCustomResource" key="NSNormalImage" id="193133054"> <string key="NSClassName">NSImage</string> <string key="NSResourceName">button_action</string> </object> @@ -2914,10 +2938,7 @@ <string key="NSKeyEquiv"/> <int key="NSKeyEquivModMask">1048576</int> <int key="NSMnemonicLoc">2147483647</int> - <object class="NSCustomResource" key="NSImage"> - <string key="NSClassName">NSImage</string> - <string key="NSResourceName">button_action</string> - </object> + <reference key="NSImage" ref="193133054"/> <string key="NSAction">_popUpItemAction:</string> <reference key="NSTarget" ref="984501775"/> </object> @@ -4351,6 +4372,7 @@ </object> </object> <string key="NSFrameSize">{944, 550}</string> + <reference key="NSSuperview"/> </object> <string key="NSScreenRect">{{0, 0}, {1920, 1178}}</string> <string key="NSMinSize">{780, 502}</string> @@ -13976,14 +13998,6 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <object class="IBConnectionRecord"> <object class="IBActionConnection" key="connection"> - <string key="label">toggleCollapse:</string> - <reference key="source" ref="298095498"/> - <reference key="destination" ref="57416393"/> - </object> - <int key="connectionID">6161</int> - </object> - <object class="IBConnectionRecord"> - <object class="IBActionConnection" key="connection"> <string key="label">updateTables:</string> <reference key="source" ref="438574515"/> <reference key="destination" ref="595750628"/> @@ -14346,6 +14360,30 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> </object> <int key="connectionID">6256</int> </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">tableListSplitView</string> + <reference key="source" ref="438574515"/> + <reference key="destination" ref="298095498"/> + </object> + <int key="connectionID">6257</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBActionConnection" key="connection"> + <string key="label">togglePaneCollapse:</string> + <reference key="source" ref="438574515"/> + <reference key="destination" ref="57416393"/> + </object> + <int key="connectionID">6258</int> + </object> + <object class="IBConnectionRecord"> + <object class="IBOutletConnection" key="connection"> + <string key="label">tableInfoCollapseButton</string> + <reference key="source" ref="438574515"/> + <reference key="destination" ref="57416393"/> + </object> + <int key="connectionID">6259</int> + </object> </object> <object class="IBMutableOrderedSet" key="objectRecords"> <object class="NSArray" key="orderedObjects"> @@ -22560,8 +22598,8 @@ IGRvIHlvdSB3YW50IHRvIGFkZCBmb3IgdGhpcyBmaWVsZD8</string> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> <reference ref="9"/> <string>com.apple.InterfaceBuilder.CocoaPlugin</string> - <string>{{239, 307}, {944, 550}}</string> - <string>{{239, 307}, {944, 550}}</string> + <string>{{177, 306}, {944, 550}}</string> + <string>{{177, 306}, {944, 550}}</string> <reference ref="9"/> <reference ref="9"/> <string>{{62, 352}, {845, 504}}</string> @@ -23526,7 +23564,7 @@ Y2hhbmdlIHRoZSBvcmRlcg</string> </object> </object> <nil key="sourceID"/> - <int key="maxID">6256</int> + <int key="maxID">6259</int> </object> <object class="IBClassDescriber" key="IBDocument.Classes"> <object class="NSMutableArray" key="referencedPartialClassDescriptions"> @@ -23782,6 +23820,17 @@ Y2hhbmdlIHRoZSBvcmRlcg</string> </object> </object> <object class="IBPartialClassDescription"> + <string key="className">NSObject</string> + <object class="NSMutableDictionary" key="actions"> + <string key="NS.key.0">toggleCollapse:</string> + <string key="NS.object.0">id</string> + </object> + <object class="IBClassDescriptionSource" key="sourceIdentifier" id="197237725"> + <string key="majorKey">IBProjectSource</string> + <string key="minorKey">Source/TablesList.h</string> + </object> + </object> + <object class="IBPartialClassDescription"> <string key="className">NSTextView</string> <object class="NSMutableDictionary" key="actions"> <bool key="EncodedWithXMLCoder">YES</bool> @@ -24637,6 +24686,7 @@ Y2hhbmdlIHRoZSBvcmRlcg</string> <string>copyTable:</string> <string>removeTable:</string> <string>renameTable:</string> + <string>togglePaneCollapse:</string> <string>truncateTable:</string> <string>updateTables:</string> </object> @@ -24650,6 +24700,7 @@ Y2hhbmdlIHRoZSBvcmRlcg</string> <string>id</string> <string>id</string> <string>id</string> + <string>id</string> </object> </object> <object class="NSMutableDictionary" key="outlets"> @@ -24680,6 +24731,8 @@ Y2hhbmdlIHRoZSBvcmRlcg</string> <string>tableDocumentInstance</string> <string>tableDumpInstance</string> <string>tableEncodingButton</string> + <string>tableInfoCollapseButton</string> + <string>tableListSplitView</string> <string>tableNameField</string> <string>tableRenameField</string> <string>tableRenameSheet</string> @@ -24718,6 +24771,8 @@ Y2hhbmdlIHRoZSBvcmRlcg</string> <string>id</string> <string>id</string> <string>id</string> + <string>NSButton</string> + <string>NSSplitView</string> <string>id</string> <string>id</string> <string>id</string> @@ -24731,10 +24786,7 @@ Y2hhbmdlIHRoZSBvcmRlcg</string> <string>id</string> </object> </object> - <object class="IBClassDescriptionSource" key="sourceIdentifier"> - <string key="majorKey">IBProjectSource</string> - <string key="minorKey">Source/TablesList.h</string> - </object> + <reference key="sourceIdentifier" ref="197237725"/> </object> <object class="IBPartialClassDescription"> <string key="className">TablesList</string> diff --git a/Resources/PreferenceDefaults.plist b/Resources/PreferenceDefaults.plist index 55ef1071..644a6db1 100644 --- a/Resources/PreferenceDefaults.plist +++ b/Resources/PreferenceDefaults.plist @@ -76,6 +76,8 @@ <true/> <key>LastFavoriteIndex</key> <integer>0</integer> + <key>TableInformationPanelCollapsed</key> + <false/> <key>ConsoleEnableLogging</key> <true/> <key>ConsoleShowTimestamps</key> diff --git a/Source/SPConnectionController.h b/Source/SPConnectionController.h index 0ab3cc2e..f9af5894 100644 --- a/Source/SPConnectionController.h +++ b/Source/SPConnectionController.h @@ -37,6 +37,12 @@ enum spconnection_types SP_CONNECTION_SSHTUNNEL = 2 }; +@class BWAnchoredButtonBar; + +@interface NSObject (BWAnchoredButtonBar) +- (void)setSplitViewDelegate:(id)splitViewDelegate; +@end + @interface SPConnectionController : NSObject { TableDocument *tableDocument; @@ -70,6 +76,7 @@ enum spconnection_types IBOutlet NSView *connectionView; IBOutlet NSSplitView *connectionSplitView; + IBOutlet BWAnchoredButtonBar *connectionSplitViewButtonBar; IBOutlet NSTableView *favoritesTable; IBOutlet NSWindow *errorDetailWindow; diff --git a/Source/SPConnectionController.m b/Source/SPConnectionController.m index 272808a5..d52ca7d3 100644 --- a/Source/SPConnectionController.m +++ b/Source/SPConnectionController.m @@ -73,6 +73,7 @@ [connectionView setFrame:[contentView frame]]; [[documentWindow contentView] addSubview:connectionView]; [connectionSplitView setPosition:[[tableDocument valueForKey:@"dbTablesTableView"] frame].size.width ofDividerAtIndex:0]; + [connectionSplitViewButtonBar setSplitViewDelegate:self]; // Disable the toolbar icons NSArray *toolbarItems = [[documentWindow toolbar] items]; @@ -819,8 +820,6 @@ /** * When the split view is resized, trigger a resize in the hidden table * width as well, to keep the connection view and connected view in synch. - * TODO: this isn't functional until a BWToolkit bug is fixed - see - * http://bitbucket.org/bwalkin/bwtoolkit/issue/50/bwsplitview-and-splitviewdidresizesubviews */ - (void) splitViewDidResizeSubviews:(NSNotification *)aNotification { diff --git a/Source/TableDocument.h b/Source/TableDocument.h index 6b3acaef..5cd9dc6c 100644 --- a/Source/TableDocument.h +++ b/Source/TableDocument.h @@ -68,6 +68,7 @@ IBOutlet NSTabView *tableTabView; IBOutlet NSTableView *tableInfoTable; + IBOutlet NSButton *tableInfoCollapseButton; IBOutlet NSSplitView *tableListSplitter; IBOutlet NSSplitView *contentViewSplitter; IBOutlet id sidebarGrabber; diff --git a/Source/TableDocument.m b/Source/TableDocument.m index c3a5b3da..7970d0aa 100644 --- a/Source/TableDocument.m +++ b/Source/TableDocument.m @@ -2178,8 +2178,7 @@ - (void)splitViewDidResizeSubviews:(NSNotification *)notification { - if ([notification object] == contentViewSplitter) - [self updateChooseDatabaseToolbarItemWidth]; + [self updateChooseDatabaseToolbarItemWidth]; } - (NSRect)splitView:(NSSplitView *)splitView additionalEffectiveRectOfDividerAtIndex:(int)dividerIndex diff --git a/Source/TablesList.h b/Source/TablesList.h index bd1e36e9..6210f9e7 100644 --- a/Source/TablesList.h +++ b/Source/TablesList.h @@ -37,6 +37,12 @@ enum sp_table_types @class CMMCResult, MCPConnection; +@interface NSObject (NSSplitView) +- (NSView *)collapsibleSubview; +- (IBAction)toggleCollapse:(id)sender; +- (void)setCollapsibleSubviewCollapsed:(BOOL)flag; +@end + @interface TablesList : NSObject { IBOutlet id tableDocumentInstance; @@ -67,6 +73,8 @@ enum sp_table_types IBOutlet id renameTableButton; IBOutlet id truncateTableButton; IBOutlet id truncateTableContextButton; + IBOutlet NSSplitView *tableListSplitView; + IBOutlet NSButton *tableInfoCollapseButton; IBOutlet NSMenuItem *removeTableMenuItem; IBOutlet NSMenuItem *duplicateTableMenuItem; @@ -94,6 +102,7 @@ enum sp_table_types - (IBAction)copyTable:(id)sender; - (IBAction)renameTable:(id)sender; - (IBAction)truncateTable:(id)sender; +- (IBAction)togglePaneCollapse:(id)sender; // copyTableSheet methods - (IBAction)closeCopyTableSheet:(id)sender; diff --git a/Source/TablesList.m b/Source/TablesList.m index 10be699a..a8781128 100644 --- a/Source/TablesList.m +++ b/Source/TablesList.m @@ -705,6 +705,15 @@ [alert beginSheetModalForWindow:tableWindow modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:@"truncateTable"]; } +/** + * Toggle whether the splitview is collapsed. + */ +- (IBAction)togglePaneCollapse:(id)sender +{ + [tableListSplitView toggleCollapse:sender]; + [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:([tableInfoCollapseButton state] == NSOffState)] forKey:@"TableInformationPanelCollapsed"]; +} + #pragma mark Alert sheet methods /** @@ -1660,6 +1669,22 @@ } /** + * Standard awakeFromNib method for interface loading. + */ +- (void)awakeFromNib +{ + + // Collapse the table information pane if preference to do so is set + if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"TableInformationPanelCollapsed"] boolValue] + && [tableListSplitView collapsibleSubview]) { + [tableInfoCollapseButton setNextState]; + [tableListSplitView setValue:[NSNumber numberWithFloat:[tableListSplitView collapsibleSubview].frame.size.height] forKey:@"uncollapsedSize"]; + [[tableListSplitView collapsibleSubview] setFrameSize:NSMakeSize([tableListSplitView collapsibleSubview].frame.size.width, 0)]; + [tableListSplitView setCollapsibleSubviewCollapsed:YES]; + } +} + +/** * Standard dealloc method. */ - (void)dealloc |