From 64c67e19d2f4deebecf3721c3ebc0f5af0f979ee Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 6 Feb 2010 11:40:10 +0100 Subject: [PATCH] Reduced code duplication among editions in ResultsWindow. --- cocoa/base/ResultWindow.h | 15 +++++ cocoa/base/ResultWindow.m | 120 ++++++++++++++++++++++++++++++++++++++ cocoa/me/ResultWindow.h | 18 ------ cocoa/me/ResultWindow.m | 120 -------------------------------------- cocoa/pe/ResultWindow.h | 22 +------ cocoa/pe/ResultWindow.m | 120 -------------------------------------- cocoa/se/ResultWindow.h | 20 +------ cocoa/se/ResultWindow.m | 120 -------------------------------------- 8 files changed, 137 insertions(+), 418 deletions(-) diff --git a/cocoa/base/ResultWindow.h b/cocoa/base/ResultWindow.h index a7f9b190..92575ced 100644 --- a/cocoa/base/ResultWindow.h +++ b/cocoa/base/ResultWindow.h @@ -24,10 +24,12 @@ http://www.hardcoded.net/licenses/hs_license IBOutlet NSSegmentedControl *pmSwitch; IBOutlet NSTextField *stats; IBOutlet NSMenu *columnsMenu; + IBOutlet NSSearchField *filterField; BOOL _powerMode; BOOL _displayDelta; NSMutableArray *_resultColumns; + NSMutableIndexSet *_deltaColumns; NSWindowController *preferencesPanel; } /* Helpers */ @@ -44,17 +46,30 @@ http://www.hardcoded.net/licenses/hs_license - (void)restoreColumnsPosition:(NSArray *)aColumnsOrder widths:(NSDictionary *)aColumnsWidth; /* Actions */ +- (IBAction)clearIgnoreList:(id)sender; - (IBAction)changeDelta:(id)sender; - (IBAction)changePowerMarker:(id)sender; - (IBAction)copyMarked:(id)sender; - (IBAction)deleteMarked:(id)sender; - (IBAction)expandAll:(id)sender; - (IBAction)exportToXHTML:(id)sender; +- (IBAction)filter:(id)sender; +- (IBAction)ignoreSelected:(id)sender; +- (IBAction)markAll:(id)sender; +- (IBAction)markInvert:(id)sender; +- (IBAction)markNone:(id)sender; +- (IBAction)markSelected:(id)sender; +- (IBAction)markToggle:(id)sender; - (IBAction)moveMarked:(id)sender; +- (IBAction)removeMarked:(id)sender; +- (IBAction)removeSelected:(id)sender; +- (IBAction)renameSelected:(id)sender; - (IBAction)resetColumnsToDefault:(id)sender; +- (IBAction)revealSelected:(id)sender; - (IBAction)showPreferencesPanel:(id)sender; - (IBAction)switchSelected:(id)sender; - (IBAction)toggleColumn:(id)sender; +- (IBAction)toggleDelta:(id)sender; - (IBAction)toggleDetailsPanel:(id)sender; - (IBAction)togglePowerMarker:(id)sender; diff --git a/cocoa/base/ResultWindow.m b/cocoa/base/ResultWindow.m index a6544960..b82f5ae1 100644 --- a/cocoa/base/ResultWindow.m +++ b/cocoa/base/ResultWindow.m @@ -216,6 +216,16 @@ http://www.hardcoded.net/licenses/hs_license } /* Actions */ +- (IBAction)clearIgnoreList:(id)sender +{ + NSInteger i = n2i([py getIgnoreListCount]); + if (!i) + return; + if ([Dialogs askYesNo:[NSString stringWithFormat:@"Do you really want to remove all %d items from the ignore list?",i]] == NSAlertSecondButtonReturn) // NO + return; + [py clearIgnoreList]; +} + - (IBAction)changeDelta:(id)sender { _displayDelta = [deltaSwitch selectedSegment] == 1; @@ -279,6 +289,60 @@ http://www.hardcoded.net/licenses/hs_license [[NSWorkspace sharedWorkspace] openFile:exported]; } +- (IBAction)filter:(id)sender +{ + NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; + [py setEscapeFilterRegexp:b2n(!n2b([ud objectForKey:@"useRegexpFilter"]))]; + [py applyFilter:[filterField stringValue]]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; +} + +- (IBAction)ignoreSelected:(id)sender +{ + NSArray *nodeList = [self getSelected:YES]; + if (![nodeList count]) + return; + if ([Dialogs askYesNo:[NSString stringWithFormat:@"All selected %d matches are going to be ignored in all subsequent scans. Continue?",[nodeList count]]] == NSAlertSecondButtonReturn) // NO + return; + [self performPySelection:[self getSelectedPaths:YES]]; + [py addSelectedToIgnoreList]; + [py removeSelected]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; +} + +- (IBAction)markAll:(id)sender +{ + [py markAll]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; +} + +- (IBAction)markInvert:(id)sender +{ + [py markInvert]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; +} + +- (IBAction)markNone:(id)sender +{ + [py markNone]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; +} + +- (IBAction)markSelected:(id)sender +{ + [self performPySelection:[self getSelectedPaths:YES]]; + [py toggleSelectedMark]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; +} + +- (IBAction)markToggle:(id)sender +{ + OVNode *node = [matches itemAtRow:[matches clickedRow]]; + [self performPySelection:[NSArray arrayWithObject:p2a([node indexPath])]]; + [py toggleSelectedMark]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; +} + - (IBAction)moveMarked:(id)sender { NSInteger mark_count = [[py getMarkCount] intValue]; @@ -299,11 +363,58 @@ http://www.hardcoded.net/licenses/hs_license } } +- (IBAction)openSelected:(id)sender +{ + [self performPySelection:[self getSelectedPaths:NO]]; + [py openSelected]; +} + +- (IBAction)refresh:(id)sender +{ + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; +} + +- (IBAction)removeMarked:(id)sender +{ + int mark_count = [[py getMarkCount] intValue]; + if (!mark_count) + return; + if ([Dialogs askYesNo:[NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",mark_count]] == NSAlertSecondButtonReturn) // NO + return; + [py removeMarked]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; +} + +- (IBAction)removeSelected:(id)sender +{ + NSArray *nodeList = [self getSelected:YES]; + if (![nodeList count]) + return; + if ([Dialogs askYesNo:[NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",[nodeList count]]] == NSAlertSecondButtonReturn) // NO + return; + [self performPySelection:[self getSelectedPaths:YES]]; + [py removeSelected]; + [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; +} + +- (IBAction)renameSelected:(id)sender +{ + NSInteger col = [matches columnWithIdentifier:@"0"]; + NSInteger row = [matches selectedRow]; + [matches editColumn:col row:row withEvent:[NSApp currentEvent] select:YES]; +} + - (IBAction)resetColumnsToDefault:(id)sender { // Virtual } +- (IBAction)revealSelected:(id)sender +{ + [self performPySelection:[self getSelectedPaths:NO]]; + [py revealSelected]; +} + - (IBAction)showPreferencesPanel:(id)sender { [preferencesPanel showWindow:sender]; @@ -347,6 +458,15 @@ http://www.hardcoded.net/licenses/hs_license } } +- (IBAction)toggleDelta:(id)sender +{ + if ([deltaSwitch selectedSegment] == 1) + [deltaSwitch setSelectedSegment:0]; + else + [deltaSwitch setSelectedSegment:1]; + [self changeDelta:sender]; +} + - (IBAction)toggleDetailsPanel:(id)sender { [[(AppDelegateBase *)app detailsPanel] toggleVisibility]; diff --git a/cocoa/me/ResultWindow.h b/cocoa/me/ResultWindow.h index 25994610..dbe6ff36 100644 --- a/cocoa/me/ResultWindow.h +++ b/cocoa/me/ResultWindow.h @@ -13,26 +13,8 @@ http://www.hardcoded.net/licenses/hs_license @interface ResultWindow : ResultWindowBase { - IBOutlet NSSearchField *filterField; - NSString *_lastAction; - NSMutableIndexSet *_deltaColumns; } -- (IBAction)clearIgnoreList:(id)sender; -- (IBAction)filter:(id)sender; -- (IBAction)ignoreSelected:(id)sender; -- (IBAction)markAll:(id)sender; -- (IBAction)markInvert:(id)sender; -- (IBAction)markNone:(id)sender; -- (IBAction)markSelected:(id)sender; -- (IBAction)markToggle:(id)sender; -- (IBAction)openSelected:(id)sender; -- (IBAction)refresh:(id)sender; - (IBAction)removeDeadTracks:(id)sender; -- (IBAction)removeMarked:(id)sender; -- (IBAction)removeSelected:(id)sender; -- (IBAction)renameSelected:(id)sender; -- (IBAction)revealSelected:(id)sender; - (IBAction)startDuplicateScan:(id)sender; -- (IBAction)toggleDelta:(id)sender; @end diff --git a/cocoa/me/ResultWindow.m b/cocoa/me/ResultWindow.m index c43811ef..37aa2aff 100644 --- a/cocoa/me/ResultWindow.m +++ b/cocoa/me/ResultWindow.m @@ -34,116 +34,11 @@ http://www.hardcoded.net/licenses/hs_license } /* Actions */ -- (IBAction)clearIgnoreList:(id)sender -{ - NSInteger i = n2i([py getIgnoreListCount]); - if (!i) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"Do you really want to remove all %d items from the ignore list?",i]] == NSAlertSecondButtonReturn) // NO - return; - [py clearIgnoreList]; -} - -- (IBAction)filter:(id)sender -{ - NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - [py setEscapeFilterRegexp:b2n(!n2b([ud objectForKey:@"useRegexpFilter"]))]; - [py applyFilter:[filterField stringValue]]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)ignoreSelected:(id)sender -{ - NSArray *nodeList = [self getSelected:YES]; - if (![nodeList count]) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"All selected %d matches are going to be ignored in all subsequent scans. Continue?",[nodeList count]]] == NSAlertSecondButtonReturn) // NO - return; - [self performPySelection:[self getSelectedPaths:YES]]; - [py addSelectedToIgnoreList]; - [py removeSelected]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)markAll:(id)sender -{ - [py markAll]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markInvert:(id)sender -{ - [py markInvert]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markNone:(id)sender -{ - [py markNone]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:YES]]; - [py toggleSelectedMark]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markToggle:(id)sender -{ - OVNode *node = [matches itemAtRow:[matches clickedRow]]; - [self performPySelection:[NSArray arrayWithObject:p2a([node indexPath])]]; - [py toggleSelectedMark]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)openSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:NO]]; - [py openSelected]; -} - -- (IBAction)refresh:(id)sender -{ - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - - (IBAction)removeDeadTracks:(id)sender { [(PyDupeGuru *)py scanDeadTracks]; } -- (IBAction)removeMarked:(id)sender -{ - int mark_count = [[py getMarkCount] intValue]; - if (!mark_count) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",mark_count]] == NSAlertSecondButtonReturn) // NO - return; - [py removeMarked]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)removeSelected:(id)sender -{ - NSArray *nodeList = [self getSelected:YES]; - if (![nodeList count]) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",[nodeList count]]] == NSAlertSecondButtonReturn) // NO - return; - [self performPySelection:[self getSelectedPaths:YES]]; - [py removeSelected]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)renameSelected:(id)sender -{ - NSInteger col = [matches columnWithIdentifier:@"0"]; - NSInteger row = [matches selectedRow]; - [matches editColumn:col row:row withEvent:[NSApp currentEvent] select:YES]; -} - - (IBAction)resetColumnsToDefault:(id)sender { NSMutableArray *columnsOrder = [NSMutableArray array]; @@ -161,12 +56,6 @@ http://www.hardcoded.net/licenses/hs_license [self restoreColumnsPosition:columnsOrder widths:columnsWidth]; } -- (IBAction)revealSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:NO]]; - [py revealSelected]; -} - - (IBAction)startDuplicateScan:(id)sender { if ([matches numberOfRows] > 0) @@ -199,15 +88,6 @@ http://www.hardcoded.net/licenses/hs_license } } -- (IBAction)toggleDelta:(id)sender -{ - if ([deltaSwitch selectedSegment] == 1) - [deltaSwitch setSelectedSegment:0]; - else - [deltaSwitch setSelectedSegment:1]; - [self changeDelta:sender]; -} - /* Public */ - (void)initResultColumns { diff --git a/cocoa/pe/ResultWindow.h b/cocoa/pe/ResultWindow.h index 5438f101..39bd38ad 100644 --- a/cocoa/pe/ResultWindow.h +++ b/cocoa/pe/ResultWindow.h @@ -10,28 +10,8 @@ http://www.hardcoded.net/licenses/hs_license #import "Outline.h" #import "../base/ResultWindow.h" -@interface ResultWindow : ResultWindowBase -{ - IBOutlet NSSearchField *filterField; - - NSMutableIndexSet *_deltaColumns; -} -- (IBAction)clearIgnoreList:(id)sender; +@interface ResultWindow : ResultWindowBase {} - (IBAction)clearPictureCache:(id)sender; -- (IBAction)filter:(id)sender; -- (IBAction)ignoreSelected:(id)sender; -- (IBAction)markAll:(id)sender; -- (IBAction)markInvert:(id)sender; -- (IBAction)markNone:(id)sender; -- (IBAction)markSelected:(id)sender; -- (IBAction)markToggle:(id)sender; -- (IBAction)openSelected:(id)sender; -- (IBAction)refresh:(id)sender; -- (IBAction)removeMarked:(id)sender; -- (IBAction)removeSelected:(id)sender; -- (IBAction)renameSelected:(id)sender; -- (IBAction)revealSelected:(id)sender; - (IBAction)startDuplicateScan:(id)sender; -- (IBAction)toggleDelta:(id)sender; - (IBAction)toggleDirectories:(id)sender; @end diff --git a/cocoa/pe/ResultWindow.m b/cocoa/pe/ResultWindow.m index e03943cf..17195d53 100644 --- a/cocoa/pe/ResultWindow.m +++ b/cocoa/pe/ResultWindow.m @@ -35,16 +35,6 @@ http://www.hardcoded.net/licenses/hs_license } /* Actions */ -- (IBAction)clearIgnoreList:(id)sender -{ - int i = n2i([py getIgnoreListCount]); - if (!i) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"Do you really want to remove all %d items from the ignore list?",i]] == NSAlertSecondButtonReturn) // NO - return; - [py clearIgnoreList]; -} - - (IBAction)clearPictureCache:(id)sender { if ([Dialogs askYesNo:@"Do you really want to remove all your cached picture analysis?"] == NSAlertSecondButtonReturn) // NO @@ -52,101 +42,6 @@ http://www.hardcoded.net/licenses/hs_license [(PyDupeGuru *)py clearPictureCache]; } -- (IBAction)filter:(id)sender -{ - NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - [py setEscapeFilterRegexp:b2n(!n2b([ud objectForKey:@"useRegexpFilter"]))]; - [py applyFilter:[filterField stringValue]]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)ignoreSelected:(id)sender -{ - NSArray *nodeList = [self getSelected:YES]; - if (![nodeList count]) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"All selected %d matches are going to be ignored in all subsequent scans. Continue?",[nodeList count]]] == NSAlertSecondButtonReturn) // NO - return; - [self performPySelection:[self getSelectedPaths:YES]]; - [py addSelectedToIgnoreList]; - [py removeSelected]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)markAll:(id)sender -{ - [py markAll]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markInvert:(id)sender -{ - [py markInvert]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markNone:(id)sender -{ - [py markNone]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:YES]]; - [py toggleSelectedMark]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markToggle:(id)sender -{ - OVNode *node = [matches itemAtRow:[matches clickedRow]]; - [self performPySelection:[NSArray arrayWithObject:p2a([node indexPath])]]; - [py toggleSelectedMark]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)openSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:NO]]; - [py openSelected]; -} - -- (IBAction)refresh:(id)sender -{ - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)removeMarked:(id)sender -{ - int mark_count = [[py getMarkCount] intValue]; - if (!mark_count) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",mark_count]] == NSAlertSecondButtonReturn) // NO - return; - [py removeMarked]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)removeSelected:(id)sender -{ - NSArray *nodeList = [self getSelected:YES]; - if (![nodeList count]) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",[nodeList count]]] == NSAlertSecondButtonReturn) // NO - return; - [self performPySelection:[self getSelectedPaths:YES]]; - [py removeSelected]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)renameSelected:(id)sender -{ - int col = [matches columnWithIdentifier:@"0"]; - int row = [matches selectedRow]; - [matches editColumn:col row:row withEvent:[NSApp currentEvent] select:YES]; -} - - (IBAction)resetColumnsToDefault:(id)sender { NSMutableArray *columnsOrder = [NSMutableArray array]; @@ -164,12 +59,6 @@ http://www.hardcoded.net/licenses/hs_license [self restoreColumnsPosition:columnsOrder widths:columnsWidth]; } -- (IBAction)revealSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:NO]]; - [py revealSelected]; -} - - (IBAction)startDuplicateScan:(id)sender { if ([matches numberOfRows] > 0) @@ -196,15 +85,6 @@ http://www.hardcoded.net/licenses/hs_license } } -- (IBAction)toggleDelta:(id)sender -{ - if ([deltaSwitch selectedSegment] == 1) - [deltaSwitch setSelectedSegment:0]; - else - [deltaSwitch setSelectedSegment:1]; - [self changeDelta:sender]; -} - - (IBAction)toggleDirectories:(id)sender { [(AppDelegate *)app toggleDirectories:sender]; diff --git a/cocoa/se/ResultWindow.h b/cocoa/se/ResultWindow.h index ec77ee4d..bd5130c4 100644 --- a/cocoa/se/ResultWindow.h +++ b/cocoa/se/ResultWindow.h @@ -12,27 +12,9 @@ http://www.hardcoded.net/licenses/hs_license #import "DirectoryPanel.h" @interface ResultWindow : ResultWindowBase -{ - IBOutlet NSSearchField *filterField; - +{ NSString *_lastAction; - NSMutableIndexSet *_deltaColumns; } -- (IBAction)clearIgnoreList:(id)sender; -- (IBAction)filter:(id)sender; -- (IBAction)ignoreSelected:(id)sender; -- (IBAction)markAll:(id)sender; -- (IBAction)markInvert:(id)sender; -- (IBAction)markNone:(id)sender; -- (IBAction)markSelected:(id)sender; -- (IBAction)markToggle:(id)sender; -- (IBAction)openSelected:(id)sender; -- (IBAction)refresh:(id)sender; -- (IBAction)removeMarked:(id)sender; -- (IBAction)removeSelected:(id)sender; -- (IBAction)renameSelected:(id)sender; - (IBAction)resetColumnsToDefault:(id)sender; -- (IBAction)revealSelected:(id)sender; - (IBAction)startDuplicateScan:(id)sender; -- (IBAction)toggleDelta:(id)sender; @end diff --git a/cocoa/se/ResultWindow.m b/cocoa/se/ResultWindow.m index 4cb28aef..08f8bdac 100644 --- a/cocoa/se/ResultWindow.m +++ b/cocoa/se/ResultWindow.m @@ -32,111 +32,6 @@ http://www.hardcoded.net/licenses/hs_license } /* Actions */ -- (IBAction)clearIgnoreList:(id)sender -{ - int i = n2i([py getIgnoreListCount]); - if (!i) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"Do you really want to remove all %d items from the ignore list?",i]] == NSAlertSecondButtonReturn) // NO - return; - [py clearIgnoreList]; -} - -- (IBAction)filter:(id)sender -{ - NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - [py setEscapeFilterRegexp:b2n(!n2b([ud objectForKey:@"useRegexpFilter"]))]; - [py applyFilter:[filterField stringValue]]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)ignoreSelected:(id)sender -{ - NSArray *nodeList = [self getSelected:YES]; - if (![nodeList count]) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"All selected %d matches are going to be ignored in all subsequent scans. Continue?",[nodeList count]]] == NSAlertSecondButtonReturn) // NO - return; - [self performPySelection:[self getSelectedPaths:YES]]; - [py addSelectedToIgnoreList]; - [py removeSelected]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)markAll:(id)sender -{ - [py markAll]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markInvert:(id)sender -{ - [py markInvert]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markNone:(id)sender -{ - [py markNone]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:YES]]; - [py toggleSelectedMark]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)markToggle:(id)sender -{ - OVNode *node = [matches itemAtRow:[matches clickedRow]]; - [self performPySelection:[NSArray arrayWithObject:p2a([node indexPath])]]; - [py toggleSelectedMark]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsMarkingChangedNotification object:self]; -} - -- (IBAction)openSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:NO]]; - [py openSelected]; -} - -- (IBAction)refresh:(id)sender -{ - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)removeMarked:(id)sender -{ - int mark_count = [[py getMarkCount] intValue]; - if (!mark_count) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",mark_count]] == NSAlertSecondButtonReturn) // NO - return; - [py removeMarked]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)removeSelected:(id)sender -{ - NSArray *nodeList = [self getSelected:YES]; - if (![nodeList count]) - return; - if ([Dialogs askYesNo:[NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",[nodeList count]]] == NSAlertSecondButtonReturn) // NO - return; - [self performPySelection:[self getSelectedPaths:YES]]; - [py removeSelected]; - [[NSNotificationCenter defaultCenter] postNotificationName:ResultsChangedNotification object:self]; -} - -- (IBAction)renameSelected:(id)sender -{ - int col = [matches columnWithIdentifier:@"0"]; - int row = [matches selectedRow]; - [matches editColumn:col row:row withEvent:[NSApp currentEvent] select:YES]; -} - - (IBAction)resetColumnsToDefault:(id)sender { NSMutableArray *columnsOrder = [NSMutableArray array]; @@ -152,12 +47,6 @@ http://www.hardcoded.net/licenses/hs_license [self restoreColumnsPosition:columnsOrder widths:columnsWidth]; } -- (IBAction)revealSelected:(id)sender -{ - [self performPySelection:[self getSelectedPaths:NO]]; - [py revealSelected]; -} - - (IBAction)startDuplicateScan:(id)sender { if ([matches numberOfRows] > 0) @@ -190,15 +79,6 @@ http://www.hardcoded.net/licenses/hs_license } -- (IBAction)toggleDelta:(id)sender -{ - if ([deltaSwitch selectedSegment] == 1) - [deltaSwitch setSelectedSegment:0]; - else - [deltaSwitch setSelectedSegment:1]; - [self changeDelta:sender]; -} - /* Public */ - (void)initResultColumns {