aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMax <dmoagx@users.noreply.github.com>2018-05-11 00:38:35 +0200
committerMax <dmoagx@users.noreply.github.com>2018-05-11 00:38:35 +0200
commit1ac52c38f1b819fa28610c74661a5fd4dbab21f9 (patch)
tree65e669d3e812b7804b4db4bc16dcc35f971db67e
parent1318bce4cd58d8aaa31c6c386c6b709713e1dde9 (diff)
downloadsequelpro-1ac52c38f1b819fa28610c74661a5fd4dbab21f9.tar.gz
sequelpro-1ac52c38f1b819fa28610c74661a5fd4dbab21f9.tar.bz2
sequelpro-1ac52c38f1b819fa28610c74661a5fd4dbab21f9.zip
#63: Move some UI around and add proper icon
Clarify some variable names
-rw-r--r--Interfaces/English.lproj/DBView.xib53
-rw-r--r--Resources/Images/button_filter.pngbin0 -> 343 bytes
-rw-r--r--Resources/Images/button_filter@2x.pngbin0 -> 450 bytes
-rw-r--r--Resources/Images/button_filter_active.pngbin0 -> 332 bytes
-rw-r--r--Resources/Images/button_filter_active@2x.pngbin0 -> 479 bytes
-rw-r--r--Source/SPAppController.m2
-rw-r--r--Source/SPTableContent.h2
-rw-r--r--Source/SPTableContent.m57
-rw-r--r--Source/SPTableContentFilterController.h6
-rw-r--r--Source/SPTableContentFilterController.m25
-rw-r--r--sequel-pro.xcodeproj/project.pbxproj68
11 files changed, 133 insertions, 80 deletions
diff --git a/Interfaces/English.lproj/DBView.xib b/Interfaces/English.lproj/DBView.xib
index a725d186..0d5f3b64 100644
--- a/Interfaces/English.lproj/DBView.xib
+++ b/Interfaces/English.lproj/DBView.xib
@@ -1075,7 +1075,7 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<customView misplaced="YES" id="vcX-Xr-0cm" userLabel="Table Content Container">
- <rect key="frame" x="0.0" y="0.0" width="695" height="488"/>
+ <rect key="frame" x="0.0" y="0.0" width="695" height="458"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<imageView id="5179">
@@ -1145,8 +1145,8 @@
<binding destination="1907" name="value" keyPath="values.EditInSheetEnabled" id="6351"/>
</connections>
</button>
- <textField verticalHuggingPriority="750" id="261">
- <rect key="frame" x="159" y="-4" width="421" height="22"/>
+ <textField verticalHuggingPriority="750" misplaced="YES" id="261">
+ <rect key="frame" x="193" y="-4" width="362" height="22"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="left" id="3759">
<font key="font" metaFont="smallSystem"/>
@@ -1238,26 +1238,15 @@
<autoresizingMask key="autoresizingMask"/>
</tableHeaderView>
</scrollView>
- <progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" maxValue="100" displayedWhenStopped="NO" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" id="858">
- <rect key="frame" x="676" y="466" width="16" height="16"/>
- <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
+ <progressIndicator wantsLayer="YES" horizontalHuggingPriority="750" verticalHuggingPriority="750" misplaced="YES" maxValue="100" displayedWhenStopped="NO" bezeled="NO" indeterminate="YES" controlSize="small" style="spinning" id="858">
+ <rect key="frame" x="561" y="4" width="16" height="16"/>
+ <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
</progressIndicator>
- <button hidden="YES" verticalHuggingPriority="750" id="4676">
- <rect key="frame" x="616" y="463" width="54" height="19"/>
- <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMinY="YES"/>
- <buttonCell key="cell" type="roundRect" title="Filter" bezelStyle="roundedRect" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="4677">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
- <font key="font" metaFont="smallSystem"/>
- </buttonCell>
- <connections>
- <action selector="filterTable:" target="67" id="4678"/>
- </connections>
- </button>
<button toolTip="Show/Hide table content filters" horizontalHuggingPriority="750" verticalHuggingPriority="750" misplaced="YES" id="LYg-Ux-Lph">
- <rect key="frame" x="2" y="456" width="36" height="32"/>
- <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
- <buttonCell key="cell" type="push" bezelStyle="rounded" image="NSIconViewTemplate" imagePosition="only" alignment="center" borderStyle="border" inset="2" id="WNc-7G-qPQ">
- <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES" changeBackground="YES" changeGray="YES"/>
+ <rect key="frame" x="155" y="-1" width="32" height="25"/>
+ <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="button_filter" imagePosition="overlaps" alignment="center" alternateImage="button_filter_active" inset="2" id="WNc-7G-qPQ">
+ <behavior key="behavior" pushIn="YES" changeContents="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
@@ -1267,11 +1256,11 @@
</subviews>
</customView>
<customView misplaced="YES" id="9oo-u0-ndW" userLabel="Filter Rule Editor Container">
- <rect key="frame" x="0.0" y="488" width="695" height="41"/>
+ <rect key="frame" x="0.0" y="458" width="695" height="71"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
<subviews>
<scrollView misplaced="YES" borderType="none" autohidesScrollers="YES" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" usesPredominantAxisScrolling="NO" horizontalScrollElasticity="none" id="CIQ-tc-1Fn">
- <rect key="frame" x="0.0" y="1" width="694" height="40"/>
+ <rect key="frame" x="0.0" y="31" width="694" height="40"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="kdv-Wp-s5h">
<rect key="frame" x="0.0" y="0.0" width="694" height="40"/>
@@ -1296,12 +1285,23 @@
</scroller>
</scrollView>
<customView misplaced="YES" id="GJn-1I-e7O" customClass="SPFillView">
- <rect key="frame" x="0.0" y="0.0" width="695" height="1"/>
+ <rect key="frame" x="0.0" y="30" width="695" height="1"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
<userDefinedRuntimeAttributes>
<userDefinedRuntimeAttribute type="string" keyPath="systemColorOfName" value="gridColor"/>
</userDefinedRuntimeAttributes>
</customView>
+ <button verticalHuggingPriority="750" misplaced="YES" id="4676">
+ <rect key="frame" x="616" y="5" width="54" height="19"/>
+ <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
+ <buttonCell key="cell" type="roundRect" title="Filter" bezelStyle="roundedRect" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="4677">
+ <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+ <font key="font" metaFont="smallSystem"/>
+ </buttonCell>
+ <connections>
+ <action selector="filterTable:" target="ki9-Po-bdr" id="eAC-YD-du3"/>
+ </connections>
+ </button>
</subviews>
</customView>
</subviews>
@@ -4596,7 +4596,6 @@ Gw
<outlet property="contentViewPane" destination="27" id="6661"/>
<outlet property="countText" destination="261" id="262"/>
<outlet property="duplicateButton" destination="5178" id="7837"/>
- <outlet property="filterButton" destination="4676" id="5942"/>
<outlet property="filterControllerInstance" destination="ki9-Po-bdr" id="5od-0U-9xj"/>
<outlet property="filterRuleEditorContainer" destination="9oo-u0-ndW" id="OZb-jI-CMy"/>
<outlet property="filterTableController" destination="UBS-cN-3Af" id="FV7-by-Gy1"/>
@@ -4619,6 +4618,7 @@ Gw
</customObject>
<customObject id="ki9-Po-bdr" userLabel="SPTableContentFilter" customClass="SPTableContentFilterController">
<connections>
+ <outlet property="filterButton" destination="4676" id="9tZ-dW-BR3"/>
<outlet property="filterRuleEditor" destination="FF9-z2-9od" id="RW4-XM-XQS"/>
<outlet property="tableContentViewBelow" destination="36" id="ZGh-dM-J6C"/>
<outlet property="tableDataInstance" destination="4702" id="e69-W6-UwN"/>
@@ -5160,7 +5160,6 @@ Gw
<image name="NSApplicationIcon" width="128" height="128"/>
<image name="NSGoLeftTemplate" width="9" height="12"/>
<image name="NSGoRightTemplate" width="9" height="12"/>
- <image name="NSIconViewTemplate" width="10" height="10"/>
<image name="NSLeftFacingTriangleTemplate" width="9" height="12"/>
<image name="NSListViewTemplate" width="14" height="10"/>
<image name="NSRightFacingTriangleTemplate" width="9" height="12"/>
@@ -5172,6 +5171,8 @@ Gw
<image name="button_edit" width="30" height="22"/>
<image name="button_edit_mode" width="30" height="22"/>
<image name="button_edit_mode_selected" width="30" height="22"/>
+ <image name="button_filter" width="30" height="22"/>
+ <image name="button_filter_active" width="30" height="22"/>
<image name="button_info_pane_show" width="30" height="22"/>
<image name="button_left" width="30" height="22"/>
<image name="button_pagination" width="30" height="22"/>
diff --git a/Resources/Images/button_filter.png b/Resources/Images/button_filter.png
new file mode 100644
index 00000000..2ae6f60d
--- /dev/null
+++ b/Resources/Images/button_filter.png
Binary files differ
diff --git a/Resources/Images/button_filter@2x.png b/Resources/Images/button_filter@2x.png
new file mode 100644
index 00000000..0e40ee1f
--- /dev/null
+++ b/Resources/Images/button_filter@2x.png
Binary files differ
diff --git a/Resources/Images/button_filter_active.png b/Resources/Images/button_filter_active.png
new file mode 100644
index 00000000..3a39d358
--- /dev/null
+++ b/Resources/Images/button_filter_active.png
Binary files differ
diff --git a/Resources/Images/button_filter_active@2x.png b/Resources/Images/button_filter_active@2x.png
new file mode 100644
index 00000000..67084e78
--- /dev/null
+++ b/Resources/Images/button_filter_active@2x.png
Binary files differ
diff --git a/Source/SPAppController.m b/Source/SPAppController.m
index 2e62725f..c9523bc7 100644
--- a/Source/SPAppController.m
+++ b/Source/SPAppController.m
@@ -2368,7 +2368,7 @@
*/
- (BOOL)application:(NSApplication *)sender delegateHandlesKey:(NSString *)key
{
- NSLog(@"Not yet implemented.");
+ NSLog(@"Not yet implemented: %@", key);
return NO;
}
diff --git a/Source/SPTableContent.h b/Source/SPTableContent.h
index a670c69a..bd14cbdf 100644
--- a/Source/SPTableContent.h
+++ b/Source/SPTableContent.h
@@ -69,7 +69,6 @@ typedef NS_ENUM(NSInteger, SPTableContentFilterSource) {
IBOutlet SPCopyTable *tableContentView;
- IBOutlet NSButton *filterButton;
IBOutlet NSButton *toggleRuleFilterButton;
IBOutlet id addButton;
IBOutlet id duplicateButton;
@@ -170,7 +169,6 @@ typedef NS_ENUM(NSInteger, SPTableContentFilterSource) {
}
#ifdef SP_CODA /* glue */
-@property (assign) id filterButton;
@property (assign) NSButton* addButton;
@property (assign) NSButton* duplicateButton;
@property (assign) NSButton* removeButton;
diff --git a/Source/SPTableContent.m b/Source/SPTableContent.m
index 40133b71..0bc3cc26 100644
--- a/Source/SPTableContent.m
+++ b/Source/SPTableContent.m
@@ -92,7 +92,6 @@ static void *TableContentKVOContext = &TableContentKVOContext;
#ifdef SP_CODA
@synthesize addButton;
@synthesize duplicateButton;
-@synthesize filterButton;
@synthesize paginationNextButton;
@synthesize paginationPageField;
@synthesize paginationPreviousButton;
@@ -360,7 +359,6 @@ static void *TableContentKVOContext = &TableContentKVOContext;
// Empty and disable filter options
[self setRuleEditorVisible:NO animate:NO];
- [filterButton setEnabled:NO];
[toggleRuleFilterButton setEnabled:NO];
[toggleRuleFilterButton setState:NSOffState];
[filterControllerInstance setColumns:nil];
@@ -650,7 +648,7 @@ static void *TableContentKVOContext = &TableContentKVOContext;
[self setRuleEditorVisible:NO animate:NO]; //immediately hide the filter editor when switching tables
[toggleRuleFilterButton setState:NSOffState];
}
- [filterButton setEnabled:enableInteraction];
+ [filterControllerInstance setEnabled:enableInteraction];
[toggleRuleFilterButton setEnabled:enableInteraction];
// Restore page number if limiting is set
@@ -1304,11 +1302,15 @@ static void *TableContentKVOContext = &TableContentKVOContext;
[tableDocumentInstance startTaskWithDescription:taskString];
if ([NSThread isMainThread]) {
- [NSThread detachNewThreadWithName:SPCtxt(@"SPTableContent filter table task", tableDocumentInstance) target:self selector:@selector(filterTableTask) object:nil];
+ [NSThread detachNewThreadWithName:SPCtxt(@"SPTableContent filter table task", tableDocumentInstance)
+ target:self
+ selector:@selector(filterTableTask)
+ object:nil];
} else {
[self filterTableTask];
}
}
+
- (void)filterTableTask
{
@autoreleasepool {
@@ -1349,7 +1351,6 @@ static void *TableContentKVOContext = &TableContentKVOContext;
[self updateFilterRuleEditorSize:0.0 animate:animate];
}
showFilterRuleEditor = show;
- [filterButton setHidden:!show];
}
- (void)setUsedQuery:(NSString *)query
@@ -3416,39 +3417,49 @@ static void *TableContentKVOContext = &TableContentKVOContext;
- (void)updateFilterRuleEditorSize:(CGFloat)requestedHeight animate:(BOOL)animate
{
- NSRect contentViewRect = [contentAreaContainer frame];
- CGFloat availableHeight = contentViewRect.size.height;
+ NSRect contentAreaRect = [contentAreaContainer frame];
+ CGFloat availableHeight = contentAreaRect.size.height;
+
+ NSRect ruleEditorRect = [[[filterControllerInstance view] enclosingScrollView] frame];
+
+ //adjust for the UI elements below the rule editor, but only if the view height should not be 0 (ie. hidden)
+ CGFloat containerRequestedHeight = requestedHeight ? requestedHeight + ruleEditorRect.origin.y : 0;
+
//the rule editor can ask for about one-third of the available space before we have it use it's scrollbar
- CGFloat givenHeight = MIN(requestedHeight + 1,(availableHeight / 3)); // +1 is the SPFillView at the bottom
-
+ CGFloat topContainerGivenHeight = MIN(containerRequestedHeight,(availableHeight / 3));
+
// abort if the size didn't really change
- NSRect ruleEditorRect = [filterRuleEditorContainer frame];
- if(givenHeight == ruleEditorRect.size.height) return;
+ NSRect topContainerRect = [filterRuleEditorContainer frame];
+ if(topContainerGivenHeight == topContainerRect.size.height) return;
- CGFloat newTableContentHeight = availableHeight - givenHeight;
+ CGFloat newBottomContainerHeight = availableHeight - topContainerGivenHeight;
- NSRect tableContentRect = [tableContentContainer frame];
- tableContentRect.size.height = newTableContentHeight;
+ NSRect bottomContainerRect = [tableContentContainer frame];
+ bottomContainerRect.size.height = newBottomContainerHeight;
+ topContainerRect.origin.y = newBottomContainerHeight;
+ topContainerRect.size.height = topContainerGivenHeight;
- ruleEditorRect.origin.y = newTableContentHeight;
- ruleEditorRect.size.height = givenHeight;
+ // this one should be inferable from the IB layout IMHO, but the OS gets it wrong
+ ruleEditorRect.size.height = topContainerGivenHeight - ruleEditorRect.origin.y;
if(animate) {
[NSAnimationContext beginGrouping];
- [[tableContentContainer animator] setFrame:tableContentRect];
- [[filterRuleEditorContainer animator] setFrame:ruleEditorRect];
+ [[tableContentContainer animator] setFrame:bottomContainerRect];
+ [[filterRuleEditorContainer animator] setFrame:topContainerRect];
+ [[[[filterControllerInstance view] enclosingScrollView] animator] setFrame:ruleEditorRect];
[NSAnimationContext endGrouping];
}
else {
- [tableContentContainer setFrameSize:tableContentRect.size];
- [filterRuleEditorContainer setFrame:ruleEditorRect];
+ [tableContentContainer setFrameSize:bottomContainerRect.size];
+ [filterRuleEditorContainer setFrame:topContainerRect];
+ [[[filterControllerInstance view] enclosingScrollView] setFrame:ruleEditorRect];
}
//disable rubberband scrolling as long as there is nothing to scroll
if(scrollViewHasRubberbandScrolling) {
NSScrollView *filterControllerScroller = [[filterControllerInstance view] enclosingScrollView];
- if (givenHeight > requestedHeight) { // note that givenHeight + 1 == requestedHeight in order to avoid scroll
+ if (ruleEditorRect.size.height >= requestedHeight) {
[filterControllerScroller setVerticalScrollElasticity:NSScrollElasticityNone];
} else {
[filterControllerScroller setVerticalScrollElasticity:NSScrollElasticityAutomatic];
@@ -3586,7 +3597,7 @@ static void *TableContentKVOContext = &TableContentKVOContext;
[removeButton setEnabled:NO];
[duplicateButton setEnabled:NO];
[reloadButton setEnabled:NO];
- [filterButton setEnabled:NO];
+ [filterControllerInstance setEnabled:NO];
[toggleRuleFilterButton setEnabled:NO];
tableRowsSelectable = NO;
[paginationPreviousButton setEnabled:NO];
@@ -3622,7 +3633,7 @@ static void *TableContentKVOContext = &TableContentKVOContext;
}
}
- [filterButton setEnabled:(!![selectedTable length])];
+ [filterControllerInstance setEnabled:(!![selectedTable length])];
[toggleRuleFilterButton setEnabled:(!![selectedTable length])];
tableRowsSelectable = YES;
}
diff --git a/Source/SPTableContentFilterController.h b/Source/SPTableContentFilterController.h
index 32aeec00..3fe5e8ea 100644
--- a/Source/SPTableContentFilterController.h
+++ b/Source/SPTableContentFilterController.h
@@ -41,6 +41,7 @@ NSString * const SPTableContentFilterHeightChangedNotification;
IBOutlet SPDatabaseDocument *tableDocumentInstance;
IBOutlet SPTablesList *tablesListInstance;
IBOutlet NSView *tableContentViewBelow;
+ IBOutlet NSButton *filterButton;
NSMutableArray *columns;
NSMutableDictionary *contentFilters;
@@ -54,6 +55,8 @@ NSString * const SPTableContentFilterHeightChangedNotification;
id target;
SEL action;
+
+ BOOL enabled;
}
/**
@@ -154,4 +157,7 @@ NSString * const SPTableContentFilterHeightChangedNotification;
@property (assign, nonatomic) id target;
@property (assign, nonatomic) SEL action;
+- (BOOL)isEnabled;
+- (void)setEnabled:(BOOL)enabled;
+
@end
diff --git a/Source/SPTableContentFilterController.m b/Source/SPTableContentFilterController.m
index c8efa952..a2d6b2d2 100644
--- a/Source/SPTableContentFilterController.m
+++ b/Source/SPTableContentFilterController.m
@@ -186,6 +186,7 @@ static void _addIfNotNil(NSMutableArray *array, id toAdd);
- (BOOL)_focusOnFieldInSubtree:(NSDictionary *)dict;
- (void)_resize;
- (void)openContentFilterManagerForFilterType:(NSString *)filterType;
+- (IBAction)filterTable:(id)sender;
@end
@@ -305,6 +306,9 @@ static void _addIfNotNil(NSMutableArray *array, id toAdd);
// make the rule editor reload the criteria
[filterRuleEditor reloadCriteria];
+
+ // disable UI if no criteria exist
+ [self setEnabled:([columns count] != 0)];
}
- (NSInteger)ruleEditor:(NSRuleEditor *)editor numberOfChildrenForCriterion:(nullable id)criterion withRowType:(NSRuleEditorRowType)rowType
@@ -472,10 +476,15 @@ static void _addIfNotNil(NSMutableArray *array, id toAdd);
// if the action was caused by pressing return or enter, trigger filtering
NSEvent *event = [NSApp currentEvent];
if(event && [event type] == NSKeyDown && ([event keyCode] == 36 || [event keyCode] == 76)) {
- if(target && action) [target performSelector:action withObject:self];
+ [self filterTable:nil];
}
}
+- (IBAction)filterTable:(id)sender
+{
+ if(target && action) [target performSelector:action withObject:self];
+}
+
- (void)_resize
{
// The situation with the sizing is a bit f'ed up:
@@ -740,6 +749,18 @@ static void _addIfNotNil(NSMutableArray *array, id toAdd);
return filterRuleEditor;
}
+- (BOOL)isEnabled
+{
+ return enabled;
+}
+
+- (void)setEnabled:(BOOL)_enabled
+{
+ enabled = _enabled;
+ [filterButton setEnabled:_enabled];
+ [filterRuleEditor setEnabled:_enabled];
+}
+
- (NSString *)sqlWhereExpressionWithBinary:(BOOL)isBINARY error:(NSError **)err
{
NSMutableString *filterString = [[NSMutableString alloc] init];
@@ -926,7 +947,7 @@ void _addIfNotNil(NSMutableArray *array, id toAdd)
NSString *curFilterType = [[op settings] objectForKey:@"filterType"];
NSString *serFilterType = [serialized objectForKey:SerFilterExprType]; // this is optional
if(serFilterType && ![curFilterType isEqualToString:serFilterType]) {
- SPLog(@"mistmatch in filter types for operator %@: current=%@, serialized=%@",op,curFilterType,serFilterType);
+ SPLog(@"mismatch in filter types for operator %@: current=%@, serialized=%@",op,curFilterType,serFilterType);
goto fail;
}
diff --git a/sequel-pro.xcodeproj/project.pbxproj b/sequel-pro.xcodeproj/project.pbxproj
index 5b5dc546..61d4310b 100644
--- a/sequel-pro.xcodeproj/project.pbxproj
+++ b/sequel-pro.xcodeproj/project.pbxproj
@@ -413,6 +413,10 @@
B5E2C5FA0F2353B5007446E0 /* table-property.png in Resources */ = {isa = PBXBuildFile; fileRef = B5E2C5F90F2353B5007446E0 /* table-property.png */; };
B5E92F190F75B2D100012500 /* ExportDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = B5E92F170F75B2D100012500 /* ExportDialog.xib */; };
B5E92F1C0F75B2E800012500 /* SPExportController.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E92F1B0F75B2E800012500 /* SPExportController.m */; };
+ BA6B043D20A4FB0B00B012E1 /* button_filter_active@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = BA6B043920A4FB0A00B012E1 /* button_filter_active@2x.png */; };
+ BA6B043E20A4FB0B00B012E1 /* button_filter@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = BA6B043C20A4FB0B00B012E1 /* button_filter@2x.png */; };
+ BA6B044120A4FEDC00B012E1 /* button_filter_active.png in Resources */ = {isa = PBXBuildFile; fileRef = BA6B043F20A4FEDB00B012E1 /* button_filter_active.png */; };
+ BA6B044220A4FEDC00B012E1 /* button_filter.png in Resources */ = {isa = PBXBuildFile; fileRef = BA6B044020A4FEDC00B012E1 /* button_filter.png */; };
BAC6BAF920A0D22400247837 /* FilterTableWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = BAC6BAF720A0D22400247837 /* FilterTableWindow.xib */; };
BC01BCCF104024BE006BDEE7 /* SPEncodingPopupAccessory.m in Sources */ = {isa = PBXBuildFile; fileRef = BC01BCCE104024BE006BDEE7 /* SPEncodingPopupAccessory.m */; };
BC05F1C5101241DF008A97F8 /* YRKSpinningProgressIndicator.m in Sources */ = {isa = PBXBuildFile; fileRef = BC05F1C4101241DF008A97F8 /* YRKSpinningProgressIndicator.m */; };
@@ -1160,6 +1164,10 @@
B5E92F1A0F75B2E800012500 /* SPExportController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPExportController.h; sourceTree = "<group>"; };
B5E92F1B0F75B2E800012500 /* SPExportController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPExportController.m; sourceTree = "<group>"; };
B5EAC0FC0EC87FF900CC579C /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
+ BA6B043920A4FB0A00B012E1 /* button_filter_active@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_filter_active@2x.png"; sourceTree = "<group>"; };
+ BA6B043C20A4FB0B00B012E1 /* button_filter@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "button_filter@2x.png"; sourceTree = "<group>"; };
+ BA6B043F20A4FEDB00B012E1 /* button_filter_active.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = button_filter_active.png; sourceTree = "<group>"; };
+ BA6B044020A4FEDC00B012E1 /* button_filter.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = button_filter.png; sourceTree = "<group>"; };
BAC6BAF820A0D22400247837 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/FilterTableWindow.xib; sourceTree = "<group>"; };
BC01BCCD104024BE006BDEE7 /* SPEncodingPopupAccessory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SPEncodingPopupAccessory.h; sourceTree = "<group>"; };
BC01BCCE104024BE006BDEE7 /* SPEncodingPopupAccessory.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SPEncodingPopupAccessory.m; sourceTree = "<group>"; };
@@ -2026,18 +2034,6 @@
17E6418B0EF01FF7001BC333 /* Images */ = {
isa = PBXGroup;
children = (
- 17BFC80D10D3FF5200A3B112 /* Icons */,
- 17B548661E82B02100175D5A /* button_bar_handle@2x.png */,
- 17B548671E82B02100175D5A /* button_duplicate@2x.png */,
- 17B548681E82B02100175D5A /* button_edit_mode_selected@2x.png */,
- 17B548691E82B02100175D5A /* button_edit_mode@2x.png */,
- 17B5486A1E82B02100175D5A /* button_edit@2x.png */,
- 17B5486B1E82B02100175D5A /* button_left@2x.png */,
- 17B5486C1E82B02100175D5A /* button_pagination@2x.png */,
- 17B5486D1E82B02100175D5A /* button_remove@2x.png */,
- 17B5486E1E82B02100175D5A /* button_right@2x.png */,
- 17B5486F1E82B02100175D5A /* button_select_all@2x.png */,
- 17B548701E82B02100175D5A /* button_select_none@2x.png */,
C9AD7C8116761B3300234EEE /* button_action.png */,
C9AD7C8216761B3300234EEE /* button_action@2x.png */,
582E93F5168298C6003459FD /* button_add_folder.png */,
@@ -2045,20 +2041,31 @@
582E93FF168299E3003459FD /* button_add.png */,
3876E14F1CC0B26000D85154 /* button_add@2x.png */,
582E940116829B0A003459FD /* button_bar_handle.png */,
+ 17B548661E82B02100175D5A /* button_bar_handle@2x.png */,
C9C9943F1678A439001F5DA8 /* button_bar_spacer.png */,
582E940D1682A2AD003459FD /* button_bar_spacer@2x.png */,
582E94151682A463003459FD /* button_clear.png */,
17AD35F41E79888D000F213E /* button_clear@2x.png */,
582E94171682A4B4003459FD /* button_duplicate.png */,
- 582E942316835EA9003459FD /* button_edit.png */,
- 582E941E16835DD4003459FD /* button_edit_mode.png */,
+ 17B548671E82B02100175D5A /* button_duplicate@2x.png */,
582E941D16835DD4003459FD /* button_edit_mode_selected.png */,
+ 17B548681E82B02100175D5A /* button_edit_mode_selected@2x.png */,
+ 582E941E16835DD4003459FD /* button_edit_mode.png */,
+ 17B548691E82B02100175D5A /* button_edit_mode@2x.png */,
+ 582E942316835EA9003459FD /* button_edit.png */,
+ 17B5486A1E82B02100175D5A /* button_edit@2x.png */,
+ BA6B043F20A4FEDB00B012E1 /* button_filter_active.png */,
+ BA6B043920A4FB0A00B012E1 /* button_filter_active@2x.png */,
+ BA6B044020A4FEDC00B012E1 /* button_filter.png */,
+ BA6B043C20A4FB0B00B012E1 /* button_filter@2x.png */,
C9AD7C851676204300234EEE /* button_info_pane_hide.png */,
C9AD7C861676204300234EEE /* button_info_pane_hide@2x.png */,
C9AD7C871676204300234EEE /* button_info_pane_show.png */,
C9AD7C881676204300234EEE /* button_info_pane_show@2x.png */,
58C3506410B9A56C00D37E14 /* button_left.png */,
+ 17B5486B1E82B02100175D5A /* button_left@2x.png */,
58C3506A10B9AA8B00D37E14 /* button_pagination.png */,
+ 17B5486C1E82B02100175D5A /* button_pagination@2x.png */,
C9C9943B1678A117001F5DA8 /* button_pane_hide.png */,
C9C9943C1678A117001F5DA8 /* button_pane_hide@2x.png */,
C9C994431678A5CD001F5DA8 /* button_pane_show.png */,
@@ -2066,42 +2073,47 @@
C9AD7C7D167619B400234EEE /* button_refresh.png */,
C9AD7C7E167619B400234EEE /* button_refresh@2x.png */,
582E942516835FAE003459FD /* button_remove.png */,
+ 17B5486D1E82B02100175D5A /* button_remove@2x.png */,
58C3506610B9A57300D37E14 /* button_right.png */,
+ 17B5486E1E82B02100175D5A /* button_right@2x.png */,
582E94291683628C003459FD /* button_select_all.png */,
+ 17B5486F1E82B02100175D5A /* button_select_all@2x.png */,
582E942A1683628C003459FD /* button_select_none.png */,
- BC09D7DD12A786FB0030DB64 /* cancel.png */,
- BC09D7D912A786FB0030DB64 /* cancel-clicked.png */,
+ 17B548701E82B02100175D5A /* button_select_none@2x.png */,
BC09D7D812A786FB0030DB64 /* cancel-clicked-highlighted.png */,
+ BC09D7D912A786FB0030DB64 /* cancel-clicked.png */,
BC09D7DA12A786FB0030DB64 /* cancel-highlighted.png */,
- BC09D7DC12A786FB0030DB64 /* cancel-hovered.png */,
BC09D7DB12A786FB0030DB64 /* cancel-hovered-highlighted.png */,
+ BC09D7DC12A786FB0030DB64 /* cancel-hovered.png */,
+ BC09D7DD12A786FB0030DB64 /* cancel.png */,
582E942D1683658A003459FD /* clearconsole.png */,
- B577483A0F7A8B57003B34F9 /* database.png */,
177E792B0FCB54EC00E9E122 /* database-small.png */,
C9AD7C771676138000234EEE /* database-small@2x.png */,
+ B577483A0F7A8B57003B34F9 /* database.png */,
177E792C0FCB54EC00E9E122 /* dummy-small.png */,
582E9449168374C1003459FD /* field-small-square.png */,
384582C30FB95FF800DDACB6 /* func-small.png */,
17E6419D0EF02036001BC333 /* grabber-horizontal.png */,
17E6419E0EF02036001BC333 /* grabber-vertical.png */,
582E944B16837986003459FD /* hideconsole.png */,
+ 17BFC80D10D3FF5200A3B112 /* Icons */,
5843DA68161FA35600EAA6D1 /* key-icon-alternate.png */,
5843DA69161FA35600EAA6D1 /* key-icon-alternate@2x.png */,
5843DA6A161FA35600EAA6D1 /* key-icon.png */,
5843DA6B161FA35600EAA6D1 /* key-icon@2x.png */,
58E205FB1234FE4F00A97059 /* KeyTemplate.pdf */,
- 58D2E22D101222870063EF1D /* link-arrow.png */,
- 582E939C168296F3003459FD /* link-arrow@2x.png */,
58D2E22B101222870063EF1D /* link-arrow-clicked.png */,
582E9399168296F3003459FD /* link-arrow-clicked@2x.png */,
- 581068B51015411B0068C6E2 /* link-arrow-highlighted.png */,
- 582E939B168296F3003459FD /* link-arrow-highlighted@2x.png */,
58D2E22C101222870063EF1D /* link-arrow-highlighted-clicked.png */,
582E939A168296F3003459FD /* link-arrow-highlighted-clicked@2x.png */,
+ 581068B51015411B0068C6E2 /* link-arrow-highlighted.png */,
+ 582E939B168296F3003459FD /* link-arrow-highlighted@2x.png */,
+ 58D2E22D101222870063EF1D /* link-arrow.png */,
+ 582E939C168296F3003459FD /* link-arrow@2x.png */,
582E944F16837AA9003459FD /* network-small.png */,
384582C60FB9603600DDACB6 /* proc-small.png */,
- 58F48AA2161D03C6008536A1 /* quick-connect-icon.pdf */,
58F48B2D161D08C0008536A1 /* quick-connect-icon-white.pdf */,
+ 58F48AA2161D03C6008536A1 /* quick-connect-icon.pdf */,
50F530511ABCF66B002F2C1A /* reset.pdf */,
582E946F16837DB2003459FD /* showconsole.png */,
588B2CC50FE5641E00EC5FC0 /* ssh-connected.png */,
@@ -2114,12 +2126,12 @@
582E9481168380D6003459FD /* sync_arrows_05.png */,
582E9482168380D6003459FD /* sync_arrows_06.png */,
B5E2C5F90F2353B5007446E0 /* table-property.png */,
- C9C9944B1678BCFA001F5DA8 /* table-small.png */,
- C9C9944C1678BCFA001F5DA8 /* table-small@2x.png */,
C9C994471678B3E6001F5DA8 /* table-small-square.png */,
C9C994481678B3E6001F5DA8 /* table-small-square@2x.png */,
- 582E948E168383F0003459FD /* table-view-small.png */,
+ C9C9944B1678BCFA001F5DA8 /* table-small.png */,
+ C9C9944C1678BCFA001F5DA8 /* table-small@2x.png */,
582E948D168383F0003459FD /* table-view-small-square.png */,
+ 582E948E168383F0003459FD /* table-view-small.png */,
58A137CC123ED5E6000B1B75 /* titlebarlock.png */,
582E94A716839AD5003459FD /* toolbar-preferences-autoupdate.png */,
582E94A916839AEF003459FD /* toolbar-preferences-general.png */,
@@ -2842,6 +2854,7 @@
17E641F20EF02036001BC333 /* toolbar-switch-to-structure.png in Resources */,
17E641F30EF02036001BC333 /* toolbar-switch-to-table-info.png in Resources */,
17E6420A0EF020CB001BC333 /* DBView.xib in Resources */,
+ BA6B043D20A4FB0B00B012E1 /* button_filter_active@2x.png in Resources */,
17E641FA0EF02088001BC333 /* Growl Registration Ticket.growlRegDict in Resources */,
17E641FC0EF02088001BC333 /* sequel-pro.scriptSuite in Resources */,
3876E1501CC0B26000D85154 /* button_add@2x.png in Resources */,
@@ -2874,6 +2887,7 @@
BCA6F631100FA7D700E80253 /* FieldEditorSheet.xib in Resources */,
58D2E22E101222870063EF1D /* link-arrow-clicked.png in Resources */,
58D2E22F101222870063EF1D /* link-arrow-highlighted-clicked.png in Resources */,
+ BA6B044120A4FEDC00B012E1 /* button_filter_active.png in Resources */,
58D2E230101222870063EF1D /* link-arrow.png in Resources */,
17B548781E82B02100175D5A /* button_remove@2x.png in Resources */,
581068B61015411B0068C6E2 /* link-arrow-highlighted.png in Resources */,
@@ -2927,7 +2941,9 @@
5843DA6E161FA35600EAA6D1 /* key-icon.png in Resources */,
5843DA6F161FA35600EAA6D1 /* key-icon@2x.png in Resources */,
C9F92710162D38D70051CB2E /* toolbar-switch-to-table-info@2x.png in Resources */,
+ BA6B044220A4FEDC00B012E1 /* button_filter.png in Resources */,
C9F92712162D39E60051CB2E /* toolbar-switch-to-browse.png in Resources */,
+ BA6B043E20A4FB0B00B012E1 /* button_filter@2x.png in Resources */,
C9F92714162D39FE0051CB2E /* toolbar-switch-to-browse@2x.png in Resources */,
17B5487B1E82B02100175D5A /* button_select_none@2x.png in Resources */,
C9AD7C781676138000234EEE /* database-small@2x.png in Resources */,