Merge default with xibless.

This commit is contained in:
Virgil Dupras 2012-07-31 10:04:37 -04:00
commit a2553da578
88 changed files with 1407 additions and 19209 deletions

View File

@ -6,7 +6,8 @@ run.py
*.so *.so
*.mo *.mo
*.pyd *.pyd
.tm_* *.waf*
.lock-waf*
*.xcodeproj/xcuserdata *.xcodeproj/xcuserdata
*.xcodeproj/project.xcworkspace/xcuserdata *.xcodeproj/project.xcworkspace/xcuserdata
conf.json conf.json

4
README
View File

@ -37,11 +37,11 @@ General dependencies
OS X prerequisites OS X prerequisites
------------------ ------------------
- XCode 4.1 - XCode's command line tools
- Sparkle (http://sparkle.andymatuschak.org/)
- objp 1.1.0 (http://bitbucket.org/hsoft/objp) - objp 1.1.0 (http://bitbucket.org/hsoft/objp)
- pluginbuilder 1.1.0 (http://bitbucket.org/hsoft/pluginbuilder) - pluginbuilder 1.1.0 (http://bitbucket.org/hsoft/pluginbuilder)
- appscript 1.0.0 for ME and PE (http://appscript.sourceforge.net/) - appscript 1.0.0 for ME and PE (http://appscript.sourceforge.net/)
- xibless 0.4.0 (https://bitbucket.org/hsoft/xibless)
Windows prerequisites Windows prerequisites
--------------------- ---------------------

111
build.py
View File

@ -13,13 +13,14 @@ from optparse import OptionParser
import shutil import shutil
import json import json
import importlib import importlib
import glob
from setuptools import setup, Extension from setuptools import setup, Extension
from hscommon import sphinxgen from hscommon import sphinxgen
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace, from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
get_module_version, build_all_cocoa_locs, move_all, copy_sysconfig_files_for_embed, copy_all, get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move, copy,
move) create_osx_app_structure)
from hscommon import loc from hscommon import loc
def parse_args(): def parse_args():
@ -31,8 +32,10 @@ def parse_args():
help="Build only the help file") help="Build only the help file")
parser.add_option('--loc', action='store_true', dest='loc', parser.add_option('--loc', action='store_true', dest='loc',
help="Build only localization") help="Build only localization")
parser.add_option('--cocoamod', action='store_true', dest='cocoamod', parser.add_option('--cocoa-compile', action='store_true', dest='cocoa_compile',
help="Build only Cocoa modules") help="Build only Cocoa modules and executables")
parser.add_option('--xibless', action='store_true', dest='xibless',
help="Build only xibless UIs")
parser.add_option('--updatepot', action='store_true', dest='updatepot', parser.add_option('--updatepot', action='store_true', dest='updatepot',
help="Generate .pot files from source code.") help="Generate .pot files from source code.")
parser.add_option('--mergepot', action='store_true', dest='mergepot', parser.add_option('--mergepot', action='store_true', dest='mergepot',
@ -40,17 +43,52 @@ def parse_args():
(options, args) = parser.parse_args() (options, args) = parser.parse_args()
return options return options
def cocoa_compile_command(edition):
return '{0} waf configure --edition {1} && {0} waf'.format(sys.executable, edition)
def cocoa_app_path(edition):
return {
'se': 'build/dupeGuru.app',
'me': 'build/dupeGuru ME.app',
'pe': 'build/dupeGuru PE.app',
}[edition]
def build_xibless(edition):
import xibless
if not op.exists('cocoa/autogen'):
os.mkdir('cocoa/autogen')
xibless.generate('cocoalib/ui/progress.py', 'cocoa/autogen/ProgressController_UI')
xibless.generate('cocoalib/ui/about.py', 'cocoa/autogen/HSAboutBox_UI', localizationTable='cocoalib')
xibless.generate('cocoalib/ui/fairware_reminder.py', 'cocoa/autogen/HSFairwareReminder_UI', localizationTable='cocoalib')
xibless.generate('cocoalib/ui/demo_reminder.py', 'cocoa/autogen/HSDemoReminder_UI', localizationTable='cocoalib')
xibless.generate('cocoalib/ui/enter_code.py', 'cocoa/autogen/HSEnterCode_UI', localizationTable='cocoalib')
xibless.generate('cocoalib/ui/error_report.py', 'cocoa/autogen/HSErrorReportWindow_UI', localizationTable='cocoalib')
xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable')
xibless.generate('cocoa/base/ui/deletion_options.py', 'cocoa/autogen/DeletionOptions_UI', localizationTable='Localizable')
xibless.generate('cocoa/base/ui/problem_dialog.py', 'cocoa/autogen/ProblemDialog_UI', localizationTable='Localizable')
xibless.generate('cocoa/base/ui/directory_panel.py', 'cocoa/autogen/DirectoryPanel_UI', localizationTable='Localizable')
xibless.generate('cocoa/base/ui/prioritize_dialog.py', 'cocoa/autogen/PrioritizeDialog_UI', localizationTable='Localizable')
xibless.generate('cocoa/base/ui/result_window.py', 'cocoa/autogen/ResultWindow_UI', localizationTable='Localizable')
xibless.generate('cocoa/base/ui/main_menu.py', 'cocoa/autogen/MainMenu_UI',
localizationTable='Localizable', args={'edition': edition})
xibless.generate('cocoa/base/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI',
localizationTable='Localizable', args={'edition': edition})
if edition == 'pe':
xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable')
else:
xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable')
def build_cocoa(edition, dev): def build_cocoa(edition, dev):
ed = lambda s: s.format(edition)
build_xibless(edition)
build_cocoa_proxy_module() build_cocoa_proxy_module()
build_cocoa_bridging_interfaces(edition) build_cocoa_bridging_interfaces(edition)
print("Building the cocoa layer") print("Building the cocoa layer")
from pluginbuilder import copy_embeddable_python_dylib, get_python_header_folder, collect_dependencies from pluginbuilder import copy_embeddable_python_dylib, collect_dependencies
copy_embeddable_python_dylib('build') copy_embeddable_python_dylib('build')
if not op.exists('build/PythonHeaders'):
os.symlink(get_python_header_folder(), 'build/PythonHeaders')
if not op.exists('build/py'): if not op.exists('build/py'):
os.mkdir('build/py') os.mkdir('build/py')
cocoa_project_path = 'cocoa/{0}'.format(edition) cocoa_project_path = ed('cocoa/{}')
shutil.copy(op.join(cocoa_project_path, 'dg_cocoa.py'), 'build') shutil.copy(op.join(cocoa_project_path, 'dg_cocoa.py'), 'build')
specific_packages = { specific_packages = {
'se': ['core_se'], 'se': ['core_se'],
@ -69,23 +107,21 @@ def build_cocoa(edition, dev):
copy_sysconfig_files_for_embed('build/py') copy_sysconfig_files_for_embed('build/py')
os.chdir(cocoa_project_path) os.chdir(cocoa_project_path)
print('Generating Info.plist') print('Generating Info.plist')
app_version = get_module_version('core_{}'.format(edition)) app_version = get_module_version(ed('core_{}'))
filereplace('InfoTemplate.plist', 'Info.plist', version=app_version) filereplace('InfoTemplate.plist', 'Info.plist', version=app_version)
print("Building the XCode project") print("Compiling with WAF")
args = ['-project dupeguru.xcodeproj'] os.chdir('..')
if dev: os.system(cocoa_compile_command(edition))
args.append('-configuration dev') os.chdir('..')
else: print("Creating the .app folder")
args.append('-configuration release') image_path = ed('cocoa/{}/dupeguru.icns')
args = ' '.join(args) resources = [image_path, 'cocoa/base/dsa_pub.pem', 'build/dg_cocoa.py',
os.system('xcodebuild {0}'.format(args)) 'build/py', 'build/help'] + glob.glob('cocoa/base/*.lproj')
os.chdir('../..') frameworks = ['build/Python', 'cocoalib/Sparkle.framework']
app_path = cocoa_app_path(edition)
create_osx_app_structure(app_path, 'cocoa/build/dupeGuru', ed('cocoa/{}/Info.plist'),
resources, frameworks, symlink_resources=dev)
print("Creating the run.py file") print("Creating the run.py file")
app_path = {
'se': 'cocoa/se/dupeGuru.app',
'me': 'cocoa/me/dupeGuru\\ ME.app',
'pe': 'cocoa/pe/dupeGuru\\ PE.app',
}[edition]
tmpl = open('run_template_cocoa.py', 'rt').read() tmpl = open('run_template_cocoa.py', 'rt').read()
run_contents = tmpl.replace('{{app_path}}', app_path) run_contents = tmpl.replace('{{app_path}}', app_path)
open('run.py', 'wt').write(run_contents) open('run.py', 'wt').write(run_contents)
@ -123,17 +159,13 @@ def build_localizations(ui, edition):
if lang == 'en': if lang == 'en':
continue continue
pofile = op.join('locale', lang, 'LC_MESSAGES', 'ui.po') pofile = op.join('locale', lang, 'LC_MESSAGES', 'ui.po')
for edition_folder in ['base', 'se', 'me', 'pe']: enlproj = op.join('cocoa', 'base', 'en.lproj')
enlproj = op.join('cocoa', edition_folder, 'en.lproj') dest_lproj = op.join('cocoa', 'base', lang + '.lproj')
dest_lproj = op.join('cocoa', edition_folder, lang + '.lproj') if not op.exists(dest_lproj):
loc.po2allxibstrings(pofile, enlproj, dest_lproj) os.makedirs(dest_lproj)
if edition_folder == 'base': loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings'))
loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings'))
pofile = op.join('cocoalib', 'locale', lang, 'LC_MESSAGES', 'cocoalib.po') pofile = op.join('cocoalib', 'locale', lang, 'LC_MESSAGES', 'cocoalib.po')
loc.po2allxibstrings(pofile, op.join('cocoalib', 'en.lproj'), op.join('cocoalib', lang + '.lproj')) loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), op.join(dest_lproj, 'cocoalib.strings'))
build_all_cocoa_locs('cocoalib')
build_all_cocoa_locs(op.join('cocoa', 'base'))
build_all_cocoa_locs(op.join('cocoa', edition))
elif ui == 'qt': elif ui == 'qt':
loc.compile_all_po(op.join('qtlib', 'locale')) loc.compile_all_po(op.join('qtlib', 'locale'))
loc.merge_locale_dir(op.join('qtlib', 'locale'), 'locale') loc.merge_locale_dir(op.join('qtlib', 'locale'), 'locale')
@ -186,9 +218,10 @@ def build_cocoa_proxy_module():
import objp.p2o import objp.p2o
objp.p2o.generate_python_proxy_code('cocoalib/cocoa/CocoaProxy.h', 'build/CocoaProxy.m') objp.p2o.generate_python_proxy_code('cocoalib/cocoa/CocoaProxy.h', 'build/CocoaProxy.m')
build_cocoa_ext("CocoaProxy", 'cocoalib/cocoa', build_cocoa_ext("CocoaProxy", 'cocoalib/cocoa',
['cocoalib/cocoa/CocoaProxy.m', 'build/CocoaProxy.m', 'build/ObjP.m', 'cocoalib/HSErrorReportWindow.m'], ['cocoalib/cocoa/CocoaProxy.m', 'build/CocoaProxy.m', 'build/ObjP.m',
'cocoalib/HSErrorReportWindow.m', 'cocoa/autogen/HSErrorReportWindow_UI.m'],
['AppKit', 'CoreServices'], ['AppKit', 'CoreServices'],
['cocoalib']) ['cocoalib', 'cocoa/autogen'])
def build_cocoa_bridging_interfaces(edition): def build_cocoa_bridging_interfaces(edition):
print("Building Cocoa Bridging Interfaces") print("Building Cocoa Bridging Interfaces")
@ -280,9 +313,15 @@ def main():
build_updatepot() build_updatepot()
elif options.mergepot: elif options.mergepot:
build_mergepot() build_mergepot()
elif options.cocoamod: elif options.cocoa_compile:
build_cocoa_proxy_module() build_cocoa_proxy_module()
build_cocoa_bridging_interfaces(edition) build_cocoa_bridging_interfaces(edition)
os.chdir('cocoa')
os.system(cocoa_compile_command(edition))
os.chdir('..')
copy('cocoa/build/dupeGuru', op.join(cocoa_app_path(edition), 'Contents/MacOS/dupeGuru'))
elif options.xibless:
build_xibless(edition)
else: else:
build_normal(edition, ui, dev) build_normal(edition, ui, dev)

View File

@ -7,6 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import <Sparkle/SUUpdater.h>
#import "PyDupeGuru.h" #import "PyDupeGuru.h"
#import "ResultWindow.h" #import "ResultWindow.h"
#import "DetailsPanel.h" #import "DetailsPanel.h"
@ -17,9 +18,9 @@ http://www.hardcoded.net/licenses/bsd_license
@interface AppDelegateBase : NSObject @interface AppDelegateBase : NSObject
{ {
IBOutlet NSMenu *recentResultsMenu; NSMenu *recentResultsMenu;
IBOutlet NSMenu *actionsMenu; NSMenu *columnsMenu;
IBOutlet NSMenu *columnsMenu; SUUpdater *updater;
PyDupeGuru *model; PyDupeGuru *model;
ResultWindowBase *_resultWindow; ResultWindowBase *_resultWindow;
@ -31,6 +32,10 @@ http://www.hardcoded.net/licenses/bsd_license
HSRecentFiles *_recentResults; HSRecentFiles *_recentResults;
} }
@property (readwrite, retain) NSMenu *recentResultsMenu;
@property (readwrite, retain) NSMenu *columnsMenu;
@property (readwrite, retain) SUUpdater *updater;
/* Virtual */ /* Virtual */
- (PyDupeGuru *)model; - (PyDupeGuru *)model;
- (ResultWindowBase *)createResultWindow; - (ResultWindowBase *)createResultWindow;
@ -39,11 +44,11 @@ http://www.hardcoded.net/licenses/bsd_license
- (NSString *)homepageURL; - (NSString *)homepageURL;
/* Public */ /* Public */
- (void)finalizeInit;
- (ResultWindowBase *)resultWindow; - (ResultWindowBase *)resultWindow;
- (DirectoryPanel *)directoryPanel; - (DirectoryPanel *)directoryPanel;
- (DetailsPanel *)detailsPanel; - (DetailsPanel *)detailsPanel;
- (HSRecentFiles *)recentResults; - (HSRecentFiles *)recentResults;
- (NSMenu *)columnsMenu;
/* Delegate */ /* Delegate */
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification; - (void)applicationDidFinishLaunching:(NSNotification *)aNotification;
@ -53,15 +58,15 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)recentFileClicked:(NSString *)path; - (void)recentFileClicked:(NSString *)path;
/* Actions */ /* Actions */
- (IBAction)loadResults:(id)sender; - (void)loadResults;
- (IBAction)openWebsite:(id)sender; - (void)openWebsite;
- (IBAction)openHelp:(id)sender; - (void)openHelp;
- (IBAction)showAboutBox:(id)sender; - (void)showAboutBox;
- (IBAction)showDirectoryWindow:(id)sender; - (void)showDirectoryWindow;
- (IBAction)showPreferencesPanel:(id)sender; - (void)showPreferencesPanel;
- (IBAction)showResultWindow:(id)sender; - (void)showResultWindow;
- (IBAction)showIgnoreList:(id)sender; - (void)showIgnoreList;
- (IBAction)startScanning:(id)sender; - (void)startScanning;
/* model --> view */ /* model --> view */
- (void)showMessage:(NSString *)msg; - (void)showMessage:(NSString *)msg;

View File

@ -6,26 +6,40 @@ which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license http://www.hardcoded.net/licenses/bsd_license
*/ */
#import "AppDelegate.h" #import "AppDelegateBase.h"
#import "ProgressController.h" #import "ProgressController.h"
#import "HSFairwareReminder.h" #import "HSFairwareReminder.h"
#import "HSPyUtil.h" #import "HSPyUtil.h"
#import "Consts.h" #import "Consts.h"
#import "Dialogs.h" #import "Dialogs.h"
#import "ValueTransformers.h" #import "ValueTransformers.h"
#import <Sparkle/SUUpdater.h> #import "PreferencesPanel_UI.h"
@implementation AppDelegateBase @implementation AppDelegateBase
@synthesize recentResultsMenu;
@synthesize columnsMenu;
@synthesize updater;
+ (void)initialize + (void)initialize
{ {
HSVTAdd *vt = [[[HSVTAdd alloc] initWithValue:4] autorelease]; HSVTAdd *vt = [[[HSVTAdd alloc] initWithValue:4] autorelease];
[NSValueTransformer setValueTransformer:vt forName:@"vtRowHeightOffset"]; [NSValueTransformer setValueTransformer:vt forName:@"vtRowHeightOffset"];
} }
- (void)awakeFromNib - (id)init
{ {
self = [super init];
model = [[PyDupeGuru alloc] init]; model = [[PyDupeGuru alloc] init];
[model bindCallback:createCallback(@"DupeGuruView", self)]; [model bindCallback:createCallback(@"DupeGuruView", self)];
[self setUpdater:[SUUpdater sharedUpdater]];
return self;
}
- (void)finalizeInit
{
// We can only finalize initialization once the main menu has been created, which cannot happen
// before AppDelegate is created.
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
/* Because the pref pane is lazily loaded, we have to manually do the update check if the /* Because the pref pane is lazily loaded, we have to manually do the update check if the
preference is set. preference is set.
@ -92,10 +106,8 @@ http://www.hardcoded.net/licenses/bsd_license
return _recentResults; return _recentResults;
} }
- (NSMenu *)columnsMenu { return columnsMenu; }
/* Actions */ /* Actions */
- (IBAction)loadResults:(id)sender - (void)loadResults
{ {
NSOpenPanel *op = [NSOpenPanel openPanel]; NSOpenPanel *op = [NSOpenPanel openPanel];
[op setCanChooseFiles:YES]; [op setCanChooseFiles:YES];
@ -111,12 +123,12 @@ http://www.hardcoded.net/licenses/bsd_license
} }
} }
- (IBAction)openWebsite:(id)sender - (void)openWebsite
{ {
[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:[self homepageURL]]]; [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:[self homepageURL]]];
} }
- (IBAction)openHelp:(id)sender - (void)openHelp
{ {
NSBundle *b = [NSBundle mainBundle]; NSBundle *b = [NSBundle mainBundle];
NSString *p = [b pathForResource:@"index" ofType:@"html" inDirectory:@"help"]; NSString *p = [b pathForResource:@"index" ofType:@"html" inDirectory:@"help"];
@ -124,40 +136,40 @@ http://www.hardcoded.net/licenses/bsd_license
[[NSWorkspace sharedWorkspace] openURL:u]; [[NSWorkspace sharedWorkspace] openURL:u];
} }
- (IBAction)showAboutBox:(id)sender - (void)showAboutBox
{ {
if (_aboutBox == nil) { if (_aboutBox == nil) {
_aboutBox = [[HSAboutBox alloc] initWithApp:model]; _aboutBox = [[HSAboutBox alloc] initWithApp:model];
} }
[[_aboutBox window] makeKeyAndOrderFront:sender]; [[_aboutBox window] makeKeyAndOrderFront:nil];
} }
- (IBAction)showDirectoryWindow:(id)sender - (void)showDirectoryWindow
{ {
[[[self directoryPanel] window] makeKeyAndOrderFront:nil]; [[[self directoryPanel] window] makeKeyAndOrderFront:nil];
} }
- (IBAction)showPreferencesPanel:(id)sender - (void)showPreferencesPanel
{ {
if (_preferencesPanel == nil) { if (_preferencesPanel == nil) {
_preferencesPanel = [[NSWindowController alloc] initWithWindowNibName:@"Preferences"]; _preferencesPanel = [[NSWindowController alloc] initWithWindow:createPreferencesPanel_UI(nil)];
} }
[_preferencesPanel showWindow:sender]; [_preferencesPanel showWindow:nil];
} }
- (IBAction)showResultWindow:(id)sender - (void)showResultWindow
{ {
[[[self resultWindow] window] makeKeyAndOrderFront:nil]; [[[self resultWindow] window] makeKeyAndOrderFront:nil];
} }
- (IBAction)showIgnoreList:(id)sender - (void)showIgnoreList
{ {
[model showIgnoreList]; [model showIgnoreList];
} }
- (IBAction)startScanning:(id)sender - (void)startScanning
{ {
[[self resultWindow] startDuplicateScan:sender]; [[self resultWindow] startDuplicateScan];
} }

View File

@ -11,15 +11,21 @@ http://www.hardcoded.net/licenses/bsd_license
@interface DeletionOptions : NSWindowController @interface DeletionOptions : NSWindowController
{ {
IBOutlet NSTextField *messageTextField;
IBOutlet NSButton *hardlinkButton;
IBOutlet NSButton *directButton;
PyDeletionOptions *model; PyDeletionOptions *model;
NSTextField *messageTextField;
NSButton *hardlinkButton;
NSButton *directButton;
} }
@property (readwrite, retain) NSTextField *messageTextField;
@property (readwrite, retain) NSButton *hardlinkButton;
@property (readwrite, retain) NSButton *directButton;
- (id)initWithPyRef:(PyObject *)aPyRef; - (id)initWithPyRef:(PyObject *)aPyRef;
- (IBAction)updateOptions:(id)sender; - (void)updateOptions;
- (IBAction)proceed:(id)sender; - (void)proceed;
- (IBAction)cancel:(id)sender; - (void)cancel;
@end @end

View File

@ -7,14 +7,20 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import "DeletionOptions.h" #import "DeletionOptions.h"
#import "DeletionOptions_UI.h"
#import "HSPyUtil.h" #import "HSPyUtil.h"
@implementation DeletionOptions @implementation DeletionOptions
@synthesize messageTextField;
@synthesize hardlinkButton;
@synthesize directButton;
- (id)initWithPyRef:(PyObject *)aPyRef - (id)initWithPyRef:(PyObject *)aPyRef
{ {
self = [super initWithWindowNibName:@"DeletionOptions"]; self = [super initWithWindow:nil];
[self window];
model = [[PyDeletionOptions alloc] initWithModel:aPyRef]; model = [[PyDeletionOptions alloc] initWithModel:aPyRef];
[self setWindow:createDeletionOptions_UI(self)];
[model bindCallback:createCallback(@"DeletionOptionsView", self)]; [model bindCallback:createCallback(@"DeletionOptionsView", self)];
return self; return self;
} }
@ -25,18 +31,18 @@ http://www.hardcoded.net/licenses/bsd_license
[super dealloc]; [super dealloc];
} }
- (IBAction)updateOptions:(id)sender - (void)updateOptions
{ {
[model setHardlink:[hardlinkButton state] == NSOnState]; [model setHardlink:[hardlinkButton state] == NSOnState];
[model setDirect:[directButton state] == NSOnState]; [model setDirect:[directButton state] == NSOnState];
} }
- (IBAction)proceed:(id)sender - (void)proceed
{ {
[NSApp stopModalWithCode:NSOKButton]; [NSApp stopModalWithCode:NSOKButton];
} }
- (IBAction)cancel:(id)sender - (void)cancel
{ {
[NSApp stopModalWithCode:NSCancelButton]; [NSApp stopModalWithCode:NSCancelButton];
} }

View File

@ -10,15 +10,19 @@ http://www.hardcoded.net/licenses/bsd_license
#import <Python.h> #import <Python.h>
#import "PyDetailsPanel.h" #import "PyDetailsPanel.h"
@interface DetailsPanel : NSWindowController @interface DetailsPanelBase : NSWindowController <NSTableViewDataSource>
{ {
IBOutlet NSTableView *detailsTable; NSTableView *detailsTable;
PyDetailsPanel *model; PyDetailsPanel *model;
} }
@property (readwrite, retain) NSTableView *detailsTable;
- (id)initWithPyRef:(PyObject *)aPyRef; - (id)initWithPyRef:(PyObject *)aPyRef;
- (PyDetailsPanel *)model; - (PyDetailsPanel *)model;
- (NSWindow *)createWindow;
- (BOOL)isVisible; - (BOOL)isVisible;
- (void)toggleVisibility; - (void)toggleVisibility;

View File

