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 @@
@@ -1119,8 +310,8 @@
1048576
2147483647
-
-
+
+
submenuAction:
@@ -1293,8 +484,8 @@
1048576
2147483647
-
-
+
+
submenuAction:
@@ -1343,8 +534,8 @@
1048576
2147483647
-
-
+
+
submenuAction:
_NSWindowsMenu
@@ -1435,8 +626,8 @@
1048576
2147483647
-
-
+
+
submenuAction:
@@ -1469,84 +660,9 @@
AppDelegate
-
- ResultWindow
-
PyDupeGuru
-
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
+
+
+
+ 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
+
+
+
+
+
+ {30, 25}
+ {40, 26}
+ YES
+ YES
+ 0
+ YES
+ 0
+
+
+ NSToolbarFlexibleSpaceItem
+
+ Flexible Space
+
+
+
+
+
+ {1, 5}
+ {20000, 32}
+ YES
+ YES
+ -1
+ YES
+ 0
+
+
+
+ NSToolbarSeparatorItem
+
+ Separator
+
+
+
+
+
+ {12, 5}
+ {12, 1000}
+ YES
+ YES
+ -1
+ YES
+ 0
+
+
+
+ NSToolbarSpaceItem
+
+ Space
+
+
+
+
+
+ {32, 5}
+ {32, 32}
+ YES
+ YES
+ -1
+ YES
+ 0
+
+
+
+
+
+ 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
+
+
+
+ -2147483392
+ {{224, 0}, {16, 17}}
+
+
+
+ YES
+
+ marked
+ 26
+ 26
+ 26
+
+
+ 67239424
+ 131072
+
+
+
+ 1211912703
+ 2
+
+ NSImage
+ NSSwitch
+
+
+ NSSwitch
+
+
+
+ 200
+ 25
+
+ YES
+
+
+
+ 0
+ 195
+ 16
+ 3.4028234663852886e+38
+
+
+ 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;
};