diff --git a/cocoa/base/AppDelegate.h b/cocoa/base/AppDelegate.h index 31f7957a..65825aa2 100644 --- a/cocoa/base/AppDelegate.h +++ b/cocoa/base/AppDelegate.h @@ -17,20 +17,31 @@ http://www.hardcoded.net/licenses/bsd_license @interface AppDelegateBase : NSObject { IBOutlet PyDupeGuruBase *py; - IBOutlet ResultWindowBase *result; IBOutlet NSMenu *recentResultsMenu; + IBOutlet NSMenu *columnsMenu; + ResultWindowBase *_resultWindow; DirectoryPanel *_directoryPanel; DetailsPanel *_detailsPanel; HSAboutBox *_aboutBox; HSRecentFiles *_recentResults; } + +/* Virtual */ - (PyDupeGuruBase *)py; +- (ResultWindowBase *)createResultWindow; +- (DirectoryPanel *)createDirectoryPanel; +- (DetailsPanel *)createDetailsPanel; +- (NSString *)homepageURL; + +/* Public */ +- (ResultWindowBase *)resultWindow; - (DirectoryPanel *)directoryPanel; - (DetailsPanel *)detailsPanel; - (HSRecentFiles *)recentResults; -- (NSString *)homepageURL; +- (NSMenu *)columnsMenu; +/* Actions */ - (IBAction)showAboutBox:(id)sender; - (IBAction)openWebsite:(id)sender; - (IBAction)openHelp:(id)sender; diff --git a/cocoa/base/AppDelegate.m b/cocoa/base/AppDelegate.m index a5e0184d..7d4da25d 100644 --- a/cocoa/base/AppDelegate.m +++ b/cocoa/base/AppDelegate.m @@ -17,22 +17,57 @@ http://www.hardcoded.net/licenses/bsd_license @implementation AppDelegateBase - (void)awakeFromNib { + _resultWindow = nil; + _directoryPanel = nil; + _detailsPanel = nil; + _aboutBox = nil; _recentResults = [[HSRecentFiles alloc] initWithName:@"recentResults" menu:recentResultsMenu]; [_recentResults setDelegate:self]; } +/* Virtual */ + - (PyDupeGuruBase *)py { return py; } + +- (ResultWindowBase *)createResultWindow +{ + return nil; // must be overriden by all editions +} + +- (DirectoryPanel *)createDirectoryPanel +{ + return [[DirectoryPanel alloc] initWithParentApp:self]; +} + +- (DetailsPanel *)createDetailsPanel +{ + return [[DetailsPanel alloc] initWithPy:py]; +} + +- (NSString *)homepageURL +{ + return @""; // must be overriden by all editions +} + +/* Public */ +- (ResultWindowBase *)resultWindow +{ + if (!_resultWindow) + _resultWindow = [self createResultWindow]; + return _resultWindow; +} + - (DirectoryPanel *)directoryPanel { if (!_directoryPanel) - _directoryPanel = [[DirectoryPanel alloc] initWithParentApp:self]; + _directoryPanel = [self createDirectoryPanel]; return _directoryPanel; } - (DetailsPanel *)detailsPanel { if (!_detailsPanel) - _detailsPanel = [[DetailsPanel alloc] initWithPy:py]; + _detailsPanel = [self createDetailsPanel]; return _detailsPanel; } @@ -41,11 +76,9 @@ http://www.hardcoded.net/licenses/bsd_license return _recentResults; } -- (NSString *)homepageURL -{ - return @""; // Virtual -} +- (NSMenu *)columnsMenu { return columnsMenu; } +/* Actions */ - (IBAction)showAboutBox:(id)sender { if (_aboutBox == nil) { @@ -81,17 +114,17 @@ http://www.hardcoded.net/licenses/bsd_license NSArray *columnsOrder = [ud arrayForKey:@"columnsOrder"]; NSDictionary *columnsWidth = [ud dictionaryForKey:@"columnsWidth"]; if ([columnsOrder count]) - [result restoreColumnsPosition:columnsOrder widths:columnsWidth]; + [[self resultWindow] restoreColumnsPosition:columnsOrder widths:columnsWidth]; else - [result resetColumnsToDefault:nil]; + [[self resultWindow] resetColumnsToDefault:nil]; [HSFairwareReminder showNagWithApp:[self py]]; [py loadSession]; } - (void)applicationWillBecomeActive:(NSNotification *)aNotification { - if (![[result window] isVisible]) - [result showWindow:NSApp]; + if (![[[self resultWindow] window] isVisible]) + [[self resultWindow] showWindow:NSApp]; } - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender @@ -108,8 +141,8 @@ http://www.hardcoded.net/licenses/bsd_license - (void)applicationWillTerminate:(NSNotification *)aNotification { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - [ud setObject: [result getColumnsOrder] forKey:@"columnsOrder"]; - [ud setObject: [result getColumnsWidth] forKey:@"columnsWidth"]; + [ud setObject: [[self resultWindow] getColumnsOrder] forKey:@"columnsOrder"]; + [ud setObject: [[self resultWindow] getColumnsWidth] forKey:@"columnsWidth"]; NSInteger sc = [ud integerForKey:@"sessionCountSinceLastIgnorePurge"]; if (sc >= 10) { sc = -1; diff --git a/cocoa/base/ResultWindow.h b/cocoa/base/ResultWindow.h index ca5ea554..1757b3da 100644 --- a/cocoa/base/ResultWindow.h +++ b/cocoa/base/ResultWindow.h @@ -13,23 +13,26 @@ http://www.hardcoded.net/licenses/bsd_license #import "HSTableView.h" #import "PyDupeGuru.h" +@class AppDelegateBase; + @interface ResultWindowBase : NSWindowController { @protected - IBOutlet PyDupeGuruBase *py; - IBOutlet id app; IBOutlet NSSegmentedControl *optionsSwitch; IBOutlet HSTableView *matches; - IBOutlet NSTextField *stats; - IBOutlet NSMenu *columnsMenu; - IBOutlet NSSearchField *filterField; + IBOutlet NSTextField *stats; + IBOutlet NSSearchField *filterField; + AppDelegateBase *app; + PyDupeGuruBase *py; + NSMenu *columnsMenu; NSMutableArray *_resultColumns; NSWindowController *preferencesPanel; ResultTable *table; StatsLabel *statsLabel; ProblemDialog *problemDialog; } +- (id)initWithParentApp:(AppDelegateBase *)app; /* Helpers */ - (void)fillColumnsMenu; - (NSTableColumn *)getColumnForIdentifier:(NSInteger)aIdentifier title:(NSString *)aTitle width:(NSInteger)aWidth refCol:(NSTableColumn *)aColumn; diff --git a/cocoa/base/ResultWindow.m b/cocoa/base/ResultWindow.m index 25138c1e..e736e9ea 100644 --- a/cocoa/base/ResultWindow.m +++ b/cocoa/base/ResultWindow.m @@ -14,9 +14,12 @@ http://www.hardcoded.net/licenses/bsd_license #import "Consts.h" @implementation ResultWindowBase -- (void)awakeFromNib +- (id)initWithParentApp:(AppDelegateBase *)aApp; { - [self window]; + self = [super initWithWindowNibName:@"ResultWindow"]; + app = aApp; + py = [app py]; + columnsMenu = [app columnsMenu]; /* Put a cute iTunes-like bottom bar */ [[self window] setContentBorderThickness:28 forEdge:NSMinYEdge]; preferencesPanel = [[NSWindowController alloc] initWithWindowNibName:@"Preferences"]; @@ -31,6 +34,7 @@ http://www.hardcoded.net/licenses/bsd_license [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobCompleted:) name:JobCompletedNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobStarted:) name:JobStarted object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobInProgress:) name:JobInProgress object:nil]; + return self; } - (void)dealloc @@ -147,7 +151,7 @@ http://www.hardcoded.net/licenses/bsd_license - (void)updateOptionSegments { - [optionsSwitch setSelected:[[(AppDelegateBase *)app detailsPanel] isVisible] forSegment:0]; + [optionsSwitch setSelected:[[app detailsPanel] isVisible] forSegment:0]; [optionsSwitch setSelected:[table powerMarkerMode] forSegment:1]; [optionsSwitch setSelected:[table deltaValuesMode] forSegment:2]; } @@ -254,7 +258,7 @@ http://www.hardcoded.net/licenses/bsd_license if ([op runModal] == NSOKButton) { NSString *filename = [[op filenames] objectAtIndex:0]; [py loadResultsFrom:filename]; - [[(AppDelegateBase *)app recentResults] addFile:filename]; + [[app recentResults] addFile:filename]; } } @@ -357,7 +361,7 @@ http://www.hardcoded.net/licenses/bsd_license [sp setTitle:@"Select a file to save your results to"]; if ([sp runModal] == NSOKButton) { [py saveResultsAs:[sp filename]]; - [[(AppDelegateBase *)app recentResults] addFile:[sp filename]]; + [[app recentResults] addFile:[sp filename]]; } } @@ -393,7 +397,7 @@ http://www.hardcoded.net/licenses/bsd_license - (IBAction)toggleDetailsPanel:(id)sender { - [[(AppDelegateBase *)app detailsPanel] toggleVisibility]; + [[app detailsPanel] toggleVisibility]; [self updateOptionSegments]; } diff --git a/cocoa/base/xib/MainMenu.xib b/cocoa/base/xib/MainMenu.xib index 6b8faae3..9edc618f 100644 --- a/cocoa/base/xib/MainMenu.xib +++ b/cocoa/base/xib/MainMenu.xib @@ -12,8 +12,7 @@ YES - - + YES @@ -34,820 +33,6 @@ NSApplication - - 15 - 2 - {{47, 310}, {557, 400}} - 1886912512 - dupeGuru - NSWindow - - - 184FCE08-7704-43E1-B7CA-394621354414 - - - YES - YES - YES - YES - 2 - 1 - - YES - - YES - 3E17CA47-6688-44FC-963C-CF22D780305F - 4BD1D94E-8A70-48E1-AF8A-CEDC80CD0A5E - 8021CD05-A38E-4F80-99DD-7771914CEE06 - 8E5ADD0F-24AD-452A-BE68-464FE9E5E240 - BA65FFF2-9E56-4E88-AB2E-8FBE2B3D030F - F37510C7-955F-4141-9D09-AC2881ADCCFA - NSToolbarFlexibleSpaceItem - NSToolbarSeparatorItem - NSToolbarSpaceItem - - - YES - - - 3E17CA47-6688-44FC-963C-CF22D780305F - - Start Scanning - Start Scanning - - - - NSImage - NSApplicationIcon - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - - 4BD1D94E-8A70-48E1-AF8A-CEDC80CD0A5E - - Options - Options - - - - 268 - {{0, 14}, {195, 23}} - YES - - 67239424 - 0 - - LucidaGrande - 11 - 16 - - - - YES - - 57 - Details - 0 - - - 82 - Dupes Only - 1 - 0 - - - 48 - Delta - 0 - - - 2 - 1 - 5 - - - - - - {195, 23} - {195, 25} - YES - YES - 0 - YES - 0 - - - - 8021CD05-A38E-4F80-99DD-7771914CEE06 - - Preferences - Preferences - - - - NSImage - preferences32 - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - - 8E5ADD0F-24AD-452A-BE68-464FE9E5E240 - - Filter - Filter - - - - 258 - {{0, 14}, {81, 22}} - YES - - 343014976 - 268436480 - - - LucidaGrande - 13 - 1044 - - Filter - - YES - 1 - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - 130560 - 0 - search - - _searchFieldSearch: - - 138690815 - 0 - - 400 - 75 - - - 130560 - 0 - clear - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - cancel - - - - - - _searchFieldCancel: - - 138690815 - 0 - - 400 - 75 - - 10 - YES - - - - - - {81, 22} - {300, 22} - YES - YES - 0 - YES - 0 - - - - BA65FFF2-9E56-4E88-AB2E-8FBE2B3D030F - - Directories - Directories - - - - NSImage - folder32 - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - - F37510C7-955F-4141-9D09-AC2881ADCCFA - - Action - Action - - - - 256 - {{1, 14}, {40, 25}} - YES - - -2076049856 - 134219776 - - - -2035269377 - 35 - - - - - 400 - 75 - - - YES - IA - - 1048576 - 2147483647 - 1 - - NSImage - NSActionTemplate - - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - Send Marked to Trash - - 2147483647 - - - _popUpItemAction: - - - - - Delete Marked and Replace with Hardlinks - - 2147483647 - - - _popUpItemAction: - - - - - Move Marked to... - - 2147483647 - - - _popUpItemAction: - - - - - Copy Marked to... - - 2147483647 - - - _popUpItemAction: - - - - - Remove Marked from Results - - 2147483647 - - - _popUpItemAction: - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Remove Selected from Results - - 2147483647 - - - _popUpItemAction: - - - - - Add Selected to Ignore List - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Make Selected Reference - - 2147483647 - - - _popUpItemAction: - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Open Selected with Default Application - - 2147483647 - - - _popUpItemAction: - - - - - Reveal Selected in Finder - - 2147483647 - - - _popUpItemAction: - - - - - Rename Selected - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - YES - 3 - YES - YES - 2 - - - - - - {30, 25} - {40, 26} - YES - YES - 0 - YES - 0 - - - NSToolbarFlexibleSpaceItem - - Flexible Space - - - - - - {1, 5} - {20000, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - - - - NSToolbarSeparatorItem - - Separator - - - - - - {12, 5} - {12, 1000} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - - - - NSToolbarSpaceItem - - Space - - - - - - {32, 5} - {32, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - - - - - - YES - - - - - - - - - - - - YES - - - - - - - - - YES - - - {1.79769e+308, 1.79769e+308} - {340, 340} - - - 256 - - YES - - - 290 - {{17, 6}, {523, 17}} - - YES - - 67239424 - 138412032 - Marked: 0 files, 0 B. Total: 0 files, 0 B. - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - - - - - 274 - - YES - - - 2304 - - YES - - - 256 - {557, 355} - - YES - - - 256 - {557, 17} - - - - - - -2147483392 - {{224, 0}, {16, 17}} - - - - YES - - marked - 26 - 26 - 26 - - 75628096 - 134219776 - - - LucidaGrande - 11 - 3100 - - - 6 - System - headerColor - - - - 6 - System - headerTextColor - - - - - 67239424 - 131072 - - - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - YES - - - - 0 - 195 - 16 - 3.4028234663852886e+38 - - 75628096 - 2048 - Name - - - - - - 337772096 - 2048 - Text Cell - - - - 6 - System - controlBackgroundColor - - - - - 2 - YES - - - 0 - YES - compare: - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 14 - -895483904 - - - 2 - 4 - 15 - 0 - YES - 0 - - - {{1, 17}, {557, 355}} - - - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - _doScroller: - 37 - 0.1947367936372757 - - - - -2147483392 - {{1, 119}, {223, 15}} - - 1 - - _doScroller: - 0.57142859697341919 - - - - 2304 - - YES - - - {{1, 0}, {557, 17}} - - - - - 4 - - - - {{0, 28}, {559, 373}} - - - 562 - - - - - - QSAAAEEgAABBgAAAQYAAAA - - - {557, 400} - - - {{0, 0}, {1440, 878}} - {340, 402} - {1.79769e+308, 1.79769e+308} - MainWindow - MainMenu @@ -858,8 +43,14 @@ 1048576 2147483647 - - + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + submenuAction: dupeGuru @@ -870,8 +61,8 @@ About dupeGuru 2147483647 - - + + @@ -879,8 +70,8 @@ 1048576 2147483647 - - + + @@ -890,8 +81,8 @@ 1048576 2147483647 - - + + @@ -899,8 +90,8 @@ , 1048576 2147483647 - - + + @@ -910,8 +101,8 @@ 1048576 2147483647 - - + + @@ -919,8 +110,8 @@ h 1048576 2147483647 - - + + @@ -928,8 +119,8 @@ h 1572864 2147483647 - - + + @@ -937,8 +128,8 @@ 1048576 2147483647 - - + + @@ -948,8 +139,8 @@ 1048576 2147483647 - - + + @@ -957,8 +148,8 @@ q 1048576 2147483647 - - + + _NSAppleMenu @@ -969,8 +160,8 @@ File 2147483647 - - + + submenuAction: File @@ -982,16 +173,16 @@ o 1048576 2147483647 - - + + Load Recent Results 2147483647 - - + + submenuAction: Load Recent Results @@ -1006,8 +197,8 @@ s 1048576 2147483647 - - + + @@ -1015,8 +206,8 @@ E 1048576 2147483647 - - + + @@ -1027,8 +218,8 @@ 1048576 2147483647 - - + + submenuAction: @@ -1042,8 +233,8 @@ a 1048576 2147483647 - - + + @@ -1051,8 +242,8 @@ A 1048576 2147483647 - - + + @@ -1060,8 +251,8 @@ a 1572864 2147483647 - - + + @@ -1069,8 +260,8 @@ a 1310720 2147483647 - - + + @@ -1080,8 +271,8 @@ 1048576 2147483647 - - + + @@ -1089,8 +280,8 @@ x 1048576 2147483647 - - + + @@ -1098,8 +289,8 @@ c 1048576 2147483647 - - + + @@ -1107,8 +298,8 @@ v 1048576 2147483647 - - + + @@ -1119,8 +310,8 @@ 1048576 2147483647 - - + + submenuAction: Actions @@ -1132,8 +323,8 @@ d 1048576 2147483647 - - + + @@ -1141,8 +332,8 @@ G 1048576 2147483647 - - + + @@ -1152,8 +343,8 @@ 1048576 2147483647 - - + + @@ -1161,8 +352,8 @@ t 1048576 2147483647 - - + + @@ -1170,8 +361,8 @@ T 1048576 2147483647 - - + + @@ -1179,8 +370,8 @@ m 1048576 2147483647 - - + + @@ -1188,8 +379,8 @@ m 1572864 2147483647 - - + + @@ -1197,8 +388,8 @@ r 1048576 2147483647 - - + + @@ -1208,8 +399,8 @@ 1048576 2147483647 - - + + @@ -1217,8 +408,8 @@ CA 1048576 2147483647 - - + + @@ -1226,8 +417,8 @@ g 1048576 2147483647 - - + + @@ -1235,8 +426,8 @@  1048576 2147483647 - - + + @@ -1246,8 +437,8 @@ 1048576 2147483647 - - + + @@ -1255,8 +446,8 @@ DQ 1048576 2147483647 - - + + @@ -1264,8 +455,8 @@ DQ 1572864 2147483647 - - + + @@ -1273,16 +464,16 @@ i 1048576 2147483647 - - + + Rename Selected Aw 2147483647 - - + + @@ -1293,8 +484,8 @@ 1048576 2147483647 - - + + submenuAction: Columns @@ -1309,8 +500,8 @@ 1048576 2147483647 - - + + submenuAction: Mode @@ -1322,8 +513,8 @@ 1 1048576 2147483647 - - + + @@ -1331,8 +522,8 @@ 2 1048576 2147483647 - - + + @@ -1343,8 +534,8 @@ 1048576 2147483647 - - + + submenuAction: Window @@ -1356,8 +547,8 @@ 3 1048576 2147483647 - - + + @@ -1365,8 +556,8 @@ 4 1048576 2147483647 - - + + @@ -1376,16 +567,16 @@ 1048576 2147483647 - - + + Minimize 2147483647 - - + + @@ -1393,8 +584,8 @@ 1048576 2147483647 - - + + @@ -1402,8 +593,8 @@ w 1048576 2147483647 - - + + @@ -1413,8 +604,8 @@ 1048576 2147483647 - - + + @@ -1422,8 +613,8 @@ 1048576 2147483647 - - + + _NSWindowsMenu @@ -1435,8 +626,8 @@ 1048576 2147483647 - - + + submenuAction: Help @@ -1448,8 +639,8 @@ ? 1048576 2147483647 - - + + @@ -1457,8 +648,8 @@ 1048576 2147483647 - - + + @@ -1469,84 +660,9 @@ AppDelegate - - ResultWindow - PyDupeGuru - - Menu - - YES - - - Remove Selected from Results - - 1048576 - 2147483647 - - - - - - Add Selected to Ignore List - - 1048576 - 2147483647 - - - - - - Make Selected Reference - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Open Selected with Default Application - - 1048576 - 2147483647 - - - - - - Reveal Selected in Finder - - 1048576 - 2147483647 - - - - - - Rename Selected - - 1048576 - 2147483647 - - - - - - SUUpdater @@ -1626,94 +742,6 @@ 208 - - - window - - - - 210 - - - - result - - - - 211 - - - - delegate - - - - 212 - - - - stats - - - - 445 - - - - toggleDetailsPanel: - - - - 596 - - - - deleteMarked: - - - - 606 - - - - moveMarked: - - - - 607 - - - - copyMarked: - - - - 608 - - - - removeMarked: - - - - 609 - - - - switchSelected: - - - - 610 - - - - removeSelected: - - - - 611 - py @@ -1722,126 +750,6 @@ 614 - - - py - - - - 616 - - - - openSelected: - - - - 660 - - - - revealSelected: - - - - 661 - - - - openSelected: - - - - 709 - - - - revealSelected: - - - - 711 - - - - switchSelected: - - - - 716 - - - - deleteMarked: - - - - 741 - - - - moveMarked: - - - - 742 - - - - copyMarked: - - - - 743 - - - - removeMarked: - - - - 744 - - - - removeSelected: - - - - 745 - - - - switchSelected: - - - - 746 - - - - openSelected: - - - - 747 - - - - revealSelected: - - - - 748 - - - - app - - - - 757 - toggleDirectories: @@ -1850,30 +758,6 @@ 758 - - - removeSelected: - - - - 873 - - - - ignoreSelected: - - - - 921 - - - - ignoreSelected: - - - - 923 - performClose: @@ -1882,70 +766,6 @@ 925 - - - startDuplicateScan: - - - - 929 - - - - clearIgnoreList: - - - - 930 - - - - renameSelected: - - - - 934 - - - - renameSelected: - - - - 936 - - - - ignoreSelected: - - - - 940 - - - - renameSelected: - - - - 941 - - - - columnsMenu - - - - 946 - - - - exportToXHTML: - - - - 948 - checkForUpdates: @@ -1954,22 +774,6 @@ 951 - - - togglePowerMarker: - - - - 963 - - - - toggleDelta: - - - - 964 - cut: @@ -1994,38 +798,6 @@ 1005 - - - markAll: - - - - 1019 - - - - markNone: - - - - 1020 - - - - markInvert: - - - - 1021 - - - - markSelected: - - - - 1022 - openWebsite: @@ -2034,54 +806,6 @@ 1024 - - - filterField - - - - 1030 - - - - filter: - - - - 1031 - - - - toggleDirectories: - - - - 1166 - - - - showPreferencesPanel: - - - - 1168 - - - - startDuplicateScan: - - - - 1169 - - - - showPreferencesPanel: - - - - 1174 - delegate @@ -2090,62 +814,6 @@ 1175 - - - invokeCustomCommand: - - - - 1178 - - - - saveResults: - - - - 1207 - - - - loadResults: - - - - 1208 - - - - matches - - - - 1225 - - - - menu - - - - 1226 - - - - hardlinkMarked: - - - - 1229 - - - - hardlinkMarked: - - - - 1231 - showAboutBox: @@ -2162,22 +830,6 @@ 1233 - - - optionsSwitch - - - - 1237 - - - - changeOptions: - - - - 1238 - recentResultsMenu @@ -2186,13 +838,223 @@ 1242 + + + clearIgnoreList: + + + + 1243 + + + + copyMarked: + + + + 1244 + + + + deleteMarked: + + + + 1245 + + + + exportToXHTML: + + + + 1246 + + + + hardlinkMarked: + + + + 1247 + + + + ignoreSelected: + + + + 1248 + + + + invokeCustomCommand: + + + + 1249 + + + + loadResults: + + + + 1250 + + + + markAll: + + + + 1251 + + + + markNone: + + + + 1252 + + + + markInvert: + + + + 1253 + + + + markSelected: + + + + 1254 + + + + moveMarked: + + + + 1255 + + + + openSelected: + + + + 1256 + + + + removeMarked: + + + + 1257 + + + + removeSelected: + + + + 1258 + + + + startDuplicateScan: + + + + 1259 + + + + switchSelected: + + + + 1260 + + + + revealSelected: + + + + 1261 + + + + renameSelected: + + + + 1262 + + + + saveResults: + + + + 1263 + + + + toggleDetailsPanel: + + + + 1264 + + + + togglePowerMarker: + + + + 1265 + + + + toggleDelta: + + + + 1266 + + + + showPreferencesPanel: + + + + 1267 + + + + columnsMenu + + + + 1269 + YES 0 - + + YES + @@ -2214,36 +1076,6 @@ Application - - 21 - - - YES - - - - - Window - - - 2 - - - YES - - - - - - - 291 - - - YES - - - - 29 @@ -2653,264 +1485,18 @@ AppDelegate - - 209 - - - ResultWindow - 613 PyDupeGuru - - 657 - - - YES - - - - - - - - - - matches_context - - - 658 - - - - - 659 - - - - - 715 - - - - - 872 - - - - - 937 - - - - - 938 - - - - - 939 - - - 949 SUUpdater - - 1116 - - - - - 1147 - - - YES - - - - - - - - - - - - - - 1150 - - - - - 1152 - - - - - 1153 - - - - - 1156 - - - - - 1158 - - - - - 1160 - - - - - 1170 - - - YES - - - - - - 720 - - - YES - - - - - - 1136 - - - YES - - - - - - 721 - - - YES - - - - - - - - - - - - - - - - - - - 935 - - - - - 740 - - - - - 739 - - - - - 737 - - - - - 738 - - - - - 920 - - - - - 736 - - - - - 735 - - - - - 734 - - - - - 733 - - - - - 732 - - - - - 731 - - - - - 723 - - - - - 1173 - - - YES - - - - - - 1028 - - - YES - - - - - - 1139 - - - 605 @@ -2957,104 +1543,11 @@ - - 1209 - - - YES - - - - - - - - - 1210 - - - - - 1211 - - - - - 1212 - - - YES - - - - - - - 1213 - - - - - 1218 - - - YES - - - - - - 1222 - - - YES - - - - - - 1223 - - - - - 1224 - - - 1227 - - 1230 - - - - - 1236 - - - YES - - - - - - 1234 - - - YES - - - - - - 1235 - - - 1239 @@ -3092,8 +1585,6 @@ 1018.ImportedFromIB2 1023.IBPluginDependency 1023.ImportedFromIB2 - 1028.IBPluginDependency - 1028.ImportedFromIB2 103.IBPluginDependency 103.ImportedFromIB2 106.IBEditorWindowLastContentRect @@ -3101,39 +1592,14 @@ 106.ImportedFromIB2 111.IBPluginDependency 111.ImportedFromIB2 - 1116.IBPluginDependency - 1136.IBPluginDependency - 1139.IBPluginDependency - 1147.IBEditorWindowLastContentRect - 1147.IBPluginDependency - 1156.IBPluginDependency - 1158.IBPluginDependency - 1160.IBPluginDependency - 1170.IBPluginDependency - 1173.IBPluginDependency 1177.IBPluginDependency 1203.IBPluginDependency 1204.IBEditorWindowLastContentRect 1204.IBPluginDependency 1205.IBPluginDependency 1206.IBPluginDependency - 1209.IBPluginDependency - 1210.IBPluginDependency - 1211.IBPluginDependency - 1212.CustomClassName - 1212.IBPluginDependency - 1213.IBPluginDependency - 1218.IBPluginDependency - 1222.IBPluginDependency - 1223.IBPluginDependency - 1224.IBPluginDependency 1227.IBPluginDependency 1227.ImportedFromIB2 - 1230.IBPluginDependency - 1230.ImportedFromIB2 - 1234.IBPluginDependency - 1235.IBPluginDependency - 1235.IBSegmentedControlInspectorSelectedSegmentMetadataKey 1239.IBPluginDependency 1240.IBEditorWindowLastContentRect 1240.IBPluginDependency @@ -3153,17 +1619,7 @@ 19.ImportedFromIB2 197.IBPluginDependency 197.ImportedFromIB2 - 2.IBPluginDependency - 2.ImportedFromIB2 206.ImportedFromIB2 - 209.ImportedFromIB2 - 21.IBEditorWindowLastContentRect - 21.IBPluginDependency - 21.IBWindowTemplateEditedContentRect - 21.ImportedFromIB2 - 21.NSWindowTemplate.visibleAtLaunch - 21.windowTemplate.hasMinSize - 21.windowTemplate.minSize 23.IBPluginDependency 23.ImportedFromIB2 24.IBEditorWindowLastContentRect @@ -3172,8 +1628,6 @@ 29.IBEditorWindowLastContentRect 29.IBPluginDependency 29.ImportedFromIB2 - 291.IBPluginDependency - 291.ImportedFromIB2 398.IBPluginDependency 398.ImportedFromIB2 399.IBPluginDependency @@ -3218,54 +1672,14 @@ 619.IBEditorWindowLastContentRect 619.IBPluginDependency 619.ImportedFromIB2 - 657.IBEditorWindowLastContentRect - 657.IBPluginDependency - 657.ImportedFromIB2 - 658.IBPluginDependency - 658.ImportedFromIB2 - 659.IBPluginDependency - 659.ImportedFromIB2 707.IBPluginDependency 707.ImportedFromIB2 708.IBPluginDependency 708.ImportedFromIB2 710.IBPluginDependency 710.ImportedFromIB2 - 715.IBPluginDependency - 715.ImportedFromIB2 - 720.IBPluginDependency - 720.ImportedFromIB2 - 721.IBEditorWindowLastContentRect - 721.IBPluginDependency - 721.ImportedFromIB2 - 723.IBPluginDependency - 723.ImportedFromIB2 - 731.IBPluginDependency - 731.ImportedFromIB2 - 732.IBPluginDependency - 732.ImportedFromIB2 - 733.IBPluginDependency - 733.ImportedFromIB2 - 734.IBPluginDependency - 734.ImportedFromIB2 - 735.IBPluginDependency - 735.ImportedFromIB2 - 736.IBPluginDependency - 736.ImportedFromIB2 - 737.IBPluginDependency - 737.ImportedFromIB2 - 738.IBPluginDependency - 738.ImportedFromIB2 - 739.IBPluginDependency - 739.ImportedFromIB2 - 740.IBPluginDependency - 740.ImportedFromIB2 - 872.IBPluginDependency - 872.ImportedFromIB2 92.IBPluginDependency 92.ImportedFromIB2 - 920.IBPluginDependency - 920.ImportedFromIB2 922.IBPluginDependency 922.ImportedFromIB2 924.IBPluginDependency @@ -3278,14 +1692,6 @@ 928.ImportedFromIB2 933.IBPluginDependency 933.ImportedFromIB2 - 935.IBPluginDependency - 935.ImportedFromIB2 - 937.IBPluginDependency - 937.ImportedFromIB2 - 938.IBPluginDependency - 938.ImportedFromIB2 - 939.IBPluginDependency - 939.ImportedFromIB2 947.IBPluginDependency 947.ImportedFromIB2 949.ImportedFromIB2 @@ -3330,8 +1736,6 @@ com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{602, 725}, {196, 43}} com.apple.InterfaceBuilder.CocoaPlugin @@ -3339,38 +1743,13 @@ com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{294, 705}, {617, 0}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin {{242, 685}, {258, 83}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - HSTableView - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin {{500, 742}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3389,17 +1768,7 @@ com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - {{324, 305}, {557, 400}} - com.apple.InterfaceBuilder.CocoaPlugin - {{324, 305}, {557, 400}} - - - - {340, 340} com.apple.InterfaceBuilder.CocoaPlugin {{531, 625}, {193, 143}} @@ -3420,8 +1789,6 @@ com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{152, 595}, {221, 173}} com.apple.InterfaceBuilder.CocoaPlugin @@ -3454,54 +1821,6 @@ {{397, 762}, {64, 6}} com.apple.InterfaceBuilder.CocoaPlugin - {{182, 609}, {331, 133}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - {{310, 310}, {353, 263}} - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin @@ -3565,7 +1884,7 @@ - 1242 + 1269 @@ -3631,27 +1950,31 @@ YES YES + columnsMenu py recentResultsMenu - result YES + NSMenu PyDupeGuruBase NSMenu - ResultWindowBase YES YES + columnsMenu py recentResultsMenu - result YES + + columnsMenu + NSMenu + py PyDupeGuruBase @@ -3660,10 +1983,6 @@ recentResultsMenu NSMenu - - result - ResultWindowBase - @@ -3687,6 +2006,14 @@ ../views/HSTableView.h + + HSWindowController + NSWindowController + + IBProjectSource + ../controllers/HSWindowController.h + + NSObject @@ -3717,6 +2044,36 @@ NSTableView + + ProblemDialog + HSWindowController + + revealSelected: + id + + + revealSelected: + + revealSelected: + id + + + + problemTableView + NSTableView + + + problemTableView + + problemTableView + NSTableView + + + + IBProjectSource + ../base/ProblemDialog.h + + PyApp PyFairware @@ -4040,22 +2397,16 @@ YES YES - app - columnsMenu filterField matches optionsSwitch - py stats YES - id - NSMenu NSSearchField HSTableView NSSegmentedControl - PyDupeGuruBase NSTextField @@ -4063,24 +2414,13 @@ YES YES - app - columnsMenu filterField matches optionsSwitch - py stats YES - - app - id - - - columnsMenu - NSMenu - filterField NSSearchField @@ -4093,10 +2433,6 @@ optionsSwitch NSSegmentedControl - - py - PyDupeGuruBase - stats NSTextField @@ -4119,14 +2455,6 @@ YES - - NSActionCell - NSCell - - IBFrameworkSource - AppKit.framework/Headers/NSActionCell.h - - NSApplication NSResponder @@ -4170,30 +2498,6 @@ AppKit.framework/Headers/NSUserInterfaceItemSearching.h - - NSButton - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSButton.h - - - - NSButtonCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSButtonCell.h - - - - NSCell - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSCell.h - - NSControl NSView @@ -4226,14 +2530,6 @@ AppKit.framework/Headers/NSMenuItem.h - - NSMenuItemCell - NSButtonCell - - IBFrameworkSource - AppKit.framework/Headers/NSMenuItemCell.h - - NSMovieView NSView @@ -4341,7 +2637,7 @@ NSObject - + IBFrameworkSource AppKit.framework/Headers/NSToolbarItem.h @@ -4500,22 +2796,6 @@ Sparkle.framework/Headers/SUUpdater.h - - NSPopUpButton - NSButton - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButton.h - - - - NSPopUpButtonCell - NSMenuItemCell - - IBFrameworkSource - AppKit.framework/Headers/NSPopUpButtonCell.h - - NSResponder @@ -4531,22 +2811,6 @@ AppKit.framework/Headers/NSResponder.h - - NSScrollView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSScrollView.h - - - - NSScroller - NSControl - - IBFrameworkSource - AppKit.framework/Headers/NSScroller.h - - NSSearchField NSTextField @@ -4555,22 +2819,6 @@ AppKit.framework/Headers/NSSearchField.h - - NSSearchFieldCell - NSTextFieldCell - - IBFrameworkSource - AppKit.framework/Headers/NSSearchFieldCell.h - - - - NSSegmentedCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSSegmentedCell.h - - NSSegmentedControl NSControl @@ -4579,22 +2827,6 @@ AppKit.framework/Headers/NSSegmentedControl.h - - NSTableColumn - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSTableColumn.h - - - - NSTableHeaderView - NSView - - IBFrameworkSource - AppKit.framework/Headers/NSTableHeaderView.h - - NSTableView NSControl @@ -4616,27 +2848,6 @@ AppKit.framework/Headers/NSTextField.h - - NSTextFieldCell - NSActionCell - - IBFrameworkSource - AppKit.framework/Headers/NSTextFieldCell.h - - - - NSToolbar - NSObject - - IBFrameworkSource - AppKit.framework/Headers/NSToolbar.h - - - - NSToolbarItem - NSObject - - NSView @@ -4751,23 +2962,13 @@ YES YES - NSActionTemplate - NSApplicationIcon NSMenuCheckmark NSMenuMixedState - NSSwitch - folder32 - preferences32 YES - {15, 15} - {128, 128} {9, 8} {7, 2} - {15, 15} - {32, 32} - {32, 32} diff --git a/cocoa/base/xib/ResultWindow.xib b/cocoa/base/xib/ResultWindow.xib new file mode 100644 index 00000000..71c6fee2 --- /dev/null +++ b/cocoa/base/xib/ResultWindow.xib @@ -0,0 +1,2864 @@ + + + + 1050 + 10J567 + 823 + 1038.35 + 462.00 + + com.apple.InterfaceBuilder.CocoaPlugin + 823 + + + YES + + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + YES + + + YES + + + + YES + + ResultWindow + + + FirstResponder + + + NSApplication + + + Menu + + YES + + + Remove Selected from Results + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + + + + Add Selected to Ignore List + + 1048576 + 2147483647 + + + + + + Make Selected Reference + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Open Selected with Default Application + + 1048576 + 2147483647 + + + + + + Reveal Selected in Finder + + 1048576 + 2147483647 + + + + + + Rename Selected + + 1048576 + 2147483647 + + + + + + + + 15 + 2 + {{47, 310}, {557, 400}} + 1886912512 + dupeGuru + NSWindow + + + 184FCE08-7704-43E1-B7CA-394621354414 + + + YES + YES + YES + YES + 2 + 1 + + YES + + YES + 3E17CA47-6688-44FC-963C-CF22D780305F + 4BD1D94E-8A70-48E1-AF8A-CEDC80CD0A5E + 8021CD05-A38E-4F80-99DD-7771914CEE06 + 8E5ADD0F-24AD-452A-BE68-464FE9E5E240 + BA65FFF2-9E56-4E88-AB2E-8FBE2B3D030F + F37510C7-955F-4141-9D09-AC2881ADCCFA + NSToolbarFlexibleSpaceItem + NSToolbarSeparatorItem + NSToolbarSpaceItem + + + YES + + + 3E17CA47-6688-44FC-963C-CF22D780305F + + Start Scanning + Start Scanning + + + + NSImage + NSApplicationIcon + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + 4BD1D94E-8A70-48E1-AF8A-CEDC80CD0A5E + + Options + Options + + + + 268 + {{0, 14}, {195, 23}} + YES + + 67239424 + 0 + + LucidaGrande + 11 + 16 + + + + YES + + 57 + Details + 0 + + + 82 + Dupes Only + 1 + 0 + + + 48 + Delta + 0 + + + 2 + 1 + 5 + + + + + + {195, 23} + {195, 25} + YES + YES + 0 + YES + 0 + + + + 8021CD05-A38E-4F80-99DD-7771914CEE06 + + Preferences + Preferences + + + + NSImage + preferences32 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + 8E5ADD0F-24AD-452A-BE68-464FE9E5E240 + + Filter + Filter + + + + 258 + {{0, 14}, {81, 22}} + YES + + 343014976 + 268436480 + + + LucidaGrande + 13 + 1044 + + Filter + + YES + 1 + + 6 + System + textBackgroundColor + + 3 + MQA + + + + 6 + System + controlTextColor + + 3 + MAA + + + + 130560 + 0 + search + + _searchFieldSearch: + + 138690815 + 0 + + 400 + 75 + + + 130560 + 0 + clear + + YES + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + cancel + + + + + + _searchFieldCancel: + + 138690815 + 0 + + 400 + 75 + + 10 + YES + + + + + + {81, 22} + {300, 22} + YES + YES + 0 + YES + 0 + + + + BA65FFF2-9E56-4E88-AB2E-8FBE2B3D030F + + Directories + Directories + + + + NSImage + folder32 + + + + {0, 0} + {0, 0} + YES + YES + -1 + YES + 0 + + + + F37510C7-955F-4141-9D09-AC2881ADCCFA + + Action + Action + + + + 256 + {{1, 14}, {40, 25}} + YES + + -2076049856 + 134219776 + + + -2035269377 + 35 + + + + + 400 + 75 + + + YES + IA + + 1048576 + 2147483647 + 1 + + NSImage + NSActionTemplate + + + + _popUpItemAction: + + + YES + + + OtherViews + + + YES + + + + Send Marked to Trash + + 2147483647 + + + _popUpItemAction: + + + + + Delete Marked and Replace with Hardlinks + + 2147483647 + + + _popUpItemAction: + + + + + Move Marked to... + + 2147483647 + + + _popUpItemAction: + + + + + Copy Marked to... + + 2147483647 + + + _popUpItemAction: + + + + + Remove Marked from Results + + 2147483647 + + + _popUpItemAction: + + + + + YES + YES + + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Remove Selected from Results + + 2147483647 + + + _popUpItemAction: + + + + + Add Selected to Ignore List + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Make Selected Reference + + 2147483647 + + + _popUpItemAction: + + + + + YES + YES + + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + Open Selected with Default Application + + 2147483647 + + + _popUpItemAction: + + + + + Reveal Selected in Finder + + 2147483647 + + + _popUpItemAction: + + + + + Rename Selected + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + YES + 3 + YES + YES + 2 + + + + + + {30, 25} + {40, 26} + YES + YES + 0 + YES + 0 + + + NSToolbarFlexibleSpaceItem + + Flexible Space + + + + + + {1, 5} + {20000, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + NSToolbarSeparatorItem + + Separator + + + + + + {12, 5} + {12, 1000} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + NSToolbarSpaceItem + + Space + + + + + + {32, 5} + {32, 32} + YES + YES + -1 + YES + 0 + + YES + YES + + + 1048576 + 2147483647 + + + + + + + + YES + + + + + + + + + + + + YES + + + + + + + + + + {1.79769e+308, 1.79769e+308} + {340, 340} + + + 256 + + YES + + + 290 + {{17, 6}, {523, 17}} + + YES + + 67239424 + 138412032 + Marked: 0 files, 0 B. Total: 0 files, 0 B. + + + + 6 + System + controlColor + + 3 + MC42NjY2NjY2NjY3AA + + + + + + + + 274 + + YES + + + 2304 + + YES + + + 256 + {557, 355} + + YES + + + 256 + {557, 17} + + + + + + -2147483392 + {{224, 0}, {16, 17}} + + + + YES + + marked + 26 + 26 + 26 + + 75628096 + 134219776 + + + LucidaGrande + 11 + 3100 + + + 6 + System + headerColor + + + + 6 + System + headerTextColor + + + + + 67239424 + 131072 + + + + 1211912703 + 2 + + NSImage + NSSwitch + + + NSSwitch + + + + 200 + 25 + + YES + + + + 0 + 195 + 16 + 3.4028234663852886e+38 + + 75628096 + 2048 + Name + + + + + + 337772096 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + + + + 2 + YES + + + 0 + YES + compare: + + + + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + + 14 + -895483904 + + + 2 + 4 + 15 + 0 + YES + 0 + + + {{1, 17}, {557, 355}} + + + + + 4 + + + + -2147483392 + {{224, 17}, {15, 102}} + + + _doScroller: + 37 + 0.1947367936372757 + + + + -2147483392 + {{1, 119}, {223, 15}} + + 1 + + _doScroller: + 0.57142859697341919 + + + + 2304 + + YES + + + {{1, 0}, {557, 17}} + + + + + 4 + + + + {{0, 28}, {559, 373}} + + + 562 + + + + + + QSAAAEEgAABBgAAAQYAAAA + + + {557, 400} + + + {{0, 0}, {1440, 878}} + {340, 402} + {1.79769e+308, 1.79769e+308} + MainWindow + + + + + YES + + + delegate + + + + 45 + + + + window + + + + 46 + + + + startDuplicateScan: + + + + 47 + + + + toggleDirectories: + + + + 48 + + + + showPreferencesPanel: + + + + 49 + + + + deleteMarked: + + + + 50 + + + + hardlinkMarked: + + + + 51 + + + + moveMarked: + + + + 52 + + + + copyMarked: + + + + 53 + + + + removeMarked: + + + + 54 + + + + removeSelected: + + + + 55 + + + + ignoreSelected: + + + + 56 + + + + switchSelected: + + + + 57 + + + + openSelected: + + + + 58 + + + + revealSelected: + + + + 59 + + + + renameSelected: + + + + 60 + + + + filterField + + + + 61 + + + + filter: + + + + 62 + + + + changeOptions: + + + + 63 + + + + optionsSwitch + + + + 64 + + + + stats + + + + 65 + + + + matches + + + + 66 + + + + menu + + + + 75 + + + + removeSelected: + + + + 76 + + + + ignoreSelected: + + + + 77 + + + + switchSelected: + + + + 78 + + + + openSelected: + + + + 79 + + + + revealSelected: + + + + 80 + + + + renameSelected: + + + + 81 + + + + + YES + + 0 + + + + + + -2 + + + File's Owner + + + -1 + + + First Responder + + + -3 + + + Application + + + 1 + + + YES + + + + + Window + + + 2 + + + YES + + + + + + + + + + + + + + 3 + + + YES + + + + + + + 4 + + + YES + + + + + + + + + 5 + + + YES + + + + + + 6 + + + + + 7 + + + + + 8 + + + YES + + + + + + + 9 + + + + + 10 + + + + + 11 + + + YES + + + + + + 12 + + + YES + + + + + + 13 + + + + + 14 + + + + + 15 + + + YES + + + + + + 16 + + + YES + + + + + + 17 + + + YES + + + + + + 18 + + + + + 19 + + + + + 20 + + + + + 21 + + + + + 22 + + + + + 23 + + + + + 24 + + + YES + + + + + + 25 + + + YES + + + + + + 26 + + + YES + + + + + + + + + + + + + + + + + + + 27 + + + + + 28 + + + + + 29 + + + + + 30 + + + + + 31 + + + + + 32 + + + + + 33 + + + + + 34 + + + + + 35 + + + + + 36 + + + + + 37 + + + + + 38 + + + + + 39 + + + + + 40 + + + + + 41 + + + YES + + + + + + 42 + + + + + 43 + + + YES + + + + + + 44 + + + + + 67 + + + YES + + + + + + + + + + matches_context + + + 68 + + + + + 69 + + + + + 70 + + + + + 71 + + + + + 72 + + + + + 73 + + + + + 74 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 1.IBEditorWindowLastContentRect + 1.IBPluginDependency + 1.IBWindowTemplateEditedContentRect + 1.ImportedFromIB2 + 1.NSWindowTemplate.visibleAtLaunch + 1.windowTemplate.hasMinSize + 1.windowTemplate.minSize + 10.IBPluginDependency + 11.IBPluginDependency + 12.IBPluginDependency + 13.IBPluginDependency + 14.IBPluginDependency + 16.IBPluginDependency + 17.IBPluginDependency + 18.IBPluginDependency + 19.IBPluginDependency + 2.IBEditorWindowLastContentRect + 2.IBPluginDependency + 20.IBPluginDependency + 24.IBPluginDependency + 24.ImportedFromIB2 + 25.IBPluginDependency + 26.IBEditorWindowLastContentRect + 26.IBPluginDependency + 26.ImportedFromIB2 + 27.IBPluginDependency + 27.ImportedFromIB2 + 28.IBPluginDependency + 28.ImportedFromIB2 + 29.IBPluginDependency + 29.ImportedFromIB2 + 3.IBPluginDependency + 3.ImportedFromIB2 + 30.IBPluginDependency + 30.ImportedFromIB2 + 31.IBPluginDependency + 31.ImportedFromIB2 + 32.IBPluginDependency + 32.ImportedFromIB2 + 33.IBPluginDependency + 33.ImportedFromIB2 + 34.IBPluginDependency + 34.ImportedFromIB2 + 35.IBPluginDependency + 35.ImportedFromIB2 + 36.IBPluginDependency + 36.ImportedFromIB2 + 37.IBPluginDependency + 37.ImportedFromIB2 + 38.IBPluginDependency + 38.ImportedFromIB2 + 39.IBPluginDependency + 39.ImportedFromIB2 + 4.IBPluginDependency + 40.IBPluginDependency + 40.ImportedFromIB2 + 41.IBPluginDependency + 41.ImportedFromIB2 + 42.IBPluginDependency + 43.IBPluginDependency + 44.IBPluginDependency + 44.IBSegmentedControlInspectorSelectedSegmentMetadataKey + 5.IBPluginDependency + 5.ImportedFromIB2 + 6.IBPluginDependency + 67.IBEditorWindowLastContentRect + 67.IBPluginDependency + 67.ImportedFromIB2 + 68.IBPluginDependency + 68.ImportedFromIB2 + 69.IBPluginDependency + 69.ImportedFromIB2 + 7.IBPluginDependency + 70.IBPluginDependency + 70.ImportedFromIB2 + 71.IBPluginDependency + 71.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 8.CustomClassName + 8.IBPluginDependency + 9.IBPluginDependency + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{324, 305}, {557, 400}} + com.apple.InterfaceBuilder.CocoaPlugin + {{324, 305}, {557, 400}} + + + + {340, 340} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{294, 705}, {617, 0}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + {{310, 310}, {353, 263}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + {{182, 609}, {331, 133}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + HSTableView + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + + + YES + + + YES + + + + + YES + + + YES + + + + 81 + + + + YES + + AppDelegateBase + NSObject + + YES + + YES + openHelp: + openWebsite: + showAboutBox: + toggleDirectories: + + + YES + id + id + id + id + + + + YES + + YES + openHelp: + openWebsite: + showAboutBox: + toggleDirectories: + + + YES + + openHelp: + id + + + openWebsite: + id + + + showAboutBox: + id + + + toggleDirectories: + id + + + + + YES + + YES + py + recentResultsMenu + result + + + YES + PyDupeGuruBase + NSMenu + ResultWindowBase + + + + YES + + YES + py + recentResultsMenu + result + + + YES + + py + PyDupeGuruBase + + + recentResultsMenu + NSMenu + + + result + ResultWindowBase + + + + + IBProjectSource + ../base/AppDelegate.h + + + + HSTableView + NSTableView + + IBProjectSource + ../views/HSTableView.h + + + + NSObject + + IBProjectSource + ../views/HSOutlineView.h + + + + NSObject + + + + NSObject + + IBProjectSource + ../views/NSTableViewAdditions.h + + + + NSTableView + + + + PyApp + PyFairware + + IBProjectSource + ../PyApp.h + + + + PyDupeGuruBase + PyApp + + IBProjectSource + ../base/PyDupeGuru.h + + + + PyFairware + NSObject + + IBProjectSource + ../PyFairware.h + + + + ResultWindow + ResultWindowBase + + YES + + YES + resetColumnsToDefault: + startDuplicateScan: + + + YES + id + id + + + + YES + + YES + resetColumnsToDefault: + startDuplicateScan: + + + YES + + resetColumnsToDefault: + id + + + startDuplicateScan: + id + + + + + IBProjectSource + ResultWindow.h + + + + ResultWindowBase + NSWindowController + + YES + + YES + changeOptions: + clearIgnoreList: + copyMarked: + deleteMarked: + exportToXHTML: + filter: + hardlinkMarked: + ignoreSelected: + invokeCustomCommand: + loadResults: + markAll: + markInvert: + markNone: + markSelected: + moveMarked: + openClicked: + openSelected: + removeMarked: + removeSelected: + renameSelected: + resetColumnsToDefault: + revealSelected: + saveResults: + showPreferencesPanel: + startDuplicateScan: + switchSelected: + toggleColumn: + toggleDelta: + toggleDetailsPanel: + togglePowerMarker: + + + YES + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + id + + + + YES + + YES + changeOptions: + clearIgnoreList: + copyMarked: + deleteMarked: + exportToXHTML: + filter: + hardlinkMarked: + ignoreSelected: + invokeCustomCommand: + loadResults: + markAll: + markInvert: + markNone: + markSelected: + moveMarked: + openClicked: + openSelected: + removeMarked: + removeSelected: + renameSelected: + resetColumnsToDefault: + revealSelected: + saveResults: + showPreferencesPanel: + startDuplicateScan: + switchSelected: + toggleColumn: + toggleDelta: + toggleDetailsPanel: + togglePowerMarker: + + + YES + + changeOptions: + id + + + clearIgnoreList: + id + + + copyMarked: + id + + + deleteMarked: + id + + + exportToXHTML: + id + + + filter: + id + + + hardlinkMarked: + id + + + ignoreSelected: + id + + + invokeCustomCommand: + id + + + loadResults: + id + + + markAll: + id + + + markInvert: + id + + + markNone: + id + + + markSelected: + id + + + moveMarked: + id + + + openClicked: + id + + + openSelected: + id + + + removeMarked: + id + + + removeSelected: + id + + + renameSelected: + id + + + resetColumnsToDefault: + id + + + revealSelected: + id + + + saveResults: + id + + + showPreferencesPanel: + id + + + startDuplicateScan: + id + + + switchSelected: + id + + + toggleColumn: + id + + + toggleDelta: + id + + + toggleDetailsPanel: + id + + + togglePowerMarker: + id + + + + + YES + + YES + app + columnsMenu + filterField + matches + optionsSwitch + py + stats + + + YES + id + NSMenu + NSSearchField + HSTableView + NSSegmentedControl + PyDupeGuruBase + NSTextField + + + + YES + + YES + app + columnsMenu + filterField + matches + optionsSwitch + py + stats + + + YES + + app + id + + + columnsMenu + NSMenu + + + filterField + NSSearchField + + + matches + HSTableView + + + optionsSwitch + NSSegmentedControl + + + py + PyDupeGuruBase + + + stats + NSTextField + + + + + IBProjectSource + ../base/ResultWindow.h + + + + + YES + + NSActionCell + NSCell + + IBFrameworkSource + AppKit.framework/Headers/NSActionCell.h + + + + NSApplication + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSApplication.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSApplicationScripting.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSColorPanel.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSHelpManager.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSPageLayout.h + + + + NSApplication + + IBFrameworkSource + AppKit.framework/Headers/NSUserInterfaceItemSearching.h + + + + NSButton + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSButton.h + + + + NSButtonCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSButtonCell.h + + + + NSCell + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSCell.h + + + + NSControl + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSControl.h + + + + NSFormatter + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFormatter.h + + + + NSMenu + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenu.h + + + + NSMenuItem + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItem.h + + + + NSMenuItemCell + NSButtonCell + + IBFrameworkSource + AppKit.framework/Headers/NSMenuItemCell.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSAccessibility.h + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDictionaryController.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSDragging.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontManager.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSFontPanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSKeyValueBinding.h + + + + NSObject + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSNibLoading.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSOutlineView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSPasteboard.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSSavePanel.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableView.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbarItem.h + + + + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSView.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSError.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSFileManager.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyValueObserving.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSKeyedArchiver.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObject.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSObjectScripting.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSPortCoder.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSRunLoop.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptClassDescription.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptKeyValueCoding.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptObjectSpecifiers.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSScriptWhoseTests.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSThread.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURL.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLConnection.h + + + + NSObject + + IBFrameworkSource + Foundation.framework/Headers/NSURLDownload.h + + + + NSObject + + IBFrameworkSource + Sparkle.framework/Headers/SUAppcast.h + + + + NSObject + + IBFrameworkSource + Sparkle.framework/Headers/SUUpdater.h + + + + NSPopUpButton + NSButton + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButton.h + + + + NSPopUpButtonCell + NSMenuItemCell + + IBFrameworkSource + AppKit.framework/Headers/NSPopUpButtonCell.h + + + + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSInterfaceStyle.h + + + + NSResponder + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSResponder.h + + + + NSScrollView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSScrollView.h + + + + NSScroller + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSScroller.h + + + + NSSearchField + NSTextField + + IBFrameworkSource + AppKit.framework/Headers/NSSearchField.h + + + + NSSearchFieldCell + NSTextFieldCell + + IBFrameworkSource + AppKit.framework/Headers/NSSearchFieldCell.h + + + + NSSegmentedCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSSegmentedCell.h + + + + NSSegmentedControl + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSSegmentedControl.h + + + + NSTableColumn + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSTableColumn.h + + + + NSTableHeaderView + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSTableHeaderView.h + + + + NSTableView + NSControl + + + + NSTextField + NSControl + + IBFrameworkSource + AppKit.framework/Headers/NSTextField.h + + + + NSTextFieldCell + NSActionCell + + IBFrameworkSource + AppKit.framework/Headers/NSTextFieldCell.h + + + + NSToolbar + NSObject + + IBFrameworkSource + AppKit.framework/Headers/NSToolbar.h + + + + NSToolbarItem + NSObject + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSClipView.h + + + + NSView + + + + NSView + + IBFrameworkSource + AppKit.framework/Headers/NSRulerView.h + + + + NSView + NSResponder + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSDrawer.h + + + + NSWindow + NSResponder + + IBFrameworkSource + AppKit.framework/Headers/NSWindow.h + + + + NSWindow + + IBFrameworkSource + AppKit.framework/Headers/NSWindowScripting.h + + + + NSWindowController + NSResponder + + showWindow: + id + + + showWindow: + + showWindow: + id + + + + IBFrameworkSource + AppKit.framework/Headers/NSWindowController.h + + + + + 0 + IBCocoaFramework + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.macosx + + + + com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 + + + YES + ../../se/dupeguru.xcodeproj + 3 + + YES + + YES + NSActionTemplate + NSApplicationIcon + NSMenuCheckmark + NSMenuMixedState + NSSwitch + folder32 + preferences32 + + + YES + {15, 15} + {128, 128} + {9, 8} + {7, 2} + {15, 15} + {32, 32} + {32, 32} + + + + diff --git a/cocoa/me/AppDelegate.m b/cocoa/me/AppDelegate.m index 69f66f77..243f6c02 100644 --- a/cocoa/me/AppDelegate.m +++ b/cocoa/me/AppDelegate.m @@ -13,6 +13,7 @@ http://www.hardcoded.net/licenses/bsd_license #import "../../cocoalib/Dialogs.h" #import "DetailsPanel.h" #import "DirectoryPanel.h" +#import "ResultWindow.h" #import "Consts.h" @implementation AppDelegate @@ -58,15 +59,19 @@ http://www.hardcoded.net/licenses/bsd_license - (NSString *)homepageURL { - return @"http://www.hardcoded.net/dupeguru_me/" + return @"http://www.hardcoded.net/dupeguru_me/"; } -- (DirectoryPanel *)directoryPanel +- (ResultWindowBase *)createResultWindow { - if (!_directoryPanel) - _directoryPanel = [[DirectoryPanelME alloc] initWithParentApp:self]; - return _directoryPanel; + return [[ResultWindow alloc] initWithParentApp:self]; } + +- (DirectoryPanel *)createDirectoryPanel +{ + return [[DirectoryPanelME alloc] initWithParentApp:self]; +} + - (PyDupeGuru *)py { return (PyDupeGuru *)py; } //Delegate @@ -76,7 +81,7 @@ http://www.hardcoded.net/licenses/bsd_license // index 3 is just after "Export Results to XHTML" NSMenuItem *mi = [actionsMenu insertItemWithTitle:@"Remove Dead Tracks in iTunes" action:@selector(removeDeadTracks:) keyEquivalent:@"" atIndex:3]; - [mi setTarget:result]; + [mi setTarget:[self resultWindow]]; [super applicationDidFinishLaunching:aNotification]; } @end diff --git a/cocoa/me/dupeguru.xcodeproj/project.pbxproj b/cocoa/me/dupeguru.xcodeproj/project.pbxproj index 9c4fda74..2013e394 100644 --- a/cocoa/me/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/me/dupeguru.xcodeproj/project.pbxproj @@ -63,6 +63,7 @@ CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE848A1809DD85810004CB44 /* Consts.h */; }; CE900AD2109B238600754048 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE900AD1109B238600754048 /* Preferences.xib */; }; CE900AD7109B2A9B00754048 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE900AD6109B2A9B00754048 /* MainMenu.xib */; }; + CEAF803712E07DF000A988DF /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEAF803612E07DF000A988DF /* ResultWindow.xib */; }; CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; }; CEDF07A3112493B200EE5BC0 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDF07A2112493B200EE5BC0 /* StatsLabel.m */; }; CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; @@ -170,6 +171,7 @@ CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = ""; }; CE900AD1109B238600754048 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Preferences.xib; sourceTree = ""; }; CE900AD6109B2A9B00754048 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = ../../base/xib/MainMenu.xib; sourceTree = ""; }; + CEAF803612E07DF000A988DF /* ResultWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ResultWindow.xib; path = ../base/xib/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CEB14D26124DFC2800FA7481 /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyResultTable.h; path = ../base/PyResultTable.h; sourceTree = SOURCE_ROOT; }; CEB14D27124DFC2800FA7481 /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; }; CEB14D28124DFC2800FA7481 /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; }; @@ -331,6 +333,7 @@ isa = PBXGroup; children = ( CE900AD6109B2A9B00754048 /* MainMenu.xib */, + CEAF803612E07DF000A988DF /* ResultWindow.xib */, CE3FBDD11094637800B72D77 /* DetailsPanel.xib */, CE3FBDD21094637800B72D77 /* DirectoryPanel.xib */, CE900AD1109B238600754048 /* Preferences.xib */, @@ -502,6 +505,7 @@ CE0A0C061175A24800DCA3C6 /* ProblemDialog.xib in Resources */, CE74A12712537F2E008A8DF0 /* FairwareReminder.xib in Resources */, CE4F934612CCA9470067A3AE /* about.xib in Resources */, + CEAF803712E07DF000A988DF /* ResultWindow.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/cocoa/pe/AppDelegate.h b/cocoa/pe/AppDelegate.h index 3eabc696..b536ebab 100644 --- a/cocoa/pe/AppDelegate.h +++ b/cocoa/pe/AppDelegate.h @@ -11,7 +11,5 @@ http://www.hardcoded.net/licenses/bsd_license #import "PyDupeGuru.h" @interface AppDelegate : AppDelegateBase {} -- (IBAction)openWebsite:(id)sender; - - (PyDupeGuru *)py; @end diff --git a/cocoa/pe/AppDelegate.m b/cocoa/pe/AppDelegate.m index ecc46ea2..53fd6720 100644 --- a/cocoa/pe/AppDelegate.m +++ b/cocoa/pe/AppDelegate.m @@ -13,6 +13,7 @@ http://www.hardcoded.net/licenses/bsd_license #import "Consts.h" #import "DetailsPanel.h" #import "DirectoryPanel.h" +#import "ResultWindow.h" @implementation AppDelegate + (void)initialize @@ -34,31 +35,26 @@ http://www.hardcoded.net/licenses/bsd_license [ud registerDefaults:d]; } -- (id)init -{ - self = [super init]; - _directoryPanel = nil; - return self; -} - -- (DetailsPanel *)detailsPanel -{ - if (!_detailsPanel) - _detailsPanel = [[DetailsPanelPE alloc] initWithPy:py]; - return _detailsPanel; -} - - (NSString *)homepageURL { - return @"http://www.hardcoded.net/dupeguru_pe/" + return @"http://www.hardcoded.net/dupeguru_pe/"; } -- (DirectoryPanel *)directoryPanel +- (ResultWindowBase *)createResultWindow { - if (!_directoryPanel) - _directoryPanel = [[DirectoryPanelPE alloc] initWithParentApp:self]; - return _directoryPanel; + return [[ResultWindow alloc] initWithParentApp:self]; } + +- (DirectoryPanel *)createDirectoryPanel +{ + return [[DirectoryPanelPE alloc] initWithParentApp:self]; +} + +- (DetailsPanel *)createDetailsPanel +{ + return [[DetailsPanelPE alloc] initWithPy:py]; +} + - (PyDupeGuru *)py { return (PyDupeGuru *)py; } //Delegate @@ -67,7 +63,7 @@ http://www.hardcoded.net/licenses/bsd_license NSMenu *actionsMenu = [[[NSApp mainMenu] itemWithTitle:@"Actions"] submenu]; // index 2 is just after "Clear Ingore List" NSMenuItem *mi = [actionsMenu insertItemWithTitle:@"Clear Picture Cache" action:@selector(clearPictureCache:) keyEquivalent:@"P" atIndex:2]; - [mi setTarget:result]; + [mi setTarget:[self resultWindow]]; [mi setKeyEquivalentModifierMask:NSCommandKeyMask|NSShiftKeyMask]; [super applicationDidFinishLaunching:aNotification]; } diff --git a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj index 0e78c125..8597c63f 100644 --- a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj @@ -26,6 +26,7 @@ CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6044EB0FE6796200B71262 /* DetailsPanel.m */; }; CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; }; CE6E0F3D1054EC62008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */; }; + CE7360AC12E07DD000A0888D /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7360AB12E07DD000A0888D /* ResultWindow.xib */; }; CE77C89E10946C6D0078B0DB /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE77C89C10946C6D0078B0DB /* DirectoryPanel.xib */; }; CE77C8A810946CE20078B0DB /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE77C8A710946CE20078B0DB /* DetailsPanel.xib */; }; CE7AC9181119911200D02F6C /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7AC9151119911200D02F6C /* ErrorReportWindow.xib */; }; @@ -115,6 +116,7 @@ CE68EE6509ABC48000971085 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; }; + CE7360AB12E07DD000A0888D /* ResultWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ResultWindow.xib; path = ../base/xib/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CE77C89C10946C6D0078B0DB /* DirectoryPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DirectoryPanel.xib; path = ../../base/xib/DirectoryPanel.xib; sourceTree = ""; }; CE77C8A710946CE20078B0DB /* DetailsPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DetailsPanel.xib; sourceTree = ""; }; CE7AC9151119911200D02F6C /* ErrorReportWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ErrorReportWindow.xib; sourceTree = ""; }; @@ -291,6 +293,7 @@ isa = PBXGroup; children = ( CE031753109B345200517EE6 /* MainMenu.xib */, + CE7360AB12E07DD000A0888D /* ResultWindow.xib */, CE77C8A710946CE20078B0DB /* DetailsPanel.xib */, CE77C89C10946C6D0078B0DB /* DirectoryPanel.xib */, CE031750109B340A00517EE6 /* Preferences.xib */, @@ -510,6 +513,7 @@ CE0C2AC81177021600BC749F /* ProblemDialog.xib in Resources */, CE1EB60112537FB90034AABB /* FairwareReminder.xib in Resources */, CEC9DB4712CCAA6B003102F0 /* about.xib in Resources */, + CE7360AC12E07DD000A0888D /* ResultWindow.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/cocoa/se/AppDelegate.m b/cocoa/se/AppDelegate.m index 17ebb6c5..6e865f73 100644 --- a/cocoa/se/AppDelegate.m +++ b/cocoa/se/AppDelegate.m @@ -12,6 +12,7 @@ http://www.hardcoded.net/licenses/bsd_license #import "../../cocoalib/ValueTransformers.h" #import "DetailsPanel.h" #import "DirectoryPanel.h" +#import "ResultWindow.h" #import "Consts.h" @implementation AppDelegate @@ -52,5 +53,10 @@ http://www.hardcoded.net/licenses/bsd_license return @"http://www.hardcoded.net/dupeguru/"; } +- (ResultWindowBase *)createResultWindow +{ + return [[ResultWindow alloc] initWithParentApp:self]; +} + - (PyDupeGuru *)py { return (PyDupeGuru *)py; } @end diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 6b0c79dc..263c4c51 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -39,6 +39,7 @@ CEAC6811109B0B7E00B43C85 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEAC6810109B0B7E00B43C85 /* Preferences.xib */; }; CEBE4D74111F0EE1009AAC6D /* HSWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */; }; CEDD92DA0FDD01640031C7B7 /* BRSingleLineFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDD92D70FDD01640031C7B7 /* BRSingleLineFormatter.m */; }; + CEE7B60712E0711D00E01BEA /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEE7B60612E0711D00E01BEA /* ResultWindow.xib */; }; CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; }; CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; CEEFC0F810945D9F001F3A39 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEEFC0F710945D9F001F3A39 /* DirectoryPanel.xib */; }; @@ -132,6 +133,7 @@ CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSWindowController.m; sourceTree = ""; }; CEDD92D60FDD01640031C7B7 /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; }; CEDD92D70FDD01640031C7B7 /* BRSingleLineFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BRSingleLineFormatter.m; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.m; sourceTree = SOURCE_ROOT; }; + CEE7B60612E0711D00E01BEA /* ResultWindow.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ResultWindow.xib; path = ../base/xib/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; }; CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; @@ -319,6 +321,7 @@ CEEFC0CA10943849001F3A39 /* xib */ = { isa = PBXGroup; children = ( + CEE7B60612E0711D00E01BEA /* ResultWindow.xib */, CE647E581173026F006D28BA /* ProblemDialog.xib */, CE3A46F9109B212E002ABFD5 /* MainMenu.xib */, CEAC6810109B0B7E00B43C85 /* Preferences.xib */, @@ -469,6 +472,7 @@ CE647E591173026F006D28BA /* ProblemDialog.xib in Resources */, CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, CE27D3C112CCA42500859E67 /* about.xib in Resources */, + CEE7B60712E0711D00E01BEA /* ResultWindow.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; };