@ -6,14 +6,17 @@ which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license http://www.hardcoded.net/licenses/bsd_license
*/ */
#import "DetailsPanel.h" #import "DetailsPanelBase.h"
#import "HSPyUtil.h" #import "HSPyUtil.h"
@implementation DetailsPanel @implementation DetailsPanelBase
@synthesize detailsTable;
- (id)initWithPyRef:(PyObject *)aPyRef - (id)initWithPyRef:(PyObject *)aPyRef
{ {
self = [super initWithWindowNibName:@"DetailsPanel"]; self = [super initWithWindow:nil];
[self window]; //So the detailsTable is initialized. [self setWindow:[self createWindow]];
model = [[PyDetailsPanel alloc] initWithModel:aPyRef]; model = [[PyDetailsPanel alloc] initWithModel:aPyRef];
[model bindCallback:createCallback(@"DetailsPanelView", self)]; [model bindCallback:createCallback(@"DetailsPanelView", self)];
return self; return self;
@ -30,6 +33,11 @@ http://www.hardcoded.net/licenses/bsd_license
return (PyDetailsPanel *)model; return (PyDetailsPanel *)model;
} }
- (NSWindow *)createWindow
{
return nil; // Virtual
}
- (void)refreshDetails - (void)refreshDetails
{ {
[detailsTable reloadData]; [detailsTable reloadData];

View File

@ -16,27 +16,33 @@ http://www.hardcoded.net/licenses/bsd_license
@interface DirectoryPanel : NSWindowController <NSOpenSavePanelDelegate> @interface DirectoryPanel : NSWindowController <NSOpenSavePanelDelegate>
{ {
IBOutlet NSPopUpButton *addButtonPopUp;
IBOutlet NSPopUpButton *loadRecentButtonPopUp;
IBOutlet HSOutlineView *outlineView;
IBOutlet NSButton *removeButton;
IBOutlet NSButton *loadResultsButton;
AppDelegateBase *_app; AppDelegateBase *_app;
PyDupeGuru *model; PyDupeGuru *model;
HSRecentFiles *_recentDirectories; HSRecentFiles *_recentDirectories;
DirectoryOutline *outline; DirectoryOutline *outline;
BOOL _alwaysShowPopUp; BOOL _alwaysShowPopUp;
NSPopUpButton *addButtonPopUp;
NSPopUpButton *loadRecentButtonPopUp;
HSOutlineView *outlineView;
NSButton *removeButton;
NSButton *loadResultsButton;
} }
@property (readwrite, retain) NSPopUpButton *addButtonPopUp;
@property (readwrite, retain) NSPopUpButton *loadRecentButtonPopUp;
@property (readwrite, retain) HSOutlineView *outlineView;
@property (readwrite, retain) NSButton *removeButton;
@property (readwrite, retain) NSButton *loadResultsButton;
- (id)initWithParentApp:(AppDelegateBase *)aParentApp; - (id)initWithParentApp:(AppDelegateBase *)aParentApp;
- (void)fillPopUpMenu; // Virtual - (void)fillPopUpMenu; // Virtual
- (void)adjustUIToLocalization; - (void)adjustUIToLocalization;
- (IBAction)askForDirectory:(id)sender; - (void)askForDirectory;
- (IBAction)popupAddDirectoryMenu:(id)sender; - (void)popupAddDirectoryMenu:(id)sender;
- (IBAction)popupLoadRecentMenu:(id)sender; - (void)popupLoadRecentMenu:(id)sender;
- (IBAction)removeSelectedDirectory:(id)sender; - (void)removeSelectedDirectory;
- (void)addDirectory:(NSString *)directory; - (void)addDirectory:(NSString *)directory;
- (void)refreshRemoveButtonText; - (void)refreshRemoveButtonText;

View File

@ -7,16 +7,24 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import "DirectoryPanel.h" #import "DirectoryPanel.h"
#import "DirectoryPanel_UI.h"
#import "Dialogs.h" #import "Dialogs.h"
#import "Utils.h" #import "Utils.h"
#import "AppDelegate.h" #import "AppDelegate.h"
#import "Consts.h" #import "Consts.h"
@implementation DirectoryPanel @implementation DirectoryPanel
@synthesize addButtonPopUp;
@synthesize loadRecentButtonPopUp;
@synthesize outlineView;
@synthesize removeButton;
@synthesize loadResultsButton;
- (id)initWithParentApp:(AppDelegateBase *)aParentApp - (id)initWithParentApp:(AppDelegateBase *)aParentApp
{ {
self = [super initWithWindowNibName:@"DirectoryPanel"]; self = [super initWithWindow:nil];
[self window]; [self setWindow:createDirectoryPanel_UI(self)];
_app = aParentApp; _app = aParentApp;
model = [_app model]; model = [_app model];
[[self window] setTitle:[model appName]]; [[self window] setTitle:[model appName]];
@ -47,7 +55,7 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)fillPopUpMenu - (void)fillPopUpMenu
{ {
NSMenu *m = [addButtonPopUp menu]; NSMenu *m = [addButtonPopUp menu];
NSMenuItem *mi = [m addItemWithTitle:TR(@"Add New Folder...") action:@selector(askForDirectory:) keyEquivalent:@""]; NSMenuItem *mi = [m addItemWithTitle:TR(@"Add New Folder...") action:@selector(askForDirectory) keyEquivalent:@""];
[mi setTarget:self]; [mi setTarget:self];
[m addItem:[NSMenuItem separatorItem]]; [m addItem:[NSMenuItem separatorItem]];
} }
@ -75,7 +83,7 @@ http://www.hardcoded.net/licenses/bsd_license
/* Actions */ /* Actions */
- (IBAction)askForDirectory:(id)sender - (void)askForDirectory
{ {
NSOpenPanel *op = [NSOpenPanel openPanel]; NSOpenPanel *op = [NSOpenPanel openPanel];
[op setCanChooseFiles:YES]; [op setCanChooseFiles:YES];
@ -90,10 +98,10 @@ http://www.hardcoded.net/licenses/bsd_license
} }
} }
- (IBAction)popupAddDirectoryMenu:(id)sender - (void)popupAddDirectoryMenu:(id)sender
{ {
if ((!_alwaysShowPopUp) && ([[_recentDirectories filepaths] count] == 0)) { if ((!_alwaysShowPopUp) && ([[_recentDirectories filepaths] count] == 0)) {
[self askForDirectory:sender]; [self askForDirectory];
} }
else { else {
[addButtonPopUp selectItem:nil]; [addButtonPopUp selectItem:nil];
@ -101,14 +109,14 @@ http://www.hardcoded.net/licenses/bsd_license
} }
} }
- (IBAction)popupLoadRecentMenu:(id)sender - (void)popupLoadRecentMenu:(id)sender
{ {
if ([[[_app recentResults] filepaths] count] > 0) { if ([[[_app recentResults] filepaths] count] > 0) {
NSMenu *m = [loadRecentButtonPopUp menu]; NSMenu *m = [loadRecentButtonPopUp menu];
while ([m numberOfItems] > 0) { while ([m numberOfItems] > 0) {
[m removeItemAtIndex:0]; [m removeItemAtIndex:0];
} }
NSMenuItem *mi = [m addItemWithTitle:TR(@"Load from file...") action:@selector(loadResults:) keyEquivalent:@""]; NSMenuItem *mi = [m addItemWithTitle:TR(@"Load from file...") action:@selector(loadResults) keyEquivalent:@""];
[mi setTarget:_app]; [mi setTarget:_app];
[m addItem:[NSMenuItem separatorItem]]; [m addItem:[NSMenuItem separatorItem]];
[[_app recentResults] fillMenu:m]; [[_app recentResults] fillMenu:m];
@ -116,11 +124,11 @@ http://www.hardcoded.net/licenses/bsd_license
[[loadRecentButtonPopUp cell] performClickWithFrame:[sender frame] inView:[sender superview]]; [[loadRecentButtonPopUp cell] performClickWithFrame:[sender frame] inView:[sender superview]];
} }
else { else {
[_app loadResults:nil]; [_app loadResults];
} }
} }
- (IBAction)removeSelectedDirectory:(id)sender - (void)removeSelectedDirectory
{ {
[[self window] makeKeyAndOrderFront:nil]; [[self window] makeKeyAndOrderFront:nil];
[[outline model] removeSelectedDirectory]; [[outline model] removeSelectedDirectory];

View File

@ -12,14 +12,14 @@ http://www.hardcoded.net/licenses/bsd_license
@interface IgnoreListDialog : NSWindowController @interface IgnoreListDialog : NSWindowController
{ {
IBOutlet NSTableView *ignoreListTableView;
PyIgnoreListDialog *model; PyIgnoreListDialog *model;
HSTable *ignoreListTable; HSTable *ignoreListTable;
NSTableView *ignoreListTableView;
} }
- (id)initWithPyRef:(PyObject *)aPyRef;
@property (readwrite, retain) PyIgnoreListDialog *model;
@property (readwrite, retain) NSTableView *ignoreListTableView;
- (id)initWithPyRef:(PyObject *)aPyRef;
- (void)initializeColumns; - (void)initializeColumns;
- (IBAction)removeSelected:(id)sender;
- (IBAction)clear:(id)sender;
@end @end

View File

@ -7,15 +7,20 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import "IgnoreListDialog.h" #import "IgnoreListDialog.h"
#import "IgnoreListDialog_UI.h"
#import "HSPyUtil.h" #import "HSPyUtil.h"
@implementation IgnoreListDialog @implementation IgnoreListDialog
@synthesize model;
@synthesize ignoreListTableView;
- (id)initWithPyRef:(PyObject *)aPyRef - (id)initWithPyRef:(PyObject *)aPyRef
{ {
self = [super initWithWindowNibName:@"IgnoreListDialog"]; self = [super initWithWindow:nil];
[self window]; //So the detailsTable is initialized. self.model = [[[PyIgnoreListDialog alloc] initWithModel:aPyRef] autorelease];
model = [[PyIgnoreListDialog alloc] initWithModel:aPyRef]; [self.model bindCallback:createCallback(@"IgnoreListDialogView", self)];
[model bindCallback:createCallback(@"IgnoreListDialogView", self)]; [self setWindow:createIgnoreListDialog_UI(self)];
ignoreListTable = [[HSTable alloc] initWithPyRef:[model ignoreListTable] tableView:ignoreListTableView]; ignoreListTable = [[HSTable alloc] initWithPyRef:[model ignoreListTable] tableView:ignoreListTableView];
[self initializeColumns]; [self initializeColumns];
return self; return self;
@ -24,7 +29,6 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)dealloc - (void)dealloc
{ {
[ignoreListTable release]; [ignoreListTable release];
[model release];
[super dealloc]; [super dealloc];
} }
@ -39,16 +43,6 @@ http://www.hardcoded.net/licenses/bsd_license
[[ignoreListTable columns] setColumnsAsReadOnly]; [[ignoreListTable columns] setColumnsAsReadOnly];
} }
- (IBAction)removeSelected:(id)sender
{
[model removeSelected];
}
- (IBAction)clear:(id)sender
{
[model clear];
}
/* model --> view */ /* model --> view */
- (void)show - (void)show
{ {

View File

@ -15,20 +15,23 @@ http://www.hardcoded.net/licenses/bsd_license
@interface PrioritizeDialog : NSWindowController @interface PrioritizeDialog : NSWindowController
{ {
IBOutlet NSPopUpButton *categoryPopUpView; NSPopUpButton *categoryPopUpView;
IBOutlet NSTableView *criteriaTableView; NSTableView *criteriaTableView;
IBOutlet NSTableView *prioritizationTableView; NSTableView *prioritizationTableView;
PyPrioritizeDialog *model; PyPrioritizeDialog *model;
HSPopUpList *categoryPopUp; HSPopUpList *categoryPopUp;
HSSelectableList *criteriaList; HSSelectableList *criteriaList;
PrioritizeList *prioritizationList; PrioritizeList *prioritizationList;
} }
@property (readwrite, retain) NSPopUpButton *categoryPopUpView;
@property (readwrite, retain) NSTableView *criteriaTableView;
@property (readwrite, retain) NSTableView *prioritizationTableView;
- (id)initWithApp:(PyDupeGuru *)aApp; - (id)initWithApp:(PyDupeGuru *)aApp;
- (PyPrioritizeDialog *)model; - (PyPrioritizeDialog *)model;
- (IBAction)addSelected:(id)sender; - (void)ok;
- (IBAction)removeSelected:(id)sender; - (void)cancel;
- (IBAction)ok:(id)sender;
- (IBAction)cancel:(id)sender;
@end; @end;

View File

@ -7,14 +7,20 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import "PrioritizeDialog.h" #import "PrioritizeDialog.h"
#import "PrioritizeDialog_UI.h"
#import "HSPyUtil.h" #import "HSPyUtil.h"
@implementation PrioritizeDialog @implementation PrioritizeDialog
@synthesize categoryPopUpView;
@synthesize criteriaTableView;
@synthesize prioritizationTableView;
- (id)initWithApp:(PyDupeGuru *)aApp - (id)initWithApp:(PyDupeGuru *)aApp
{ {
self = [super initWithWindowNibName:@"PrioritizeDialog"]; self = [super initWithWindowNibName:@"PrioritizeDialog"];
[self window];
model = [[PyPrioritizeDialog alloc] initWithApp:[aApp pyRef]]; model = [[PyPrioritizeDialog alloc] initWithApp:[aApp pyRef]];
[self setWindow:createPrioritizeDialog_UI(self)];
categoryPopUp = [[HSPopUpList alloc] initWithPyRef:[[self model] categoryList] popupView:categoryPopUpView]; categoryPopUp = [[HSPopUpList alloc] initWithPyRef:[[self model] categoryList] popupView:categoryPopUpView];
criteriaList = [[HSSelectableList alloc] initWithPyRef:[[self model] criteriaList] tableView:criteriaTableView]; criteriaList = [[HSSelectableList alloc] initWithPyRef:[[self model] criteriaList] tableView:criteriaTableView];
prioritizationList = [[PrioritizeList alloc] initWithPyRef:[[self model] prioritizationList] tableView:prioritizationTableView]; prioritizationList = [[PrioritizeList alloc] initWithPyRef:[[self model] prioritizationList] tableView:prioritizationTableView];
@ -36,23 +42,13 @@ http://www.hardcoded.net/licenses/bsd_license
return (PyPrioritizeDialog *)model; return (PyPrioritizeDialog *)model;
} }
- (IBAction)addSelected:(id)sender - (void)ok
{
[[self model] addSelected];
}
- (IBAction)removeSelected:(id)sender
{
[[self model] removeSelected];
}
- (IBAction)ok:(id)sender
{ {
[NSApp stopModal]; [NSApp stopModal];
[self close]; [self close];
} }
- (IBAction)cancel:(id)sender - (void)cancel
{ {
[NSApp abortModal]; [NSApp abortModal];
[self close]; [self close];

View File

@ -12,13 +12,15 @@ http://www.hardcoded.net/licenses/bsd_license
@interface ProblemDialog : NSWindowController @interface ProblemDialog : NSWindowController
{ {
IBOutlet NSTableView *problemTableView;
PyProblemDialog *model; PyProblemDialog *model;
HSTable *problemTable; HSTable *problemTable;
NSTableView *problemTableView;
} }
@property (readwrite, retain) PyProblemDialog *model;
@property (readwrite, retain) NSTableView *problemTableView;
- (id)initWithPyRef:(PyObject *)aPyRef; - (id)initWithPyRef:(PyObject *)aPyRef;
- (void)initializeColumns; - (void)initializeColumns;
- (IBAction)revealSelected:(id)sender;
@end @end

View File

@ -7,15 +7,20 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import "ProblemDialog.h" #import "ProblemDialog.h"
#import "ProblemDialog_UI.h"
#import "Utils.h" #import "Utils.h"
@implementation ProblemDialog @implementation ProblemDialog
@synthesize model;
@synthesize problemTableView;
- (id)initWithPyRef:(PyObject *)aPyRef - (id)initWithPyRef:(PyObject *)aPyRef
{ {
self = [super initWithWindowNibName:@"ProblemDialog"]; self = [super initWithWindow:nil];
[self window]; //So the detailsTable is initialized. self.model = [[PyProblemDialog alloc] initWithModel:aPyRef];
model = [[PyProblemDialog alloc] initWithModel:aPyRef]; [self setWindow:createProblemDialog_UI(self)];
problemTable = [[HSTable alloc] initWithPyRef:[model problemTable] tableView:problemTableView]; problemTable = [[HSTable alloc] initWithPyRef:[self.model problemTable] tableView:problemTableView];
[self initializeColumns]; [self initializeColumns];
return self; return self;
} }
@ -23,7 +28,6 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)dealloc - (void)dealloc
{ {
[problemTable release]; [problemTable release];
[model release];
[super dealloc]; [super dealloc];
} }
@ -35,10 +39,6 @@ http://www.hardcoded.net/licenses/bsd_license
nil nil
}; };
[[problemTable columns] initializeColumns:defs]; [[problemTable columns] initializeColumns:defs];
} [[problemTable columns] setColumnsAsReadOnly];
- (IBAction)revealSelected:(id)sender
{
[model revealSelected];
} }
@end @end

View File

@ -20,21 +20,27 @@ http://www.hardcoded.net/licenses/bsd_license
@interface ResultWindowBase : NSWindowController @interface ResultWindowBase : NSWindowController
{ {
@protected @protected
IBOutlet NSSegmentedControl *optionsSwitch; NSSegmentedControl *optionsSwitch;
IBOutlet NSToolbarItem *optionsToolbarItem; NSToolbarItem *optionsToolbarItem;
IBOutlet HSTableView *matches; HSTableView *matches;
IBOutlet NSTextField *stats; NSTextField *stats;
IBOutlet NSSearchField *filterField; NSSearchField *filterField;
AppDelegateBase *app; AppDelegateBase *app;
PyDupeGuru *model; PyDupeGuru *model;
NSMenu *columnsMenu;
ResultTable *table; ResultTable *table;
StatsLabel *statsLabel; StatsLabel *statsLabel;
ProblemDialog *problemDialog; ProblemDialog *problemDialog;
DeletionOptions *deletionOptions; DeletionOptions *deletionOptions;
QLPreviewPanel* previewPanel; QLPreviewPanel* previewPanel;
} }
@property (readwrite, retain) NSSegmentedControl *optionsSwitch;
@property (readwrite, retain) NSToolbarItem *optionsToolbarItem;
@property (readwrite, retain) HSTableView *matches;
@property (readwrite, retain) NSTextField *stats;
@property (readwrite, retain) NSSearchField *filterField;
- (id)initWithParentApp:(AppDelegateBase *)app; - (id)initWithParentApp:(AppDelegateBase *)app;
/* Virtual */ /* Virtual */
@ -48,33 +54,33 @@ http://www.hardcoded.net/licenses/bsd_license
- (void)adjustUIToLocalization; - (void)adjustUIToLocalization;
/* Actions */ /* Actions */
- (IBAction)changeOptions:(id)sender; - (void)changeOptions;
- (IBAction)copyMarked:(id)sender; - (void)copyMarked;
- (IBAction)trashMarked:(id)sender; - (void)trashMarked;
- (IBAction)exportToXHTML:(id)sender; - (void)exportToXHTML;
- (IBAction)filter:(id)sender; - (void)filter;
- (IBAction)focusOnFilterField:(id)sender; - (void)focusOnFilterField;
- (IBAction)ignoreSelected:(id)sender; - (void)ignoreSelected;
- (IBAction)invokeCustomCommand:(id)sender; - (void)invokeCustomCommand;
- (IBAction)markAll:(id)sender; - (void)markAll;
- (IBAction)markInvert:(id)sender; - (void)markInvert;
- (IBAction)markNone:(id)sender; - (void)markNone;
- (IBAction)markSelected:(id)sender; - (void)markSelected;
- (IBAction)moveMarked:(id)sender; - (void)moveMarked;
- (IBAction)openClicked:(id)sender; - (void)openClicked;
- (IBAction)openSelected:(id)sender; - (void)openSelected;
- (IBAction)removeMarked:(id)sender; - (void)removeMarked;
- (IBAction)removeSelected:(id)sender; - (void)removeSelected;
- (IBAction)renameSelected:(id)sender; - (void)renameSelected;
- (IBAction)reprioritizeResults:(id)sender; - (void)reprioritizeResults;
- (IBAction)resetColumnsToDefault:(id)sender; - (void)resetColumnsToDefault;
- (IBAction)revealSelected:(id)sender; - (void)revealSelected;
- (IBAction)saveResults:(id)sender; - (void)saveResults;
- (IBAction)startDuplicateScan:(id)sender; - (void)startDuplicateScan;
- (IBAction)switchSelected:(id)sender; - (void)switchSelected;
- (IBAction)toggleColumn:(id)sender; - (void)toggleColumn:(id)sender;
- (IBAction)toggleDelta:(id)sender; - (void)toggleDelta;
- (IBAction)toggleDetailsPanel:(id)sender; - (void)toggleDetailsPanel;
- (IBAction)togglePowerMarker:(id)sender; - (void)togglePowerMarker;
- (IBAction)toggleQuicklookPanel:(id)sender; - (void)toggleQuicklookPanel;
@end @end

View File

@ -7,6 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import "ResultWindow.h" #import "ResultWindow.h"
#import "ResultWindow_UI.h"
#import "Dialogs.h" #import "Dialogs.h"
#import "ProgressController.h" #import "ProgressController.h"
#import "Utils.h" #import "Utils.h"
@ -15,13 +16,20 @@ http://www.hardcoded.net/licenses/bsd_license
#import "PrioritizeDialog.h" #import "PrioritizeDialog.h"
@implementation ResultWindowBase @implementation ResultWindowBase
@synthesize optionsSwitch;
@synthesize optionsToolbarItem;
@synthesize matches;
@synthesize stats;
@synthesize filterField;
- (id)initWithParentApp:(AppDelegateBase *)aApp; - (id)initWithParentApp:(AppDelegateBase *)aApp;
{ {
self = [super initWithWindowNibName:@"ResultWindow"]; self = [super initWithWindow:nil];
app = aApp; app = aApp;
model = [app model]; model = [app model];
[self setWindow:createResultWindow_UI(self)];
[[self window] setTitle:fmt(@"%@ Results", [model appName])]; [[self window] setTitle:fmt(@"%@ Results", [model appName])];
columnsMenu = [app columnsMenu];
/* Put a cute iTunes-like bottom bar */ /* Put a cute iTunes-like bottom bar */
[[self window] setContentBorderThickness:28 forEdge:NSMinYEdge]; [[self window] setContentBorderThickness:28 forEdge:NSMinYEdge];
table = [[ResultTable alloc] initWithPyRef:[model resultTable] view:matches]; table = [[ResultTable alloc] initWithPyRef:[model resultTable] view:matches];
@ -31,7 +39,7 @@ http://www.hardcoded.net/licenses/bsd_license
[self initResultColumns]; [self initResultColumns];
[self fillColumnsMenu]; [self fillColumnsMenu];
[matches setTarget:self]; [matches setTarget:self];
[matches setDoubleAction:@selector(openClicked:)]; [matches setDoubleAction:@selector(openClicked)];
[self adjustUIToLocalization]; [self adjustUIToLocalization];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobStarted:) name:JobStarted object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobStarted:) name:JobStarted object:nil];
@ -64,14 +72,14 @@ http://www.hardcoded.net/licenses/bsd_license
NSArray *pair = [menuItems objectAtIndex:i]; NSArray *pair = [menuItems objectAtIndex:i];
NSString *display = [pair objectAtIndex:0]; NSString *display = [pair objectAtIndex:0];
BOOL marked = n2b([pair objectAtIndex:1]); BOOL marked = n2b([pair objectAtIndex:1]);
NSMenuItem *mi = [columnsMenu addItemWithTitle:display action:@selector(toggleColumn:) keyEquivalent:@""]; NSMenuItem *mi = [[app columnsMenu] addItemWithTitle:display action:@selector(toggleColumn:) keyEquivalent:@""];
[mi setTarget:self]; [mi setTarget:self];
[mi setState:marked ? NSOnState : NSOffState]; [mi setState:marked ? NSOnState : NSOffState];
[mi setTag:i]; [mi setTag:i];
} }
[columnsMenu addItem:[NSMenuItem separatorItem]]; [[app columnsMenu] addItem:[NSMenuItem separatorItem]];
NSMenuItem *mi = [columnsMenu addItemWithTitle:TR(@"Reset to Default") NSMenuItem *mi = [[app columnsMenu] addItemWithTitle:TR(@"Reset to Default")
action:@selector(resetColumnsToDefault:) keyEquivalent:@""]; action:@selector(resetColumnsToDefault) keyEquivalent:@""];
[mi setTarget:self]; [mi setTarget:self];
} }
@ -112,21 +120,21 @@ http://www.hardcoded.net/licenses/bsd_license
} }
/* Actions */ /* Actions */
- (IBAction)changeOptions:(id)sender - (void)changeOptions
{ {
NSInteger seg = [optionsSwitch selectedSegment]; NSInteger seg = [optionsSwitch selectedSegment];
if (seg == 0) { if (seg == 0) {
[self toggleDetailsPanel:sender]; [self toggleDetailsPanel];
} }
else if (seg == 1) { else if (seg == 1) {
[self togglePowerMarker:sender]; [self togglePowerMarker];
} }
else if (seg == 2) { else if (seg == 2) {
[self toggleDelta:sender]; [self toggleDelta];
} }
} }
- (IBAction)copyMarked:(id)sender - (void)copyMarked
{ {
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
@ -134,62 +142,62 @@ http://www.hardcoded.net/licenses/bsd_license
[model copyMarked]; [model copyMarked];
} }
- (IBAction)trashMarked:(id)sender - (void)trashMarked
{ {
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
[model deleteMarked]; [model deleteMarked];
} }
- (IBAction)exportToXHTML:(id)sender - (void)exportToXHTML
{ {
NSString *exported = [model exportToXHTML]; NSString *exported = [model exportToXHTML];
[[NSWorkspace sharedWorkspace] openFile:exported]; [[NSWorkspace sharedWorkspace] openFile:exported];
} }
- (IBAction)filter:(id)sender - (void)filter
{ {
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[model setEscapeFilterRegexp:!n2b([ud objectForKey:@"useRegexpFilter"])]; [model setEscapeFilterRegexp:!n2b([ud objectForKey:@"useRegexpFilter"])];
[model applyFilter:[filterField stringValue]]; [model applyFilter:[filterField stringValue]];
} }
- (IBAction)focusOnFilterField:(id)sender - (void)focusOnFilterField
{ {
[[self window] makeFirstResponder:filterField]; [[self window] makeFirstResponder:filterField];
} }
- (IBAction)ignoreSelected:(id)sender - (void)ignoreSelected
{ {
[model addSelectedToIgnoreList]; [model addSelectedToIgnoreList];
} }
- (IBAction)invokeCustomCommand:(id)sender - (void)invokeCustomCommand
{ {
[model invokeCustomCommand]; [model invokeCustomCommand];
} }
- (IBAction)markAll:(id)sender - (void)markAll
{ {
[model markAll]; [model markAll];
} }
- (IBAction)markInvert:(id)sender - (void)markInvert
{ {
[model markInvert]; [model markInvert];
} }
- (IBAction)markNone:(id)sender - (void)markNone
{ {
[model markNone]; [model markNone];
} }
- (IBAction)markSelected:(id)sender - (void)markSelected
{ {
[model toggleSelectedMark]; [model toggleSelectedMark];
} }
- (IBAction)moveMarked:(id)sender - (void)moveMarked
{ {
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
@ -197,7 +205,7 @@ http://www.hardcoded.net/licenses/bsd_license
[model moveMarked]; [model moveMarked];
} }
- (IBAction)openClicked:(id)sender - (void)openClicked
{ {
if ([matches clickedRow] < 0) { if ([matches clickedRow] < 0) {
return; return;
@ -206,29 +214,29 @@ http://www.hardcoded.net/licenses/bsd_license
[model openSelected]; [model openSelected];
} }
- (IBAction)openSelected:(id)sender - (void)openSelected
{ {
[model openSelected]; [model openSelected];
} }
- (IBAction)removeMarked:(id)sender - (void)removeMarked
{ {
[model removeMarked]; [model removeMarked];
} }
- (IBAction)removeSelected:(id)sender - (void)removeSelected
{ {
[model removeSelected]; [model removeSelected];
} }
- (IBAction)renameSelected:(id)sender - (void)renameSelected
{ {
NSInteger col = [matches columnWithIdentifier:@"0"]; NSInteger col = [matches columnWithIdentifier:@"0"];
NSInteger row = [matches selectedRow]; NSInteger row = [matches selectedRow];
[matches editColumn:col row:row withEvent:[NSApp currentEvent] select:YES]; [matches editColumn:col row:row withEvent:[NSApp currentEvent] select:YES];
} }
- (IBAction)reprioritizeResults:(id)sender - (void)reprioritizeResults
{ {
PrioritizeDialog *dlg = [[PrioritizeDialog alloc] initWithApp:model]; PrioritizeDialog *dlg = [[PrioritizeDialog alloc] initWithApp:model];
NSInteger result = [NSApp runModalForWindow:[dlg window]]; NSInteger result = [NSApp runModalForWindow:[dlg window]];
@ -239,17 +247,17 @@ http://www.hardcoded.net/licenses/bsd_license
[[self window] makeKeyAndOrderFront:nil]; [[self window] makeKeyAndOrderFront:nil];
} }
- (IBAction)resetColumnsToDefault:(id)sender - (void)resetColumnsToDefault
{ {
[[[table columns] model] resetToDefaults]; [[[table columns] model] resetToDefaults];
} }
- (IBAction)revealSelected:(id)sender - (void)revealSelected
{ {
[model revealSelected]; [model revealSelected];
} }
- (IBAction)saveResults:(id)sender - (void)saveResults
{ {
NSSavePanel *sp = [NSSavePanel savePanel]; NSSavePanel *sp = [NSSavePanel savePanel];
[sp setCanCreateDirectories:YES]; [sp setCanCreateDirectories:YES];
@ -261,7 +269,7 @@ http://www.hardcoded.net/licenses/bsd_license
} }
} }
- (IBAction)startDuplicateScan:(id)sender - (void)startDuplicateScan
{ {
if ([model resultsAreModified]) { if ([model resultsAreModified]) {
if ([Dialogs askYesNo:TR(@"You have unsaved results, do you really want to continue?")] == NSAlertSecondButtonReturn) // NO if ([Dialogs askYesNo:TR(@"You have unsaved results, do you really want to continue?")] == NSAlertSecondButtonReturn) // NO
@ -271,37 +279,37 @@ http://www.hardcoded.net/licenses/bsd_license
[model doScan]; [model doScan];
} }
- (IBAction)switchSelected:(id)sender - (void)switchSelected
{ {
[model makeSelectedReference]; [model makeSelectedReference];
} }
- (IBAction)toggleColumn:(id)sender - (void)toggleColumn:(id)sender
{ {
NSMenuItem *mi = sender; NSMenuItem *mi = sender;
BOOL checked = [[[table columns] model] toggleMenuItem:[mi tag]]; BOOL checked = [[[table columns] model] toggleMenuItem:[mi tag]];
[mi setState:checked ? NSOnState : NSOffState]; [mi setState:checked ? NSOnState : NSOffState];
} }
- (IBAction)toggleDetailsPanel:(id)sender - (void)toggleDetailsPanel
{ {
[[app detailsPanel] toggleVisibility]; [[app detailsPanel] toggleVisibility];
[self updateOptionSegments]; [self updateOptionSegments];
} }
- (IBAction)toggleDelta:(id)sender - (void)toggleDelta
{ {
[table setDeltaValuesMode:![table deltaValuesMode]]; [table setDeltaValuesMode:![table deltaValuesMode]];
[self updateOptionSegments]; [self updateOptionSegments];
} }
- (IBAction)togglePowerMarker:(id)sender - (void)togglePowerMarker
{ {
[table setPowerMarkerMode:![table powerMarkerMode]]; [table setPowerMarkerMode:![table powerMarkerMode]];
[self updateOptionSegments]; [self updateOptionSegments];
} }
- (IBAction)toggleQuicklookPanel:(id)sender - (void)toggleQuicklookPanel
{ {
if ([QLPreviewPanel sharedPreviewPanelExists] && [[QLPreviewPanel sharedPreviewPanel] isVisible]) { if ([QLPreviewPanel sharedPreviewPanelExists] && [[QLPreviewPanel sharedPreviewPanel] isVisible]) {
[[QLPreviewPanel sharedPreviewPanel] orderOut:nil]; [[QLPreviewPanel sharedPreviewPanel] orderOut:nil];

View File

@ -1,21 +0,0 @@

/* Class = "NSWindow"; title = "Deletion Options"; ObjectID = "1"; */
"1.title" = "Deletion Options";
/* Class = "NSButtonCell"; title = "Hardlink deleted files"; ObjectID = "4"; */
"4.title" = "Hardlink deleted files";
/* Class = "NSTextFieldCell"; title = "After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file."; ObjectID = "8"; */
"8.title" = "After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file.";
/* Class = "NSButtonCell"; title = "Directly delete files"; ObjectID = "36"; */
"36.title" = "Directly delete files";
/* Class = "NSTextFieldCell"; title = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work."; ObjectID = "38"; */
"38.title" = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work.";
/* Class = "NSButtonCell"; title = "Proceed"; ObjectID = "40"; */
"40.title" = "Proceed";
/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "42"; */
"42.title" = "Cancel";

View File

@ -1,556 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11E53</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.47</string>
<string key="IBDocument.HIToolboxVersion">569.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">2182</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSTextField</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
<string>NSTextFieldCell</string>
<string>NSButtonCell</string>
<string>NSButton</string>
<string>NSCustomObject</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="NSCustomObject" id="1001">
<string key="NSClassName">DeletionOptions</string>
</object>
<object class="NSCustomObject" id="1003">
<string key="NSClassName">FirstResponder</string>
</object>
<object class="NSCustomObject" id="1004">
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="1005">
<int key="NSWindowStyleMask">3</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{196, 240}, {449, 215}}</string>
<int key="NSWTFlags">1618477056</int>
<string key="NSWindowTitle">Deletion Options</string>
<string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<object class="NSView" key="NSWindowView" id="1006">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSButton" id="22939991">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 154}, {413, 18}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="258896148"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="199073808">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Hardlink deleted files</string>
<object class="NSFont" key="NSSupport" id="672375986">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="22939991"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<object class="NSCustomResource" key="NSNormalImage" id="28662763">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSSwitch</string>
</object>
<object class="NSButtonImageSource" key="NSAlternateImage" id="1065109393">
<string key="NSImageName">NSSwitch</string>
</object>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="1003638083">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{18, 96}, {413, 18}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="316971589"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="791836143">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">0</int>
<string key="NSContents">Directly delete files</string>
<reference key="NSSupport" ref="672375986"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="1003638083"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">2</int>
<reference key="NSNormalImage" ref="28662763"/>
<reference key="NSAlternateImage" ref="1065109393"/>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSTextField" id="258896148">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{38, 120}, {394, 28}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1003638083"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSAntiCompressionPriority">{250, 750}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="939395720">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">272629760</int>
<string key="NSContents">After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file.</string>
<object class="NSFont" key="NSSupport" id="1067329392">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">16</int>
</object>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="258896148"/>
<object class="NSColor" key="NSBackgroundColor" id="360163505">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="819030839">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
</object>
<object class="NSTextField" id="316971589">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{38, 48}, {394, 42}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="375232713"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<string key="NSAntiCompressionPriority">{250, 750}</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="404549205">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">272629760</int>
<string key="NSContents">Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work.</string>
<reference key="NSSupport" ref="1067329392"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="316971589"/>
<reference key="NSBackgroundColor" ref="360163505"/>
<reference key="NSTextColor" ref="819030839"/>
</object>
</object>
<object class="NSButton" id="630940386">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{331, 12}, {104, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="551779024">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Proceed</string>
<reference key="NSSupport" ref="672375986"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="630940386"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="375232713">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{227, 12}, {104, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="630940386"/>
<string key="NSReuseIdentifierKey">_NS:9</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="311692270">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Cancel</string>
<reference key="NSSupport" ref="672375986"/>
<string key="NSCellIdentifier">_NS:9</string>
<reference key="NSControlView" ref="375232713"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSTextField" id="275527426">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 178}, {415, 17}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="22939991"/>
<string key="NSReuseIdentifierKey">_NS:1505</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="184485433">
<int key="NSCellFlags">68288064</int>
<int key="NSCellFlags2">272630784</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="672375986"/>
<string key="NSCellIdentifier">_NS:1505</string>
<reference key="NSControlView" ref="275527426"/>
<reference key="NSBackgroundColor" ref="360163505"/>
<reference key="NSTextColor" ref="819030839"/>
</object>
</object>
</array>
<string key="NSFrameSize">{449, 215}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="275527426"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">NO</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">messageTextField</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="275527426"/>
</object>
<int key="connectionID">45</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">hardlinkButton</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="22939991"/>
</object>
<int key="connectionID">46</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">directButton</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1003638083"/>
</object>
<int key="connectionID">47</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">updateOptions:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="22939991"/>
</object>
<int key="connectionID">48</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">updateOptions:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1003638083"/>
</object>
<int key="connectionID">49</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">cancel:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="375232713"/>
</object>
<int key="connectionID">50</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">proceed:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="630940386"/>
</object>
<int key="connectionID">51</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1005"/>
</object>
<int key="connectionID">52</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="1001"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="1005"/>
<array class="NSMutableArray" key="children">
<reference ref="1006"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="1006"/>
<array class="NSMutableArray" key="children">
<reference ref="275527426"/>
<reference ref="22939991"/>
<reference ref="1003638083"/>
<reference ref="258896148"/>
<reference ref="316971589"/>
<reference ref="630940386"/>
<reference ref="375232713"/>
</array>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="22939991"/>
<array class="NSMutableArray" key="children">
<reference ref="199073808"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="199073808"/>
<reference key="parent" ref="22939991"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="258896148"/>
<array class="NSMutableArray" key="children">
<reference ref="939395720"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="939395720"/>
<reference key="parent" ref="258896148"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">35</int>
<reference key="object" ref="1003638083"/>
<array class="NSMutableArray" key="children">
<reference ref="791836143"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">36</int>
<reference key="object" ref="791836143"/>
<reference key="parent" ref="1003638083"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">37</int>
<reference key="object" ref="316971589"/>
<array class="NSMutableArray" key="children">
<reference ref="404549205"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">38</int>
<reference key="object" ref="404549205"/>
<reference key="parent" ref="316971589"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">39</int>
<reference key="object" ref="630940386"/>
<array class="NSMutableArray" key="children">
<reference ref="551779024"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">40</int>
<reference key="object" ref="551779024"/>
<reference key="parent" ref="630940386"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">41</int>
<reference key="object" ref="375232713"/>
<array class="NSMutableArray" key="children">
<reference ref="311692270"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">42</int>
<reference key="object" ref="311692270"/>
<reference key="parent" ref="375232713"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">43</int>
<reference key="object" ref="275527426"/>
<array class="NSMutableArray" key="children">
<reference ref="184485433"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">44</int>
<reference key="object" ref="184485433"/>
<reference key="parent" ref="275527426"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="1.IBNSWindowAutoPositionCentersHorizontal"/>
<boolean value="YES" key="1.IBNSWindowAutoPositionCentersVertical"/>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBWindowTemplateEditedContentRect">{{357, 418}, {480, 270}}</string>
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="35.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="42.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="43.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="44.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">52</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">DeletionOptions</string>
<string key="superclassName">NSWindowController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="cancel:">id</string>
<string key="proceed:">id</string>
<string key="updateOptions:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="cancel:">
<string key="name">cancel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="proceed:">
<string key="name">proceed:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="updateOptions:">
<string key="name">updateOptions:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="directButton">NSButton</string>
<string key="hardlinkButton">NSButton</string>
<string key="messageTextField">NSTextField</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="directButton">
<string key="name">directButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="hardlinkButton">
<string key="name">hardlinkButton</string>
<string key="candidateClassName">NSButton</string>
</object>
<object class="IBToOneOutletInfo" key="messageTextField">
<string key="name">messageTextField</string>
<string key="candidateClassName">NSTextField</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/DeletionOptions.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NS.key.0">NSSwitch</string>
<string key="NS.object.0">{15, 15}</string>
</object>
</data>
</archive>

View File

@ -1,12 +0,0 @@
/* Class = "NSPanel"; title = "Details of Selected File"; ObjectID = "5"; */
"5.title" = "Details of Selected File";
/* Class = "NSTableColumn"; headerCell.title = "Selected"; ObjectID = "9"; */
"9.headerCell.title" = "Selected";
/* Class = "NSTableColumn"; headerCell.title = "Reference"; ObjectID = "10"; */
"10.headerCell.title" = "Reference";
/* Class = "NSTableColumn"; headerCell.title = "Attribute"; ObjectID = "11"; */
"11.headerCell.title" = "Attribute";

View File

@ -1,519 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11B26</string>
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">1617</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSView</string>
<string>NSCustomObject</string>
<string>NSScrollView</string>
<string>NSWindowTemplate</string>
<string>NSTextFieldCell</string>
<string>NSTableHeaderView</string>
<string>NSTableColumn</string>
<string>NSScroller</string>
<string>NSTableView</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="247693826">
<object class="NSCustomObject" id="449947658">
<string key="NSClassName">DetailsPanel</string>
</object>
<object class="NSCustomObject" id="176092317">
<string key="NSClassName">FirstResponder</string>
</object>
<object class="NSCustomObject" id="492866996">
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="476890502">
<int key="NSWindowStyleMask">155</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{33, 261}, {451, 146}}</string>
<int key="NSWTFlags">-260571136</int>
<string key="NSWindowTitle">Details of Selected File</string>
<object class="NSMutableString" key="NSWindowClass">
<characters key="NS.bytes">NSPanel</characters>
</object>
<object class="NSMutableString" key="NSViewClass">
<characters key="NS.bytes">View</characters>
</object>
<nil key="NSUserInterfaceItemIdentifier"/>
<string key="NSWindowContentMinSize">{451, 146}</string>
<object class="NSView" key="NSWindowView" id="1027711962">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSScrollView" id="362108788">
<reference key="NSNextResponder" ref="1027711962"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSClipView" id="488480549">
<reference key="NSNextResponder" ref="362108788"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTableView" id="251969872">
<reference key="NSNextResponder" ref="488480549"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{449, 128}</string>
<reference key="NSSuperview" ref="488480549"/>
<reference key="NSWindow"/>
<int key="NSTag">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="374654484">
<reference key="NSNextResponder" ref="110085834"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{449, 17}</string>
<reference key="NSSuperview" ref="110085834"/>
<reference key="NSWindow"/>
<reference key="NSTableView" ref="251969872"/>
</object>
<object class="_NSCornerView" key="NSCornerView" id="717380566">
<reference key="NSNextResponder" ref="362108788"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-26, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="362108788"/>
<reference key="NSWindow"/>
</object>
<array class="NSMutableArray" key="NSTableColumns">
<object class="NSTableColumn" id="920315484">
<string key="NSIdentifier">0</string>
<double key="NSWidth">70</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Attribute</string>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<object class="NSColor" key="NSBackgroundColor" id="690482064">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
</object>
<object class="NSColor" key="NSTextColor" id="427935076">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string>
<object class="NSColor" key="NSColor" id="45430568">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="402714943">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="251969872"/>
<object class="NSColor" key="NSBackgroundColor" id="1015576963">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="183338835">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<reference key="NSColor" ref="45430568"/>
</object>
</object>
<int key="NSResizingMask">2</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="251969872"/>
</object>
<object class="NSTableColumn" id="683288430">
<string key="NSIdentifier">1</string>
<double key="NSWidth">198</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Selected</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="690482064"/>
<reference key="NSTextColor" ref="427935076"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="649788063">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="251969872"/>
<reference key="NSBackgroundColor" ref="1015576963"/>
<reference key="NSTextColor" ref="183338835"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="251969872"/>
</object>
<object class="NSTableColumn" id="694550305">
<string key="NSIdentifier">2</string>
<double key="NSWidth">172</double>
<double key="NSMinWidth">56.4755859375</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Reference</string>
<reference key="NSSupport" ref="26"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerColor</string>
<object class="NSColor" key="NSColor" id="666582600">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
<reference key="NSTextColor" ref="427935076"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="915876533">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="251969872"/>
<reference key="NSBackgroundColor" ref="1015576963"/>
<reference key="NSTextColor" ref="183338835"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="251969872"/>
</object>
</array>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<reference key="NSBackgroundColor" ref="666582600"/>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">14</double>
<int key="NSTvFlags">1111523328</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">1</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
</object>
</array>
<string key="NSFrame">{{1, 17}, {449, 128}}</string>
<reference key="NSSuperview" ref="362108788"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="251969872"/>
<reference key="NSDocView" ref="251969872"/>
<reference key="NSBGColor" ref="1015576963"/>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="733942317">
<reference key="NSNextResponder" ref="362108788"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-30, 17}, {15, 129}}</string>
<reference key="NSSuperview" ref="362108788"/>
<reference key="NSWindow"/>
<reference key="NSTarget" ref="362108788"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.89375001192092896</double>
</object>
<object class="NSScroller" id="168632382">
<reference key="NSNextResponder" ref="362108788"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-100, -100}, {394, 15}}</string>
<reference key="NSSuperview" ref="362108788"/>
<reference key="NSWindow"/>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="362108788"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.96332520246505737</double>
</object>
<object class="NSClipView" id="110085834">
<reference key="NSNextResponder" ref="362108788"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<reference ref="374654484"/>
</array>
<string key="NSFrame">{{1, 0}, {449, 17}}</string>
<reference key="NSSuperview" ref="362108788"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="374654484"/>
<reference key="NSDocView" ref="374654484"/>
<reference key="NSBGColor" ref="1015576963"/>
<int key="NScvFlags">4</int>
</object>
<reference ref="717380566"/>
</array>
<string key="NSFrameSize">{451, 146}</string>
<reference key="NSSuperview" ref="1027711962"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="488480549"/>
<int key="NSsFlags">133650</int>
<reference key="NSVScroller" ref="733942317"/>
<reference key="NSHScroller" ref="168632382"/>
<reference key="NSContentView" ref="488480549"/>
<reference key="NSHeaderClipView" ref="110085834"/>
<reference key="NSCornerView" ref="717380566"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBgAAAQYAAAA</bytes>
</object>
</array>
<string key="NSFrameSize">{451, 146}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSMinSize">{451, 162}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<string key="NSFrameAutosaveName">DetailsPanel</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="449947658"/>
<reference key="destination" ref="476890502"/>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">dataSource</string>
<reference key="source" ref="251969872"/>
<reference key="destination" ref="449947658"/>
</object>
<int key="connectionID">21</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">detailsTable</string>
<reference key="source" ref="449947658"/>
<reference key="destination" ref="251969872"/>
</object>
<int key="connectionID">22</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="247693826"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="449947658"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="176092317"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="476890502"/>
<array class="NSMutableArray" key="children">
<reference ref="1027711962"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">details</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="1027711962"/>
<array class="NSMutableArray" key="children">
<reference ref="362108788"/>
</array>
<reference key="parent" ref="476890502"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="362108788"/>
<array class="NSMutableArray" key="children">
<reference ref="251969872"/>
<reference ref="733942317"/>
<reference ref="168632382"/>
<reference ref="374654484"/>
</array>
<reference key="parent" ref="1027711962"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="251969872"/>
<array class="NSMutableArray" key="children">
<reference ref="683288430"/>
<reference ref="694550305"/>
<reference ref="920315484"/>
</array>
<reference key="parent" ref="362108788"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="683288430"/>
<array class="NSMutableArray" key="children">
<reference ref="649788063"/>
</array>
<reference key="parent" ref="251969872"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="694550305"/>
<array class="NSMutableArray" key="children">
<reference ref="915876533"/>
</array>
<reference key="parent" ref="251969872"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="920315484"/>
<array class="NSMutableArray" key="children">
<reference ref="402714943"/>
</array>
<reference key="parent" ref="251969872"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="649788063"/>
<reference key="parent" ref="683288430"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">16</int>
<reference key="object" ref="915876533"/>
<reference key="parent" ref="694550305"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">17</int>
<reference key="object" ref="402714943"/>
<reference key="parent" ref="920315484"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="733942317"/>
<reference key="parent" ref="362108788"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="168632382"/>
<reference key="parent" ref="362108788"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">20</int>
<reference key="object" ref="374654484"/>
<reference key="parent" ref="362108788"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="492866996"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="15.IBShouldRemoveOnLegacySave"/>
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="16.IBShouldRemoveOnLegacySave"/>
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="17.IBShouldRemoveOnLegacySave"/>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="18.IBShouldRemoveOnLegacySave"/>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="19.IBShouldRemoveOnLegacySave"/>
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="20.IBShouldRemoveOnLegacySave"/>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.IBWindowTemplateEditedContentRect">{{109, 671}, {451, 146}}</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">22</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">DetailsPanel</string>
<string key="superclassName">HSWindowController</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">detailsTable</string>
<string key="NS.object.0">NSTableView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">detailsTable</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">detailsTable</string>
<string key="candidateClassName">NSTableView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/DetailsPanel.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">HSWindowController</string>
<string key="superclassName">NSWindowController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/HSWindowController.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1050" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<real value="4100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
</archive>

View File

@ -1,23 +0,0 @@
/* Class = "NSTableColumn"; headerCell.title = "State"; ObjectID = "13"; */
"13.headerCell.title" = "State";
/* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "15"; */
"15.headerCell.title" = "Name";
/* Class = "NSButtonCell"; title = "Scan"; ObjectID = "48"; */
"48.title" = "Scan";
/* Class = "NSMenuItem"; title = "Normal"; ObjectID = "55"; */
"55.title" = "Normal";
/* Class = "NSMenuItem"; title = "Reference"; ObjectID = "56"; */
"56.title" = "Reference";
/* Class = "NSMenuItem"; title = "Excluded"; ObjectID = "57"; */
"57.title" = "Excluded";
/* Class = "NSTextFieldCell"; title = "Select folders to scan and press \"Scan\"."; ObjectID = "71"; */
"71.title" = "Select folders to scan and press \"Scan\".";
/* Class = "NSButtonCell"; title = "Load Results"; ObjectID = "73"; */
"73.title" = "Load Results";

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@

/* Class = "NSWindow"; title = "Ignore List"; ObjectID = "1"; */
"1.title" = "Ignore List";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "Close";
/* Class = "NSButtonCell"; title = "Remove Selected"; ObjectID = "21"; */
"21.title" = "Remove Selected";
/* Class = "NSButtonCell"; title = "Clear"; ObjectID = "28"; */
"28.title" = "Clear";

View File

@ -1,504 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11D50</string>
<string key="IBDocument.InterfaceBuilderVersion">2177</string>
<string key="IBDocument.AppKitVersion">1138.32</string>
<string key="IBDocument.HIToolboxVersion">568.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">2177</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSView</string>
<string>NSTableView</string>
<string>NSScrollView</string>
<string>NSWindowTemplate</string>
<string>NSTableHeaderView</string>
<string>NSButtonCell</string>
<string>NSButton</string>
<string>NSScroller</string>
<string>NSCustomObject</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="NSCustomObject" id="1001">
<string key="NSClassName">IgnoreListDialog</string>
</object>
<object class="NSCustomObject" id="1003">
<string key="NSClassName">FirstResponder</string>
</object>
<object class="NSCustomObject" id="1004">
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="359561441">
<int key="NSWindowStyleMask">11</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{477, 306}, {574, 347}}</string>
<int key="NSWTFlags">1685585920</int>
<string key="NSWindowTitle">Ignore List</string>
<string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<object class="NSView" key="NSWindowView" id="976198330">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSScrollView" id="458371270">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSClipView" id="831830981">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTableView" id="252791348">
<reference key="NSNextResponder" ref="831830981"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{532, 211}</string>
<reference key="NSSuperview" ref="831830981"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="777677330"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="903452051">
<reference key="NSNextResponder" ref="777677330"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{532, 17}</string>
<reference key="NSSuperview" ref="777677330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="564034022"/>
<reference key="NSTableView" ref="252791348"/>
</object>
<object class="_NSCornerView" key="NSCornerView" id="564034022">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="831830981"/>
</object>
<array class="NSMutableArray" key="NSTableColumns"/>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">17</double>
<int key="NSTvFlags">1512046592</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">NO</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
</object>
</array>
<string key="NSFrame">{{1, 17}, {532, 249}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="252791348"/>
<reference key="NSDocView" ref="252791348"/>
<object class="NSColor" key="NSBGColor" id="765209443">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="99096694">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="47224920"/>
<reference key="NSTarget" ref="458371270"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99052132701421802</double>
</object>
<object class="NSScroller" id="47224920">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 154}, {438, 15}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="253286088"/>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="458371270"/>
<string key="NSAction">_doScroller:</string>
<double key="NSCurValue">1</double>
<double key="NSPercent">0.98871331828442433</double>
</object>
<object class="NSClipView" id="777677330">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<reference ref="903452051"/>
</array>
<string key="NSFrame">{{1, 0}, {532, 17}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="903452051"/>
<reference key="NSDocView" ref="903452051"/>
<reference key="NSBGColor" ref="765209443"/>
<int key="NScvFlags">4</int>
</object>
<reference ref="564034022"/>
</array>
<string key="NSFrame">{{20, 60}, {534, 267}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="831830981"/>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="99096694"/>
<reference key="NSHScroller" ref="47224920"/>
<reference key="NSContentView" ref="831830981"/>
<reference key="NSHeaderClipView" ref="777677330"/>
<reference key="NSCornerView" ref="564034022"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
</object>
<object class="NSButton" id="4380169">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{464, 12}, {96, 32}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="373771329">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Close</string>
<object class="NSFont" key="NSSupport" id="680801460">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="4380169"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="253286088">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{14, 12}, {154, 32}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="983148229"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="671547957">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Remove Selected</string>
<reference key="NSSupport" ref="680801460"/>
<reference key="NSControlView" ref="253286088"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="983148229">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{162, 12}, {154, 32}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="4380169"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="409951495">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Clear</string>
<reference key="NSSupport" ref="680801460"/>
<reference key="NSControlView" ref="983148229"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
</array>
<string key="NSFrameSize">{574, 347}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="458371270"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="359561441"/>
</object>
<int key="connectionID">22</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">ignoreListTableView</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="252791348"/>
</object>
<int key="connectionID">30</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">removeSelected:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="253286088"/>
</object>
<int key="connectionID">31</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">clear:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="983148229"/>
</object>
<int key="connectionID">32</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">performClose:</string>
<reference key="source" ref="359561441"/>
<reference key="destination" ref="4380169"/>
</object>
<int key="connectionID">25</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="1001"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="359561441"/>
<array class="NSMutableArray" key="children">
<reference ref="976198330"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="976198330"/>
<array class="NSMutableArray" key="children">
<reference ref="458371270"/>
<reference ref="4380169"/>
<reference ref="253286088"/>
<reference ref="983148229"/>
</array>
<reference key="parent" ref="359561441"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="458371270"/>
<array class="NSMutableArray" key="children">
<reference ref="99096694"/>
<reference ref="47224920"/>
<reference ref="252791348"/>
<reference ref="903452051"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="99096694"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="47224920"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="252791348"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="903452051"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="4380169"/>
<array class="NSMutableArray" key="children">
<reference ref="373771329"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="373771329"/>
<reference key="parent" ref="4380169"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">20</int>
<reference key="object" ref="253286088"/>
<array class="NSMutableArray" key="children">
<reference ref="671547957"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">21</int>
<reference key="object" ref="671547957"/>
<reference key="parent" ref="253286088"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">27</int>
<reference key="object" ref="983148229"/>
<array class="NSMutableArray" key="children">
<reference ref="409951495"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">28</int>
<reference key="object" ref="409951495"/>
<reference key="parent" ref="983148229"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBWindowTemplateEditedContentRect">{{477, 306}, {480, 309}}</string>
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">32</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">IgnoreListDialog</string>
<string key="superclassName">NSWindowController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="clear:">id</string>
<string key="removeSelected:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="clear:">
<string key="name">clear:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="removeSelected:">
<string key="name">removeSelected:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">ignoreListTableView</string>
<string key="NS.object.0">NSTableView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">ignoreListTableView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">ignoreListTableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/IgnoreListDialog.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<real value="4100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
</archive>

View File

@ -25,4 +25,173 @@
"Yes" = "Yes"; "Yes" = "Yes";
"No" = "No"; "No" = "No";
"OK" = "OK"; "OK" = "OK";
/* Details Panel */
"Details of Selected File" = "Details of Selected File";
"Selected" = "Selected";
"Reference" = "Reference";
"Attribute" = "Attribute";
/* Ignore List Dialog */
"Ignore List" = "Ignore List";
"Close" = "Close";
"Remove Selected" = "Remove Selected";
"Clear" = "Clear";
/* Deletion Options */
"Deletion Options" = "Deletion Options";
"Hardlink deleted files" = "Hardlink deleted files";
"After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file." = "After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file.";
"Directly delete files" = "Directly delete files";
"Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work." = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work.";
"Proceed" = "Proceed";
"Cancel" = "Cancel";
/* Problem Dialog */
"Problems!" = "Problems!";
"There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results." = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results.";
"Reveal Selected" = "Reveal Selected";
/* Directory Panel */
"State" = "State";
"Name" = "Name";
"Scan" = "Scan";
"Normal" = "Normal";
"Reference" = "Reference";
"Excluded" = "Excluded";
"Select folders to scan and press \"Scan\"." = "Select folders to scan and press \"Scan\".";
"Load Results" = "Load Results";
/* Prioritize Dialog */
"Re-Prioritize duplicates" = "Re-Prioritize duplicates";
"Ok" = "Ok";
"Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information." = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information.";
/* Results Window */
"dupeGuru Results" = "dupeGuru Results";
"Options" = "Options";
"Filter" = "Filter";
"Action" = "Action";
"Directories" = "Directories";
"Send Marked to Trash..." = "Send Marked to Trash...";
"Move Marked to..." = "Move Marked to...";
"Copy Marked to..." = "Copy Marked to...";
"Remove Marked from Results" = "Remove Marked from Results";
"Remove Selected from Results" = "Remove Selected from Results";
"Add Selected to Ignore List" = "Add Selected to Ignore List";
"Make Selected Reference" = "Make Selected Reference";
"Open Selected with Default Application" = "Open Selected with Default Application";
"Reveal Selected in Finder" = "Reveal Selected in Finder";
"Rename Selected" = "Rename Selected";
"Details" = "Details";
"Dupes Only" = "Dupes Only";
"Delta" = "Delta";
"Add Selected to Ignore List" = "Add Selected to Ignore List";
"Rename Selected" = "Rename Selected";
"Remove Selected from Results" = "Remove Selected from Results";
"Make Selected Reference" = "Make Selected Reference";
"Reveal Selected in Finder" = "Reveal Selected in Finder";
"Open Selected with Default Application" = "Open Selected with Default Application";
"Quick Look" = "Quick Look";
/* Preferences */
"dupeGuru Preferences" = "dupeGuru Preferences";
"More results" = "More results";
"Fewer results" = "Fewer results";
"Filter hardness:" = "Filter hardness:";
"Scan type:" = "Scan type:";
"Content" = "Content";
"Filename" = "Filename";
"Word weighting" = "Word weighting";
"Can mix file kind" = "Can mix file kind";
"Reset to Defaults" = "Reset to Defaults";
"Match similar words" = "Match similar words";
"Copy and Move:" = "Copy and Move:";
"Recreate relative path" = "Recreate relative path";
"Recreate absolute path" = "Recreate absolute path";
"Right in destination" = "Right in destination";
"Automatically check for updates" = "Automatically check for updates";
"Remove empty folders on delete or move" = "Remove empty folders on delete or move";
"Ignore files smaller than:" = "Ignore files smaller than:";
"KB" = "KB";
"Basic" = "Basic";
"Advanced" = "Advanced";
"Use regular expressions when filtering" = "Use regular expressions when filtering";
"Custom command (arguments: %d for dupe, %r for ref):" = "Custom command (arguments: %d for dupe, %r for ref):";
"Ignore duplicates hardlinking to the same file" = "Ignore duplicates hardlinking to the same file";
"Debug mode (restart required)" = "Debug mode (restart required)";
"Folders" = "Folders";
"Font size:" = "Font size:";
"dupeGuru ME Preferences" = "dupeGuru ME Preferences";
"Filename - Fields" = "Filename - Fields";
"Tags" = "Tags";
"Audio Content" = "Audio Content";
"Filename - Fields (No Order)" = "Filename - Fields (No Order)";
"Tags to scan:" = "Tags to scan:";
"Track" = "Track";
"Artist" = "Artist";
"Album" = "Album";
"Title" = "Title";
"Genre" = "Genre";
"Year" = "Year";
"dupeGuru PE Preferences" = "dupeGuru PE Preferences";
"Match pictures of different dimensions" = "Match pictures of different dimensions";
"EXIF Timestamp" = "EXIF Timestamp";
"Contents" = "Contents";
/* Main Menu */
"Bring All to Front" = "Bring All to Front";
"Window" = "Window";
"Minimize" = "Minimize";
"About dupeGuru" = "About dupeGuru";
"Help" = "Help";
"dupeGuru Help" = "dupeGuru Help";
"Hide dupeGuru" = "Hide dupeGuru";
"Quit dupeGuru" = "Quit dupeGuru";
"Hide Others" = "Hide Others";
"Show All" = "Show All";
"Zoom" = "Zoom";
"Details Panel" = "Details Panel";
"Preferences..." = "Preferences...";
"Folder Selection Window" = "Folder Selection Window";
"Actions" = "Actions";
"Send Marked to Trash..." = "Send Marked to Trash...";
"Move Marked to..." = "Move Marked to...";
"Copy Marked to..." = "Copy Marked to...";
"Make Selected Reference" = "Make Selected Reference";
"Remove Marked from Results" = "Remove Marked from Results";
"Remove Selected from Results" = "Remove Selected from Results";
"Columns" = "Columns";
"Open Selected with Default Application" = "Open Selected with Default Application";
"Reveal Selected in Finder" = "Reveal Selected in Finder";
"Add Selected to Ignore List" = "Add Selected to Ignore List";
"Close Window" = "Close Window";
"Start Duplicate Scan" = "Start Duplicate Scan";
"Rename Selected" = "Rename Selected";
"Export Results to XHTML" = "Export Results to XHTML";
"Check for update..." = "Check for update...";
"Mode" = "Mode";
"Show Dupes Only" = "Show Dupes Only";
"Show Delta Values" = "Show Delta Values";
"Edit" = "Edit";
"Cut" = "Cut";
"Copy" = "Copy";
"Paste" = "Paste";
"Mark All" = "Mark All";
"Mark None" = "Mark None";
"Invert Marking" = "Invert Marking";
"Mark Selected" = "Mark Selected";
"dupeGuru Website" = "dupeGuru Website";
"Invoke Custom Command" = "Invoke Custom Command";
"File" = "File";
"Load Results..." = "Load Results...";
"Save Results..." = "Save Results...";
"Load Recent Results" = "Load Recent Results";
"Results Window" = "Results Window";
"Re-Prioritize Results" = "Re-Prioritize Results";
"Quick Look" = "Quick Look";
"Ignore List" = "Ignore List";
"Filter Results..." = "Filter Results...";

View File

@ -1,180 +0,0 @@
/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */
"5.title" = "Bring All to Front";
/* Class = "NSMenuItem"; title = "Window"; ObjectID = "19"; */
"19.title" = "Window";
/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "23"; */
"23.title" = "Minimize";
/* Class = "NSMenu"; title = "Window"; ObjectID = "24"; */
"24.title" = "Window";
/* Class = "NSMenuItem"; title = "About dupeGuru"; ObjectID = "58"; */
"58.title" = "About dupeGuru";
/* Class = "NSMenuItem"; title = "Help"; ObjectID = "103"; */
"103.title" = "Help";
/* Class = "NSMenu"; title = "Help"; ObjectID = "106"; */
"106.title" = "Help";
/* Class = "NSMenuItem"; title = "dupeGuru Help"; ObjectID = "111"; */
"111.title" = "dupeGuru Help";
/* Class = "NSMenuItem"; title = "Hide dupeGuru"; ObjectID = "134"; */
"134.title" = "Hide dupeGuru";
/* Class = "NSMenuItem"; title = "Quit dupeGuru"; ObjectID = "136"; */
"136.title" = "Quit dupeGuru";
/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */
"145.title" = "Hide Others";
/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */
"150.title" = "Show All";
/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "197"; */
"197.title" = "Zoom";
/* Class = "NSMenuItem"; title = "Details Panel"; ObjectID = "398"; */
"398.title" = "Details Panel";
/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "541"; */
"541.title" = "Preferences...";
/* Class = "NSMenuItem"; title = "Folder Selection Window"; ObjectID = "579"; */
"579.title" = "Folder Selection Window";
/* Class = "NSMenuItem"; title = "Actions"; ObjectID = "597"; */
"597.title" = "Actions";
/* Class = "NSMenu"; title = "Actions"; ObjectID = "598"; */
"598.title" = "Actions";
/* Class = "NSMenuItem"; title = "Send Marked to Trash..."; ObjectID = "599"; */
"599.title" = "Send Marked to Trash...";
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "600"; */
"600.title" = "Move Marked to...";
/* Class = "NSMenuItem"; title = "Copy Marked to..."; ObjectID = "601"; */
"601.title" = "Copy Marked to...";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "602"; */
"602.title" = "Make Selected Reference";
/* Class = "NSMenuItem"; title = "Remove Marked from Results"; ObjectID = "603"; */
"603.title" = "Remove Marked from Results";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "605"; */
"605.title" = "Remove Selected from Results";
/* Class = "NSMenuItem"; title = "Columns"; ObjectID = "618"; */
"618.title" = "Columns";
/* Class = "NSMenu"; title = "Columns"; ObjectID = "619"; */
"619.title" = "Columns";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "708"; */
"708.title" = "Open Selected with Default Application";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "710"; */
"710.title" = "Reveal Selected in Finder";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "922"; */
"922.title" = "Add Selected to Ignore List";
/* Class = "NSMenuItem"; title = "Close Window"; ObjectID = "924"; */
"924.title" = "Close Window";
/* Class = "NSMenuItem"; title = "Start Duplicate Scan"; ObjectID = "926"; */
"926.title" = "Start Duplicate Scan";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "933"; */
"933.title" = "Rename Selected";
/* Class = "NSMenuItem"; title = "Export Results to XHTML"; ObjectID = "947"; */
"947.title" = "Export Results to XHTML";
/* Class = "NSMenuItem"; title = "Check for update..."; ObjectID = "950"; */
"950.title" = "Check for update...";
/* Class = "NSMenuItem"; title = "Mode"; ObjectID = "959"; */
"959.title" = "Mode";
/* Class = "NSMenu"; title = "Mode"; ObjectID = "960"; */
"960.title" = "Mode";
/* Class = "NSMenuItem"; title = "Show Dupes Only"; ObjectID = "961"; */
"961.title" = "Show Dupes Only";
/* Class = "NSMenuItem"; title = "Show Delta Values"; ObjectID = "962"; */
"962.title" = "Show Delta Values";
/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "965"; */
"965.title" = "Edit";
/* Class = "NSMenu"; title = "Edit"; ObjectID = "966"; */
"966.title" = "Edit";
/* Class = "NSMenuItem"; title = "Cut"; ObjectID = "985"; */
"985.title" = "Cut";
/* Class = "NSMenuItem"; title = "Copy"; ObjectID = "986"; */
"986.title" = "Copy";
/* Class = "NSMenuItem"; title = "Paste"; ObjectID = "991"; */
"991.title" = "Paste";
/* Class = "NSMenuItem"; title = "Mark All"; ObjectID = "1011"; */
"1011.title" = "Mark All";
/* Class = "NSMenuItem"; title = "Mark None"; ObjectID = "1012"; */
"1012.title" = "Mark None";
/* Class = "NSMenuItem"; title = "Invert Marking"; ObjectID = "1013"; */
"1013.title" = "Invert Marking";
/* Class = "NSMenuItem"; title = "Mark Selected"; ObjectID = "1014"; */
"1014.title" = "Mark Selected";
/* Class = "NSMenuItem"; title = "dupeGuru Website"; ObjectID = "1023"; */
"1023.title" = "dupeGuru Website";
/* Class = "NSMenuItem"; title = "Invoke Custom Command"; ObjectID = "1177"; */
"1177.title" = "Invoke Custom Command";
/* Class = "NSMenuItem"; title = "File"; ObjectID = "1203"; */
"1203.title" = "File";
/* Class = "NSMenu"; title = "File"; ObjectID = "1204"; */
"1204.title" = "File";
/* Class = "NSMenuItem"; title = "Load Results..."; ObjectID = "1205"; */
"1205.title" = "Load Results...";
/* Class = "NSMenuItem"; title = "Save Results..."; ObjectID = "1206"; */
"1206.title" = "Save Results...";
/* Class = "NSMenuItem"; title = "Load Recent Results"; ObjectID = "1239"; */
"1239.title" = "Load Recent Results";
/* Class = "NSMenu"; title = "Load Recent Results"; ObjectID = "1240"; */
"1240.title" = "Load Recent Results";
/* Class = "NSMenuItem"; title = "Results Window"; ObjectID = "1272"; */
"1272.title" = "Results Window";
/* Class = "NSMenuItem"; title = "Re-Prioritize Results"; ObjectID = "1276"; */
"1276.title" = "Re-Prioritize Results";
/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "1280"; */
"1280.title" = "Quick Look";
/* Class = "NSMenuItem"; title = "Ignore List"; ObjectID = "1283"; */
"1283.title" = "Ignore List";
/* Class = "NSMenuItem"; title = "Filter Results..."; ObjectID = "1288"; */
"1288.title" = "Filter Results...";

File diff suppressed because it is too large Load Diff

View File

@ -1,12 +0,0 @@
/* Class = "NSWindow"; title = "Re-Prioritize duplicates"; ObjectID = "1"; */
"1.title" = "Re-Prioritize duplicates";
/* Class = "NSButtonCell"; title = "Ok"; ObjectID = "37"; */
"37.title" = "Ok";
/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "39"; */
"39.title" = "Cancel";
/* Class = "NSTextFieldCell"; title = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information."; ObjectID = "41"; */
"41.title" = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information.";

View File

@ -1,897 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11D50</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.32</string>
<string key="IBDocument.HIToolboxVersion">568.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">2182</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSTextField</string>
<string>NSPopUpButton</string>
<string>NSScroller</string>
<string>NSButton</string>
<string>NSMenu</string>
<string>NSScrollView</string>
<string>NSTextFieldCell</string>
<string>NSButtonCell</string>
<string>NSTableView</string>
<string>NSCustomObject</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
<string>NSPopUpButtonCell</string>
<string>NSTableColumn</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="NSCustomObject" id="1001">
<string key="NSClassName">PrioritizeDialog</string>
</object>
<object class="NSCustomObject" id="1003">
<string key="NSClassName">FirstResponder</string>
</object>
<object class="NSCustomObject" id="1004">
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="1005">
<int key="NSWindowStyleMask">9</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{196, 240}, {609, 401}}</string>
<int key="NSWTFlags">1618477056</int>
<string key="NSWindowTitle">Re-Prioritize duplicates</string>
<string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<object class="NSView" key="NSWindowView" id="1006">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSPopUpButton" id="357095790">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 298}, {268, 26}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="386461059"/>
<string key="NSReuseIdentifierKey">_NS:179</string>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="892922362">
<int key="NSCellFlags">-2076049856</int>
<int key="NSCellFlags2">2048</int>
<object class="NSFont" key="NSSupport" id="591283433">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<string key="NSCellIdentifier">_NS:179</string>
<reference key="NSControlView" ref="357095790"/>
<int key="NSButtonFlags">109199615</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
<nil key="NSMenuItem"/>
<bool key="NSMenuItemRespectAlignment">YES</bool>
<object class="NSMenu" key="NSMenu" id="309249465">
<string key="NSTitle">OtherViews</string>
<array class="NSMutableArray" key="NSMenuItems"/>
<reference key="NSMenuFont" ref="591283433"/>
</object>
<int key="NSSelectedIndex">-1</int>
<int key="NSPreferredEdge">1</int>
<bool key="NSUsesItemFromMenu">YES</bool>
<bool key="NSAltersState">YES</bool>
<int key="NSArrowPosition">2</int>
</object>
</object>
<object class="NSScrollView" id="386461059">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">276</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSClipView" id="991694656">
<reference key="NSNextResponder" ref="386461059"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTableView" id="675311684">
<reference key="NSNextResponder" ref="991694656"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{260, 233}</string>
<reference key="NSSuperview" ref="991694656"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="978953877"/>
<string key="NSReuseIdentifierKey">_NS:1197</string>
<bool key="NSEnabled">YES</bool>
<object class="_NSCornerView" key="NSCornerView">
<nil key="NSNextResponder"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 0}, {16, 17}}</string>
<string key="NSReuseIdentifierKey">_NS:1202</string>
</object>
<array class="NSMutableArray" key="NSTableColumns">
<object class="NSTableColumn" id="331887935">
<double key="NSWidth">257</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
</object>
<object class="NSColor" key="NSTextColor" id="165509352">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string>
<object class="NSColor" key="NSColor" id="95789318">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="252516817">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2560</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="591283433"/>
<reference key="NSControlView" ref="675311684"/>
<object class="NSColor" key="NSBackgroundColor" id="768431893">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor" id="857981892">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="983887457">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<reference key="NSColor" ref="95789318"/>
</object>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="675311684"/>
</object>
</array>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<object class="NSColor" key="NSBackgroundColor" id="949356842">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="NSGridColor" id="353256269">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">17</double>
<int key="NSTvFlags">306184192</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">NO</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
</object>
</array>
<string key="NSFrame">{{1, 1}, {260, 233}}</string>
<reference key="NSSuperview" ref="386461059"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="675311684"/>
<string key="NSReuseIdentifierKey">_NS:1195</string>
<reference key="NSDocView" ref="675311684"/>
<reference key="NSBGColor" ref="768431893"/>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="978953877">
<reference key="NSNextResponder" ref="386461059"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
<reference key="NSSuperview" ref="386461059"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1055237002"/>
<string key="NSReuseIdentifierKey">_NS:1214</string>
<reference key="NSTarget" ref="386461059"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.9925373134328358</double>
</object>
<object class="NSScroller" id="1055237002">
<reference key="NSNextResponder" ref="386461059"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 119}, {223, 15}}</string>
<reference key="NSSuperview" ref="386461059"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="878293971"/>
<string key="NSReuseIdentifierKey">_NS:1216</string>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="386461059"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99581589958159</double>
</object>
</array>
<string key="NSFrame">{{20, 60}, {262, 235}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="991694656"/>
<string key="NSReuseIdentifierKey">_NS:1193</string>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="978953877"/>
<reference key="NSHScroller" ref="1055237002"/>
<reference key="NSContentView" ref="991694656"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
</object>
<object class="NSScrollView" id="687805562">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSClipView" id="256485327">
<reference key="NSNextResponder" ref="687805562"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTableView" id="69698213">
<reference key="NSNextResponder" ref="256485327"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{248, 260}</string>
<reference key="NSSuperview" ref="256485327"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="258173410"/>
<string key="NSReuseIdentifierKey">_NS:1197</string>
<bool key="NSEnabled">YES</bool>
<object class="_NSCornerView" key="NSCornerView">
<nil key="NSNextResponder"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 0}, {16, 17}}</string>
<string key="NSReuseIdentifierKey">_NS:1202</string>
</object>
<array class="NSMutableArray" key="NSTableColumns">
<object class="NSTableColumn" id="604129553">
<double key="NSWidth">245</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="26"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
</object>
<reference key="NSTextColor" ref="165509352"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="998326916">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="591283433"/>
<reference key="NSControlView" ref="69698213"/>
<reference key="NSBackgroundColor" ref="768431893"/>
<reference key="NSTextColor" ref="983887457"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<bool key="NSIsEditable">YES</bool>
<reference key="NSTableView" ref="69698213"/>
</object>
</array>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<reference key="NSBackgroundColor" ref="949356842"/>
<reference key="NSGridColor" ref="353256269"/>
<double key="NSRowHeight">17</double>
<int key="NSTvFlags">306184192</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">NO</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
</object>
</array>
<string key="NSFrame">{{1, 1}, {248, 260}}</string>
<reference key="NSSuperview" ref="687805562"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="69698213"/>
<string key="NSReuseIdentifierKey">_NS:1195</string>
<reference key="NSDocView" ref="69698213"/>
<reference key="NSBGColor" ref="768431893"/>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="258173410">
<reference key="NSNextResponder" ref="687805562"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
<reference key="NSSuperview" ref="687805562"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="218354894"/>
<string key="NSReuseIdentifierKey">_NS:1214</string>
<reference key="NSTarget" ref="687805562"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.9925373134328358</double>
</object>
<object class="NSScroller" id="218354894">
<reference key="NSNextResponder" ref="687805562"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 119}, {223, 15}}</string>
<reference key="NSSuperview" ref="687805562"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="955319632"/>
<string key="NSReuseIdentifierKey">_NS:1216</string>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="687805562"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.99581589958159</double>
</object>
</array>
<string key="NSFrame">{{339, 60}, {250, 262}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="256485327"/>
<string key="NSReuseIdentifierKey">_NS:1193</string>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="258173410"/>
<reference key="NSHScroller" ref="218354894"/>
<reference key="NSContentView" ref="256485327"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
</object>
<object class="NSButton" id="878293971">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{284, 186}, {53, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="596965746"/>
<string key="NSReuseIdentifierKey">_NS:161</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="208161580">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">--&gt;</string>
<reference key="NSSupport" ref="591283433"/>
<string key="NSCellIdentifier">_NS:161</string>
<reference key="NSControlView" ref="878293971"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="596965746">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{284, 160}, {53, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="687805562"/>
<string key="NSReuseIdentifierKey">_NS:161</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="410417059">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">&lt;--</string>
<reference key="NSSupport" ref="591283433"/>
<string key="NSCellIdentifier">_NS:161</string>
<reference key="NSControlView" ref="596965746"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="620738811">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{495, 12}, {100, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView"/>
<string key="NSReuseIdentifierKey">_NS:161</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="468133349">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Ok</string>
<reference key="NSSupport" ref="591283433"/>
<string key="NSCellIdentifier">_NS:161</string>
<reference key="NSControlView" ref="620738811"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="955319632">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{395, 12}, {100, 32}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="620738811"/>
<string key="NSReuseIdentifierKey">_NS:161</string>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="323479517">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Cancel</string>
<reference key="NSSupport" ref="591283433"/>
<string key="NSCellIdentifier">_NS:161</string>
<reference key="NSControlView" ref="955319632"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSTextField" id="970734229">
<reference key="NSNextResponder" ref="1006"/>
<int key="NSvFlags">268</int>
<string key="NSFrame">{{17, 330}, {575, 51}}</string>
<reference key="NSSuperview" ref="1006"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="357095790"/>
<string key="NSReuseIdentifierKey">_NS:3936</string>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="424127272">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">4194304</int>
<string key="NSContents">Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information.</string>
<reference key="NSSupport" ref="591283433"/>
<string key="NSCellIdentifier">_NS:3936</string>
<reference key="NSControlView" ref="970734229"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<reference key="NSColor" ref="857981892"/>
</object>
<reference key="NSTextColor" ref="983887457"/>
</object>
</object>
</array>
<string key="NSFrameSize">{609, 401}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="970734229"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">categoryPopUpView</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="357095790"/>
</object>
<int key="connectionID">10</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">criteriaTableView</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="675311684"/>
</object>
<int key="connectionID">20</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">prioritizationTableView</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="69698213"/>
</object>
<int key="connectionID">33</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">addSelected:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="878293971"/>
</object>
<int key="connectionID">34</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">removeSelected:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="596965746"/>
</object>
<int key="connectionID">35</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">cancel:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="955319632"/>
</object>
<int key="connectionID">42</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">ok:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="620738811"/>
</object>
<int key="connectionID">43</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1005"/>
</object>
<int key="connectionID">44</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="1001"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="1005"/>
<array class="NSMutableArray" key="children">
<reference ref="1006"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="1006"/>
<array class="NSMutableArray" key="children">
<reference ref="970734229"/>
<reference ref="357095790"/>
<reference ref="386461059"/>
<reference ref="878293971"/>
<reference ref="596965746"/>
<reference ref="687805562"/>
<reference ref="620738811"/>
<reference ref="955319632"/>
</array>
<reference key="parent" ref="1005"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="357095790"/>
<array class="NSMutableArray" key="children">
<reference ref="892922362"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="892922362"/>
<array class="NSMutableArray" key="children">
<reference ref="309249465"/>
</array>
<reference key="parent" ref="357095790"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="309249465"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="892922362"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="386461059"/>
<array class="NSMutableArray" key="children">
<reference ref="978953877"/>
<reference ref="1055237002"/>
<reference ref="675311684"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="978953877"/>
<reference key="parent" ref="386461059"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">14</int>
<reference key="object" ref="1055237002"/>
<reference key="parent" ref="386461059"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="675311684"/>
<array class="NSMutableArray" key="children">
<reference ref="331887935"/>
</array>
<reference key="parent" ref="386461059"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">16</int>
<reference key="object" ref="331887935"/>
<array class="NSMutableArray" key="children">
<reference ref="252516817"/>
</array>
<reference key="parent" ref="675311684"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="252516817"/>
<reference key="parent" ref="331887935"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">21</int>
<reference key="object" ref="878293971"/>
<array class="NSMutableArray" key="children">
<reference ref="208161580"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">22</int>
<reference key="object" ref="208161580"/>
<reference key="parent" ref="878293971"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">23</int>
<reference key="object" ref="596965746"/>
<array class="NSMutableArray" key="children">
<reference ref="410417059"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">24</int>
<reference key="object" ref="410417059"/>
<reference key="parent" ref="596965746"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">25</int>
<reference key="object" ref="687805562"/>
<array class="NSMutableArray" key="children">
<reference ref="69698213"/>
<reference ref="218354894"/>
<reference ref="258173410"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">26</int>
<reference key="object" ref="69698213"/>
<array class="NSMutableArray" key="children">
<reference ref="604129553"/>
</array>
<reference key="parent" ref="687805562"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">27</int>
<reference key="object" ref="218354894"/>
<reference key="parent" ref="687805562"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">28</int>
<reference key="object" ref="258173410"/>
<reference key="parent" ref="687805562"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">29</int>
<reference key="object" ref="604129553"/>
<array class="NSMutableArray" key="children">
<reference ref="998326916"/>
</array>
<reference key="parent" ref="69698213"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">30</int>
<reference key="object" ref="998326916"/>
<reference key="parent" ref="604129553"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">36</int>
<reference key="object" ref="620738811"/>
<array class="NSMutableArray" key="children">
<reference ref="468133349"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">37</int>
<reference key="object" ref="468133349"/>
<reference key="parent" ref="620738811"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">38</int>
<reference key="object" ref="955319632"/>
<array class="NSMutableArray" key="children">
<reference ref="323479517"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">39</int>
<reference key="object" ref="323479517"/>
<reference key="parent" ref="955319632"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">40</int>
<reference key="object" ref="970734229"/>
<array class="NSMutableArray" key="children">
<reference ref="424127272"/>
</array>
<reference key="parent" ref="1006"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">41</int>
<reference key="object" ref="424127272"/>
<reference key="parent" ref="970734229"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBWindowTemplateEditedContentRect">{{357, 418}, {480, 270}}</string>
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="22.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="23.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="30.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">44</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">PrioritizeDialog</string>
<string key="superclassName">NSWindowController</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="addSelected:">id</string>
<string key="cancel:">id</string>
<string key="ok:">id</string>
<string key="removeSelected:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="addSelected:">
<string key="name">addSelected:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="cancel:">
<string key="name">cancel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="ok:">
<string key="name">ok:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="removeSelected:">
<string key="name">removeSelected:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="categoryPopUpView">NSPopUpButton</string>
<string key="criteriaTableView">NSTableView</string>
<string key="prioritizationTableView">NSTableView</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="categoryPopUpView">
<string key="name">categoryPopUpView</string>
<string key="candidateClassName">NSPopUpButton</string>
</object>
<object class="IBToOneOutletInfo" key="criteriaTableView">
<string key="name">criteriaTableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
<object class="IBToOneOutletInfo" key="prioritizationTableView">
<string key="name">prioritizationTableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/PrioritizeDialog.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<real value="4100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
</archive>

View File

@ -1,12 +0,0 @@
/* Class = "NSWindow"; title = "Problems!"; ObjectID = "1"; */
"1.title" = "Problems!";
/* Class = "NSTextFieldCell"; title = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; ObjectID = "4"; */
"4.title" = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results.";
/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */
"19.title" = "Close";
/* Class = "NSButtonCell"; title = "Reveal Selected"; ObjectID = "21"; */
"21.title" = "Reveal Selected";

View File

@ -1,500 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11D50</string>
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
<string key="IBDocument.AppKitVersion">1138.32</string>
<string key="IBDocument.HIToolboxVersion">568.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">2182</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSTextField</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
<string>NSScrollView</string>
<string>NSCustomObject</string>
<string>NSTableView</string>
<string>NSTableHeaderView</string>
<string>NSButtonCell</string>
<string>NSButton</string>
<string>NSScroller</string>
<string>NSTextFieldCell</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<object class="NSMutableDictionary" key="IBDocument.Metadata">
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
<integer value="1" key="NS.object.0"/>
</object>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
<object class="NSCustomObject" id="1001">
<string key="NSClassName">ProblemDialog</string>
</object>
<object class="NSCustomObject" id="1003">
<string key="NSClassName">FirstResponder</string>
</object>
<object class="NSCustomObject" id="1004">
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="359561441">
<int key="NSWindowStyleMask">11</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{477, 306}, {480, 309}}</string>
<int key="NSWTFlags">1685585920</int>
<string key="NSWindowTitle">Problems!</string>
<string key="NSWindowClass">NSWindow</string>
<nil key="NSViewClass"/>
<nil key="NSUserInterfaceItemIdentifier"/>
<object class="NSView" key="NSWindowView" id="976198330">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="573725554">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{17, 238}, {446, 51}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="1063844428">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">272891904</int>
<string key="NSContents">There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results.</string>
<object class="NSFont" key="NSSupport">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">16</int>
</object>
<reference key="NSControlView" ref="573725554"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor" id="869923403">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
</object>
<object class="NSScrollView" id="458371270">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSClipView" id="831830981">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTableView" id="252791348">
<reference key="NSNextResponder" ref="831830981"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{438, 152}</string>
<reference key="NSSuperview" ref="831830981"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="903452051">
<reference key="NSNextResponder" ref="777677330"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{438, 17}</string>
<reference key="NSSuperview" ref="777677330"/>
<reference key="NSWindow"/>
<reference key="NSTableView" ref="252791348"/>
</object>
<object class="_NSCornerView" key="NSCornerView" id="564034022">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
</object>
<array class="NSMutableArray" key="NSTableColumns"/>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">17</double>
<int key="NSTvFlags">-702545920</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
</object>
</array>
<string key="NSFrame">{{1, 17}, {438, 152}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="252791348"/>
<reference key="NSDocView" ref="252791348"/>
<object class="NSColor" key="NSBGColor" id="765209443">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<reference key="NSColor" ref="869923403"/>
</object>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="99096694">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{224, 17}, {15, 102}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSTarget" ref="458371270"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.90131578947368418</double>
</object>
<object class="NSScroller" id="47224920">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 154}, {438, 15}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="458371270"/>
<string key="NSAction">_doScroller:</string>
<double key="NSCurValue">1</double>
<double key="NSPercent">0.98871331828442433</double>
</object>
<object class="NSClipView" id="777677330">
<reference key="NSNextResponder" ref="458371270"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<reference ref="903452051"/>
</array>
<string key="NSFrame">{{1, 0}, {438, 17}}</string>
<reference key="NSSuperview" ref="458371270"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="903452051"/>
<reference key="NSDocView" ref="903452051"/>
<reference key="NSBGColor" ref="765209443"/>
<int key="NScvFlags">4</int>
</object>
<reference ref="564034022"/>
</array>
<string key="NSFrame">{{20, 60}, {440, 170}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="831830981"/>
<int key="NSsFlags">133682</int>
<reference key="NSVScroller" ref="99096694"/>
<reference key="NSHScroller" ref="47224920"/>
<reference key="NSContentView" ref="831830981"/>
<reference key="NSHeaderClipView" ref="777677330"/>
<reference key="NSCornerView" ref="564034022"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
</object>
<object class="NSButton" id="4380169">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">289</int>
<string key="NSFrame">{{356, 12}, {110, 32}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="373771329">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Close</string>
<object class="NSFont" key="NSSupport" id="680801460">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="4380169"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
<object class="NSButton" id="253286088">
<reference key="NSNextResponder" ref="976198330"/>
<int key="NSvFlags">292</int>
<string key="NSFrame">{{14, 12}, {162, 32}}</string>
<reference key="NSSuperview" ref="976198330"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSButtonCell" key="NSCell" id="671547957">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">134217728</int>
<string key="NSContents">Reveal Selected</string>
<reference key="NSSupport" ref="680801460"/>
<reference key="NSControlView" ref="253286088"/>
<int key="NSButtonFlags">-2038284033</int>
<int key="NSButtonFlags2">129</int>
<string key="NSAlternateContents"/>
<string key="NSKeyEquivalent"/>
<int key="NSPeriodicDelay">200</int>
<int key="NSPeriodicInterval">25</int>
</object>
</object>
</array>
<string key="NSFrameSize">{480, 309}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="359561441"/>
</object>
<int key="connectionID">22</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">revealSelected:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="253286088"/>
</object>
<int key="connectionID">24</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">problemTableView</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="252791348"/>
</object>
<int key="connectionID">26</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">performClose:</string>
<reference key="source" ref="359561441"/>
<reference key="destination" ref="4380169"/>
</object>
<int key="connectionID">25</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="1001"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="359561441"/>
<array class="NSMutableArray" key="children">
<reference ref="976198330"/>
</array>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="976198330"/>
<array class="NSMutableArray" key="children">
<reference ref="573725554"/>
<reference ref="458371270"/>
<reference ref="4380169"/>
<reference ref="253286088"/>
</array>
<reference key="parent" ref="359561441"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="573725554"/>
<array class="NSMutableArray" key="children">
<reference ref="1063844428"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="1063844428"/>
<reference key="parent" ref="573725554"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="458371270"/>
<array class="NSMutableArray" key="children">
<reference ref="99096694"/>
<reference ref="47224920"/>
<reference ref="252791348"/>
<reference ref="903452051"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="99096694"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="47224920"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="252791348"/>
<array class="NSMutableArray" key="children"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="903452051"/>
<reference key="parent" ref="458371270"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="4380169"/>
<array class="NSMutableArray" key="children">
<reference ref="373771329"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="373771329"/>
<reference key="parent" ref="4380169"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">20</int>
<reference key="object" ref="253286088"/>
<array class="NSMutableArray" key="children">
<reference ref="671547957"/>
</array>
<reference key="parent" ref="976198330"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">21</int>
<reference key="object" ref="671547957"/>
<reference key="parent" ref="253286088"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBWindowTemplateEditedContentRect">{{477, 306}, {480, 309}}</string>
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="21.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">26</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">ProblemDialog</string>
<string key="superclassName">NSWindowController</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">revealSelected:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">revealSelected:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">revealSelected:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">problemTableView</string>
<string key="NS.object.0">NSTableView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">problemTableView</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">problemTableView</string>
<string key="candidateClassName">NSTableView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/ProblemDialog.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<real value="4100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
</data>
</archive>

View File

@ -1,99 +0,0 @@
/* Class = "NSWindow"; title = "dupeGuru Results"; ObjectID = "1"; */
"1.title" = "dupeGuru Results";
/* Class = "NSTextFieldCell"; title = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; ObjectID = "6"; */
"6.title" = "Marked: 0 files, 0 B. Total: 0 files, 0 B.";
/* Class = "NSToolbarItem"; label = "Options"; ObjectID = "15"; */
"15.label" = "Options";
/* Class = "NSToolbarItem"; paletteLabel = "Options"; ObjectID = "15"; */
"15.paletteLabel" = "Options";
/* Class = "NSToolbarItem"; label = "Filter"; ObjectID = "16"; */
"16.label" = "Filter";
/* Class = "NSToolbarItem"; paletteLabel = "Filter"; ObjectID = "16"; */
"16.paletteLabel" = "Filter";
/* Class = "NSToolbarItem"; label = "Action"; ObjectID = "17"; */
"17.label" = "Action";
/* Class = "NSToolbarItem"; paletteLabel = "Action"; ObjectID = "17"; */
"17.paletteLabel" = "Action";
/* Class = "NSToolbarItem"; label = "Directories"; ObjectID = "19"; */
"19.label" = "Directories";
/* Class = "NSToolbarItem"; paletteLabel = "Directories"; ObjectID = "19"; */
"19.paletteLabel" = "Directories";
/* Class = "NSMenuItem"; title = "Send Marked to Trash..."; ObjectID = "29"; */
"29.title" = "Send Marked to Trash...";
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "30"; */
"30.title" = "Move Marked to...";
/* Class = "NSMenuItem"; title = "Copy Marked to..."; ObjectID = "31"; */
"31.title" = "Copy Marked to...";
/* Class = "NSMenuItem"; title = "Remove Marked from Results"; ObjectID = "32"; */
"32.title" = "Remove Marked from Results";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "34"; */
"34.title" = "Remove Selected from Results";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "35"; */
"35.title" = "Add Selected to Ignore List";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "36"; */
"36.title" = "Make Selected Reference";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "38"; */
"38.title" = "Open Selected with Default Application";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "39"; */
"39.title" = "Reveal Selected in Finder";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "40"; */
"40.title" = "Rename Selected";
/* Class = "NSSearchFieldCell"; placeholderString = "Filter"; ObjectID = "42"; */
"42.placeholderString" = "Filter";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[0] = "Details"; ObjectID = "44"; */
"44.ibShadowedLabels[0]" = "Details";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[1] = "Dupes Only"; ObjectID = "44"; */
"44.ibShadowedLabels[1]" = "Dupes Only";
/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[2] = "Delta"; ObjectID = "44"; */
"44.ibShadowedLabels[2]" = "Delta";
/* Class = "NSMenu"; title = "Menu"; ObjectID = "67"; */
"67.title" = "Menu";
/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "68"; */
"68.title" = "Add Selected to Ignore List";
/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "70"; */
"70.title" = "Rename Selected";
/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "71"; */
"71.title" = "Remove Selected from Results";
/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "72"; */
"72.title" = "Make Selected Reference";
/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "73"; */
"73.title" = "Reveal Selected in Finder";
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "74"; */
"74.title" = "Open Selected with Default Application";
/* Class = "NSToolbarItem"; label = "Quick Look"; ObjectID = "86"; */
"86.label" = "Quick Look";
/* Class = "NSToolbarItem"; paletteLabel = "Quick Look"; ObjectID = "86"; */
"86.paletteLabel" = "Quick Look";

File diff suppressed because it is too large Load Diff

View File

@ -10,6 +10,8 @@ http://www.hardcoded.net/licenses/bsd_license
#import <Python.h> #import <Python.h>
#import <wchar.h> #import <wchar.h>
#import <locale.h> #import <locale.h>
#import "AppDelegate.h"
#import "MainMenu_UI.h"
int main(int argc, char *argv[]) int main(int argc, char *argv[])
{ {
@ -34,8 +36,14 @@ int main(int argc, char *argv[])
PyThreadState_Swap(NULL); PyThreadState_Swap(NULL);
PyEval_ReleaseLock(); PyEval_ReleaseLock();
} }
int result = NSApplicationMain(argc, (const char **) argv);
Py_Finalize(); [NSApplication sharedApplication];
AppDelegate *appDelegate = [[AppDelegate alloc] init];
[NSApp setDelegate:appDelegate];
[NSApp setMainMenu:createMainMenu_UI(appDelegate)];
[appDelegate finalizeInit];
[pool release]; [pool release];
return result; [NSApp run];
Py_Finalize();
return 0;
} }

View File

@ -0,0 +1,47 @@
ownerclass = 'DeletionOptions'
ownerimport = 'DeletionOptions.h'
result = Window(450, 215, "Deletion Options")
messageLabel = Label(result, "")
hardlinkCheckbox = Checkbox(result, "Hardlink deleted files")
hardlinkLabel = Label(result, "After having deleted a duplicate, place a hardlink targeting the "
"reference file to replace the deleted file.")
directCheckbox = Checkbox(result, "Directly delete files")
directLabel = Label(result, "Instead of sending files to trash, delete them directly. This option "
"is usually used as a workaround when the normal deletion method doesn't work.")
proceedButton = Button(result, "Proceed")
cancelButton = Button(result, "Cancel")
owner.hardlinkButton = hardlinkCheckbox
owner.directButton = directCheckbox
owner.messageTextField = messageLabel
result.canMinimize = False
result.canResize = False
hardlinkLabel.controlSize = const.NSSmallControlSize
directLabel.controlSize = const.NSSmallControlSize
proceedButton.keyEquivalent = '\\r'
cancelButton.keyEquivalent = '\\e'
hardlinkCheckbox.action = directCheckbox.action = Action(owner, 'updateOptions')
proceedButton.action = Action(owner, 'proceed')
cancelButton.action = Action(owner, 'cancel')
hardlinkLabel.height *= 2 # 2 lines
directLabel.height *= 3 # 3 lines
proceedButton.width = 92
cancelButton.width = 92
messageLabel.packToCorner(Pack.UpperLeft)
hardlinkCheckbox.packRelativeTo(messageLabel, Pack.Below)
hardlinkLabel.packRelativeTo(hardlinkCheckbox, Pack.Below)
directCheckbox.packRelativeTo(hardlinkLabel, Pack.Below)
directLabel.packRelativeTo(directCheckbox, Pack.Below)
for view in (messageLabel, hardlinkCheckbox, hardlinkLabel, directCheckbox, directLabel):
view.fill(Pack.Right)
proceedButton.packToCorner(Pack.LowerRight)
cancelButton.packRelativeTo(proceedButton, Pack.Left)
# indent the labels under checkboxes a little bit to the right
for label in (hardlinkLabel, directLabel):
label.x += 20
label.width -= 20

View File

@ -0,0 +1,32 @@
ownerclass = 'DetailsPanel'
ownerimport = 'DetailsPanel.h'
result = Panel(451, 146, "Details of Selected File")
table = TableView(result)
owner.detailsTable = table
result.style = PanelStyle.Utility
result.xProportion = 0.2
result.yProportion = 0.4
result.canMinimize = False
result.autosaveName = 'DetailsPanel'
result.minSize = Size(result.width, result.height)
table.dataSource = owner
table.allowsColumnReordering = False
table.allowsColumnSelection = False
table.allowsMultipleSelection = False
table.font = Font(FontFamily.System, FontSize.SmallSystem)
table.rowHeight = 14
table.editable = False
col = table.addColumn('0', "Attribute", 70)
col.autoResizable = True
col = table.addColumn('1', "Selected", 198)
col.autoResizable = True
col = table.addColumn('2', "Reference", 172)
col.autoResizable = True
table.packToCorner(Pack.UpperLeft, margin=0)
table.fill(Pack.LowerRight, margin=0)
table.setAnchor(Pack.UpperLeft, growX=True, growY=True)

View File

@ -0,0 +1,61 @@
ownerclass = 'DirectoryPanel'
ownerimport = 'DirectoryPanel.h'
result = Window(425, 300, "dupeGuru")
promptLabel = Label(result, "Select folders to scan and press \"Scan\".")
directoryOutline = OutlineView(result)
directoryOutline.OBJC_CLASS = 'HSOutlineView'
addButton = Button(result, "")
removeButton = Button(result, "")
loadResultsButton = Button(result, "Load Results")
scanButton = Button(result, "Scan")
addPopup = Popup(None)
loadRecentPopup = Popup(None)
owner.outlineView = directoryOutline
owner.removeButton = removeButton
owner.loadResultsButton = loadResultsButton
owner.addButtonPopUp = addPopup
owner.loadRecentButtonPopUp = loadRecentPopup
result.autosaveName = 'DirectoryPanel'
result.canMinimize = False
result.minSize = Size(370, 270)
addButton.bezelStyle = removeButton.bezelStyle = const.NSTexturedRoundedBezelStyle
addButton.image = 'NSAddTemplate'
removeButton.image = 'NSRemoveTemplate'
for button in (addButton, removeButton):
button.style = const.NSTexturedRoundedBezelStyle
button.imagePosition = const.NSImageOnly
scanButton.keyEquivalent = '\\r'
addButton.action = Action(owner, 'popupAddDirectoryMenu:')
removeButton.action = Action(owner, 'removeSelectedDirectory')
loadResultsButton.action = Action(owner, 'popupLoadRecentMenu:')
scanButton.action = Action(None, 'startScanning')
directoryOutline.font = Font(FontFamily.System, FontSize.SmallSystem)
col = directoryOutline.addColumn('name', "Name", 100)
col.editable = False
col.autoResizable = True
col = directoryOutline.addColumn('state', "State", 85)
col.editable = True
col.autoResizable = False
col.dataCell = Popup(None, ["Normal", "Reference", "Excluded"])
col.dataCell.controlSize = const.NSSmallControlSize
for button in (addButton, removeButton):
button.width = 28
for button in (loadResultsButton, scanButton):
button.width = 118
buttonLayout = HLayout([addButton, removeButton, None, loadResultsButton, scanButton])
promptLabel.packToCorner(Pack.UpperLeft)
promptLabel.fill(Pack.Right)
directoryOutline.packRelativeTo(promptLabel, Pack.Below)
buttonLayout.packRelativeTo(directoryOutline, Pack.Below, margin=8)
directoryOutline.fill(Pack.LowerRight)
buttonLayout.fill(Pack.Right)
promptLabel.setAnchor(Pack.UpperLeft, growX=True)
directoryOutline.setAnchor(Pack.UpperLeft, growX=True, growY=True)
buttonLayout.setAnchor(Pack.Below)

View File

@ -0,0 +1,30 @@
ownerclass = 'IgnoreListDialog'
ownerimport = 'IgnoreListDialog.h'
result = Window(550, 350, "Ignore List")
table = TableView(result)
removeSelectedButton = Button(result, "Remove Selected")
clearButton = Button(result, "Clear")
closeButton = Button(result, "Close")
owner.ignoreListTableView = table
result.canMinimize = False
removeSelectedButton.action = Action(owner.model, 'removeSelected')
clearButton.action = Action(owner.model, 'clear')
closeButton.action = Action(result, 'performClose:')
closeButton.keyEquivalent = '\\r'
table.allowsColumnReordering = False
table.allowsColumnSelection = False
table.allowsMultipleSelection = True
removeSelectedButton.width = 142
clearButton.width = 142
closeButton.width = 84
buttonLayout = HLayout([removeSelectedButton, clearButton, None, closeButton])
buttonLayout.packToCorner(Pack.LowerLeft)
buttonLayout.fill(Pack.Right)
buttonLayout.setAnchor(Pack.Below)
table.packRelativeTo(buttonLayout, Pack.Above)
table.fill(Pack.UpperRight)
table.setAnchor(Pack.UpperLeft, growX=True, growY=True)

View File

@ -0,0 +1,81 @@
ownerclass = 'AppDelegateBase'
ownerimport = 'AppDelegateBase.h'
edition = args.get('edition', 'se')
result = Menu("")
appMenu = result.addMenu("dupeGuru")
fileMenu = result.addMenu("File")
editMenu = result.addMenu("Edit")
actionMenu = result.addMenu("Actions")
owner.columnsMenu = result.addMenu("Columns")
modeMenu = result.addMenu("Mode")
windowMenu = result.addMenu("Window")
helpMenu = result.addMenu("Help")
appMenu.addItem("About dupeGuru", Action(owner, 'showAboutBox'))
appMenu.addItem("Check for update...", Action(owner.updater, 'checkForUpdates:'))
appMenu.addSeparator()
appMenu.addItem("Preferences...", Action(owner, 'showPreferencesPanel'), 'cmd+,')
appMenu.addSeparator()
NSApp.servicesMenu = appMenu.addMenu("Services")
appMenu.addSeparator()
appMenu.addItem("Hide dupeGuru", Action(NSApp, 'hide:'), 'cmd+h')
appMenu.addItem("Hide Others", Action(NSApp, 'hideOtherApplications:'), 'cmd+alt+h')
appMenu.addItem("Show All", Action(NSApp, 'unhideAllApplications:'))
appMenu.addSeparator()
appMenu.addItem("Quit dupeGuru", Action(NSApp, 'terminate:'), 'cmd+q')
fileMenu.addItem("Load Results...", Action(None, 'loadResults'), 'cmd+o')
owner.recentResultsMenu = fileMenu.addMenu("Load Recent Results")
fileMenu.addItem("Save Results...", Action(None, 'saveResults'), 'cmd+s')
fileMenu.addItem("Export Results to XHTML", Action(None, 'exportToXHTML'), 'cmd+shift+e')
if edition == 'pe':
fileMenu.addItem("Clear Picture Cache", Action(owner, 'clearPictureCache'), 'cmd+shift+p')
elif edition == 'me':
fileMenu.addItem("Remove Dead Tracks in iTunes", Action(owner, 'removeDeadTracks'))
editMenu.addItem("Mark All", Action(None, 'markAll'), 'cmd+a')
editMenu.addItem("Mark None", Action(None, 'markNone'), 'cmd+shift+a')
editMenu.addItem("Invert Marking", Action(None, 'markInvert'), 'cmd+alt+a')
editMenu.addItem("Mark Selected", Action(None, 'markSelected'), 'ctrl+cmd+a')
editMenu.addSeparator()
editMenu.addItem("Cut", Action(None, 'cut:'), 'cmd+x')
editMenu.addItem("Copy", Action(None, 'copy:'), 'cmd+c')
editMenu.addItem("Paste", Action(None, 'paste:'), 'cmd+v')
editMenu.addSeparator()
editMenu.addItem("Filter Results...", Action(None, 'focusOnFilterField'), 'cmd+alt+f')
actionMenu.addItem("Start Duplicate Scan", Action(owner, 'startScanning'), 'cmd+d')
actionMenu.addSeparator()
actionMenu.addItem("Send Marked to Trash...", Action(None, 'trashMarked'), 'cmd+t')
actionMenu.addItem("Move Marked to...", Action(None, 'moveMarked'), 'cmd+m')
actionMenu.addItem("Copy Marked to...", Action(None, 'copyMarked'), 'cmd+alt+m')
actionMenu.addItem("Remove Marked from Results", Action(None, 'removeMarked'), 'cmd+r')
actionMenu.addItem("Re-Prioritize Results", Action(None, 'reprioritizeResults'))
actionMenu.addSeparator()
actionMenu.addItem("Remove Selected from Results", Action(None, 'removeSelected'), 'cmd+backspace')
actionMenu.addItem("Add Selected to Ignore List", Action(None, 'ignoreSelected'), 'cmd+g')
actionMenu.addItem("Make Selected Reference", Action(None, 'switchSelected'), 'cmd+arrowup')
actionMenu.addSeparator()
actionMenu.addItem("Open Selected with Default Application", Action(None, 'openSelected'), 'cmd+return')
actionMenu.addItem("Reveal Selected in Finder", Action(None, 'revealSelected'), 'cmd+alt+return')
actionMenu.addItem("Invoke Custom Command", Action(None, 'invokeCustomCommand'), 'cmd+shift+c')
actionMenu.addItem("Rename Selected", Action(None, 'renameSelected'), 'enter')
modeMenu.addItem("Show Dupes Only", Action(None, 'togglePowerMarker'), 'cmd+1')
modeMenu.addItem("Show Delta Values", Action(None, 'toggleDelta'), 'cmd+2')
windowMenu.addItem("Results Window", Action(owner, 'showResultWindow'))
windowMenu.addItem("Folder Selection Window", Action(owner, 'showDirectoryWindow'))
windowMenu.addItem("Ignore List", Action(owner, 'showIgnoreList'))
windowMenu.addItem("Details Panel", Action(None, 'toggleDetailsPanel'), 'cmd+i')
windowMenu.addItem("Quick Look", Action(None, 'toggleQuicklookPanel'), 'cmd+l')
windowMenu.addSeparator()
windowMenu.addItem("Minimize", Action(None, 'performMinimize:'))
windowMenu.addItem("Zoom", Action(None, 'performZoom:'))
windowMenu.addItem("Close Window", Action(None, 'performClose:'), 'cmd+w')
windowMenu.addSeparator()
windowMenu.addItem("Bring All to Front", Action(None, 'arrangeInFront:'))
helpMenu.addItem("dupeGuru Help", Action(owner, 'openHelp'), 'cmd+?')
helpMenu.addItem("dupeGuru Website", Action(owner, 'openWebsite'))

View File

@ -0,0 +1,189 @@
edition = args.get('edition', 'se')
dialogTitles = {
'se': "dupeGuru Preferences",
'me': "dupeGuru ME Preferences",
'pe': "dupeGuru PE Preferences",
}
dialogHeights = {
'se': 345,
'me': 365,
'pe': 275,
}
scanTypeNames = {
'se': ["Filename", "Content", "Folders"],
'me': ["Filename", "Filename - Fields", "Filename - Fields (No Order)", "Tags", "Content", "Audio Content"],
'pe': ["Contents", "EXIF Timestamp"],
}
result = Window(410, dialogHeights[edition], dialogTitles[edition])
tabView = TabView(result)
basicTab = tabView.addTab("Basic")
advancedTab = tabView.addTab("Advanced")
scanTypePopup = Popup(basicTab.view, scanTypeNames[edition])
scanTypeLabel = Label(basicTab.view, "Scan Type:")
thresholdSlider = Slider(basicTab.view, 1, 100, 80)
thresholdLabel = Label(basicTab.view, "Filter hardness:")
moreResultsLabel = Label(basicTab.view, "More results")
fewerResultsLabel = Label(basicTab.view, "Fewer results")
thresholdValueLabel = Label(basicTab.view, "")
fontSizeCombo = Combobox(basicTab.view, ["11", "12", "13", "14", "18", "24"])
fontSizeLabel = Label(basicTab.view, "Font Size:")
if edition in ('se', 'me'):
wordWeightingBox = Checkbox(basicTab.view, "Word weighting")
matchSimilarWordsBox = Checkbox(basicTab.view, "Match similar words")
elif edition == 'pe':
matchDifferentDimensionsBox = Checkbox(basicTab.view, "Match pictures of different dimensions")
mixKindBox = Checkbox(basicTab.view, "Can mix file kind")
removeEmptyFoldersBox = Checkbox(basicTab.view, "Remove empty folders on delete or move")
checkForUpdatesBox = Checkbox(basicTab.view, "Automatically check for updates")
if edition == 'se':
ignoreSmallFilesBox = Checkbox(basicTab.view, "Ignore files smaller than:")
smallFilesThresholdText = TextField(basicTab.view, "")
smallFilesThresholdSuffixLabel = Label(basicTab.view, "KB")
elif edition == 'me':
tagsToScanLabel = Label(basicTab.view, "Tags to scan:")
trackBox = Checkbox(basicTab.view, "Track")
artistBox = Checkbox(basicTab.view, "Artist")
albumBox = Checkbox(basicTab.view, "Album")
titleBox = Checkbox(basicTab.view, "Title")
genreBox = Checkbox(basicTab.view, "Genre")
yearBox = Checkbox(basicTab.view, "Year")
tagBoxes = [trackBox, artistBox, albumBox, titleBox, genreBox, yearBox]
regexpCheckbox = Checkbox(advancedTab.view, "Use regular expressions when filtering")
ignoreHardlinksBox = Checkbox(advancedTab.view, "Ignore duplicates hardlinking to the same file")
debugModeCheckbox = Checkbox(advancedTab.view, "Debug mode (restart required)")
customCommandLabel = Label(advancedTab.view, "Custom command (arguments: %d for dupe, %r for ref):")
customCommandText = TextField(advancedTab.view, "")
copyMoveLabel = Label(advancedTab.view, "Copy and Move:")
copyMovePopup = Popup(advancedTab.view, ["Right in destination", "Recreate relative path", "Recreate absolute path"])
resetToDefaultsButton = Button(result, "Reset To Defaults")
scanTypePopup.bind('selectedIndex', defaults, 'values.scanType')
thresholdSlider.bind('value', defaults, 'values.minMatchPercentage')
thresholdValueLabel.bind('value', defaults, 'values.minMatchPercentage')
fontSizeCombo.bind('value', defaults, 'values.TableFontSize')
mixKindBox.bind('value', defaults, 'values.mixFileKind')
removeEmptyFoldersBox.bind('value', defaults, 'values.removeEmptyFolders')
checkForUpdatesBox.bind('value', defaults, 'values.SUEnableAutomaticChecks')
regexpCheckbox.bind('value', defaults, 'values.useRegexpFilter')
ignoreHardlinksBox.bind('value', defaults, 'values.ignoreHardlinkMatches')
debugModeCheckbox.bind('value', defaults, 'values.DebugMode')
customCommandText.bind('value', defaults, 'values.CustomCommand')
copyMovePopup.bind('selectedIndex', defaults, 'values.recreatePathType')
if edition in ('se', 'me'):
wordWeightingBox.bind('value', defaults, 'values.wordWeighting')
matchSimilarWordsBox.bind('value', defaults, 'values.matchSimilarWords')
disableWhenContentScan = [thresholdSlider, wordWeightingBox, matchSimilarWordsBox]
for control in disableWhenContentScan:
control.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsNotContent')
if edition == 'se':
ignoreSmallFilesBox.bind('value', defaults, 'values.ignoreSmallFiles')
smallFilesThresholdText.bind('value', defaults, 'values.smallFileThreshold')
elif edition == 'me':
for box in tagBoxes:
box.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsTag')
trackBox.bind('value', defaults, 'values.scanTagTrack')
artistBox.bind('value', defaults, 'values.scanTagArtist')
albumBox.bind('value', defaults, 'values.scanTagAlbum')
titleBox.bind('value', defaults, 'values.scanTagTitle')
genreBox.bind('value', defaults, 'values.scanTagGenre')
yearBox.bind('value', defaults, 'values.scanTagYear')
elif edition == 'pe':
matchDifferentDimensionsBox.bind('value', defaults, 'values.matchScaled')
thresholdSlider.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsFuzzy')
result.canResize = False
result.canMinimize = False
thresholdValueLabel.formatter = NumberFormatter(NumberStyle.Decimal)
thresholdValueLabel.formatter.maximumFractionDigits = 0
allLabels = [scanTypeLabel, thresholdValueLabel, moreResultsLabel, fewerResultsLabel,
thresholdLabel, fontSizeLabel, customCommandLabel, copyMoveLabel]
allCheckboxes = [mixKindBox, removeEmptyFoldersBox, checkForUpdatesBox, regexpCheckbox,
ignoreHardlinksBox, debugModeCheckbox]
if edition == 'se':
allLabels += [smallFilesThresholdSuffixLabel]
allCheckboxes += [ignoreSmallFilesBox, wordWeightingBox, matchSimilarWordsBox]
elif edition == 'me':
allLabels += [tagsToScanLabel]
allCheckboxes += tagBoxes + [wordWeightingBox, matchSimilarWordsBox]
elif edition == 'pe':
allCheckboxes += [matchDifferentDimensionsBox]
for label in allLabels:
label.controlSize = ControlSize.Small
fewerResultsLabel.alignment = TextAlignment.Right
for checkbox in allCheckboxes:
checkbox.font = scanTypeLabel.font
resetToDefaultsButton.action = Action(defaults, 'revertToInitialValues:')
scanTypeLabel.width = thresholdLabel.width = fontSizeLabel.width = 94
fontSizeCombo.width = 66
thresholdValueLabel.width = 25
resetToDefaultsButton.width = 136
if edition == 'se':
smallFilesThresholdText.width = 60
smallFilesThresholdSuffixLabel.width = 40
elif edition == 'me':
for box in tagBoxes:
box.width = 70
tabView.packToCorner(Pack.UpperLeft)
tabView.fill(Pack.Right)
resetToDefaultsButton.packRelativeTo(tabView, Pack.Below, align=Pack.Right)
tabView.fill(Pack.Below, margin=14)
tabView.setAnchor(Pack.UpperLeft, growX=True, growY=True)
scanTypePopup.packToCorner(Pack.UpperRight)
scanTypeLabel.packRelativeTo(scanTypePopup, Pack.Left)
scanTypePopup.fill(Pack.Left)
thresholdSlider.packRelativeTo(scanTypePopup, Pack.Below)
thresholdValueLabel.packRelativeTo(thresholdSlider, Pack.Right)
thresholdSlider.fill(Pack.Right)
# We want to give the labels as much space as possible, and we only "know" how much is available
# after the slider's fill operation.
moreResultsLabel.width = fewerResultsLabel.width = thresholdSlider.width // 2
moreResultsLabel.packRelativeTo(thresholdSlider, Pack.Below, align=Pack.Left, margin=6)
fewerResultsLabel.packRelativeTo(thresholdSlider, Pack.Below, align=Pack.Right, margin=6)
thresholdLabel.packRelativeTo(thresholdSlider, Pack.Left)
fontSizeCombo.packRelativeTo(moreResultsLabel, Pack.Below)
fontSizeLabel.packRelativeTo(fontSizeCombo, Pack.Left)
if edition == 'me':
tagsToScanLabel.packRelativeTo(fontSizeCombo, Pack.Below)
tagsToScanLabel.fill(Pack.Left)
tagsToScanLabel.fill(Pack.Right)
trackBox.packRelativeTo(tagsToScanLabel, Pack.Below)
trackBox.x += 10
artistBox.packRelativeTo(trackBox, Pack.Right)
albumBox.packRelativeTo(artistBox, Pack.Right)
titleBox.packRelativeTo(trackBox, Pack.Below)
genreBox.packRelativeTo(titleBox, Pack.Right)
yearBox.packRelativeTo(genreBox, Pack.Right)
viewToPackCheckboxesUnder = titleBox
else:
viewToPackCheckboxesUnder = fontSizeCombo
if edition == 'se':
checkboxesToLayout = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox,
ignoreSmallFilesBox]
elif edition == 'me':
checkboxesToLayout = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox,
checkForUpdatesBox]
elif edition == 'pe':
checkboxesToLayout = [matchDifferentDimensionsBox, mixKindBox, removeEmptyFoldersBox,
checkForUpdatesBox]
checkboxLayout = VLayout(checkboxesToLayout)
checkboxLayout.packRelativeTo(viewToPackCheckboxesUnder, Pack.Below)
checkboxLayout.fill(Pack.Left)
checkboxLayout.fill(Pack.Right)
if edition == 'se':
smallFilesThresholdText.packRelativeTo(ignoreSmallFilesBox, Pack.Below, margin=4)
checkForUpdatesBox.packRelativeTo(smallFilesThresholdText, Pack.Below, margin=4)
checkForUpdatesBox.fill(Pack.Right)
smallFilesThresholdText.x += 20
smallFilesThresholdSuffixLabel.packRelativeTo(smallFilesThresholdText, Pack.Right)
advancedLayout = VLayout(advancedTab.view.subviews[:])
advancedLayout.packToCorner(Pack.UpperLeft)
advancedLayout.fill(Pack.Right)

View File

@ -0,0 +1,50 @@
ownerclass = 'PrioritizeDialog'
ownerimport = 'PrioritizeDialog.h'
result = Window(610, 400, "Re-Prioritize duplicates")
promptLabel = Label(result, "Add criteria to the right box and click OK to send the dupes that "
"correspond the best to these criteria to their respective group's reference position. Read "
"the help file for more information.")
categoryPopup = Popup(result)
criteriaTable = ListView(result)
prioritizationTable = ListView(result)
addButton = Button(result, "-->")
removeButton = Button(result, "<--")
okButton = Button(result, "Ok")
cancelButton = Button(result, "Cancel")
owner.categoryPopUpView = categoryPopup
owner.criteriaTableView = criteriaTable
owner.prioritizationTableView = prioritizationTable
result.canMinimize = False
result.canClose = False
result.minSize = Size(result.width, result.height)
addButton.action = Action(owner.model, 'addSelected')
removeButton.action = Action(owner.model, 'removeSelected')
okButton.action = Action(owner, 'ok')
cancelButton.action = Action(owner, 'cancel')
okButton.keyEquivalent = '\\r'
cancelButton.keyEquivalent = '\\e'
promptLabel.height *= 3 # 3 lines
leftLayout = VLayout([categoryPopup, criteriaTable], width=262, filler=criteriaTable)
middleLayout = VLayout([addButton, removeButton], width=41)
buttonLayout = HLayout([None, cancelButton, okButton])
promptLabel.packToCorner(Pack.UpperLeft)
promptLabel.fill(Pack.Right)
leftLayout.packRelativeTo(promptLabel, Pack.Below)
middleLayout.packRelativeTo(leftLayout, Pack.Right, align=Pack.Above)
prioritizationTable.packRelativeTo(middleLayout, Pack.Right, align=Pack.Above)
buttonLayout.packRelativeTo(leftLayout, Pack.Below)
buttonLayout.fill(Pack.Right)
leftLayout.fill(Pack.Below)
middleLayout.packRelativeTo(leftLayout, Pack.Right, align=Pack.Middle)
prioritizationTable.fill(Pack.Below, goal=leftLayout.y)
prioritizationTable.fill(Pack.Right)
promptLabel.setAnchor(Pack.UpperLeft, growX=True)
prioritizationTable.setAnchor(Pack.UpperLeft, growX=True, growY=True)
buttonLayout.setAnchor(Pack.Below)

View File

@ -0,0 +1,35 @@
ownerclass = 'ProblemDialog'
ownerimport = 'ProblemDialog.h'
result = Window(480, 310, "Problems!")
messageLabel = Label(result, "There were problems processing some (or all) of the files. The cause "
"of these problems are described in the table below. Those files were not removed from your "
"results.")
problemTable = TableView(result)
revealButton = Button(result, "Reveal")
closeButton = Button(result, "Close")
owner.problemTableView = problemTable
result.canMinimize = False
result.minSize = Size(300, 300)
closeButton.keyEquivalent = '\\r'
revealButton.action = Action(owner.model, 'revealSelected')
closeButton.action = Action(result, 'performClose:')
messageLabel.height *= 3 # 3 lines
revealButton.width = 150
closeButton.width = 98
messageLabel.packToCorner(Pack.UpperLeft)
messageLabel.fill(Pack.Right)
problemTable.packRelativeTo(messageLabel, Pack.Below)
problemTable.fill(Pack.Right)
revealButton.packRelativeTo(problemTable, Pack.Below)
closeButton.packRelativeTo(problemTable, Pack.Below, align=Pack.Right)
problemTable.fill(Pack.Below)
messageLabel.setAnchor(Pack.UpperLeft, growX=True)
problemTable.setAnchor(Pack.UpperLeft, growX=True, growY=True)
revealButton.setAnchor(Pack.LowerLeft)
closeButton.setAnchor(Pack.LowerRight)

View File

@ -0,0 +1,97 @@
wnerclass = 'ResultWindow'
ownerimport = 'ResultWindow.h'
result = Window(557, 400, "dupeGuru Results")
toolbar = result.createToolbar('ResultsToolbar')
table = TableView(result)
table.OBJC_CLASS = 'HSTableView'
statsLabel = Label(result, "")
contextMenu = Menu("")
#Setup toolbar items
toolbar.displayMode = const.NSToolbarDisplayModeIconOnly
directoriesToolItem = toolbar.addItem('Directories', "Directories", image='folder32')
actionToolItem = toolbar.addItem('Action', "Action")
filterToolItem = toolbar.addItem('Filter', "Filter")
optionsToolItem = toolbar.addItem('Options', "Options")
quicklookToolItem = toolbar.addItem('QuickLook', "Quick Look")
toolbar.defaultItems = [actionToolItem, optionsToolItem, quicklookToolItem, directoriesToolItem,
toolbar.flexibleSpace(), filterToolItem]
actionPopup = Popup(None)
actionPopup.pullsdown = True
actionPopup.bezelStyle = const.NSTexturedRoundedBezelStyle
actionPopup.arrowPosition = const.NSPopUpArrowAtBottom
item = actionPopup.menu.addItem("") # First item is invisible
item.hidden = True
item.image = 'NSActionTemplate'
actionPopup.width = 44
actionToolItem.view = actionPopup
filterField = SearchField(None, "Filter")
filterField.action = Action(owner, 'filter')
filterField.sendsWholeSearchString = True
filterToolItem.view = filterField
filterToolItem.minSize = Size(80, 22)
filterToolItem.maxSize = Size(300, 22)
quickLookButton = Button(None, "")
quickLookButton.bezelStyle = const.NSTexturedRoundedBezelStyle
quickLookButton.image = 'NSQuickLookTemplate'
quickLookButton.width = 44
quickLookButton.action = Action(owner, 'toggleQuicklookPanel')
quicklookToolItem.view = quickLookButton
optionsSegments = SegmentedControl(None)
optionsSegments.segmentStyle = const.NSSegmentStyleCapsule
optionsSegments.trackingMode = const.NSSegmentSwitchTrackingSelectAny
optionsSegments.font = Font(FontFamily.System, 11)
optionsSegments.addSegment("Details", 57)
optionsSegments.addSegment("Dupes Only", 82)
optionsSegments.addSegment("Delta", 48)
optionsSegments.action = Action(owner, 'changeOptions')
optionsToolItem.view = optionsSegments
# Popuplate menus
actionPopup.menu.addItem("Send Marked to Trash...", action=Action(owner, 'trashMarked'))
actionPopup.menu.addItem("Move Marked to...", action=Action(owner, 'moveMarked'))
actionPopup.menu.addItem("Copy Marked to...", action=Action(owner, 'copyMarked'))
actionPopup.menu.addItem("Remove Marked from Results", action=Action(owner, 'removeMarked'))
actionPopup.menu.addSeparator()
for menu in (actionPopup.menu, contextMenu):
menu.addItem("Remove Selected from Results", action=Action(owner, 'removeSelected'))
menu.addItem("Add Selected to Ignore List", action=Action(owner, 'ignoreSelected'))
menu.addItem("Make Selected Reference", action=Action(owner, 'switchSelected'))
menu.addSeparator()
menu.addItem("Open Selected with Default Application", action=Action(owner, 'openSelected'))
menu.addItem("Reveal Selected in Finder", action=Action(owner, 'revealSelected'))
menu.addItem("Rename Selected", action=Action(owner, 'renameSelected'))
# Doing connections
owner.filterField = filterField
owner.matches = table
owner.optionsSwitch = optionsSegments
owner.optionsToolbarItem = optionsToolItem
owner.stats = statsLabel
table.bind('rowHeight', defaults, 'values.TableFontSize', valueTransformer='vtRowHeightOffset')
# Rest of the setup
result.minSize = Size(340, 340)
result.autosaveName = 'MainWindow'
statsLabel.alignment = TextAlignment.Center
table.alternatingRows = True
table.menu = contextMenu
table.allowsColumnReordering = True
table.allowsColumnResizing = True
table.allowsColumnSelection = False
table.allowsEmptySelection = False
table.allowsMultipleSelection = True
table.allowsTypeSelect = True
table.gridStyleMask = const.NSTableViewSolidHorizontalGridLineMask
table.setAnchor(Pack.UpperLeft, growX=True, growY=True)
statsLabel.setAnchor(Pack.LowerLeft, growX=True)
# Layout
# It's a little weird to pack with a margin of -1, but if I don't do that, I get too thick of a
# border on the upper side of the table.
table.packToCorner(Pack.UpperLeft, margin=-1)
table.fill(Pack.Right, margin=0)
statsLabel.packRelativeTo(table, Pack.Below, margin=6)
statsLabel.fill(Pack.Right, margin=0)
table.fill(Pack.Below, margin=5)

View File

@ -7,9 +7,10 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import "../base/AppDelegate.h" #import "AppDelegateBase.h"
#import "ResultWindow.h" #import "ResultWindow.h"
#import "PyDupeGuru.h" #import "PyDupeGuru.h"
@interface AppDelegate : AppDelegateBase {} @interface AppDelegate : AppDelegateBase {}
- (void)removeDeadTracks;
@end @end

View File

@ -74,13 +74,8 @@ http://www.hardcoded.net/licenses/bsd_license
return [[DirectoryPanelME alloc] initWithParentApp:self]; return [[DirectoryPanelME alloc] initWithParentApp:self];
} }
//Delegate - (void)removeDeadTracks
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{ {
// index 3 is just after "Export Results to XHTML" [(ResultWindow *)[self resultWindow] removeDeadTracks];
NSMenuItem *mi = [actionsMenu insertItemWithTitle:TR(@"Remove Dead Tracks in iTunes")
action:@selector(removeDeadTracks:) keyEquivalent:@"" atIndex:3];
[mi setTarget:[self resultWindow]];
[super applicationDidFinishLaunching:aNotification];
} }
@end @end

