aboutsummaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
Diffstat (limited to 'Source')
-rw-r--r--Source/SPCustomQuery.h20
-rw-r--r--Source/SPCustomQuery.m64
-rw-r--r--Source/SPSplitView.m28
-rw-r--r--Source/SPTablesList.h9
4 files changed, 36 insertions, 85 deletions
diff --git a/Source/SPCustomQuery.h b/Source/SPCustomQuery.h
index f643b795..8c25cf60 100644
--- a/Source/SPCustomQuery.h
+++ b/Source/SPCustomQuery.h
@@ -49,23 +49,14 @@
#define SP_HISTORY_SAVE_MENUITEM_TAG 300001
#define SP_HISTORY_CLEAR_MENUITEM_TAG 300002
-#ifndef SP_REFACTOR
@class SPCopyTable;
@class SPQueryFavoriteManager;
@class SPDataStorage;
-@class BWSplitView;
+@class SPSplitView;
@class SPFieldEditorController;
@class SPMySQLConnection;
@class SPMySQLFastStreamingResult;
@class SPTextView;
-#else
-@class SPCopyTable;
-@class SPQueryFavoriteManager;
-@class SPDataStorage;
-@class SPFieldEditorController;
-@class SPMySQLConnection
-@class SPMySQLFastStreamingResult;
-#endif
@interface SPCustomQuery : NSObject
#ifdef SP_REFACTOR
@@ -106,7 +97,6 @@
IBOutlet id valueTextField;
IBOutlet id runSelectionButton;
IBOutlet id runAllButton;
- IBOutlet id multipleLineEditingButton;
IBOutlet NSMenuItem *runSelectionMenuItem;
IBOutlet NSMenuItem *runAllMenuItem;
@@ -133,11 +123,8 @@
#endif
IBOutlet NSButton *queryInfoButton;
-#ifndef SP_REFACTOR
- IBOutlet BWSplitView *queryInfoPaneSplitView;
-#else
- IBOutlet NSSplitView *queryInfoPaneSplitView;
-#endif
+ IBOutlet SPSplitView *queryInfoPaneSplitView;
+ IBOutlet SPSplitView *queryEditorSplitView;
SPFieldEditorController *fieldEditor;
@@ -234,7 +221,6 @@
- (IBAction)copyQueryHistory:(id)sender;
- (IBAction)clearQueryHistory:(id)sender;
- (IBAction)showCompletionList:(id)sender;
-- (IBAction)toggleQueryInfoPaneCollapse:(NSButton *)sender;
// Query actions
- (void)performQueries:(NSArray *)queries withCallback:(SEL)customQueryCallbackMethod;
diff --git a/Source/SPCustomQuery.m b/Source/SPCustomQuery.m
index 1d92c88b..ef4faa17 100644
--- a/Source/SPCustomQuery.m
+++ b/Source/SPCustomQuery.m
@@ -54,6 +54,7 @@
#import "SPAlertSheets.h"
#import "SPCopyTable.h"
#import "SPGeometryDataView.h"
+#import "SPSplitView.h"
#import "SPTextView.h"
#import "RegexKitLite.h"
#ifndef SP_REFACTOR /* headers */
@@ -522,16 +523,6 @@
return (NSFontPanelSizeModeMask|NSFontPanelCollectionModeMask);
}
-/**
- * Toggle whether the query info pane is visible.
- */
-- (IBAction)toggleQueryInfoPaneCollapse:(NSButton *)sender
-{
- [queryInfoPaneSplitView toggleCollapse:sender];
-
- [sender setToolTip:([sender state] == NSOffState) ? NSLocalizedString(@"Show Query Information", @"Show Query Information") : NSLocalizedString(@"Hide Query Information", @"Hide Query Information")];
-}
-
#pragma mark -
#pragma mark Query actions
@@ -1349,12 +1340,10 @@
#ifndef SP_REFACTOR /* show/hide errror view */
// Show or hide the error area if necessary
- if ([errorsString length] && [queryInfoPaneSplitView collapsibleSubviewCollapsed]) {
- [queryInfoButton setState:NSOnState];
- [self toggleQueryInfoPaneCollapse:queryInfoButton];
- } else if (![errorsString length] && ![queryInfoPaneSplitView collapsibleSubviewCollapsed]) {
- [queryInfoButton setState:NSOffState];
- [self toggleQueryInfoPaneCollapse:queryInfoButton];
+ if ([errorsString length] && [queryInfoPaneSplitView isCollapsibleSubviewCollapsed]) {
+ [queryInfoPaneSplitView toggleCollapse:self];
+ } else if (![errorsString length] && ![queryInfoPaneSplitView isCollapsibleSubviewCollapsed]) {
+ [queryInfoPaneSplitView toggleCollapse:self];
}
#else
if ( [errorsString length] > 0 )
@@ -2742,7 +2731,7 @@
#ifndef SP_REFACTOR /* splitview delegate methods */
/**
- * Tells the splitView that it can collapse views
+ * Tells the split views that they can collapse views
*/
- (BOOL)splitView:(NSSplitView *)sender canCollapseSubview:(NSView *)subview
{
@@ -2750,26 +2739,6 @@
}
/**
- * Defines max position of splitView
- */
-- (CGFloat)splitView:(NSSplitView *)sender constrainMaxCoordinate:(CGFloat)proposedMax ofSubviewAt:(NSInteger)offset
-{
- if (sender != queryInfoPaneSplitView) return (offset == 0) ? (proposedMax - 100) : (proposedMax - 73);
-
- return proposedMax;
-}
-
-/**
- * Defines min position of splitView
- */
-- (CGFloat)splitView:(NSSplitView *)sender constrainMinCoordinate:(CGFloat)proposedMin ofSubviewAt:(NSInteger)offset
-{
- if (sender != queryInfoPaneSplitView) return proposedMin + 100;
-
- return proposedMin;
-}
-
-/**
* The query information pane cannot be resized.
*/
- (NSRect)splitView:(NSSplitView *)splitView effectiveRect:(NSRect)proposedEffectiveRect forDrawnRect:(NSRect)drawnRect ofDividerAtIndex:(NSInteger)dividerIndex
@@ -3902,6 +3871,14 @@
[queryFavoritesSaveAsMenuItem setTag:SP_SAVE_SELECTION_FAVORTITE_MENUITEM_TAG];
[queryFavoritesSaveAllMenuItem setTag:SP_SAVE_ALL_FAVORTITE_MENUITEM_TAG];
+ // Set up the split views
+ [queryEditorSplitView setMinSize:100 ofSubviewAtIndex:0];
+ [queryEditorSplitView setMinSize:100 ofSubviewAtIndex:1];
+
+ [queryInfoPaneSplitView setCollapsibleSubviewIndex:1];
+ [queryInfoPaneSplitView setCollapsibleSubviewCollapsed:YES animate:NO];
+
+
#ifndef SP_REFACTOR
// Set the structure and index view's vertical gridlines if required
[customQueryView setGridStyleMask:([prefs boolForKey:SPDisplayTableViewVerticalGridlines]) ? NSTableViewSolidVerticalGridLineMask : NSTableViewGridNone];
@@ -3921,19 +3898,6 @@
[prefs addObserver:self forKeyPath:SPGlobalResultTableFont options:NSKeyValueObservingOptionNew context:NULL];
#endif
- // Collapse the query information pane
- if ([queryInfoPaneSplitView collapsibleSubview]) {
- queryInfoPanePaddingHeight = [[queryInfoPaneSplitView collapsibleSubview] frame].size.height - [errorTextScrollView frame].size.height;
-
- [queryInfoButton setNextState];
- [queryInfoButton setToolTip:NSLocalizedString(@"Show Query Information", @"Show Query Information")];
-
- [queryInfoPaneSplitView setValue:[NSNumber numberWithFloat:[queryInfoPaneSplitView collapsibleSubview].frame.size.height] forKey:@"uncollapsedSize"];
- [[queryInfoPaneSplitView collapsibleSubview] setAutoresizesSubviews:NO];
- [[queryInfoPaneSplitView collapsibleSubview] setFrameSize:NSMakeSize([queryInfoPaneSplitView collapsibleSubview].frame.size.width, 0)];
- [queryInfoPaneSplitView setCollapsibleSubviewCollapsed:YES];
- [[queryInfoPaneSplitView collapsibleSubview] setAutoresizesSubviews:YES];
- }
}
#pragma mark -
diff --git a/Source/SPSplitView.m b/Source/SPSplitView.m
index f3c9b175..d86a259e 100644
--- a/Source/SPSplitView.m
+++ b/Source/SPSplitView.m
@@ -53,7 +53,7 @@
NSView *wrappedView;
}
-- (id)initReplacingView:(NSView *)aView;
+- (id)initReplacingView:(NSView *)aView inVerticalSplitView:(BOOL)verticalSplitView;
- (void)restoreOriginalView;
@end
@@ -211,7 +211,7 @@
// If collapsing, ensure the original view is wrapped in a helper view to avoid
// animation resizes of the contained view. (Uncollapses will already be wrapped.)
if (![viewToAnimate isMemberOfClass:[SPSplitViewHelperView class]]) {
- [[[SPSplitViewHelperView alloc] initReplacingView:viewToAnimate] autorelease];
+ [[[SPSplitViewHelperView alloc] initReplacingView:viewToAnimate inVerticalSplitView:[self isVertical]] autorelease];
viewToAnimate = [[self subviews] objectAtIndex:collapsibleSubviewIndex];
}
@@ -1008,24 +1008,34 @@
* specified view, adding it as a subview to maintain the same appearance, and then
* can be animated without affecting the contained view.
*/
-- (id)initReplacingView:(NSView *)aView
+- (id)initReplacingView:(NSView *)aView inVerticalSplitView:(BOOL)verticalSplitView
{
self = [super initWithFrame:[aView frame]];
if (!self) return nil;
+ NSUInteger wrappedResizeMask = [wrappedView autoresizingMask];
+
// Retain the wrapped view while this view exists
wrappedView = [aView retain];
// Copy over the autoresizing mask from the wrapped view to this view, to keep the same
// draw appearance during the resize.
- [self setAutoresizingMask:[wrappedView autoresizingMask]];
-
- // Set the wrapped view to flexible margin, edge dependent on view ordering
- if ([[[wrappedView superview] subviews] indexOfObject:wrappedView]) {
- [wrappedView setAutoresizingMask:NSViewMinXMargin | NSViewMinYMargin];
+ [self setAutoresizingMask:wrappedResizeMask];
+
+ // Amend the wrapped view's autoresize mask. Keep the autosizing across the breadth of
+ // the split view, but amend the autosizing along the lengthwise axis of the split view
+ // so that no sizing occurs, only a flexible margin to allow resizing
+ if (verticalSplitView) {
+ wrappedResizeMask &= ~NSViewMinXMargin;
+ wrappedResizeMask &= ~NSViewWidthSizable;
+ wrappedResizeMask |= NSViewMaxXMargin;
} else {
- [wrappedView setAutoresizingMask:NSViewMaxXMargin | NSViewMaxYMargin];
+ wrappedResizeMask &= ~NSViewMaxYMargin;
+ wrappedResizeMask &= ~NSViewHeightSizable;
+ wrappedResizeMask |= NSViewMinYMargin;
+
}
+ [wrappedView setAutoresizingMask:wrappedResizeMask];
// Swap the views
[[wrappedView superview] replaceSubview:wrappedView with:self];
diff --git a/Source/SPTablesList.h b/Source/SPTablesList.h
index 2ddb8375..172fff67 100644
--- a/Source/SPTablesList.h
+++ b/Source/SPTablesList.h
@@ -44,15 +44,6 @@
@class SQLSidebarViewController;
#endif
-@interface NSObject (BWSplitView)
-
-- (NSView *)collapsibleSubview;
-- (IBAction)toggleCollapse:(id)sender;
-- (BOOL)collapsibleSubviewIsCollapsed;
-- (void)setCollapsibleSubviewCollapsed:(BOOL)flag;
-
-@end
-
@interface SPTablesList : NSObject
#ifdef SP_REFACTOR
<NSTextFieldDelegate>