aboutsummaryrefslogtreecommitdiffstats
path: root/Source/SPCustomQuery.m
diff options
context:
space:
mode:
authorMax <post@wickenrode.com>2014-03-05 15:07:28 +0100
committerMax <post@wickenrode.com>2014-03-05 15:07:28 +0100
commitdfa060854cd456593a5ff0c4926d9c6775fabbfc (patch)
tree31466315f8f09fb66bc354fac74dd645b2243a98 /Source/SPCustomQuery.m
parentb67728258595b7ce256ea50485ee6e6cb8137ac8 (diff)
parent2be037fb2f1b60231ad8f8f58720d6becf5ff528 (diff)
downloadsequelpro-dfa060854cd456593a5ff0c4926d9c6775fabbfc.tar.gz
sequelpro-dfa060854cd456593a5ff0c4926d9c6775fabbfc.tar.bz2
sequelpro-dfa060854cd456593a5ff0c4926d9c6775fabbfc.zip
Merge pull request #1907
Add support for shift-clicking to reverse column sort order (patch by Miroslav Zoričák)
Diffstat (limited to 'Source/SPCustomQuery.m')
-rw-r--r--Source/SPCustomQuery.m20
1 files changed, 16 insertions, 4 deletions
diff --git a/Source/SPCustomQuery.m b/Source/SPCustomQuery.m
index 4b20af0b..8a2031f1 100644
--- a/Source/SPCustomQuery.m
+++ b/Source/SPCustomQuery.m
@@ -2141,19 +2141,31 @@
NSMutableString *queryString = [NSMutableString stringWithString:lastExecutedQuery];
+ NSUInteger modifierFlags = [[NSApp currentEvent] modifierFlags];
+
// Sets column order as tri-state descending, ascending, no sort, descending, ascending etc. order if the same
// header is clicked several times
if (sortField && [[tableColumn identifier] integerValue] == [sortField integerValue]) {
- if(isDesc) {
+ BOOL invert = NO;
+ if (modifierFlags & NSShiftKeyMask) {
+ invert = YES;
+ }
+
+ // this is the same as saying (isDesc && !invert) || (!isDesc && invert)
+ if (isDesc != invert) {
[sortField release];
sortField = nil;
} else {
- if (sortField) [sortField release];
- sortField = [[NSNumber alloc] initWithInteger:[[tableColumn identifier] integerValue]];
isDesc = !isDesc;
}
} else {
- isDesc = NO;
+ // When the column is not sorted, allow to sort in reverse order using Shift+click
+ if (modifierFlags & NSShiftKeyMask) {
+ isDesc = YES;
+ } else {
+ isDesc = NO;
+ }
+
[[customQueryView onMainThread] setIndicatorImage:nil inTableColumn:[customQueryView tableColumnWithIdentifier:[NSString stringWithFormat:@"%lld", (long long)[sortField integerValue]]]];
if (sortField) [sortField release];
sortField = [[NSNumber alloc] initWithInteger:[[tableColumn identifier] integerValue]];