13
cocoa/me/DetailsPanel.h Normal file
View File

@ -0,0 +1,13 @@
/*
Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "BSD" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license
*/
#import <Cocoa/Cocoa.h>
#import "DetailsPanelBase.h"
@interface DetailsPanel : DetailsPanelBase
@end

17
cocoa/me/DetailsPanel.m Normal file
View File

@ -0,0 +1,17 @@
/*
Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "BSD" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license
*/
#import "DetailsPanel.h"
#import "DetailsPanel_UI.h"
@implementation DetailsPanel
- (NSWindow *)createWindow
{
return createDetailsPanel_UI(self);
}
@end

View File

@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>English</string> <string>English</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string> <string>dupeGuru</string>
<key>CFBundleHelpBookFolder</key> <key>CFBundleHelpBookFolder</key>
<string>dupeguru_me_help</string> <string>dupeguru_me_help</string>
<key>CFBundleHelpBookName</key> <key>CFBundleHelpBookName</key>
@ -17,7 +17,7 @@
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>${PRODUCT_NAME}</string> <string>dupeGuru ME</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>

View File

@ -10,5 +10,5 @@ http://www.hardcoded.net/licenses/bsd_license
#import "../base/ResultWindow.h" #import "../base/ResultWindow.h"
@interface ResultWindow : ResultWindowBase {} @interface ResultWindow : ResultWindowBase {}
- (IBAction)removeDeadTracks:(id)sender; - (void)removeDeadTracks;
@end @end

