mirror of
https://github.com/arsenetar/dupeguru.git
synced 2025-03-09 21:24:36 +00:00
Completed the conversion wo objp with the conversion of PyDupeGuru. I had to temporarily disable error handling though.
--HG-- branch : objp
This commit is contained in:
parent
937ea73c87
commit
950cd0c341
14
build.py
14
build.py
@ -179,8 +179,8 @@ def build_cocoa_bridging_interfaces():
|
||||
import objp.p2o
|
||||
add_to_pythonpath('cocoa')
|
||||
add_to_pythonpath('cocoalib')
|
||||
from cocoa.inter2 import (PyGUIObject2, GUIObjectView, PyColumns2, ColumnsView, PyOutline2,
|
||||
OutlineView, PySelectableList2, SelectableListView, PyTable2, TableView)
|
||||
from cocoa.inter2 import (PyGUIObject, GUIObjectView, PyColumns, ColumnsView, PyOutline,
|
||||
OutlineView, PySelectableList, SelectableListView, PyTable, TableView, PyFairware)
|
||||
from inter.details_panel import PyDetailsPanel, DetailsPanelView
|
||||
from inter.directory_outline import PyDirectoryOutline, DirectoryOutlineView
|
||||
from inter.extra_fairware_reminder import PyExtraFairwareReminder, ExtraFairwareReminderView
|
||||
@ -189,14 +189,16 @@ def build_cocoa_bridging_interfaces():
|
||||
from inter.problem_dialog import PyProblemDialog
|
||||
from inter.result_table import PyResultTable, ResultTableView
|
||||
from inter.stats_label import PyStatsLabel, StatsLabelView
|
||||
allclasses = [PyGUIObject2, PyColumns2, PyOutline2, PySelectableList2, PyTable2, PyDetailsPanel,
|
||||
PyDirectoryOutline, PyExtraFairwareReminder, PyPrioritizeDialog, PyPrioritizeList,
|
||||
PyProblemDialog, PyResultTable, PyStatsLabel]
|
||||
from inter.app import PyDupeGuruBase, DupeGuruView
|
||||
from inter.app_se import PyDupeGuru
|
||||
allclasses = [PyGUIObject, PyColumns, PyOutline, PySelectableList, PyTable, PyFairware,
|
||||
PyDetailsPanel, PyDirectoryOutline, PyExtraFairwareReminder, PyPrioritizeDialog,
|
||||
PyPrioritizeList, PyProblemDialog, PyResultTable, PyStatsLabel, PyDupeGuruBase, PyDupeGuru]
|
||||
for class_ in allclasses:
|
||||
objp.o2p.generate_objc_code(class_, 'cocoa/autogen', inherit=True)
|
||||
allclasses = [GUIObjectView, ColumnsView, OutlineView, SelectableListView, TableView,
|
||||
DetailsPanelView, DirectoryOutlineView, ExtraFairwareReminderView, PrioritizeDialogView,
|
||||
PrioritizeListView, ResultTableView, StatsLabelView]
|
||||
PrioritizeListView, ResultTableView, StatsLabelView, DupeGuruView]
|
||||
for class_ in allclasses:
|
||||
clsspec = objp.o2p.spec_from_python_class(class_)
|
||||
clsname = class_.__name__
|
||||
|
@ -16,11 +16,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
@interface AppDelegateBase : NSObject
|
||||
{
|
||||
IBOutlet PyDupeGuruBase *py;
|
||||
IBOutlet NSMenu *recentResultsMenu;
|
||||
IBOutlet NSMenu *actionsMenu;
|
||||
IBOutlet NSMenu *columnsMenu;
|
||||
|
||||
PyDupeGuru *model;
|
||||
ResultWindowBase *_resultWindow;
|
||||
DirectoryPanel *_directoryPanel;
|
||||
DetailsPanel *_detailsPanel;
|
||||
@ -30,7 +30,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
}
|
||||
|
||||
/* Virtual */
|
||||
- (PyDupeGuruBase *)py;
|
||||
- (PyDupeGuru *)model;
|
||||
- (ResultWindowBase *)createResultWindow;
|
||||
- (DirectoryPanel *)createDirectoryPanel;
|
||||
- (DetailsPanel *)createDetailsPanel;
|
||||
|
@ -25,7 +25,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
[py bindCocoa:self];
|
||||
model = [[PyDupeGuru alloc] init];
|
||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||
/* Because the pref pane is lazily loaded, we have to manually do the update check if the
|
||||
preference is set.
|
||||
@ -45,7 +45,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
/* Virtual */
|
||||
|
||||
- (PyDupeGuruBase *)py { return py; }
|
||||
- (PyDupeGuru *)model
|
||||
{
|
||||
return model;
|
||||
}
|
||||
|
||||
- (ResultWindowBase *)createResultWindow
|
||||
{
|
||||
@ -104,7 +107,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
[op setTitle:TR(@"Select a results file to load")];
|
||||
if ([op runModal] == NSOKButton) {
|
||||
NSString *filename = [[op filenames] objectAtIndex:0];
|
||||
[py loadResultsFrom:filename];
|
||||
[model loadResultsFrom:filename];
|
||||
[[self recentResults] addFile:filename];
|
||||
}
|
||||
}
|
||||
@ -125,7 +128,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
- (IBAction)showAboutBox:(id)sender
|
||||
{
|
||||
if (_aboutBox == nil) {
|
||||
_aboutBox = [[HSAboutBox alloc] initWithApp:py];
|
||||
_aboutBox = [[HSAboutBox alloc] initWithApp:model];
|
||||
}
|
||||
[[_aboutBox window] makeKeyAndOrderFront:sender];
|
||||
}
|
||||
@ -157,9 +160,9 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
/* Delegate */
|
||||
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
||||
{
|
||||
[[ProgressController mainProgressController] setWorker:py];
|
||||
[py initialRegistrationSetup];
|
||||
[py loadSession];
|
||||
[[ProgressController mainProgressController] setWorker:model];
|
||||
[model initialRegistrationSetup];
|
||||
[model loadSession];
|
||||
}
|
||||
|
||||
- (void)applicationWillBecomeActive:(NSNotification *)aNotification
|
||||
@ -171,7 +174,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
|
||||
{
|
||||
if ([py resultsAreModified]) {
|
||||
if ([model resultsAreModified]) {
|
||||
NSString *msg = TR(@"You have unsaved results, do you really want to quit?");
|
||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) { // NO
|
||||
return NSTerminateCancel;
|
||||
@ -186,10 +189,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
NSInteger sc = [ud integerForKey:@"sessionCountSinceLastIgnorePurge"];
|
||||
if (sc >= 10) {
|
||||
sc = -1;
|
||||
[py purgeIgnoreList];
|
||||
[model purgeIgnoreList];
|
||||
}
|
||||
sc++;
|
||||
[py saveSession];
|
||||
[model saveSession];
|
||||
[ud setInteger:sc forKey:@"sessionCountSinceLastIgnorePurge"];
|
||||
// NSApplication does not release nib instances objects, we must do it manually
|
||||
// Well, it isn't needed because the memory is freed anyway (we are quitting the application
|
||||
@ -200,7 +203,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (void)recentFileClicked:(NSString *)path
|
||||
{
|
||||
[py loadResultsFrom:path];
|
||||
[model loadResultsFrom:path];
|
||||
}
|
||||
|
||||
|
||||
@ -226,11 +229,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (void)showFairwareNagWithPrompt:(NSString *)prompt
|
||||
{
|
||||
[HSFairwareReminder showFairwareNagWithApp:[self py] prompt:prompt];
|
||||
[HSFairwareReminder showFairwareNagWithApp:[self model] prompt:prompt];
|
||||
}
|
||||
|
||||
- (void)showDemoNagWithPrompt:(NSString *)prompt
|
||||
{
|
||||
[HSFairwareReminder showDemoNagWithApp:[self py] prompt:prompt];
|
||||
[HSFairwareReminder showDemoNagWithApp:[self model] prompt:prompt];
|
||||
}
|
||||
@end
|
||||
|
@ -7,8 +7,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
*/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "HSWindowController.h"
|
||||
#import "PyApp.h"
|
||||
#import "PyDetailsPanel.h"
|
||||
|
||||
@interface DetailsPanel : NSWindowController
|
||||
|
@ -7,12 +7,12 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
*/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "HSOutline2.h"
|
||||
#import "HSOutline.h"
|
||||
#import "PyDirectoryOutline.h"
|
||||
|
||||
#define DGAddedFoldersNotification @"DGAddedFoldersNotification"
|
||||
|
||||
@interface DirectoryOutline : HSOutline2 {}
|
||||
@interface DirectoryOutline : HSOutline {}
|
||||
- (id)initWithOutlineView:(HSOutlineView *)aOutlineView;
|
||||
- (PyDirectoryOutline *)py;
|
||||
@end;
|
@ -22,7 +22,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
IBOutlet NSButton *removeButton;
|
||||
|
||||
AppDelegateBase *_app;
|
||||
PyDupeGuruBase *_py;
|
||||
PyDupeGuru *model;
|
||||
HSRecentFiles *_recentDirectories;
|
||||
DirectoryOutline *outline;
|
||||
BOOL _alwaysShowPopUp;
|
||||
|
@ -18,8 +18,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
self = [super initWithWindowNibName:@"DirectoryPanel"];
|
||||
[self window];
|
||||
_app = aParentApp;
|
||||
_py = [_app py];
|
||||
[[self window] setTitle:[_py appName]];
|
||||
model = [_app model];
|
||||
[[self window] setTitle:[model appName]];
|
||||
_alwaysShowPopUp = NO;
|
||||
[self fillPopUpMenu];
|
||||
_recentDirectories = [[HSRecentFiles alloc] initWithName:@"recentDirectories" menu:[addButtonPopUp menu]];
|
||||
@ -107,7 +107,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
/* Public */
|
||||
- (void)addDirectory:(NSString *)directory
|
||||
{
|
||||
NSInteger r = [[_py addDirectory:directory] intValue];
|
||||
NSInteger r = [model addDirectory:directory];
|
||||
if (r) {
|
||||
NSString *m = @"";
|
||||
if (r == 1) {
|
||||
|
@ -8,8 +8,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "PyExtraFairwareReminder.h"
|
||||
#import "HSWindowController.h"
|
||||
#import "PyApp.h"
|
||||
|
||||
@interface ExtraFairwareReminder : NSWindowController
|
||||
{
|
||||
|
@ -7,10 +7,9 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
*/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "PyApp.h"
|
||||
#import "PyPrioritizeDialog.h"
|
||||
#import "HSPopUpList2.h"
|
||||
#import "HSSelectableList2.h"
|
||||
#import "HSPopUpList.h"
|
||||
#import "HSSelectableList.h"
|
||||
#import "PrioritizeList.h"
|
||||
|
||||
@interface PrioritizeDialog : NSWindowController
|
||||
@ -20,8 +19,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
IBOutlet NSTableView *prioritizationTableView;
|
||||
|
||||
PyPrioritizeDialog *py;
|
||||
HSPopUpList2 *categoryPopUp;
|
||||
HSSelectableList2 *criteriaList;
|
||||
HSPopUpList *categoryPopUp;
|
||||
HSSelectableList *criteriaList;
|
||||
PrioritizeList *prioritizationList;
|
||||
}
|
||||
- (id)init;
|
||||
|
@ -16,8 +16,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
[self window];
|
||||
py = [[PyPrioritizeDialog alloc] initWithModel:findHackishModel(@"prioritize_dialog")];
|
||||
[py bindCallback:createCallback(@"PrioritizeDialogView", self)];
|
||||
categoryPopUp = [[HSPopUpList2 alloc] initWithPyRef:[[self py] categoryList] popupView:categoryPopUpView];
|
||||
criteriaList = [[HSSelectableList2 alloc] initWithPyRef:[[self py] criteriaList] tableView:criteriaTableView];
|
||||
categoryPopUp = [[HSPopUpList alloc] initWithPyRef:[[self py] categoryList] popupView:categoryPopUpView];
|
||||
criteriaList = [[HSSelectableList alloc] initWithPyRef:[[self py] criteriaList] tableView:criteriaTableView];
|
||||
prioritizationList = [[PrioritizeList alloc] initWithPyRef:[[self py] prioritizationList] tableView:prioritizationTableView];
|
||||
[py connect];
|
||||
return self;
|
||||
|
@ -7,10 +7,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
*/
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "HSSelectableList2.h"
|
||||
#import "HSSelectableList.h"
|
||||
#import "PyPrioritizeList.h"
|
||||
|
||||
@interface PrioritizeList : HSSelectableList2 {}
|
||||
@interface PrioritizeList : HSSelectableList {}
|
||||
- (id)initWithPyRef:(PyObject *)aPyRef tableView:(NSTableView *)aTableView;
|
||||
- (PyPrioritizeList *)model;
|
||||
@end
|
@ -8,14 +8,14 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import "PyProblemDialog.h"
|
||||
#import "HSTable2.h"
|
||||
#import "HSTable.h"
|
||||
|
||||
@interface ProblemDialog : NSWindowController
|
||||
{
|
||||
IBOutlet NSTableView *problemTableView;
|
||||
|
||||
PyProblemDialog *model;
|
||||
HSTable2 *problemTable;
|
||||
HSTable *problemTable;
|
||||
}
|
||||
- (id)init;
|
||||
|
||||
|
@ -15,7 +15,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
self = [super initWithWindowNibName:@"ProblemDialog"];
|
||||
[self window]; //So the detailsTable is initialized.
|
||||
model = [[PyProblemDialog alloc] initWithModel:findHackishModel(@"problem_dialog")];
|
||||
problemTable = [[HSTable2 alloc] initWithPyRef:[model problemTable] tableView:problemTableView];
|
||||
problemTable = [[HSTable alloc] initWithPyRef:[model problemTable] tableView:problemTableView];
|
||||
[self initializeColumns];
|
||||
[model connect];
|
||||
[[problemTable model] connect];
|
||||
|
@ -1,61 +0,0 @@
|
||||
/*
|
||||
Copyright 2011 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 "PyResultTable.h"
|
||||
#import "PyStatsLabel.h"
|
||||
#import "PyApp.h"
|
||||
|
||||
@interface PyDupeGuruBase : PyApp
|
||||
- (void)bindCocoa:(id)cocoa;
|
||||
- (PyResultTable *)resultTable;
|
||||
- (PyStatsLabel *)statsLabel;
|
||||
//Actions
|
||||
- (NSNumber *)addDirectory:(NSString *)name;
|
||||
- (void)loadResultsFrom:(NSString *)filename;
|
||||
- (void)saveResultsAs:(NSString *)filename;
|
||||
- (void)loadSession;
|
||||
- (void)saveSession;
|
||||
- (void)clearIgnoreList;
|
||||
- (void)purgeIgnoreList;
|
||||
- (NSString *)exportToXHTML;
|
||||
- (void)invokeCommand:(NSString *)cmd;
|
||||
|
||||
- (void)doScan;
|
||||
|
||||
- (void)toggleSelectedMark;
|
||||
- (void)markAll;
|
||||
- (void)markInvert;
|
||||
- (void)markNone;
|
||||
|
||||
- (void)addSelectedToIgnoreList;
|
||||
- (void)openSelected;
|
||||
- (void)revealSelected;
|
||||
- (void)makeSelectedReference;
|
||||
- (void)applyFilter:(NSString *)filter;
|
||||
|
||||
- (void)copyOrMove:(NSNumber *)aCopy markedTo:(NSString *)destination recreatePath:(NSNumber *)aRecreateType;
|
||||
- (void)deleteMarked;
|
||||
- (void)hardlinkMarked;
|
||||
- (void)removeMarked;
|
||||
|
||||
//Data
|
||||
- (NSNumber *)getIgnoreListCount;
|
||||
- (NSNumber *)getMarkCount;
|
||||
- (BOOL)scanWasProblematic;
|
||||
- (BOOL)resultsAreModified;
|
||||
|
||||
//Scanning options
|
||||
- (void)setScanType:(NSNumber *)scan_type;
|
||||
- (void)setMinMatchPercentage:(NSNumber *)percentage;
|
||||
- (void)setMixFileKind:(BOOL)mix_file_kind;
|
||||
- (void)setEscapeFilterRegexp:(BOOL)escape_filter_regexp;
|
||||
- (void)setRemoveEmptyFolders:(BOOL)remove_empty_folders;
|
||||
- (void)setIgnoreHardlinkMatches:(BOOL)ignore_hardlink_matches;
|
||||
- (void)setSizeThreshold:(NSInteger)size_threshold;
|
||||
@end
|
@ -8,10 +8,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <Quartz/Quartz.h>
|
||||
#import "HSTable2.h"
|
||||
#import "HSTable.h"
|
||||
#import "PyResultTable.h"
|
||||
|
||||
@interface ResultTable : HSTable2 <QLPreviewPanelDataSource, QLPreviewPanelDelegate>
|
||||
@interface ResultTable : HSTable <QLPreviewPanelDataSource, QLPreviewPanelDelegate>
|
||||
{
|
||||
NSSet *_deltaColumns;
|
||||
}
|
||||
|
@ -12,7 +12,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
#import "Consts.h"
|
||||
#import "HSQuicklook.h"
|
||||
|
||||
@interface HSTable2 (private)
|
||||
@interface HSTable (private)
|
||||
- (void)setPySelection;
|
||||
- (void)setViewSelection;
|
||||
@end
|
||||
|
@ -25,7 +25,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
IBOutlet NSSearchField *filterField;
|
||||
|
||||
AppDelegateBase *app;
|
||||
PyDupeGuruBase *py;
|
||||
PyDupeGuru *model;
|
||||
NSMenu *columnsMenu;
|
||||
ResultTable *table;
|
||||
StatsLabel *statsLabel;
|
||||
|
@ -19,8 +19,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
{
|
||||
self = [super initWithWindowNibName:@"ResultWindow"];
|
||||
app = aApp;
|
||||
py = [app py];
|
||||
[[self window] setTitle:fmt(@"%@ Results", [py appName])];
|
||||
model = [app model];
|
||||
[[self window] setTitle:fmt(@"%@ Results", [model appName])];
|
||||
columnsMenu = [app columnsMenu];
|
||||
/* Put a cute iTunes-like bottom bar */
|
||||
[[self window] setContentBorderThickness:28 forEdge:NSMinYEdge];
|
||||
@ -76,7 +76,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (void)sendMarkedToTrash:(BOOL)hardlinkDeleted
|
||||
{
|
||||
NSInteger mark_count = [[py getMarkCount] intValue];
|
||||
NSInteger mark_count = [model getMarkCount];
|
||||
if (!mark_count) {
|
||||
return;
|
||||
}
|
||||
@ -88,12 +88,12 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
return;
|
||||
}
|
||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||
[py setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
||||
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
||||
if (hardlinkDeleted) {
|
||||
[py hardlinkMarked];
|
||||
[model hardlinkMarked];
|
||||
}
|
||||
else {
|
||||
[py deleteMarked];
|
||||
[model deleteMarked];
|
||||
}
|
||||
}
|
||||
|
||||
@ -107,13 +107,13 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
/* Actions */
|
||||
- (IBAction)clearIgnoreList:(id)sender
|
||||
{
|
||||
NSInteger i = n2i([py getIgnoreListCount]);
|
||||
NSInteger i = [model getIgnoreListCount];
|
||||
if (!i)
|
||||
return;
|
||||
NSString *msg = [NSString stringWithFormat:TR(@"Do you really want to remove all %d items from the ignore list?"),i];
|
||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
||||
return;
|
||||
[py clearIgnoreList];
|
||||
[model clearIgnoreList];
|
||||
}
|
||||
|
||||
- (IBAction)changeOptions:(id)sender
|
||||
@ -132,7 +132,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (IBAction)copyMarked:(id)sender
|
||||
{
|
||||
NSInteger mark_count = [[py getMarkCount] intValue];
|
||||
NSInteger mark_count = [model getMarkCount];
|
||||
if (!mark_count)
|
||||
return;
|
||||
NSOpenPanel *op = [NSOpenPanel openPanel];
|
||||
@ -144,7 +144,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
if ([op runModal] == NSOKButton) {
|
||||
NSString *directory = [[op filenames] objectAtIndex:0];
|
||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||
[py copyOrMove:b2n(YES) markedTo:directory recreatePath:[ud objectForKey:@"recreatePathType"]];
|
||||
[model copyOrMove:YES markedTo:directory recreatePath:n2b([ud objectForKey:@"recreatePathType"])];
|
||||
}
|
||||
}
|
||||
|
||||
@ -160,15 +160,15 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (IBAction)exportToXHTML:(id)sender
|
||||
{
|
||||
NSString *exported = [py exportToXHTML];
|
||||
NSString *exported = [model exportToXHTML];
|
||||
[[NSWorkspace sharedWorkspace] openFile:exported];
|
||||
}
|
||||
|
||||
- (IBAction)filter:(id)sender
|
||||
{
|
||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||
[py setEscapeFilterRegexp:!n2b([ud objectForKey:@"useRegexpFilter"])];
|
||||
[py applyFilter:[filterField stringValue]];
|
||||
[model setEscapeFilterRegexp:!n2b([ud objectForKey:@"useRegexpFilter"])];
|
||||
[model applyFilter:[filterField stringValue]];
|
||||
}
|
||||
|
||||
- (IBAction)ignoreSelected:(id)sender
|
||||
@ -179,7 +179,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
NSString *msg = [NSString stringWithFormat:TR(@"All selected %d matches are going to be ignored in all subsequent scans. Continue?"),selectedDupeCount];
|
||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
||||
return;
|
||||
[py addSelectedToIgnoreList];
|
||||
[model addSelectedToIgnoreList];
|
||||
}
|
||||
|
||||
- (IBAction)invokeCustomCommand:(id)sender
|
||||
@ -187,7 +187,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||
NSString *cmd = [ud stringForKey:@"CustomCommand"];
|
||||
if ((cmd != nil) && ([cmd length] > 0)) {
|
||||
[py invokeCommand:cmd];
|
||||
[model invokeCommand:cmd];
|
||||
}
|
||||
else {
|
||||
[Dialogs showMessage:TR(@"You have no custom command set up. Set it up in your preferences.")];
|
||||
@ -196,27 +196,27 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (IBAction)markAll:(id)sender
|
||||
{
|
||||
[py markAll];
|
||||
[model markAll];
|
||||
}
|
||||
|
||||
- (IBAction)markInvert:(id)sender
|
||||
{
|
||||
[py markInvert];
|
||||
[model markInvert];
|
||||
}
|
||||
|
||||
- (IBAction)markNone:(id)sender
|
||||
{
|
||||
[py markNone];
|
||||
[model markNone];
|
||||
}
|
||||
|
||||
- (IBAction)markSelected:(id)sender
|
||||
{
|
||||
[py toggleSelectedMark];
|
||||
[model toggleSelectedMark];
|
||||
}
|
||||
|
||||
- (IBAction)moveMarked:(id)sender
|
||||
{
|
||||
NSInteger mark_count = [[py getMarkCount] intValue];
|
||||
NSInteger mark_count = [model getMarkCount];
|
||||
if (!mark_count)
|
||||
return;
|
||||
NSOpenPanel *op = [NSOpenPanel openPanel];
|
||||
@ -228,8 +228,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
if ([op runModal] == NSOKButton) {
|
||||
NSString *directory = [[op filenames] objectAtIndex:0];
|
||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||
[py setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
||||
[py copyOrMove:b2n(NO) markedTo:directory recreatePath:[ud objectForKey:@"recreatePathType"]];
|
||||
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
||||
[model copyOrMove:NO markedTo:directory recreatePath:n2b([ud objectForKey:@"recreatePathType"])];
|
||||
}
|
||||
}
|
||||
|
||||
@ -239,23 +239,23 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
return;
|
||||
}
|
||||
[matches selectRowIndexes:[NSIndexSet indexSetWithIndex:[matches clickedRow]] byExtendingSelection:NO];
|
||||
[py openSelected];
|
||||
[model openSelected];
|
||||
}
|
||||
|
||||
- (IBAction)openSelected:(id)sender
|
||||
{
|
||||
[py openSelected];
|
||||
[model openSelected];
|
||||
}
|
||||
|
||||
- (IBAction)removeMarked:(id)sender
|
||||
{
|
||||
int mark_count = [[py getMarkCount] intValue];
|
||||
int mark_count = [model getMarkCount];
|
||||
if (!mark_count)
|
||||
return;
|
||||
NSString *msg = [NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",mark_count];
|
||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
||||
return;
|
||||
[py removeMarked];
|
||||
[model removeMarked];
|
||||
}
|
||||
|
||||
- (IBAction)removeSelected:(id)sender
|
||||
@ -288,7 +288,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
|
||||
- (IBAction)revealSelected:(id)sender
|
||||
{
|
||||
[py revealSelected];
|
||||
[model revealSelected];
|
||||
}
|
||||
|
||||
- (IBAction)saveResults:(id)sender
|
||||
@ -298,24 +298,24 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
[sp setAllowedFileTypes:[NSArray arrayWithObject:@"dupeguru"]];
|
||||
[sp setTitle:TR(@"Select a file to save your results to")];
|
||||
if ([sp runModal] == NSOKButton) {
|
||||
[py saveResultsAs:[sp filename]];
|
||||
[model saveResultsAs:[sp filename]];
|
||||
[[app recentResults] addFile:[sp filename]];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)startDuplicateScan:(id)sender
|
||||
{
|
||||
if ([py resultsAreModified]) {
|
||||
if ([model resultsAreModified]) {
|
||||
if ([Dialogs askYesNo:TR(@"You have unsaved results, do you really want to continue?")] == NSAlertSecondButtonReturn) // NO
|
||||
return;
|
||||
}
|
||||
[self setScanOptions];
|
||||
[py doScan];
|
||||
[model doScan];
|
||||
}
|
||||
|
||||
- (IBAction)switchSelected:(id)sender
|
||||
{
|
||||
[py makeSelectedReference];
|
||||
[model makeSelectedReference];
|
||||
}
|
||||
|
||||
- (IBAction)toggleColumn:(id)sender
|
||||
@ -382,7 +382,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
{
|
||||
id lastAction = [[ProgressController mainProgressController] jobId];
|
||||
if ([lastAction isEqualTo:jobCopy]) {
|
||||
if ([py scanWasProblematic]) {
|
||||
if ([model scanWasProblematic]) {
|
||||
[problemDialog showWindow:self];
|
||||
}
|
||||
else {
|
||||
@ -390,7 +390,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
}
|
||||
}
|
||||
else if ([lastAction isEqualTo:jobMove]) {
|
||||
if ([py scanWasProblematic]) {
|
||||
if ([model scanWasProblematic]) {
|
||||
[problemDialog showWindow:self];
|
||||
}
|
||||
else {
|
||||
@ -398,7 +398,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
}
|
||||
}
|
||||
else if ([lastAction isEqualTo:jobDelete]) {
|
||||
if ([py scanWasProblematic]) {
|
||||
if ([model scanWasProblematic]) {
|
||||
[problemDialog showWindow:self];
|
||||
}
|
||||
else {
|
||||
|
@ -2,13 +2,13 @@
|
||||
<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>
|
||||
<string key="IBDocument.SystemVersion">11C74</string>
|
||||
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
|
||||
<string key="IBDocument.AppKitVersion">1138.23</string>
|
||||
<string key="IBDocument.HIToolboxVersion">567.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>
|
||||
<string key="NS.object.0">1938</string>
|
||||
</object>
|
||||
<array key="IBDocument.IntegratedClassDependencies">
|
||||
<string>NSMenu</string>
|
||||
@ -18,7 +18,10 @@
|
||||
<array key="IBDocument.PluginDependencies">
|
||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
</array>
|
||||
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
|
||||
<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="248533267">
|
||||
<object class="NSCustomObject" id="77446904">
|
||||
<string key="NSClassName">NSApplication</string>
|
||||
@ -668,31 +671,12 @@
|
||||
<object class="NSCustomObject" id="91622651">
|
||||
<string key="NSClassName">AppDelegate</string>
|
||||
</object>
|
||||
<object class="NSCustomObject" id="875360857">
|
||||
<string key="NSClassName">PyDupeGuru</string>
|
||||
</object>
|
||||
<object class="NSCustomObject" id="23220930">
|
||||
<string key="NSClassName">SUUpdater</string>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||
<array class="NSMutableArray" key="connectionRecords">
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">performMiniaturize:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="1033736835"/>
|
||||
</object>
|
||||
<int key="connectionID">37</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">arrangeInFront:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="941358624"/>
|
||||
</object>
|
||||
<int key="connectionID">39</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">terminate:</string>
|
||||
@ -725,14 +709,6 @@
|
||||
</object>
|
||||
<int key="connectionID">153</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">performZoom:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="781972485"/>
|
||||
</object>
|
||||
<int key="connectionID">198</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
@ -742,20 +718,28 @@
|
||||
<int key="connectionID">207</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="133452984"/>
|
||||
<reference key="destination" ref="91622651"/>
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">performMiniaturize:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="1033736835"/>
|
||||
</object>
|
||||
<int key="connectionID">208</int>
|
||||
<int key="connectionID">37</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">py</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="875360857"/>
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">arrangeInFront:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="941358624"/>
|
||||
</object>
|
||||
<int key="connectionID">614</int>
|
||||
<int key="connectionID">39</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">performZoom:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="781972485"/>
|
||||
</object>
|
||||
<int key="connectionID">198</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
@ -765,14 +749,6 @@
|
||||
</object>
|
||||
<int key="connectionID">925</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">checkForUpdates:</string>
|
||||
<reference key="source" ref="23220930"/>
|
||||
<reference key="destination" ref="688262014"/>
|
||||
</object>
|
||||
<int key="connectionID">951</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">cut:</string>
|
||||
@ -797,46 +773,6 @@
|
||||
</object>
|
||||
<int key="connectionID">1005</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">openWebsite:</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="440547877"/>
|
||||
</object>
|
||||
<int key="connectionID">1024</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="23220930"/>
|
||||
<reference key="destination" ref="91622651"/>
|
||||
</object>
|
||||
<int key="connectionID">1175</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">showAboutBox:</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="436112936"/>
|
||||
</object>
|
||||
<int key="connectionID">1232</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">openHelp:</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="914881560"/>
|
||||
</object>
|
||||
<int key="connectionID">1233</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">recentResultsMenu</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="782784943"/>
|
||||
</object>
|
||||
<int key="connectionID">1242</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">clearIgnoreList:</string>
|
||||
@ -1013,6 +949,70 @@
|
||||
</object>
|
||||
<int key="connectionID">1266</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">reprioritizeResults:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="200019883"/>
|
||||
</object>
|
||||
<int key="connectionID">1278</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">removeMarked:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="733607971"/>
|
||||
</object>
|
||||
<int key="connectionID">1279</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">toggleQuicklookPanel:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="343354529"/>
|
||||
</object>
|
||||
<int key="connectionID">1282</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="133452984"/>
|
||||
<reference key="destination" ref="91622651"/>
|
||||
</object>
|
||||
<int key="connectionID">208</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">openWebsite:</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="440547877"/>
|
||||
</object>
|
||||
<int key="connectionID">1024</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">showAboutBox:</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="436112936"/>
|
||||
</object>
|
||||
<int key="connectionID">1232</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">openHelp:</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="914881560"/>
|
||||
</object>
|
||||
<int key="connectionID">1233</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">recentResultsMenu</string>
|
||||
<reference key="source" ref="91622651"/>
|
||||
<reference key="destination" ref="782784943"/>
|
||||
</object>
|
||||
<int key="connectionID">1242</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">columnsMenu</string>
|
||||
@ -1063,27 +1063,19 @@
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">reprioritizeResults:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="200019883"/>
|
||||
<string key="label">checkForUpdates:</string>
|
||||
<reference key="source" ref="23220930"/>
|
||||
<reference key="destination" ref="688262014"/>
|
||||
</object>
|
||||
<int key="connectionID">1278</int>
|
||||
<int key="connectionID">951</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">removeMarked:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="733607971"/>
|
||||
<object class="IBOutletConnection" key="connection">
|
||||
<string key="label">delegate</string>
|
||||
<reference key="source" ref="23220930"/>
|
||||
<reference key="destination" ref="91622651"/>
|
||||
</object>
|
||||
<int key="connectionID">1279</int>
|
||||
</object>
|
||||
<object class="IBConnectionRecord">
|
||||
<object class="IBActionConnection" key="connection">
|
||||
<string key="label">toggleQuicklookPanel:</string>
|
||||
<reference key="source" ref="83466988"/>
|
||||
<reference key="destination" ref="343354529"/>
|
||||
</object>
|
||||
<int key="connectionID">1282</int>
|
||||
<int key="connectionID">1175</int>
|
||||
</object>
|
||||
</array>
|
||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||
@ -1508,12 +1500,6 @@
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">AppDelegate</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">613</int>
|
||||
<reference key="object" ref="875360857"/>
|
||||
<reference key="parent" ref="0"/>
|
||||
<string key="objectName">PyDupeGuru</string>
|
||||
</object>
|
||||
<object class="IBObjectRecord">
|
||||
<int key="objectID">949</int>
|
||||
<reference key="object" ref="23220930"/>
|
||||
@ -1654,7 +1640,6 @@
|
||||
<string key="603.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="604.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="605.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="613.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="618.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="619.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
<string key="707.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||
@ -1772,6 +1757,25 @@
|
||||
<string key="minorKey">./Classes/AppDelegateBase.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">HSOutlineView</string>
|
||||
<string key="superclassName">NSOutlineView</string>
|
||||
<object class="NSMutableDictionary" key="actions">
|
||||
<string key="NS.key.0">copy:</string>
|
||||
<string key="NS.object.0">id</string>
|
||||
</object>
|
||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||
<string key="NS.key.0">copy:</string>
|
||||
<object class="IBActionInfo" key="NS.object.0">
|
||||
<string key="name">copy:</string>
|
||||
<string key="candidateClassName">id</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/HSOutlineView.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">HSTableView</string>
|
||||
<string key="superclassName">NSTableView</string>
|
||||
@ -1780,17 +1784,9 @@
|
||||
<string key="minorKey">./Classes/HSTableView.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>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">PrioritizeDialog</string>
|
||||
<string key="superclassName">HSWindowController</string>
|
||||
<string key="superclassName">NSWindowController</string>
|
||||
<dictionary class="NSMutableDictionary" key="actions">
|
||||
<string key="addSelected:">id</string>
|
||||
<string key="cancel:">id</string>
|
||||
@ -1841,7 +1837,7 @@
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">ProblemDialog</string>
|
||||
<string key="superclassName">HSWindowController</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>
|
||||
@ -1869,38 +1865,6 @@
|
||||
<string key="minorKey">./Classes/ProblemDialog.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">PyApp</string>
|
||||
<string key="superclassName">PyFairware</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/PyApp.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">PyDupeGuru</string>
|
||||
<string key="superclassName">PyDupeGuruBase</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/PyDupeGuru.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">PyDupeGuruBase</string>
|
||||
<string key="superclassName">PyApp</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/PyDupeGuruBase.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">PyFairware</string>
|
||||
<string key="superclassName">NSObject</string>
|
||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||
<string key="majorKey">IBProjectSource</string>
|
||||
<string key="minorKey">./Classes/PyFairware.h</string>
|
||||
</object>
|
||||
</object>
|
||||
<object class="IBPartialClassDescription">
|
||||
<string key="className">ResultWindowBase</string>
|
||||
<string key="superclassName">NSWindowController</string>
|
||||
@ -2127,7 +2091,7 @@
|
||||
</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"/>
|
||||
<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>
|
||||
|
@ -1,14 +1,13 @@
|
||||
import logging
|
||||
|
||||
from objp.util import pyref, dontwrap
|
||||
from jobprogress import job
|
||||
import cocoa
|
||||
from cocoa import install_exception_hook, proxy
|
||||
from cocoa.inter import signature, subproxy, PyFairware
|
||||
from cocoa.inter2 import PyFairware, FairwareView
|
||||
from hscommon.trans import trget
|
||||
|
||||
from core.app import JobType
|
||||
from .result_table import PyResultTable
|
||||
from .stats_label import PyStatsLabel
|
||||
|
||||
tr = trget('ui')
|
||||
|
||||
@ -20,129 +19,138 @@ JOBID2TITLE = {
|
||||
JobType.Delete: tr("Sending to Trash"),
|
||||
}
|
||||
|
||||
class DupeGuruView(FairwareView):
|
||||
def showExtraFairwareReminder(self): pass
|
||||
|
||||
class PyDupeGuruBase(PyFairware):
|
||||
FOLLOW_PROTOCOLS = ['Worker']
|
||||
|
||||
def _init(self, modelclass):
|
||||
logging.basicConfig(level=logging.WARNING, format='%(levelname)s %(message)s')
|
||||
install_exception_hook()
|
||||
appdata = proxy.getAppdataPath()
|
||||
self.py = modelclass(self, appdata)
|
||||
self.model = modelclass(self, appdata)
|
||||
self.progress = cocoa.ThreadedJobPerformer()
|
||||
|
||||
def bindCocoa_(self, cocoa):
|
||||
self.cocoa = cocoa
|
||||
#---Sub-proxies
|
||||
def detailsPanel(self) -> pyref:
|
||||
return self.model.details_panel
|
||||
|
||||
resultTable = subproxy('resultTable', 'result_table', PyResultTable)
|
||||
statsLabel = subproxy('statsLabel', 'stats_label', PyStatsLabel)
|
||||
def directoryTree(self) -> pyref:
|
||||
return self.model.directory_tree
|
||||
|
||||
def extraFairwareReminder(self) -> pyref:
|
||||
return self.model.extra_fairware_reminder
|
||||
|
||||
def prioritizeDialog(self) -> pyref:
|
||||
return self.model.prioritize_dialog
|
||||
|
||||
def statsLabel(self) -> pyref:
|
||||
return self.model.stats_label
|
||||
|
||||
def resultTable(self) -> pyref:
|
||||
return self.model.result_table
|
||||
|
||||
#---Directories
|
||||
def addDirectory_(self, directory):
|
||||
return self.py.add_directory(directory)
|
||||
def addDirectory_(self, directory: str) -> int:
|
||||
return self.model.add_directory(directory)
|
||||
|
||||
#---Results
|
||||
def clearIgnoreList(self):
|
||||
self.py.scanner.ignore_list.Clear()
|
||||
self.model.scanner.ignore_list.Clear()
|
||||
|
||||
def doScan(self):
|
||||
self.py.start_scanning()
|
||||
self.model.start_scanning()
|
||||
|
||||
def exportToXHTML(self):
|
||||
return self.py.export_to_xhtml()
|
||||
def exportToXHTML(self) -> str:
|
||||
return self.model.export_to_xhtml()
|
||||
|
||||
def loadSession(self):
|
||||
self.py.load()
|
||||
self.model.load()
|
||||
|
||||
def loadResultsFrom_(self, filename):
|
||||
self.py.load_from(filename)
|
||||
def loadResultsFrom_(self, filename: str):
|
||||
self.model.load_from(filename)
|
||||
|
||||
def markAll(self):
|
||||
self.py.mark_all()
|
||||
self.model.mark_all()
|
||||
|
||||
def markNone(self):
|
||||
self.py.mark_none()
|
||||
self.model.mark_none()
|
||||
|
||||
def markInvert(self):
|
||||
self.py.mark_invert()
|
||||
self.model.mark_invert()
|
||||
|
||||
def purgeIgnoreList(self):
|
||||
self.py.purge_ignore_list()
|
||||
self.model.purge_ignore_list()
|
||||
|
||||
def toggleSelectedMark(self):
|
||||
self.py.toggle_selected_mark_state()
|
||||
self.model.toggle_selected_mark_state()
|
||||
|
||||
def saveSession(self):
|
||||
self.py.save()
|
||||
self.model.save()
|
||||
|
||||
def saveResultsAs_(self, filename):
|
||||
self.py.save_as(filename)
|
||||
def saveResultsAs_(self, filename: str):
|
||||
self.model.save_as(filename)
|
||||
|
||||
#---Actions
|
||||
def addSelectedToIgnoreList(self):
|
||||
self.py.add_selected_to_ignore_list()
|
||||
self.model.add_selected_to_ignore_list()
|
||||
|
||||
def deleteMarked(self):
|
||||
self.py.delete_marked()
|
||||
self.model.delete_marked()
|
||||
|
||||
def hardlinkMarked(self):
|
||||
self.py.delete_marked(replace_with_hardlinks=True)
|
||||
self.model.delete_marked(replace_with_hardlinks=True)
|
||||
|
||||
def applyFilter_(self, filter):
|
||||
self.py.apply_filter(filter)
|
||||
def applyFilter_(self, filter: str):
|
||||
self.model.apply_filter(filter)
|
||||
|
||||
def makeSelectedReference(self):
|
||||
self.py.make_selected_reference()
|
||||
self.model.make_selected_reference()
|
||||
|
||||
def copyOrMove_markedTo_recreatePath_(self, copy, destination, recreate_path):
|
||||
self.py.copy_or_move_marked(copy, destination, recreate_path)
|
||||
def copyOrMove_markedTo_recreatePath_(self, copy: bool, destination: str, recreate_path: bool):
|
||||
self.model.copy_or_move_marked(copy, destination, recreate_path)
|
||||
|
||||
def openSelected(self):
|
||||
self.py.open_selected()
|
||||
self.model.open_selected()
|
||||
|
||||
def removeMarked(self):
|
||||
self.py.remove_marked()
|
||||
|
||||
def renameSelected_(self,newname):
|
||||
return self.py.rename_selected(newname)
|
||||
self.model.remove_marked()
|
||||
|
||||
def revealSelected(self):
|
||||
self.py.reveal_selected()
|
||||
self.model.reveal_selected()
|
||||
|
||||
def invokeCommand_(self, cmd):
|
||||
self.py.invoke_command(cmd)
|
||||
def invokeCommand_(self, cmd: str):
|
||||
self.model.invoke_command(cmd)
|
||||
|
||||
#---Information
|
||||
def getIgnoreListCount(self):
|
||||
return len(self.py.scanner.ignore_list)
|
||||
def getIgnoreListCount(self) -> int:
|
||||
return len(self.model.scanner.ignore_list)
|
||||
|
||||
def getMarkCount(self):
|
||||
return self.py.results.mark_count
|
||||
def getMarkCount(self) -> int:
|
||||
return self.model.results.mark_count
|
||||
|
||||
@signature('i@:')
|
||||
def scanWasProblematic(self):
|
||||
return bool(self.py.results.problems)
|
||||
def scanWasProblematic(self) -> bool:
|
||||
return bool(self.model.results.problems)
|
||||
|
||||
@signature('i@:')
|
||||
def resultsAreModified(self):
|
||||
return self.py.results.is_modified
|
||||
def resultsAreModified(self) -> bool:
|
||||
return self.model.results.is_modified
|
||||
|
||||
#---Properties
|
||||
@signature('v@:c')
|
||||
def setMixFileKind_(self, mix_file_kind):
|
||||
self.py.scanner.mix_file_kind = mix_file_kind
|
||||
def setMixFileKind_(self, mix_file_kind: bool):
|
||||
self.model.scanner.mix_file_kind = mix_file_kind
|
||||
|
||||
@signature('v@:c')
|
||||
def setEscapeFilterRegexp_(self, escape_filter_regexp):
|
||||
self.py.options['escape_filter_regexp'] = escape_filter_regexp
|
||||
def setEscapeFilterRegexp_(self, escape_filter_regexp: bool):
|
||||
self.model.options['escape_filter_regexp'] = escape_filter_regexp
|
||||
|
||||
@signature('v@:c')
|
||||
def setRemoveEmptyFolders_(self, remove_empty_folders):
|
||||
self.py.options['clean_empty_dirs'] = remove_empty_folders
|
||||
def setRemoveEmptyFolders_(self, remove_empty_folders: bool):
|
||||
self.model.options['clean_empty_dirs'] = remove_empty_folders
|
||||
|
||||
@signature('v@:c')
|
||||
def setIgnoreHardlinkMatches_(self, ignore_hardlink_matches):
|
||||
self.py.options['ignore_hardlink_matches'] = ignore_hardlink_matches
|
||||
def setIgnoreHardlinkMatches_(self, ignore_hardlink_matches: bool):
|
||||
self.model.options['ignore_hardlink_matches'] = ignore_hardlink_matches
|
||||
|
||||
#---Worker
|
||||
def getJobProgress(self):
|
||||
def getJobProgress(self) -> object: # NSNumber
|
||||
try:
|
||||
return self.progress.last_progress
|
||||
except AttributeError:
|
||||
@ -151,7 +159,7 @@ class PyDupeGuruBase(PyFairware):
|
||||
# is sent), but it happens anyway, so there we go. ref: #106
|
||||
return -1
|
||||
|
||||
def getJobDesc(self):
|
||||
def getJobDesc(self) -> str:
|
||||
try:
|
||||
return self.progress.last_desc
|
||||
except AttributeError:
|
||||
@ -161,16 +169,19 @@ class PyDupeGuruBase(PyFairware):
|
||||
def cancelJob(self):
|
||||
self.progress.job_cancelled = True
|
||||
|
||||
def jobCompleted_(self, jobid):
|
||||
self.py._job_completed(jobid)
|
||||
def jobCompleted_(self, jobid: str):
|
||||
self.model._job_completed(jobid)
|
||||
|
||||
#--- model --> view
|
||||
@dontwrap
|
||||
def open_path(self, path):
|
||||
proxy.openPath_(str(path))
|
||||
|
||||
@dontwrap
|
||||
def reveal_path(self, path):
|
||||
proxy.revealPath_(str(path))
|
||||
|
||||
@dontwrap
|
||||
def start_job(self, jobid, func, args=()):
|
||||
try:
|
||||
j = self.progress.create_job()
|
||||
@ -182,9 +193,7 @@ class PyDupeGuruBase(PyFairware):
|
||||
ud = {'desc': JOBID2TITLE[jobid], 'jobid':jobid}
|
||||
proxy.postNotification_userInfo_('JobStarted', ud)
|
||||
|
||||
@dontwrap
|
||||
def show_extra_fairware_reminder(self):
|
||||
self.cocoa.showExtraFairwareReminder()
|
||||
|
||||
def show_message(self, msg):
|
||||
self.cocoa.showMessage_(msg)
|
||||
|
||||
|
@ -13,9 +13,11 @@ from hscommon import io
|
||||
from hscommon.path import Path
|
||||
from cocoa import proxy
|
||||
|
||||
from core.scanner import ScanType
|
||||
from core import fs
|
||||
from core.directories import Directories as DirectoriesBase, DirectoryState
|
||||
from core_se.app import DupeGuru as DupeGuruBase
|
||||
from .app import PyDupeGuruBase
|
||||
|
||||
def is_bundle(str_path):
|
||||
uti = proxy.getUTI_(str_path)
|
||||
@ -70,3 +72,33 @@ class DupeGuru(DupeGuruBase):
|
||||
DupeGuruBase.__init__(self, view, appdata)
|
||||
self.directories = Directories()
|
||||
|
||||
|
||||
class PyDupeGuru(PyDupeGuruBase):
|
||||
def __init__(self):
|
||||
self._init(DupeGuru)
|
||||
import __main__
|
||||
__main__.APP_INSTANCE = self.model
|
||||
|
||||
#---Properties
|
||||
def setMinMatchPercentage_(self, percentage: int):
|
||||
self.model.scanner.min_match_percentage = int(percentage)
|
||||
|
||||
def setScanType_(self, scan_type: int):
|
||||
try:
|
||||
self.model.scanner.scan_type = [
|
||||
ScanType.Filename,
|
||||
ScanType.Contents,
|
||||
ScanType.Folders,
|
||||
][scan_type]
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
def setWordWeighting_(self, words_are_weighted: bool):
|
||||
self.model.scanner.word_weighting = words_are_weighted
|
||||
|
||||
def setMatchSimilarWords_(self, match_similar_words: bool):
|
||||
self.model.scanner.match_similar_words = match_similar_words
|
||||
|
||||
def setSizeThreshold_(self, size_threshold: int):
|
||||
self.model.scanner.size_threshold = size_threshold
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
from cocoa.inter2 import PyGUIObject2, GUIObjectView
|
||||
from cocoa.inter2 import PyGUIObject, GUIObjectView
|
||||
|
||||
class DetailsPanelView(GUIObjectView):
|
||||
pass
|
||||
|
||||
class PyDetailsPanel(PyGUIObject2):
|
||||
class PyDetailsPanel(PyGUIObject):
|
||||
def numberOfRows(self) -> int:
|
||||
return self.model.row_count()
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
from objp.util import dontwrap
|
||||
from cocoa.inter2 import PyOutline2, GUIObjectView
|
||||
from cocoa.inter2 import PyOutline, GUIObjectView
|
||||
|
||||
class DirectoryOutlineView(GUIObjectView):
|
||||
pass
|
||||
|
||||
class PyDirectoryOutline(PyOutline2):
|
||||
class PyDirectoryOutline(PyOutline):
|
||||
def addDirectory_(self, path: str):
|
||||
self.model.add_directory(path)
|
||||
|
||||
|
@ -1,5 +1,5 @@
|
||||
from objp.util import dontwrap
|
||||
from cocoa.inter2 import PyGUIObject2
|
||||
from cocoa.inter2 import PyGUIObject
|
||||
|
||||
class ExtraFairwareReminderView:
|
||||
def startTimer(self): pass
|
||||
@ -7,7 +7,7 @@ class ExtraFairwareReminderView:
|
||||
def setButtonText_(self, text: str): pass;
|
||||
def enableButton(self): pass
|
||||
|
||||
class PyExtraFairwareReminder(PyGUIObject2):
|
||||
class PyExtraFairwareReminder(PyGUIObject):
|
||||
def start(self):
|
||||
self.model.start()
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
from objp.util import pyref
|
||||
from cocoa.inter2 import PyGUIObject2, GUIObjectView
|
||||
from cocoa.inter2 import PyGUIObject, GUIObjectView
|
||||
|
||||
class PrioritizeDialogView(GUIObjectView):
|
||||
pass
|
||||
|
||||
class PyPrioritizeDialog(PyGUIObject2):
|
||||
class PyPrioritizeDialog(PyGUIObject):
|
||||
def categoryList(self) -> pyref:
|
||||
return self.model.category_list
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
from cocoa.inter2 import PySelectableList2, SelectableListView
|
||||
from cocoa.inter2 import PySelectableList, SelectableListView
|
||||
|
||||
class PrioritizeListView(SelectableListView):
|
||||
pass
|
||||
|
||||
class PyPrioritizeList(PySelectableList2):
|
||||
class PyPrioritizeList(PySelectableList):
|
||||
def moveIndexes_toIndex_(self, indexes: list, dest_index: int):
|
||||
self.model.move_indexes(indexes, dest_index)
|
||||
|
@ -1,7 +1,7 @@
|
||||
from objp.util import pyref
|
||||
from cocoa.inter2 import PyGUIObject2
|
||||
from cocoa.inter2 import PyGUIObject
|
||||
|
||||
class PyProblemDialog(PyGUIObject2):
|
||||
class PyProblemDialog(PyGUIObject):
|
||||
def problemTable(self) -> pyref:
|
||||
return self.model.problem_table
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
from objp.util import dontwrap
|
||||
from cocoa.inter2 import PyTable2, TableView
|
||||
from cocoa.inter2 import PyTable, TableView
|
||||
|
||||
class ResultTableView(TableView):
|
||||
def invalidateMarkings(self): pass
|
||||
|
||||
class PyResultTable(PyTable2):
|
||||
class PyResultTable(PyTable):
|
||||
def powerMarkerMode(self) -> bool:
|
||||
return self.model.power_marker
|
||||
|
||||
|
@ -1,9 +1,9 @@
|
||||
from cocoa.inter2 import PyGUIObject2, GUIObjectView
|
||||
from cocoa.inter2 import PyGUIObject, GUIObjectView
|
||||
|
||||
class StatsLabelView(GUIObjectView):
|
||||
pass
|
||||
|
||||
class PyStatsLabel(PyGUIObject2):
|
||||
class PyStatsLabel(PyGUIObject):
|
||||
|
||||
def display(self) -> str:
|
||||
return self.model.display
|
||||
|
@ -11,5 +11,4 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
#import "PyDupeGuru.h"
|
||||
|
||||
@interface AppDelegate : AppDelegateBase {}
|
||||
- (PyDupeGuru *)py;
|
||||
@end
|
||||
|
@ -62,6 +62,4 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
{
|
||||
return [[ResultWindow alloc] initWithParentApp:self];
|
||||
}
|
||||
|
||||
- (PyDupeGuru *)py { return (PyDupeGuru *)py; }
|
||||
@end
|
||||
|
@ -1,16 +0,0 @@
|
||||
/*
|
||||
Copyright 2011 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 "../base/PyDupeGuru.h"
|
||||
|
||||
@interface PyDupeGuru : PyDupeGuruBase
|
||||
//Scanning options
|
||||
- (void)setWordWeighting:(NSNumber *)words_are_weighted;
|
||||
- (void)setMatchSimilarWords:(NSNumber *)match_similar_words;
|
||||
@end
|
@ -39,15 +39,14 @@ http://www.hardcoded.net/licenses/bsd_license
|
||||
- (void)setScanOptions
|
||||
{
|
||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||
PyDupeGuru *_py = (PyDupeGuru *)py;
|
||||
[_py setScanType:[ud objectForKey:@"scanType"]];
|
||||
[_py setMinMatchPercentage:[ud objectForKey:@"minMatchPercentage"]];
|
||||
[_py setWordWeighting:[ud objectForKey:@"wordWeighting"]];
|
||||
[_py setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
||||
[_py setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
||||
[_py setMatchSimilarWords:[ud objectForKey:@"matchSimilarWords"]];
|
||||
[model setScanType:n2b([ud objectForKey:@"scanType"])];
|
||||
[model setMinMatchPercentage:n2i([ud objectForKey:@"minMatchPercentage"])];
|
||||
[model setWordWeighting:n2b([ud objectForKey:@"wordWeighting"])];
|
||||
[model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
||||
[model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
||||
[model setMatchSimilarWords:n2b([ud objectForKey:@"matchSimilarWords"])];
|
||||
int smallFileThreshold = [ud integerForKey:@"smallFileThreshold"]; // In KB
|
||||
int sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes
|
||||
[_py setSizeThreshold:sizeThreshold];
|
||||
[model setSizeThreshold:sizeThreshold];
|
||||
}
|
||||
@end
|
||||
|
@ -7,12 +7,8 @@
|
||||
from hscommon.trans import install_gettext_trans_under_cocoa
|
||||
install_gettext_trans_under_cocoa()
|
||||
|
||||
from cocoa.inter import signature
|
||||
from cocoa.inter2 import PySelectableList2, PyColumns2, PyTable2
|
||||
from cocoa.inter2 import PySelectableList, PyColumns, PyTable
|
||||
|
||||
from core.scanner import ScanType
|
||||
|
||||
from inter.app import PyDupeGuruBase
|
||||
from inter.details_panel import PyDetailsPanel
|
||||
from inter.directory_outline import PyDirectoryOutline
|
||||
from inter.extra_fairware_reminder import PyExtraFairwareReminder
|
||||
@ -21,40 +17,4 @@ from inter.prioritize_list import PyPrioritizeList
|
||||
from inter.problem_dialog import PyProblemDialog
|
||||
from inter.result_table import PyResultTable
|
||||
from inter.stats_label import PyStatsLabel
|
||||
from inter.app_se import DupeGuru
|
||||
|
||||
# XXX temporary hack
|
||||
APP_INSTANCE = None
|
||||
|
||||
class PyDupeGuru(PyDupeGuruBase):
|
||||
def init(self):
|
||||
self = super(PyDupeGuru,self).init()
|
||||
self._init(DupeGuru)
|
||||
global APP_INSTANCE
|
||||
APP_INSTANCE = self.py
|
||||
return self
|
||||
|
||||
#---Properties
|
||||
def setMinMatchPercentage_(self,percentage):
|
||||
self.py.scanner.min_match_percentage = int(percentage)
|
||||
|
||||
def setScanType_(self,scan_type):
|
||||
try:
|
||||
self.py.scanner.scan_type = [
|
||||
ScanType.Filename,
|
||||
ScanType.Contents,
|
||||
ScanType.Folders,
|
||||
][scan_type]
|
||||
except IndexError:
|
||||
pass
|
||||
|
||||
def setWordWeighting_(self,words_are_weighted):
|
||||
self.py.scanner.word_weighting = words_are_weighted
|
||||
|
||||
def setMatchSimilarWords_(self,match_similar_words):
|
||||
self.py.scanner.match_similar_words = match_similar_words
|
||||
|
||||
@signature('v@:i')
|
||||
def setSizeThreshold_(self, size_threshold):
|
||||
self.py.scanner.size_threshold = size_threshold
|
||||
|
||||
from inter.app_se import PyDupeGuru
|
@ -16,10 +16,8 @@
|
||||
CE19BC6411199231007CCEB0 /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE19BC6111199231007CCEB0 /* progress.xib */; };
|
||||
CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091514BE0C6400CA6B8C /* ObjP.m */; };
|
||||
CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */; };
|
||||
CE275C5014BF6C5600265960 /* HSColumns2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C4D14BF6C5600265960 /* HSColumns2.m */; };
|
||||
CE275C5114BF6C5600265960 /* HSOutline2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C4F14BF6C5600265960 /* HSOutline2.m */; };
|
||||
CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; };
|
||||
CE275C5A14BF71DF00265960 /* PyColumns2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns2.m */; };
|
||||
CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; };
|
||||
CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; };
|
||||
CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; };
|
||||
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; };
|
||||
@ -31,12 +29,10 @@
|
||||
CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4746D214C09C12001A66DE /* PyProblemDialog.m */; };
|
||||
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5335FB142BBFAF008E5374 /* HSQuicklook.m */; };
|
||||
CE533603142BC034008E5374 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE533602142BC034008E5374 /* Quartz.framework */; };
|
||||
CE548CC014BF902000D180CB /* HSPopUpList2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CBD14BF902000D180CB /* HSPopUpList2.m */; };
|
||||
CE548CC114BF902000D180CB /* HSSelectableList2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CBF14BF902000D180CB /* HSSelectableList2.m */; };
|
||||
CE548CC614BF903D00D180CB /* PyPrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */; };
|
||||
CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC514BF903D00D180CB /* PyPrioritizeList.m */; };
|
||||
CE587E9A14C07BCF004CA031 /* PyOutline2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9814C07BCF004CA031 /* PyOutline2.m */; };
|
||||
CE587E9E14C0801F004CA031 /* PySelectableList2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9D14C0801F004CA031 /* PySelectableList2.m */; };
|
||||
CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9814C07BCF004CA031 /* PyOutline.m */; };
|
||||
CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9D14C0801F004CA031 /* PySelectableList.m */; };
|
||||
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; };
|
||||
CE665B3013225ADD003F5CFB /* ExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */; };
|
||||
CE665B3313225AF8003F5CFB /* ExtraFairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE665B3113225AF8003F5CFB /* ExtraFairwareReminder.xib */; };
|
||||
@ -62,15 +58,22 @@
|
||||
CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */; };
|
||||
CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */; };
|
||||
CE9D842A14BE2AE900184165 /* PyExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9D842914BE2AE900184165 /* PyExtraFairwareReminder.m */; };
|
||||
CE9FC22D14C080CF005C31FD /* PyGUIObject2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22C14C080CF005C31FD /* PyGUIObject2.m */; };
|
||||
CE9FC23014C08622005C31FD /* PyTable2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22F14C08622005C31FD /* PyTable2.m */; };
|
||||
CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22C14C080CF005C31FD /* PyGUIObject.m */; };
|
||||
CE9FC23014C08622005C31FD /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22F14C08622005C31FD /* PyTable.m */; };
|
||||
CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC23214C0866F005C31FD /* PyResultTable.m */; };
|
||||
CE9FC23614C08A7E005C31FD /* HSTable2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC23514C08A7E005C31FD /* HSTable2.m */; };
|
||||
CE9FC23914C08A92005C31FD /* HSGUIController2.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC23814C08A92005C31FD /* HSGUIController2.m */; };
|
||||
CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; };
|
||||
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */; };
|
||||
CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; };
|
||||
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
||||
CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */; };
|
||||
CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */; };
|
||||
CEEF2A1E14C0A8480082545A /* PyFairware.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1C14C0A8480082545A /* PyFairware.m */; };
|
||||
CEEF2A3C14C0B9050082545A /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3114C0B9050082545A /* HSColumns.m */; };
|
||||
CEEF2A3D14C0B9050082545A /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3314C0B9050082545A /* HSGUIController.m */; };
|
||||
CEEF2A3E14C0B9050082545A /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3514C0B9050082545A /* HSOutline.m */; };
|
||||
CEEF2A3F14C0B9050082545A /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3714C0B9050082545A /* HSPopUpList.m */; };
|
||||
CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3914C0B9050082545A /* HSSelectableList.m */; };
|
||||
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3B14C0B9050082545A /* HSTable.m */; };
|
||||
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; };
|
||||
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; };
|
||||
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; };
|
||||
@ -140,14 +143,10 @@
|
||||
CE1D091514BE0C6400CA6B8C /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = "<group>"; };
|
||||
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = "<group>"; };
|
||||
CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = "<group>"; };
|
||||
CE275C4C14BF6C5600265960 /* HSColumns2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns2.h; sourceTree = "<group>"; };
|
||||
CE275C4D14BF6C5600265960 /* HSColumns2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns2.m; sourceTree = "<group>"; };
|
||||
CE275C4E14BF6C5600265960 /* HSOutline2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline2.h; sourceTree = "<group>"; };
|
||||
CE275C4F14BF6C5600265960 /* HSOutline2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline2.m; sourceTree = "<group>"; };
|
||||
CE275C5414BF712B00265960 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = "<group>"; };
|
||||
CE275C5514BF712B00265960 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = "<group>"; };
|
||||
CE275C5814BF71DF00265960 /* PyColumns2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns2.h; sourceTree = "<group>"; };
|
||||
CE275C5914BF71DF00265960 /* PyColumns2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns2.m; sourceTree = "<group>"; };
|
||||
CE275C5814BF71DF00265960 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
|
||||
CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = "<group>"; };
|
||||
CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
|
||||
CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
|
||||
CE31819A13D85D9B00B6D649 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/about.xib; sourceTree = "<group>"; };
|
||||
@ -169,18 +168,14 @@
|
||||
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
|
||||
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
|
||||
CE533602142BC034008E5374 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
|
||||
CE548CBC14BF902000D180CB /* HSPopUpList2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList2.h; sourceTree = "<group>"; };
|
||||
CE548CBD14BF902000D180CB /* HSPopUpList2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList2.m; sourceTree = "<group>"; };
|
||||
CE548CBE14BF902000D180CB /* HSSelectableList2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList2.h; sourceTree = "<group>"; };
|
||||
CE548CBF14BF902000D180CB /* HSSelectableList2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList2.m; sourceTree = "<group>"; };
|
||||
CE548CC214BF903D00D180CB /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeDialog.h; sourceTree = "<group>"; };
|
||||
CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeDialog.m; sourceTree = "<group>"; };
|
||||
CE548CC414BF903D00D180CB /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeList.h; sourceTree = "<group>"; };
|
||||
CE548CC514BF903D00D180CB /* PyPrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeList.m; sourceTree = "<group>"; };
|
||||
CE587E9714C07BCF004CA031 /* PyOutline2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline2.h; sourceTree = "<group>"; };
|
||||
CE587E9814C07BCF004CA031 /* PyOutline2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline2.m; sourceTree = "<group>"; };
|
||||
CE587E9C14C0801F004CA031 /* PySelectableList2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList2.h; sourceTree = "<group>"; };
|
||||
CE587E9D14C0801F004CA031 /* PySelectableList2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList2.m; sourceTree = "<group>"; };
|
||||
CE587E9714C07BCF004CA031 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
|
||||
CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = "<group>"; };
|
||||
CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
||||
CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = "<group>"; };
|
||||
CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
||||
CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
|
||||
CE665B2D13225ADD003F5CFB /* ExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExtraFairwareReminder.h; path = ../base/ExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
||||
@ -202,7 +197,6 @@
|
||||
CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; };
|
||||
CE76FDF5111EE561006618EA /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; };
|
||||
CE76FDF6111EE561006618EA /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; };
|
||||
CE79638212536C6E008D405B /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyFairware.h; path = ../../cocoalib/PyFairware.h; sourceTree = SOURCE_ROOT; };
|
||||
CE79638512536C94008D405B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||
CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
||||
CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
||||
@ -241,16 +235,12 @@
|
||||
CE9777D0141F8CB400C13FB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||
CE9D842814BE2AE900184165 /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyExtraFairwareReminder.h; sourceTree = "<group>"; };
|
||||
CE9D842914BE2AE900184165 /* PyExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyExtraFairwareReminder.m; sourceTree = "<group>"; };
|
||||
CE9FC22B14C080CF005C31FD /* PyGUIObject2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject2.h; sourceTree = "<group>"; };
|
||||
CE9FC22C14C080CF005C31FD /* PyGUIObject2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject2.m; sourceTree = "<group>"; };
|
||||
CE9FC22E14C08622005C31FD /* PyTable2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable2.h; sourceTree = "<group>"; };
|
||||
CE9FC22F14C08622005C31FD /* PyTable2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable2.m; sourceTree = "<group>"; };
|
||||
CE9FC22B14C080CF005C31FD /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = "<group>"; };
|
||||
CE9FC22C14C080CF005C31FD /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = "<group>"; };
|
||||
CE9FC22E14C08622005C31FD /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
|
||||
CE9FC22F14C08622005C31FD /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = "<group>"; };
|
||||
CE9FC23114C0866F005C31FD /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyResultTable.h; sourceTree = "<group>"; };
|
||||
CE9FC23214C0866F005C31FD /* PyResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyResultTable.m; sourceTree = "<group>"; };
|
||||
CE9FC23414C08A73005C31FD /* HSTable2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable2.h; sourceTree = "<group>"; };
|
||||
CE9FC23514C08A7E005C31FD /* HSTable2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable2.m; sourceTree = "<group>"; };
|
||||
CE9FC23714C08A92005C31FD /* HSGUIController2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController2.h; sourceTree = "<group>"; };
|
||||
CE9FC23814C08A92005C31FD /* HSGUIController2.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController2.m; sourceTree = "<group>"; };
|
||||
CEA175C91461E8E600776591 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
|
||||
CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = "<group>"; };
|
||||
CEB57990146ADC5100EDF7D7 /* HSConsts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSConsts.h; path = ../../cocoalib/HSConsts.h; sourceTree = "<group>"; };
|
||||
@ -274,11 +264,25 @@
|
||||
CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
|
||||
CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
|
||||
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
|
||||
CEEF2A1114C09EDF0082545A /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
|
||||
CEEF2A1214C09EDF0082545A /* PyGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUI.h; sourceTree = "<group>"; };
|
||||
CEEF2A1314C09EDF0082545A /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
|
||||
CEEF2A1414C09EDF0082545A /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
||||
CEEF2A1514C09EDF0082545A /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
|
||||
CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = "<group>"; };
|
||||
CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = "<group>"; };
|
||||
CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = "<group>"; };
|
||||
CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuruBase.m; sourceTree = "<group>"; };
|
||||
CEEF2A1B14C0A8480082545A /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyFairware.h; sourceTree = "<group>"; };
|
||||
CEEF2A1C14C0A8480082545A /* PyFairware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyFairware.m; sourceTree = "<group>"; };
|
||||
CEEF2A3014C0B9050082545A /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
|
||||
CEEF2A3114C0B9050082545A /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
|
||||
CEEF2A3214C0B9050082545A /* HSGUIController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController.h; sourceTree = "<group>"; };
|
||||
CEEF2A3314C0B9050082545A /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = "<group>"; };
|
||||
CEEF2A3414C0B9050082545A /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = "<group>"; };
|
||||
CEEF2A3514C0B9050082545A /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; };
|
||||
CEEF2A3614C0B9050082545A /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
|
||||
CEEF2A3714C0B9050082545A /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
|
||||
CEEF2A3814C0B9050082545A /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
|
||||
CEEF2A3914C0B9050082545A /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = "<group>"; };
|
||||
CEEF2A3A14C0B9050082545A /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = "<group>"; };
|
||||
CEEF2A3B14C0B9050082545A /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
|
||||
CEEF2A4214C0BB430082545A /* Worker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Worker.h; path = ../../cocoalib/Worker.h; sourceTree = "<group>"; };
|
||||
CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
|
||||
CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
|
||||
CEF27A9C1423EAD90048ADFA /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||
@ -291,7 +295,6 @@
|
||||
CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = ../../cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7F900FC9517500CD5728 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7F910FC9517500CD5728 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7F920FC9517500CD5728 /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = ../../cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7F9A0FC9517500CD5728 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7F9B0FC9517500CD5728 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; };
|
||||
@ -301,10 +304,8 @@
|
||||
CEFC7FB30FC951A700CD5728 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7FB60FC951A700CD5728 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = ../base/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7FB70FC951A700CD5728 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
||||
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
||||
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@ -327,7 +328,6 @@
|
||||
children = (
|
||||
CE381C9509914ACE003581CE /* AppDelegate.h */,
|
||||
CE381C9409914ACE003581CE /* AppDelegate.m */,
|
||||
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */,
|
||||
CE381C9B09914ADF003581CE /* ResultWindow.h */,
|
||||
CE381C9A09914ADF003581CE /* ResultWindow.m */,
|
||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
||||
@ -418,16 +418,16 @@
|
||||
CE1D091314BE0C6400CA6B8C /* autogen */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CE9FC22B14C080CF005C31FD /* PyGUIObject2.h */,
|
||||
CE9FC22C14C080CF005C31FD /* PyGUIObject2.m */,
|
||||
CE275C5814BF71DF00265960 /* PyColumns2.h */,
|
||||
CE275C5914BF71DF00265960 /* PyColumns2.m */,
|
||||
CE587E9714C07BCF004CA031 /* PyOutline2.h */,
|
||||
CE587E9814C07BCF004CA031 /* PyOutline2.m */,
|
||||
CE587E9C14C0801F004CA031 /* PySelectableList2.h */,
|
||||
CE587E9D14C0801F004CA031 /* PySelectableList2.m */,
|
||||
CE9FC22E14C08622005C31FD /* PyTable2.h */,
|
||||
CE9FC22F14C08622005C31FD /* PyTable2.m */,
|
||||
CE9FC22B14C080CF005C31FD /* PyGUIObject.h */,
|
||||
CE9FC22C14C080CF005C31FD /* PyGUIObject.m */,
|
||||
CE275C5814BF71DF00265960 /* PyColumns.h */,
|
||||
CE275C5914BF71DF00265960 /* PyColumns.m */,
|
||||
CE587E9714C07BCF004CA031 /* PyOutline.h */,
|
||||
CE587E9814C07BCF004CA031 /* PyOutline.m */,
|
||||
CE587E9C14C0801F004CA031 /* PySelectableList.h */,
|
||||
CE587E9D14C0801F004CA031 /* PySelectableList.m */,
|
||||
CE9FC22E14C08622005C31FD /* PyTable.h */,
|
||||
CE9FC22F14C08622005C31FD /* PyTable.m */,
|
||||
CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */,
|
||||
CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */,
|
||||
CE9D842814BE2AE900184165 /* PyExtraFairwareReminder.h */,
|
||||
@ -446,6 +446,12 @@
|
||||
CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */,
|
||||
CE1D091414BE0C6400CA6B8C /* ObjP.h */,
|
||||
CE1D091514BE0C6400CA6B8C /* ObjP.m */,
|
||||
CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */,
|
||||
CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */,
|
||||
CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */,
|
||||
CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */,
|
||||
CEEF2A1B14C0A8480082545A /* PyFairware.h */,
|
||||
CEEF2A1C14C0A8480082545A /* PyFairware.m */,
|
||||
);
|
||||
name = autogen;
|
||||
path = ../autogen;
|
||||
@ -470,36 +476,23 @@
|
||||
CE76FDC7111EE38E006618EA /* controllers */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CE275C4C14BF6C5600265960 /* HSColumns2.h */,
|
||||
CE275C4D14BF6C5600265960 /* HSColumns2.m */,
|
||||
CE275C4E14BF6C5600265960 /* HSOutline2.h */,
|
||||
CE275C4F14BF6C5600265960 /* HSOutline2.m */,
|
||||
CE9FC23714C08A92005C31FD /* HSGUIController2.h */,
|
||||
CE9FC23814C08A92005C31FD /* HSGUIController2.m */,
|
||||
CE9FC23414C08A73005C31FD /* HSTable2.h */,
|
||||
CE9FC23514C08A7E005C31FD /* HSTable2.m */,
|
||||
CE548CBC14BF902000D180CB /* HSPopUpList2.h */,
|
||||
CE548CBD14BF902000D180CB /* HSPopUpList2.m */,
|
||||
CE548CBE14BF902000D180CB /* HSSelectableList2.h */,
|
||||
CE548CBF14BF902000D180CB /* HSSelectableList2.m */,
|
||||
CEEF2A3014C0B9050082545A /* HSColumns.h */,
|
||||
CEEF2A3114C0B9050082545A /* HSColumns.m */,
|
||||
CEEF2A3214C0B9050082545A /* HSGUIController.h */,
|
||||
CEEF2A3314C0B9050082545A /* HSGUIController.m */,
|
||||
CEEF2A3414C0B9050082545A /* HSOutline.h */,
|
||||
CEEF2A3514C0B9050082545A /* HSOutline.m */,
|
||||
CEEF2A3614C0B9050082545A /* HSPopUpList.h */,
|
||||
CEEF2A3714C0B9050082545A /* HSPopUpList.m */,
|
||||
CEEF2A3814C0B9050082545A /* HSSelectableList.h */,
|
||||
CEEF2A3914C0B9050082545A /* HSSelectableList.m */,
|
||||
CEEF2A3A14C0B9050082545A /* HSTable.h */,
|
||||
CEEF2A3B14C0B9050082545A /* HSTable.m */,
|
||||
);
|
||||
name = controllers;
|
||||
path = ../../cocoalib/controllers;
|
||||
sourceTree = SOURCE_ROOT;
|
||||
};
|
||||
CEEF2A1014C09EDF0082545A /* proxies */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CEEF2A1114C09EDF0082545A /* PyColumns.h */,
|
||||
CEEF2A1214C09EDF0082545A /* PyGUI.h */,
|
||||
CEEF2A1314C09EDF0082545A /* PyOutline.h */,
|
||||
CEEF2A1414C09EDF0082545A /* PySelectableList.h */,
|
||||
CEEF2A1514C09EDF0082545A /* PyTable.h */,
|
||||
);
|
||||
name = proxies;
|
||||
path = ../../cocoalib/proxies;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CEEFC0CA10943849001F3A39 /* xib */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
@ -526,7 +519,6 @@
|
||||
CEFC7F890FC9513600CD5728 /* cocoalib */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CEEF2A1014C09EDF0082545A /* proxies */,
|
||||
CE76FDF5111EE561006618EA /* NSEventAdditions.h */,
|
||||
CE76FDF6111EE561006618EA /* NSEventAdditions.m */,
|
||||
CE76FDC7111EE38E006618EA /* controllers */,
|
||||
@ -539,16 +531,15 @@
|
||||
CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */,
|
||||
CE79638A12536F4E008D405B /* HSFairwareReminder.h */,
|
||||
CE79638B12536F4E008D405B /* HSFairwareReminder.m */,
|
||||
CE79638212536C6E008D405B /* PyFairware.h */,
|
||||
CE27D3C212CCA43800859E67 /* HSAboutBox.h */,
|
||||
CE27D3C312CCA43800859E67 /* HSAboutBox.m */,
|
||||
CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */,
|
||||
CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */,
|
||||
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */,
|
||||
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */,
|
||||
CEEF2A4214C0BB430082545A /* Worker.h */,
|
||||
CEFC7F900FC9517500CD5728 /* ProgressController.h */,
|
||||
CEFC7F910FC9517500CD5728 /* ProgressController.m */,
|
||||
CEFC7F920FC9517500CD5728 /* PyApp.h */,
|
||||
CEFC7F9A0FC9517500CD5728 /* Utils.h */,
|
||||
CEFC7F9B0FC9517500CD5728 /* Utils.m */,
|
||||
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */,
|
||||
@ -576,7 +567,6 @@
|
||||
CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */,
|
||||
CE665B2D13225ADD003F5CFB /* ExtraFairwareReminder.h */,
|
||||
CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */,
|
||||
CEFC7FB60FC951A700CD5728 /* PyDupeGuru.h */,
|
||||
CEFC7FB70FC951A700CD5728 /* ResultWindow.h */,
|
||||
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */,
|
||||
CE647E541173024A006D28BA /* ProblemDialog.h */,
|
||||
@ -713,22 +703,25 @@
|
||||
CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */,
|
||||
CE9D842A14BE2AE900184165 /* PyExtraFairwareReminder.m in Sources */,
|
||||
CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */,
|
||||
CE275C5014BF6C5600265960 /* HSColumns2.m in Sources */,
|
||||
CE275C5114BF6C5600265960 /* HSOutline2.m in Sources */,
|
||||
CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */,
|
||||
CE275C5A14BF71DF00265960 /* PyColumns2.m in Sources */,
|
||||
CE548CC014BF902000D180CB /* HSPopUpList2.m in Sources */,
|
||||
CE548CC114BF902000D180CB /* HSSelectableList2.m in Sources */,
|
||||
CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */,
|
||||
CE548CC614BF903D00D180CB /* PyPrioritizeDialog.m in Sources */,
|
||||
CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */,
|
||||
CE587E9A14C07BCF004CA031 /* PyOutline2.m in Sources */,
|
||||
CE587E9E14C0801F004CA031 /* PySelectableList2.m in Sources */,
|
||||
CE9FC22D14C080CF005C31FD /* PyGUIObject2.m in Sources */,
|
||||
CE9FC23014C08622005C31FD /* PyTable2.m in Sources */,
|
||||
CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */,
|
||||
CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */,
|
||||
CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */,
|
||||
CE9FC23014C08622005C31FD /* PyTable.m in Sources */,
|
||||
CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */,
|
||||
CE9FC23614C08A7E005C31FD /* HSTable2.m in Sources */,
|
||||
CE9FC23914C08A92005C31FD /* HSGUIController2.m in Sources */,
|
||||
CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */,
|
||||
CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */,
|
||||
CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */,
|
||||
CEEF2A1E14C0A8480082545A /* PyFairware.m in Sources */,
|
||||
CEEF2A3C14C0B9050082545A /* HSColumns.m in Sources */,
|
||||
CEEF2A3D14C0B9050082545A /* HSGUIController.m in Sources */,
|
||||
CEEF2A3E14C0B9050082545A /* HSOutline.m in Sources */,
|
||||
CEEF2A3F14C0B9050082545A /* HSPopUpList.m in Sources */,
|
||||
CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */,
|
||||
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user