diff options
author | Miroslav Zoricak <zoricak@udesign.sk> | 2014-03-05 11:19:38 +0100 |
---|---|---|
committer | Miroslav Zoricak <zoricak@udesign.sk> | 2014-03-05 11:19:38 +0100 |
commit | 2be037fb2f1b60231ad8f8f58720d6becf5ff528 (patch) | |
tree | 0201a4e12356c0cc66d5e811ceff5c9942744d96 /Source/SPTableContent.m | |
parent | 1941d8487b4b93519d4451941e8cd9ed3de19404 (diff) | |
download | sequelpro-2be037fb2f1b60231ad8f8f58720d6becf5ff528.tar.gz sequelpro-2be037fb2f1b60231ad8f8f58720d6becf5ff528.tar.bz2 sequelpro-2be037fb2f1b60231ad8f8f58720d6becf5ff528.zip |
Inverse shift+click sorting for custom queries
Add inverse sorting for custom queries
Keep the inverse order while shift+clicking after the first click
Diffstat (limited to 'Source/SPTableContent.m')
-rw-r--r-- | Source/SPTableContent.m | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/Source/SPTableContent.m b/Source/SPTableContent.m index 11c3d1df..8e537178 100644 --- a/Source/SPTableContent.m +++ b/Source/SPTableContent.m @@ -1648,23 +1648,27 @@ static NSString *SPTableFilterSetDefaultOperator = @"SPTableFilterSetDefaultOper return; } + 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 (sortCol && [[tableColumn identifier] integerValue] == [sortCol integerValue]) { - if (isDesc) { + BOOL invert = NO; + if (modifierFlags & NSShiftKeyMask) { + invert = YES; + } + + // this is the same as saying (isDesc && !invert) || (!isDesc && invert) + if (isDesc != invert) { [sortCol release]; sortCol = nil; } else { - if (sortCol) [sortCol release]; - - sortCol = [[NSNumber alloc] initWithInteger:[[tableColumn identifier] integerValue]]; isDesc = !isDesc; } } else { // When the column is not sorted, allow to sort in reverse order using Shift+click - NSUInteger modifierFlags = [[NSApp currentEvent] modifierFlags]; if (modifierFlags & NSShiftKeyMask) { isDesc = YES; } else { |