View File

@ -70,7 +70,7 @@ http://www.hardcoded.net/licenses/bsd_license
} }
/* Actions */ /* Actions */
- (IBAction)removeDeadTracks:(id)sender - (void)removeDeadTracks
{ {
[model scanDeadTracks]; [model scanDeadTracks];
} }

View File

@ -11,3 +11,7 @@ from cocoa.inter import PySelectableList, PyColumns, PyTable
from inter.all import * from inter.all import *
from inter.app_me import PyDupeGuru from inter.app_me import PyDupeGuru
# When built under virtualenv, the dependency collector misses this module, so we have to force it
# to see the module.
import distutils.sysconfig

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:dupeguru.xcodeproj">
</FileRef>
</Workspace>

View File

@ -1,105 +0,0 @@
/* Class = "NSWindow"; title = "dupeGuru ME Preferences"; ObjectID = "2"; */
"2.title" = "dupeGuru ME Preferences";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "29"; */
"29.title" = "More results";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "30"; */
"30.title" = "Fewer results";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "31"; */
"31.title" = "Filter hardness:";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "32"; */
"32.title" = "Scan type:";
/* Class = "NSMenuItem"; title = "Content"; ObjectID = "35"; */
"35.title" = "Content";
/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "36"; */
"36.title" = "Filename";
/* Class = "NSMenuItem"; title = "Filename - Fields"; ObjectID = "37"; */
"37.title" = "Filename - Fields";
/* Class = "NSMenuItem"; title = "Tags"; ObjectID = "38"; */
"38.title" = "Tags";
/* Class = "NSMenuItem"; title = "Audio Content"; ObjectID = "39"; */
"39.title" = "Audio Content";
/* Class = "NSMenuItem"; title = "Filename - Fields (No Order)"; ObjectID = "40"; */
"40.title" = "Filename - Fields (No Order)";
/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "41"; */
"41.title" = "Word weighting";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "42"; */
"42.title" = "Can mix file kind";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "45"; */
"45.title" = "Reset to Defaults";
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "46"; */
"46.title" = "Match similar words";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "54"; */
"54.title" = "Copy and Move:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "57"; */
"57.title" = "Recreate relative path";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "58"; */
"58.title" = "Recreate absolute path";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "59"; */
"59.title" = "Right in destination";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "60"; */
"60.title" = "Automatically check for updates";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "61"; */
"61.title" = "Use regular expressions when filtering";
/* Class = "NSButtonCell"; title = "Remove empty folders after delete and move"; ObjectID = "62"; */
"62.title" = "Remove empty folders after delete and move";
/* Class = "NSTextFieldCell"; title = "Tags to scan:"; ObjectID = "63"; */
"63.title" = "Tags to scan:";
/* Class = "NSButtonCell"; title = "Track"; ObjectID = "64"; */
"64.title" = "Track";
/* Class = "NSButtonCell"; title = "Artist"; ObjectID = "65"; */
"65.title" = "Artist";
/* Class = "NSButtonCell"; title = "Album"; ObjectID = "66"; */
"66.title" = "Album";
/* Class = "NSButtonCell"; title = "Title"; ObjectID = "67"; */
"67.title" = "Title";
/* Class = "NSButtonCell"; title = "Genre"; ObjectID = "68"; */
"68.title" = "Genre";
/* Class = "NSButtonCell"; title = "Year"; ObjectID = "69"; */
"69.title" = "Year";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "116"; */
"116.label" = "Basic";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "117"; */
"117.label" = "Advanced";
/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "121"; */
"121.title" = "Custom Command (arguments: %d for dupe, %r for ref):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "126"; */
"126.title" = "Ignore duplicates hardlinking to the same file";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "130"; */
"130.title" = "Debug mode (restart required)";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "136"; */
"136.title" = "Font size:";

File diff suppressed because it is too large Load Diff

View File

@ -7,7 +7,8 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import "../base/AppDelegate.h" #import "AppDelegateBase.h"
@interface AppDelegate : AppDelegateBase {} @interface AppDelegate : AppDelegateBase {}
- (void)clearPictureCache;
@end @end

View File

@ -64,17 +64,11 @@ http://www.hardcoded.net/licenses/bsd_license
- (DetailsPanel *)createDetailsPanel - (DetailsPanel *)createDetailsPanel
{ {
return [[DetailsPanelPE alloc] initWithApp:model]; return [[DetailsPanel alloc] initWithApp:model];
} }
//Delegate - (void)clearPictureCache
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
{ {
// index 2 is just after "Clear Ingore List" [(ResultWindow *)[self resultWindow] clearPictureCache];
NSMenuItem *mi = [actionsMenu insertItemWithTitle:TR(@"Clear Picture Cache")
action:@selector(clearPictureCache:) keyEquivalent:@"P" atIndex:2];
[mi setTarget:[self resultWindow]];
[mi setKeyEquivalentModifierMask:NSCommandKeyMask|NSShiftKeyMask];
[super applicationDidFinishLaunching:aNotification];
} }
@end @end

View File

@ -7,15 +7,15 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import "../base/DetailsPanel.h" #import "DetailsPanelBase.h"
#import "PyDupeGuru.h" #import "PyDupeGuru.h"
@interface DetailsPanelPE : DetailsPanel @interface DetailsPanel : DetailsPanelBase
{ {
IBOutlet NSImageView *dupeImage; NSImageView *dupeImage;
IBOutlet NSProgressIndicator *dupeProgressIndicator; NSProgressIndicator *dupeProgressIndicator;
IBOutlet NSImageView *refImage; NSImageView *refImage;
IBOutlet NSProgressIndicator *refProgressIndicator; NSProgressIndicator *refProgressIndicator;
PyDupeGuru *pyApp; PyDupeGuru *pyApp;
BOOL _needsRefresh; BOOL _needsRefresh;
@ -23,5 +23,10 @@ http://www.hardcoded.net/licenses/bsd_license
NSString *_refPath; NSString *_refPath;
} }
@property (readwrite, retain) NSImageView *dupeImage;
@property (readwrite, retain) NSProgressIndicator *dupeProgressIndicator;
@property (readwrite, retain) NSImageView *refImage;
@property (readwrite, retain) NSProgressIndicator *refProgressIndicator;
- (id)initWithApp:(PyDupeGuru *)aApp; - (id)initWithApp:(PyDupeGuru *)aApp;
@end @end

View File

@ -12,8 +12,15 @@ http://www.hardcoded.net/licenses/bsd_license
#import "PyDupeGuru.h" #import "PyDupeGuru.h"
#import "DetailsPanel.h" #import "DetailsPanel.h"
#import "Consts.h" #import "Consts.h"
#import "DetailsPanel_UI.h"
@implementation DetailsPanel
@synthesize dupeImage;
@synthesize dupeProgressIndicator;
@synthesize refImage;
@synthesize refProgressIndicator;
@implementation DetailsPanelPE
- (id)initWithApp:(PyDupeGuru *)aApp - (id)initWithApp:(PyDupeGuru *)aApp
{ {
self = [super initWithPyRef:[aApp detailsPanel]]; self = [super initWithPyRef:[aApp detailsPanel]];
@ -23,6 +30,11 @@ http://www.hardcoded.net/licenses/bsd_license
return self; return self;
} }
- (NSWindow *)createWindow
{
return createDetailsPanel_UI(self);
}
- (void)loadImageAsync:(NSString *)imagePath - (void)loadImageAsync:(NSString *)imagePath
{ {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];

View File

@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>English</string> <string>English</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string> <string>dupeGuru</string>
<key>CFBundleHelpBookFolder</key> <key>CFBundleHelpBookFolder</key>
<string>dupeguru_pe_help</string> <string>dupeguru_pe_help</string>
<key>CFBundleHelpBookName</key> <key>CFBundleHelpBookName</key>
@ -17,7 +17,7 @@
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>${PRODUCT_NAME}</string> <string>dupeGuru PE</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>

View File

@ -10,5 +10,5 @@ http://www.hardcoded.net/licenses/bsd_license
#import "../base/ResultWindow.h" #import "../base/ResultWindow.h"
@interface ResultWindow : ResultWindowBase {} @interface ResultWindow : ResultWindowBase {}
- (IBAction)clearPictureCache:(id)sender; - (void)clearPictureCache;
@end @end

View File

@ -48,7 +48,7 @@ http://www.hardcoded.net/licenses/bsd_license
} }
/* Actions */ /* Actions */
- (IBAction)clearPictureCache:(id)sender - (void)clearPictureCache
{ {
NSString *msg = TR(@"Do you really want to remove all your cached picture analysis?"); NSString *msg = TR(@"Do you really want to remove all your cached picture analysis?");
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO

View File

@ -12,3 +12,6 @@ from cocoa.inter import PySelectableList, PyColumns, PyTable
from inter.all import * from inter.all import *
from inter.app_pe import PyDupeGuru from inter.app_pe import PyDupeGuru
# When built under virtualenv, the dependency collector misses this module, so we have to force it
# to see the module.
import distutils.sysconfig

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:dupeguru.xcodeproj">
</FileRef>
</Workspace>

View File

@ -1,18 +0,0 @@
/* Class = "NSPanel"; title = "Details of Selected File"; ObjectID = "5"; */
"5.title" = "Details of Selected File";
/* Class = "NSTableColumn"; headerCell.title = "Selected"; ObjectID = "9"; */
"9.headerCell.title" = "Selected";
/* Class = "NSTableColumn"; headerCell.title = "Reference"; ObjectID = "10"; */
"10.headerCell.title" = "Reference";
/* Class = "NSTableColumn"; headerCell.title = "Attribute"; ObjectID = "11"; */
"11.headerCell.title" = "Attribute";
/* Class = "NSTextFieldCell"; title = "Selected"; ObjectID = "33"; */
"33.title" = "Selected";
/* Class = "NSTextFieldCell"; title = "Reference"; ObjectID = "35"; */
"35.title" = "Reference";

View File

@ -1,846 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
<data>
<int key="IBDocument.SystemTarget">1060</int>
<string key="IBDocument.SystemVersion">11B26</string>
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
<string key="IBDocument.AppKitVersion">1138</string>
<string key="IBDocument.HIToolboxVersion">566.00</string>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="NS.object.0">1617</string>
</object>
<array key="IBDocument.IntegratedClassDependencies">
<string>NSScroller</string>
<string>NSSplitView</string>
<string>NSTableHeaderView</string>
<string>NSScrollView</string>
<string>NSImageView</string>
<string>NSTextFieldCell</string>
<string>NSProgressIndicator</string>
<string>NSTableView</string>
<string>NSImageCell</string>
<string>NSCustomObject</string>
<string>NSCustomView</string>
<string>NSView</string>
<string>NSWindowTemplate</string>
<string>NSTextField</string>
<string>NSTableColumn</string>
</array>
<array key="IBDocument.PluginDependencies">
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
</array>
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="433298071">
<object class="NSCustomObject" id="449950342">
<string key="NSClassName">DetailsPanelPE</string>
</object>
<object class="NSCustomObject" id="175405098">
<string key="NSClassName">FirstResponder</string>
</object>
<object class="NSCustomObject" id="757309215">
<string key="NSClassName">NSApplication</string>
</object>
<object class="NSWindowTemplate" id="1023276826">
<int key="NSWindowStyleMask">155</int>
<int key="NSWindowBacking">2</int>
<string key="NSWindowRect">{{634, 317}, {593, 398}}</string>
<int key="NSWTFlags">-260571136</int>
<string key="NSWindowTitle">Details of Selected File</string>
<object class="NSMutableString" key="NSWindowClass">
<characters key="NS.bytes">NSPanel</characters>
</object>
<object class="NSMutableString" key="NSViewClass">
<characters key="NS.bytes">View</characters>
</object>
<nil key="NSUserInterfaceItemIdentifier"/>
<string key="NSWindowContentMinSize">{451, 161}</string>
<object class="NSView" key="NSWindowView" id="1024886486">
<reference key="NSNextResponder"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSScrollView" id="842494181">
<reference key="NSNextResponder" ref="1024886486"/>
<int key="NSvFlags">266</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSClipView" id="47651407">
<reference key="NSNextResponder" ref="842494181"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTableView" id="1061505056">
<reference key="NSNextResponder" ref="47651407"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{591, 147}</string>
<reference key="NSSuperview" ref="47651407"/>
<reference key="NSWindow"/>
<int key="NSTag">2</int>
<bool key="NSEnabled">YES</bool>
<object class="NSTableHeaderView" key="NSHeaderView" id="449183719">
<reference key="NSNextResponder" ref="205382409"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{591, 17}</string>
<reference key="NSSuperview" ref="205382409"/>
<reference key="NSWindow"/>
<reference key="NSTableView" ref="1061505056"/>
</object>
<object class="_NSCornerView" key="NSCornerView" id="429654016">
<reference key="NSNextResponder" ref="842494181"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-26, 0}, {16, 17}}</string>
<reference key="NSSuperview" ref="842494181"/>
<reference key="NSWindow"/>
</object>
<array class="NSMutableArray" key="NSTableColumns">
<object class="NSTableColumn" id="761242770">
<string key="NSIdentifier">0</string>
<double key="NSWidth">74</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Attribute</string>
<object class="NSFont" key="NSSupport" id="26">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">11</double>
<int key="NSfFlags">3100</int>
</object>
<object class="NSColor" key="NSBackgroundColor" id="77031760">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5OQA</bytes>
</object>
<object class="NSColor" key="NSTextColor" id="578432702">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerTextColor</string>
<object class="NSColor" key="NSColor" id="585838671">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="1001899861">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="1061505056"/>
<object class="NSColor" key="NSBackgroundColor" id="240658091">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlBackgroundColor</string>
<object class="NSColor" key="NSColor" id="823392961">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor" id="194446219">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<reference key="NSColor" ref="585838671"/>
</object>
</object>
<int key="NSResizingMask">2</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="1061505056"/>
</object>
<object class="NSTableColumn" id="245708436">
<string key="NSIdentifier">1</string>
<double key="NSWidth">260</double>
<double key="NSMinWidth">40</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Selected</string>
<reference key="NSSupport" ref="26"/>
<reference key="NSBackgroundColor" ref="77031760"/>
<reference key="NSTextColor" ref="578432702"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="322739197">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="1061505056"/>
<reference key="NSBackgroundColor" ref="240658091"/>
<reference key="NSTextColor" ref="194446219"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="1061505056"/>
</object>
<object class="NSTableColumn" id="421059304">
<string key="NSIdentifier">2</string>
<double key="NSWidth">248</double>
<double key="NSMinWidth">56.4755859375</double>
<double key="NSMaxWidth">1000</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<int key="NSCellFlags">75628096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents">Reference</string>
<reference key="NSSupport" ref="26"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">headerColor</string>
<object class="NSColor" key="NSColor" id="401909016">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
<reference key="NSTextColor" ref="578432702"/>
</object>
<object class="NSTextFieldCell" key="NSDataCell" id="999491006">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<reference key="NSSupport" ref="26"/>
<reference key="NSControlView" ref="1061505056"/>
<reference key="NSBackgroundColor" ref="240658091"/>
<reference key="NSTextColor" ref="194446219"/>
</object>
<int key="NSResizingMask">3</int>
<bool key="NSIsResizeable">YES</bool>
<reference key="NSTableView" ref="1061505056"/>
</object>
</array>
<double key="NSIntercellSpacingWidth">3</double>
<double key="NSIntercellSpacingHeight">2</double>
<reference key="NSBackgroundColor" ref="401909016"/>
<object class="NSColor" key="NSGridColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">gridColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC41AA</bytes>
</object>
</object>
<double key="NSRowHeight">14</double>
<int key="NSTvFlags">1111523328</int>
<reference key="NSDelegate"/>
<reference key="NSDataSource"/>
<int key="NSColumnAutoresizingStyle">1</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
<bool key="NSAllowsTypeSelect">YES</bool>
<int key="NSTableViewDraggingDestinationStyle">0</int>
<int key="NSTableViewGroupRowStyle">1</int>
</object>
</array>
<string key="NSFrame">{{1, 17}, {591, 147}}</string>
<reference key="NSSuperview" ref="842494181"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="1061505056"/>
<reference key="NSDocView" ref="1061505056"/>
<reference key="NSBGColor" ref="240658091"/>
<int key="NScvFlags">4</int>
</object>
<object class="NSScroller" id="90145020">
<reference key="NSNextResponder" ref="842494181"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-30, 17}, {15, 147}}</string>
<reference key="NSSuperview" ref="842494181"/>
<reference key="NSWindow"/>
<reference key="NSTarget" ref="842494181"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.91874998807907104</double>
</object>
<object class="NSScroller" id="23980189">
<reference key="NSNextResponder" ref="842494181"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{-100, -100}, {394, 15}}</string>
<reference key="NSSuperview" ref="842494181"/>
<reference key="NSWindow"/>
<int key="NSsFlags">1</int>
<reference key="NSTarget" ref="842494181"/>
<string key="NSAction">_doScroller:</string>
<double key="NSPercent">0.96332520246505737</double>
</object>
<object class="NSClipView" id="205382409">
<reference key="NSNextResponder" ref="842494181"/>
<int key="NSvFlags">2304</int>
<array class="NSMutableArray" key="NSSubviews">
<reference ref="449183719"/>
</array>
<string key="NSFrame">{{1, 0}, {591, 17}}</string>
<reference key="NSSuperview" ref="842494181"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="449183719"/>
<reference key="NSDocView" ref="449183719"/>
<reference key="NSBGColor" ref="240658091"/>
<int key="NScvFlags">4</int>
</object>
<reference ref="429654016"/>
</array>
<string key="NSFrame">{{0, 233}, {593, 165}}</string>
<reference key="NSSuperview" ref="1024886486"/>
<reference key="NSWindow"/>
<reference key="NSNextKeyView" ref="47651407"/>
<int key="NSsFlags">133650</int>
<reference key="NSVScroller" ref="90145020"/>
<reference key="NSHScroller" ref="23980189"/>
<reference key="NSContentView" ref="47651407"/>
<reference key="NSHeaderClipView" ref="205382409"/>
<reference key="NSCornerView" ref="429654016"/>
<bytes key="NSScrollAmts">QSAAAEEgAABBgAAAQYAAAA</bytes>
</object>
<object class="NSSplitView" id="1006675149">
<reference key="NSNextResponder" ref="1024886486"/>
<int key="NSvFlags">274</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSCustomView" id="101939068">
<reference key="NSNextResponder" ref="1006675149"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="723437775">
<reference key="NSNextResponder" ref="101939068"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{-3, 201}, {294, 17}}</string>
<reference key="NSSuperview" ref="101939068"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="517184416">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">138412032</int>
<string key="NSContents">Selected</string>
<object class="NSFont" key="NSSupport" id="872545298">
<string key="NSName">LucidaGrande</string>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="723437775"/>
<object class="NSColor" key="NSBackgroundColor" id="125808400">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<reference key="NSColor" ref="823392961"/>
</object>
<reference key="NSTextColor" ref="194446219"/>
</object>
</object>
<object class="NSImageView" id="664547713">
<reference key="NSNextResponder" ref="101939068"/>
<int key="NSvFlags">274</int>
<set class="NSMutableSet" key="NSDragTypes">
<string>Apple PDF pasteboard type</string>
<string>Apple PICT pasteboard type</string>
<string>Apple PNG pasteboard type</string>
<string>NSFilenamesPboardType</string>
<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
<string>NeXT TIFF v4.0 pasteboard type</string>
</set>
<string key="NSFrameSize">{288, 193}</string>
<reference key="NSSuperview" ref="101939068"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="327656199">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">33554432</int>
<object class="NSCustomResource" key="NSContents" id="548486768">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSApplicationIcon</string>
</object>
<int key="NSAlign">0</int>
<int key="NSScale">0</int>
<int key="NSStyle">0</int>
<bool key="NSAnimates">NO</bool>
</object>
<bool key="NSEditable">YES</bool>
</object>
<object class="NSProgressIndicator" id="127754691">
<reference key="NSNextResponder" ref="101939068"/>
<int key="NSvFlags">1289</int>
<object class="NSPSMatrix" key="NSDrawMatrix"/>
<string key="NSFrame">{{255, 201}, {16, 16}}</string>
<reference key="NSSuperview" ref="101939068"/>
<reference key="NSWindow"/>
<int key="NSpiFlags">28938</int>
<double key="NSMaxValue">100</double>
</object>
</array>
<string key="NSFrameSize">{291, 225}</string>
<reference key="NSSuperview" ref="1006675149"/>
<reference key="NSWindow"/>
<string key="NSClassName">NSView</string>
</object>
<object class="NSCustomView" id="971244171">
<reference key="NSNextResponder" ref="1006675149"/>
<int key="NSvFlags">256</int>
<array class="NSMutableArray" key="NSSubviews">
<object class="NSTextField" id="905396720">
<reference key="NSNextResponder" ref="971244171"/>
<int key="NSvFlags">266</int>
<string key="NSFrame">{{-3, 203}, {295, 17}}</string>
<reference key="NSSuperview" ref="971244171"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="334112854">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">138412032</int>
<string key="NSContents">Reference</string>
<reference key="NSSupport" ref="872545298"/>
<reference key="NSControlView" ref="905396720"/>
<reference key="NSBackgroundColor" ref="125808400"/>
<reference key="NSTextColor" ref="194446219"/>
</object>
</object>
<object class="NSImageView" id="89184363">
<reference key="NSNextResponder" ref="971244171"/>
<int key="NSvFlags">274</int>
<set class="NSMutableSet" key="NSDragTypes">
<string>Apple PDF pasteboard type</string>
<string>Apple PICT pasteboard type</string>
<string>Apple PNG pasteboard type</string>
<string>NSFilenamesPboardType</string>
<string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
<string>NeXT TIFF v4.0 pasteboard type</string>
</set>
<string key="NSFrameSize">{289, 195}</string>
<reference key="NSSuperview" ref="971244171"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSImageCell" key="NSCell" id="966367135">
<int key="NSCellFlags">130560</int>
<int key="NSCellFlags2">33554432</int>
<reference key="NSContents" ref="548486768"/>
<int key="NSAlign">0</int>
<int key="NSScale">0</int>
<int key="NSStyle">0</int>
<bool key="NSAnimates">NO</bool>
</object>
<bool key="NSEditable">YES</bool>
</object>
<object class="NSProgressIndicator" id="40327027">
<reference key="NSNextResponder" ref="971244171"/>
<int key="NSvFlags">1289</int>
<object class="NSPSMatrix" key="NSDrawMatrix"/>
<string key="NSFrame">{{257, 203}, {16, 16}}</string>
<reference key="NSSuperview" ref="971244171"/>
<reference key="NSWindow"/>
<int key="NSpiFlags">28938</int>
<double key="NSMaxValue">100</double>
</object>
</array>
<string key="NSFrame">{{300, 0}, {293, 225}}</string>
<reference key="NSSuperview" ref="1006675149"/>
<reference key="NSWindow"/>
<string key="NSClassName">NSView</string>
</object>
</array>
<string key="NSFrameSize">{593, 225}</string>
<reference key="NSSuperview" ref="1024886486"/>
<reference key="NSWindow"/>
<bool key="NSIsVertical">YES</bool>
</object>
</array>
<string key="NSFrameSize">{593, 398}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
</object>
<string key="NSScreenRect">{{0, 0}, {1440, 878}}</string>
<string key="NSMinSize">{451, 177}</string>
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
<string key="NSFrameAutosaveName">DetailsPanel</string>
<bool key="NSWindowIsRestorable">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array class="NSMutableArray" key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">window</string>
<reference key="source" ref="449950342"/>
<reference key="destination" ref="1023276826"/>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">detailsTable</string>
<reference key="source" ref="449950342"/>
<reference key="destination" ref="1061505056"/>
</object>
<int key="connectionID">13</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">refImage</string>
<reference key="source" ref="449950342"/>
<reference key="destination" ref="89184363"/>
</object>
<int key="connectionID">25</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">dupeImage</string>
<reference key="source" ref="449950342"/>
<reference key="destination" ref="664547713"/>
</object>
<int key="connectionID">26</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">dupeProgressIndicator</string>
<reference key="source" ref="449950342"/>
<reference key="destination" ref="127754691"/>
</object>
<int key="connectionID">30</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">refProgressIndicator</string>
<reference key="source" ref="449950342"/>
<reference key="destination" ref="40327027"/>
</object>
<int key="connectionID">31</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">dataSource</string>
<reference key="source" ref="1061505056"/>
<reference key="destination" ref="449950342"/>
</object>
<int key="connectionID">43</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="433298071"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="449950342"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="175405098"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="1023276826"/>
<array class="NSMutableArray" key="children">
<reference ref="1024886486"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">details</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="1024886486"/>
<array class="NSMutableArray" key="children">
<reference ref="842494181"/>
<reference ref="1006675149"/>
</array>
<reference key="parent" ref="1023276826"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="842494181"/>
<array class="NSMutableArray" key="children">
<reference ref="1061505056"/>
<reference ref="90145020"/>
<reference ref="23980189"/>
<reference ref="449183719"/>
</array>
<reference key="parent" ref="1024886486"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="1061505056"/>
<array class="NSMutableArray" key="children">
<reference ref="245708436"/>
<reference ref="421059304"/>
<reference ref="761242770"/>
</array>
<reference key="parent" ref="842494181"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="245708436"/>
<array class="NSMutableArray" key="children">
<reference ref="322739197"/>
</array>
<reference key="parent" ref="1061505056"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="421059304"/>
<array class="NSMutableArray" key="children">
<reference ref="999491006"/>
</array>
<reference key="parent" ref="1061505056"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="761242770"/>
<array class="NSMutableArray" key="children">
<reference ref="1001899861"/>
</array>
<reference key="parent" ref="1061505056"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">20</int>
<reference key="object" ref="1006675149"/>
<array class="NSMutableArray" key="children">
<reference ref="101939068"/>
<reference ref="971244171"/>
</array>
<reference key="parent" ref="1024886486"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">18</int>
<reference key="object" ref="101939068"/>
<array class="NSMutableArray" key="children">
<reference ref="723437775"/>
<reference ref="664547713"/>
<reference ref="127754691"/>
</array>
<reference key="parent" ref="1006675149"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">14</int>
<reference key="object" ref="723437775"/>
<array class="NSMutableArray" key="children">
<reference ref="517184416"/>
</array>
<reference key="parent" ref="101939068"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">16</int>
<reference key="object" ref="664547713"/>
<array class="NSMutableArray" key="children">
<reference ref="327656199"/>
</array>
<reference key="parent" ref="101939068"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">27</int>
<reference key="object" ref="127754691"/>
<reference key="parent" ref="101939068"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">19</int>
<reference key="object" ref="971244171"/>
<array class="NSMutableArray" key="children">
<reference ref="905396720"/>
<reference ref="89184363"/>
<reference ref="40327027"/>
</array>
<reference key="parent" ref="1006675149"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">15</int>
<reference key="object" ref="905396720"/>
<array class="NSMutableArray" key="children">
<reference ref="334112854"/>
</array>
<reference key="parent" ref="971244171"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">17</int>
<reference key="object" ref="89184363"/>
<array class="NSMutableArray" key="children">
<reference ref="966367135"/>
</array>
<reference key="parent" ref="971244171"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">29</int>
<reference key="object" ref="40327027"/>
<reference key="parent" ref="971244171"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">33</int>
<reference key="object" ref="517184416"/>
<reference key="parent" ref="723437775"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">34</int>
<reference key="object" ref="327656199"/>
<reference key="parent" ref="664547713"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">35</int>
<reference key="object" ref="334112854"/>
<reference key="parent" ref="905396720"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">36</int>
<reference key="object" ref="966367135"/>
<reference key="parent" ref="89184363"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">37</int>
<reference key="object" ref="322739197"/>
<reference key="parent" ref="245708436"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">38</int>
<reference key="object" ref="999491006"/>
<reference key="parent" ref="421059304"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">39</int>
<reference key="object" ref="1001899861"/>
<reference key="parent" ref="761242770"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">40</int>
<reference key="object" ref="90145020"/>
<reference key="parent" ref="842494181"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">41</int>
<reference key="object" ref="23980189"/>
<reference key="parent" ref="842494181"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">42</int>
<reference key="object" ref="449183719"/>
<reference key="parent" ref="842494181"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="757309215"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="15.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="16.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="17.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="18.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="19.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="20.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="33.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="34.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="35.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="37.IBShouldRemoveOnLegacySave"/>
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="38.IBShouldRemoveOnLegacySave"/>
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="39.IBShouldRemoveOnLegacySave"/>
<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="40.IBShouldRemoveOnLegacySave"/>
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="41.IBShouldRemoveOnLegacySave"/>
<string key="42.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<boolean value="YES" key="42.IBShouldRemoveOnLegacySave"/>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.IBWindowTemplateEditedContentRect">{{88, 453}, {593, 398}}</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">43</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">DetailsPanel</string>
<string key="superclassName">HSWindowController</string>
<object class="NSMutableDictionary" key="outlets">
<string key="NS.key.0">detailsTable</string>
<string key="NS.object.0">NSTableView</string>
</object>
<object class="NSMutableDictionary" key="toOneOutletInfosByName">
<string key="NS.key.0">detailsTable</string>
<object class="IBToOneOutletInfo" key="NS.object.0">
<string key="name">detailsTable</string>
<string key="candidateClassName">NSTableView</string>
</object>
</object>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/DetailsPanel.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">DetailsPanelPE</string>
<string key="superclassName">DetailsPanel</string>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="dupeImage">NSImageView</string>
<string key="dupeProgressIndicator">NSProgressIndicator</string>
<string key="refImage">NSImageView</string>
<string key="refProgressIndicator">NSProgressIndicator</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="dupeImage">
<string key="name">dupeImage</string>
<string key="candidateClassName">NSImageView</string>
</object>
<object class="IBToOneOutletInfo" key="dupeProgressIndicator">
<string key="name">dupeProgressIndicator</string>
<string key="candidateClassName">NSProgressIndicator</string>
</object>
<object class="IBToOneOutletInfo" key="refImage">
<string key="name">refImage</string>
<string key="candidateClassName">NSImageView</string>
</object>
<object class="IBToOneOutletInfo" key="refProgressIndicator">
<string key="name">refProgressIndicator</string>
<string key="candidateClassName">NSProgressIndicator</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/DetailsPanelPE.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">HSWindowController</string>
<string key="superclassName">NSWindowController</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">./Classes/HSWindowController.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<real value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1050" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<real value="4100" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NS.key.0">NSApplicationIcon</string>
<string key="NS.object.0">{128, 128}</string>
</object>
</data>
</archive>

View File

@ -1,69 +0,0 @@
/* Class = "NSWindow"; title = "dupeGuru PE Preferences"; ObjectID = "2"; */
"2.title" = "dupeGuru PE Preferences";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "18"; */
"18.title" = "More results";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "19"; */
"19.title" = "Fewer results";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "20"; */
"20.title" = "Filter hardness:";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "21"; */
"21.title" = "Can mix file kind";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "24"; */
"24.title" = "Reset to Defaults";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "25"; */
"25.title" = "Copy and Move:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "28"; */
"28.title" = "Recreate relative path";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "29"; */
"29.title" = "Recreate absolute path";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "30"; */
"30.title" = "Right in destination";
/* Class = "NSButtonCell"; title = "Match pictures of different dimensions"; ObjectID = "31"; */
"31.title" = "Match pictures of different dimensions";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "32"; */
"32.title" = "Automatically check for updates";
/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "33"; */
"33.title" = "Remove empty folders on delete or move";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "34"; */
"34.title" = "Use regular expressions when filtering";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "60"; */
"60.label" = "Basic";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "61"; */
"61.label" = "Advanced";
/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "65"; */
"65.title" = "Custom Command (arguments: %d for dupe, %r for ref):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "70"; */
"70.title" = "Ignore duplicates hardlinking to the same file";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "75"; */
"75.title" = "Debug mode (restart required)";
/* Class = "NSMenuItem"; title = "EXIF Timestamp"; ObjectID = "92"; */
"92.title" = "EXIF Timestamp";
/* Class = "NSMenuItem"; title = "Contents"; ObjectID = "93"; */
"93.title" = "Contents";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "94"; */
"94.title" = "Scan type:";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "104"; */
"104.title" = "Font size:";

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,70 @@
ownerclass = 'DetailsPanel'
ownerimport = 'DetailsPanel.h'
result = Panel(593, 398, "Details of Selected File")
table = TableView(result)
split = SplitView(result, 2, vertical=True)
leftSplit, rightSplit = split.subviews
selectedLabel = Label(leftSplit, "Selected")
selectedImage = ImageView(leftSplit, 'NSApplicationIcon')
leftSpinner = ProgressIndicator(leftSplit)
referenceLabel = Label(rightSplit, "Reference")
referenceImage = ImageView(rightSplit, 'NSApplicationIcon')
rightSpinner = ProgressIndicator(rightSplit)
owner.detailsTable = table
owner.dupeImage = selectedImage
owner.dupeProgressIndicator = leftSpinner
owner.refImage = referenceImage
owner.refProgressIndicator = rightSpinner
table.dataSource = owner
result.style = PanelStyle.Utility
result.xProportion = 0.6
result.yProportion = 0.6
result.canMinimize = False
result.autosaveName = 'DetailsPanel'
result.minSize = Size(451, 240)
table.allowsColumnReordering = False
table.allowsColumnSelection = False
table.allowsMultipleSelection = False
table.font = Font(FontFamily.System, FontSize.SmallSystem)
table.rowHeight = 14
table.editable = False
col = table.addColumn('0', "Attribute", 70)
col.autoResizable = True
col = table.addColumn('1', "Selected", 198)
col.autoResizable = True
col = table.addColumn('2', "Reference", 172)
col.autoResizable = True
table.height = 165
sides = [
(leftSplit, selectedLabel, selectedImage, leftSpinner),
(rightSplit, referenceLabel, referenceImage, rightSpinner),
]
for subSplit, label, image, spinner in sides:
label.alignment = TextAlignment.Center
spinner.style = const.NSProgressIndicatorSpinningStyle
spinner.controlSize = const.NSSmallControlSize
spinner.displayedWhenStopped = False
label.packToCorner(Pack.UpperLeft, margin=0)
label.fill(Pack.Right, margin=0)
label.setAnchor(Pack.UpperLeft, growX=True)
image.packRelativeTo(label, Pack.Below)
image.fill(Pack.LowerRight, margin=0)
image.setAnchor(Pack.UpperLeft, growX=True, growY=True)
spinner.y = label.y
spinner.x = subSplit.width - 30
spinner.setAnchor(Pack.UpperRight)
table.packToCorner(Pack.UpperLeft, margin=0)
table.fill(Pack.Right, margin=0)
table.setAnchor(Pack.UpperLeft, growX=True)
split.packRelativeTo(table, Pack.Below)
split.fill(Pack.LowerRight, margin=0)
split.setAnchor(Pack.UpperLeft, growX=True, growY=True)

View File

@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license
*/ */
#import <Cocoa/Cocoa.h> #import <Cocoa/Cocoa.h>
#import "../base/AppDelegate.h" #import "AppDelegateBase.h"
#import "PyDupeGuru.h" #import "PyDupeGuru.h"
@interface AppDelegate : AppDelegateBase {} @interface AppDelegate : AppDelegateBase {}

13
cocoa/se/DetailsPanel.h Normal file
View File

@ -0,0 +1,13 @@
/*
Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "BSD" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license
*/
#import <Cocoa/Cocoa.h>
#import "DetailsPanelBase.h"
@interface DetailsPanel : DetailsPanelBase
@end

17
cocoa/se/DetailsPanel.m Normal file
View File

@ -0,0 +1,17 @@
/*
Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
This software is licensed under the "BSD" License as described in the "LICENSE" file,
which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/bsd_license
*/
#import "DetailsPanel.h"
#import "DetailsPanel_UI.h"
@implementation DetailsPanel
- (NSWindow *)createWindow
{
return createDetailsPanel_UI(self);
}
@end

View File

@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key> <key>CFBundleDevelopmentRegion</key>
<string>English</string> <string>English</string>
<key>CFBundleExecutable</key> <key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string> <string>dupeGuru</string>
<key>CFBundleHelpBookFolder</key> <key>CFBundleHelpBookFolder</key>
<string>dupeguru_help</string> <string>dupeguru_help</string>
<key>CFBundleHelpBookName</key> <key>CFBundleHelpBookName</key>
@ -17,7 +17,7 @@
<key>CFBundleInfoDictionaryVersion</key> <key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string> <string>6.0</string>
<key>CFBundleName</key> <key>CFBundleName</key>
<string>${PRODUCT_NAME}</string> <string>dupeGuru</string>
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
@ -26,8 +26,6 @@
<string>{version}</string> <string>{version}</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>{version}</string> <string>{version}</string>
<key>NSMainNibFile</key>
<string>MainMenu</string>
<key>NSPrincipalClass</key> <key>NSPrincipalClass</key>
<string>NSApplication</string> <string>NSApplication</string>
<key>NSHumanReadableCopyright</key> <key>NSHumanReadableCopyright</key>

View File

@ -10,4 +10,8 @@ install_gettext_trans_under_cocoa()
from cocoa.inter import PySelectableList, PyColumns, PyTable from cocoa.inter import PySelectableList, PyColumns, PyTable
from inter.all import * from inter.all import *
from inter.app_se import PyDupeGuru from inter.app_se import PyDupeGuru
# When built under virtualenv, the dependency collector misses this module, so we have to force it
# to see the module.
import distutils.sysconfig

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:dupeguru.xcodeproj">
</FileRef>
</Workspace>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
<true/>
</dict>
</plist>

View File

@ -1,81 +0,0 @@
/* Class = "NSWindow"; title = "dupeGuru Preferences"; ObjectID = "52"; */
"52.title" = "dupeGuru Preferences";
/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "74"; */
"74.title" = "More results";
/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "75"; */
"75.title" = "Fewer results";
/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "76"; */
"76.title" = "Filter hardness:";
/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "77"; */
"77.title" = "Scan type:";
/* Class = "NSMenuItem"; title = "Content"; ObjectID = "80"; */
"80.title" = "Content";
/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "81"; */
"81.title" = "Filename";
/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "82"; */
"82.title" = "Word weighting";
/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "83"; */
"83.title" = "Can mix file kind";
/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "86"; */
"86.title" = "Reset to Defaults";
/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "87"; */
"87.title" = "Match similar words";
/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "88"; */
"88.title" = "Copy and Move:";
/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "91"; */
"91.title" = "Recreate relative path";
/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "92"; */
"92.title" = "Recreate absolute path";
/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "93"; */
"93.title" = "Right in destination";
/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "94"; */
"94.title" = "Automatically check for updates";
/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "96"; */
"96.title" = "Remove empty folders on delete or move";
/* Class = "NSButtonCell"; title = "Ignore files smaller than:"; ObjectID = "97"; */
"97.title" = "Ignore files smaller than:";
/* Class = "NSTextFieldCell"; title = "KB"; ObjectID = "100"; */
"100.title" = "KB";
/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "124"; */
"124.label" = "Basic";
/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "125"; */
"125.label" = "Advanced";
/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "129"; */
"129.title" = "Use regular expressions when filtering";
/* Class = "NSTextFieldCell"; title = "Custom command (arguments: %d for dupe, %r for ref):"; ObjectID = "134"; */
"134.title" = "Custom command (arguments: %d for dupe, %r for ref):";
/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "142"; */
"142.title" = "Ignore duplicates hardlinking to the same file";
/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "146"; */
"146.title" = "Debug mode (restart required)";
/* Class = "NSMenuItem"; title = "Folders"; ObjectID = "149"; */
"149.title" = "Folders";
/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "155"; */
"155.title" = "Font size:";

File diff suppressed because it is too large Load Diff

BIN
cocoa/waf vendored Executable file

Binary file not shown.

75
cocoa/wscript Normal file
View File

@ -0,0 +1,75 @@
#!/usr/bin/env python
import os
import os.path as op
top = '.'
out = 'build'
def options(opt):
opt.load('compiler_c python')
opt.add_option('--edition', default='se', help="dupeGuru edition to build (se, me pe)")
def configure(conf):
if conf.options.edition not in ('se', 'me', 'pe'):
conf.options.edition = 'se'
print("Building dupeGuru {}".format(conf.options.edition.upper()))
conf.env.DGEDITION = conf.options.edition
# We use clang to compile our app
conf.env.CC = 'clang'
# WAF has a "pyembed" feature allowing us to automatically find Python and compile by linking
# to it. The problem is that because we made a copy of the Python library to mangle with its
# "install name", we don't actually want to link to our installed python, but to our mangled
# Python. The line below tells the "pyembed" WAF feature to look in ../build for Python.
conf.env.LIBPATH_PYEMBED = op.abspath('../build')
# I did a lot of fiddling-around, but I didn't find how to tell WAF the Python library name
# to look for without making the whole compilation process fail, so I just create a symlink
# with the name WAF is looking for.
if not op.exists('../build/libpython3.2.dylib'):
os.symlink('../build/Python', '../build/libpython3.2.dylib')
# The rest is standard WAF code that you can find the the python and macapp demos.
conf.load('compiler_c python')
conf.check_python_version((3,2,0))
conf.check_python_headers()
conf.env.FRAMEWORK_COCOA = 'Cocoa'
conf.env.ARCH_COCOA = ['i386', 'x86_64']
# Add cocoalib dir to the framework search path so we can find Sparkle.
conf.env.CFLAGS = ['-F'+op.abspath('../cocoalib')]
conf.env.LINKFLAGS = ['-F'+op.abspath('../cocoalib')]
def build(ctx):
# What do we compile?
cocoalib_node = ctx.srcnode.find_dir('..').find_dir('cocoalib')
cocoalib_folders = ['controllers', 'views']
cocoalib_includes = [cocoalib_node] + [cocoalib_node.find_dir(folder) for folder in cocoalib_folders]
cocoalib_uses = ['NSEventAdditions', 'Dialogs', 'HSAboutBox', 'HSFairwareReminder', 'Utils',
'HSPyUtil', 'ProgressController', 'HSRecentFiles', 'HSQuicklook', 'ValueTransformers',
'NSImageAdditions', 'NSNotificationAdditions',
'views/HSTableView', 'views/HSOutlineView', 'views/NSIndexPathAdditions',
'views/NSTableViewAdditions',
'controllers/HSColumns', 'controllers/HSGUIController', 'controllers/HSTable',
'controllers/HSOutline', 'controllers/HSPopUpList', 'controllers/HSSelectableList']
cocoalib_src = [cocoalib_node.find_node(usename + '.m') for usename in cocoalib_uses] + cocoalib_node.ant_glob('autogen/*.m')
project_folders = ['autogen', 'base', ctx.env.DGEDITION]
project_src = sum([ctx.srcnode.ant_glob('%s/*.m' % folder) for folder in project_folders], [])
# Compile
ctx.program(
# "pyembed" takes care of the include and linking stuff to compile an app that embed Python.
features = 'c cprogram pyembed',
target = ctx.bldnode.make_node("dupeGuru"),
source = cocoalib_src + project_src,
includes = project_folders + cocoalib_includes,
use = 'COCOA',
# Because our python lib's install name is "@rpath/Python", we need to set the executable's
# rpath. Fortunately, WAF supports it and we just need to supply the "rpath" argument.
rpath = '@executable_path/../Frameworks',
framework = ['Sparkle', 'Quartz'],
)
from waflib import TaskGen
@TaskGen.extension('.m')
def m_hook(self, node):
"""Alias .m files to be compiled the same as .c files, gcc will do the right thing."""
return self.create_compiled_task('c', node)

View File

@ -27,9 +27,9 @@ def parse_args():
def package_cocoa(edition, args): def package_cocoa(edition, args):
app_path = { app_path = {
'se': 'cocoa/se/dupeGuru.app', 'se': 'build/dupeGuru.app',
'me': 'cocoa/me/dupeGuru ME.app', 'me': 'build/dupeGuru ME.app',
'pe': 'cocoa/pe/dupeGuru PE.app', 'pe': 'build/dupeGuru PE.app',
}[edition] }[edition]
package_cocoa_app_in_dmg(app_path, '.', args) package_cocoa_app_in_dmg(app_path, '.', args)

View File

@ -2,3 +2,4 @@
objp>=1.2.0 objp>=1.2.0
pluginbuilder>=1.1.0 pluginbuilder>=1.1.0
appscript>=1.0.0 appscript>=1.0.0
xibless>=0.4.0

View File

@ -4,7 +4,7 @@ import sys
import os import os
def main(): def main():
return os.system('open {{app_path}}') return os.system('open "{{app_path}}"')
if __name__ == '__main__': if __name__ == '__main__':
sys.exit(main()) sys.exit(main())