mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-25 16:11:39 +00:00
Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a7bc76bf7c | ||
|
|
89fb531f3d | ||
|
|
f22baa8d5a | ||
|
|
7c2e601a30 | ||
|
|
16e4a5fddd | ||
|
|
4200f2a090 | ||
|
|
45c8291645 | ||
|
|
89f8214bce | ||
|
|
16e1ee93d0 | ||
|
|
222ae73590 | ||
|
|
21c0292154 | ||
|
|
a7eb90894a | ||
|
|
64baf2a10c | ||
|
|
392a802ef1 | ||
|
|
8efeab7b40 | ||
|
|
8a86ecee38 | ||
|
|
3e79b57409 | ||
|
|
362e020585 | ||
|
|
df5c8ddf22 | ||
|
|
70cc48d51f | ||
|
|
dccffd9516 | ||
|
|
04056c1597 | ||
|
|
69b2e37368 | ||
|
|
05478591a4 | ||
|
|
ead3b1e651 | ||
|
|
27f4c290c4 | ||
|
|
4f248ee981 | ||
|
|
d7397c0125 | ||
|
|
e4430168f7 | ||
|
|
78c2ae150d | ||
|
|
806e3917e3 | ||
|
|
6c62c2d563 | ||
|
|
7a768bd0e6 | ||
|
|
a6c01f6868 | ||
|
|
721591d3e3 | ||
|
|
1171705921 | ||
|
|
65d2581f74 | ||
|
|
2128d1787a | ||
|
|
cbf2ab82ce | ||
|
|
adef5a9dfa | ||
|
|
0c9e5c90a3 | ||
|
|
787f546c17 | ||
|
|
2d4ecf1122 | ||
|
|
1836003506 | ||
|
|
44d34f56f7 | ||
|
|
24c3d7ed00 | ||
|
|
8f7657573d | ||
|
|
c03c7f2be1 | ||
|
|
f4b8efff50 |
@@ -18,12 +18,6 @@ cocoa/autogen
|
|||||||
cocoa/*/Info.plist
|
cocoa/*/Info.plist
|
||||||
cocoa/*/build
|
cocoa/*/build
|
||||||
cocoa/*/*.app
|
cocoa/*/*.app
|
||||||
cocoa/*/dg_cocoa.plugin
|
|
||||||
cocoa/*/fr.lproj/*.xib
|
|
||||||
cocoa/*/de.lproj/*.xib
|
|
||||||
cocoa/*/zh_CN.lproj/*.xib
|
|
||||||
cocoa/*/cs.lproj/*.xib
|
|
||||||
cocoa/*/it.lproj/*.xib
|
|
||||||
cs.lproj
|
cs.lproj
|
||||||
de.lproj
|
de.lproj
|
||||||
fr.lproj
|
fr.lproj
|
||||||
@@ -32,6 +26,7 @@ hy.lproj
|
|||||||
ru.lproj
|
ru.lproj
|
||||||
uk.lproj
|
uk.lproj
|
||||||
zh_CN.lproj
|
zh_CN.lproj
|
||||||
|
pt_BR.lproj
|
||||||
qt/base/*_rc.py
|
qt/base/*_rc.py
|
||||||
help/*/conf.py
|
help/*/conf.py
|
||||||
help/*/changelog.rst
|
help/*/changelog.rst
|
||||||
6
.hgtags
6
.hgtags
@@ -71,3 +71,9 @@ fad463ae749b7189dce92f1e42a57ac4ee03987d se3.3.3
|
|||||||
236cf9b690a144392e7e86e7c9749fc834a8b271 me6.3.0
|
236cf9b690a144392e7e86e7c9749fc834a8b271 me6.3.0
|
||||||
90318f1303858d9d01065d92d78d98b888b38ea0 se3.4.0
|
90318f1303858d9d01065d92d78d98b888b38ea0 se3.4.0
|
||||||
93ed33410df2d2f21229a77ae49c83ece2c50a55 pe2.5.0
|
93ed33410df2d2f21229a77ae49c83ece2c50a55 pe2.5.0
|
||||||
|
c153aef25e5c9911f2197d13899591c50cf38ffc se3.4.1
|
||||||
|
71b7e18613f3790cea18cb0dd8c9c986ce237267 me6.3.1
|
||||||
|
c3d9f91dc9c9d60f370c72bc211f09be3e4fc18d se3.5.0
|
||||||
|
254bce83ad6e56c102d69fd603f6845e2324b470 me6.4.0
|
||||||
|
e772f1de86744999ffbbe5845554417965b1dfba me6.4.1
|
||||||
|
c8a9a4d355927e509f514308c82306192bc71f92 pe2.6.0
|
||||||
|
|||||||
18
README
18
README
@@ -80,26 +80,16 @@ If you didn't use mercurial to download this source, you probably have an incomp
|
|||||||
External projects (hscommon, qtlib, cocoalib) need to be at the root of the dupeGuru project folder.
|
External projects (hscommon, qtlib, cocoalib) need to be at the root of the dupeGuru project folder.
|
||||||
You'll have to download those separately. Or use mercurial, it's much easier.
|
You'll have to download those separately. Or use mercurial, it's much easier.
|
||||||
|
|
||||||
As far as I can tell, you don't *have* to compile/install everything manually and you can normally
|
|
||||||
use `easy_install` to install python dependencies. However, be aware that compiling/installing
|
|
||||||
manually from the repositories of each project is what I personally do, so if you hit a snag
|
|
||||||
somewhere, you might want to try the manual way.
|
|
||||||
|
|
||||||
PyObjC's website is badly outdated. Also, as far as I can tell, the package installable with
|
|
||||||
`easy_install` has good chances of not working. Your best bet is to download the latest tagged
|
|
||||||
version from the repository and compile it from source.
|
|
||||||
|
|
||||||
Another one on OS X: I wouldn't use macports/fink/whatever. Whenever I tried using those, I always
|
Another one on OS X: I wouldn't use macports/fink/whatever. Whenever I tried using those, I always
|
||||||
ended up with problems.
|
ended up with problems.
|
||||||
|
|
||||||
On OSX Lion, for dupeGuru PE, make sure that you installed the latest version of macholib because there was a
|
|
||||||
10.7 related bug that was fixed recently. Right now, the fix hasn't even been released yet so you
|
|
||||||
have to install directly from the repo ( http://bitbucket.org/ronaldoussoren/macholib ). The fix
|
|
||||||
in question is at http://bitbucket.org/ronaldoussoren/macholib/changeset/4ab0de0f5b60
|
|
||||||
|
|
||||||
Whenever you have a problem, always double-check that you're running the correct python version.
|
Whenever you have a problem, always double-check that you're running the correct python version.
|
||||||
You'll probably have to tweak your $PATH.
|
You'll probably have to tweak your $PATH.
|
||||||
|
|
||||||
|
To setup a build machine under Ubuntu 12.04 and up, install those packages: python3-dev, python3-pyqt4,
|
||||||
|
pyqt4-dev-tools, mercurial and then python3-setuptools. Once you've done that, install pip with
|
||||||
|
`easy_install`. Once you've done that, you can then perform "The easy way!" installation.
|
||||||
|
|
||||||
Building dupeGuru
|
Building dupeGuru
|
||||||
=================
|
=================
|
||||||
|
|
||||||
|
|||||||
6
build.py
6
build.py
@@ -198,6 +198,7 @@ def build_cocoa_bridging_interfaces(edition):
|
|||||||
add_to_pythonpath('cocoalib')
|
add_to_pythonpath('cocoalib')
|
||||||
from cocoa.inter import (PyGUIObject, GUIObjectView, PyColumns, ColumnsView, PyOutline,
|
from cocoa.inter import (PyGUIObject, GUIObjectView, PyColumns, ColumnsView, PyOutline,
|
||||||
OutlineView, PySelectableList, SelectableListView, PyTable, TableView, PyFairware)
|
OutlineView, PySelectableList, SelectableListView, PyTable, TableView, PyFairware)
|
||||||
|
from inter.deletion_options import PyDeletionOptions, DeletionOptionsView
|
||||||
from inter.details_panel import PyDetailsPanel, DetailsPanelView
|
from inter.details_panel import PyDetailsPanel, DetailsPanelView
|
||||||
from inter.directory_outline import PyDirectoryOutline, DirectoryOutlineView
|
from inter.directory_outline import PyDirectoryOutline, DirectoryOutlineView
|
||||||
from inter.prioritize_dialog import PyPrioritizeDialog, PrioritizeDialogView
|
from inter.prioritize_dialog import PyPrioritizeDialog, PrioritizeDialogView
|
||||||
@@ -210,12 +211,13 @@ def build_cocoa_bridging_interfaces(edition):
|
|||||||
appmod = importlib.import_module('inter.app_{}'.format(edition))
|
appmod = importlib.import_module('inter.app_{}'.format(edition))
|
||||||
allclasses = [PyGUIObject, PyColumns, PyOutline, PySelectableList, PyTable, PyFairware,
|
allclasses = [PyGUIObject, PyColumns, PyOutline, PySelectableList, PyTable, PyFairware,
|
||||||
PyDetailsPanel, PyDirectoryOutline, PyPrioritizeDialog, PyPrioritizeList, PyProblemDialog,
|
PyDetailsPanel, PyDirectoryOutline, PyPrioritizeDialog, PyPrioritizeList, PyProblemDialog,
|
||||||
PyIgnoreListDialog, PyResultTable, PyStatsLabel, PyDupeGuruBase, appmod.PyDupeGuru]
|
PyIgnoreListDialog, PyDeletionOptions, PyResultTable, PyStatsLabel, PyDupeGuruBase,
|
||||||
|
appmod.PyDupeGuru]
|
||||||
for class_ in allclasses:
|
for class_ in allclasses:
|
||||||
objp.o2p.generate_objc_code(class_, 'cocoa/autogen', inherit=True)
|
objp.o2p.generate_objc_code(class_, 'cocoa/autogen', inherit=True)
|
||||||
allclasses = [GUIObjectView, ColumnsView, OutlineView, SelectableListView, TableView,
|
allclasses = [GUIObjectView, ColumnsView, OutlineView, SelectableListView, TableView,
|
||||||
DetailsPanelView, DirectoryOutlineView, PrioritizeDialogView, PrioritizeListView,
|
DetailsPanelView, DirectoryOutlineView, PrioritizeDialogView, PrioritizeListView,
|
||||||
IgnoreListDialogView, ResultTableView, StatsLabelView, DupeGuruView]
|
IgnoreListDialogView, DeletionOptionsView, ResultTableView, StatsLabelView, DupeGuruView]
|
||||||
clsspecs = [objp.o2p.spec_from_python_class(class_) for class_ in allclasses]
|
clsspecs = [objp.o2p.spec_from_python_class(class_) for class_ in allclasses]
|
||||||
objp.p2o.generate_python_proxy_code_from_clsspec(clsspecs, 'build/CocoaViews.m')
|
objp.p2o.generate_python_proxy_code_from_clsspec(clsspecs, 'build/CocoaViews.m')
|
||||||
build_cocoa_ext('CocoaViews', 'cocoa/inter', ['build/CocoaViews.m', 'build/ObjP.m'])
|
build_cocoa_ext('CocoaViews', 'cocoa/inter', ['build/CocoaViews.m', 'build/ObjP.m'])
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "AppDelegate.h"
|
#import "AppDelegate.h"
|
||||||
#import "ProgressController.h"
|
#import "ProgressController.h"
|
||||||
#import "HSFairwareReminder.h"
|
#import "HSFairwareReminder.h"
|
||||||
#import "Utils.h"
|
#import "HSPyUtil.h"
|
||||||
#import "Consts.h"
|
#import "Consts.h"
|
||||||
#import "Dialogs.h"
|
#import "Dialogs.h"
|
||||||
#import "ValueTransformers.h"
|
#import "ValueTransformers.h"
|
||||||
|
|||||||
25
cocoa/base/DeletionOptions.h
Normal file
25
cocoa/base/DeletionOptions.h
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
|
||||||
|
|
||||||
|
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
||||||
|
which should be included with this package. The terms are also available at
|
||||||
|
http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#import "PyDeletionOptions.h"
|
||||||
|
|
||||||
|
@interface DeletionOptions : NSWindowController
|
||||||
|
{
|
||||||
|
IBOutlet NSTextField *messageTextField;
|
||||||
|
IBOutlet NSButton *hardlinkButton;
|
||||||
|
IBOutlet NSButton *directButton;
|
||||||
|
|
||||||
|
PyDeletionOptions *model;
|
||||||
|
}
|
||||||
|
- (id)initWithPyRef:(PyObject *)aPyRef;
|
||||||
|
|
||||||
|
- (IBAction)updateOptions:(id)sender;
|
||||||
|
- (IBAction)proceed:(id)sender;
|
||||||
|
- (IBAction)cancel:(id)sender;
|
||||||
|
@end
|
||||||
58
cocoa/base/DeletionOptions.m
Normal file
58
cocoa/base/DeletionOptions.m
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
|
||||||
|
|
||||||
|
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
||||||
|
which should be included with this package. The terms are also available at
|
||||||
|
http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import "DeletionOptions.h"
|
||||||
|
#import "HSPyUtil.h"
|
||||||
|
|
||||||
|
@implementation DeletionOptions
|
||||||
|
- (id)initWithPyRef:(PyObject *)aPyRef
|
||||||
|
{
|
||||||
|
self = [super initWithWindowNibName:@"DeletionOptions"];
|
||||||
|
[self window];
|
||||||
|
model = [[PyDeletionOptions alloc] initWithModel:aPyRef];
|
||||||
|
[model bindCallback:createCallback(@"DeletionOptionsView", self)];
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)dealloc
|
||||||
|
{
|
||||||
|
[model release];
|
||||||
|
[super dealloc];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)updateOptions:(id)sender
|
||||||
|
{
|
||||||
|
[model setHardlink:[hardlinkButton state] == NSOnState];
|
||||||
|
[model setDirect:[directButton state] == NSOnState];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)proceed:(id)sender
|
||||||
|
{
|
||||||
|
[NSApp stopModalWithCode:NSOKButton];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (IBAction)cancel:(id)sender
|
||||||
|
{
|
||||||
|
[NSApp stopModalWithCode:NSCancelButton];
|
||||||
|
}
|
||||||
|
|
||||||
|
/* model --> view */
|
||||||
|
- (void)updateMsg:(NSString *)msg
|
||||||
|
{
|
||||||
|
[messageTextField setStringValue:msg];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (BOOL)show
|
||||||
|
{
|
||||||
|
[hardlinkButton setState:NSOffState];
|
||||||
|
[directButton setState:NSOffState];
|
||||||
|
NSInteger r = [NSApp runModalForWindow:[self window]];
|
||||||
|
[[self window] close];
|
||||||
|
return r == NSOKButton;
|
||||||
|
}
|
||||||
|
@end
|
||||||
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import "DetailsPanel.h"
|
#import "DetailsPanel.h"
|
||||||
#import "Utils.h"
|
#import "HSPyUtil.h"
|
||||||
|
|
||||||
@implementation DetailsPanel
|
@implementation DetailsPanel
|
||||||
- (id)initWithPyRef:(PyObject *)aPyRef
|
- (id)initWithPyRef:(PyObject *)aPyRef
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import "IgnoreListDialog.h"
|
#import "IgnoreListDialog.h"
|
||||||
#import "Utils.h"
|
#import "HSPyUtil.h"
|
||||||
|
|
||||||
@implementation IgnoreListDialog
|
@implementation IgnoreListDialog
|
||||||
- (id)initWithPyRef:(PyObject *)aPyRef
|
- (id)initWithPyRef:(PyObject *)aPyRef
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import "PrioritizeDialog.h"
|
#import "PrioritizeDialog.h"
|
||||||
#import "Utils.h"
|
#import "HSPyUtil.h"
|
||||||
|
|
||||||
@implementation PrioritizeDialog
|
@implementation PrioritizeDialog
|
||||||
- (id)initWithApp:(PyDupeGuru *)aApp
|
- (id)initWithApp:(PyDupeGuru *)aApp
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "StatsLabel.h"
|
#import "StatsLabel.h"
|
||||||
#import "ResultTable.h"
|
#import "ResultTable.h"
|
||||||
#import "ProblemDialog.h"
|
#import "ProblemDialog.h"
|
||||||
|
#import "DeletionOptions.h"
|
||||||
#import "HSTableView.h"
|
#import "HSTableView.h"
|
||||||
#import "PyDupeGuru.h"
|
#import "PyDupeGuru.h"
|
||||||
|
|
||||||
@@ -31,6 +32,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
ResultTable *table;
|
ResultTable *table;
|
||||||
StatsLabel *statsLabel;
|
StatsLabel *statsLabel;
|
||||||
ProblemDialog *problemDialog;
|
ProblemDialog *problemDialog;
|
||||||
|
DeletionOptions *deletionOptions;
|
||||||
QLPreviewPanel* previewPanel;
|
QLPreviewPanel* previewPanel;
|
||||||
}
|
}
|
||||||
- (id)initWithParentApp:(AppDelegateBase *)app;
|
- (id)initWithParentApp:(AppDelegateBase *)app;
|
||||||
@@ -41,7 +43,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
/* Helpers */
|
/* Helpers */
|
||||||
- (void)fillColumnsMenu;
|
- (void)fillColumnsMenu;
|
||||||
- (void)sendMarkedToTrash:(BOOL)hardlinkDeleted;
|
|
||||||
- (void)updateOptionSegments;
|
- (void)updateOptionSegments;
|
||||||
- (void)showProblemDialog;
|
- (void)showProblemDialog;
|
||||||
- (void)adjustUIToLocalization;
|
- (void)adjustUIToLocalization;
|
||||||
@@ -49,10 +50,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* Actions */
|
/* Actions */
|
||||||
- (IBAction)changeOptions:(id)sender;
|
- (IBAction)changeOptions:(id)sender;
|
||||||
- (IBAction)copyMarked:(id)sender;
|
- (IBAction)copyMarked:(id)sender;
|
||||||
- (IBAction)deleteMarked:(id)sender;
|
- (IBAction)trashMarked:(id)sender;
|
||||||
- (IBAction)hardlinkMarked:(id)sender;
|
|
||||||
- (IBAction)exportToXHTML:(id)sender;
|
- (IBAction)exportToXHTML:(id)sender;
|
||||||
- (IBAction)filter:(id)sender;
|
- (IBAction)filter:(id)sender;
|
||||||
|
- (IBAction)focusOnFilterField:(id)sender;
|
||||||
- (IBAction)ignoreSelected:(id)sender;
|
- (IBAction)ignoreSelected:(id)sender;
|
||||||
- (IBAction)invokeCustomCommand:(id)sender;
|
- (IBAction)invokeCustomCommand:(id)sender;
|
||||||
- (IBAction)markAll:(id)sender;
|
- (IBAction)markAll:(id)sender;
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
table = [[ResultTable alloc] initWithPyRef:[model resultTable] view:matches];
|
table = [[ResultTable alloc] initWithPyRef:[model resultTable] view:matches];
|
||||||
statsLabel = [[StatsLabel alloc] initWithPyRef:[model statsLabel] view:stats];
|
statsLabel = [[StatsLabel alloc] initWithPyRef:[model statsLabel] view:stats];
|
||||||
problemDialog = [[ProblemDialog alloc] initWithPyRef:[model problemDialog]];
|
problemDialog = [[ProblemDialog alloc] initWithPyRef:[model problemDialog]];
|
||||||
|
deletionOptions = [[DeletionOptions alloc] initWithPyRef:[model deletionOptions]];
|
||||||
[self initResultColumns];
|
[self initResultColumns];
|
||||||
[self fillColumnsMenu];
|
[self fillColumnsMenu];
|
||||||
[matches setTarget:self];
|
[matches setTarget:self];
|
||||||
@@ -74,18 +75,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
[mi setTarget:self];
|
[mi setTarget:self];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)sendMarkedToTrash:(BOOL)hardlinkDeleted
|
|
||||||
{
|
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
|
||||||
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
|
||||||
if (hardlinkDeleted) {
|
|
||||||
[model hardlinkMarked];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
[model deleteMarked];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)updateOptionSegments
|
- (void)updateOptionSegments
|
||||||
{
|
{
|
||||||
[optionsSwitch setSelected:[[app detailsPanel] isVisible] forSegment:0];
|
[optionsSwitch setSelected:[[app detailsPanel] isVisible] forSegment:0];
|
||||||
@@ -145,14 +134,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
[model copyMarked];
|
[model copyMarked];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)deleteMarked:(id)sender
|
- (IBAction)trashMarked:(id)sender
|
||||||
{
|
{
|
||||||
[self sendMarkedToTrash:NO];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
}
|
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
||||||
|
[model deleteMarked];
|
||||||
- (IBAction)hardlinkMarked:(id)sender
|
|
||||||
{
|
|
||||||
[self sendMarkedToTrash:YES];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)exportToXHTML:(id)sender
|
- (IBAction)exportToXHTML:(id)sender
|
||||||
@@ -168,6 +154,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
[model applyFilter:[filterField stringValue]];
|
[model applyFilter:[filterField stringValue]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)focusOnFilterField:(id)sender
|
||||||
|
{
|
||||||
|
[[self window] makeFirstResponder:filterField];
|
||||||
|
}
|
||||||
|
|
||||||
- (IBAction)ignoreSelected:(id)sender
|
- (IBAction)ignoreSelected:(id)sender
|
||||||
{
|
{
|
||||||
[model addSelectedToIgnoreList];
|
[model addSelectedToIgnoreList];
|
||||||
|
|||||||
21
cocoa/base/en.lproj/DeletionOptions.strings
Normal file
21
cocoa/base/en.lproj/DeletionOptions.strings
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
/* Class = "NSWindow"; title = "Deletion Options"; ObjectID = "1"; */
|
||||||
|
"1.title" = "Deletion Options";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Hardlink deleted files"; ObjectID = "4"; */
|
||||||
|
"4.title" = "Hardlink deleted files";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file."; ObjectID = "8"; */
|
||||||
|
"8.title" = "After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file.";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Directly delete files"; ObjectID = "36"; */
|
||||||
|
"36.title" = "Directly delete files";
|
||||||
|
|
||||||
|
/* Class = "NSTextFieldCell"; title = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work."; ObjectID = "38"; */
|
||||||
|
"38.title" = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work.";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Proceed"; ObjectID = "40"; */
|
||||||
|
"40.title" = "Proceed";
|
||||||
|
|
||||||
|
/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "42"; */
|
||||||
|
"42.title" = "Cancel";
|
||||||
556
cocoa/base/en.lproj/DeletionOptions.xib
Normal file
556
cocoa/base/en.lproj/DeletionOptions.xib
Normal file
@@ -0,0 +1,556 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||||
|
<data>
|
||||||
|
<int key="IBDocument.SystemTarget">1060</int>
|
||||||
|
<string key="IBDocument.SystemVersion">11E53</string>
|
||||||
|
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||||
|
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||||
|
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="NS.object.0">2182</string>
|
||||||
|
</object>
|
||||||
|
<array key="IBDocument.IntegratedClassDependencies">
|
||||||
|
<string>NSTextField</string>
|
||||||
|
<string>NSView</string>
|
||||||
|
<string>NSWindowTemplate</string>
|
||||||
|
<string>NSTextFieldCell</string>
|
||||||
|
<string>NSButtonCell</string>
|
||||||
|
<string>NSButton</string>
|
||||||
|
<string>NSCustomObject</string>
|
||||||
|
</array>
|
||||||
|
<array key="IBDocument.PluginDependencies">
|
||||||
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
</array>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||||
|
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||||
|
<integer value="1" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000">
|
||||||
|
<object class="NSCustomObject" id="1001">
|
||||||
|
<string key="NSClassName">DeletionOptions</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSCustomObject" id="1003">
|
||||||
|
<string key="NSClassName">FirstResponder</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSCustomObject" id="1004">
|
||||||
|
<string key="NSClassName">NSApplication</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSWindowTemplate" id="1005">
|
||||||
|
<int key="NSWindowStyleMask">3</int>
|
||||||
|
<int key="NSWindowBacking">2</int>
|
||||||
|
<string key="NSWindowRect">{{196, 240}, {449, 215}}</string>
|
||||||
|
<int key="NSWTFlags">1618477056</int>
|
||||||
|
<string key="NSWindowTitle">Deletion Options</string>
|
||||||
|
<string key="NSWindowClass">NSWindow</string>
|
||||||
|
<nil key="NSViewClass"/>
|
||||||
|
<nil key="NSUserInterfaceItemIdentifier"/>
|
||||||
|
<object class="NSView" key="NSWindowView" id="1006">
|
||||||
|
<reference key="NSNextResponder"/>
|
||||||
|
<int key="NSvFlags">256</int>
|
||||||
|
<array class="NSMutableArray" key="NSSubviews">
|
||||||
|
<object class="NSButton" id="22939991">
|
||||||
|
<reference key="NSNextResponder" ref="1006"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{18, 154}, {413, 18}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1006"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="258896148"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSButtonCell" key="NSCell" id="199073808">
|
||||||
|
<int key="NSCellFlags">67239424</int>
|
||||||
|
<int key="NSCellFlags2">0</int>
|
||||||
|
<string key="NSContents">Hardlink deleted files</string>
|
||||||
|
<object class="NSFont" key="NSSupport" id="672375986">
|
||||||
|
<string key="NSName">LucidaGrande</string>
|
||||||
|
<double key="NSSize">13</double>
|
||||||
|
<int key="NSfFlags">1044</int>
|
||||||
|
</object>
|
||||||
|
<string key="NSCellIdentifier">_NS:9</string>
|
||||||
|
<reference key="NSControlView" ref="22939991"/>
|
||||||
|
<int key="NSButtonFlags">1211912703</int>
|
||||||
|
<int key="NSButtonFlags2">2</int>
|
||||||
|
<object class="NSCustomResource" key="NSNormalImage" id="28662763">
|
||||||
|
<string key="NSClassName">NSImage</string>
|
||||||
|
<string key="NSResourceName">NSSwitch</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSButtonImageSource" key="NSAlternateImage" id="1065109393">
|
||||||
|
<string key="NSImageName">NSSwitch</string>
|
||||||
|
</object>
|
||||||
|
<string key="NSAlternateContents"/>
|
||||||
|
<string key="NSKeyEquivalent"/>
|
||||||
|
<int key="NSPeriodicDelay">200</int>
|
||||||
|
<int key="NSPeriodicInterval">25</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSButton" id="1003638083">
|
||||||
|
<reference key="NSNextResponder" ref="1006"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{18, 96}, {413, 18}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1006"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="316971589"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSButtonCell" key="NSCell" id="791836143">
|
||||||
|
<int key="NSCellFlags">67239424</int>
|
||||||
|
<int key="NSCellFlags2">0</int>
|
||||||
|
<string key="NSContents">Directly delete files</string>
|
||||||
|
<reference key="NSSupport" ref="672375986"/>
|
||||||
|
<string key="NSCellIdentifier">_NS:9</string>
|
||||||
|
<reference key="NSControlView" ref="1003638083"/>
|
||||||
|
<int key="NSButtonFlags">1211912703</int>
|
||||||
|
<int key="NSButtonFlags2">2</int>
|
||||||
|
<reference key="NSNormalImage" ref="28662763"/>
|
||||||
|
<reference key="NSAlternateImage" ref="1065109393"/>
|
||||||
|
<string key="NSAlternateContents"/>
|
||||||
|
<string key="NSKeyEquivalent"/>
|
||||||
|
<int key="NSPeriodicDelay">200</int>
|
||||||
|
<int key="NSPeriodicInterval">25</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSTextField" id="258896148">
|
||||||
|
<reference key="NSNextResponder" ref="1006"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{38, 120}, {394, 28}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1006"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="1003638083"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
|
<string key="NSAntiCompressionPriority">{250, 750}</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSTextFieldCell" key="NSCell" id="939395720">
|
||||||
|
<int key="NSCellFlags">67239424</int>
|
||||||
|
<int key="NSCellFlags2">272629760</int>
|
||||||
|
<string key="NSContents">After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file.</string>
|
||||||
|
<object class="NSFont" key="NSSupport" id="1067329392">
|
||||||
|
<string key="NSName">LucidaGrande</string>
|
||||||
|
<double key="NSSize">11</double>
|
||||||
|
<int key="NSfFlags">16</int>
|
||||||
|
</object>
|
||||||
|
<string key="NSCellIdentifier">_NS:9</string>
|
||||||
|
<reference key="NSControlView" ref="258896148"/>
|
||||||
|
<object class="NSColor" key="NSBackgroundColor" id="360163505">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">controlColor</string>
|
||||||
|
<object class="NSColor" key="NSColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSColor" key="NSTextColor" id="819030839">
|
||||||
|
<int key="NSColorSpace">6</int>
|
||||||
|
<string key="NSCatalogName">System</string>
|
||||||
|
<string key="NSColorName">controlTextColor</string>
|
||||||
|
<object class="NSColor" key="NSColor">
|
||||||
|
<int key="NSColorSpace">3</int>
|
||||||
|
<bytes key="NSWhite">MAA</bytes>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSTextField" id="316971589">
|
||||||
|
<reference key="NSNextResponder" ref="1006"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{38, 48}, {394, 42}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1006"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="375232713"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
|
<string key="NSAntiCompressionPriority">{250, 750}</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSTextFieldCell" key="NSCell" id="404549205">
|
||||||
|
<int key="NSCellFlags">67239424</int>
|
||||||
|
<int key="NSCellFlags2">272629760</int>
|
||||||
|
<string key="NSContents">Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work.</string>
|
||||||
|
<reference key="NSSupport" ref="1067329392"/>
|
||||||
|
<string key="NSCellIdentifier">_NS:9</string>
|
||||||
|
<reference key="NSControlView" ref="316971589"/>
|
||||||
|
<reference key="NSBackgroundColor" ref="360163505"/>
|
||||||
|
<reference key="NSTextColor" ref="819030839"/>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSButton" id="630940386">
|
||||||
|
<reference key="NSNextResponder" ref="1006"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{331, 12}, {104, 32}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1006"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSButtonCell" key="NSCell" id="551779024">
|
||||||
|
<int key="NSCellFlags">67239424</int>
|
||||||
|
<int key="NSCellFlags2">134217728</int>
|
||||||
|
<string key="NSContents">Proceed</string>
|
||||||
|
<reference key="NSSupport" ref="672375986"/>
|
||||||
|
<string key="NSCellIdentifier">_NS:9</string>
|
||||||
|
<reference key="NSControlView" ref="630940386"/>
|
||||||
|
<int key="NSButtonFlags">-2038284033</int>
|
||||||
|
<int key="NSButtonFlags2">129</int>
|
||||||
|
<string key="NSAlternateContents"/>
|
||||||
|
<string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
|
||||||
|
<int key="NSPeriodicDelay">200</int>
|
||||||
|
<int key="NSPeriodicInterval">25</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSButton" id="375232713">
|
||||||
|
<reference key="NSNextResponder" ref="1006"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{227, 12}, {104, 32}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1006"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="630940386"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:9</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSButtonCell" key="NSCell" id="311692270">
|
||||||
|
<int key="NSCellFlags">67239424</int>
|
||||||
|
<int key="NSCellFlags2">134217728</int>
|
||||||
|
<string key="NSContents">Cancel</string>
|
||||||
|
<reference key="NSSupport" ref="672375986"/>
|
||||||
|
<string key="NSCellIdentifier">_NS:9</string>
|
||||||
|
<reference key="NSControlView" ref="375232713"/>
|
||||||
|
<int key="NSButtonFlags">-2038284033</int>
|
||||||
|
<int key="NSButtonFlags2">129</int>
|
||||||
|
<string key="NSAlternateContents"/>
|
||||||
|
<string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
|
||||||
|
<int key="NSPeriodicDelay">200</int>
|
||||||
|
<int key="NSPeriodicInterval">25</int>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="NSTextField" id="275527426">
|
||||||
|
<reference key="NSNextResponder" ref="1006"/>
|
||||||
|
<int key="NSvFlags">268</int>
|
||||||
|
<string key="NSFrame">{{17, 178}, {415, 17}}</string>
|
||||||
|
<reference key="NSSuperview" ref="1006"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="22939991"/>
|
||||||
|
<string key="NSReuseIdentifierKey">_NS:1505</string>
|
||||||
|
<bool key="NSEnabled">YES</bool>
|
||||||
|
<object class="NSTextFieldCell" key="NSCell" id="184485433">
|
||||||
|
<int key="NSCellFlags">68288064</int>
|
||||||
|
<int key="NSCellFlags2">272630784</int>
|
||||||
|
<string key="NSContents"/>
|
||||||
|
<reference key="NSSupport" ref="672375986"/>
|
||||||
|
<string key="NSCellIdentifier">_NS:1505</string>
|
||||||
|
<reference key="NSControlView" ref="275527426"/>
|
||||||
|
<reference key="NSBackgroundColor" ref="360163505"/>
|
||||||
|
<reference key="NSTextColor" ref="819030839"/>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</array>
|
||||||
|
<string key="NSFrameSize">{449, 215}</string>
|
||||||
|
<reference key="NSSuperview"/>
|
||||||
|
<reference key="NSWindow"/>
|
||||||
|
<reference key="NSNextKeyView" ref="275527426"/>
|
||||||
|
</object>
|
||||||
|
<string key="NSScreenRect">{{0, 0}, {1920, 1058}}</string>
|
||||||
|
<string key="NSMaxSize">{10000000000000, 10000000000000}</string>
|
||||||
|
<bool key="NSWindowIsRestorable">NO</bool>
|
||||||
|
</object>
|
||||||
|
</array>
|
||||||
|
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||||
|
<array class="NSMutableArray" key="connectionRecords">
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">messageTextField</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="275527426"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">45</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">hardlinkButton</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="22939991"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">46</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">directButton</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="1003638083"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">47</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">updateOptions:</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="22939991"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">48</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">updateOptions:</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="1003638083"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">49</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">cancel:</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="375232713"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">50</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">proceed:</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="630940386"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">51</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">window</string>
|
||||||
|
<reference key="source" ref="1001"/>
|
||||||
|
<reference key="destination" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">52</int>
|
||||||
|
</object>
|
||||||
|
</array>
|
||||||
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
|
<array key="orderedObjects">
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">0</int>
|
||||||
|
<array key="object" id="0"/>
|
||||||
|
<reference key="children" ref="1000"/>
|
||||||
|
<nil key="parent"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-2</int>
|
||||||
|
<reference key="object" ref="1001"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">File's Owner</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-1</int>
|
||||||
|
<reference key="object" ref="1003"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">First Responder</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">-3</int>
|
||||||
|
<reference key="object" ref="1004"/>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
<string key="objectName">Application</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">1</int>
|
||||||
|
<reference key="object" ref="1005"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="1006"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="0"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">2</int>
|
||||||
|
<reference key="object" ref="1006"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="275527426"/>
|
||||||
|
<reference ref="22939991"/>
|
||||||
|
<reference ref="1003638083"/>
|
||||||
|
<reference ref="258896148"/>
|
||||||
|
<reference ref="316971589"/>
|
||||||
|
<reference ref="630940386"/>
|
||||||
|
<reference ref="375232713"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1005"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">3</int>
|
||||||
|
<reference key="object" ref="22939991"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="199073808"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1006"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">4</int>
|
||||||
|
<reference key="object" ref="199073808"/>
|
||||||
|
<reference key="parent" ref="22939991"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">7</int>
|
||||||
|
<reference key="object" ref="258896148"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="939395720"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1006"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">8</int>
|
||||||
|
<reference key="object" ref="939395720"/>
|
||||||
|
<reference key="parent" ref="258896148"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">35</int>
|
||||||
|
<reference key="object" ref="1003638083"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="791836143"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1006"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">36</int>
|
||||||
|
<reference key="object" ref="791836143"/>
|
||||||
|
<reference key="parent" ref="1003638083"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">37</int>
|
||||||
|
<reference key="object" ref="316971589"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="404549205"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1006"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">38</int>
|
||||||
|
<reference key="object" ref="404549205"/>
|
||||||
|
<reference key="parent" ref="316971589"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">39</int>
|
||||||
|
<reference key="object" ref="630940386"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="551779024"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1006"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">40</int>
|
||||||
|
<reference key="object" ref="551779024"/>
|
||||||
|
<reference key="parent" ref="630940386"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">41</int>
|
||||||
|
<reference key="object" ref="375232713"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="311692270"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1006"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">42</int>
|
||||||
|
<reference key="object" ref="311692270"/>
|
||||||
|
<reference key="parent" ref="375232713"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">43</int>
|
||||||
|
<reference key="object" ref="275527426"/>
|
||||||
|
<array class="NSMutableArray" key="children">
|
||||||
|
<reference ref="184485433"/>
|
||||||
|
</array>
|
||||||
|
<reference key="parent" ref="1006"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">44</int>
|
||||||
|
<reference key="object" ref="184485433"/>
|
||||||
|
<reference key="parent" ref="275527426"/>
|
||||||
|
</object>
|
||||||
|
</array>
|
||||||
|
</object>
|
||||||
|
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||||
|
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<boolean value="YES" key="1.IBNSWindowAutoPositionCentersHorizontal"/>
|
||||||
|
<boolean value="YES" key="1.IBNSWindowAutoPositionCentersVertical"/>
|
||||||
|
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="1.IBWindowTemplateEditedContentRect">{{357, 418}, {480, 270}}</string>
|
||||||
|
<boolean value="NO" key="1.NSWindowTemplate.visibleAtLaunch"/>
|
||||||
|
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="35.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="36.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="37.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="38.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="39.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="40.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="41.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="42.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="43.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="44.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
|
||||||
|
<nil key="activeLocalization"/>
|
||||||
|
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||||
|
<nil key="sourceID"/>
|
||||||
|
<int key="maxID">52</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
|
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">DeletionOptions</string>
|
||||||
|
<string key="superclassName">NSWindowController</string>
|
||||||
|
<dictionary class="NSMutableDictionary" key="actions">
|
||||||
|
<string key="cancel:">id</string>
|
||||||
|
<string key="proceed:">id</string>
|
||||||
|
<string key="updateOptions:">id</string>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<object class="IBActionInfo" key="cancel:">
|
||||||
|
<string key="name">cancel:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo" key="proceed:">
|
||||||
|
<string key="name">proceed:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo" key="updateOptions:">
|
||||||
|
<string key="name">updateOptions:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="outlets">
|
||||||
|
<string key="directButton">NSButton</string>
|
||||||
|
<string key="hardlinkButton">NSButton</string>
|
||||||
|
<string key="messageTextField">NSTextField</string>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<object class="IBToOneOutletInfo" key="directButton">
|
||||||
|
<string key="name">directButton</string>
|
||||||
|
<string key="candidateClassName">NSButton</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="hardlinkButton">
|
||||||
|
<string key="name">hardlinkButton</string>
|
||||||
|
<string key="candidateClassName">NSButton</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="messageTextField">
|
||||||
|
<string key="name">messageTextField</string>
|
||||||
|
<string key="candidateClassName">NSTextField</string>
|
||||||
|
</object>
|
||||||
|
</dictionary>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/DeletionOptions.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
</array>
|
||||||
|
</object>
|
||||||
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||||
|
<real value="1060" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
|
<object class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||||
|
<string key="NS.key.0">NSSwitch</string>
|
||||||
|
<string key="NS.object.0">{15, 15}</string>
|
||||||
|
</object>
|
||||||
|
</data>
|
||||||
|
</archive>
|
||||||
@@ -16,10 +16,11 @@
|
|||||||
"Do you really want to remove all your cached picture analysis?" = "Do you really want to remove all your cached picture analysis?";
|
"Do you really want to remove all your cached picture analysis?" = "Do you really want to remove all your cached picture analysis?";
|
||||||
|
|
||||||
|
|
||||||
"Add iTunes Directory" = "Add iTunes Directory";
|
"Add iTunes Library" = "Add iTunes Library";
|
||||||
"Remove Dead Tracks in iTunes" = "Remove Dead Tracks in iTunes";
|
"Remove Dead Tracks in iTunes" = "Remove Dead Tracks in iTunes";
|
||||||
|
|
||||||
"Add iPhoto Library" = "Add iPhoto Library";
|
"Add iPhoto Library" = "Add iPhoto Library";
|
||||||
|
"Add Aperture Library" = "Add Aperture Library";
|
||||||
"Clear Picture Cache" = "Clear Picture Cache";
|
"Clear Picture Cache" = "Clear Picture Cache";
|
||||||
|
|
||||||
"Yes" = "Yes";
|
"Yes" = "Yes";
|
||||||
|
|||||||
@@ -53,8 +53,8 @@
|
|||||||
/* Class = "NSMenu"; title = "Actions"; ObjectID = "598"; */
|
/* Class = "NSMenu"; title = "Actions"; ObjectID = "598"; */
|
||||||
"598.title" = "Actions";
|
"598.title" = "Actions";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Send Marked to Trash"; ObjectID = "599"; */
|
/* Class = "NSMenuItem"; title = "Send Marked to Trash..."; ObjectID = "599"; */
|
||||||
"599.title" = "Send Marked to Trash";
|
"599.title" = "Send Marked to Trash...";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "600"; */
|
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "600"; */
|
||||||
"600.title" = "Move Marked to...";
|
"600.title" = "Move Marked to...";
|
||||||
@@ -158,9 +158,6 @@
|
|||||||
/* Class = "NSMenuItem"; title = "Save Results..."; ObjectID = "1206"; */
|
/* Class = "NSMenuItem"; title = "Save Results..."; ObjectID = "1206"; */
|
||||||
"1206.title" = "Save Results...";
|
"1206.title" = "Save Results...";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Delete Marked and Replace with Hardlinks"; ObjectID = "1227"; */
|
|
||||||
"1227.title" = "Delete Marked and Replace with Hardlinks";
|
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Load Recent Results"; ObjectID = "1239"; */
|
/* Class = "NSMenuItem"; title = "Load Recent Results"; ObjectID = "1239"; */
|
||||||
"1239.title" = "Load Recent Results";
|
"1239.title" = "Load Recent Results";
|
||||||
|
|
||||||
@@ -173,5 +170,11 @@
|
|||||||
/* Class = "NSMenuItem"; title = "Re-Prioritize Results"; ObjectID = "1276"; */
|
/* Class = "NSMenuItem"; title = "Re-Prioritize Results"; ObjectID = "1276"; */
|
||||||
"1276.title" = "Re-Prioritize Results";
|
"1276.title" = "Re-Prioritize Results";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "1280"; */
|
||||||
|
"1280.title" = "Quick Look";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Ignore List"; ObjectID = "1283"; */
|
/* Class = "NSMenuItem"; title = "Ignore List"; ObjectID = "1283"; */
|
||||||
"1283.title" = "Ignore List";
|
"1283.title" = "Ignore List";
|
||||||
|
|
||||||
|
/* Class = "NSMenuItem"; title = "Filter Results..."; ObjectID = "1288"; */
|
||||||
|
"1288.title" = "Filter Results...";
|
||||||
|
|||||||
@@ -2,13 +2,13 @@
|
|||||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||||
<data>
|
<data>
|
||||||
<int key="IBDocument.SystemTarget">1060</int>
|
<int key="IBDocument.SystemTarget">1060</int>
|
||||||
<string key="IBDocument.SystemVersion">11D50</string>
|
<string key="IBDocument.SystemVersion">11E53</string>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">2177</string>
|
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="NS.object.0">2177</string>
|
<string key="NS.object.0">2182</string>
|
||||||
</object>
|
</object>
|
||||||
<array key="IBDocument.IntegratedClassDependencies">
|
<array key="IBDocument.IntegratedClassDependencies">
|
||||||
<string>NSMenu</string>
|
<string>NSMenu</string>
|
||||||
@@ -294,6 +294,26 @@
|
|||||||
<reference key="NSOnImage" ref="34697260"/>
|
<reference key="NSOnImage" ref="34697260"/>
|
||||||
<reference key="NSMixedImage" ref="201180191"/>
|
<reference key="NSMixedImage" ref="201180191"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="NSMenuItem" id="1047465480">
|
||||||
|
<reference key="NSMenu" ref="649942443"/>
|
||||||
|
<bool key="NSIsDisabled">YES</bool>
|
||||||
|
<bool key="NSIsSeparator">YES</bool>
|
||||||
|
<string key="NSTitle"/>
|
||||||
|
<string key="NSKeyEquiv"/>
|
||||||
|
<int key="NSKeyEquivModMask">1048576</int>
|
||||||
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
|
<reference key="NSOnImage" ref="34697260"/>
|
||||||
|
<reference key="NSMixedImage" ref="201180191"/>
|
||||||
|
</object>
|
||||||
|
<object class="NSMenuItem" id="820963618">
|
||||||
|
<reference key="NSMenu" ref="649942443"/>
|
||||||
|
<string key="NSTitle">Filter Results...</string>
|
||||||
|
<string key="NSKeyEquiv">f</string>
|
||||||
|
<int key="NSKeyEquivModMask">1572864</int>
|
||||||
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
|
<reference key="NSOnImage" ref="34697260"/>
|
||||||
|
<reference key="NSMixedImage" ref="201180191"/>
|
||||||
|
</object>
|
||||||
</array>
|
</array>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
@@ -331,22 +351,13 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="894871136">
|
<object class="NSMenuItem" id="894871136">
|
||||||
<reference key="NSMenu" ref="600111647"/>
|
<reference key="NSMenu" ref="600111647"/>
|
||||||
<string key="NSTitle">Send Marked to Trash</string>
|
<string key="NSTitle">Send Marked to Trash...</string>
|
||||||
<string key="NSKeyEquiv">t</string>
|
<string key="NSKeyEquiv">t</string>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<int key="NSKeyEquivModMask">1048576</int>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
<reference key="NSOnImage" ref="34697260"/>
|
<reference key="NSOnImage" ref="34697260"/>
|
||||||
<reference key="NSMixedImage" ref="201180191"/>
|
<reference key="NSMixedImage" ref="201180191"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="514384201">
|
|
||||||
<reference key="NSMenu" ref="600111647"/>
|
|
||||||
<string key="NSTitle">Delete Marked and Replace with Hardlinks</string>
|
|
||||||
<string key="NSKeyEquiv">T</string>
|
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
|
||||||
<reference key="NSOnImage" ref="34697260"/>
|
|
||||||
<reference key="NSMixedImage" ref="201180191"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMenuItem" id="207129050">
|
<object class="NSMenuItem" id="207129050">
|
||||||
<reference key="NSMenu" ref="600111647"/>
|
<reference key="NSMenu" ref="600111647"/>
|
||||||
<string key="NSTitle">Move Marked to...</string>
|
<string key="NSTitle">Move Marked to...</string>
|
||||||
@@ -563,7 +574,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="NSMenuItem" id="343354529">
|
<object class="NSMenuItem" id="343354529">
|
||||||
<reference key="NSMenu" ref="472719764"/>
|
<reference key="NSMenu" ref="472719764"/>
|
||||||
<string key="NSTitle">Quicklook</string>
|
<string key="NSTitle">Quick Look</string>
|
||||||
<string key="NSKeyEquiv">l</string>
|
<string key="NSKeyEquiv">l</string>
|
||||||
<int key="NSKeyEquivModMask">1048576</int>
|
<int key="NSKeyEquivModMask">1048576</int>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
@@ -780,14 +791,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">1244</int>
|
<int key="connectionID">1244</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">deleteMarked:</string>
|
|
||||||
<reference key="source" ref="83466988"/>
|
|
||||||
<reference key="destination" ref="894871136"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">1245</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">exportToXHTML:</string>
|
<string key="label">exportToXHTML:</string>
|
||||||
@@ -796,14 +799,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">1246</int>
|
<int key="connectionID">1246</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">hardlinkMarked:</string>
|
|
||||||
<reference key="source" ref="83466988"/>
|
|
||||||
<reference key="destination" ref="514384201"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">1247</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">ignoreSelected:</string>
|
<string key="label">ignoreSelected:</string>
|
||||||
@@ -964,6 +959,22 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">1282</int>
|
<int key="connectionID">1282</int>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">trashMarked:</string>
|
||||||
|
<reference key="source" ref="83466988"/>
|
||||||
|
<reference key="destination" ref="894871136"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1286</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">focusOnFilterField:</string>
|
||||||
|
<reference key="source" ref="83466988"/>
|
||||||
|
<reference key="destination" ref="820963618"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1289</int>
|
||||||
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">delegate</string>
|
<string key="label">delegate</string>
|
||||||
@@ -1314,7 +1325,6 @@
|
|||||||
<reference ref="564101661"/>
|
<reference ref="564101661"/>
|
||||||
<reference ref="747820446"/>
|
<reference ref="747820446"/>
|
||||||
<reference ref="517397504"/>
|
<reference ref="517397504"/>
|
||||||
<reference ref="514384201"/>
|
|
||||||
<reference ref="200019883"/>
|
<reference ref="200019883"/>
|
||||||
</array>
|
</array>
|
||||||
<reference key="parent" ref="528113253"/>
|
<reference key="parent" ref="528113253"/>
|
||||||
@@ -1445,6 +1455,8 @@
|
|||||||
<reference ref="666519843"/>
|
<reference ref="666519843"/>
|
||||||
<reference ref="996047427"/>
|
<reference ref="996047427"/>
|
||||||
<reference ref="956279291"/>
|
<reference ref="956279291"/>
|
||||||
|
<reference ref="1047465480"/>
|
||||||
|
<reference ref="820963618"/>
|
||||||
</array>
|
</array>
|
||||||
<reference key="parent" ref="551331186"/>
|
<reference key="parent" ref="551331186"/>
|
||||||
</object>
|
</object>
|
||||||
@@ -1544,11 +1556,6 @@
|
|||||||
<reference key="object" ref="630362403"/>
|
<reference key="object" ref="630362403"/>
|
||||||
<reference key="parent" ref="948321368"/>
|
<reference key="parent" ref="948321368"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">1227</int>
|
|
||||||
<reference key="object" ref="514384201"/>
|
|
||||||
<reference key="parent" ref="600111647"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">1239</int>
|
<int key="objectID">1239</int>
|
||||||
<reference key="object" ref="356425059"/>
|
<reference key="object" ref="356425059"/>
|
||||||
@@ -1583,6 +1590,16 @@
|
|||||||
<reference key="object" ref="361987512"/>
|
<reference key="object" ref="361987512"/>
|
||||||
<reference key="parent" ref="472719764"/>
|
<reference key="parent" ref="472719764"/>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">1287</int>
|
||||||
|
<reference key="object" ref="1047465480"/>
|
||||||
|
<reference key="parent" ref="649942443"/>
|
||||||
|
</object>
|
||||||
|
<object class="IBObjectRecord">
|
||||||
|
<int key="objectID">1288</int>
|
||||||
|
<reference key="object" ref="820963618"/>
|
||||||
|
<reference key="parent" ref="649942443"/>
|
||||||
|
</object>
|
||||||
</array>
|
</array>
|
||||||
</object>
|
</object>
|
||||||
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
<dictionary class="NSMutableDictionary" key="flattenedProperties">
|
||||||
@@ -1603,13 +1620,14 @@
|
|||||||
<string key="1204.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1204.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1205.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1205.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1206.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1206.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1227.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="1239.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1239.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1240.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1240.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1272.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1272.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1276.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1276.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1280.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1280.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="1283.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="1283.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="1287.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
|
<string key="1288.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="134.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="136.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="136.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="144.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@@ -1668,7 +1686,7 @@
|
|||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">1285</int>
|
<int key="maxID">1289</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
@@ -1816,6 +1834,57 @@
|
|||||||
<string key="minorKey">./Classes/IgnoreListDialog.h</string>
|
<string key="minorKey">./Classes/IgnoreListDialog.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">PrioritizeDialog</string>
|
||||||
|
<string key="superclassName">NSWindowController</string>
|
||||||
|
<dictionary class="NSMutableDictionary" key="actions">
|
||||||
|
<string key="addSelected:">id</string>
|
||||||
|
<string key="cancel:">id</string>
|
||||||
|
<string key="ok:">id</string>
|
||||||
|
<string key="removeSelected:">id</string>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<object class="IBActionInfo" key="addSelected:">
|
||||||
|
<string key="name">addSelected:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo" key="cancel:">
|
||||||
|
<string key="name">cancel:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo" key="ok:">
|
||||||
|
<string key="name">ok:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBActionInfo" key="removeSelected:">
|
||||||
|
<string key="name">removeSelected:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="outlets">
|
||||||
|
<string key="categoryPopUpView">NSPopUpButton</string>
|
||||||
|
<string key="criteriaTableView">NSTableView</string>
|
||||||
|
<string key="prioritizationTableView">NSTableView</string>
|
||||||
|
</dictionary>
|
||||||
|
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
|
<object class="IBToOneOutletInfo" key="categoryPopUpView">
|
||||||
|
<string key="name">categoryPopUpView</string>
|
||||||
|
<string key="candidateClassName">NSPopUpButton</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="criteriaTableView">
|
||||||
|
<string key="name">criteriaTableView</string>
|
||||||
|
<string key="candidateClassName">NSTableView</string>
|
||||||
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="prioritizationTableView">
|
||||||
|
<string key="name">prioritizationTableView</string>
|
||||||
|
<string key="candidateClassName">NSTableView</string>
|
||||||
|
</object>
|
||||||
|
</dictionary>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/PrioritizeDialog.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">ProblemDialog</string>
|
<string key="className">ProblemDialog</string>
|
||||||
<string key="superclassName">NSWindowController</string>
|
<string key="superclassName">NSWindowController</string>
|
||||||
@@ -1852,10 +1921,9 @@
|
|||||||
<dictionary class="NSMutableDictionary" key="actions">
|
<dictionary class="NSMutableDictionary" key="actions">
|
||||||
<string key="changeOptions:">id</string>
|
<string key="changeOptions:">id</string>
|
||||||
<string key="copyMarked:">id</string>
|
<string key="copyMarked:">id</string>
|
||||||
<string key="deleteMarked:">id</string>
|
|
||||||
<string key="exportToXHTML:">id</string>
|
<string key="exportToXHTML:">id</string>
|
||||||
<string key="filter:">id</string>
|
<string key="filter:">id</string>
|
||||||
<string key="hardlinkMarked:">id</string>
|
<string key="focusOnFilterField:">id</string>
|
||||||
<string key="ignoreSelected:">id</string>
|
<string key="ignoreSelected:">id</string>
|
||||||
<string key="invokeCustomCommand:">id</string>
|
<string key="invokeCustomCommand:">id</string>
|
||||||
<string key="markAll:">id</string>
|
<string key="markAll:">id</string>
|
||||||
@@ -1879,6 +1947,7 @@
|
|||||||
<string key="toggleDetailsPanel:">id</string>
|
<string key="toggleDetailsPanel:">id</string>
|
||||||
<string key="togglePowerMarker:">id</string>
|
<string key="togglePowerMarker:">id</string>
|
||||||
<string key="toggleQuicklookPanel:">id</string>
|
<string key="toggleQuicklookPanel:">id</string>
|
||||||
|
<string key="trashMarked:">id</string>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||||
<object class="IBActionInfo" key="changeOptions:">
|
<object class="IBActionInfo" key="changeOptions:">
|
||||||
@@ -1889,10 +1958,6 @@
|
|||||||
<string key="name">copyMarked:</string>
|
<string key="name">copyMarked:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBActionInfo" key="deleteMarked:">
|
|
||||||
<string key="name">deleteMarked:</string>
|
|
||||||
<string key="candidateClassName">id</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBActionInfo" key="exportToXHTML:">
|
<object class="IBActionInfo" key="exportToXHTML:">
|
||||||
<string key="name">exportToXHTML:</string>
|
<string key="name">exportToXHTML:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
@@ -1901,8 +1966,8 @@
|
|||||||
<string key="name">filter:</string>
|
<string key="name">filter:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBActionInfo" key="hardlinkMarked:">
|
<object class="IBActionInfo" key="focusOnFilterField:">
|
||||||
<string key="name">hardlinkMarked:</string>
|
<string key="name">focusOnFilterField:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBActionInfo" key="ignoreSelected:">
|
<object class="IBActionInfo" key="ignoreSelected:">
|
||||||
@@ -1997,11 +2062,16 @@
|
|||||||
<string key="name">toggleQuicklookPanel:</string>
|
<string key="name">toggleQuicklookPanel:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBActionInfo" key="trashMarked:">
|
||||||
|
<string key="name">trashMarked:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="outlets">
|
<dictionary class="NSMutableDictionary" key="outlets">
|
||||||
<string key="filterField">NSSearchField</string>
|
<string key="filterField">NSSearchField</string>
|
||||||
<string key="matches">HSTableView</string>
|
<string key="matches">HSTableView</string>
|
||||||
<string key="optionsSwitch">NSSegmentedControl</string>
|
<string key="optionsSwitch">NSSegmentedControl</string>
|
||||||
|
<string key="optionsToolbarItem">NSToolbarItem</string>
|
||||||
<string key="stats">NSTextField</string>
|
<string key="stats">NSTextField</string>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
|
||||||
@@ -2017,6 +2087,10 @@
|
|||||||
<string key="name">optionsSwitch</string>
|
<string key="name">optionsSwitch</string>
|
||||||
<string key="candidateClassName">NSSegmentedControl</string>
|
<string key="candidateClassName">NSSegmentedControl</string>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBToOneOutletInfo" key="optionsToolbarItem">
|
||||||
|
<string key="name">optionsToolbarItem</string>
|
||||||
|
<string key="candidateClassName">NSToolbarItem</string>
|
||||||
|
</object>
|
||||||
<object class="IBToOneOutletInfo" key="stats">
|
<object class="IBToOneOutletInfo" key="stats">
|
||||||
<string key="name">stats</string>
|
<string key="name">stats</string>
|
||||||
<string key="candidateClassName">NSTextField</string>
|
<string key="candidateClassName">NSTextField</string>
|
||||||
@@ -2061,18 +2135,10 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
|
||||||
<real value="1060" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||||
<real value="1060" key="NS.object.0"/>
|
<real value="1060" key="NS.object.0"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
|
||||||
<real value="4100" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||||
|
|||||||
@@ -29,11 +29,8 @@
|
|||||||
/* Class = "NSToolbarItem"; paletteLabel = "Directories"; ObjectID = "19"; */
|
/* Class = "NSToolbarItem"; paletteLabel = "Directories"; ObjectID = "19"; */
|
||||||
"19.paletteLabel" = "Directories";
|
"19.paletteLabel" = "Directories";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Delete Marked and Replace with Hardlinks"; ObjectID = "27"; */
|
/* Class = "NSMenuItem"; title = "Send Marked to Trash..."; ObjectID = "29"; */
|
||||||
"27.title" = "Delete Marked and Replace with Hardlinks";
|
"29.title" = "Send Marked to Trash...";
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Send Marked to Trash"; ObjectID = "29"; */
|
|
||||||
"29.title" = "Send Marked to Trash";
|
|
||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "30"; */
|
/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "30"; */
|
||||||
"30.title" = "Move Marked to...";
|
"30.title" = "Move Marked to...";
|
||||||
@@ -94,3 +91,9 @@
|
|||||||
|
|
||||||
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "74"; */
|
/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "74"; */
|
||||||
"74.title" = "Open Selected with Default Application";
|
"74.title" = "Open Selected with Default Application";
|
||||||
|
|
||||||
|
/* Class = "NSToolbarItem"; label = "Quick Look"; ObjectID = "86"; */
|
||||||
|
"86.label" = "Quick Look";
|
||||||
|
|
||||||
|
/* Class = "NSToolbarItem"; paletteLabel = "Quick Look"; ObjectID = "86"; */
|
||||||
|
"86.paletteLabel" = "Quick Look";
|
||||||
|
|||||||
@@ -2,10 +2,10 @@
|
|||||||
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00">
|
||||||
<data>
|
<data>
|
||||||
<int key="IBDocument.SystemTarget">1060</int>
|
<int key="IBDocument.SystemTarget">1060</int>
|
||||||
<string key="IBDocument.SystemVersion">11D50</string>
|
<string key="IBDocument.SystemVersion">11E53</string>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
<string key="IBDocument.InterfaceBuilderVersion">2182</string>
|
||||||
<string key="IBDocument.AppKitVersion">1138.32</string>
|
<string key="IBDocument.AppKitVersion">1138.47</string>
|
||||||
<string key="IBDocument.HIToolboxVersion">568.00</string>
|
<string key="IBDocument.HIToolboxVersion">569.00</string>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
<object class="NSMutableDictionary" key="IBDocument.PluginVersions">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="NS.object.0">2182</string>
|
<string key="NS.object.0">2182</string>
|
||||||
@@ -161,7 +161,6 @@
|
|||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{0, 14}, {195, 23}}</string>
|
<string key="NSFrame">{{0, 14}, {195, 23}}</string>
|
||||||
<reference key="NSSuperview"/>
|
<reference key="NSSuperview"/>
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView"/>
|
<reference key="NSNextKeyView"/>
|
||||||
<bool key="NSEnabled">YES</bool>
|
<bool key="NSEnabled">YES</bool>
|
||||||
<object class="NSSegmentedCell" key="NSCell" id="993391476">
|
<object class="NSSegmentedCell" key="NSCell" id="993391476">
|
||||||
@@ -219,7 +218,6 @@
|
|||||||
<int key="NSvFlags">258</int>
|
<int key="NSvFlags">258</int>
|
||||||
<string key="NSFrame">{{0, 14}, {81, 22}}</string>
|
<string key="NSFrame">{{0, 14}, {81, 22}}</string>
|
||||||
<reference key="NSSuperview"/>
|
<reference key="NSSuperview"/>
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView"/>
|
<reference key="NSNextKeyView"/>
|
||||||
<bool key="NSEnabled">YES</bool>
|
<bool key="NSEnabled">YES</bool>
|
||||||
<object class="NSSearchFieldCell" key="NSCell" id="830851754">
|
<object class="NSSearchFieldCell" key="NSCell" id="830851754">
|
||||||
@@ -312,7 +310,6 @@
|
|||||||
<int key="NSvFlags">268</int>
|
<int key="NSvFlags">268</int>
|
||||||
<string key="NSFrame">{{12, 14}, {44, 25}}</string>
|
<string key="NSFrame">{{12, 14}, {44, 25}}</string>
|
||||||
<reference key="NSSuperview"/>
|
<reference key="NSSuperview"/>
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView"/>
|
<reference key="NSNextKeyView"/>
|
||||||
<string key="NSReuseIdentifierKey">_NS:161</string>
|
<string key="NSReuseIdentifierKey">_NS:161</string>
|
||||||
<bool key="NSEnabled">YES</bool>
|
<bool key="NSEnabled">YES</bool>
|
||||||
@@ -380,7 +377,6 @@
|
|||||||
<int key="NSvFlags">256</int>
|
<int key="NSvFlags">256</int>
|
||||||
<string key="NSFrame">{{1, 14}, {40, 25}}</string>
|
<string key="NSFrame">{{1, 14}, {40, 25}}</string>
|
||||||
<reference key="NSSuperview"/>
|
<reference key="NSSuperview"/>
|
||||||
<reference key="NSWindow"/>
|
|
||||||
<reference key="NSNextKeyView"/>
|
<reference key="NSNextKeyView"/>
|
||||||
<bool key="NSEnabled">YES</bool>
|
<bool key="NSEnabled">YES</bool>
|
||||||
<object class="NSPopUpButtonCell" key="NSCell" id="302095930">
|
<object class="NSPopUpButtonCell" key="NSCell" id="302095930">
|
||||||
@@ -422,17 +418,7 @@
|
|||||||
<reference ref="764786770"/>
|
<reference ref="764786770"/>
|
||||||
<object class="NSMenuItem" id="799999563">
|
<object class="NSMenuItem" id="799999563">
|
||||||
<reference key="NSMenu" ref="778415311"/>
|
<reference key="NSMenu" ref="778415311"/>
|
||||||
<string key="NSTitle">Send Marked to Trash</string>
|
<string key="NSTitle">Send Marked to Trash...</string>
|
||||||
<string key="NSKeyEquiv"/>
|
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
|
||||||
<reference key="NSOnImage" ref="1054238029"/>
|
|
||||||
<reference key="NSMixedImage" ref="1014570658"/>
|
|
||||||
<string key="NSAction">_popUpItemAction:</string>
|
|
||||||
<reference key="NSTarget" ref="302095930"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMenuItem" id="104143636">
|
|
||||||
<reference key="NSMenu" ref="778415311"/>
|
|
||||||
<string key="NSTitle">Delete Marked and Replace with Hardlinks</string>
|
|
||||||
<string key="NSKeyEquiv"/>
|
<string key="NSKeyEquiv"/>
|
||||||
<int key="NSMnemonicLoc">2147483647</int>
|
<int key="NSMnemonicLoc">2147483647</int>
|
||||||
<reference key="NSOnImage" ref="1054238029"/>
|
<reference key="NSOnImage" ref="1054238029"/>
|
||||||
@@ -560,6 +546,7 @@
|
|||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
</object>
|
</object>
|
||||||
|
<int key="NSSelectedIndex">1</int>
|
||||||
<bool key="NSPullDown">YES</bool>
|
<bool key="NSPullDown">YES</bool>
|
||||||
<int key="NSPreferredEdge">3</int>
|
<int key="NSPreferredEdge">3</int>
|
||||||
<bool key="NSUsesItemFromMenu">YES</bool>
|
<bool key="NSUsesItemFromMenu">YES</bool>
|
||||||
@@ -834,22 +821,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">46</int>
|
<int key="connectionID">46</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">deleteMarked:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="799999563"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">50</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">hardlinkMarked:</string>
|
|
||||||
<reference key="source" ref="1001"/>
|
|
||||||
<reference key="destination" ref="104143636"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">51</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">moveMarked:</string>
|
<string key="label">moveMarked:</string>
|
||||||
@@ -1042,6 +1013,14 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">82</int>
|
<int key="connectionID">82</int>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">trashMarked:</string>
|
||||||
|
<reference key="source" ref="1003"/>
|
||||||
|
<reference key="destination" ref="799999563"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">93</int>
|
||||||
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">delegate</string>
|
<string key="label">delegate</string>
|
||||||
@@ -1276,7 +1255,6 @@
|
|||||||
<int key="objectID">26</int>
|
<int key="objectID">26</int>
|
||||||
<reference key="object" ref="778415311"/>
|
<reference key="object" ref="778415311"/>
|
||||||
<array class="NSMutableArray" key="children">
|
<array class="NSMutableArray" key="children">
|
||||||
<reference ref="104143636"/>
|
|
||||||
<reference ref="764786770"/>
|
<reference ref="764786770"/>
|
||||||
<reference ref="799999563"/>
|
<reference ref="799999563"/>
|
||||||
<reference ref="294016844"/>
|
<reference ref="294016844"/>
|
||||||
@@ -1358,11 +1336,6 @@
|
|||||||
<reference key="object" ref="764786770"/>
|
<reference key="object" ref="764786770"/>
|
||||||
<reference key="parent" ref="778415311"/>
|
<reference key="parent" ref="778415311"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">27</int>
|
|
||||||
<reference key="object" ref="104143636"/>
|
|
||||||
<reference key="parent" ref="778415311"/>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">16</int>
|
<int key="objectID">16</int>
|
||||||
<reference key="object" ref="695856706"/>
|
<reference key="object" ref="695856706"/>
|
||||||
@@ -1451,7 +1424,6 @@
|
|||||||
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="24.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="25.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="26.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="27.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="28.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="29.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@@ -1496,7 +1468,7 @@
|
|||||||
<nil key="activeLocalization"/>
|
<nil key="activeLocalization"/>
|
||||||
<dictionary class="NSMutableDictionary" key="localizations"/>
|
<dictionary class="NSMutableDictionary" key="localizations"/>
|
||||||
<nil key="sourceID"/>
|
<nil key="sourceID"/>
|
||||||
<int key="maxID">92</int>
|
<int key="maxID">93</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBClassDescriber" key="IBDocument.Classes">
|
<object class="IBClassDescriber" key="IBDocument.Classes">
|
||||||
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
|
||||||
@@ -1588,13 +1560,13 @@
|
|||||||
<string key="className">ResultWindow</string>
|
<string key="className">ResultWindow</string>
|
||||||
<string key="superclassName">ResultWindowBase</string>
|
<string key="superclassName">ResultWindowBase</string>
|
||||||
<object class="NSMutableDictionary" key="actions">
|
<object class="NSMutableDictionary" key="actions">
|
||||||
<string key="NS.key.0">removeDeadTracks:</string>
|
<string key="NS.key.0">clearPictureCache:</string>
|
||||||
<string key="NS.object.0">id</string>
|
<string key="NS.object.0">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="actionInfosByName">
|
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||||
<string key="NS.key.0">removeDeadTracks:</string>
|
<string key="NS.key.0">clearPictureCache:</string>
|
||||||
<object class="IBActionInfo" key="NS.object.0">
|
<object class="IBActionInfo" key="NS.object.0">
|
||||||
<string key="name">removeDeadTracks:</string>
|
<string key="name">clearPictureCache:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
@@ -1609,10 +1581,9 @@
|
|||||||
<dictionary class="NSMutableDictionary" key="actions">
|
<dictionary class="NSMutableDictionary" key="actions">
|
||||||
<string key="changeOptions:">id</string>
|
<string key="changeOptions:">id</string>
|
||||||
<string key="copyMarked:">id</string>
|
<string key="copyMarked:">id</string>
|
||||||
<string key="deleteMarked:">id</string>
|
|
||||||
<string key="exportToXHTML:">id</string>
|
<string key="exportToXHTML:">id</string>
|
||||||
<string key="filter:">id</string>
|
<string key="filter:">id</string>
|
||||||
<string key="hardlinkMarked:">id</string>
|
<string key="focusOnFilterField:">id</string>
|
||||||
<string key="ignoreSelected:">id</string>
|
<string key="ignoreSelected:">id</string>
|
||||||
<string key="invokeCustomCommand:">id</string>
|
<string key="invokeCustomCommand:">id</string>
|
||||||
<string key="markAll:">id</string>
|
<string key="markAll:">id</string>
|
||||||
@@ -1636,6 +1607,7 @@
|
|||||||
<string key="toggleDetailsPanel:">id</string>
|
<string key="toggleDetailsPanel:">id</string>
|
||||||
<string key="togglePowerMarker:">id</string>
|
<string key="togglePowerMarker:">id</string>
|
||||||
<string key="toggleQuicklookPanel:">id</string>
|
<string key="toggleQuicklookPanel:">id</string>
|
||||||
|
<string key="trashMarked:">id</string>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
<dictionary class="NSMutableDictionary" key="actionInfosByName">
|
||||||
<object class="IBActionInfo" key="changeOptions:">
|
<object class="IBActionInfo" key="changeOptions:">
|
||||||
@@ -1646,10 +1618,6 @@
|
|||||||
<string key="name">copyMarked:</string>
|
<string key="name">copyMarked:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBActionInfo" key="deleteMarked:">
|
|
||||||
<string key="name">deleteMarked:</string>
|
|
||||||
<string key="candidateClassName">id</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBActionInfo" key="exportToXHTML:">
|
<object class="IBActionInfo" key="exportToXHTML:">
|
||||||
<string key="name">exportToXHTML:</string>
|
<string key="name">exportToXHTML:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
@@ -1658,8 +1626,8 @@
|
|||||||
<string key="name">filter:</string>
|
<string key="name">filter:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBActionInfo" key="hardlinkMarked:">
|
<object class="IBActionInfo" key="focusOnFilterField:">
|
||||||
<string key="name">hardlinkMarked:</string>
|
<string key="name">focusOnFilterField:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBActionInfo" key="ignoreSelected:">
|
<object class="IBActionInfo" key="ignoreSelected:">
|
||||||
@@ -1754,6 +1722,10 @@
|
|||||||
<string key="name">toggleQuicklookPanel:</string>
|
<string key="name">toggleQuicklookPanel:</string>
|
||||||
<string key="candidateClassName">id</string>
|
<string key="candidateClassName">id</string>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBActionInfo" key="trashMarked:">
|
||||||
|
<string key="name">trashMarked:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
</dictionary>
|
</dictionary>
|
||||||
<dictionary class="NSMutableDictionary" key="outlets">
|
<dictionary class="NSMutableDictionary" key="outlets">
|
||||||
<string key="filterField">NSSearchField</string>
|
<string key="filterField">NSSearchField</string>
|
||||||
@@ -1793,18 +1765,10 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="IBDocument.localizationMode">0</int>
|
<int key="IBDocument.localizationMode">0</int>
|
||||||
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
|
||||||
<real value="1060" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencyDefaults">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
|
||||||
<real value="1060" key="NS.object.0"/>
|
<real value="1060" key="NS.object.0"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
|
||||||
<real value="4100" key="NS.object.0"/>
|
|
||||||
</object>
|
|
||||||
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
|
||||||
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
<int key="IBDocument.defaultPropertyAccessControl">3</int>
|
||||||
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
|
||||||
|
|||||||
9
cocoa/inter/all.py
Normal file
9
cocoa/inter/all.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
from .deletion_options import PyDeletionOptions
|
||||||
|
from .details_panel import PyDetailsPanel
|
||||||
|
from .directory_outline import PyDirectoryOutline
|
||||||
|
from .prioritize_dialog import PyPrioritizeDialog
|
||||||
|
from .prioritize_list import PyPrioritizeList
|
||||||
|
from .problem_dialog import PyProblemDialog
|
||||||
|
from .ignore_list_dialog import PyIgnoreListDialog
|
||||||
|
from .result_table import PyResultTable
|
||||||
|
from .stats_label import PyStatsLabel
|
||||||
@@ -54,6 +54,9 @@ class PyDupeGuruBase(PyFairware):
|
|||||||
def ignoreListDialog(self) -> pyref:
|
def ignoreListDialog(self) -> pyref:
|
||||||
return self.model.ignore_list_dialog
|
return self.model.ignore_list_dialog
|
||||||
|
|
||||||
|
def deletionOptions(self) -> pyref:
|
||||||
|
return self.model.deletion_options
|
||||||
|
|
||||||
#---Directories
|
#---Directories
|
||||||
def addDirectory_(self, directory: str) -> int:
|
def addDirectory_(self, directory: str) -> int:
|
||||||
return self.model.add_directory(directory)
|
return self.model.add_directory(directory)
|
||||||
@@ -99,9 +102,6 @@ class PyDupeGuruBase(PyFairware):
|
|||||||
def deleteMarked(self):
|
def deleteMarked(self):
|
||||||
self.model.delete_marked()
|
self.model.delete_marked()
|
||||||
|
|
||||||
def hardlinkMarked(self):
|
|
||||||
self.model.delete_marked(replace_with_hardlinks=True)
|
|
||||||
|
|
||||||
def applyFilter_(self, filter: str):
|
def applyFilter_(self, filter: str):
|
||||||
self.model.apply_filter(filter)
|
self.model.apply_filter(filter)
|
||||||
|
|
||||||
|
|||||||
@@ -7,15 +7,17 @@
|
|||||||
# http://www.hardcoded.net/licenses/bsd_license
|
# http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
from appscript import app, its, k, CommandError, ApplicationNotFoundError
|
|
||||||
import plistlib
|
import plistlib
|
||||||
import time
|
import time
|
||||||
import os.path as op
|
import os.path as op
|
||||||
|
from appscript import app, its, k, CommandError, ApplicationNotFoundError
|
||||||
|
from . import tunes
|
||||||
|
|
||||||
from cocoa import as_fetch, proxy
|
from cocoa import as_fetch, proxy
|
||||||
from hscommon import io
|
from hscommon import io
|
||||||
from hscommon.trans import trget
|
from hscommon.trans import trget
|
||||||
from hscommon.path import Path
|
from hscommon.path import Path
|
||||||
|
from hscommon.util import remove_invalid_xml
|
||||||
|
|
||||||
from core import directories
|
from core import directories
|
||||||
from core.app import JobType
|
from core.app import JobType
|
||||||
@@ -54,7 +56,7 @@ class ITunesSong(fs.MusicFile):
|
|||||||
|
|
||||||
def remove_from_library(self):
|
def remove_from_library(self):
|
||||||
try:
|
try:
|
||||||
a = app(ITUNES)
|
a = app(ITUNES, terms=tunes)
|
||||||
library = get_itunes_library(a)
|
library = get_itunes_library(a)
|
||||||
if library is None:
|
if library is None:
|
||||||
return
|
return
|
||||||
@@ -78,7 +80,10 @@ def get_itunes_database_path():
|
|||||||
def get_itunes_songs(plistpath):
|
def get_itunes_songs(plistpath):
|
||||||
if not io.exists(plistpath):
|
if not io.exists(plistpath):
|
||||||
return []
|
return []
|
||||||
plist = plistlib.readPlist(str(plistpath))
|
s = io.open(plistpath, 'rt', encoding='utf-8').read()
|
||||||
|
# iTunes sometimes produces XML files with invalid characters in it.
|
||||||
|
s = remove_invalid_xml(s, replace_with='')
|
||||||
|
plist = plistlib.readPlistFromBytes(s.encode('utf-8'))
|
||||||
result = []
|
result = []
|
||||||
for song_data in plist['Tracks'].values():
|
for song_data in plist['Tracks'].values():
|
||||||
if song_data['Track Type'] != 'File':
|
if song_data['Track Type'] != 'File':
|
||||||
@@ -146,28 +151,28 @@ class DupeGuruME(DupeGuruBase):
|
|||||||
self.directories = Directories(fileclasses=self.directories.fileclasses)
|
self.directories = Directories(fileclasses=self.directories.fileclasses)
|
||||||
self.dead_tracks = []
|
self.dead_tracks = []
|
||||||
|
|
||||||
def _do_delete(self, j, replace_with_hardlinks):
|
def _do_delete(self, j, replace_with_hardlinks, direct_deletion):
|
||||||
# XXX If I read correctly, Python 3.3 will allow us to go fetch inner function easily, so
|
# XXX If I read correctly, Python 3.3 will allow us to go fetch inner function easily, so
|
||||||
# we'll be able to replace "op" below with DupeGuruBase._do_delete.op.
|
# we'll be able to replace "op" below with DupeGuruBase._do_delete.op.
|
||||||
def op(dupe):
|
def op(dupe):
|
||||||
j.add_progress()
|
j.add_progress()
|
||||||
return self._do_delete_dupe(dupe, replace_with_hardlinks)
|
return self._do_delete_dupe(dupe, replace_with_hardlinks, direct_deletion)
|
||||||
|
|
||||||
marked = [dupe for dupe in self.results.dupes if self.results.is_marked(dupe)]
|
marked = [dupe for dupe in self.results.dupes if self.results.is_marked(dupe)]
|
||||||
j.start_job(self.results.mark_count, tr("Sending dupes to the Trash"))
|
j.start_job(self.results.mark_count, tr("Sending dupes to the Trash"))
|
||||||
if any(isinstance(dupe, ITunesSong) for dupe in marked):
|
if any(isinstance(dupe, ITunesSong) for dupe in marked):
|
||||||
j.add_progress(0, desc=tr("Talking to iTunes. Don't touch it!"))
|
j.add_progress(0, desc=tr("Talking to iTunes. Don't touch it!"))
|
||||||
try:
|
try:
|
||||||
a = app(ITUNES)
|
a = app(ITUNES, terms=tunes)
|
||||||
a.activate(timeout=0)
|
a.activate(timeout=0)
|
||||||
except (CommandError, RuntimeError, ApplicationNotFoundError):
|
except (CommandError, RuntimeError, ApplicationNotFoundError):
|
||||||
pass
|
pass
|
||||||
self.results.perform_on_marked(op, True)
|
self.results.perform_on_marked(op, True)
|
||||||
|
|
||||||
def _do_delete_dupe(self, dupe, replace_with_hardlinks):
|
def _do_delete_dupe(self, dupe, replace_with_hardlinks, direct_deletion):
|
||||||
if isinstance(dupe, ITunesSong):
|
if isinstance(dupe, ITunesSong):
|
||||||
dupe.remove_from_library()
|
dupe.remove_from_library()
|
||||||
DupeGuruBase._do_delete_dupe(self, dupe, replace_with_hardlinks)
|
DupeGuruBase._do_delete_dupe(self, dupe, replace_with_hardlinks, direct_deletion)
|
||||||
|
|
||||||
def _create_file(self, path):
|
def _create_file(self, path):
|
||||||
if (self.directories.itunes_libpath is not None) and (path in self.directories.itunes_libpath[:-1]):
|
if (self.directories.itunes_libpath is not None) and (path in self.directories.itunes_libpath[:-1]):
|
||||||
@@ -208,7 +213,7 @@ class DupeGuruME(DupeGuruBase):
|
|||||||
def start_scanning(self):
|
def start_scanning(self):
|
||||||
if self.directories.has_itunes_path():
|
if self.directories.has_itunes_path():
|
||||||
try:
|
try:
|
||||||
app(ITUNES)
|
app(ITUNES, terms=tunes)
|
||||||
except ApplicationNotFoundError:
|
except ApplicationNotFoundError:
|
||||||
self.view.show_message(tr("The iTunes application couldn't be found."))
|
self.view.show_message(tr("The iTunes application couldn't be found."))
|
||||||
return
|
return
|
||||||
@@ -216,7 +221,7 @@ class DupeGuruME(DupeGuruBase):
|
|||||||
|
|
||||||
def remove_dead_tracks(self):
|
def remove_dead_tracks(self):
|
||||||
def do(j):
|
def do(j):
|
||||||
a = app(ITUNES)
|
a = app(ITUNES, terms=tunes)
|
||||||
a.activate(timeout=0)
|
a.activate(timeout=0)
|
||||||
for index, track in enumerate(j.iter_with_progress(self.dead_tracks)):
|
for index, track in enumerate(j.iter_with_progress(self.dead_tracks)):
|
||||||
if index % 100 == 0:
|
if index % 100 == 0:
|
||||||
@@ -230,7 +235,7 @@ class DupeGuruME(DupeGuruBase):
|
|||||||
|
|
||||||
def scan_dead_tracks(self):
|
def scan_dead_tracks(self):
|
||||||
def do(j):
|
def do(j):
|
||||||
a = app(ITUNES)
|
a = app(ITUNES, terms=tunes)
|
||||||
a.activate(timeout=0)
|
a.activate(timeout=0)
|
||||||
library = get_itunes_library(a)
|
library = get_itunes_library(a)
|
||||||
if library is None:
|
if library is None:
|
||||||
|
|||||||
@@ -11,16 +11,17 @@ import plistlib
|
|||||||
import logging
|
import logging
|
||||||
import re
|
import re
|
||||||
|
|
||||||
from appscript import app, its, CommandError, ApplicationNotFoundError
|
from appscript import app, its, k, CommandError, ApplicationNotFoundError
|
||||||
|
|
||||||
from hscommon import io
|
from hscommon import io
|
||||||
from hscommon.util import remove_invalid_xml
|
from hscommon.util import remove_invalid_xml, first
|
||||||
from hscommon.path import Path
|
from hscommon.path import Path
|
||||||
from hscommon.trans import trget
|
from hscommon.trans import trget
|
||||||
from cocoa import proxy
|
from cocoa import proxy
|
||||||
|
|
||||||
from core.scanner import ScanType
|
from core.scanner import ScanType
|
||||||
from core import directories
|
from core import directories
|
||||||
|
from core.app import JobType
|
||||||
from core_pe import _block_osx
|
from core_pe import _block_osx
|
||||||
from core_pe.photo import Photo as PhotoBase
|
from core_pe.photo import Photo as PhotoBase
|
||||||
from core_pe.app import DupeGuru as DupeGuruBase
|
from core_pe.app import DupeGuru as DupeGuruBase
|
||||||
@@ -29,6 +30,7 @@ from .app import PyDupeGuruBase
|
|||||||
tr = trget('ui')
|
tr = trget('ui')
|
||||||
|
|
||||||
IPHOTO_PATH = Path('iPhoto Library')
|
IPHOTO_PATH = Path('iPhoto Library')
|
||||||
|
APERTURE_PATH = Path('Aperture Library')
|
||||||
|
|
||||||
class Photo(PhotoBase):
|
class Photo(PhotoBase):
|
||||||
HANDLED_EXTS = PhotoBase.HANDLED_EXTS.copy()
|
HANDLED_EXTS = PhotoBase.HANDLED_EXTS.copy()
|
||||||
@@ -48,18 +50,25 @@ class Photo(PhotoBase):
|
|||||||
|
|
||||||
|
|
||||||
class IPhoto(Photo):
|
class IPhoto(Photo):
|
||||||
|
def __init__(self, path, db_id):
|
||||||
|
# In IPhoto, we don't care about the db_id, we find photos by path.
|
||||||
|
Photo.__init__(self, path)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def display_folder_path(self):
|
def display_folder_path(self):
|
||||||
return IPHOTO_PATH
|
return IPHOTO_PATH
|
||||||
|
|
||||||
def get_iphoto_database_path():
|
class AperturePhoto(Photo):
|
||||||
plisturls = proxy.prefValue_inDomain_('iPhotoRecentDatabases', 'com.apple.iApps')
|
def __init__(self, path, db_id):
|
||||||
if not plisturls:
|
Photo.__init__(self, path)
|
||||||
raise directories.InvalidPathError()
|
self.db_id = db_id
|
||||||
plistpath = proxy.url2path_(plisturls[0])
|
|
||||||
return Path(plistpath)
|
|
||||||
|
|
||||||
def get_iphoto_pictures(plistpath):
|
@property
|
||||||
|
def display_folder_path(self):
|
||||||
|
return APERTURE_PATH
|
||||||
|
|
||||||
|
def get_iphoto_or_aperture_pictures(plistpath, photo_class):
|
||||||
|
# The structure of iPhoto and Aperture libraries for the base photo list are excactly the same.
|
||||||
if not io.exists(plistpath):
|
if not io.exists(plistpath):
|
||||||
return []
|
return []
|
||||||
s = io.open(plistpath, 'rt', encoding='utf-8').read()
|
s = io.open(plistpath, 'rt', encoding='utf-8').read()
|
||||||
@@ -73,14 +82,33 @@ def get_iphoto_pictures(plistpath):
|
|||||||
logging.warning("%d invalid XML entities replacement made", count)
|
logging.warning("%d invalid XML entities replacement made", count)
|
||||||
plist = plistlib.readPlistFromBytes(s.encode('utf-8'))
|
plist = plistlib.readPlistFromBytes(s.encode('utf-8'))
|
||||||
result = []
|
result = []
|
||||||
for photo_data in plist['Master Image List'].values():
|
for key, photo_data in plist['Master Image List'].items():
|
||||||
if photo_data['MediaType'] != 'Image':
|
if photo_data['MediaType'] != 'Image':
|
||||||
continue
|
continue
|
||||||
photo_path = Path(photo_data['ImagePath'])
|
photo_path = Path(photo_data['ImagePath'])
|
||||||
photo = IPhoto(photo_path)
|
photo = photo_class(photo_path, key)
|
||||||
result.append(photo)
|
result.append(photo)
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
def get_iphoto_pictures(plistpath):
|
||||||
|
return get_iphoto_or_aperture_pictures(plistpath, IPhoto)
|
||||||
|
|
||||||
|
def get_aperture_pictures(plistpath):
|
||||||
|
return get_iphoto_or_aperture_pictures(plistpath, AperturePhoto)
|
||||||
|
|
||||||
|
def get_iapps_database_path(prefname):
|
||||||
|
plisturls = proxy.prefValue_inDomain_(prefname, 'com.apple.iApps')
|
||||||
|
if not plisturls:
|
||||||
|
raise directories.InvalidPathError()
|
||||||
|
plistpath = proxy.url2path_(plisturls[0])
|
||||||
|
return Path(plistpath)
|
||||||
|
|
||||||
|
def get_iphoto_database_path():
|
||||||
|
return get_iapps_database_path('iPhotoRecentDatabases')
|
||||||
|
|
||||||
|
def get_aperture_database_path():
|
||||||
|
return get_iapps_database_path('ApertureLibraries')
|
||||||
|
|
||||||
class Directories(directories.Directories):
|
class Directories(directories.Directories):
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
directories.Directories.__init__(self, fileclasses=[Photo])
|
directories.Directories.__init__(self, fileclasses=[Photo])
|
||||||
@@ -89,6 +117,11 @@ class Directories(directories.Directories):
|
|||||||
self.set_state(self.iphoto_libpath[:-1], directories.DirectoryState.Excluded)
|
self.set_state(self.iphoto_libpath[:-1], directories.DirectoryState.Excluded)
|
||||||
except directories.InvalidPathError:
|
except directories.InvalidPathError:
|
||||||
self.iphoto_libpath = None
|
self.iphoto_libpath = None
|
||||||
|
try:
|
||||||
|
self.aperture_libpath = get_aperture_database_path()
|
||||||
|
self.set_state(self.aperture_libpath[:-1], directories.DirectoryState.Excluded)
|
||||||
|
except directories.InvalidPathError:
|
||||||
|
self.aperture_libpath = None
|
||||||
|
|
||||||
def _get_files(self, from_path, j):
|
def _get_files(self, from_path, j):
|
||||||
if from_path == IPHOTO_PATH:
|
if from_path == IPHOTO_PATH:
|
||||||
@@ -99,25 +132,33 @@ class Directories(directories.Directories):
|
|||||||
for photo in photos:
|
for photo in photos:
|
||||||
photo.is_ref = is_ref
|
photo.is_ref = is_ref
|
||||||
return photos
|
return photos
|
||||||
|
elif from_path == APERTURE_PATH:
|
||||||
|
if self.aperture_libpath is None:
|
||||||
|
return []
|
||||||
|
is_ref = self.get_state(from_path) == directories.DirectoryState.Reference
|
||||||
|
photos = get_aperture_pictures(self.aperture_libpath)
|
||||||
|
for photo in photos:
|
||||||
|
photo.is_ref = is_ref
|
||||||
|
return photos
|
||||||
else:
|
else:
|
||||||
return directories.Directories._get_files(self, from_path, j)
|
return directories.Directories._get_files(self, from_path, j)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_subfolders(path):
|
def get_subfolders(path):
|
||||||
if path == IPHOTO_PATH:
|
if path in {IPHOTO_PATH, APERTURE_PATH}:
|
||||||
return []
|
return []
|
||||||
else:
|
else:
|
||||||
return directories.Directories.get_subfolders(path)
|
return directories.Directories.get_subfolders(path)
|
||||||
|
|
||||||
def add_path(self, path):
|
def add_path(self, path):
|
||||||
if path == IPHOTO_PATH:
|
if path in {IPHOTO_PATH, APERTURE_PATH}:
|
||||||
if path not in self:
|
if path not in self:
|
||||||
self._dirs.append(path)
|
self._dirs.append(path)
|
||||||
else:
|
else:
|
||||||
directories.Directories.add_path(self, path)
|
directories.Directories.add_path(self, path)
|
||||||
|
|
||||||
def has_iphoto_path(self):
|
def has_iphoto_path(self):
|
||||||
return any(path == IPHOTO_PATH for path in self._dirs)
|
return any(path in {IPHOTO_PATH, APERTURE_PATH} for path in self._dirs)
|
||||||
|
|
||||||
def has_any_file(self):
|
def has_any_file(self):
|
||||||
# If we don't do that, it causes a hangup in the GUI when we click Start Scanning because
|
# If we don't do that, it causes a hangup in the GUI when we click Start Scanning because
|
||||||
@@ -135,11 +176,12 @@ class DupeGuruPE(DupeGuruBase):
|
|||||||
DupeGuruBase.__init__(self, view, appdata)
|
DupeGuruBase.__init__(self, view, appdata)
|
||||||
self.directories = Directories()
|
self.directories = Directories()
|
||||||
|
|
||||||
def _do_delete(self, j, replace_with_hardlinks):
|
def _do_delete(self, j, replace_with_hardlinks, direct_deletion):
|
||||||
def op(dupe):
|
def op(dupe):
|
||||||
j.add_progress()
|
j.add_progress()
|
||||||
return self._do_delete_dupe(dupe, replace_with_hardlinks)
|
return self._do_delete_dupe(dupe, replace_with_hardlinks, direct_deletion)
|
||||||
|
|
||||||
|
self.deleted_aperture_photos = False
|
||||||
marked = [dupe for dupe in self.results.dupes if self.results.is_marked(dupe)]
|
marked = [dupe for dupe in self.results.dupes if self.results.is_marked(dupe)]
|
||||||
j.start_job(self.results.mark_count, tr("Sending dupes to the Trash"))
|
j.start_job(self.results.mark_count, tr("Sending dupes to the Trash"))
|
||||||
if any(isinstance(dupe, IPhoto) for dupe in marked):
|
if any(isinstance(dupe, IPhoto) for dupe in marked):
|
||||||
@@ -150,9 +192,17 @@ class DupeGuruPE(DupeGuruBase):
|
|||||||
a.select(a.photo_library_album(timeout=0), timeout=0)
|
a.select(a.photo_library_album(timeout=0), timeout=0)
|
||||||
except (CommandError, RuntimeError, ApplicationNotFoundError):
|
except (CommandError, RuntimeError, ApplicationNotFoundError):
|
||||||
pass
|
pass
|
||||||
|
if any(isinstance(dupe, AperturePhoto) for dupe in marked):
|
||||||
|
self.deleted_aperture_photos = True
|
||||||
|
j.add_progress(0, desc=tr("Talking to Aperture. Don't touch it!"))
|
||||||
|
try:
|
||||||
|
a = app('Aperture')
|
||||||
|
a.activate(timeout=0)
|
||||||
|
except (CommandError, RuntimeError, ApplicationNotFoundError):
|
||||||
|
pass
|
||||||
self.results.perform_on_marked(op, True)
|
self.results.perform_on_marked(op, True)
|
||||||
|
|
||||||
def _do_delete_dupe(self, dupe, replace_with_hardlinks):
|
def _do_delete_dupe(self, dupe, replace_with_hardlinks, direct_deletion):
|
||||||
if isinstance(dupe, IPhoto):
|
if isinstance(dupe, IPhoto):
|
||||||
try:
|
try:
|
||||||
a = app('iPhoto')
|
a = app('iPhoto')
|
||||||
@@ -167,16 +217,61 @@ class DupeGuruPE(DupeGuruBase):
|
|||||||
raise EnvironmentError(msg)
|
raise EnvironmentError(msg)
|
||||||
except (CommandError, RuntimeError) as e:
|
except (CommandError, RuntimeError) as e:
|
||||||
raise EnvironmentError(str(e))
|
raise EnvironmentError(str(e))
|
||||||
|
if isinstance(dupe, AperturePhoto):
|
||||||
|
try:
|
||||||
|
a = app('Aperture')
|
||||||
|
# I'm flying blind here. In my own test library, all photos are in an album with the
|
||||||
|
# id "LibraryFolder", so I'm going to guess that it's the case at least most of the
|
||||||
|
# time. As a safeguard, if we don't find any library with that id, we'll use the
|
||||||
|
# first album.
|
||||||
|
# Now, about deleting: All attempts I've made at sending photos to trash failed,
|
||||||
|
# even with normal applescript. So, what we're going to do here is to create a
|
||||||
|
# "dupeGuru Trash" project and tell the user to manually send those photos to trash.
|
||||||
|
libraries = a.libraries()
|
||||||
|
library = first(l for l in libraries if l.id == 'LibraryFolder')
|
||||||
|
if library is None:
|
||||||
|
library = libraries[0]
|
||||||
|
trash_project = a.projects["dupeGuru Trash"]
|
||||||
|
if trash_project.exists():
|
||||||
|
trash_project = trash_project()
|
||||||
|
else:
|
||||||
|
trash_project = library.make(new=k.project, with_properties={k.name: "dupeGuru Trash"})
|
||||||
|
[photo] = library.image_versions[its.id == dupe.db_id]()
|
||||||
|
photo.move(to=trash_project)
|
||||||
|
except (IndexError, ValueError):
|
||||||
|
msg = "Could not find photo '{}' in Aperture Library".format(str(dupe.path))
|
||||||
|
raise EnvironmentError(msg)
|
||||||
|
except (CommandError, RuntimeError) as e:
|
||||||
|
raise EnvironmentError(str(e))
|
||||||
else:
|
else:
|
||||||
DupeGuruBase._do_delete_dupe(self, dupe, replace_with_hardlinks)
|
DupeGuruBase._do_delete_dupe(self, dupe, replace_with_hardlinks, direct_deletion)
|
||||||
|
|
||||||
def _create_file(self, path):
|
def _create_file(self, path):
|
||||||
if (self.directories.iphoto_libpath is not None) and (path in self.directories.iphoto_libpath[:-1]):
|
if (self.directories.iphoto_libpath is not None) and (path in self.directories.iphoto_libpath[:-1]):
|
||||||
return IPhoto(path)
|
if not hasattr(self, 'path2iphoto'):
|
||||||
|
photos = get_iphoto_pictures(self.directories.iphoto_libpath)
|
||||||
|
self.path2iphoto = {p.path: p for p in photos}
|
||||||
|
return self.path2iphoto.get(path)
|
||||||
|
if (self.directories.aperture_libpath is not None) and (path in self.directories.aperture_libpath[:-1]):
|
||||||
|
if not hasattr(self, 'path2aperture'):
|
||||||
|
photos = get_aperture_pictures(self.directories.aperture_libpath)
|
||||||
|
self.path2aperture = {p.path: p for p in photos}
|
||||||
|
return self.path2aperture.get(path)
|
||||||
return DupeGuruBase._create_file(self, path)
|
return DupeGuruBase._create_file(self, path)
|
||||||
|
|
||||||
|
def _job_completed(self, jobid, exc):
|
||||||
|
DupeGuruBase._job_completed(self, jobid, exc)
|
||||||
|
if jobid == JobType.Load:
|
||||||
|
if hasattr(self, 'path2iphoto'):
|
||||||
|
del self.path2iphoto
|
||||||
|
if hasattr(self, 'path2aperture'):
|
||||||
|
del self.path2aperture
|
||||||
|
if jobid == JobType.Delete and self.deleted_aperture_photos:
|
||||||
|
msg = tr("Deleted Aperture photos were sent to a project called \"dupeGuru Trash\".")
|
||||||
|
self.view.show_message(msg)
|
||||||
|
|
||||||
def copy_or_move(self, dupe, copy, destination, dest_type):
|
def copy_or_move(self, dupe, copy, destination, dest_type):
|
||||||
if isinstance(dupe, IPhoto):
|
if isinstance(dupe, (IPhoto, AperturePhoto)):
|
||||||
copy = True
|
copy = True
|
||||||
return DupeGuruBase.copy_or_move(self, dupe, copy, destination, dest_type)
|
return DupeGuruBase.copy_or_move(self, dupe, copy, destination, dest_type)
|
||||||
|
|
||||||
|
|||||||
30
cocoa/inter/deletion_options.py
Normal file
30
cocoa/inter/deletion_options.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# Created On: 2012-05-30
|
||||||
|
# Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
|
||||||
|
#
|
||||||
|
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
||||||
|
# which should be included with this package. The terms are also available at
|
||||||
|
# http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
|
||||||
|
from objp.util import dontwrap
|
||||||
|
from cocoa.inter import PyGUIObject, GUIObjectView
|
||||||
|
|
||||||
|
class DeletionOptionsView(GUIObjectView):
|
||||||
|
def updateMsg_(self, msg: str): pass
|
||||||
|
def show(self) -> bool: pass
|
||||||
|
|
||||||
|
class PyDeletionOptions(PyGUIObject):
|
||||||
|
def setHardlink_(self, hardlink: bool):
|
||||||
|
self.model.hardlink = hardlink
|
||||||
|
|
||||||
|
def setDirect_(self, direct: bool):
|
||||||
|
self.model.direct = direct
|
||||||
|
|
||||||
|
#--- model --> view
|
||||||
|
@dontwrap
|
||||||
|
def update_msg(self, msg):
|
||||||
|
self.callback.updateMsg_(msg)
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
|
def show(self):
|
||||||
|
return self.callback.show()
|
||||||
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
from objp.util import pyref
|
from objp.util import pyref, dontwrap
|
||||||
from cocoa.inter import PyGUIObject, GUIObjectView
|
from cocoa.inter import PyGUIObject, GUIObjectView
|
||||||
|
|
||||||
class IgnoreListDialogView(GUIObjectView):
|
class IgnoreListDialogView(GUIObjectView):
|
||||||
@@ -15,6 +15,7 @@ class PyIgnoreListDialog(PyGUIObject):
|
|||||||
self.model.clear()
|
self.model.clear()
|
||||||
|
|
||||||
#--- model --> view
|
#--- model --> view
|
||||||
|
@dontwrap
|
||||||
def show(self):
|
def show(self):
|
||||||
self.callback.show()
|
self.callback.show()
|
||||||
|
|
||||||
|
|||||||
282
cocoa/inter/tunes.py
Normal file
282
cocoa/inter/tunes.py
Normal file
@@ -0,0 +1,282 @@
|
|||||||
|
# Taken from https://github.com/abarnert/itunesterms
|
||||||
|
|
||||||
|
version = 1.1
|
||||||
|
path = '/Applications/iTunes.app'
|
||||||
|
|
||||||
|
classes = \
|
||||||
|
[('print_settings', b'pset'),
|
||||||
|
('application', b'capp'),
|
||||||
|
('artwork', b'cArt'),
|
||||||
|
('audio_CD_playlist', b'cCDP'),
|
||||||
|
('audio_CD_track', b'cCDT'),
|
||||||
|
('browser_window', b'cBrW'),
|
||||||
|
('device_playlist', b'cDvP'),
|
||||||
|
('device_track', b'cDvT'),
|
||||||
|
('encoder', b'cEnc'),
|
||||||
|
('EQ_preset', b'cEQP'),
|
||||||
|
('EQ_window', b'cEQW'),
|
||||||
|
('file_track', b'cFlT'),
|
||||||
|
('folder_playlist', b'cFoP'),
|
||||||
|
('item', b'cobj'),
|
||||||
|
('library_playlist', b'cLiP'),
|
||||||
|
('playlist', b'cPly'),
|
||||||
|
('playlist_window', b'cPlW'),
|
||||||
|
('radio_tuner_playlist', b'cRTP'),
|
||||||
|
('shared_track', b'cShT'),
|
||||||
|
('source', b'cSrc'),
|
||||||
|
('track', b'cTrk'),
|
||||||
|
('URL_track', b'cURT'),
|
||||||
|
('user_playlist', b'cUsP'),
|
||||||
|
('visual', b'cVis'),
|
||||||
|
('window', b'cwin')]
|
||||||
|
|
||||||
|
enums = \
|
||||||
|
[('track_listing', b'kTrk'),
|
||||||
|
('album_listing', b'kAlb'),
|
||||||
|
('cd_insert', b'kCDi'),
|
||||||
|
('standard', b'lwst'),
|
||||||
|
('detailed', b'lwdt'),
|
||||||
|
('stopped', b'kPSS'),
|
||||||
|
('playing', b'kPSP'),
|
||||||
|
('paused', b'kPSp'),
|
||||||
|
('fast_forwarding', b'kPSF'),
|
||||||
|
('rewinding', b'kPSR'),
|
||||||
|
('off', b'kRpO'),
|
||||||
|
('one', b'kRp1'),
|
||||||
|
('all', b'kAll'),
|
||||||
|
('small', b'kVSS'),
|
||||||
|
('medium', b'kVSM'),
|
||||||
|
('large', b'kVSL'),
|
||||||
|
('library', b'kLib'),
|
||||||
|
('iPod', b'kPod'),
|
||||||
|
('audio_CD', b'kACD'),
|
||||||
|
('MP3_CD', b'kMCD'),
|
||||||
|
('device', b'kDev'),
|
||||||
|
('radio_tuner', b'kTun'),
|
||||||
|
('shared_library', b'kShd'),
|
||||||
|
('unknown', b'kUnk'),
|
||||||
|
('albums', b'kSrL'),
|
||||||
|
('artists', b'kSrR'),
|
||||||
|
('composers', b'kSrC'),
|
||||||
|
('displayed', b'kSrV'),
|
||||||
|
('songs', b'kSrS'),
|
||||||
|
('none', b'kNon'),
|
||||||
|
('Books', b'kSpA'),
|
||||||
|
('folder', b'kSpF'),
|
||||||
|
('Genius', b'kSpG'),
|
||||||
|
('iTunes_U', b'kSpU'),
|
||||||
|
('Library', b'kSpL'),
|
||||||
|
('Movies', b'kSpI'),
|
||||||
|
('Music', b'kSpZ'),
|
||||||
|
('Party_Shuffle', b'kSpS'),
|
||||||
|
('Podcasts', b'kSpP'),
|
||||||
|
('Purchased_Music', b'kSpM'),
|
||||||
|
('TV_Shows', b'kSpT'),
|
||||||
|
('movie', b'kVdM'),
|
||||||
|
('music_video', b'kVdV'),
|
||||||
|
('TV_show', b'kVdT'),
|
||||||
|
('user', b'kRtU'),
|
||||||
|
('computed', b'kRtC')]
|
||||||
|
|
||||||
|
properties = \
|
||||||
|
[('copies', b'lwcp'),
|
||||||
|
('collating', b'lwcl'),
|
||||||
|
('starting_page', b'lwfp'),
|
||||||
|
('ending_page', b'lwlp'),
|
||||||
|
('pages_across', b'lwla'),
|
||||||
|
('pages_down', b'lwld'),
|
||||||
|
('error_handling', b'lweh'),
|
||||||
|
('requested_print_time', b'lwqt'),
|
||||||
|
('printer_features', b'lwpf'),
|
||||||
|
('fax_number', b'faxn'),
|
||||||
|
('target_printer', b'trpr'),
|
||||||
|
('current_encoder', b'pEnc'),
|
||||||
|
('current_EQ_preset', b'pEQP'),
|
||||||
|
('current_playlist', b'pPla'),
|
||||||
|
('current_stream_title', b'pStT'),
|
||||||
|
('current_stream_URL', b'pStU'),
|
||||||
|
('current_track', b'pTrk'),
|
||||||
|
('current_visual', b'pVis'),
|
||||||
|
('EQ_enabled', b'pEQ '),
|
||||||
|
('fixed_indexing', b'pFix'),
|
||||||
|
('frontmost', b'pisf'),
|
||||||
|
('full_screen', b'pFSc'),
|
||||||
|
('name', b'pnam'),
|
||||||
|
('mute', b'pMut'),
|
||||||
|
('player_position', b'pPos'),
|
||||||
|
('player_state', b'pPlS'),
|
||||||
|
('selection', b'sele'),
|
||||||
|
('sound_volume', b'pVol'),
|
||||||
|
('version', b'vers'),
|
||||||
|
('visuals_enabled', b'pVsE'),
|
||||||
|
('visual_size', b'pVSz'),
|
||||||
|
('data', b'pPCT'),
|
||||||
|
('description', b'pDes'),
|
||||||
|
('downloaded', b'pDlA'),
|
||||||
|
('format', b'pFmt'),
|
||||||
|
('kind', b'pKnd'),
|
||||||
|
('raw_data', b'pRaw'),
|
||||||
|
('artist', b'pArt'),
|
||||||
|
('compilation', b'pAnt'),
|
||||||
|
('composer', b'pCmp'),
|
||||||
|
('disc_count', b'pDsC'),
|
||||||
|
('disc_number', b'pDsN'),
|
||||||
|
('genre', b'pGen'),
|
||||||
|
('year', b'pYr '),
|
||||||
|
('location', b'pLoc'),
|
||||||
|
('minimized', b'pMin'),
|
||||||
|
('view', b'pPly'),
|
||||||
|
('band_1', b'pEQ1'),
|
||||||
|
('band_2', b'pEQ2'),
|
||||||
|
('band_3', b'pEQ3'),
|
||||||
|
('band_4', b'pEQ4'),
|
||||||
|
('band_5', b'pEQ5'),
|
||||||
|
('band_6', b'pEQ6'),
|
||||||
|
('band_7', b'pEQ7'),
|
||||||
|
('band_8', b'pEQ8'),
|
||||||
|
('band_9', b'pEQ9'),
|
||||||
|
('band_10', b'pEQ0'),
|
||||||
|
('modifiable', b'pMod'),
|
||||||
|
('preamp', b'pEQA'),
|
||||||
|
('update_tracks', b'pUTC'),
|
||||||
|
('container', b'ctnr'),
|
||||||
|
('id', b'ID '),
|
||||||
|
('index', b'pidx'),
|
||||||
|
('persistent_ID', b'pPIS'),
|
||||||
|
('duration', b'pDur'),
|
||||||
|
('parent', b'pPlP'),
|
||||||
|
('shuffle', b'pShf'),
|
||||||
|
('size', b'pSiz'),
|
||||||
|
('song_repeat', b'pRpt'),
|
||||||
|
('special_kind', b'pSpK'),
|
||||||
|
('time', b'pTim'),
|
||||||
|
('visible', b'pvis'),
|
||||||
|
('capacity', b'capa'),
|
||||||
|
('free_space', b'frsp'),
|
||||||
|
('album', b'pAlb'),
|
||||||
|
('album_artist', b'pAlA'),
|
||||||
|
('album_rating', b'pAlR'),
|
||||||
|
('album_rating_kind', b'pARk'),
|
||||||
|
('bit_rate', b'pBRt'),
|
||||||
|
('bookmark', b'pBkt'),
|
||||||
|
('bookmarkable', b'pBkm'),
|
||||||
|
('bpm', b'pBPM'),
|
||||||
|
('category', b'pCat'),
|
||||||
|
('comment', b'pCmt'),
|
||||||
|
('database_ID', b'pDID'),
|
||||||
|
('date_added', b'pAdd'),
|
||||||
|
('enabled', b'enbl'),
|
||||||
|
('episode_ID', b'pEpD'),
|
||||||
|
('episode_number', b'pEpN'),
|
||||||
|
('EQ', b'pEQp'),
|
||||||
|
('finish', b'pStp'),
|
||||||
|
('gapless', b'pGpl'),
|
||||||
|
('grouping', b'pGrp'),
|
||||||
|
('long_description', b'pLds'),
|
||||||
|
('lyrics', b'pLyr'),
|
||||||
|
('modification_date', b'asmo'),
|
||||||
|
('played_count', b'pPlC'),
|
||||||
|
('played_date', b'pPlD'),
|
||||||
|
('podcast', b'pTPc'),
|
||||||
|
('rating', b'pRte'),
|
||||||
|
('rating_kind', b'pRtk'),
|
||||||
|
('release_date', b'pRlD'),
|
||||||
|
('sample_rate', b'pSRt'),
|
||||||
|
('season_number', b'pSeN'),
|
||||||
|
('shufflable', b'pSfa'),
|
||||||
|
('skipped_count', b'pSkC'),
|
||||||
|
('skipped_date', b'pSkD'),
|
||||||
|
('show', b'pShw'),
|
||||||
|
('sort_album', b'pSAl'),
|
||||||
|
('sort_artist', b'pSAr'),
|
||||||
|
('sort_album_artist', b'pSAA'),
|
||||||
|
('sort_name', b'pSNm'),
|
||||||
|
('sort_composer', b'pSCm'),
|
||||||
|
('sort_show', b'pSSN'),
|
||||||
|
('start', b'pStr'),
|
||||||
|
('track_count', b'pTrC'),
|
||||||
|
('track_number', b'pTrN'),
|
||||||
|
('unplayed', b'pUnp'),
|
||||||
|
('video_kind', b'pVdK'),
|
||||||
|
('volume_adjustment', b'pAdj'),
|
||||||
|
('address', b'pURL'),
|
||||||
|
('shared', b'pShr'),
|
||||||
|
('smart', b'pSmt'),
|
||||||
|
('bounds', b'pbnd'),
|
||||||
|
('closeable', b'hclb'),
|
||||||
|
('collapseable', b'pWSh'),
|
||||||
|
('collapsed', b'wshd'),
|
||||||
|
('position', b'ppos'),
|
||||||
|
('resizable', b'prsz'),
|
||||||
|
('zoomable', b'iszm'),
|
||||||
|
('zoomed', b'pzum')]
|
||||||
|
|
||||||
|
elements = \
|
||||||
|
[('artworks', b'cArt'),
|
||||||
|
('audio_CD_playlists', b'cCDP'),
|
||||||
|
('audio_CD_tracks', b'cCDT'),
|
||||||
|
('browser_windows', b'cBrW'),
|
||||||
|
('device_playlists', b'cDvP'),
|
||||||
|
('device_tracks', b'cDvT'),
|
||||||
|
('encoders', b'cEnc'),
|
||||||
|
('EQ_presets', b'cEQP'),
|
||||||
|
('EQ_windows', b'cEQW'),
|
||||||
|
('file_tracks', b'cFlT'),
|
||||||
|
('folder_playlists', b'cFoP'),
|
||||||
|
('items', b'cobj'),
|
||||||
|
('library_playlists', b'cLiP'),
|
||||||
|
('playlists', b'cPly'),
|
||||||
|
('playlist_windows', b'cPlW'),
|
||||||
|
('radio_tuner_playlists', b'cRTP'),
|
||||||
|
('shared_tracks', b'cShT'),
|
||||||
|
('sources', b'cSrc'),
|
||||||
|
('tracks', b'cTrk'),
|
||||||
|
('URL_tracks', b'cURT'),
|
||||||
|
('user_playlists', b'cUsP'),
|
||||||
|
('visuals', b'cVis'),
|
||||||
|
('windows', b'cwin'),
|
||||||
|
('application', b'capp'),
|
||||||
|
('print_settings', b'pset')]
|
||||||
|
|
||||||
|
commands = \
|
||||||
|
[('set', b'coresetd', [('to', b'data')]),
|
||||||
|
('exists', b'coredoex', []),
|
||||||
|
('move', b'coremove', [('to', b'insh')]),
|
||||||
|
('subscribe', b'hookpSub', []),
|
||||||
|
('playpause', b'hookPlPs', []),
|
||||||
|
('download', b'hookDwnl', []),
|
||||||
|
('close', b'coreclos', []),
|
||||||
|
('open', b'aevtodoc', []),
|
||||||
|
('open_location', b'GURLGURL', []),
|
||||||
|
('quit', b'aevtquit', []),
|
||||||
|
('pause', b'hookPaus', []),
|
||||||
|
('make',
|
||||||
|
'corecrel',
|
||||||
|
[('new', b'kocl'), ('at', b'insh'), ('with_properties', b'prdt')]),
|
||||||
|
('duplicate', b'coreclon', [('to', b'insh')]),
|
||||||
|
('print_',
|
||||||
|
'aevtpdoc',
|
||||||
|
[('print_dialog', b'pdlg'),
|
||||||
|
('with_properties', b'prdt'),
|
||||||
|
('kind', b'pKnd'),
|
||||||
|
('theme', b'pThm')]),
|
||||||
|
('add', b'hookAdd ', [('to', b'insh')]),
|
||||||
|
('rewind', b'hookRwnd', []),
|
||||||
|
('play', b'hookPlay', [('once', b'POne')]),
|
||||||
|
('run', b'aevtoapp', []),
|
||||||
|
('resume', b'hookResu', []),
|
||||||
|
('updatePodcast', b'hookUpd1', []),
|
||||||
|
('next_track', b'hookNext', []),
|
||||||
|
('stop', b'hookStop', []),
|
||||||
|
('search', b'hookSrch', [('for_', b'pTrm'), ('only', b'pAre')]),
|
||||||
|
('updateAllPodcasts', b'hookUpdp', []),
|
||||||
|
('update', b'hookUpdt', []),
|
||||||
|
('previous_track', b'hookPrev', []),
|
||||||
|
('fast_forward', b'hookFast', []),
|
||||||
|
('count', b'corecnte', [('each', b'kocl')]),
|
||||||
|
('reveal', b'hookRevl', []),
|
||||||
|
('convert', b'hookConv', []),
|
||||||
|
('eject', b'hookEjct', []),
|
||||||
|
('back_track', b'hookBack', []),
|
||||||
|
('refresh', b'hookRfrs', []),
|
||||||
|
('delete', b'coredelo', [])]
|
||||||
@@ -9,12 +9,5 @@ install_gettext_trans_under_cocoa()
|
|||||||
|
|
||||||
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
||||||
|
|
||||||
from inter.details_panel import PyDetailsPanel
|
from inter.all import *
|
||||||
from inter.directory_outline import PyDirectoryOutline
|
|
||||||
from inter.prioritize_dialog import PyPrioritizeDialog
|
|
||||||
from inter.prioritize_list import PyPrioritizeList
|
|
||||||
from inter.problem_dialog import PyProblemDialog
|
|
||||||
from inter.ignore_list_dialog import PyIgnoreListDialog
|
|
||||||
from inter.result_table import PyResultTable
|
|
||||||
from inter.stats_label import PyStatsLabel
|
|
||||||
from inter.app_me import PyDupeGuru
|
from inter.app_me import PyDupeGuru
|
||||||
|
|||||||
@@ -43,6 +43,18 @@
|
|||||||
CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; };
|
CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; };
|
||||||
CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; };
|
CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; };
|
||||||
CE1EAA0A12DF3E81009BA949 /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */; };
|
CE1EAA0A12DF3E81009BA949 /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */; };
|
||||||
|
CE20A79315A2843F00FAC2BA /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185513D8660000B8CDCA /* about.xib */; };
|
||||||
|
CE20A79415A2843F00FAC2BA /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */; };
|
||||||
|
CE20A79515A2843F00FAC2BA /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */; };
|
||||||
|
CE20A79815A2845A00FAC2BA /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330D12E5D3ED0029EF25 /* DetailsPanel.xib */; };
|
||||||
|
CE20A7A115A2847500FAC2BA /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330D12E5D3ED0029EF25 /* DetailsPanel.xib */; };
|
||||||
|
CE20A7A215A2847500FAC2BA /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */; };
|
||||||
|
CE20A7A315A2847500FAC2BA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331112E5D3ED0029EF25 /* MainMenu.xib */; };
|
||||||
|
CE20A7A415A2847500FAC2BA /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */; };
|
||||||
|
CE20A7A515A2847500FAC2BA /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */; };
|
||||||
|
CE20A7A615A2847500FAC2BA /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331512E5D3ED0029EF25 /* ResultWindow.xib */; };
|
||||||
|
CE20A7A715A2847500FAC2BA /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05332112E5D4100029EF25 /* Preferences.xib */; };
|
||||||
|
CE20A7A815A2847500FAC2BA /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */; };
|
||||||
CE2239A2148FFE6600B3DC99 /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2239A1148FFE6600B3DC99 /* HSColumns.m */; };
|
CE2239A2148FFE6600B3DC99 /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2239A1148FFE6600B3DC99 /* HSColumns.m */; };
|
||||||
CE2E87F9142BC90A00519A68 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E87F8142BC90A00519A68 /* Quartz.framework */; };
|
CE2E87F9142BC90A00519A68 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E87F8142BC90A00519A68 /* Quartz.framework */; };
|
||||||
CE2E87FD142BC92C00519A68 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2E87FC142BC92C00519A68 /* HSQuicklook.m */; };
|
CE2E87FD142BC92C00519A68 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2E87FC142BC92C00519A68 /* HSQuicklook.m */; };
|
||||||
@@ -90,11 +102,15 @@
|
|||||||
CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CE97060014C46F70007A28F6 /* dg_cocoa.py */; };
|
CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CE97060014C46F70007A28F6 /* dg_cocoa.py */; };
|
||||||
CE97060314C471F2007A28F6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97060214C471F2007A28F6 /* main.m */; };
|
CE97060314C471F2007A28F6 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97060214C471F2007A28F6 /* main.m */; };
|
||||||
CEA14F431461ED63007F01A5 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA14F421461ED63007F01A5 /* locale */; };
|
CEA14F431461ED63007F01A5 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA14F421461ED63007F01A5 /* locale */; };
|
||||||
|
CEA39FA1157679FB00F294DE /* DeletionOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEA39F97157679FB00F294DE /* DeletionOptions.xib */; };
|
||||||
|
CEA39FAD15767A2900F294DE /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA39FAC15767A2900F294DE /* PyDeletionOptions.m */; };
|
||||||
|
CEA39FB015767A3A00F294DE /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA39FAF15767A3A00F294DE /* DeletionOptions.m */; };
|
||||||
CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; };
|
CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; };
|
||||||
CEDF07A3112493B200EE5BC0 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDF07A2112493B200EE5BC0 /* StatsLabel.m */; };
|
CEDF07A3112493B200EE5BC0 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDF07A2112493B200EE5BC0 /* StatsLabel.m */; };
|
||||||
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
||||||
CEF3185913D8660000B8CDCA /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185513D8660000B8CDCA /* about.xib */; };
|
CEF3185913D8660000B8CDCA /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185513D8660000B8CDCA /* about.xib */; };
|
||||||
CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */; };
|
CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */; };
|
||||||
|
CEF6BCAA1575769C00DACF6F /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF6BCA91575769C00DACF6F /* HSPyUtil.m */; };
|
||||||
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; };
|
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
@@ -169,6 +185,18 @@
|
|||||||
CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
|
CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
|
||||||
CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
|
CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
|
CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
|
||||||
|
CE20A79015A2843F00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79115A2843F00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79215A2843F00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79715A2845A00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79915A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79A15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79B15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79C15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79D15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79E15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A79F15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE20A7A015A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
CE2239A0148FFE6600B3DC99 /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
|
CE2239A0148FFE6600B3DC99 /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
|
||||||
CE2239A1148FFE6600B3DC99 /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
|
CE2239A1148FFE6600B3DC99 /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
|
||||||
CE2B2B5A1406ABDA0038D15A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
CE2B2B5A1406ABDA0038D15A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
@@ -298,6 +326,19 @@
|
|||||||
CE97060014C46F70007A28F6 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = "<group>"; };
|
CE97060014C46F70007A28F6 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = "<group>"; };
|
||||||
CE97060214C471F2007A28F6 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = "<group>"; };
|
CE97060214C471F2007A28F6 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = "<group>"; };
|
||||||
CEA14F421461ED63007F01A5 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
|
CEA14F421461ED63007F01A5 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
|
||||||
|
CEA39F98157679FB00F294DE /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39F99157679FB00F294DE /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39F9A157679FB00F294DE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39F9B157679FB00F294DE /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39F9C157679FB00F294DE /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39F9D157679FB00F294DE /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39F9E157679FB00F294DE /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39F9F157679FB00F294DE /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39FA0157679FB00F294DE /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEA39FAB15767A2900F294DE /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = "<group>"; };
|
||||||
|
CEA39FAC15767A2900F294DE /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = "<group>"; };
|
||||||
|
CEA39FAE15767A3A00F294DE /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = "<group>"; };
|
||||||
|
CEA39FAF15767A3A00F294DE /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = "<group>"; };
|
||||||
CEB14D27124DFC2800FA7481 /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
CEB14D27124DFC2800FA7481 /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEB14D28124DFC2800FA7481 /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; };
|
CEB14D28124DFC2800FA7481 /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEC3D37C14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
CEC3D37C14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
@@ -340,6 +381,9 @@
|
|||||||
CEF5770B13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; };
|
CEF5770B13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CEF5770C13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; };
|
CEF5770C13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CEF5770D13CDFB310083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = "<group>"; };
|
CEF5770D13CDFB310083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CEF6BCA71575769C00DACF6F /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = "<group>"; };
|
||||||
|
CEF6BCA81575769C00DACF6F /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = "<group>"; };
|
||||||
|
CEF6BCA91575769C00DACF6F /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = "<group>"; };
|
||||||
CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; };
|
CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
@@ -488,6 +532,7 @@
|
|||||||
CE05331512E5D3ED0029EF25 /* ResultWindow.xib */,
|
CE05331512E5D3ED0029EF25 /* ResultWindow.xib */,
|
||||||
CE05332112E5D4100029EF25 /* Preferences.xib */,
|
CE05332112E5D4100029EF25 /* Preferences.xib */,
|
||||||
CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */,
|
CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */,
|
||||||
|
CEA39F97157679FB00F294DE /* DeletionOptions.xib */,
|
||||||
);
|
);
|
||||||
name = xib;
|
name = xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -512,6 +557,7 @@
|
|||||||
CE4B59C41119919700C06C9E /* xib */,
|
CE4B59C41119919700C06C9E /* xib */,
|
||||||
CE515DE00FC6C12E00EC695D /* Dialogs.h */,
|
CE515DE00FC6C12E00EC695D /* Dialogs.h */,
|
||||||
CE515DE10FC6C12E00EC695D /* Dialogs.m */,
|
CE515DE10FC6C12E00EC695D /* Dialogs.m */,
|
||||||
|
CEF6BCA71575769C00DACF6F /* HSFairwareProtocol.h */,
|
||||||
CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */,
|
CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */,
|
||||||
CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */,
|
CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */,
|
||||||
CE4F934712CCA96C0067A3AE /* HSAboutBox.h */,
|
CE4F934712CCA96C0067A3AE /* HSAboutBox.h */,
|
||||||
@@ -526,6 +572,8 @@
|
|||||||
CE515DE70FC6C12E00EC695D /* ProgressController.m */,
|
CE515DE70FC6C12E00EC695D /* ProgressController.m */,
|
||||||
CE515DEF0FC6C12E00EC695D /* Utils.h */,
|
CE515DEF0FC6C12E00EC695D /* Utils.h */,
|
||||||
CE515DF00FC6C12E00EC695D /* Utils.m */,
|
CE515DF00FC6C12E00EC695D /* Utils.m */,
|
||||||
|
CEF6BCA81575769C00DACF6F /* HSPyUtil.h */,
|
||||||
|
CEF6BCA91575769C00DACF6F /* HSPyUtil.m */,
|
||||||
CE515DF10FC6C12E00EC695D /* ValueTransformers.h */,
|
CE515DF10FC6C12E00EC695D /* ValueTransformers.h */,
|
||||||
CE515DF20FC6C12E00EC695D /* ValueTransformers.m */,
|
CE515DF20FC6C12E00EC695D /* ValueTransformers.m */,
|
||||||
);
|
);
|
||||||
@@ -558,6 +606,8 @@
|
|||||||
CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */,
|
CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */,
|
||||||
CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */,
|
CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */,
|
||||||
CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */,
|
CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */,
|
||||||
|
CEA39FAE15767A3A00F294DE /* DeletionOptions.h */,
|
||||||
|
CEA39FAF15767A3A00F294DE /* DeletionOptions.m */,
|
||||||
CE97060214C471F2007A28F6 /* main.m */,
|
CE97060214C471F2007A28F6 /* main.m */,
|
||||||
);
|
);
|
||||||
name = dgbase;
|
name = dgbase;
|
||||||
@@ -592,6 +642,8 @@
|
|||||||
CE9705DD14C46E7D007A28F6 /* PyProblemDialog.m */,
|
CE9705DD14C46E7D007A28F6 /* PyProblemDialog.m */,
|
||||||
CE11958D1510FF700063C8AF /* PyIgnoreListDialog.h */,
|
CE11958D1510FF700063C8AF /* PyIgnoreListDialog.h */,
|
||||||
CE11958E1510FF700063C8AF /* PyIgnoreListDialog.m */,
|
CE11958E1510FF700063C8AF /* PyIgnoreListDialog.m */,
|
||||||
|
CEA39FAB15767A2900F294DE /* PyDeletionOptions.h */,
|
||||||
|
CEA39FAC15767A2900F294DE /* PyDeletionOptions.m */,
|
||||||
CE9705DE14C46E7D007A28F6 /* PyResultTable.h */,
|
CE9705DE14C46E7D007A28F6 /* PyResultTable.h */,
|
||||||
CE9705DF14C46E7D007A28F6 /* PyResultTable.m */,
|
CE9705DF14C46E7D007A28F6 /* PyResultTable.m */,
|
||||||
CE9705E014C46E7D007A28F6 /* PySelectableList.h */,
|
CE9705E014C46E7D007A28F6 /* PySelectableList.h */,
|
||||||
@@ -662,6 +714,7 @@
|
|||||||
hy,
|
hy,
|
||||||
ru,
|
ru,
|
||||||
uk,
|
uk,
|
||||||
|
pt_BR,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -697,6 +750,19 @@
|
|||||||
CE9705FF14C46F60007A28F6 /* py in Resources */,
|
CE9705FF14C46F60007A28F6 /* py in Resources */,
|
||||||
CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */,
|
CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */,
|
||||||
CE1195961510FFB20063C8AF /* IgnoreListDialog.xib in Resources */,
|
CE1195961510FFB20063C8AF /* IgnoreListDialog.xib in Resources */,
|
||||||
|
CEA39FA1157679FB00F294DE /* DeletionOptions.xib in Resources */,
|
||||||
|
CE20A79315A2843F00FAC2BA /* about.xib in Resources */,
|
||||||
|
CE20A79415A2843F00FAC2BA /* ErrorReportWindow.xib in Resources */,
|
||||||
|
CE20A79515A2843F00FAC2BA /* FairwareReminder.xib in Resources */,
|
||||||
|
CE20A79815A2845A00FAC2BA /* DetailsPanel.xib in Resources */,
|
||||||
|
CE20A7A115A2847500FAC2BA /* DetailsPanel.xib in Resources */,
|
||||||
|
CE20A7A215A2847500FAC2BA /* DirectoryPanel.xib in Resources */,
|
||||||
|
CE20A7A315A2847500FAC2BA /* MainMenu.xib in Resources */,
|
||||||
|
CE20A7A415A2847500FAC2BA /* ProblemDialog.xib in Resources */,
|
||||||
|
CE20A7A515A2847500FAC2BA /* IgnoreListDialog.xib in Resources */,
|
||||||
|
CE20A7A615A2847500FAC2BA /* ResultWindow.xib in Resources */,
|
||||||
|
CE20A7A715A2847500FAC2BA /* Preferences.xib in Resources */,
|
||||||
|
CE20A7A815A2847500FAC2BA /* PrioritizeDialog.xib in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -758,6 +824,9 @@
|
|||||||
CE97060314C471F2007A28F6 /* main.m in Sources */,
|
CE97060314C471F2007A28F6 /* main.m in Sources */,
|
||||||
CE11958F1510FF700063C8AF /* PyIgnoreListDialog.m in Sources */,
|
CE11958F1510FF700063C8AF /* PyIgnoreListDialog.m in Sources */,
|
||||||
CE1195931510FF890063C8AF /* IgnoreListDialog.m in Sources */,
|
CE1195931510FF890063C8AF /* IgnoreListDialog.m in Sources */,
|
||||||
|
CEF6BCAA1575769C00DACF6F /* HSPyUtil.m in Sources */,
|
||||||
|
CEA39FAD15767A2900F294DE /* PyDeletionOptions.m in Sources */,
|
||||||
|
CEA39FB015767A3A00F294DE /* DeletionOptions.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -776,6 +845,7 @@
|
|||||||
CEC3D37C14911253006B1A91 /* hy */,
|
CEC3D37C14911253006B1A91 /* hy */,
|
||||||
CE335AF714B393EE0000AF1A /* ru */,
|
CE335AF714B393EE0000AF1A /* ru */,
|
||||||
CE35FCF514C637DD004E4864 /* uk */,
|
CE35FCF514C637DD004E4864 /* uk */,
|
||||||
|
CE20A79A15A2847500FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -792,6 +862,7 @@
|
|||||||
CEC3D37D14911253006B1A91 /* hy */,
|
CEC3D37D14911253006B1A91 /* hy */,
|
||||||
CE335AF814B393EE0000AF1A /* ru */,
|
CE335AF814B393EE0000AF1A /* ru */,
|
||||||
CE35FCF614C637DD004E4864 /* uk */,
|
CE35FCF614C637DD004E4864 /* uk */,
|
||||||
|
CE20A79B15A2847500FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -808,6 +879,7 @@
|
|||||||
CEC3D37F14911253006B1A91 /* hy */,
|
CEC3D37F14911253006B1A91 /* hy */,
|
||||||
CE335AFA14B393EE0000AF1A /* ru */,
|
CE335AFA14B393EE0000AF1A /* ru */,
|
||||||
CE35FCF814C637DD004E4864 /* uk */,
|
CE35FCF814C637DD004E4864 /* uk */,
|
||||||
|
CE20A79D15A2847500FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -824,6 +896,7 @@
|
|||||||
CEC3D38114911253006B1A91 /* hy */,
|
CEC3D38114911253006B1A91 /* hy */,
|
||||||
CE335AFC14B393EE0000AF1A /* ru */,
|
CE335AFC14B393EE0000AF1A /* ru */,
|
||||||
CE35FCFA14C637DD004E4864 /* uk */,
|
CE35FCFA14C637DD004E4864 /* uk */,
|
||||||
|
CE20A79F15A2847500FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -840,6 +913,7 @@
|
|||||||
CEC3D38214911253006B1A91 /* hy */,
|
CEC3D38214911253006B1A91 /* hy */,
|
||||||
CE335AFD14B393EE0000AF1A /* ru */,
|
CE335AFD14B393EE0000AF1A /* ru */,
|
||||||
CE35FCFB14C637DD004E4864 /* uk */,
|
CE35FCFB14C637DD004E4864 /* uk */,
|
||||||
|
CE20A7A015A2847500FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -856,6 +930,7 @@
|
|||||||
CEC3D38B14911263006B1A91 /* hy */,
|
CEC3D38B14911263006B1A91 /* hy */,
|
||||||
CE335B0514B393FB0000AF1A /* ru */,
|
CE335B0514B393FB0000AF1A /* ru */,
|
||||||
CE35FD0314C637EC004E4864 /* uk */,
|
CE35FD0314C637EC004E4864 /* uk */,
|
||||||
|
CE20A79715A2845A00FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -888,6 +963,7 @@
|
|||||||
CE11959C151100020063C8AF /* ru */,
|
CE11959C151100020063C8AF /* ru */,
|
||||||
CE11959D151100020063C8AF /* uk */,
|
CE11959D151100020063C8AF /* uk */,
|
||||||
CE11959E151100020063C8AF /* zh_CN */,
|
CE11959E151100020063C8AF /* zh_CN */,
|
||||||
|
CE20A79C15A2847500FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = IgnoreListDialog.xib;
|
name = IgnoreListDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -904,6 +980,7 @@
|
|||||||
CEC3D39114911288006B1A91 /* hy */,
|
CEC3D39114911288006B1A91 /* hy */,
|
||||||
CE335AF014B393C60000AF1A /* ru */,
|
CE335AF014B393C60000AF1A /* ru */,
|
||||||
CE35FCEE14C637B8004E4864 /* uk */,
|
CE35FCEE14C637B8004E4864 /* uk */,
|
||||||
|
CE20A79215A2843F00FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -921,10 +998,28 @@
|
|||||||
CEC3D38014911253006B1A91 /* hy */,
|
CEC3D38014911253006B1A91 /* hy */,
|
||||||
CE335AFB14B393EE0000AF1A /* ru */,
|
CE335AFB14B393EE0000AF1A /* ru */,
|
||||||
CE35FCF914C637DD004E4864 /* uk */,
|
CE35FCF914C637DD004E4864 /* uk */,
|
||||||
|
CE20A79E15A2847500FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
CEA39F97157679FB00F294DE /* DeletionOptions.xib */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
CEA39F9A157679FB00F294DE /* en */,
|
||||||
|
CEA39F98157679FB00F294DE /* cs */,
|
||||||
|
CEA39F99157679FB00F294DE /* de */,
|
||||||
|
CEA39F9B157679FB00F294DE /* fr */,
|
||||||
|
CEA39F9C157679FB00F294DE /* hy */,
|
||||||
|
CEA39F9D157679FB00F294DE /* it */,
|
||||||
|
CEA39F9E157679FB00F294DE /* ru */,
|
||||||
|
CEA39F9F157679FB00F294DE /* uk */,
|
||||||
|
CEA39FA0157679FB00F294DE /* zh_CN */,
|
||||||
|
CE20A79915A2847500FAC2BA /* pt_BR */,
|
||||||
|
);
|
||||||
|
name = DeletionOptions.xib;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
CEF3185513D8660000B8CDCA /* about.xib */ = {
|
CEF3185513D8660000B8CDCA /* about.xib */ = {
|
||||||
isa = PBXVariantGroup;
|
isa = PBXVariantGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -937,6 +1032,7 @@
|
|||||||
CEC3D38F14911288006B1A91 /* hy */,
|
CEC3D38F14911288006B1A91 /* hy */,
|
||||||
CE335AEE14B393C60000AF1A /* ru */,
|
CE335AEE14B393C60000AF1A /* ru */,
|
||||||
CE35FCEC14C637B8004E4864 /* uk */,
|
CE35FCEC14C637B8004E4864 /* uk */,
|
||||||
|
CE20A79015A2843F00FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -953,6 +1049,7 @@
|
|||||||
CEC3D39014911288006B1A91 /* hy */,
|
CEC3D39014911288006B1A91 /* hy */,
|
||||||
CE335AEF14B393C60000AF1A /* ru */,
|
CE335AEF14B393C60000AF1A /* ru */,
|
||||||
CE35FCED14C637B8004E4864 /* uk */,
|
CE35FCED14C637B8004E4864 /* uk */,
|
||||||
|
CE20A79115A2843F00FAC2BA /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
|||||||
@@ -13,4 +13,5 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
- (IBAction)addiPhoto:(id)sender;
|
- (IBAction)addiPhoto:(id)sender;
|
||||||
|
- (IBAction)addAperture:(id)sender;
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -24,10 +24,18 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
NSMenuItem *mi = [m insertItemWithTitle:TR(@"Add iPhoto Library") action:@selector(addiPhoto:)
|
NSMenuItem *mi = [m insertItemWithTitle:TR(@"Add iPhoto Library") action:@selector(addiPhoto:)
|
||||||
keyEquivalent:@"" atIndex:1];
|
keyEquivalent:@"" atIndex:1];
|
||||||
[mi setTarget:self];
|
[mi setTarget:self];
|
||||||
|
mi = [m insertItemWithTitle:TR(@"Add Aperture Library") action:@selector(addAperture:)
|
||||||
|
keyEquivalent:@"" atIndex:2];
|
||||||
|
[mi setTarget:self];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)addiPhoto:(id)sender
|
- (IBAction)addiPhoto:(id)sender
|
||||||
{
|
{
|
||||||
[self addDirectory:@"iPhoto Library"];
|
[self addDirectory:@"iPhoto Library"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (IBAction)addAperture:(id)sender
|
||||||
|
{
|
||||||
|
[self addDirectory:@"Aperture Library"];
|
||||||
|
}
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -9,13 +9,6 @@ install_gettext_trans_under_cocoa()
|
|||||||
|
|
||||||
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
||||||
|
|
||||||
from inter.details_panel import PyDetailsPanel
|
from inter.all import *
|
||||||
from inter.directory_outline import PyDirectoryOutline
|
|
||||||
from inter.prioritize_dialog import PyPrioritizeDialog
|
|
||||||
from inter.prioritize_list import PyPrioritizeList
|
|
||||||
from inter.problem_dialog import PyProblemDialog
|
|
||||||
from inter.ignore_list_dialog import PyIgnoreListDialog
|
|
||||||
from inter.result_table import PyResultTable
|
|
||||||
from inter.stats_label import PyStatsLabel
|
|
||||||
from inter.app_pe import PyDupeGuru
|
from inter.app_pe import PyDupeGuru
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,18 @@
|
|||||||
CE0533A812E5DA4D0029EF25 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; };
|
CE0533A812E5DA4D0029EF25 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; };
|
||||||
CE0533AB12E5DA6A0029EF25 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A912E5DA6A0029EF25 /* Localizable.strings */; };
|
CE0533AB12E5DA6A0029EF25 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A912E5DA6A0029EF25 /* Localizable.strings */; };
|
||||||
CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; };
|
CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; };
|
||||||
|
CE09AF4615A284F600BD431C /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC113D867AD0081E295 /* about.xib */; };
|
||||||
|
CE09AF4715A284F600BD431C /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */; };
|
||||||
|
CE09AF4815A284F600BD431C /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */; };
|
||||||
|
CE09AF4C15A2851100BD431C /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; };
|
||||||
|
CE09AF4D15A2851100BD431C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; };
|
||||||
|
CE09AF5515A2852600BD431C /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; };
|
||||||
|
CE09AF5615A2852600BD431C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; };
|
||||||
|
CE09AF5715A2852600BD431C /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; };
|
||||||
|
CE09AF5815A2852600BD431C /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7857951511019400174D51 /* IgnoreListDialog.xib */; };
|
||||||
|
CE09AF5915A2852600BD431C /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; };
|
||||||
|
CE09AF5A15A2852600BD431C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */; };
|
||||||
|
CE09AF5B15A2852600BD431C /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; };
|
||||||
CE0C2AB61177011000BC749F /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0C2AB51177011000BC749F /* HSTable.m */; };
|
CE0C2AB61177011000BC749F /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0C2AB51177011000BC749F /* HSTable.m */; };
|
||||||
CE0C2ABD1177014200BC749F /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0C2ABB1177014200BC749F /* ProblemDialog.m */; };
|
CE0C2ABD1177014200BC749F /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0C2ABB1177014200BC749F /* ProblemDialog.m */; };
|
||||||
CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */; };
|
CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */; };
|
||||||
@@ -82,7 +94,19 @@
|
|||||||
CECA899D09DB132E00A3D774 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CECA899B09DB132E00A3D774 /* DetailsPanel.m */; };
|
CECA899D09DB132E00A3D774 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CECA899B09DB132E00A3D774 /* DetailsPanel.m */; };
|
||||||
CECB2AC513D867AD0081E295 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC113D867AD0081E295 /* about.xib */; };
|
CECB2AC513D867AD0081E295 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC113D867AD0081E295 /* about.xib */; };
|
||||||
CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */; };
|
CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */; };
|
||||||
|
CED3BC1515767AFB0028F3C9 /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */; };
|
||||||
|
CED3BC1915767B0E0028F3C9 /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CED3BC1815767B0E0028F3C9 /* DeletionOptions.m */; };
|
||||||
|
CED3BC2415767B200028F3C9 /* DeletionOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */; };
|
||||||
|
CED3BC2515767B200028F3C9 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; };
|
||||||
|
CED3BC2615767B200028F3C9 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; };
|
||||||
|
CED3BC2715767B200028F3C9 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; };
|
||||||
|
CED3BC2815767B200028F3C9 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7857951511019400174D51 /* IgnoreListDialog.xib */; };
|
||||||
|
CED3BC2915767B200028F3C9 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; };
|
||||||
|
CED3BC2A15767B200028F3C9 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */; };
|
||||||
|
CED3BC2B15767B200028F3C9 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; };
|
||||||
|
CED3BC2C15767B200028F3C9 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */; };
|
||||||
CEE6D562149113570087CDFC /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE6D561149113570087CDFC /* HSColumns.m */; };
|
CEE6D562149113570087CDFC /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE6D561149113570087CDFC /* HSColumns.m */; };
|
||||||
|
CEE8D3E2157576FD00E1A1B8 /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE8D3E1157576FD00E1A1B8 /* HSPyUtil.m */; };
|
||||||
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
||||||
CEF12A7E124DFD400087B51D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A7D124DFD400087B51D /* HSTableView.m */; };
|
CEF12A7E124DFD400087B51D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A7D124DFD400087B51D /* HSTableView.m */; };
|
||||||
CEF12A84124DFD620087B51D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A83124DFD620087B51D /* ResultTable.m */; };
|
CEF12A84124DFD620087B51D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A83124DFD620087B51D /* ResultTable.m */; };
|
||||||
@@ -137,6 +161,18 @@
|
|||||||
CE0533AE12E5DAAD0029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = "<group>"; };
|
CE0533AE12E5DAAD0029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
CE0533B712E5DC040029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../../cocoalib/fr.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE0533B712E5DC040029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../../cocoalib/fr.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = SOURCE_ROOT; };
|
CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = SOURCE_ROOT; };
|
||||||
|
CE09AF4315A284F600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF4415A284F600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF4515A284F600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF4A15A2851100BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF4B15A2851100BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF4E15A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF4F15A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF5015A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF5115A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF5215A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF5315A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE09AF5415A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
CE0C2AB41177011000BC749F /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = "<group>"; };
|
CE0C2AB41177011000BC749F /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = "<group>"; };
|
||||||
CE0C2AB51177011000BC749F /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
|
CE0C2AB51177011000BC749F /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
|
||||||
CE0C2ABA1177014200BC749F /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
CE0C2ABA1177014200BC749F /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -308,6 +344,19 @@
|
|||||||
CECB2ACB13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/about.xib; sourceTree = "<group>"; };
|
CECB2ACB13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
CECB2ACC13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CECB2ACC13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
CECB2ACD13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
CECB2ACD13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC1315767AFB0028F3C9 /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = "<group>"; };
|
||||||
|
CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = "<group>"; };
|
||||||
|
CED3BC1715767B0E0028F3C9 /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = "<group>"; };
|
||||||
|
CED3BC1815767B0E0028F3C9 /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = "<group>"; };
|
||||||
|
CED3BC1B15767B200028F3C9 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC1C15767B200028F3C9 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC1D15767B200028F3C9 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC1E15767B200028F3C9 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC1F15767B200028F3C9 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC2015767B200028F3C9 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC2115767B200028F3C9 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC2215767B200028F3C9 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CED3BC2315767B200028F3C9 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
CEE6D5461491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
CEE6D5461491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
CEE6D5481491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
CEE6D5481491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
CEE6D5491491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CEE6D5491491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
@@ -321,6 +370,9 @@
|
|||||||
CEE6D55B149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
CEE6D55B149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
CEE6D560149113570087CDFC /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
|
CEE6D560149113570087CDFC /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
|
||||||
CEE6D561149113570087CDFC /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
|
CEE6D561149113570087CDFC /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
|
||||||
|
CEE8D3DF157576FD00E1A1B8 /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = "<group>"; };
|
||||||
|
CEE8D3E0157576FD00E1A1B8 /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = "<group>"; };
|
||||||
|
CEE8D3E1157576FD00E1A1B8 /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = "<group>"; };
|
||||||
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
|
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
|
||||||
CEEE156E1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
|
CEEE156E1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
CEEE156F1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CEEE156F1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
@@ -451,6 +503,7 @@
|
|||||||
CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */,
|
CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */,
|
||||||
CE0533A512E5DA4D0029EF25 /* Preferences.xib */,
|
CE0533A512E5DA4D0029EF25 /* Preferences.xib */,
|
||||||
CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */,
|
CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */,
|
||||||
|
CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */,
|
||||||
);
|
);
|
||||||
name = xib;
|
name = xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -484,6 +537,8 @@
|
|||||||
CE7857A81511021200174D51 /* PyIgnoreListDialog.h */,
|
CE7857A81511021200174D51 /* PyIgnoreListDialog.h */,
|
||||||
CE7857A91511021200174D51 /* PyIgnoreListDialog.m */,
|
CE7857A91511021200174D51 /* PyIgnoreListDialog.m */,
|
||||||
CE75019514C477B100E2A349 /* PyProblemDialog.m */,
|
CE75019514C477B100E2A349 /* PyProblemDialog.m */,
|
||||||
|
CED3BC1315767AFB0028F3C9 /* PyDeletionOptions.h */,
|
||||||
|
CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */,
|
||||||
CE75019614C477B100E2A349 /* PyResultTable.h */,
|
CE75019614C477B100E2A349 /* PyResultTable.h */,
|
||||||
CE75019714C477B100E2A349 /* PyResultTable.m */,
|
CE75019714C477B100E2A349 /* PyResultTable.m */,
|
||||||
CE75019814C477B100E2A349 /* PySelectableList.h */,
|
CE75019814C477B100E2A349 /* PySelectableList.h */,
|
||||||
@@ -523,6 +578,7 @@
|
|||||||
CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */,
|
CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */,
|
||||||
CE80DB1B0FC192D60086DCA6 /* Dialogs.h */,
|
CE80DB1B0FC192D60086DCA6 /* Dialogs.h */,
|
||||||
CE80DB1C0FC192D60086DCA6 /* Dialogs.m */,
|
CE80DB1C0FC192D60086DCA6 /* Dialogs.m */,
|
||||||
|
CEE8D3DF157576FD00E1A1B8 /* HSFairwareProtocol.h */,
|
||||||
CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */,
|
CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */,
|
||||||
CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */,
|
CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */,
|
||||||
CEC9DB4A12CCAA7D003102F0 /* HSAboutBox.h */,
|
CEC9DB4A12CCAA7D003102F0 /* HSAboutBox.h */,
|
||||||
@@ -535,6 +591,8 @@
|
|||||||
CE80DB220FC192D60086DCA6 /* ProgressController.m */,
|
CE80DB220FC192D60086DCA6 /* ProgressController.m */,
|
||||||
CE80DB2A0FC192D60086DCA6 /* Utils.h */,
|
CE80DB2A0FC192D60086DCA6 /* Utils.h */,
|
||||||
CE80DB2B0FC192D60086DCA6 /* Utils.m */,
|
CE80DB2B0FC192D60086DCA6 /* Utils.m */,
|
||||||
|
CEE8D3E0157576FD00E1A1B8 /* HSPyUtil.h */,
|
||||||
|
CEE8D3E1157576FD00E1A1B8 /* HSPyUtil.m */,
|
||||||
CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */,
|
CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */,
|
||||||
CE80DB2D0FC192D60086DCA6 /* ValueTransformers.m */,
|
CE80DB2D0FC192D60086DCA6 /* ValueTransformers.m */,
|
||||||
);
|
);
|
||||||
@@ -567,6 +625,8 @@
|
|||||||
CE7D24A01423B106002E2297 /* PrioritizeDialog.m */,
|
CE7D24A01423B106002E2297 /* PrioritizeDialog.m */,
|
||||||
CE7D24A11423B106002E2297 /* PrioritizeList.h */,
|
CE7D24A11423B106002E2297 /* PrioritizeList.h */,
|
||||||
CE7D24A21423B106002E2297 /* PrioritizeList.m */,
|
CE7D24A21423B106002E2297 /* PrioritizeList.m */,
|
||||||
|
CED3BC1715767B0E0028F3C9 /* DeletionOptions.h */,
|
||||||
|
CED3BC1815767B0E0028F3C9 /* DeletionOptions.m */,
|
||||||
CE75017214C4770500E2A349 /* main.m */,
|
CE75017214C4770500E2A349 /* main.m */,
|
||||||
);
|
);
|
||||||
name = dgbase;
|
name = dgbase;
|
||||||
@@ -664,6 +724,7 @@
|
|||||||
hy,
|
hy,
|
||||||
uk,
|
uk,
|
||||||
ru,
|
ru,
|
||||||
|
pt_BR,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -699,6 +760,27 @@
|
|||||||
CE75017514C4771800E2A349 /* py in Resources */,
|
CE75017514C4771800E2A349 /* py in Resources */,
|
||||||
CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */,
|
CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */,
|
||||||
CE7857971511019400174D51 /* IgnoreListDialog.xib in Resources */,
|
CE7857971511019400174D51 /* IgnoreListDialog.xib in Resources */,
|
||||||
|
CED3BC2415767B200028F3C9 /* DeletionOptions.xib in Resources */,
|
||||||
|
CED3BC2515767B200028F3C9 /* DirectoryPanel.xib in Resources */,
|
||||||
|
CED3BC2615767B200028F3C9 /* MainMenu.xib in Resources */,
|
||||||
|
CED3BC2715767B200028F3C9 /* ProblemDialog.xib in Resources */,
|
||||||
|
CED3BC2815767B200028F3C9 /* IgnoreListDialog.xib in Resources */,
|
||||||
|
CED3BC2915767B200028F3C9 /* ResultWindow.xib in Resources */,
|
||||||
|
CED3BC2A15767B200028F3C9 /* DetailsPanel.xib in Resources */,
|
||||||
|
CED3BC2B15767B200028F3C9 /* Preferences.xib in Resources */,
|
||||||
|
CED3BC2C15767B200028F3C9 /* PrioritizeDialog.xib in Resources */,
|
||||||
|
CE09AF4615A284F600BD431C /* about.xib in Resources */,
|
||||||
|
CE09AF4715A284F600BD431C /* ErrorReportWindow.xib in Resources */,
|
||||||
|
CE09AF4815A284F600BD431C /* FairwareReminder.xib in Resources */,
|
||||||
|
CE09AF4C15A2851100BD431C /* DirectoryPanel.xib in Resources */,
|
||||||
|
CE09AF4D15A2851100BD431C /* MainMenu.xib in Resources */,
|
||||||
|
CE09AF5515A2852600BD431C /* DirectoryPanel.xib in Resources */,
|
||||||
|
CE09AF5615A2852600BD431C /* MainMenu.xib in Resources */,
|
||||||
|
CE09AF5715A2852600BD431C /* ProblemDialog.xib in Resources */,
|
||||||
|
CE09AF5815A2852600BD431C /* IgnoreListDialog.xib in Resources */,
|
||||||
|
CE09AF5915A2852600BD431C /* ResultWindow.xib in Resources */,
|
||||||
|
CE09AF5A15A2852600BD431C /* DetailsPanel.xib in Resources */,
|
||||||
|
CE09AF5B15A2852600BD431C /* Preferences.xib in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -763,6 +845,9 @@
|
|||||||
CE7501AE14C477B100E2A349 /* PyTable.m in Sources */,
|
CE7501AE14C477B100E2A349 /* PyTable.m in Sources */,
|
||||||
CE7857AA1511021200174D51 /* PyIgnoreListDialog.m in Sources */,
|
CE7857AA1511021200174D51 /* PyIgnoreListDialog.m in Sources */,
|
||||||
CE7857AD1511022A00174D51 /* IgnoreListDialog.m in Sources */,
|
CE7857AD1511022A00174D51 /* IgnoreListDialog.m in Sources */,
|
||||||
|
CEE8D3E2157576FD00E1A1B8 /* HSPyUtil.m in Sources */,
|
||||||
|
CED3BC1515767AFB0028F3C9 /* PyDeletionOptions.m in Sources */,
|
||||||
|
CED3BC1915767B0E0028F3C9 /* DeletionOptions.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -781,6 +866,7 @@
|
|||||||
CEE6D5461491130D0087CDFC /* hy */,
|
CEE6D5461491130D0087CDFC /* hy */,
|
||||||
CE905DEA14C638A500C0ECEF /* uk */,
|
CE905DEA14C638A500C0ECEF /* uk */,
|
||||||
CE03DD6714FBD31300E998AC /* ru */,
|
CE03DD6714FBD31300E998AC /* ru */,
|
||||||
|
CE09AF4F15A2852600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -797,6 +883,7 @@
|
|||||||
CEE6D5481491130D0087CDFC /* hy */,
|
CEE6D5481491130D0087CDFC /* hy */,
|
||||||
CE905DEC14C638A500C0ECEF /* uk */,
|
CE905DEC14C638A500C0ECEF /* uk */,
|
||||||
CE03DD6814FBD31300E998AC /* ru */,
|
CE03DD6814FBD31300E998AC /* ru */,
|
||||||
|
CE09AF5115A2852600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -813,6 +900,7 @@
|
|||||||
CEE6D54A1491130D0087CDFC /* hy */,
|
CEE6D54A1491130D0087CDFC /* hy */,
|
||||||
CE905DEE14C638A500C0ECEF /* uk */,
|
CE905DEE14C638A500C0ECEF /* uk */,
|
||||||
CE03DD6A14FBD31300E998AC /* ru */,
|
CE03DD6A14FBD31300E998AC /* ru */,
|
||||||
|
CE09AF5315A2852600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -829,6 +917,7 @@
|
|||||||
CEE6D54B1491130D0087CDFC /* hy */,
|
CEE6D54B1491130D0087CDFC /* hy */,
|
||||||
CE905DEF14C638A500C0ECEF /* uk */,
|
CE905DEF14C638A500C0ECEF /* uk */,
|
||||||
CE03DD6B14FBD31300E998AC /* ru */,
|
CE03DD6B14FBD31300E998AC /* ru */,
|
||||||
|
CE09AF5415A2852600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -845,6 +934,7 @@
|
|||||||
CEE6D553149113190087CDFC /* hy */,
|
CEE6D553149113190087CDFC /* hy */,
|
||||||
CE905DF614C638B000C0ECEF /* uk */,
|
CE905DF614C638B000C0ECEF /* uk */,
|
||||||
CE03DD7214FBD33600E998AC /* ru */,
|
CE03DD7214FBD33600E998AC /* ru */,
|
||||||
|
CE09AF4A15A2851100BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -861,6 +951,7 @@
|
|||||||
CEE6D554149113190087CDFC /* hy */,
|
CEE6D554149113190087CDFC /* hy */,
|
||||||
CE905DF714C638B000C0ECEF /* uk */,
|
CE905DF714C638B000C0ECEF /* uk */,
|
||||||
CE03DD7314FBD33600E998AC /* ru */,
|
CE03DD7314FBD33600E998AC /* ru */,
|
||||||
|
CE09AF4B15A2851100BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -893,6 +984,7 @@
|
|||||||
CEE6D55B149113320087CDFC /* hy */,
|
CEE6D55B149113320087CDFC /* hy */,
|
||||||
CE905DE314C6387B00C0ECEF /* uk */,
|
CE905DE314C6387B00C0ECEF /* uk */,
|
||||||
CE03DD7A14FBD36600E998AC /* ru */,
|
CE03DD7A14FBD36600E998AC /* ru */,
|
||||||
|
CE09AF4515A284F600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -910,6 +1002,7 @@
|
|||||||
CE7857A0151101C900174D51 /* ru */,
|
CE7857A0151101C900174D51 /* ru */,
|
||||||
CE7857A4151101DD00174D51 /* uk */,
|
CE7857A4151101DD00174D51 /* uk */,
|
||||||
CE7857A5151101DD00174D51 /* zh_CN */,
|
CE7857A5151101DD00174D51 /* zh_CN */,
|
||||||
|
CE09AF5015A2852600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = IgnoreListDialog.xib;
|
name = IgnoreListDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -926,6 +1019,7 @@
|
|||||||
CEE6D5491491130D0087CDFC /* hy */,
|
CEE6D5491491130D0087CDFC /* hy */,
|
||||||
CE905DED14C638A500C0ECEF /* uk */,
|
CE905DED14C638A500C0ECEF /* uk */,
|
||||||
CE03DD6914FBD31300E998AC /* ru */,
|
CE03DD6914FBD31300E998AC /* ru */,
|
||||||
|
CE09AF5215A2852600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -942,6 +1036,7 @@
|
|||||||
CEE6D559149113320087CDFC /* hy */,
|
CEE6D559149113320087CDFC /* hy */,
|
||||||
CE905DE114C6387B00C0ECEF /* uk */,
|
CE905DE114C6387B00C0ECEF /* uk */,
|
||||||
CE03DD7814FBD36600E998AC /* ru */,
|
CE03DD7814FBD36600E998AC /* ru */,
|
||||||
|
CE09AF4315A284F600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -958,10 +1053,28 @@
|
|||||||
CEE6D55A149113320087CDFC /* hy */,
|
CEE6D55A149113320087CDFC /* hy */,
|
||||||
CE905DE214C6387B00C0ECEF /* uk */,
|
CE905DE214C6387B00C0ECEF /* uk */,
|
||||||
CE03DD7914FBD36600E998AC /* ru */,
|
CE03DD7914FBD36600E998AC /* ru */,
|
||||||
|
CE09AF4415A284F600BD431C /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
CED3BC1D15767B200028F3C9 /* en */,
|
||||||
|
CED3BC1B15767B200028F3C9 /* cs */,
|
||||||
|
CED3BC1C15767B200028F3C9 /* de */,
|
||||||
|
CED3BC1E15767B200028F3C9 /* fr */,
|
||||||
|
CED3BC1F15767B200028F3C9 /* hy */,
|
||||||
|
CED3BC2015767B200028F3C9 /* it */,
|
||||||
|
CED3BC2115767B200028F3C9 /* ru */,
|
||||||
|
CED3BC2215767B200028F3C9 /* uk */,
|
||||||
|
CED3BC2315767B200028F3C9 /* zh_CN */,
|
||||||
|
CE09AF4E15A2852600BD431C /* pt_BR */,
|
||||||
|
);
|
||||||
|
name = DeletionOptions.xib;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
/* End PBXVariantGroup section */
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
|
|||||||
@@ -9,12 +9,5 @@ install_gettext_trans_under_cocoa()
|
|||||||
|
|
||||||
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
||||||
|
|
||||||
from inter.details_panel import PyDetailsPanel
|
from inter.all import *
|
||||||
from inter.directory_outline import PyDirectoryOutline
|
|
||||||
from inter.prioritize_dialog import PyPrioritizeDialog
|
|
||||||
from inter.prioritize_list import PyPrioritizeList
|
|
||||||
from inter.problem_dialog import PyProblemDialog
|
|
||||||
from inter.ignore_list_dialog import PyIgnoreListDialog
|
|
||||||
from inter.result_table import PyResultTable
|
|
||||||
from inter.stats_label import PyStatsLabel
|
|
||||||
from inter.app_se import PyDupeGuru
|
from inter.app_se import PyDupeGuru
|
||||||
@@ -35,6 +35,18 @@
|
|||||||
CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC514BF903D00D180CB /* PyPrioritizeList.m */; };
|
CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC514BF903D00D180CB /* PyPrioritizeList.m */; };
|
||||||
CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9814C07BCF004CA031 /* PyOutline.m */; };
|
CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9814C07BCF004CA031 /* PyOutline.m */; };
|
||||||
CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9D14C0801F004CA031 /* PySelectableList.m */; };
|
CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9D14C0801F004CA031 /* PySelectableList.m */; };
|
||||||
|
CE5A5C9C15A2837200C4E461 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; };
|
||||||
|
CE5A5C9D15A2837200C4E461 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; };
|
||||||
|
CE5A5C9E15A2837200C4E461 /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; };
|
||||||
|
CE5A5CA815A283C200C4E461 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; };
|
||||||
|
CE5A5CA915A283C200C4E461 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */; };
|
||||||
|
CE5A5CAA15A283C200C4E461 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; };
|
||||||
|
CE5A5CAB15A283C200C4E461 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */; };
|
||||||
|
CE5A5CAC15A283C200C4E461 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */; };
|
||||||
|
CE5A5CAD15A283C200C4E461 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; };
|
||||||
|
CE5A5CAE15A283C200C4E461 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; };
|
||||||
|
CE5A5CAF15A283C200C4E461 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */; };
|
||||||
|
CE5A5CB115A283D700C4E461 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; };
|
||||||
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; };
|
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; };
|
||||||
CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD4E6124CA3070089A48D /* ResultTable.m */; };
|
CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD4E6124CA3070089A48D /* ResultTable.m */; };
|
||||||
CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD546124CAF1F0089A48D /* HSTableView.m */; };
|
CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD546124CAF1F0089A48D /* HSTableView.m */; };
|
||||||
@@ -63,6 +75,10 @@
|
|||||||
CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; };
|
CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; };
|
||||||
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */; };
|
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */; };
|
||||||
CEB2AF5614C49AC800F907A9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB2AF5514C49AC800F907A9 /* main.m */; };
|
CEB2AF5614C49AC800F907A9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB2AF5514C49AC800F907A9 /* main.m */; };
|
||||||
|
CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBCE2D71573FE49000402E1 /* HSPyUtil.m */; };
|
||||||
|
CEC3F8F815765F9F00B26F0C /* DeletionOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEC3F8F615765F9F00B26F0C /* DeletionOptions.xib */; };
|
||||||
|
CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FB157668A300B26F0C /* DeletionOptions.m */; };
|
||||||
|
CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */; };
|
||||||
CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; };
|
CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; };
|
||||||
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
||||||
CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */; };
|
CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */; };
|
||||||
@@ -76,6 +92,14 @@
|
|||||||
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3B14C0B9050082545A /* HSTable.m */; };
|
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3B14C0B9050082545A /* HSTable.m */; };
|
||||||
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; };
|
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; };
|
||||||
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; };
|
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; };
|
||||||
|
CEFC64DE157678A500664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; };
|
||||||
|
CEFC64E1157678AF00664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; };
|
||||||
|
CEFC64E3157678C000664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; };
|
||||||
|
CEFC64E5157678CA00664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; };
|
||||||
|
CEFC64EA157678DE00664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; };
|
||||||
|
CEFC64EB157678DE00664D8C /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */; };
|
||||||
|
CEFC64EC157678DE00664D8C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; };
|
||||||
|
CEFC64ED157678DE00664D8C /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */; };
|
||||||
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; };
|
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; };
|
||||||
CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F910FC9517500CD5728 /* ProgressController.m */; };
|
CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F910FC9517500CD5728 /* ProgressController.m */; };
|
||||||
CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9B0FC9517500CD5728 /* Utils.m */; };
|
CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9B0FC9517500CD5728 /* Utils.m */; };
|
||||||
@@ -185,6 +209,18 @@
|
|||||||
CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; 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>"; };
|
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>"; };
|
CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = "<group>"; };
|
||||||
|
CE5A5C9915A2837200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5C9A15A2837200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5C9B15A2837200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CA015A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CA115A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CA215A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CA315A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CA515A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CA615A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CA715A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE5A5CB015A283D700C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
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; };
|
CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE6DD4E5124CA3070089A48D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
CE6DD4E5124CA3070089A48D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -247,6 +283,14 @@
|
|||||||
CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; 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>"; };
|
||||||
CEB2AF5514C49AC800F907A9 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = "<group>"; };
|
CEB2AF5514C49AC800F907A9 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = "<group>"; };
|
||||||
CEB57990146ADC5100EDF7D7 /* HSConsts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSConsts.h; path = ../../cocoalib/HSConsts.h; sourceTree = "<group>"; };
|
CEB57990146ADC5100EDF7D7 /* HSConsts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSConsts.h; path = ../../cocoalib/HSConsts.h; sourceTree = "<group>"; };
|
||||||
|
CEBCE2D61573FE49000402E1 /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = "<group>"; };
|
||||||
|
CEBCE2D71573FE49000402E1 /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = "<group>"; };
|
||||||
|
CEBCE2DA1573FEBF000402E1 /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = "<group>"; };
|
||||||
|
CEC3F8F715765F9F00B26F0C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3F8FA157668A300B26F0C /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = "<group>"; };
|
||||||
|
CEC3F8FB157668A300B26F0C /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = "<group>"; };
|
||||||
|
CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = "<group>"; };
|
||||||
|
CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = "<group>"; };
|
||||||
CECFFF1C13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; };
|
CECFFF1C13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CECFFF1D13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
|
CECFFF1D13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -312,6 +356,14 @@
|
|||||||
CEF27A9D1423EAD90048ADFA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CEF27A9D1423EAD90048ADFA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
CEF27A9E1423EAD90048ADFA /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CEF27A9E1423EAD90048ADFA /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; };
|
CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; };
|
||||||
|
CEFC64DD157678A500664D8C /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEFC64E0157678AF00664D8C /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEFC64E2157678C000664D8C /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEFC64E4157678CA00664D8C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEFC64E6157678DE00664D8C /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEFC64E7157678DE00664D8C /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEFC64E8157678DE00664D8C /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
|
CEFC64E9157678DE00664D8C /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DeletionOptions.xib; sourceTree = "<group>"; };
|
||||||
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
|
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
|
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.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; };
|
CEFC7F900FC9517500CD5728 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -461,6 +513,8 @@
|
|||||||
CE4746D214C09C12001A66DE /* PyProblemDialog.m */,
|
CE4746D214C09C12001A66DE /* PyProblemDialog.m */,
|
||||||
CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */,
|
CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */,
|
||||||
CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */,
|
CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */,
|
||||||
|
CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */,
|
||||||
|
CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */,
|
||||||
CE9FC23114C0866F005C31FD /* PyResultTable.h */,
|
CE9FC23114C0866F005C31FD /* PyResultTable.h */,
|
||||||
CE9FC23214C0866F005C31FD /* PyResultTable.m */,
|
CE9FC23214C0866F005C31FD /* PyResultTable.m */,
|
||||||
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */,
|
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */,
|
||||||
@@ -525,6 +579,7 @@
|
|||||||
CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */,
|
CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */,
|
||||||
CE81135612E5CE6D00A36C80 /* Preferences.xib */,
|
CE81135612E5CE6D00A36C80 /* Preferences.xib */,
|
||||||
CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */,
|
CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */,
|
||||||
|
CEC3F8F615765F9F00B26F0C /* DeletionOptions.xib */,
|
||||||
);
|
);
|
||||||
name = xib;
|
name = xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -548,6 +603,7 @@
|
|||||||
CEB57990146ADC5100EDF7D7 /* HSConsts.h */,
|
CEB57990146ADC5100EDF7D7 /* HSConsts.h */,
|
||||||
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */,
|
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */,
|
||||||
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */,
|
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */,
|
||||||
|
CEBCE2DA1573FEBF000402E1 /* HSFairwareProtocol.h */,
|
||||||
CE79638A12536F4E008D405B /* HSFairwareReminder.h */,
|
CE79638A12536F4E008D405B /* HSFairwareReminder.h */,
|
||||||
CE79638B12536F4E008D405B /* HSFairwareReminder.m */,
|
CE79638B12536F4E008D405B /* HSFairwareReminder.m */,
|
||||||
CE27D3C212CCA43800859E67 /* HSAboutBox.h */,
|
CE27D3C212CCA43800859E67 /* HSAboutBox.h */,
|
||||||
@@ -561,6 +617,8 @@
|
|||||||
CEFC7F910FC9517500CD5728 /* ProgressController.m */,
|
CEFC7F910FC9517500CD5728 /* ProgressController.m */,
|
||||||
CEFC7F9A0FC9517500CD5728 /* Utils.h */,
|
CEFC7F9A0FC9517500CD5728 /* Utils.h */,
|
||||||
CEFC7F9B0FC9517500CD5728 /* Utils.m */,
|
CEFC7F9B0FC9517500CD5728 /* Utils.m */,
|
||||||
|
CEBCE2D61573FE49000402E1 /* HSPyUtil.h */,
|
||||||
|
CEBCE2D71573FE49000402E1 /* HSPyUtil.m */,
|
||||||
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */,
|
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */,
|
||||||
CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */,
|
CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */,
|
||||||
);
|
);
|
||||||
@@ -593,6 +651,8 @@
|
|||||||
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */,
|
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */,
|
||||||
CE89240614239CC30024CE4E /* PrioritizeList.h */,
|
CE89240614239CC30024CE4E /* PrioritizeList.h */,
|
||||||
CE89240714239CC30024CE4E /* PrioritizeList.m */,
|
CE89240714239CC30024CE4E /* PrioritizeList.m */,
|
||||||
|
CEC3F8FA157668A300B26F0C /* DeletionOptions.h */,
|
||||||
|
CEC3F8FB157668A300B26F0C /* DeletionOptions.m */,
|
||||||
CEB2AF5514C49AC800F907A9 /* main.m */,
|
CEB2AF5514C49AC800F907A9 /* main.m */,
|
||||||
);
|
);
|
||||||
name = dgbase;
|
name = dgbase;
|
||||||
@@ -647,6 +707,7 @@
|
|||||||
hy,
|
hy,
|
||||||
ru,
|
ru,
|
||||||
uk,
|
uk,
|
||||||
|
pt_BR,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -682,6 +743,27 @@
|
|||||||
CE18005114BDD87B001B6329 /* py in Resources */,
|
CE18005114BDD87B001B6329 /* py in Resources */,
|
||||||
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */,
|
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */,
|
||||||
CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */,
|
CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */,
|
||||||
|
CEC3F8F815765F9F00B26F0C /* DeletionOptions.xib in Resources */,
|
||||||
|
CEFC64DE157678A500664D8C /* DetailsPanel.xib in Resources */,
|
||||||
|
CEFC64E1157678AF00664D8C /* DetailsPanel.xib in Resources */,
|
||||||
|
CEFC64E3157678C000664D8C /* DetailsPanel.xib in Resources */,
|
||||||
|
CEFC64E5157678CA00664D8C /* DetailsPanel.xib in Resources */,
|
||||||
|
CEFC64EA157678DE00664D8C /* DetailsPanel.xib in Resources */,
|
||||||
|
CEFC64EB157678DE00664D8C /* DirectoryPanel.xib in Resources */,
|
||||||
|
CEFC64EC157678DE00664D8C /* MainMenu.xib in Resources */,
|
||||||
|
CEFC64ED157678DE00664D8C /* ProblemDialog.xib in Resources */,
|
||||||
|
CE5A5C9C15A2837200C4E461 /* about.xib in Resources */,
|
||||||
|
CE5A5C9D15A2837200C4E461 /* ErrorReportWindow.xib in Resources */,
|
||||||
|
CE5A5C9E15A2837200C4E461 /* FairwareReminder.xib in Resources */,
|
||||||
|
CE5A5CA815A283C200C4E461 /* DetailsPanel.xib in Resources */,
|
||||||
|
CE5A5CA915A283C200C4E461 /* DirectoryPanel.xib in Resources */,
|
||||||
|
CE5A5CAA15A283C200C4E461 /* MainMenu.xib in Resources */,
|
||||||
|
CE5A5CAB15A283C200C4E461 /* ProblemDialog.xib in Resources */,
|
||||||
|
CE5A5CAC15A283C200C4E461 /* IgnoreListDialog.xib in Resources */,
|
||||||
|
CE5A5CAD15A283C200C4E461 /* ResultWindow.xib in Resources */,
|
||||||
|
CE5A5CAE15A283C200C4E461 /* Preferences.xib in Resources */,
|
||||||
|
CE5A5CAF15A283C200C4E461 /* PrioritizeDialog.xib in Resources */,
|
||||||
|
CE5A5CB115A283D700C4E461 /* DetailsPanel.xib in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -742,6 +824,9 @@
|
|||||||
CEB2AF5614C49AC800F907A9 /* main.m in Sources */,
|
CEB2AF5614C49AC800F907A9 /* main.m in Sources */,
|
||||||
CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */,
|
CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */,
|
||||||
CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */,
|
CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */,
|
||||||
|
CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */,
|
||||||
|
CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */,
|
||||||
|
CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -760,6 +845,7 @@
|
|||||||
CE00BBD014910CA3006A717C /* hy */,
|
CE00BBD014910CA3006A717C /* hy */,
|
||||||
CED638D514B38CC800B88D00 /* ru */,
|
CED638D514B38CC800B88D00 /* ru */,
|
||||||
CEECCD0614C636C900A2F3A0 /* uk */,
|
CEECCD0614C636C900A2F3A0 /* uk */,
|
||||||
|
CE5A5C9915A2837200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -776,6 +862,7 @@
|
|||||||
CE00BBD114910CA3006A717C /* hy */,
|
CE00BBD114910CA3006A717C /* hy */,
|
||||||
CED638D614B38CC800B88D00 /* ru */,
|
CED638D614B38CC800B88D00 /* ru */,
|
||||||
CEECCD0714C636C900A2F3A0 /* uk */,
|
CEECCD0714C636C900A2F3A0 /* uk */,
|
||||||
|
CE5A5C9A15A2837200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -792,6 +879,7 @@
|
|||||||
CE148037151100FB00CD5DAD /* ru */,
|
CE148037151100FB00CD5DAD /* ru */,
|
||||||
CE1480391511010500CD5DAD /* uk */,
|
CE1480391511010500CD5DAD /* uk */,
|
||||||
CE14803B1511011000CD5DAD /* zh_CN */,
|
CE14803B1511011000CD5DAD /* zh_CN */,
|
||||||
|
CE5A5CA315A283C200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = IgnoreListDialog.xib;
|
name = IgnoreListDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -808,6 +896,7 @@
|
|||||||
CE00BBD214910CA3006A717C /* hy */,
|
CE00BBD214910CA3006A717C /* hy */,
|
||||||
CED638D714B38CC800B88D00 /* ru */,
|
CED638D714B38CC800B88D00 /* ru */,
|
||||||
CEECCD0814C636C900A2F3A0 /* uk */,
|
CEECCD0814C636C900A2F3A0 /* uk */,
|
||||||
|
CE5A5C9B15A2837200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -825,6 +914,7 @@
|
|||||||
CE00BBBD14910C5E006A717C /* hy */,
|
CE00BBBD14910C5E006A717C /* hy */,
|
||||||
CED638DC14B38CEC00B88D00 /* ru */,
|
CED638DC14B38CEC00B88D00 /* ru */,
|
||||||
CEECCD0F14C6370000A2F3A0 /* uk */,
|
CEECCD0F14C6370000A2F3A0 /* uk */,
|
||||||
|
CE5A5CA115A283C200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -841,6 +931,7 @@
|
|||||||
CE00BBBE14910C5E006A717C /* hy */,
|
CE00BBBE14910C5E006A717C /* hy */,
|
||||||
CED638DD14B38CEC00B88D00 /* ru */,
|
CED638DD14B38CEC00B88D00 /* ru */,
|
||||||
CEECCD1014C6370000A2F3A0 /* uk */,
|
CEECCD1014C6370000A2F3A0 /* uk */,
|
||||||
|
CE5A5CA215A283C200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -857,6 +948,7 @@
|
|||||||
CE00BBC014910C5E006A717C /* hy */,
|
CE00BBC014910C5E006A717C /* hy */,
|
||||||
CED638DF14B38CEC00B88D00 /* ru */,
|
CED638DF14B38CEC00B88D00 /* ru */,
|
||||||
CEECCD1214C6370000A2F3A0 /* uk */,
|
CEECCD1214C6370000A2F3A0 /* uk */,
|
||||||
|
CE5A5CA415A283C200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -873,6 +965,7 @@
|
|||||||
CE00BBC214910C5E006A717C /* hy */,
|
CE00BBC214910C5E006A717C /* hy */,
|
||||||
CED638E114B38CEC00B88D00 /* ru */,
|
CED638E114B38CEC00B88D00 /* ru */,
|
||||||
CEECCD1414C6370000A2F3A0 /* uk */,
|
CEECCD1414C6370000A2F3A0 /* uk */,
|
||||||
|
CE5A5CA615A283C200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -889,6 +982,7 @@
|
|||||||
CE00BBC314910C5E006A717C /* hy */,
|
CE00BBC314910C5E006A717C /* hy */,
|
||||||
CED638E214B38CEC00B88D00 /* ru */,
|
CED638E214B38CEC00B88D00 /* ru */,
|
||||||
CEECCD1514C6370000A2F3A0 /* uk */,
|
CEECCD1514C6370000A2F3A0 /* uk */,
|
||||||
|
CE5A5CA715A283C200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -905,6 +999,7 @@
|
|||||||
CE00BBCC14910C72006A717C /* hy */,
|
CE00BBCC14910C72006A717C /* hy */,
|
||||||
CED638EA14B38CF800B88D00 /* ru */,
|
CED638EA14B38CF800B88D00 /* ru */,
|
||||||
CEECCD1D14C6370C00A2F3A0 /* uk */,
|
CEECCD1D14C6370C00A2F3A0 /* uk */,
|
||||||
|
CE5A5CB015A283D700C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -937,10 +1032,28 @@
|
|||||||
CE00BBC114910C5E006A717C /* hy */,
|
CE00BBC114910C5E006A717C /* hy */,
|
||||||
CED638E014B38CEC00B88D00 /* ru */,
|
CED638E014B38CEC00B88D00 /* ru */,
|
||||||
CEECCD1314C6370000A2F3A0 /* uk */,
|
CEECCD1314C6370000A2F3A0 /* uk */,
|
||||||
|
CE5A5CA515A283C200C4E461 /* pt_BR */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
CEC3F8F615765F9F00B26F0C /* DeletionOptions.xib */ = {
|
||||||
|
isa = PBXVariantGroup;
|
||||||
|
children = (
|
||||||
|
CEC3F8F715765F9F00B26F0C /* en */,
|
||||||
|
CEFC64DD157678A500664D8C /* de */,
|
||||||
|
CEFC64E0157678AF00664D8C /* cs */,
|
||||||
|
CEFC64E2157678C000664D8C /* fr */,
|
||||||
|
CEFC64E4157678CA00664D8C /* hy */,
|
||||||
|
CEFC64E6157678DE00664D8C /* it */,
|
||||||
|
CEFC64E7157678DE00664D8C /* ru */,
|
||||||
|
CEFC64E8157678DE00664D8C /* uk */,
|
||||||
|
CEFC64E9157678DE00664D8C /* zh_CN */,
|
||||||
|
CE5A5CA015A283C200C4E461 /* pt_BR */,
|
||||||
|
);
|
||||||
|
name = DeletionOptions.xib;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
/* End PBXVariantGroup section */
|
/* End PBXVariantGroup section */
|
||||||
|
|
||||||
/* Begin XCBuildConfiguration section */
|
/* Begin XCBuildConfiguration section */
|
||||||
|
|||||||
32
core/app.py
32
core/app.py
@@ -12,6 +12,7 @@ import logging
|
|||||||
import subprocess
|
import subprocess
|
||||||
import re
|
import re
|
||||||
import time
|
import time
|
||||||
|
import shutil
|
||||||
|
|
||||||
from send2trash import send2trash
|
from send2trash import send2trash
|
||||||
from hscommon import io
|
from hscommon import io
|
||||||
@@ -24,6 +25,7 @@ from hscommon.util import (delete_if_empty, first, escape, nonone, format_time_d
|
|||||||
from hscommon.trans import tr
|
from hscommon.trans import tr
|
||||||
|
|
||||||
from . import directories, results, scanner, export, fs
|
from . import directories, results, scanner, export, fs
|
||||||
|
from .gui.deletion_options import DeletionOptions
|
||||||
from .gui.details_panel import DetailsPanel
|
from .gui.details_panel import DetailsPanel
|
||||||
from .gui.directory_tree import DirectoryTree
|
from .gui.directory_tree import DirectoryTree
|
||||||
from .gui.ignore_list_dialog import IgnoreListDialog
|
from .gui.ignore_list_dialog import IgnoreListDialog
|
||||||
@@ -118,6 +120,7 @@ class DupeGuru(RegistrableApplication, Broadcaster):
|
|||||||
self.ignore_list_dialog = IgnoreListDialog(self)
|
self.ignore_list_dialog = IgnoreListDialog(self)
|
||||||
self.stats_label = StatsLabel(self)
|
self.stats_label = StatsLabel(self)
|
||||||
self.result_table = self._create_result_table()
|
self.result_table = self._create_result_table()
|
||||||
|
self.deletion_options = DeletionOptions()
|
||||||
children = [self.result_table, self.directory_tree, self.stats_label, self.details_panel]
|
children = [self.result_table, self.directory_tree, self.stats_label, self.details_panel]
|
||||||
for child in children:
|
for child in children:
|
||||||
child.connect()
|
child.connect()
|
||||||
@@ -155,23 +158,30 @@ class DupeGuru(RegistrableApplication, Broadcaster):
|
|||||||
return len([dupe for dupe in group.dupes if self.results.is_marked(dupe)])
|
return len([dupe for dupe in group.dupes if self.results.is_marked(dupe)])
|
||||||
return cmp_value(group.ref, key)
|
return cmp_value(group.ref, key)
|
||||||
|
|
||||||
def _do_delete(self, j, replace_with_hardlinks):
|
def _do_delete(self, j, replace_with_hardlinks, direct_deletion):
|
||||||
def op(dupe):
|
def op(dupe):
|
||||||
j.add_progress()
|
j.add_progress()
|
||||||
return self._do_delete_dupe(dupe, replace_with_hardlinks)
|
return self._do_delete_dupe(dupe, replace_with_hardlinks, direct_deletion)
|
||||||
|
|
||||||
j.start_job(self.results.mark_count)
|
j.start_job(self.results.mark_count)
|
||||||
self.results.perform_on_marked(op, True)
|
self.results.perform_on_marked(op, True)
|
||||||
|
|
||||||
def _do_delete_dupe(self, dupe, replace_with_hardlinks):
|
def _do_delete_dupe(self, dupe, replace_with_hardlinks, direct_deletion):
|
||||||
if not io.exists(dupe.path):
|
if not io.exists(dupe.path):
|
||||||
return
|
return
|
||||||
logging.debug("Sending '%s' to trash", dupe.path)
|
logging.debug("Sending '%s' to trash", dupe.path)
|
||||||
send2trash(str(dupe.path)) # Raises OSError when there's a problem
|
str_path = str(dupe.path)
|
||||||
|
if direct_deletion:
|
||||||
|
if op.isdir(str_path):
|
||||||
|
shutil.rmtree(str_path)
|
||||||
|
else:
|
||||||
|
os.remove(str_path)
|
||||||
|
else:
|
||||||
|
send2trash(str_path) # Raises OSError when there's a problem
|
||||||
if replace_with_hardlinks:
|
if replace_with_hardlinks:
|
||||||
group = self.results.get_group_of_duplicate(dupe)
|
group = self.results.get_group_of_duplicate(dupe)
|
||||||
ref = group.ref
|
ref = group.ref
|
||||||
os.link(str(ref.path), str(dupe.path))
|
os.link(str(ref.path), str_path)
|
||||||
self.clean_empty_dirs(dupe.path[:-1])
|
self.clean_empty_dirs(dupe.path[:-1])
|
||||||
|
|
||||||
def _create_file(self, path):
|
def _create_file(self, path):
|
||||||
@@ -334,19 +344,17 @@ class DupeGuru(RegistrableApplication, Broadcaster):
|
|||||||
jobid = JobType.Copy if copy else JobType.Move
|
jobid = JobType.Copy if copy else JobType.Move
|
||||||
self.view.start_job(jobid, do)
|
self.view.start_job(jobid, do)
|
||||||
|
|
||||||
def delete_marked(self, replace_with_hardlinks=False):
|
def delete_marked(self):
|
||||||
if not self._check_demo():
|
if not self._check_demo():
|
||||||
return
|
return
|
||||||
if not self.results.mark_count:
|
if not self.results.mark_count:
|
||||||
self.view.show_message(MSG_NO_MARKED_DUPES)
|
self.view.show_message(MSG_NO_MARKED_DUPES)
|
||||||
return
|
return
|
||||||
if replace_with_hardlinks:
|
if not self.deletion_options.show(self.results.mark_count):
|
||||||
msg = tr("You are about to send %d files to Trash (and hardlink them afterwards). Continue?")
|
|
||||||
else:
|
|
||||||
msg = tr("You are about to send %d files to Trash. Continue?")
|
|
||||||
if not self.view.ask_yes_no(msg % self.results.mark_count):
|
|
||||||
return
|
return
|
||||||
self.view.start_job(JobType.Delete, self._do_delete, args=[replace_with_hardlinks])
|
args = [self.deletion_options.hardlink, self.deletion_options.direct]
|
||||||
|
logging.debug("Starting deletion job with args %r", args)
|
||||||
|
self.view.start_job(JobType.Delete, self._do_delete, args=args)
|
||||||
|
|
||||||
def export_to_xhtml(self):
|
def export_to_xhtml(self):
|
||||||
columns = [col for col in self.result_table.columns.ordered_columns
|
columns = [col for col in self.result_table.columns.ordered_columns
|
||||||
|
|||||||
44
core/fs.py
44
core/fs.py
@@ -15,7 +15,9 @@ import hashlib
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
from hscommon import io
|
from hscommon import io
|
||||||
from hscommon.util import nonone, flatten, get_file_ext
|
from hscommon.util import nonone, get_file_ext
|
||||||
|
|
||||||
|
NOT_SET = object()
|
||||||
|
|
||||||
class FSError(Exception):
|
class FSError(Exception):
|
||||||
cls_message = "An error has occured on '{name}' in '{parent}'"
|
cls_message = "An error has occured on '{name}' in '{parent}'"
|
||||||
@@ -55,29 +57,35 @@ class File:
|
|||||||
'md5': '',
|
'md5': '',
|
||||||
'md5partial': '',
|
'md5partial': '',
|
||||||
}
|
}
|
||||||
|
# Slots for File make us save quite a bit of memory. In a memory test I've made with a lot of
|
||||||
|
# files, I saved 35% memory usage with "unread" files (no _read_info() call) and gains become
|
||||||
|
# even greater when we take into account read attributes (70%!). Yeah, it's worth it.
|
||||||
|
__slots__ = ('path', 'is_ref', 'words') + tuple(INITIAL_INFO.keys())
|
||||||
|
|
||||||
def __init__(self, path):
|
def __init__(self, path):
|
||||||
self.path = path
|
self.path = path
|
||||||
#This offset is where we should start reading the file to get a partial md5
|
for attrname in self.INITIAL_INFO:
|
||||||
#For audio file, it should be where audio data starts
|
setattr(self, attrname, NOT_SET)
|
||||||
self._md5partial_offset = 0x4000 #16Kb
|
|
||||||
self._md5partial_size = 0x4000 #16Kb
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return "<{} {}>".format(self.__class__.__name__, str(self.path))
|
return "<{} {}>".format(self.__class__.__name__, str(self.path))
|
||||||
|
|
||||||
def __getattr__(self, attrname):
|
def __getattribute__(self, attrname):
|
||||||
# Only called when attr is not there
|
result = object.__getattribute__(self, attrname)
|
||||||
if attrname in self.INITIAL_INFO:
|
if result is NOT_SET:
|
||||||
try:
|
try:
|
||||||
self._read_info(attrname)
|
self._read_info(attrname)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logging.warning("An error '%s' was raised while decoding '%s'", e, repr(self.path))
|
logging.warning("An error '%s' was raised while decoding '%s'", e, repr(self.path))
|
||||||
try:
|
result = object.__getattribute__(self, attrname)
|
||||||
return self.__dict__[attrname]
|
if result is NOT_SET:
|
||||||
except KeyError:
|
result = self.INITIAL_INFO[attrname]
|
||||||
return self.INITIAL_INFO[attrname]
|
return result
|
||||||
raise AttributeError()
|
|
||||||
|
#This offset is where we should start reading the file to get a partial md5
|
||||||
|
#For audio file, it should be where audio data starts
|
||||||
|
def _get_md5partial_offset_and_size(self):
|
||||||
|
return (0x4000, 0x4000) #16Kb
|
||||||
|
|
||||||
def _read_info(self, field):
|
def _read_info(self, field):
|
||||||
if field in ('size', 'mtime'):
|
if field in ('size', 'mtime'):
|
||||||
@@ -87,8 +95,7 @@ class File:
|
|||||||
elif field == 'md5partial':
|
elif field == 'md5partial':
|
||||||
try:
|
try:
|
||||||
fp = io.open(self.path, 'rb')
|
fp = io.open(self.path, 'rb')
|
||||||
offset = self._md5partial_offset
|
offset, size = self._get_md5partial_offset_and_size()
|
||||||
size = self._md5partial_size
|
|
||||||
fp.seek(offset)
|
fp.seek(offset)
|
||||||
partialdata = fp.read(size)
|
partialdata = fp.read(size)
|
||||||
md5 = hashlib.md5(partialdata)
|
md5 = hashlib.md5(partialdata)
|
||||||
@@ -116,10 +123,9 @@ class File:
|
|||||||
If `attrnames` is not None, caches only attrnames.
|
If `attrnames` is not None, caches only attrnames.
|
||||||
"""
|
"""
|
||||||
if attrnames is None:
|
if attrnames is None:
|
||||||
attrnames = list(self.INITIAL_INFO.keys())
|
attrnames = self.INITIAL_INFO.keys()
|
||||||
for attrname in attrnames:
|
for attrname in attrnames:
|
||||||
if attrname not in self.__dict__:
|
getattr(self, attrname)
|
||||||
self._read_info(attrname)
|
|
||||||
|
|
||||||
#--- Public
|
#--- Public
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -159,6 +165,8 @@ class Folder(File):
|
|||||||
|
|
||||||
It has the size/md5 info of a File, but it's value are the sum of its subitems.
|
It has the size/md5 info of a File, but it's value are the sum of its subitems.
|
||||||
"""
|
"""
|
||||||
|
__slots__ = File.__slots__ + ('_subfolders', )
|
||||||
|
|
||||||
def __init__(self, path):
|
def __init__(self, path):
|
||||||
File.__init__(self, path)
|
File.__init__(self, path)
|
||||||
self._subfolders = None
|
self._subfolders = None
|
||||||
|
|||||||
23
core/gui/deletion_options.py
Normal file
23
core/gui/deletion_options.py
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Created On: 2012-05-30
|
||||||
|
# Copyright 2012 Hardcoded Software (http://www.hardcoded.net)
|
||||||
|
#
|
||||||
|
# This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
||||||
|
# which should be included with this package. The terms are also available at
|
||||||
|
# http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
|
||||||
|
from hscommon.gui.base import GUIObject
|
||||||
|
from hscommon.trans import tr
|
||||||
|
|
||||||
|
class DeletionOptions(GUIObject):
|
||||||
|
#--- View interface
|
||||||
|
# update_msg(msg: str)
|
||||||
|
# show()
|
||||||
|
#
|
||||||
|
|
||||||
|
def show(self, mark_count):
|
||||||
|
self.hardlink = False
|
||||||
|
self.direct = False
|
||||||
|
msg = tr("You are sending {} file(s) to the Trash.").format(mark_count)
|
||||||
|
self.view.update_msg(msg)
|
||||||
|
return self.view.show()
|
||||||
|
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '6.3.0'
|
__version__ = '6.4.2'
|
||||||
__appname__ = 'dupeGuru Music Edition'
|
__appname__ = 'dupeGuru Music Edition'
|
||||||
@@ -28,6 +28,7 @@ class MusicFile(fs.File):
|
|||||||
'year' : '',
|
'year' : '',
|
||||||
'track' : 0,
|
'track' : 0,
|
||||||
})
|
})
|
||||||
|
__slots__ = fs.File.__slots__ + tuple(INITIAL_INFO.keys())
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def can_handle(cls, path):
|
def can_handle(cls, path):
|
||||||
@@ -35,11 +36,11 @@ class MusicFile(fs.File):
|
|||||||
return False
|
return False
|
||||||
return get_file_ext(path[-1]) in auto.EXT2CLASS
|
return get_file_ext(path[-1]) in auto.EXT2CLASS
|
||||||
|
|
||||||
|
def _get_md5partial_offset_and_size(self):
|
||||||
|
f = auto.File(str(self.path))
|
||||||
|
return (f.audio_offset, f.audio_size)
|
||||||
|
|
||||||
def _read_info(self, field):
|
def _read_info(self, field):
|
||||||
if field == 'md5partial':
|
|
||||||
f = auto.File(str(self.path))
|
|
||||||
self._md5partial_offset = f.audio_offset
|
|
||||||
self._md5partial_size = f.audio_size
|
|
||||||
fs.File._read_info(self, field)
|
fs.File._read_info(self, field)
|
||||||
if field in TAG_FIELDS:
|
if field in TAG_FIELDS:
|
||||||
f = auto.File(str(self.path))
|
f = auto.File(str(self.path))
|
||||||
|
|||||||
@@ -11,18 +11,9 @@ from hscommon import io
|
|||||||
from hscommon.path import Path
|
from hscommon.path import Path
|
||||||
|
|
||||||
from core.engine import getwords
|
from core.engine import getwords
|
||||||
|
from core.tests.scanner_test import NamedObject, no
|
||||||
from ..scanner import *
|
from ..scanner import *
|
||||||
|
|
||||||
class NamedObject:
|
|
||||||
def __init__(self, name="foobar", size=1):
|
|
||||||
self.name = name
|
|
||||||
self.size = size
|
|
||||||
self.path = Path('')
|
|
||||||
self.words = getwords(name)
|
|
||||||
|
|
||||||
|
|
||||||
no = NamedObject
|
|
||||||
|
|
||||||
def pytest_funcarg__fake_fileexists(request):
|
def pytest_funcarg__fake_fileexists(request):
|
||||||
# This is a hack to avoid invalidating all previous tests since the scanner started to test
|
# This is a hack to avoid invalidating all previous tests since the scanner started to test
|
||||||
# for file existence before doing the match grouping.
|
# for file existence before doing the match grouping.
|
||||||
@@ -32,7 +23,7 @@ def pytest_funcarg__fake_fileexists(request):
|
|||||||
def test_priorize_me(fake_fileexists):
|
def test_priorize_me(fake_fileexists):
|
||||||
# in ScannerME, bitrate goes first (right after is_ref) in priorization
|
# in ScannerME, bitrate goes first (right after is_ref) in priorization
|
||||||
s = ScannerME()
|
s = ScannerME()
|
||||||
o1, o2 = no('foo'), no('foo')
|
o1, o2 = no('foo', path='p1'), no('foo', path='p2')
|
||||||
o1.bitrate = 1
|
o1.bitrate = 1
|
||||||
o2.bitrate = 2
|
o2.bitrate = 2
|
||||||
[group] = s.get_dupe_groups([o1, o2])
|
[group] = s.get_dupe_groups([o1, o2])
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '2.5.0'
|
__version__ = '2.6.0'
|
||||||
__appname__ = 'dupeGuru Picture Edition'
|
__appname__ = 'dupeGuru Picture Edition'
|
||||||
@@ -16,6 +16,8 @@ class Photo(fs.File):
|
|||||||
INITIAL_INFO.update({
|
INITIAL_INFO.update({
|
||||||
'dimensions': (0,0),
|
'dimensions': (0,0),
|
||||||
})
|
})
|
||||||
|
__slots__ = fs.File.__slots__ + tuple(INITIAL_INFO.keys())
|
||||||
|
|
||||||
# These extensions are supported on all platforms
|
# These extensions are supported on all platforms
|
||||||
HANDLED_EXTS = {'png', 'jpg', 'jpeg', 'gif', 'bmp', 'tiff', 'tif'}
|
HANDLED_EXTS = {'png', 'jpg', 'jpeg', 'gif', 'bmp', 'tiff', 'tif'}
|
||||||
|
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '3.4.1'
|
__version__ = '3.5.0'
|
||||||
__appname__ = 'dupeGuru'
|
__appname__ = 'dupeGuru'
|
||||||
|
|||||||
0
debian_me/compat → debian/compat
vendored
0
debian_me/compat → debian/compat
vendored
10
debian_se/control → debian/control
vendored
10
debian_se/control → debian/control
vendored
@@ -1,4 +1,4 @@
|
|||||||
Source: dupeguru-se
|
Source: {pkgname}
|
||||||
Section: devel
|
Section: devel
|
||||||
Priority: extra
|
Priority: extra
|
||||||
Maintainer: Virgil Dupras <hsoft@hardcoded.net>
|
Maintainer: Virgil Dupras <hsoft@hardcoded.net>
|
||||||
@@ -6,7 +6,7 @@ Build-Depends: debhelper (>= 7)
|
|||||||
Standards-Version: 3.8.1
|
Standards-Version: 3.8.1
|
||||||
Homepage: http://www.hardcoded.net
|
Homepage: http://www.hardcoded.net
|
||||||
|
|
||||||
Package: dupeguru-se
|
Package: {pkgname}
|
||||||
Architecture: any
|
Architecture: all
|
||||||
Depends: python3 (>=3.2), libqtgui4
|
Depends: python3 (>=3.2), python3-pyqt4
|
||||||
Description: dupeGuru
|
Description: {longname}
|
||||||
0
debian_me/copyright → debian/copyright
vendored
0
debian_me/copyright → debian/copyright
vendored
3
debian/dirs
vendored
Normal file
3
debian/dirs
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
usr/bin
|
||||||
|
usr/share
|
||||||
|
usr/share/applications
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
[Desktop Entry]
|
[Desktop Entry]
|
||||||
Name=dupeGuru
|
Name={longname}
|
||||||
Comment=Find duplicate files.
|
Comment=Find duplicate files.
|
||||||
Exec=dupeguru_se
|
Exec={execname}
|
||||||
Icon=/usr/share/dupeguru_se/dgse_logo_128.png
|
Icon={iconpath}
|
||||||
Terminal=false
|
Terminal=false
|
||||||
Type=Application
|
Type=Application
|
||||||
Categories=Utility;
|
Categories=Utility;
|
||||||
6
debian/me.json
vendored
Normal file
6
debian/me.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"pkgname": "dupeguru-me",
|
||||||
|
"longname": "dupeGuru Music Edition",
|
||||||
|
"execname": "dupeguru_me",
|
||||||
|
"iconpath": "/usr/share/dupeguru_me/dgme_logo_128.png"
|
||||||
|
}
|
||||||
6
debian/pe.json
vendored
Normal file
6
debian/pe.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"pkgname": "dupeguru-pe",
|
||||||
|
"longname": "dupeGuru Picture Edition",
|
||||||
|
"execname": "dupeguru_pe",
|
||||||
|
"iconpath": "/usr/share/dupeguru_pe/dgpe_logo_128.png"
|
||||||
|
}
|
||||||
7
debian_se/rules → debian/rules
vendored
7
debian_se/rules → debian/rules
vendored
@@ -42,10 +42,9 @@ install: build
|
|||||||
dh_installdirs
|
dh_installdirs
|
||||||
|
|
||||||
chmod +x src/run.py
|
chmod +x src/run.py
|
||||||
cp -R src/ $(CURDIR)/debian/dupeguru-se/usr/share/dupeguru_se
|
cp -R src/ $(CURDIR)/debian/{pkgname}/usr/share/{execname}
|
||||||
cp $(CURDIR)/debian/dupeguru_se.desktop $(CURDIR)/debian/dupeguru-se/usr/share/applications
|
cp $(CURDIR)/debian/{execname}.desktop $(CURDIR)/debian/{pkgname}/usr/share/applications
|
||||||
mkdir $(CURDIR)/debian/dupeguru-se/usr/bin
|
ln -s /usr/share/{execname}/run.py $(CURDIR)/debian/{pkgname}/usr/bin/{execname}
|
||||||
ln -s /usr/share/dupeguru_se/run.py $(CURDIR)/debian/dupeguru-se/usr/bin/dupeguru_se
|
|
||||||
|
|
||||||
|
|
||||||
# Build architecture-independent files here.
|
# Build architecture-independent files here.
|
||||||
6
debian/se.json
vendored
Normal file
6
debian/se.json
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"pkgname": "dupeguru-se",
|
||||||
|
"longname": "dupeGuru",
|
||||||
|
"execname": "dupeguru_se",
|
||||||
|
"iconpath": "/usr/share/dupeguru_se/dgse_logo_128.png"
|
||||||
|
}
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
Source: dupeguru-me
|
|
||||||
Section: devel
|
|
||||||
Priority: extra
|
|
||||||
Maintainer: Virgil Dupras <hsoft@hardcoded.net>
|
|
||||||
Build-Depends: debhelper (>= 7)
|
|
||||||
Standards-Version: 3.8.1
|
|
||||||
Homepage: http://www.hardcoded.net
|
|
||||||
|
|
||||||
Package: dupeguru-me
|
|
||||||
Architecture: any
|
|
||||||
Depends: python3 (>=3.2), libqtgui4
|
|
||||||
Description: dupeGuru Music Edition
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
usr/local/bin
|
|
||||||
usr/local/share
|
|
||||||
usr/share/applications
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=dupeGuru Music Edition
|
|
||||||
Comment=Find duplicate songs in your collection.
|
|
||||||
Exec=dupeguru_me
|
|
||||||
Icon=/usr/share/dupeguru_me/dgme_logo_128.png
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
Categories=Utility;
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
# -*- makefile -*-
|
|
||||||
# Sample debian/rules that uses debhelper.
|
|
||||||
# This file was originally written by Joey Hess and Craig Small.
|
|
||||||
# As a special exception, when this file is copied by dh-make into a
|
|
||||||
# dh-make output file, you may use that output file without restriction.
|
|
||||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
|
||||||
|
|
||||||
# Uncomment this to turn on verbose mode.
|
|
||||||
#export DH_VERBOSE=1
|
|
||||||
|
|
||||||
configure: configure-stamp
|
|
||||||
configure-stamp:
|
|
||||||
dh_testdir
|
|
||||||
# Add here commands to configure the package.
|
|
||||||
|
|
||||||
touch configure-stamp
|
|
||||||
|
|
||||||
|
|
||||||
build: build-stamp
|
|
||||||
|
|
||||||
build-stamp: configure-stamp
|
|
||||||
dh_testdir
|
|
||||||
|
|
||||||
# Add here commands to compile the package.
|
|
||||||
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
clean:
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
rm -f build-stamp configure-stamp
|
|
||||||
|
|
||||||
# Add here commands to clean up after the build process.
|
|
||||||
|
|
||||||
dh_clean
|
|
||||||
|
|
||||||
install: build
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_prep
|
|
||||||
dh_installdirs
|
|
||||||
|
|
||||||
chmod +x src/run.py
|
|
||||||
cp -R src/ $(CURDIR)/debian/dupeguru-me/usr/share/dupeguru_me
|
|
||||||
cp $(CURDIR)/debian/dupeguru_me.desktop $(CURDIR)/debian/dupeguru-me/usr/share/applications
|
|
||||||
mkdir $(CURDIR)/debian/dupeguru-me/usr/bin
|
|
||||||
ln -s /usr/share/dupeguru_me/run.py $(CURDIR)/debian/dupeguru-me/usr/bin/dupeguru_me
|
|
||||||
|
|
||||||
|
|
||||||
# Build architecture-independent files here.
|
|
||||||
binary-indep: install
|
|
||||||
# We have nothing to do by default.
|
|
||||||
|
|
||||||
# Build architecture-dependent files here.
|
|
||||||
binary-arch: install
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_installchangelogs
|
|
||||||
dh_installdocs
|
|
||||||
dh_installexamples
|
|
||||||
dh_install
|
|
||||||
dh_installmenu
|
|
||||||
# dh_installdebconf
|
|
||||||
# dh_installlogrotate
|
|
||||||
# dh_installemacsen
|
|
||||||
# dh_installpam
|
|
||||||
# dh_installmime
|
|
||||||
# dh_python
|
|
||||||
# dh_installinit
|
|
||||||
# dh_installcron
|
|
||||||
# dh_installinfo
|
|
||||||
dh_installman
|
|
||||||
dh_link
|
|
||||||
dh_strip
|
|
||||||
dh_compress
|
|
||||||
dh_fixperms
|
|
||||||
# dh_perl
|
|
||||||
# dh_makeshlibs
|
|
||||||
dh_installdeb
|
|
||||||
dh_shlibdeps
|
|
||||||
dh_gencontrol
|
|
||||||
dh_md5sums
|
|
||||||
dh_builddeb
|
|
||||||
|
|
||||||
binary: binary-indep binary-arch
|
|
||||||
.PHONY: build clean binary-indep binary-arch binary install configure
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
7
|
|
||||||
@@ -1,12 +0,0 @@
|
|||||||
Source: dupeguru-pe
|
|
||||||
Section: devel
|
|
||||||
Priority: extra
|
|
||||||
Maintainer: Virgil Dupras <hsoft@hardcoded.net>
|
|
||||||
Build-Depends: debhelper (>= 7)
|
|
||||||
Standards-Version: 3.8.1
|
|
||||||
Homepage: http://www.hardcoded.net
|
|
||||||
|
|
||||||
Package: dupeguru-pe
|
|
||||||
Architecture: any
|
|
||||||
Depends: python3 (>=3.2), libqtgui4
|
|
||||||
Description: dupeGuru Picture Edition
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
Copyright 2012 Hardcoded Software Inc. (http://www.hardcoded.net)
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
||||||
* Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
||||||
* If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
usr/local/bin
|
|
||||||
usr/local/share
|
|
||||||
usr/share/applications
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
[Desktop Entry]
|
|
||||||
Name=dupeGuru Picture Edition
|
|
||||||
Comment=Find duplicate pictures in your library.
|
|
||||||
Exec=dupeguru_pe
|
|
||||||
Icon=/usr/share/dupeguru_pe/dgpe_logo_128.png
|
|
||||||
Terminal=false
|
|
||||||
Type=Application
|
|
||||||
Categories=Utility;
|
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
#!/usr/bin/make -f
|
|
||||||
# -*- makefile -*-
|
|
||||||
# Sample debian/rules that uses debhelper.
|
|
||||||
# This file was originally written by Joey Hess and Craig Small.
|
|
||||||
# As a special exception, when this file is copied by dh-make into a
|
|
||||||
# dh-make output file, you may use that output file without restriction.
|
|
||||||
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
|
||||||
|
|
||||||
# Uncomment this to turn on verbose mode.
|
|
||||||
#export DH_VERBOSE=1
|
|
||||||
|
|
||||||
configure: configure-stamp
|
|
||||||
configure-stamp:
|
|
||||||
dh_testdir
|
|
||||||
# Add here commands to configure the package.
|
|
||||||
|
|
||||||
touch configure-stamp
|
|
||||||
|
|
||||||
|
|
||||||
build: build-stamp
|
|
||||||
|
|
||||||
build-stamp: configure-stamp
|
|
||||||
dh_testdir
|
|
||||||
|
|
||||||
# Add here commands to compile the package.
|
|
||||||
|
|
||||||
touch $@
|
|
||||||
|
|
||||||
clean:
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
rm -f build-stamp configure-stamp
|
|
||||||
|
|
||||||
# Add here commands to clean up after the build process.
|
|
||||||
|
|
||||||
dh_clean
|
|
||||||
|
|
||||||
install: build
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_prep
|
|
||||||
dh_installdirs
|
|
||||||
|
|
||||||
chmod +x src/run.py
|
|
||||||
cp -R src/ $(CURDIR)/debian/dupeguru-pe/usr/share/dupeguru_pe
|
|
||||||
cp $(CURDIR)/debian/dupeguru_pe.desktop $(CURDIR)/debian/dupeguru-pe/usr/share/applications
|
|
||||||
mkdir $(CURDIR)/debian/dupeguru-pe/usr/bin
|
|
||||||
ln -s /usr/share/dupeguru_pe/run.py $(CURDIR)/debian/dupeguru-pe/usr/bin/dupeguru_pe
|
|
||||||
|
|
||||||
|
|
||||||
# Build architecture-independent files here.
|
|
||||||
binary-indep: install
|
|
||||||
# We have nothing to do by default.
|
|
||||||
|
|
||||||
# Build architecture-dependent files here.
|
|
||||||
binary-arch: install
|
|
||||||
dh_testdir
|
|
||||||
dh_testroot
|
|
||||||
dh_installchangelogs
|
|
||||||
dh_installdocs
|
|
||||||
dh_installexamples
|
|
||||||
dh_install
|
|
||||||
dh_installmenu
|
|
||||||
# dh_installdebconf
|
|
||||||
# dh_installlogrotate
|
|
||||||
# dh_installemacsen
|
|
||||||
# dh_installpam
|
|
||||||
# dh_installmime
|
|
||||||
# dh_python
|
|
||||||
# dh_installinit
|
|
||||||
# dh_installcron
|
|
||||||
# dh_installinfo
|
|
||||||
dh_installman
|
|
||||||
dh_link
|
|
||||||
dh_strip
|
|
||||||
dh_compress
|
|
||||||
dh_fixperms
|
|
||||||
# dh_perl
|
|
||||||
# dh_makeshlibs
|
|
||||||
dh_installdeb
|
|
||||||
dh_shlibdeps
|
|
||||||
dh_gencontrol
|
|
||||||
dh_md5sums
|
|
||||||
dh_builddeb
|
|
||||||
|
|
||||||
binary: binary-indep binary-arch
|
|
||||||
.PHONY: build clean binary-indep binary-arch binary install configure
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
7
|
|
||||||
@@ -1,11 +0,0 @@
|
|||||||
Copyright 2012 Hardcoded Software Inc. (http://www.hardcoded.net)
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
|
|
||||||
|
|
||||||
* Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
|
|
||||||
* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
|
|
||||||
* Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
|
|
||||||
* If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
|
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
usr/local/bin
|
|
||||||
usr/local/share
|
|
||||||
usr/share/applications
|
|
||||||
@@ -1,3 +1,25 @@
|
|||||||
|
=== 6.4.2 (2012-07-07)
|
||||||
|
|
||||||
|
* Fixed iTunes integration which was broken since iTunes 10.6.3. [Mac]
|
||||||
|
* Fixed a crash caused by invalid XML in iTunes libraries. [Mac]
|
||||||
|
* Added Brazilian localization by Victor Figueiredo.
|
||||||
|
|
||||||
|
=== 6.4.1 (2012-06-04)
|
||||||
|
|
||||||
|
* Fixed bug introduced in 6.4.0 preventing deletions from working. [Mac]
|
||||||
|
|
||||||
|
=== 6.4.0 (2012-06-02)
|
||||||
|
|
||||||
|
* Added a Deletion Options panel.
|
||||||
|
* Greatly improved memory usage for big scans.
|
||||||
|
* Added a keybinding for the filter field. (#182) [Mac]
|
||||||
|
* Upgraded minimum requirements for Ubuntu to 12.04.
|
||||||
|
|
||||||
|
=== 6.3.1 (2012-04-15)
|
||||||
|
|
||||||
|
* Fixed crash on iTunes library parsing. [Mac]
|
||||||
|
* Fixed localization issues. [Windows, Linux]
|
||||||
|
|
||||||
=== 6.3.0 (2012-03-27)
|
=== 6.3.0 (2012-03-27)
|
||||||
|
|
||||||
* Improved iTunes support. [Mac]
|
* Improved iTunes support. [Mac]
|
||||||
|
|||||||
@@ -1,3 +1,12 @@
|
|||||||
|
=== 2.6.0 (2012-06-06)
|
||||||
|
|
||||||
|
* Added Aperture support. (#42)
|
||||||
|
* Added a Deletion Options panel.
|
||||||
|
* Greatly improved memory usage for big scans.
|
||||||
|
* Added a keybinding for the filter field. (#182) [Mac]
|
||||||
|
* Fixed occasional hard crashes during scans. [Linux]
|
||||||
|
* Upgraded minimum requirements for Ubuntu to 12.04.
|
||||||
|
|
||||||
=== 2.5.0 (2012-03-31)
|
=== 2.5.0 (2012-03-31)
|
||||||
|
|
||||||
* Improved results window UI. [Windows, Linux]
|
* Improved results window UI. [Windows, Linux]
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
=== 3.5.0 (2012-06-01)
|
||||||
|
|
||||||
|
* Added a Deletion Options panel.
|
||||||
|
* Greatly improved memory usage for big scans.
|
||||||
|
* Added a keybinding for the filter field. (#182) [Mac]
|
||||||
|
* Upgraded minimum requirements for Ubuntu to 12.04.
|
||||||
|
|
||||||
=== 3.4.1 (2012-04-14)
|
=== 3.4.1 (2012-04-14)
|
||||||
|
|
||||||
* Fixed the "Folders" scan type. [Mac]
|
* Fixed the "Folders" scan type. [Mac]
|
||||||
|
|||||||
@@ -173,51 +173,4 @@ html_show_sourcelink = False
|
|||||||
# Output file base name for HTML help builder.
|
# Output file base name for HTML help builder.
|
||||||
htmlhelp_basename = 'dupeGurudoc'
|
htmlhelp_basename = 'dupeGurudoc'
|
||||||
|
|
||||||
|
todo_include_todos = True
|
||||||
# -- Options for LaTeX output --------------------------------------------------
|
|
||||||
|
|
||||||
# The paper size ('letter' or 'a4').
|
|
||||||
#latex_paper_size = 'letter'
|
|
||||||
|
|
||||||
# The font size ('10pt', '11pt' or '12pt').
|
|
||||||
#latex_font_size = '10pt'
|
|
||||||
|
|
||||||
# Grouping the document tree into LaTeX files. List of tuples
|
|
||||||
# (source start file, target name, title, author, documentclass [howto/manual]).
|
|
||||||
latex_documents = [
|
|
||||||
('index', 'dupeGuru.tex', u'dupeGuru Documentation',
|
|
||||||
u'Hardcoded Software', 'manual'),
|
|
||||||
]
|
|
||||||
|
|
||||||
# The name of an image file (relative to this directory) to place at the top of
|
|
||||||
# the title page.
|
|
||||||
#latex_logo = None
|
|
||||||
|
|
||||||
# For "manual" documents, if this is true, then toplevel headings are parts,
|
|
||||||
# not chapters.
|
|
||||||
#latex_use_parts = False
|
|
||||||
|
|
||||||
# If true, show page references after internal links.
|
|
||||||
#latex_show_pagerefs = False
|
|
||||||
|
|
||||||
# If true, show URL addresses after external links.
|
|
||||||
#latex_show_urls = False
|
|
||||||
|
|
||||||
# Additional stuff for the LaTeX preamble.
|
|
||||||
#latex_preamble = ''
|
|
||||||
|
|
||||||
# Documents to append as an appendix to all manuals.
|
|
||||||
#latex_appendices = []
|
|
||||||
|
|
||||||
# If false, no module index is generated.
|
|
||||||
#latex_domain_indices = True
|
|
||||||
|
|
||||||
|
|
||||||
# -- Options for manual page output --------------------------------------------
|
|
||||||
|
|
||||||
# One entry per manual page. List of tuples
|
|
||||||
# (source start file, name, description, authors, manual section).
|
|
||||||
man_pages = [
|
|
||||||
('index', 'dupeguru', u'dupeGuru Documentation',
|
|
||||||
[u'Hardcoded Software'], 1)
|
|
||||||
]
|
|
||||||
|
|||||||
@@ -20,6 +20,10 @@ Unten befindet sich die Liste aller Menschen, die direkt oder indirekt zu dupeGu
|
|||||||
|
|
||||||
| **Yuri Petrashko, Ukrainian localization**
|
| **Yuri Petrashko, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Nickolas Pohilets, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Victor Figueiredo, Brazilian localization**
|
||||||
|
|
||||||
| **Python, Programming language** (`Website <http://www.python.org>`__)
|
| **Python, Programming language** (`Website <http://www.python.org>`__)
|
||||||
| The bestest of the bests
|
| The bestest of the bests
|
||||||
|
|
||||||
|
|||||||
@@ -112,3 +112,4 @@ Häufig gestellte Fragen
|
|||||||
|
|
||||||
Wenn dies alles fehlschlägt, kontaktieren Sie `HS support <http://www.hardcoded.net/support>`_, wir werden das Problem lösen.
|
Wenn dies alles fehlschlägt, kontaktieren Sie `HS support <http://www.hardcoded.net/support>`_, wir werden das Problem lösen.
|
||||||
|
|
||||||
|
.. todo:: This FAQ qestion is outdated, see english version.
|
||||||
|
|||||||
@@ -19,3 +19,5 @@ Jeder Ordner kann in einem von 3 Zuständen sein:
|
|||||||
Der Standardzustand eines Ordners ist natürlich **Normal**. Sie können den **Referenz** Zustand für Ordner nutzen, in denen auf keinen Fall eine Datei gelöscht werden soll.
|
Der Standardzustand eines Ordners ist natürlich **Normal**. Sie können den **Referenz** Zustand für Ordner nutzen, in denen auf keinen Fall eine Datei gelöscht werden soll.
|
||||||
|
|
||||||
Wenn sie einen Zustand für ein Verzeichnis setzen, erben alle Unterordner automatisch diesen Zustand, es sei denn Sie ändern den Zustand der Unterordner explizit.
|
Wenn sie einen Zustand für ein Verzeichnis setzen, erben alle Unterordner automatisch diesen Zustand, es sei denn Sie ändern den Zustand der Unterordner explizit.
|
||||||
|
|
||||||
|
.. todo:: Add iPhoto/Aperture/iTunes libraries notes
|
||||||
|
|||||||
@@ -94,3 +94,4 @@ Aktionen Menü
|
|||||||
* **Ausgewählte umbenennen:** Fragt nach einem neuen Namen und benennt die ausgewählte Datei um.
|
* **Ausgewählte umbenennen:** Fragt nach einem neuen Namen und benennt die ausgewählte Datei um.
|
||||||
|
|
||||||
.. todo:: Add Move and iPhoto/iTunes warning
|
.. todo:: Add Move and iPhoto/iTunes warning
|
||||||
|
.. todo:: Add "Deletion Options" section.
|
||||||
@@ -22,12 +22,13 @@ Below is the list of people who contributed, directly or indirectly to dupeGuru.
|
|||||||
|
|
||||||
| **Yuri Petrashko, Ukrainian localization**
|
| **Yuri Petrashko, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Nickolas Pohilets, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Victor Figueiredo, Brazilian localization**
|
||||||
|
|
||||||
| **Python, Programming language** (`Website <http://www.python.org>`__)
|
| **Python, Programming language** (`Website <http://www.python.org>`__)
|
||||||
| The bestest of the bests
|
| The bestest of the bests
|
||||||
|
|
||||||
| **PyObjC, Python-to-Cocoa bridge** (`Website <http://pyobjc.sourceforge.net>`__)
|
|
||||||
| Used for the Mac OS X version
|
|
||||||
|
|
||||||
| **PyQt, Python-to-Qt bridge** (`Website <http://www.riverbankcomputing.co.uk>`__)
|
| **PyQt, Python-to-Qt bridge** (`Website <http://www.riverbankcomputing.co.uk>`__)
|
||||||
| Used for the Windows version
|
| Used for the Windows version
|
||||||
|
|
||||||
|
|||||||
@@ -103,13 +103,21 @@ Frequently Asked Questions
|
|||||||
|
|
||||||
.. topic:: I tried to send my duplicates to Trash, but dupeGuru is telling me it can't do it. Why? What can I do?
|
.. topic:: I tried to send my duplicates to Trash, but dupeGuru is telling me it can't do it. Why? What can I do?
|
||||||
|
|
||||||
Most of the time, the reason why dupeGuru can't send files to Trash is because of file permissions. You need *write* permissions on files you want to send to Trash. If you're not familiar with the command line, you can use utilities such as `BatChmod <http://macchampion.com/arbysoft/BatchMod>`_ to fix your permissions.
|
Most of the time, the reason why dupeGuru can't send files to Trash is because of file
|
||||||
|
permissions. You need *write* permissions on files you want to send to Trash. If you're not
|
||||||
|
familiar with the command line, you can use utilities such as `BatChmod`_ to fix your
|
||||||
|
permissions.
|
||||||
|
|
||||||
If dupeGuru still gives you troubles after fixing your permissions, there have been some cases where using "Move Marked to..." as a workaround did the trick. So instead of sending your files to Trash, you send them to a temporary folder with the "Move Marked to..." action, and then you delete that temporary folder manually.
|
If dupeGuru still gives you troubles after fixing your permissions, try enabling the "Directly
|
||||||
|
delete files" option that is offered to you when you activate Send to Trash. This will not send
|
||||||
|
files to the Trash, but delete them immediately. In some cases, for example on network storage
|
||||||
|
(NAS), this has been known to work when normal deletion didn't.
|
||||||
|
|
||||||
.. only:: edition_pe
|
.. only:: edition_pe
|
||||||
|
|
||||||
If you're trying to delete *iPhoto* pictures, then the reason for the failure is different. The deletion fails because dupeGuru can't communicate with iPhoto. Be aware that for the deletion to work correctly, you're not supposed to play around iPhoto while dupeGuru is working. Also, sometimes, the Applescript system doesn't seem to know where to find iPhoto to launch it. It might help in these cases to launch iPhoto *before* you send your duplicates to Trash.
|
If you're trying to delete *iPhoto* pictures, then the reason for the failure is different. The deletion fails because dupeGuru can't communicate with iPhoto. Be aware that for the deletion to work correctly, you're not supposed to play around iPhoto while dupeGuru is working. Also, sometimes, the Applescript system doesn't seem to know where to find iPhoto to launch it. It might help in these cases to launch iPhoto *before* you send your duplicates to Trash.
|
||||||
|
|
||||||
If all of this fail, `contact HS support <http://www.hardcoded.net/support>`_, we'll figure it out.
|
If all of this fail, `contact HS support`_, we'll figure it out.
|
||||||
|
|
||||||
|
.. _BatChmod: http://www.lagentesoft.com/batchmod/index.html
|
||||||
|
.. _contact HS support: http://www.hardcoded.net/support
|
||||||
|
|||||||
@@ -21,3 +21,33 @@ Every folder can be in one of these 3 states:
|
|||||||
The default state of a folder is, of course, **Normal**. You can use **Reference** state for a folder if you want to be sure that you won't delete any file from it.
|
The default state of a folder is, of course, **Normal**. You can use **Reference** state for a folder if you want to be sure that you won't delete any file from it.
|
||||||
|
|
||||||
When you set the state of a directory, all subfolders of this folder automatically inherit this state unless you explicitly set a subfolder's state.
|
When you set the state of a directory, all subfolders of this folder automatically inherit this state unless you explicitly set a subfolder's state.
|
||||||
|
|
||||||
|
.. only:: edition_pe
|
||||||
|
|
||||||
|
iPhoto and Aperture libraries
|
||||||
|
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
dupeGuru PE supports iPhoto and Aperture, which means that it knows how to read these libraries
|
||||||
|
and how to communicate with iPhoto and Aperture to remove photos from them. To use this feature,
|
||||||
|
use the special "Add iPhoto Library" and "Add Aperture Library" buttons in the menu that pops
|
||||||
|
up when you click the "+" button. This will then add a special folder for those libraries.
|
||||||
|
|
||||||
|
When duplicates are deleted from an iPhoto library, it's sent to iPhoto's trash.
|
||||||
|
|
||||||
|
When duplicates are deleted from an Aperture library, it unfortunately can't send it directly
|
||||||
|
to trash, but it creates a special project called "dupeGuru Trash" in Aperture and send all
|
||||||
|
photos in there. You can then send this project to the trash manually.
|
||||||
|
|
||||||
|
.. only:: edition_me
|
||||||
|
|
||||||
|
iTunes library
|
||||||
|
^^^^^^^^^^^^^^
|
||||||
|
|
||||||
|
dupeGuru ME supports iTunes, which means that it knows how to read its libraries and how to
|
||||||
|
communicate with iTunes to remove songs from it. To use this feature, use the special
|
||||||
|
"Add iTunes Library" button in the menu that pops up when you click the "+" button. This will
|
||||||
|
then add a special folder for those libraries.
|
||||||
|
|
||||||
|
When duplicates are deleted from an iTunes library, it's sent to the system trash, like a
|
||||||
|
normal file, but it's also removed from iTunes, thus avoiding ending up with missing entries
|
||||||
|
(entries with the "!" logo next to them).
|
||||||
|
|||||||
@@ -78,21 +78,54 @@ You might notice that not all duplicates in the filtered results will match your
|
|||||||
Action Menu
|
Action Menu
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
* **Clear Ignore List:** Remove all ignored matches you added. You have to start a new scan for the newly cleared ignore list to be effective.
|
* **Clear Ignore List:** Remove all ignored matches you added. You have to start a new scan for the
|
||||||
* **Export Results to XHTML:** Take the current results, and create an XHTML file out of it. The columns that are visible when you click on this button will be the columns present in the XHTML file. The file will automatically be opened in your default browser.
|
newly cleared ignore list to be effective.
|
||||||
* **Send Marked to Trash:** Send all marked duplicates to trash, obviously.
|
* **Export Results to XHTML:** Take the current results, and create an XHTML file out of it. The
|
||||||
* **Delete Marked and Replace with Hardlinks:** Sends all marked duplicates to trash, but after having done that, the deleted files are replaced by a `hard link <http://en.wikipedia.org/wiki/Hard_link>`_ to the reference file. (Only for OS X and Linux)
|
columns that are visible when you click on this button will be the columns present in the XHTML
|
||||||
* **Move Marked to...:** Prompt you for a destination, and then move all marked files to that destination. Source file's path might be re-created in destination, depending on the "Copy and Move" preference.
|
file. The file will automatically be opened in your default browser.
|
||||||
* **Copy Marked to...:** Prompt you for a destination, and then copy all marked files to that destination. Source file's path might be re-created in destination, depending on the "Copy and Move" preference.
|
* **Send Marked to Trash:** Send all marked duplicates to trash, obviously. Before proceeding,
|
||||||
* **Remove Marked from Results:** Remove all marked duplicates from results. The actual files will not be touched and will stay where they are.
|
you'll be presented deletion options (see below).
|
||||||
* **Remove Selected from Results:** Remove all selected duplicates from results. Note that all selected reference files will be ignored, only duplicates can be removed with this action.
|
* **Move Marked to...:** Prompt you for a destination, and then move all marked files to that
|
||||||
* **Make Selected Reference:** Promote all selected duplicates to reference. If a duplicate is a part of a group having a reference file coming from a reference folder (in blue color), no action will be taken for this duplicate. If more than one duplicate among the same group are selected, only the first of each group will be promoted.
|
destination. Source file's path might be re-created in destination, depending on the
|
||||||
* **Add Selected to Ignore List:** This first removes all selected duplicates from results, and then add the match of that duplicate and the current reference in the ignore list. This match will not come up again in further scan. The duplicate itself might come back, but it will be matched with another reference file. You can clear the ignore list with the Clear Ignore List command.
|
"Copy and Move" preference.
|
||||||
* **Open Selected with Default Application:** Open the file with the application associated with selected file's type.
|
* **Copy Marked to...:** Prompt you for a destination, and then copy all marked files to that
|
||||||
|
destination. Source file's path might be re-created in destination, depending on the
|
||||||
|
"Copy and Move" preference.
|
||||||
|
* **Remove Marked from Results:** Remove all marked duplicates from results. The actual files will
|
||||||
|
not be touched and will stay where they are.
|
||||||
|
* **Remove Selected from Results:** Remove all selected duplicates from results. Note that all
|
||||||
|
selected reference files will be ignored, only duplicates can be removed with this action.
|
||||||
|
* **Make Selected Reference:** Promote all selected duplicates to reference. If a duplicate is a
|
||||||
|
part of a group having a reference file coming from a reference folder (in blue color), no action
|
||||||
|
will be taken for this duplicate. If more than one duplicate among the same group are selected,
|
||||||
|
only the first of each group will be promoted.
|
||||||
|
* **Add Selected to Ignore List:** This first removes all selected duplicates from results, and
|
||||||
|
then add the match of that duplicate and the current reference in the ignore list. This match
|
||||||
|
will not come up again in further scan. The duplicate itself might come back, but it will be
|
||||||
|
matched with another reference file. You can clear the ignore list with the Clear Ignore List
|
||||||
|
command.
|
||||||
|
* **Open Selected with Default Application:** Open the file with the application associated with
|
||||||
|
selected file's type.
|
||||||
* **Reveal Selected in Finder:** Open the folder containing selected file.
|
* **Reveal Selected in Finder:** Open the folder containing selected file.
|
||||||
* **Invoke Custom Command:** Invokes the external application you've set up in your preferences using the current selection as arguments in the invocation.
|
* **Invoke Custom Command:** Invokes the external application you've set up in your preferences
|
||||||
|
using the current selection as arguments in the invocation.
|
||||||
* **Rename Selected:** Prompts you for a new name, and then rename the selected file.
|
* **Rename Selected:** Prompts you for a new name, and then rename the selected file.
|
||||||
|
|
||||||
**Warning about moving files in iPhoto/iTunes:** When using the "Move Marked" action on duplicates
|
**Warning about moving files in iPhoto/iTunes:** When using the "Move Marked" action on duplicates
|
||||||
that come from iPhoto or iTunes, files are copied, not moved. dupeGuru cannot use the Move action
|
that come from iPhoto or iTunes, files are copied, not moved. dupeGuru cannot use the Move action
|
||||||
on those files.
|
on those files.
|
||||||
|
|
||||||
|
Deletion Options
|
||||||
|
----------------
|
||||||
|
|
||||||
|
These options affect how duplicate deletion takes place. Most of the time, you don't need to enable
|
||||||
|
any of them.
|
||||||
|
|
||||||
|
* **Hardlink deleted files:** The deleted files are replaced by a `hard link`_ to the reference
|
||||||
|
file. (Only for OS X and Linux)
|
||||||
|
* **Directly delete files:** Instead of sending files to trash, directly delete them. This is used
|
||||||
|
for troubleshooting and you normally don't need to enable this unless dupeGuru has problems
|
||||||
|
deleting files normally, something that can happens when you try to delete files on network
|
||||||
|
storage (NAS).
|
||||||
|
|
||||||
|
.. _hard link: http://en.wikipedia.org/wiki/Hard_link
|
||||||
@@ -21,6 +21,10 @@ Voici la liste des contributeurs de dupeGuru. Merci!
|
|||||||
|
|
||||||
| **Yuri Petrashko, localisation ukrainienne**
|
| **Yuri Petrashko, localisation ukrainienne**
|
||||||
|
|
||||||
|
| **Nickolas Pohilets, localisation ukrainienne**
|
||||||
|
|
||||||
|
| **Victor Figueiredo, localisation brésilienne**
|
||||||
|
|
||||||
| **Python, Langage de programmation** (`Website <http://www.python.org>`__)
|
| **Python, Langage de programmation** (`Website <http://www.python.org>`__)
|
||||||
| Le meilleur des meilleurs
|
| Le meilleur des meilleurs
|
||||||
|
|
||||||
|
|||||||
@@ -113,3 +113,5 @@ Foire aux questions
|
|||||||
Si vous essayez d'effacer des photos dans iPhoto, alors la raison du problème est différente. L'opération rate parce que dupeGuru ne peut pas communiquer avec iPhoto. Il faut garder à l'esprit qu'il ne faut pas toucher à iPhoto pendant l'opération parce que ça peut déranger la communication entre dupeGuru et iPhoto. Aussi, quelque fois, dupeGuru ne peut pas trouver l'application iPhoto. Il faut mieux alors démarrer iPhoto avant l'opération.
|
Si vous essayez d'effacer des photos dans iPhoto, alors la raison du problème est différente. L'opération rate parce que dupeGuru ne peut pas communiquer avec iPhoto. Il faut garder à l'esprit qu'il ne faut pas toucher à iPhoto pendant l'opération parce que ça peut déranger la communication entre dupeGuru et iPhoto. Aussi, quelque fois, dupeGuru ne peut pas trouver l'application iPhoto. Il faut mieux alors démarrer iPhoto avant l'opération.
|
||||||
|
|
||||||
Dans le pire des cas, `contactez le support HS <http://www.hardcoded.net/support>`_, on trouvera bien.
|
Dans le pire des cas, `contactez le support HS <http://www.hardcoded.net/support>`_, on trouvera bien.
|
||||||
|
|
||||||
|
.. todo:: This FAQ qestion is outdated, see english version.
|
||||||
@@ -21,3 +21,5 @@ Tout dossier ajouté à la liste est d'un type parmis ces trois:
|
|||||||
Le type par défaut pour un dossier est, bien entendu, **Normal**. Vous pouvez utiliser le type **Référence** pour les dossiers desquels vous ne voulez pas effacer de fichiers.
|
Le type par défaut pour un dossier est, bien entendu, **Normal**. Vous pouvez utiliser le type **Référence** pour les dossiers desquels vous ne voulez pas effacer de fichiers.
|
||||||
|
|
||||||
Le type d'un dossier s'applique à ses sous-dossiers, excepté si un sous-dossier a un autre type explicitement défini.
|
Le type d'un dossier s'applique à ses sous-dossiers, excepté si un sous-dossier a un autre type explicitement défini.
|
||||||
|
|
||||||
|
.. todo:: Add iPhoto/Aperture/iTunes libraries notes
|
||||||
|
|||||||
@@ -94,3 +94,4 @@ Voici la liste des actions qu'il est possible d'appliquer aux résultats.
|
|||||||
* **Renommer sélectionné:** Renomme le fichier sélectionné après vous avoir demandé d'entrer un nouveau nom.
|
* **Renommer sélectionné:** Renomme le fichier sélectionné après vous avoir demandé d'entrer un nouveau nom.
|
||||||
|
|
||||||
.. todo:: Add Move and iPhoto/iTunes warning
|
.. todo:: Add Move and iPhoto/iTunes warning
|
||||||
|
.. todo:: Add "Deletion Options" section.
|
||||||
@@ -22,6 +22,10 @@
|
|||||||
|
|
||||||
| **Yuri Petrashko, Ukrainian localization**
|
| **Yuri Petrashko, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Nickolas Pohilets, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Victor Figueiredo, Brazilian localization**
|
||||||
|
|
||||||
| **Python, Ծրագրավորման լեզուն** (`Վեբ կայքը <http://www.python.org>`__)
|
| **Python, Ծրագրավորման լեզուն** (`Վեբ կայքը <http://www.python.org>`__)
|
||||||
| Լավագույներից լավագույնը
|
| Լավագույներից լավագույնը
|
||||||
|
|
||||||
|
|||||||
@@ -111,3 +111,5 @@
|
|||||||
Եթե Դուք փորձում եք ջնջել *iPhoto* նկարները, ապա ձախողման պատճառը տարբեր է: Ջնջելը ձախողվել է, որովհետև dupeGuru-ը չի կարողանում համագործակցել iPhoto: Լինել տեղեկացված, որ ջնջումը նորմալ է աշխատում, Դուք չեք նախատեսում խաղարկել ձայն iPhoto-ին, քանսզի dupeGuru-ն աշխատում է: Նաև, երբեմն, Applescript համակարգը չի կողմնորոշվում որտեղ փնտրել iPhoto՝ բացելու համար: Հավանական է, այս դեպքերում պետք է բացել iPhoto-ն *մինչև* Դուք ուղարկեք Ձեր կրկնօրինակները Աղբարկղ:
|
Եթե Դուք փորձում եք ջնջել *iPhoto* նկարները, ապա ձախողման պատճառը տարբեր է: Ջնջելը ձախողվել է, որովհետև dupeGuru-ը չի կարողանում համագործակցել iPhoto: Լինել տեղեկացված, որ ջնջումը նորմալ է աշխատում, Դուք չեք նախատեսում խաղարկել ձայն iPhoto-ին, քանսզի dupeGuru-ն աշխատում է: Նաև, երբեմն, Applescript համակարգը չի կողմնորոշվում որտեղ փնտրել iPhoto՝ բացելու համար: Հավանական է, այս դեպքերում պետք է բացել iPhoto-ն *մինչև* Դուք ուղարկեք Ձեր կրկնօրինակները Աղբարկղ:
|
||||||
|
|
||||||
Եթե այս ամենը ձախողվի, `կապնվեք HS աջակցության թիմի հետ <http://www.hardcoded.net/support>`_, մենք կփորձեք օգնել Ձեզ:
|
Եթե այս ամենը ձախողվի, `կապնվեք HS աջակցության թիմի հետ <http://www.hardcoded.net/support>`_, մենք կփորձեք օգնել Ձեզ:
|
||||||
|
|
||||||
|
.. todo:: This FAQ qestion is outdated, see english version.
|
||||||
@@ -21,3 +21,5 @@
|
|||||||
Թղթապանակի հիմնական վիճակը, իհարկե՛ **Նորմալ է**: Կարող եք օգտագործել **Հղված** վիճակը թղթապանակի համար, եթե ցանկանում եք համոզված լինել, որ ոչ մի ֆայլ չի ջնջվի:
|
Թղթապանակի հիմնական վիճակը, իհարկե՛ **Նորմալ է**: Կարող եք օգտագործել **Հղված** վիճակը թղթապանակի համար, եթե ցանկանում եք համոզված լինել, որ ոչ մի ֆայլ չի ջնջվի:
|
||||||
|
|
||||||
Եթե նշել եք թղթապանակի վիճակը, բոլոր ենթաթղթապանակները միանգամից կժառանգեն այս վիճակը, եթե վիճակը պարզորոշ տրված է թղթապանակի կարգում:
|
Եթե նշել եք թղթապանակի վիճակը, բոլոր ենթաթղթապանակները միանգամից կժառանգեն այս վիճակը, եթե վիճակը պարզորոշ տրված է թղթապանակի կարգում:
|
||||||
|
|
||||||
|
.. todo:: Add iPhoto/Aperture/iTunes libraries notes
|
||||||
|
|||||||
@@ -94,3 +94,4 @@ dupeGuru-ն աջակցում է հետստուգման ֆիլտրում։ Սրա
|
|||||||
* **Անվանափոխել ընտրվածը.** Ձեզ հարցում կկատարվի նոր անվան համար, ապա ընտրված ֆայլը կանվանափոխվի։
|
* **Անվանափոխել ընտրվածը.** Ձեզ հարցում կկատարվի նոր անվան համար, ապա ընտրված ֆայլը կանվանափոխվի։
|
||||||
|
|
||||||
.. todo:: Add Move and iPhoto/iTunes warning
|
.. todo:: Add Move and iPhoto/iTunes warning
|
||||||
|
.. todo:: Add "Deletion Options" section.
|
||||||
@@ -22,6 +22,10 @@
|
|||||||
|
|
||||||
| **Yuri Petrashko, Ukrainian localization**
|
| **Yuri Petrashko, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Nickolas Pohilets, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Victor Figueiredo, Brazilian localization**
|
||||||
|
|
||||||
| **Python, Язык программирования** (`Веб сайт <http://www.python.org>`__)
|
| **Python, Язык программирования** (`Веб сайт <http://www.python.org>`__)
|
||||||
| Самая лучшая
|
| Самая лучшая
|
||||||
|
|
||||||
|
|||||||
@@ -113,3 +113,4 @@
|
|||||||
|
|
||||||
Если все это не так, `контакт с поддержки HS <http://www.hardcoded.net/support>`_, мы поможем Вас.
|
Если все это не так, `контакт с поддержки HS <http://www.hardcoded.net/support>`_, мы поможем Вас.
|
||||||
|
|
||||||
|
.. todo:: This FAQ qestion is outdated, see english version.
|
||||||
|
|||||||
@@ -21,3 +21,5 @@
|
|||||||
Состояние по умолчанию к папке, конечно, **Нормальный**. Вы можете использовать **Ссылка** состояние для папки, если вы хотите быть уверены, что вы не будете удалять любые файлы из него.
|
Состояние по умолчанию к папке, конечно, **Нормальный**. Вы можете использовать **Ссылка** состояние для папки, если вы хотите быть уверены, что вы не будете удалять любые файлы из него.
|
||||||
|
|
||||||
Когда вы устанавливаете состояние каталог, все подпапки этой папки автоматически наследует это состояние, если явно не включенное состояние подпапку в.
|
Когда вы устанавливаете состояние каталог, все подпапки этой папки автоматически наследует это состояние, если явно не включенное состояние подпапку в.
|
||||||
|
|
||||||
|
.. todo:: Add iPhoto/Aperture/iTunes libraries notes
|
||||||
|
|||||||
@@ -94,3 +94,4 @@ dupeGuru поддерживает после сканирования, филь
|
|||||||
* **Переименования выбрано:** Запрашивает новое имя, а затем переименовать выбранный файл.
|
* **Переименования выбрано:** Запрашивает новое имя, а затем переименовать выбранный файл.
|
||||||
|
|
||||||
.. todo:: Add Move and iPhoto/iTunes warning
|
.. todo:: Add Move and iPhoto/iTunes warning
|
||||||
|
.. todo:: Add "Deletion Options" section.
|
||||||
@@ -22,6 +22,10 @@
|
|||||||
|
|
||||||
| **Yuri Petrashko, Ukrainian localization**
|
| **Yuri Petrashko, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Nickolas Pohilets, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Victor Figueiredo, Brazilian localization**
|
||||||
|
|
||||||
| **Python, Мова програмування** (`Веб-сайт <http://www.python.org>`__)
|
| **Python, Мова програмування** (`Веб-сайт <http://www.python.org>`__)
|
||||||
| Кращі рекорди
|
| Кращі рекорди
|
||||||
|
|
||||||
|
|||||||
@@ -113,3 +113,5 @@
|
|||||||
|
|
||||||
Якщо все це не так, `контакт УГ підтримки <http://www.hardcoded.net/support>`_, ми зрозуміти це.
|
Якщо все це не так, `контакт УГ підтримки <http://www.hardcoded.net/support>`_, ми зрозуміти це.
|
||||||
|
|
||||||
|
.. todo:: This FAQ qestion is outdated, see english version.
|
||||||
|
|
||||||
|
|||||||
@@ -19,3 +19,5 @@
|
|||||||
Стан за замовчуванням до папки, звичайно, **Нормальний**. Ви можете використовувати **Посилання** стан для папки, якщо ви хочете бути впевнені, що ви не будете видаляти будь-які файли з нього.
|
Стан за замовчуванням до папки, звичайно, **Нормальний**. Ви можете використовувати **Посилання** стан для папки, якщо ви хочете бути впевнені, що ви не будете видаляти будь-які файли з нього.
|
||||||
|
|
||||||
Коли ви встановлюєте стан каталог, все підпапки цієї папки автоматично успадковує цей стан, якщо явно не включений стан підпапку в.
|
Коли ви встановлюєте стан каталог, все підпапки цієї папки автоматично успадковує цей стан, якщо явно не включений стан підпапку в.
|
||||||
|
|
||||||
|
.. todo:: Add iPhoto/Aperture/iTunes libraries notes
|
||||||
|
|||||||
@@ -94,3 +94,4 @@ dupeGuru підтримує після сканування, фільтраці
|
|||||||
* **Перейменування обрано:** Запит нове ім'я, а потім перейменувати вибраний файл.
|
* **Перейменування обрано:** Запит нове ім'я, а потім перейменувати вибраний файл.
|
||||||
|
|
||||||
.. todo:: Add Move and iPhoto/iTunes warning
|
.. todo:: Add Move and iPhoto/iTunes warning
|
||||||
|
.. todo:: Add "Deletion Options" section.
|
||||||
@@ -3,79 +3,71 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Content-Type: text/plain; charset=utf-8\n"
|
"Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
|
||||||
#: core/app.py:36
|
#: core/app.py:38
|
||||||
msgid "There are no marked duplicates. Nothing has been done."
|
msgid "There are no marked duplicates. Nothing has been done."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:37
|
#: core/app.py:39
|
||||||
msgid "There are no selected duplicates. Nothing has been done."
|
msgid "There are no selected duplicates. Nothing has been done."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:94
|
#: core/app.py:96
|
||||||
msgid "will only be able to delete, move or copy 10 duplicates at once"
|
msgid "will only be able to delete, move or copy 10 duplicates at once"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:189
|
#: core/app.py:216
|
||||||
msgid "No duplicates found."
|
msgid "No duplicates found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:202
|
#: core/app.py:229
|
||||||
msgid "All marked files were copied sucessfully."
|
msgid "All marked files were copied sucessfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:203
|
#: core/app.py:230
|
||||||
msgid "All marked files were moved sucessfully."
|
msgid "All marked files were moved sucessfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:204
|
#: core/app.py:231
|
||||||
msgid "All marked files were sucessfully sent to Trash."
|
msgid "All marked files were sucessfully sent to Trash."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:231
|
#: core/app.py:258
|
||||||
msgid "You cannot delete, move or copy more than 10 duplicates at once in demo mode."
|
msgid "You cannot delete, move or copy more than 10 duplicates at once in demo mode."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:252
|
#: core/app.py:279
|
||||||
msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?"
|
msgid "All selected %d matches are going to be ignored in all subsequent scans. Continue?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:312
|
#: core/app.py:339
|
||||||
msgid "copy"
|
msgid "copy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:312
|
#: core/app.py:339
|
||||||
msgid "move"
|
msgid "move"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:313
|
#: core/app.py:340
|
||||||
msgid "Select a directory to {} marked files to"
|
msgid "Select a directory to {} marked files to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:327
|
#: core/app.py:392
|
||||||
msgid "You are about to send %d files to Trash (and hardlink them afterwards). Continue?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: core/app.py:329
|
|
||||||
msgid "You are about to send %d files to Trash. Continue?"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: core/app.py:367
|
|
||||||
msgid "You have no custom command set up. Set it up in your preferences."
|
msgid "You have no custom command set up. Set it up in your preferences."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:454 core/app.py:465
|
#: core/app.py:479 core/app.py:490
|
||||||
msgid "You are about to remove %d files from results. Continue?"
|
msgid "You are about to remove %d files from results. Continue?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:501
|
#: core/app.py:526
|
||||||
msgid "Collecting files to scan"
|
msgid "Collecting files to scan"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:512
|
#: core/app.py:537
|
||||||
msgid "The selected directories contain no scannable file."
|
msgid "The selected directories contain no scannable file."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:551
|
#: core/app.py:576
|
||||||
msgid "%s (%d discarded)"
|
msgid "%s (%d discarded)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -95,6 +87,10 @@ msgstr ""
|
|||||||
msgid "Grouped %d/%d matches"
|
msgid "Grouped %d/%d matches"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: core/gui/deletion_options.py:20
|
||||||
|
msgid "You are sending {} file(s) to the Trash."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: core/gui/ignore_list_dialog.py:24
|
#: core/gui/ignore_list_dialog.py:24
|
||||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -155,15 +151,15 @@ msgstr ""
|
|||||||
msgid "Analyzed %d/%d pictures"
|
msgid "Analyzed %d/%d pictures"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core_pe/matchblock.py:144
|
#: core_pe/matchblock.py:152
|
||||||
msgid "Performed %d/%d chunk matches"
|
msgid "Performed %d/%d chunk matches"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core_pe/matchblock.py:149
|
#: core_pe/matchblock.py:157
|
||||||
msgid "Preparing for matching"
|
msgid "Preparing for matching"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core_pe/matchblock.py:184
|
#: core_pe/matchblock.py:192
|
||||||
msgid "Verified %d/%d matches"
|
msgid "Verified %d/%d matches"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|||||||
@@ -2,25 +2,25 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
|
||||||
#: core/app.py:94
|
#: core/app.py:96
|
||||||
msgid "will only be able to delete, move or copy 10 duplicates at once"
|
msgid "will only be able to delete, move or copy 10 duplicates at once"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:231
|
#: core/app.py:258
|
||||||
msgid ""
|
msgid ""
|
||||||
"You cannot delete, move or copy more than 10 duplicates at once in demo "
|
"You cannot delete, move or copy more than 10 duplicates at once in demo "
|
||||||
"mode."
|
"mode."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:501
|
#: core/app.py:526
|
||||||
msgid "Collecting files to scan"
|
msgid "Collecting files to scan"
|
||||||
msgstr "Shromažďuji prohlížené soubory"
|
msgstr "Shromažďuji prohlížené soubory"
|
||||||
|
|
||||||
#: core/app.py:512
|
#: core/app.py:537
|
||||||
msgid "The selected directories contain no scannable file."
|
msgid "The selected directories contain no scannable file."
|
||||||
msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání."
|
msgstr "Vybrané adresáře neobsahují žádné soubory vhodné k prohledávání."
|
||||||
|
|
||||||
#: core/app.py:551
|
#: core/app.py:576
|
||||||
msgid "%s (%d discarded)"
|
msgid "%s (%d discarded)"
|
||||||
msgstr "%s (%d vyřazeno)"
|
msgstr "%s (%d vyřazeno)"
|
||||||
|
|
||||||
@@ -96,15 +96,15 @@ msgstr "Přiřazuji prioritu skupině"
|
|||||||
msgid "Analyzed %d/%d pictures"
|
msgid "Analyzed %d/%d pictures"
|
||||||
msgstr "Analyzováno %d/%d snímků"
|
msgstr "Analyzováno %d/%d snímků"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:144
|
#: core_pe/matchblock.py:152
|
||||||
msgid "Performed %d/%d chunk matches"
|
msgid "Performed %d/%d chunk matches"
|
||||||
msgstr "Provedeno %d/%d porovnání bloků"
|
msgstr "Provedeno %d/%d porovnání bloků"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:149
|
#: core_pe/matchblock.py:157
|
||||||
msgid "Preparing for matching"
|
msgid "Preparing for matching"
|
||||||
msgstr "Připravuji porovnávání"
|
msgstr "Připravuji porovnávání"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:184
|
#: core_pe/matchblock.py:192
|
||||||
msgid "Verified %d/%d matches"
|
msgid "Verified %d/%d matches"
|
||||||
msgstr "Ověřeno %d/%d shod"
|
msgstr "Ověřeno %d/%d shod"
|
||||||
|
|
||||||
@@ -112,31 +112,31 @@ msgstr "Ověřeno %d/%d shod"
|
|||||||
msgid "Read EXIF of %d/%d pictures"
|
msgid "Read EXIF of %d/%d pictures"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:36
|
#: core/app.py:38
|
||||||
msgid "There are no marked duplicates. Nothing has been done."
|
msgid "There are no marked duplicates. Nothing has been done."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:37
|
#: core/app.py:39
|
||||||
msgid "There are no selected duplicates. Nothing has been done."
|
msgid "There are no selected duplicates. Nothing has been done."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:189
|
#: core/app.py:216
|
||||||
msgid "No duplicates found."
|
msgid "No duplicates found."
|
||||||
msgstr "Nebyli nalezeny žádné duplicity."
|
msgstr "Nebyli nalezeny žádné duplicity."
|
||||||
|
|
||||||
#: core/app.py:202
|
#: core/app.py:229
|
||||||
msgid "All marked files were copied sucessfully."
|
msgid "All marked files were copied sucessfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:203
|
#: core/app.py:230
|
||||||
msgid "All marked files were moved sucessfully."
|
msgid "All marked files were moved sucessfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:204
|
#: core/app.py:231
|
||||||
msgid "All marked files were sucessfully sent to Trash."
|
msgid "All marked files were sucessfully sent to Trash."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:252
|
#: core/app.py:279
|
||||||
msgid ""
|
msgid ""
|
||||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||||
"Continue?"
|
"Continue?"
|
||||||
@@ -148,35 +148,27 @@ msgstr ""
|
|||||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||||
msgstr "Opravdu chcete odstranit všech %d položek ze seznamu výjimek?"
|
msgstr "Opravdu chcete odstranit všech %d položek ze seznamu výjimek?"
|
||||||
|
|
||||||
#: core/app.py:367
|
#: core/app.py:392
|
||||||
msgid "You have no custom command set up. Set it up in your preferences."
|
msgid "You have no custom command set up. Set it up in your preferences."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách."
|
"Nedefinoval jste žádný uživatelský příkaz. Nadefinujete ho v předvolbách."
|
||||||
|
|
||||||
#: core/app.py:454 core/app.py:465
|
#: core/app.py:479 core/app.py:490
|
||||||
msgid "You are about to remove %d files from results. Continue?"
|
msgid "You are about to remove %d files from results. Continue?"
|
||||||
msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?"
|
msgstr "Chystáte se z výsledků odstranit %d souborů. Pokračovat?"
|
||||||
|
|
||||||
#: core/app.py:312
|
#: core/app.py:339
|
||||||
msgid "copy"
|
msgid "copy"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:312
|
#: core/app.py:339
|
||||||
msgid "move"
|
msgid "move"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:313
|
#: core/app.py:340
|
||||||
msgid "Select a directory to {} marked files to"
|
msgid "Select a directory to {} marked files to"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:327
|
#: core/gui/deletion_options.py:20
|
||||||
msgid ""
|
msgid "You are sending {} file(s) to the Trash."
|
||||||
"You are about to send %d files to Trash (and hardlink them afterwards). "
|
|
||||||
"Continue?"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Chystáte se vyhodit %d souborů do koše (a následně na ně vytvořit "
|
|
||||||
"hardlinky). Pokračovat?"
|
|
||||||
|
|
||||||
#: core/app.py:329
|
|
||||||
msgid "You are about to send %d files to Trash. Continue?"
|
|
||||||
msgstr "Chystáte se vyhodit %d souborů do koše. Pokračovat?"
|
|
||||||
|
|||||||
@@ -2,55 +2,55 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:15 qt/base/app.py:39
|
#: cocoa/inter/app.py:15 qt/base/app.py:40
|
||||||
msgid "Scanning for duplicates"
|
msgid "Scanning for duplicates"
|
||||||
msgstr "Vyhledávám duplicity"
|
msgstr "Vyhledávám duplicity"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:16 qt/base/app.py:40
|
#: cocoa/inter/app.py:16 qt/base/app.py:41
|
||||||
msgid "Loading"
|
msgid "Loading"
|
||||||
msgstr "Nahrávám"
|
msgstr "Nahrávám"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:17 qt/base/app.py:41
|
#: cocoa/inter/app.py:17 qt/base/app.py:42
|
||||||
msgid "Moving"
|
msgid "Moving"
|
||||||
msgstr "Přesouvám"
|
msgstr "Přesouvám"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:18 qt/base/app.py:42
|
#: cocoa/inter/app.py:18 qt/base/app.py:43
|
||||||
msgid "Copying"
|
msgid "Copying"
|
||||||
msgstr "Kopíruji"
|
msgstr "Kopíruji"
|
||||||
|
|
||||||
#: qt/base/app.py:43
|
#: qt/base/app.py:44
|
||||||
msgid "Sending files to the recycle bin"
|
msgid "Sending files to the recycle bin"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:110
|
#: qt/base/app.py:112
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:111 qt/base/preferences_dialog.py:123
|
#: qt/base/app.py:113 qt/base/preferences_dialog.py:123
|
||||||
msgid "Preferences"
|
msgid "Preferences"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/app.py:115 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "dupeGuru Help"
|
msgid "dupeGuru Help"
|
||||||
msgstr "Nápověda dupeGuru"
|
msgstr "Nápověda dupeGuru"
|
||||||
|
|
||||||
#: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/app.py:116 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "About dupeGuru"
|
msgid "About dupeGuru"
|
||||||
msgstr "O aplikaci"
|
msgstr "O aplikaci"
|
||||||
|
|
||||||
#: qt/base/app.py:115
|
#: qt/base/app.py:117
|
||||||
msgid "Register dupeGuru"
|
msgid "Register dupeGuru"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:116
|
#: qt/base/app.py:118
|
||||||
msgid "Check for Update"
|
msgid "Check for Update"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:117
|
#: qt/base/app.py:119
|
||||||
msgid "Open Debug Log"
|
msgid "Open Debug Log"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/base/app.py:234 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||||
"Wait a few seconds, then try again."
|
"Wait a few seconds, then try again."
|
||||||
@@ -87,16 +87,16 @@ msgstr "Okno s výsledky"
|
|||||||
msgid "Add Folder..."
|
msgid "Add Folder..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
|
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:75
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Soubor"
|
msgstr "Soubor"
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
|
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:83
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
|
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:85
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr "Nápověda"
|
msgstr "Nápověda"
|
||||||
@@ -140,7 +140,7 @@ msgstr "Vyberte soubor s výsledky, který chcete nahrát"
|
|||||||
msgid "All Files (*.*)"
|
msgid "All Files (*.*)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
|
#: qt/base/directories_dialog.py:206 qt/base/result_window.py:293
|
||||||
msgid "dupeGuru Results (*.dupeguru)"
|
msgid "dupeGuru Results (*.dupeguru)"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -255,135 +255,127 @@ msgstr "Problémy!"
|
|||||||
msgid "Reveal Selected"
|
msgid "Reveal Selected"
|
||||||
msgstr "Ukázat vybrané ve správci souborů"
|
msgstr "Ukázat vybrané ve správci souborů"
|
||||||
|
|
||||||
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: qt/base/ignore_list_dialog.py:47 qt/base/problem_dialog.py:57
|
||||||
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
#: cocoa/base/en.lproj/ProblemDialog.strings:0
|
#: cocoa/base/en.lproj/ProblemDialog.strings:0
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Zavřít"
|
msgstr "Zavřít"
|
||||||
|
|
||||||
#: qt/base/result_window.py:47 qt/base/result_window.py:177
|
#: qt/base/result_window.py:44 qt/base/result_window.py:168
|
||||||
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
|
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
|
||||||
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
|
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Details"
|
msgid "Details"
|
||||||
msgstr "Detaily"
|
msgstr "Detaily"
|
||||||
|
|
||||||
#: qt/base/result_window.py:48 qt/base/result_window.py:86
|
#: qt/base/result_window.py:45 qt/base/result_window.py:79
|
||||||
#: qt/base/result_window.py:151 qt/base/result_window.py:176
|
#: qt/base/result_window.py:143 qt/base/result_window.py:167
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Akce"
|
msgstr "Akce"
|
||||||
|
|
||||||
#: qt/base/result_window.py:49 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:46 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Show Dupes Only"
|
msgid "Show Dupes Only"
|
||||||
msgstr "Zobrazit pouze duplicity"
|
msgstr "Zobrazit pouze duplicity"
|
||||||
|
|
||||||
#: qt/base/result_window.py:50 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:47 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Show Delta Values"
|
msgid "Show Delta Values"
|
||||||
msgstr "Zobrazit rozdíly"
|
msgstr "Zobrazit rozdíly"
|
||||||
|
|
||||||
#: qt/base/result_window.py:51
|
#: qt/base/result_window.py:49 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Send Marked to Recycle Bin"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: qt/base/result_window.py:52 cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
|
||||||
msgid "Delete Marked and Replace with Hardlinks"
|
|
||||||
msgstr "Označené nahradit pevnými odkazy"
|
|
||||||
|
|
||||||
#: qt/base/result_window.py:53 cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Move Marked to..."
|
msgid "Move Marked to..."
|
||||||
msgstr "Označené přesunout..."
|
msgstr "Označené přesunout..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:54 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:50 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Copy Marked to..."
|
msgid "Copy Marked to..."
|
||||||
msgstr "Označené kopírovat..."
|
msgstr "Označené kopírovat..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:55 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:51 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Remove Marked from Results"
|
msgid "Remove Marked from Results"
|
||||||
msgstr "Odstranit označené z výsledků"
|
msgstr "Odstranit označené z výsledků"
|
||||||
|
|
||||||
#: qt/base/result_window.py:56
|
#: qt/base/result_window.py:52
|
||||||
msgid "Re-Prioritize Results..."
|
msgid "Re-Prioritize Results..."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/result_window.py:57 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:53 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Remove Selected from Results"
|
msgid "Remove Selected from Results"
|
||||||
msgstr "Odstranit výběr z výsledků"
|
msgstr "Odstranit výběr z výsledků"
|
||||||
|
|
||||||
#: qt/base/result_window.py:58 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:54 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Add Selected to Ignore List"
|
msgid "Add Selected to Ignore List"
|
||||||
msgstr "Přidat výběr na seznam výjimek"
|
msgstr "Přidat výběr na seznam výjimek"
|
||||||
|
|
||||||
#: qt/base/result_window.py:59 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:55 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Make Selected Reference"
|
msgid "Make Selected Reference"
|
||||||
msgstr "Výběr jako reference"
|
msgstr "Výběr jako reference"
|
||||||
|
|
||||||
#: qt/base/result_window.py:60 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:56 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Open Selected with Default Application"
|
msgid "Open Selected with Default Application"
|
||||||
msgstr "Vybrané otevřít výchozí aplikací"
|
msgstr "Vybrané otevřít výchozí aplikací"
|
||||||
|
|
||||||
#: qt/base/result_window.py:61
|
#: qt/base/result_window.py:57
|
||||||
msgid "Open Containing Folder of Selected"
|
msgid "Open Containing Folder of Selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/result_window.py:62 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:58 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Rename Selected"
|
msgid "Rename Selected"
|
||||||
msgstr "Vybrané přejmenovat"
|
msgstr "Vybrané přejmenovat"
|
||||||
|
|
||||||
#: qt/base/result_window.py:63 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:59 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark All"
|
msgid "Mark All"
|
||||||
msgstr "Označit vše"
|
msgstr "Označit vše"
|
||||||
|
|
||||||
#: qt/base/result_window.py:64 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:60 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark None"
|
msgid "Mark None"
|
||||||
msgstr "Zrušit označení"
|
msgstr "Zrušit označení"
|
||||||
|
|
||||||
#: qt/base/result_window.py:65 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:61 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Invert Marking"
|
msgid "Invert Marking"
|
||||||
msgstr "Invertovat označení"
|
msgstr "Invertovat označení"
|
||||||
|
|
||||||
#: qt/base/result_window.py:66 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:62 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark Selected"
|
msgid "Mark Selected"
|
||||||
msgstr "Označit vybrané"
|
msgstr "Označit vybrané"
|
||||||
|
|
||||||
#: qt/base/result_window.py:67
|
#: qt/base/result_window.py:63
|
||||||
msgid "Export To HTML"
|
msgid "Export To HTML"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:64 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Save Results..."
|
msgid "Save Results..."
|
||||||
msgstr "Uložit výsledky..."
|
msgstr "Uložit výsledky..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:65 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Invoke Custom Command"
|
msgid "Invoke Custom Command"
|
||||||
msgstr "Spustit vlastní příkaz"
|
msgstr "Spustit vlastní příkaz"
|
||||||
|
|
||||||
#: qt/base/result_window.py:84
|
#: qt/base/result_window.py:77
|
||||||
msgid "Mark"
|
msgid "Mark"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:81 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Columns"
|
msgid "Columns"
|
||||||
msgstr "Sloupce"
|
msgstr "Sloupce"
|
||||||
|
|
||||||
#: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
|
#: qt/base/result_window.py:139 cocoa/se/en.lproj/Preferences.strings:0
|
||||||
#: cocoa/me/en.lproj/Preferences.strings:0
|
#: cocoa/me/en.lproj/Preferences.strings:0
|
||||||
#: cocoa/pe/en.lproj/Preferences.strings:0
|
#: cocoa/pe/en.lproj/Preferences.strings:0
|
||||||
msgid "Reset to Defaults"
|
msgid "Reset to Defaults"
|
||||||
msgstr "Výchozí nastavení"
|
msgstr "Výchozí nastavení"
|
||||||
|
|
||||||
#: qt/base/result_window.py:170
|
#: qt/base/result_window.py:161
|
||||||
msgid "{} Results"
|
msgid "{} Results"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/base/result_window.py:292 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Select a file to save your results to"
|
msgid "Select a file to save your results to"
|
||||||
msgstr "Vyberte soubor pro uložení výsledků"
|
msgstr "Vyberte soubor pro uložení výsledků"
|
||||||
|
|
||||||
@@ -496,16 +488,16 @@ msgstr "EXIF razítko"
|
|||||||
msgid "Match pictures of different dimensions"
|
msgid "Match pictures of different dimensions"
|
||||||
msgstr "Porovnávat snímky s různými rozměry"
|
msgstr "Porovnávat snímky s různými rozměry"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:20 qt/pe/result_window.py:25
|
#: qt/pe/result_window.py:19 qt/pe/result_window.py:24
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Clear Picture Cache"
|
msgid "Clear Picture Cache"
|
||||||
msgstr "Vyčistit cache snímků"
|
msgstr "Vyčistit cache snímků"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:26 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/pe/result_window.py:25 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Do you really want to remove all your cached picture analysis?"
|
msgid "Do you really want to remove all your cached picture analysis?"
|
||||||
msgstr "Opravdu chcete odstranit veškeré uložené analýzy snímků?"
|
msgstr "Opravdu chcete odstranit veškeré uložené analýzy snímků?"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:29
|
#: qt/pe/result_window.py:28
|
||||||
msgid "Picture cache cleared."
|
msgid "Picture cache cleared."
|
||||||
msgstr "Picture cache cleared."
|
msgstr "Picture cache cleared."
|
||||||
|
|
||||||
@@ -538,10 +530,6 @@ msgstr "Nahrát ze souboru..."
|
|||||||
msgid "Reset to Default"
|
msgid "Reset to Default"
|
||||||
msgstr "Výchozí nastavení"
|
msgstr "Výchozí nastavení"
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
|
||||||
msgid "Add iTunes Directory"
|
|
||||||
msgstr "Přidat složku iTunes"
|
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Remove Dead Tracks in iTunes"
|
msgid "Remove Dead Tracks in iTunes"
|
||||||
msgstr "Odstranit z iTunes mrtvé stopy"
|
msgstr "Odstranit z iTunes mrtvé stopy"
|
||||||
@@ -594,11 +582,6 @@ msgstr "Předvolby..."
|
|||||||
msgid "Folder Selection Window"
|
msgid "Folder Selection Window"
|
||||||
msgstr "Výběr složky"
|
msgstr "Výběr složky"
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
|
||||||
msgid "Send Marked to Trash"
|
|
||||||
msgstr "Vyhodit označené do koše"
|
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Reveal Selected in Finder"
|
msgid "Reveal Selected in Finder"
|
||||||
@@ -652,6 +635,8 @@ msgstr "Změnit prioritu výsledků"
|
|||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "Ok"
|
msgstr "Ok"
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:53
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
#: cocoa/base/en.lproj/PrioritizeDialog.strings:0
|
#: cocoa/base/en.lproj/PrioritizeDialog.strings:0
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Zrušit"
|
msgstr "Zrušit"
|
||||||
@@ -690,7 +675,7 @@ msgstr "Akce"
|
|||||||
msgid "Directories"
|
msgid "Directories"
|
||||||
msgstr "Adresáře"
|
msgstr "Adresáře"
|
||||||
|
|
||||||
#: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
|
#: qt/base/result_window.py:169 cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Dupes Only"
|
msgid "Dupes Only"
|
||||||
msgstr "Jen duplicity"
|
msgstr "Jen duplicity"
|
||||||
|
|
||||||
@@ -789,15 +774,15 @@ msgstr "Odstraňuji mrtvé stopy z Vaší knihovny iTunes"
|
|||||||
msgid "Scanning the iTunes Library"
|
msgid "Scanning the iTunes Library"
|
||||||
msgstr "Procházím knihovnu iTunes"
|
msgstr "Procházím knihovnu iTunes"
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:154 cocoa/inter/app_pe.py:144
|
#: cocoa/inter/app_me.py:157 cocoa/inter/app_pe.py:186
|
||||||
msgid "Sending dupes to the Trash"
|
msgid "Sending dupes to the Trash"
|
||||||
msgstr "Vyhazuji kopie do koše"
|
msgstr "Vyhazuji kopie do koše"
|
||||||
|
|
||||||
#: cocoa/inter/app_pe.py:146
|
#: cocoa/inter/app_pe.py:188
|
||||||
msgid "Talking to iPhoto. Don't touch it!"
|
msgid "Talking to iPhoto. Don't touch it!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_pe.py:201
|
#: cocoa/inter/app_pe.py:296
|
||||||
msgid "The iPhoto application couldn't be found."
|
msgid "The iPhoto application couldn't be found."
|
||||||
msgstr "Nelze najít aplikaci iPhoto."
|
msgstr "Nelze najít aplikaci iPhoto."
|
||||||
|
|
||||||
@@ -813,13 +798,13 @@ msgstr "'%@' does not exist."
|
|||||||
msgid "The name '%@' already exists."
|
msgid "The name '%@' already exists."
|
||||||
msgstr "The name '%@' already exists."
|
msgstr "The name '%@' already exists."
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:182 cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/inter/app_me.py:191 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:186 cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/inter/app_me.py:195 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "You have no dead tracks in your iTunes Library"
|
msgid "You have no dead tracks in your iTunes Library"
|
||||||
msgstr "You have no dead tracks in your iTunes Library"
|
msgstr "You have no dead tracks in your iTunes Library"
|
||||||
|
|
||||||
@@ -835,36 +820,108 @@ msgstr ""
|
|||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:156
|
#: cocoa/inter/app_me.py:159
|
||||||
msgid "Talking to iTunes. Don't touch it!"
|
msgid "Talking to iTunes. Don't touch it!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:200
|
#: cocoa/inter/app_me.py:213
|
||||||
msgid "The iTunes application couldn't be found."
|
msgid "The iTunes application couldn't be found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/result_window.py:179
|
#: qt/base/result_window.py:170
|
||||||
msgid "Delta Values"
|
msgid "Delta Values"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:176
|
#: cocoa/inter/app_me.py:185
|
||||||
msgid ""
|
msgid ""
|
||||||
"There were communication problems with iTunes. The operation couldn't be "
|
"There were communication problems with iTunes. The operation couldn't be "
|
||||||
"completed."
|
"completed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
|
#: qt/base/app.py:114 qt/base/ignore_list_dialog.py:32
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Ignore List"
|
msgid "Ignore List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/ignore_list_dialog.py:44
|
#: qt/base/ignore_list_dialog.py:45
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
msgid "Remove Selected"
|
msgid "Remove Selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/ignore_list_dialog.py:45
|
#: qt/base/ignore_list_dialog.py:46
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:29
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Deletion Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:34
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Hardlink deleted files"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:39
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid ""
|
||||||
|
"After having deleted a duplicate, place a hardlink targeting the reference "
|
||||||
|
"file to replace the deleted file."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:44
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Directly delete files"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:46
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid ""
|
||||||
|
"Instead of sending files to trash, delete them directly. This option is "
|
||||||
|
"usually used as a workaround when the normal deletion method doesn't work."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:52
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Proceed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/inter/app_pe.py:197
|
||||||
|
msgid "Talking to Aperture. Don't touch it!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/inter/app_pe.py:270
|
||||||
|
msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:37
|
||||||
|
msgid " (Mac OS X or Linux only)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/result_window.py:48
|
||||||
|
msgid "Send Marked to Recycle Bin..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
|
msgid "Add iTunes Library"
|
||||||
|
msgstr "Přidat složku iTunes"
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
|
msgid "Add Aperture Library"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
|
msgid "Send Marked to Trash..."
|
||||||
|
msgstr "Vyhodit označené do koše..."
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
|
msgid "Quick Look"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
msgid "Filter Results..."
|
||||||
|
msgstr ""
|
||||||
|
|||||||
@@ -2,25 +2,25 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
|
||||||
#: core/app.py:94
|
#: core/app.py:96
|
||||||
msgid "will only be able to delete, move or copy 10 duplicates at once"
|
msgid "will only be able to delete, move or copy 10 duplicates at once"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:231
|
#: core/app.py:258
|
||||||
msgid ""
|
msgid ""
|
||||||
"You cannot delete, move or copy more than 10 duplicates at once in demo "
|
"You cannot delete, move or copy more than 10 duplicates at once in demo "
|
||||||
"mode."
|
"mode."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:501
|
#: core/app.py:526
|
||||||
msgid "Collecting files to scan"
|
msgid "Collecting files to scan"
|
||||||
msgstr "Sammle Dateien zum Scannen"
|
msgstr "Sammle Dateien zum Scannen"
|
||||||
|
|
||||||
#: core/app.py:512
|
#: core/app.py:537
|
||||||
msgid "The selected directories contain no scannable file."
|
msgid "The selected directories contain no scannable file."
|
||||||
msgstr "Der ausgewählte Ordner enthält keine scannbare Dateien."
|
msgstr "Der ausgewählte Ordner enthält keine scannbare Dateien."
|
||||||
|
|
||||||
#: core/app.py:551
|
#: core/app.py:576
|
||||||
msgid "%s (%d discarded)"
|
msgid "%s (%d discarded)"
|
||||||
msgstr "%s (%d verworfen)"
|
msgstr "%s (%d verworfen)"
|
||||||
|
|
||||||
@@ -96,15 +96,15 @@ msgstr "Gruppenpriorisierung"
|
|||||||
msgid "Analyzed %d/%d pictures"
|
msgid "Analyzed %d/%d pictures"
|
||||||
msgstr "Analysiere %d/%d Bilder"
|
msgstr "Analysiere %d/%d Bilder"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:144
|
#: core_pe/matchblock.py:152
|
||||||
msgid "Performed %d/%d chunk matches"
|
msgid "Performed %d/%d chunk matches"
|
||||||
msgstr "Performed %d/%d chunk matches"
|
msgstr "Performed %d/%d chunk matches"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:149
|
#: core_pe/matchblock.py:157
|
||||||
msgid "Preparing for matching"
|
msgid "Preparing for matching"
|
||||||
msgstr "Vorbereitung auf den Vergleich"
|
msgstr "Vorbereitung auf den Vergleich"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:184
|
#: core_pe/matchblock.py:192
|
||||||
msgid "Verified %d/%d matches"
|
msgid "Verified %d/%d matches"
|
||||||
msgstr "%d/%d verifizierte Paare"
|
msgstr "%d/%d verifizierte Paare"
|
||||||
|
|
||||||
@@ -112,31 +112,31 @@ msgstr "%d/%d verifizierte Paare"
|
|||||||
msgid "Read EXIF of %d/%d pictures"
|
msgid "Read EXIF of %d/%d pictures"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:36
|
#: core/app.py:38
|
||||||
msgid "There are no marked duplicates. Nothing has been done."
|
msgid "There are no marked duplicates. Nothing has been done."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:37
|
#: core/app.py:39
|
||||||
msgid "There are no selected duplicates. Nothing has been done."
|
msgid "There are no selected duplicates. Nothing has been done."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:189
|
#: core/app.py:216
|
||||||
msgid "No duplicates found."
|
msgid "No duplicates found."
|
||||||
msgstr "Keine Duplikate gefunden."
|
msgstr "Keine Duplikate gefunden."
|
||||||
|
|
||||||
#: core/app.py:202
|
#: core/app.py:229
|
||||||
msgid "All marked files were copied sucessfully."
|
msgid "All marked files were copied sucessfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:203
|
#: core/app.py:230
|
||||||
msgid "All marked files were moved sucessfully."
|
msgid "All marked files were moved sucessfully."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:204
|
#: core/app.py:231
|
||||||
msgid "All marked files were sucessfully sent to Trash."
|
msgid "All marked files were sucessfully sent to Trash."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:252
|
#: core/app.py:279
|
||||||
msgid ""
|
msgid ""
|
||||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||||
"Continue?"
|
"Continue?"
|
||||||
@@ -146,36 +146,28 @@ msgstr "%d Dateien werden in zukünftigen Scans ignoriert werden. Fortfahren?"
|
|||||||
msgid "Do you really want to remove all %d items from the ignore list?"
|
msgid "Do you really want to remove all %d items from the ignore list?"
|
||||||
msgstr "Möchten Sie wirklich alle %d Einträge aus der Ignorier-Liste löschen?"
|
msgstr "Möchten Sie wirklich alle %d Einträge aus der Ignorier-Liste löschen?"
|
||||||
|
|
||||||
#: core/app.py:367
|
#: core/app.py:392
|
||||||
msgid "You have no custom command set up. Set it up in your preferences."
|
msgid "You have no custom command set up. Set it up in your preferences."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen "
|
"Sie haben keinen eigenen Befehl erstellt. Bitte in den Einstellungen "
|
||||||
"konfigurieren."
|
"konfigurieren."
|
||||||
|
|
||||||
#: core/app.py:454 core/app.py:465
|
#: core/app.py:479 core/app.py:490
|
||||||
msgid "You are about to remove %d files from results. Continue?"
|
msgid "You are about to remove %d files from results. Continue?"
|
||||||
msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?"
|
msgstr "%d Dateien werden aus der Ergebnisliste entfernt. Fortfahren?"
|
||||||
|
|
||||||
#: core/app.py:312
|
#: core/app.py:339
|
||||||
msgid "copy"
|
msgid "copy"
|
||||||
msgstr "kopieren"
|
msgstr "kopieren"
|
||||||
|
|
||||||
#: core/app.py:312
|
#: core/app.py:339
|
||||||
msgid "move"
|
msgid "move"
|
||||||
msgstr "verschieben"
|
msgstr "verschieben"
|
||||||
|
|
||||||
#: core/app.py:313
|
#: core/app.py:340
|
||||||
msgid "Select a directory to {} marked files to"
|
msgid "Select a directory to {} marked files to"
|
||||||
msgstr "Wählen sie einen Ordner zum {} der ausgewählten Dateien"
|
msgstr "Wählen sie einen Ordner zum {} der ausgewählten Dateien"
|
||||||
|
|
||||||
#: core/app.py:327
|
#: core/gui/deletion_options.py:20
|
||||||
msgid ""
|
msgid "You are sending {} file(s) to the Trash."
|
||||||
"You are about to send %d files to Trash (and hardlink them afterwards). "
|
|
||||||
"Continue?"
|
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"%d Dateien werden gelöscht und mit physikalischen Verknüpfungen ersetzt. "
|
|
||||||
"Fortfahren?"
|
|
||||||
|
|
||||||
#: core/app.py:329
|
|
||||||
msgid "You are about to send %d files to Trash. Continue?"
|
|
||||||
msgstr "%d Dateien werden in den Mülleimer zu verschoben. Fortfahren?"
|
|
||||||
|
|||||||
@@ -2,55 +2,55 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:15 qt/base/app.py:39
|
#: cocoa/inter/app.py:15 qt/base/app.py:40
|
||||||
msgid "Scanning for duplicates"
|
msgid "Scanning for duplicates"
|
||||||
msgstr "Suche nach Duplikaten"
|
msgstr "Suche nach Duplikaten"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:16 qt/base/app.py:40
|
#: cocoa/inter/app.py:16 qt/base/app.py:41
|
||||||
msgid "Loading"
|
msgid "Loading"
|
||||||
msgstr "Laden"
|
msgstr "Laden"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:17 qt/base/app.py:41
|
#: cocoa/inter/app.py:17 qt/base/app.py:42
|
||||||
msgid "Moving"
|
msgid "Moving"
|
||||||
msgstr "Verschieben"
|
msgstr "Verschieben"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:18 qt/base/app.py:42
|
#: cocoa/inter/app.py:18 qt/base/app.py:43
|
||||||
msgid "Copying"
|
msgid "Copying"
|
||||||
msgstr "Kopieren"
|
msgstr "Kopieren"
|
||||||
|
|
||||||
#: qt/base/app.py:43
|
#: qt/base/app.py:44
|
||||||
msgid "Sending files to the recycle bin"
|
msgid "Sending files to the recycle bin"
|
||||||
msgstr "Sende Dateien in den Mülleimer"
|
msgstr "Sende Dateien in den Mülleimer"
|
||||||
|
|
||||||
#: qt/base/app.py:110
|
#: qt/base/app.py:112
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Beenden"
|
msgstr "Beenden"
|
||||||
|
|
||||||
#: qt/base/app.py:111 qt/base/preferences_dialog.py:123
|
#: qt/base/app.py:113 qt/base/preferences_dialog.py:123
|
||||||
msgid "Preferences"
|
msgid "Preferences"
|
||||||
msgstr "Einstellungen"
|
msgstr "Einstellungen"
|
||||||
|
|
||||||
#: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/app.py:115 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "dupeGuru Help"
|
msgid "dupeGuru Help"
|
||||||
msgstr "dupeGuru Hilfe"
|
msgstr "dupeGuru Hilfe"
|
||||||
|
|
||||||
#: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/app.py:116 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "About dupeGuru"
|
msgid "About dupeGuru"
|
||||||
msgstr "Über dupeGuru"
|
msgstr "Über dupeGuru"
|
||||||
|
|
||||||
#: qt/base/app.py:115
|
#: qt/base/app.py:117
|
||||||
msgid "Register dupeGuru"
|
msgid "Register dupeGuru"
|
||||||
msgstr "Registriere dupeGuru"
|
msgstr "Registriere dupeGuru"
|
||||||
|
|
||||||
#: qt/base/app.py:116
|
#: qt/base/app.py:118
|
||||||
msgid "Check for Update"
|
msgid "Check for Update"
|
||||||
msgstr "Auf Updates überprüfen"
|
msgstr "Auf Updates überprüfen"
|
||||||
|
|
||||||
#: qt/base/app.py:117
|
#: qt/base/app.py:119
|
||||||
msgid "Open Debug Log"
|
msgid "Open Debug Log"
|
||||||
msgstr "Debug Log öffnen"
|
msgstr "Debug Log öffnen"
|
||||||
|
|
||||||
#: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/base/app.py:234 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||||
"Wait a few seconds, then try again."
|
"Wait a few seconds, then try again."
|
||||||
@@ -87,16 +87,16 @@ msgstr "Ergebnisfenster"
|
|||||||
msgid "Add Folder..."
|
msgid "Add Folder..."
|
||||||
msgstr "Ordner hinzufügen..."
|
msgstr "Ordner hinzufügen..."
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
|
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:75
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Ablage"
|
msgstr "Ablage"
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
|
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:83
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Ansicht"
|
msgstr "Ansicht"
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
|
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:85
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr "Hilfe"
|
msgstr "Hilfe"
|
||||||
@@ -140,7 +140,7 @@ msgstr "Wählen Sie eine Ergebnisliste zum Laden aus."
|
|||||||
msgid "All Files (*.*)"
|
msgid "All Files (*.*)"
|
||||||
msgstr "Alle Dateien (*.*)"
|
msgstr "Alle Dateien (*.*)"
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
|
#: qt/base/directories_dialog.py:206 qt/base/result_window.py:293
|
||||||
msgid "dupeGuru Results (*.dupeguru)"
|
msgid "dupeGuru Results (*.dupeguru)"
|
||||||
msgstr "dupeGuru Ergebnisse (*.dupeguru)"
|
msgstr "dupeGuru Ergebnisse (*.dupeguru)"
|
||||||
|
|
||||||
@@ -264,135 +264,127 @@ msgstr ""
|
|||||||
msgid "Reveal Selected"
|
msgid "Reveal Selected"
|
||||||
msgstr "Zeige Markierte"
|
msgstr "Zeige Markierte"
|
||||||
|
|
||||||
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: qt/base/ignore_list_dialog.py:47 qt/base/problem_dialog.py:57
|
||||||
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
#: cocoa/base/en.lproj/ProblemDialog.strings:0
|
#: cocoa/base/en.lproj/ProblemDialog.strings:0
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Schließen"
|
msgstr "Schließen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:47 qt/base/result_window.py:177
|
#: qt/base/result_window.py:44 qt/base/result_window.py:168
|
||||||
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
|
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
|
||||||
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
|
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Details"
|
msgid "Details"
|
||||||
msgstr "Details"
|
msgstr "Details"
|
||||||
|
|
||||||
#: qt/base/result_window.py:48 qt/base/result_window.py:86
|
#: qt/base/result_window.py:45 qt/base/result_window.py:79
|
||||||
#: qt/base/result_window.py:151 qt/base/result_window.py:176
|
#: qt/base/result_window.py:143 qt/base/result_window.py:167
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Aktionen"
|
msgstr "Aktionen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:49 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:46 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Show Dupes Only"
|
msgid "Show Dupes Only"
|
||||||
msgstr "Nur Duplikate anzeigen"
|
msgstr "Nur Duplikate anzeigen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:50 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:47 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Show Delta Values"
|
msgid "Show Delta Values"
|
||||||
msgstr "Zeige Deltawerte"
|
msgstr "Zeige Deltawerte"
|
||||||
|
|
||||||
#: qt/base/result_window.py:51
|
#: qt/base/result_window.py:49 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Send Marked to Recycle Bin"
|
|
||||||
msgstr "Verschiebe Markierte in den Mülleimer"
|
|
||||||
|
|
||||||
#: qt/base/result_window.py:52 cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
|
||||||
msgid "Delete Marked and Replace with Hardlinks"
|
|
||||||
msgstr "Lösche Markierte und ersetze mit Hardlinks"
|
|
||||||
|
|
||||||
#: qt/base/result_window.py:53 cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Move Marked to..."
|
msgid "Move Marked to..."
|
||||||
msgstr "Verschiebe Markierte nach..."
|
msgstr "Verschiebe Markierte nach..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:54 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:50 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Copy Marked to..."
|
msgid "Copy Marked to..."
|
||||||
msgstr "Kopiere Markierte nach..."
|
msgstr "Kopiere Markierte nach..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:55 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:51 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Remove Marked from Results"
|
msgid "Remove Marked from Results"
|
||||||
msgstr "Entferne Markierte aus den Ergebnissen"
|
msgstr "Entferne Markierte aus den Ergebnissen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:56
|
#: qt/base/result_window.py:52
|
||||||
msgid "Re-Prioritize Results..."
|
msgid "Re-Prioritize Results..."
|
||||||
msgstr "Entferne Ausgewählte aus den Ergebnissen"
|
msgstr "Entferne Ausgewählte aus den Ergebnissen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:57 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:53 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Remove Selected from Results"
|
msgid "Remove Selected from Results"
|
||||||
msgstr "Entferne Ausgewählte aus den Ergebnissen"
|
msgstr "Entferne Ausgewählte aus den Ergebnissen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:58 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:54 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Add Selected to Ignore List"
|
msgid "Add Selected to Ignore List"
|
||||||
msgstr "Füge Ausgewählte der Ignorier-Liste hinzu"
|
msgstr "Füge Ausgewählte der Ignorier-Liste hinzu"
|
||||||
|
|
||||||
#: qt/base/result_window.py:59 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:55 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Make Selected Reference"
|
msgid "Make Selected Reference"
|
||||||
msgstr "Mache Ausgewählte zur Referenz"
|
msgstr "Mache Ausgewählte zur Referenz"
|
||||||
|
|
||||||
#: qt/base/result_window.py:60 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:56 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Open Selected with Default Application"
|
msgid "Open Selected with Default Application"
|
||||||
msgstr "Öffne Ausgewählte mit Standardanwendung"
|
msgstr "Öffne Ausgewählte mit Standardanwendung"
|
||||||
|
|
||||||
#: qt/base/result_window.py:61
|
#: qt/base/result_window.py:57
|
||||||
msgid "Open Containing Folder of Selected"
|
msgid "Open Containing Folder of Selected"
|
||||||
msgstr "Öffne beeinhaltenden Ordner der Ausgewählten"
|
msgstr "Öffne beeinhaltenden Ordner der Ausgewählten"
|
||||||
|
|
||||||
#: qt/base/result_window.py:62 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:58 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Rename Selected"
|
msgid "Rename Selected"
|
||||||
msgstr "Ausgewählte umbenennen"
|
msgstr "Ausgewählte umbenennen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:63 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:59 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark All"
|
msgid "Mark All"
|
||||||
msgstr "Alles markieren"
|
msgstr "Alles markieren"
|
||||||
|
|
||||||
#: qt/base/result_window.py:64 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:60 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark None"
|
msgid "Mark None"
|
||||||
msgstr "Nichts markieren"
|
msgstr "Nichts markieren"
|
||||||
|
|
||||||
#: qt/base/result_window.py:65 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:61 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Invert Marking"
|
msgid "Invert Marking"
|
||||||
msgstr "Markierung invertieren"
|
msgstr "Markierung invertieren"
|
||||||
|
|
||||||
#: qt/base/result_window.py:66 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:62 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark Selected"
|
msgid "Mark Selected"
|
||||||
msgstr "Ausgewählte markieren"
|
msgstr "Ausgewählte markieren"
|
||||||
|
|
||||||
#: qt/base/result_window.py:67
|
#: qt/base/result_window.py:63
|
||||||
msgid "Export To HTML"
|
msgid "Export To HTML"
|
||||||
msgstr "Exportiere als HTML"
|
msgstr "Exportiere als HTML"
|
||||||
|
|
||||||
#: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:64 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Save Results..."
|
msgid "Save Results..."
|
||||||
msgstr "Speichere Ergebnisse..."
|
msgstr "Speichere Ergebnisse..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:65 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Invoke Custom Command"
|
msgid "Invoke Custom Command"
|
||||||
msgstr "Eigenen Befehl ausführen"
|
msgstr "Eigenen Befehl ausführen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:84
|
#: qt/base/result_window.py:77
|
||||||
msgid "Mark"
|
msgid "Mark"
|
||||||
msgstr "Auswählen"
|
msgstr "Auswählen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:81 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Columns"
|
msgid "Columns"
|
||||||
msgstr "Spalten"
|
msgstr "Spalten"
|
||||||
|
|
||||||
#: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
|
#: qt/base/result_window.py:139 cocoa/se/en.lproj/Preferences.strings:0
|
||||||
#: cocoa/me/en.lproj/Preferences.strings:0
|
#: cocoa/me/en.lproj/Preferences.strings:0
|
||||||
#: cocoa/pe/en.lproj/Preferences.strings:0
|
#: cocoa/pe/en.lproj/Preferences.strings:0
|
||||||
msgid "Reset to Defaults"
|
msgid "Reset to Defaults"
|
||||||
msgstr "Voreinstellungen"
|
msgstr "Voreinstellungen"
|
||||||
|
|
||||||
#: qt/base/result_window.py:170
|
#: qt/base/result_window.py:161
|
||||||
msgid "{} Results"
|
msgid "{} Results"
|
||||||
msgstr "{} (Ergebnisse)"
|
msgstr "{} (Ergebnisse)"
|
||||||
|
|
||||||
#: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/base/result_window.py:292 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Select a file to save your results to"
|
msgid "Select a file to save your results to"
|
||||||
msgstr "Datei zum Speichern der Ergebnisliste auswählen."
|
msgstr "Datei zum Speichern der Ergebnisliste auswählen."
|
||||||
|
|
||||||
@@ -505,17 +497,17 @@ msgstr "EXIF Timestamp"
|
|||||||
msgid "Match pictures of different dimensions"
|
msgid "Match pictures of different dimensions"
|
||||||
msgstr "Vergleiche Bilder mit unterschiedlicher Auflösung"
|
msgstr "Vergleiche Bilder mit unterschiedlicher Auflösung"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:20 qt/pe/result_window.py:25
|
#: qt/pe/result_window.py:19 qt/pe/result_window.py:24
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Clear Picture Cache"
|
msgid "Clear Picture Cache"
|
||||||
msgstr "Bildzwischenspeicher leeren"
|
msgstr "Bildzwischenspeicher leeren"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:26 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/pe/result_window.py:25 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Do you really want to remove all your cached picture analysis?"
|
msgid "Do you really want to remove all your cached picture analysis?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Möchten Sie wirklich alle zwischengespeicherten Bildanalysen entfernen?"
|
"Möchten Sie wirklich alle zwischengespeicherten Bildanalysen entfernen?"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:29
|
#: qt/pe/result_window.py:28
|
||||||
msgid "Picture cache cleared."
|
msgid "Picture cache cleared."
|
||||||
msgstr "Bildzwischenspeicher geleert."
|
msgstr "Bildzwischenspeicher geleert."
|
||||||
|
|
||||||
@@ -548,10 +540,6 @@ msgstr "Load from file..."
|
|||||||
msgid "Reset to Default"
|
msgid "Reset to Default"
|
||||||
msgstr "Reset to Default"
|
msgstr "Reset to Default"
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
|
||||||
msgid "Add iTunes Directory"
|
|
||||||
msgstr "Add iTunes Directory"
|
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Remove Dead Tracks in iTunes"
|
msgid "Remove Dead Tracks in iTunes"
|
||||||
msgstr "Remove Dead Tracks in iTunes"
|
msgstr "Remove Dead Tracks in iTunes"
|
||||||
@@ -604,11 +592,6 @@ msgstr "Preferences..."
|
|||||||
msgid "Folder Selection Window"
|
msgid "Folder Selection Window"
|
||||||
msgstr "Folder Selection Window"
|
msgstr "Folder Selection Window"
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
|
||||||
msgid "Send Marked to Trash"
|
|
||||||
msgstr "Send Marked to Trash"
|
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Reveal Selected in Finder"
|
msgid "Reveal Selected in Finder"
|
||||||
@@ -662,6 +645,8 @@ msgstr "Re-Prioritize Results"
|
|||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "Ok"
|
msgstr "Ok"
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:53
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
#: cocoa/base/en.lproj/PrioritizeDialog.strings:0
|
#: cocoa/base/en.lproj/PrioritizeDialog.strings:0
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Cancel"
|
msgstr "Cancel"
|
||||||
@@ -690,7 +675,7 @@ msgstr "Action"
|
|||||||
msgid "Directories"
|
msgid "Directories"
|
||||||
msgstr "Directories"
|
msgstr "Directories"
|
||||||
|
|
||||||
#: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
|
#: qt/base/result_window.py:169 cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Dupes Only"
|
msgid "Dupes Only"
|
||||||
msgstr "Dupes Only"
|
msgstr "Dupes Only"
|
||||||
|
|
||||||
@@ -789,15 +774,15 @@ msgstr "Entferne tote Stücke aus Ihrer iTunes Bibliothek."
|
|||||||
msgid "Scanning the iTunes Library"
|
msgid "Scanning the iTunes Library"
|
||||||
msgstr "Scanne die iTunes Bibiliothek"
|
msgstr "Scanne die iTunes Bibiliothek"
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:154 cocoa/inter/app_pe.py:144
|
#: cocoa/inter/app_me.py:157 cocoa/inter/app_pe.py:186
|
||||||
msgid "Sending dupes to the Trash"
|
msgid "Sending dupes to the Trash"
|
||||||
msgstr "Verschiebe Duplikate in den Mülleimer"
|
msgstr "Verschiebe Duplikate in den Mülleimer"
|
||||||
|
|
||||||
#: cocoa/inter/app_pe.py:146
|
#: cocoa/inter/app_pe.py:188
|
||||||
msgid "Talking to iPhoto. Don't touch it!"
|
msgid "Talking to iPhoto. Don't touch it!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_pe.py:201
|
#: cocoa/inter/app_pe.py:296
|
||||||
msgid "The iPhoto application couldn't be found."
|
msgid "The iPhoto application couldn't be found."
|
||||||
msgstr "The iPhoto application couldn't be found."
|
msgstr "The iPhoto application couldn't be found."
|
||||||
|
|
||||||
@@ -813,13 +798,13 @@ msgstr "'%@' does not exist."
|
|||||||
msgid "The name '%@' already exists."
|
msgid "The name '%@' already exists."
|
||||||
msgstr "The name '%@' already exists."
|
msgstr "The name '%@' already exists."
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:182 cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/inter/app_me.py:191 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:186 cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/inter/app_me.py:195 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "You have no dead tracks in your iTunes Library"
|
msgid "You have no dead tracks in your iTunes Library"
|
||||||
msgstr "You have no dead tracks in your iTunes Library"
|
msgstr "You have no dead tracks in your iTunes Library"
|
||||||
|
|
||||||
@@ -835,36 +820,108 @@ msgstr ""
|
|||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:156
|
#: cocoa/inter/app_me.py:159
|
||||||
msgid "Talking to iTunes. Don't touch it!"
|
msgid "Talking to iTunes. Don't touch it!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:200
|
#: cocoa/inter/app_me.py:213
|
||||||
msgid "The iTunes application couldn't be found."
|
msgid "The iTunes application couldn't be found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/result_window.py:179
|
#: qt/base/result_window.py:170
|
||||||
msgid "Delta Values"
|
msgid "Delta Values"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:176
|
#: cocoa/inter/app_me.py:185
|
||||||
msgid ""
|
msgid ""
|
||||||
"There were communication problems with iTunes. The operation couldn't be "
|
"There were communication problems with iTunes. The operation couldn't be "
|
||||||
"completed."
|
"completed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
|
#: qt/base/app.py:114 qt/base/ignore_list_dialog.py:32
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Ignore List"
|
msgid "Ignore List"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/ignore_list_dialog.py:44
|
#: qt/base/ignore_list_dialog.py:45
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
msgid "Remove Selected"
|
msgid "Remove Selected"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/ignore_list_dialog.py:45
|
#: qt/base/ignore_list_dialog.py:46
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:29
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Deletion Options"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:34
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Hardlink deleted files"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:39
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid ""
|
||||||
|
"After having deleted a duplicate, place a hardlink targeting the reference "
|
||||||
|
"file to replace the deleted file."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:44
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Directly delete files"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:46
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid ""
|
||||||
|
"Instead of sending files to trash, delete them directly. This option is "
|
||||||
|
"usually used as a workaround when the normal deletion method doesn't work."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:52
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Proceed"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/inter/app_pe.py:197
|
||||||
|
msgid "Talking to Aperture. Don't touch it!"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/inter/app_pe.py:270
|
||||||
|
msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:37
|
||||||
|
msgid " (Mac OS X or Linux only)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: qt/base/result_window.py:48
|
||||||
|
msgid "Send Marked to Recycle Bin..."
|
||||||
|
msgstr "Verschiebe Markierte in den Mülleimer..."
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
|
msgid "Add iTunes Library"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
|
msgid "Add Aperture Library"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
|
msgid "Send Marked to Trash..."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
|
msgid "Quick Look"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
msgid "Filter Results..."
|
||||||
|
msgstr ""
|
||||||
|
|||||||
@@ -2,27 +2,27 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
|
||||||
#: core/app.py:94
|
#: core/app.py:96
|
||||||
msgid "will only be able to delete, move or copy 10 duplicates at once"
|
msgid "will only be able to delete, move or copy 10 duplicates at once"
|
||||||
msgstr "ne peut effacer, déplacer ou copier que 10 doublons à la fois"
|
msgstr "ne peut effacer, déplacer ou copier que 10 doublons à la fois"
|
||||||
|
|
||||||
#: core/app.py:231
|
#: core/app.py:258
|
||||||
msgid ""
|
msgid ""
|
||||||
"You cannot delete, move or copy more than 10 duplicates at once in demo "
|
"You cannot delete, move or copy more than 10 duplicates at once in demo "
|
||||||
"mode."
|
"mode."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous ne pouvez pas effacer, déplacer ou copier plus de 10 doublons à la "
|
"Vous ne pouvez pas effacer, déplacer ou copier plus de 10 doublons à la fois"
|
||||||
"fois en mode démo."
|
" en mode démo."
|
||||||
|
|
||||||
#: core/app.py:501
|
#: core/app.py:526
|
||||||
msgid "Collecting files to scan"
|
msgid "Collecting files to scan"
|
||||||
msgstr "Collecte des fichiers à scanner"
|
msgstr "Collecte des fichiers à scanner"
|
||||||
|
|
||||||
#: core/app.py:512
|
#: core/app.py:537
|
||||||
msgid "The selected directories contain no scannable file."
|
msgid "The selected directories contain no scannable file."
|
||||||
msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides."
|
msgstr "Les dossiers sélectionnés ne contiennent pas de fichiers valides."
|
||||||
|
|
||||||
#: core/app.py:551
|
#: core/app.py:576
|
||||||
msgid "%s (%d discarded)"
|
msgid "%s (%d discarded)"
|
||||||
msgstr "%s (%d hors-groupe)"
|
msgstr "%s (%d hors-groupe)"
|
||||||
|
|
||||||
@@ -98,15 +98,15 @@ msgstr "Prioritization des groupes"
|
|||||||
msgid "Analyzed %d/%d pictures"
|
msgid "Analyzed %d/%d pictures"
|
||||||
msgstr "Analyzé %d/%d images"
|
msgstr "Analyzé %d/%d images"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:144
|
#: core_pe/matchblock.py:152
|
||||||
msgid "Performed %d/%d chunk matches"
|
msgid "Performed %d/%d chunk matches"
|
||||||
msgstr "%d/%d blocs d'images comparés"
|
msgstr "%d/%d blocs d'images comparés"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:149
|
#: core_pe/matchblock.py:157
|
||||||
msgid "Preparing for matching"
|
msgid "Preparing for matching"
|
||||||
msgstr "Préparation pour la comparaison"
|
msgstr "Préparation pour la comparaison"
|
||||||
|
|
||||||
#: core_pe/matchblock.py:184
|
#: core_pe/matchblock.py:192
|
||||||
msgid "Verified %d/%d matches"
|
msgid "Verified %d/%d matches"
|
||||||
msgstr "Vérifié %d/%d paires"
|
msgstr "Vérifié %d/%d paires"
|
||||||
|
|
||||||
@@ -114,32 +114,32 @@ msgstr "Vérifié %d/%d paires"
|
|||||||
msgid "Read EXIF of %d/%d pictures"
|
msgid "Read EXIF of %d/%d pictures"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: core/app.py:36
|
#: core/app.py:38
|
||||||
msgid "There are no marked duplicates. Nothing has been done."
|
msgid "There are no marked duplicates. Nothing has been done."
|
||||||
msgstr "Aucun doublon marqué. Rien à faire."
|
msgstr "Aucun doublon marqué. Rien à faire."
|
||||||
|
|
||||||
#: core/app.py:37
|
#: core/app.py:39
|
||||||
msgid "There are no selected duplicates. Nothing has been done."
|
msgid "There are no selected duplicates. Nothing has been done."
|
||||||
msgstr "Aucun doublon sélectionné. Rien à faire."
|
msgstr "Aucun doublon sélectionné. Rien à faire."
|
||||||
|
|
||||||
#: core/app.py:189
|
#: core/app.py:216
|
||||||
msgid "No duplicates found."
|
msgid "No duplicates found."
|
||||||
msgstr "Aucun doublon trouvé."
|
msgstr "Aucun doublon trouvé."
|
||||||
|
|
||||||
#: core/app.py:202
|
#: core/app.py:229
|
||||||
msgid "All marked files were copied sucessfully."
|
msgid "All marked files were copied sucessfully."
|
||||||
msgstr "Tous les fichiers marqués ont été copiés correctement."
|
msgstr "Tous les fichiers marqués ont été copiés correctement."
|
||||||
|
|
||||||
#: core/app.py:203
|
#: core/app.py:230
|
||||||
msgid "All marked files were moved sucessfully."
|
msgid "All marked files were moved sucessfully."
|
||||||
msgstr "Tous les fichiers marqués ont été déplacés correctement."
|
msgstr "Tous les fichiers marqués ont été déplacés correctement."
|
||||||
|
|
||||||
#: core/app.py:204
|
#: core/app.py:231
|
||||||
msgid "All marked files were sucessfully sent to Trash."
|
msgid "All marked files were sucessfully sent to Trash."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Tous les fichiers marqués ont été correctement envoyés à la corbeille."
|
"Tous les fichiers marqués ont été correctement envoyés à la corbeille."
|
||||||
|
|
||||||
#: core/app.py:252
|
#: core/app.py:279
|
||||||
msgid ""
|
msgid ""
|
||||||
"All selected %d matches are going to be ignored in all subsequent scans. "
|
"All selected %d matches are going to be ignored in all subsequent scans. "
|
||||||
"Continue?"
|
"Continue?"
|
||||||
@@ -151,34 +151,27 @@ msgstr ""
|
|||||||
"Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle "
|
"Voulez-vous vider la liste de fichiers ignorés des %d items qu'elle "
|
||||||
"contient?"
|
"contient?"
|
||||||
|
|
||||||
#: core/app.py:367
|
#: core/app.py:392
|
||||||
msgid "You have no custom command set up. Set it up in your preferences."
|
msgid "You have no custom command set up. Set it up in your preferences."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences."
|
"Vous n'avez pas de commande personnalisée. Ajoutez-la dans vos préférences."
|
||||||
|
|
||||||
#: core/app.py:454 core/app.py:465
|
#: core/app.py:479 core/app.py:490
|
||||||
msgid "You are about to remove %d files from results. Continue?"
|
msgid "You are about to remove %d files from results. Continue?"
|
||||||
msgstr "%d fichiers seront retirés des résultats. Continuer?"
|
msgstr "%d fichiers seront retirés des résultats. Continuer?"
|
||||||
|
|
||||||
#: core/app.py:312
|
#: core/app.py:339
|
||||||
msgid "copy"
|
msgid "copy"
|
||||||
msgstr "copier"
|
msgstr "copier"
|
||||||
|
|
||||||
#: core/app.py:312
|
#: core/app.py:339
|
||||||
msgid "move"
|
msgid "move"
|
||||||
msgstr "déplacer"
|
msgstr "déplacer"
|
||||||
|
|
||||||
#: core/app.py:313
|
#: core/app.py:340
|
||||||
msgid "Select a directory to {} marked files to"
|
msgid "Select a directory to {} marked files to"
|
||||||
msgstr "Sélectionnez un dossier vers lequel {} les fichiers marqués."
|
msgstr "Sélectionnez un dossier vers lequel {} les fichiers marqués."
|
||||||
|
|
||||||
#: core/app.py:327
|
#: core/gui/deletion_options.py:20
|
||||||
msgid ""
|
msgid "You are sending {} file(s) to the Trash."
|
||||||
"You are about to send %d files to Trash (and hardlink them afterwards). "
|
msgstr "Vous envoyez {} fichier(s) à la corbeille."
|
||||||
"Continue?"
|
|
||||||
msgstr ""
|
|
||||||
"%d fichiers seront envoyés à la corbeille (puis 'hardlinkés'). Continuer?"
|
|
||||||
|
|
||||||
#: core/app.py:329
|
|
||||||
msgid "You are about to send %d files to Trash. Continue?"
|
|
||||||
msgstr "%d fichiers seront envoyés à la corbeille. Continuer?"
|
|
||||||
|
|||||||
@@ -2,55 +2,55 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
msgstr "Content-Type: text/plain; charset=utf-8\n"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:15 qt/base/app.py:39
|
#: cocoa/inter/app.py:15 qt/base/app.py:40
|
||||||
msgid "Scanning for duplicates"
|
msgid "Scanning for duplicates"
|
||||||
msgstr "Scan de doublons en cours"
|
msgstr "Scan de doublons en cours"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:16 qt/base/app.py:40
|
#: cocoa/inter/app.py:16 qt/base/app.py:41
|
||||||
msgid "Loading"
|
msgid "Loading"
|
||||||
msgstr "Chargement en cours"
|
msgstr "Chargement en cours"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:17 qt/base/app.py:41
|
#: cocoa/inter/app.py:17 qt/base/app.py:42
|
||||||
msgid "Moving"
|
msgid "Moving"
|
||||||
msgstr "Déplacement en cours"
|
msgstr "Déplacement en cours"
|
||||||
|
|
||||||
#: cocoa/inter/app.py:18 qt/base/app.py:42
|
#: cocoa/inter/app.py:18 qt/base/app.py:43
|
||||||
msgid "Copying"
|
msgid "Copying"
|
||||||
msgstr "Copie en cours"
|
msgstr "Copie en cours"
|
||||||
|
|
||||||
#: qt/base/app.py:43
|
#: qt/base/app.py:44
|
||||||
msgid "Sending files to the recycle bin"
|
msgid "Sending files to the recycle bin"
|
||||||
msgstr "Envoi de fichiers à la corbeille"
|
msgstr "Envoi de fichiers à la corbeille"
|
||||||
|
|
||||||
#: qt/base/app.py:110
|
#: qt/base/app.py:112
|
||||||
msgid "Quit"
|
msgid "Quit"
|
||||||
msgstr "Quitter"
|
msgstr "Quitter"
|
||||||
|
|
||||||
#: qt/base/app.py:111 qt/base/preferences_dialog.py:123
|
#: qt/base/app.py:113 qt/base/preferences_dialog.py:123
|
||||||
msgid "Preferences"
|
msgid "Preferences"
|
||||||
msgstr "Préférences"
|
msgstr "Préférences"
|
||||||
|
|
||||||
#: qt/base/app.py:113 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/app.py:115 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "dupeGuru Help"
|
msgid "dupeGuru Help"
|
||||||
msgstr "Aide dupeGuru"
|
msgstr "Aide dupeGuru"
|
||||||
|
|
||||||
#: qt/base/app.py:114 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/app.py:116 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "About dupeGuru"
|
msgid "About dupeGuru"
|
||||||
msgstr "À propos de dupeGuru"
|
msgstr "À propos de dupeGuru"
|
||||||
|
|
||||||
#: qt/base/app.py:115
|
#: qt/base/app.py:117
|
||||||
msgid "Register dupeGuru"
|
msgid "Register dupeGuru"
|
||||||
msgstr "Enregistrer dupeGuru"
|
msgstr "Enregistrer dupeGuru"
|
||||||
|
|
||||||
#: qt/base/app.py:116
|
#: qt/base/app.py:118
|
||||||
msgid "Check for Update"
|
msgid "Check for Update"
|
||||||
msgstr "Vérifier les mises à jour"
|
msgstr "Vérifier les mises à jour"
|
||||||
|
|
||||||
#: qt/base/app.py:117
|
#: qt/base/app.py:119
|
||||||
msgid "Open Debug Log"
|
msgid "Open Debug Log"
|
||||||
msgstr "Ouvrir logs de déboguage"
|
msgstr "Ouvrir logs de déboguage"
|
||||||
|
|
||||||
#: qt/base/app.py:232 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/base/app.py:234 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"A previous action is still hanging in there. You can't start a new one yet. "
|
"A previous action is still hanging in there. You can't start a new one yet. "
|
||||||
"Wait a few seconds, then try again."
|
"Wait a few seconds, then try again."
|
||||||
@@ -87,16 +87,16 @@ msgstr "Fenêtre de résultats"
|
|||||||
msgid "Add Folder..."
|
msgid "Add Folder..."
|
||||||
msgstr "Ajouter dossier..."
|
msgstr "Ajouter dossier..."
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:82
|
#: qt/base/directories_dialog.py:67 qt/base/result_window.py:75
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "File"
|
msgid "File"
|
||||||
msgstr "Fichier"
|
msgstr "Fichier"
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:90
|
#: qt/base/directories_dialog.py:69 qt/base/result_window.py:83
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "Voir"
|
msgstr "Voir"
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:92
|
#: qt/base/directories_dialog.py:71 qt/base/result_window.py:85
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Help"
|
msgid "Help"
|
||||||
msgstr "Aide"
|
msgstr "Aide"
|
||||||
@@ -140,7 +140,7 @@ msgstr "Sélectionnez un fichier résultats à charger"
|
|||||||
msgid "All Files (*.*)"
|
msgid "All Files (*.*)"
|
||||||
msgstr "Tout les fichiers (*.*)"
|
msgstr "Tout les fichiers (*.*)"
|
||||||
|
|
||||||
#: qt/base/directories_dialog.py:206 qt/base/result_window.py:301
|
#: qt/base/directories_dialog.py:206 qt/base/result_window.py:293
|
||||||
msgid "dupeGuru Results (*.dupeguru)"
|
msgid "dupeGuru Results (*.dupeguru)"
|
||||||
msgstr "Résultats dupeGuru (*.dupeguru)"
|
msgstr "Résultats dupeGuru (*.dupeguru)"
|
||||||
|
|
||||||
@@ -266,135 +266,127 @@ msgstr ""
|
|||||||
msgid "Reveal Selected"
|
msgid "Reveal Selected"
|
||||||
msgstr "Révéler Fichier"
|
msgstr "Révéler Fichier"
|
||||||
|
|
||||||
#: qt/base/problem_dialog.py:57 cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: qt/base/ignore_list_dialog.py:47 qt/base/problem_dialog.py:57
|
||||||
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
#: cocoa/base/en.lproj/ProblemDialog.strings:0
|
#: cocoa/base/en.lproj/ProblemDialog.strings:0
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Fermer"
|
msgstr "Fermer"
|
||||||
|
|
||||||
#: qt/base/result_window.py:47 qt/base/result_window.py:177
|
#: qt/base/result_window.py:44 qt/base/result_window.py:168
|
||||||
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
|
#: qt/me/details_dialog.py:20 qt/pe/details_dialog.py:25
|
||||||
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
|
#: qt/se/details_dialog.py:20 cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Details"
|
msgid "Details"
|
||||||
msgstr "Détails"
|
msgstr "Détails"
|
||||||
|
|
||||||
#: qt/base/result_window.py:48 qt/base/result_window.py:86
|
#: qt/base/result_window.py:45 qt/base/result_window.py:79
|
||||||
#: qt/base/result_window.py:151 qt/base/result_window.py:176
|
#: qt/base/result_window.py:143 qt/base/result_window.py:167
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Actions"
|
msgid "Actions"
|
||||||
msgstr "Actions"
|
msgstr "Actions"
|
||||||
|
|
||||||
#: qt/base/result_window.py:49 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:46 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Show Dupes Only"
|
msgid "Show Dupes Only"
|
||||||
msgstr "Ne pas montrer les références"
|
msgstr "Ne pas montrer les références"
|
||||||
|
|
||||||
#: qt/base/result_window.py:50 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:47 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Show Delta Values"
|
msgid "Show Delta Values"
|
||||||
msgstr "Montrer les valeurs en tant que delta"
|
msgstr "Montrer les valeurs en tant que delta"
|
||||||
|
|
||||||
#: qt/base/result_window.py:51
|
#: qt/base/result_window.py:49 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Send Marked to Recycle Bin"
|
|
||||||
msgstr "Envoyer marqués à la corbeille"
|
|
||||||
|
|
||||||
#: qt/base/result_window.py:52 cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
|
||||||
msgid "Delete Marked and Replace with Hardlinks"
|
|
||||||
msgstr "Remplacer marqués par des hardlinks"
|
|
||||||
|
|
||||||
#: qt/base/result_window.py:53 cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Move Marked to..."
|
msgid "Move Marked to..."
|
||||||
msgstr "Déplacer marqués vers..."
|
msgstr "Déplacer marqués vers..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:54 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:50 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Copy Marked to..."
|
msgid "Copy Marked to..."
|
||||||
msgstr "Copier marqués vers..."
|
msgstr "Copier marqués vers..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:55 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:51 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Remove Marked from Results"
|
msgid "Remove Marked from Results"
|
||||||
msgstr "Retirer marqués des résultats"
|
msgstr "Retirer marqués des résultats"
|
||||||
|
|
||||||
#: qt/base/result_window.py:56
|
#: qt/base/result_window.py:52
|
||||||
msgid "Re-Prioritize Results..."
|
msgid "Re-Prioritize Results..."
|
||||||
msgstr "Re-prioriser les résultats"
|
msgstr "Re-prioriser les résultats"
|
||||||
|
|
||||||
#: qt/base/result_window.py:57 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:53 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Remove Selected from Results"
|
msgid "Remove Selected from Results"
|
||||||
msgstr "Retirer sélectionnés des résultats"
|
msgstr "Retirer sélectionnés des résultats"
|
||||||
|
|
||||||
#: qt/base/result_window.py:58 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:54 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Add Selected to Ignore List"
|
msgid "Add Selected to Ignore List"
|
||||||
msgstr "Ajouter sélectionnés à la liste de fichiers ignorés"
|
msgstr "Ajouter sélectionnés à la liste de fichiers ignorés"
|
||||||
|
|
||||||
#: qt/base/result_window.py:59 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:55 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Make Selected Reference"
|
msgid "Make Selected Reference"
|
||||||
msgstr "Transformer sélectionnés en références"
|
msgstr "Transformer sélectionnés en références"
|
||||||
|
|
||||||
#: qt/base/result_window.py:60 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:56 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Open Selected with Default Application"
|
msgid "Open Selected with Default Application"
|
||||||
msgstr "Ouvrir sélectionné avec l'application par défaut"
|
msgstr "Ouvrir sélectionné avec l'application par défaut"
|
||||||
|
|
||||||
#: qt/base/result_window.py:61
|
#: qt/base/result_window.py:57
|
||||||
msgid "Open Containing Folder of Selected"
|
msgid "Open Containing Folder of Selected"
|
||||||
msgstr "Ouvrir le dossier contenant le fichier sélectionné"
|
msgstr "Ouvrir le dossier contenant le fichier sélectionné"
|
||||||
|
|
||||||
#: qt/base/result_window.py:62 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:58 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Rename Selected"
|
msgid "Rename Selected"
|
||||||
msgstr "Renommer sélectionné"
|
msgstr "Renommer sélectionné"
|
||||||
|
|
||||||
#: qt/base/result_window.py:63 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:59 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark All"
|
msgid "Mark All"
|
||||||
msgstr "Tout marquer"
|
msgstr "Tout marquer"
|
||||||
|
|
||||||
#: qt/base/result_window.py:64 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:60 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark None"
|
msgid "Mark None"
|
||||||
msgstr "Tout démarquer"
|
msgstr "Tout démarquer"
|
||||||
|
|
||||||
#: qt/base/result_window.py:65 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:61 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Invert Marking"
|
msgid "Invert Marking"
|
||||||
msgstr "Inverser le marquage"
|
msgstr "Inverser le marquage"
|
||||||
|
|
||||||
#: qt/base/result_window.py:66 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:62 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Mark Selected"
|
msgid "Mark Selected"
|
||||||
msgstr "Marquer sélectionnés"
|
msgstr "Marquer sélectionnés"
|
||||||
|
|
||||||
#: qt/base/result_window.py:67
|
#: qt/base/result_window.py:63
|
||||||
msgid "Export To HTML"
|
msgid "Export To HTML"
|
||||||
msgstr "Exporter vers HTML"
|
msgstr "Exporter vers HTML"
|
||||||
|
|
||||||
#: qt/base/result_window.py:68 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:64 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Save Results..."
|
msgid "Save Results..."
|
||||||
msgstr "Sauvegarder résultats..."
|
msgstr "Sauvegarder résultats..."
|
||||||
|
|
||||||
#: qt/base/result_window.py:69 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:65 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Invoke Custom Command"
|
msgid "Invoke Custom Command"
|
||||||
msgstr "Invoquer commande personnalisée"
|
msgstr "Invoquer commande personnalisée"
|
||||||
|
|
||||||
#: qt/base/result_window.py:84
|
#: qt/base/result_window.py:77
|
||||||
msgid "Mark"
|
msgid "Mark"
|
||||||
msgstr "Marquer"
|
msgstr "Marquer"
|
||||||
|
|
||||||
#: qt/base/result_window.py:88 cocoa/base/en.lproj/MainMenu.strings:0
|
#: qt/base/result_window.py:81 cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Columns"
|
msgid "Columns"
|
||||||
msgstr "Colonnes"
|
msgstr "Colonnes"
|
||||||
|
|
||||||
#: qt/base/result_window.py:147 cocoa/se/en.lproj/Preferences.strings:0
|
#: qt/base/result_window.py:139 cocoa/se/en.lproj/Preferences.strings:0
|
||||||
#: cocoa/me/en.lproj/Preferences.strings:0
|
#: cocoa/me/en.lproj/Preferences.strings:0
|
||||||
#: cocoa/pe/en.lproj/Preferences.strings:0
|
#: cocoa/pe/en.lproj/Preferences.strings:0
|
||||||
msgid "Reset to Defaults"
|
msgid "Reset to Defaults"
|
||||||
msgstr "Réinitialiser"
|
msgstr "Réinitialiser"
|
||||||
|
|
||||||
#: qt/base/result_window.py:170
|
#: qt/base/result_window.py:161
|
||||||
msgid "{} Results"
|
msgid "{} Results"
|
||||||
msgstr "{} (Résultats)"
|
msgstr "{} (Résultats)"
|
||||||
|
|
||||||
#: qt/base/result_window.py:300 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/base/result_window.py:292 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Select a file to save your results to"
|
msgid "Select a file to save your results to"
|
||||||
msgstr "Sélectionnez un fichier résultats dans lequel sauvegarder"
|
msgstr "Sélectionnez un fichier résultats dans lequel sauvegarder"
|
||||||
|
|
||||||
@@ -507,16 +499,16 @@ msgstr "EXIF Timestamp"
|
|||||||
msgid "Match pictures of different dimensions"
|
msgid "Match pictures of different dimensions"
|
||||||
msgstr "Comparer les images de tailles différentes"
|
msgstr "Comparer les images de tailles différentes"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:20 qt/pe/result_window.py:25
|
#: qt/pe/result_window.py:19 qt/pe/result_window.py:24
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Clear Picture Cache"
|
msgid "Clear Picture Cache"
|
||||||
msgstr "Vider la cache d'images"
|
msgstr "Vider la cache d'images"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:26 cocoa/base/en.lproj/Localizable.strings:0
|
#: qt/pe/result_window.py:25 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Do you really want to remove all your cached picture analysis?"
|
msgid "Do you really want to remove all your cached picture analysis?"
|
||||||
msgstr "Voulez-vous vraiment vider la cache de vos analyses précédentes?"
|
msgstr "Voulez-vous vraiment vider la cache de vos analyses précédentes?"
|
||||||
|
|
||||||
#: qt/pe/result_window.py:29
|
#: qt/pe/result_window.py:28
|
||||||
msgid "Picture cache cleared."
|
msgid "Picture cache cleared."
|
||||||
msgstr "La cache des analyses précédentes a été vidée."
|
msgstr "La cache des analyses précédentes a été vidée."
|
||||||
|
|
||||||
@@ -549,10 +541,6 @@ msgstr "Charger un fichier..."
|
|||||||
msgid "Reset to Default"
|
msgid "Reset to Default"
|
||||||
msgstr "Colonnes par défault"
|
msgstr "Colonnes par défault"
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
|
||||||
msgid "Add iTunes Directory"
|
|
||||||
msgstr "Ajouter librairie iTunes"
|
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "Remove Dead Tracks in iTunes"
|
msgid "Remove Dead Tracks in iTunes"
|
||||||
msgstr "Retirer les tracks mortes dans iTunes"
|
msgstr "Retirer les tracks mortes dans iTunes"
|
||||||
@@ -605,11 +593,6 @@ msgstr "Préférences..."
|
|||||||
msgid "Folder Selection Window"
|
msgid "Folder Selection Window"
|
||||||
msgstr "Fenêtre de sélection de dossiers"
|
msgstr "Fenêtre de sélection de dossiers"
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
|
||||||
msgid "Send Marked to Trash"
|
|
||||||
msgstr "Envoyer marqués à la corbeille"
|
|
||||||
|
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Reveal Selected in Finder"
|
msgid "Reveal Selected in Finder"
|
||||||
@@ -663,6 +646,8 @@ msgstr "Re-prioriser les résultats"
|
|||||||
msgid "Ok"
|
msgid "Ok"
|
||||||
msgstr "Ok"
|
msgstr "Ok"
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:53
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
#: cocoa/base/en.lproj/PrioritizeDialog.strings:0
|
#: cocoa/base/en.lproj/PrioritizeDialog.strings:0
|
||||||
msgid "Cancel"
|
msgid "Cancel"
|
||||||
msgstr "Annuler"
|
msgstr "Annuler"
|
||||||
@@ -701,7 +686,7 @@ msgstr "Action"
|
|||||||
msgid "Directories"
|
msgid "Directories"
|
||||||
msgstr "Dossiers"
|
msgstr "Dossiers"
|
||||||
|
|
||||||
#: qt/base/result_window.py:178 cocoa/base/en.lproj/ResultWindow.strings:0
|
#: qt/base/result_window.py:169 cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
msgid "Dupes Only"
|
msgid "Dupes Only"
|
||||||
msgstr "Sans réf."
|
msgstr "Sans réf."
|
||||||
|
|
||||||
@@ -800,15 +785,15 @@ msgstr "Retrait des tracks mortes de votre librairie iTunes"
|
|||||||
msgid "Scanning the iTunes Library"
|
msgid "Scanning the iTunes Library"
|
||||||
msgstr "Scan de la librairie iTunes en cours"
|
msgstr "Scan de la librairie iTunes en cours"
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:154 cocoa/inter/app_pe.py:144
|
#: cocoa/inter/app_me.py:157 cocoa/inter/app_pe.py:186
|
||||||
msgid "Sending dupes to the Trash"
|
msgid "Sending dupes to the Trash"
|
||||||
msgstr "Envoi de doublons à la corbeille en cours"
|
msgstr "Envoi de doublons à la corbeille en cours"
|
||||||
|
|
||||||
#: cocoa/inter/app_pe.py:146
|
#: cocoa/inter/app_pe.py:188
|
||||||
msgid "Talking to iPhoto. Don't touch it!"
|
msgid "Talking to iPhoto. Don't touch it!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_pe.py:201
|
#: cocoa/inter/app_pe.py:296
|
||||||
msgid "The iPhoto application couldn't be found."
|
msgid "The iPhoto application couldn't be found."
|
||||||
msgstr "iPhoto n'a pas pu être trouvée dans vos applications."
|
msgstr "iPhoto n'a pas pu être trouvée dans vos applications."
|
||||||
|
|
||||||
@@ -824,14 +809,14 @@ msgstr "'%@' n'existe pas."
|
|||||||
msgid "The name '%@' already exists."
|
msgid "The name '%@' already exists."
|
||||||
msgstr "Le nom '%@' existe déjà."
|
msgstr "Le nom '%@' existe déjà."
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:182 cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/inter/app_me.py:191 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid ""
|
msgid ""
|
||||||
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Votre librairie iTunes contient %d tracks mortes qui seront retirées. "
|
"Votre librairie iTunes contient %d tracks mortes qui seront retirées. "
|
||||||
"Continuer?"
|
"Continuer?"
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:186 cocoa/base/en.lproj/Localizable.strings:0
|
#: cocoa/inter/app_me.py:195 cocoa/base/en.lproj/Localizable.strings:0
|
||||||
msgid "You have no dead tracks in your iTunes Library"
|
msgid "You have no dead tracks in your iTunes Library"
|
||||||
msgstr "Votre librairie iTunes ne contient aucune track morte."
|
msgstr "Votre librairie iTunes ne contient aucune track morte."
|
||||||
|
|
||||||
@@ -847,36 +832,112 @@ msgstr "Non"
|
|||||||
msgid "OK"
|
msgid "OK"
|
||||||
msgstr "OK"
|
msgstr "OK"
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:156
|
#: cocoa/inter/app_me.py:159
|
||||||
msgid "Talking to iTunes. Don't touch it!"
|
msgid "Talking to iTunes. Don't touch it!"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:200
|
#: cocoa/inter/app_me.py:213
|
||||||
msgid "The iTunes application couldn't be found."
|
msgid "The iTunes application couldn't be found."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/result_window.py:179
|
#: qt/base/result_window.py:170
|
||||||
msgid "Delta Values"
|
msgid "Delta Values"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: cocoa/inter/app_me.py:176
|
#: cocoa/inter/app_me.py:185
|
||||||
msgid ""
|
msgid ""
|
||||||
"There were communication problems with iTunes. The operation couldn't be "
|
"There were communication problems with iTunes. The operation couldn't be "
|
||||||
"completed."
|
"completed."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: qt/base/app.py:112 qt/base/ignore_list_dialog.py:31
|
#: qt/base/app.py:114 qt/base/ignore_list_dialog.py:32
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
#: cocoa/base/en.lproj/MainMenu.strings:0
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
msgid "Ignore List"
|
msgid "Ignore List"
|
||||||
msgstr "Liste de doublons ignorés"
|
msgstr "Liste de doublons ignorés"
|
||||||
|
|
||||||
#: qt/base/ignore_list_dialog.py:44
|
#: qt/base/ignore_list_dialog.py:45
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
msgid "Remove Selected"
|
msgid "Remove Selected"
|
||||||
msgstr "Effacer sélection"
|
msgstr "Effacer sélection"
|
||||||
|
|
||||||
#: qt/base/ignore_list_dialog.py:45
|
#: qt/base/ignore_list_dialog.py:46
|
||||||
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
#: cocoa/base/en.lproj/IgnoreListDialog.strings:0
|
||||||
msgid "Clear"
|
msgid "Clear"
|
||||||
msgstr "Vider"
|
msgstr "Vider"
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:29
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Deletion Options"
|
||||||
|
msgstr "Options de suppression"
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:34
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Hardlink deleted files"
|
||||||
|
msgstr "Remplacer par des \"hardlinks\""
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:39
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid ""
|
||||||
|
"After having deleted a duplicate, place a hardlink targeting the reference "
|
||||||
|
"file to replace the deleted file."
|
||||||
|
msgstr ""
|
||||||
|
"Après avoir supprimé un fichier, on remplace celui-ci par un lien vers son "
|
||||||
|
"fichier de référence."
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:44
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Directly delete files"
|
||||||
|
msgstr "Supprimer les fichiers directement"
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:46
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid ""
|
||||||
|
"Instead of sending files to trash, delete them directly. This option is "
|
||||||
|
"usually used as a workaround when the normal deletion method doesn't work."
|
||||||
|
msgstr ""
|
||||||
|
"Au lieu de passer par la corbeille, supprimer directement. Cette option "
|
||||||
|
"n'est généralement utilisée qu'en cas de problème."
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:52
|
||||||
|
#: cocoa/base/en.lproj/DeletionOptions.strings:0
|
||||||
|
msgid "Proceed"
|
||||||
|
msgstr "Continuer"
|
||||||
|
|
||||||
|
#: cocoa/inter/app_pe.py:197
|
||||||
|
msgid "Talking to Aperture. Don't touch it!"
|
||||||
|
msgstr "En communication avec Aperture. N'y touchez pas!"
|
||||||
|
|
||||||
|
#: cocoa/inter/app_pe.py:270
|
||||||
|
msgid "Deleted Aperture photos were sent to a project called \"dupeGuru Trash\"."
|
||||||
|
msgstr "Les photos supprimés d'Aperture sont dans le projet nommé \"dupeGuru Trash\"."
|
||||||
|
|
||||||
|
#: qt/base/deletion_options.py:37
|
||||||
|
msgid " (Mac OS X or Linux only)"
|
||||||
|
msgstr " (Mac OS X ou Linux seulement)"
|
||||||
|
|
||||||
|
#: qt/base/result_window.py:48
|
||||||
|
msgid "Send Marked to Recycle Bin..."
|
||||||
|
msgstr "Envoyer marqués à la corbeille..."
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
|
msgid "Add iTunes Library"
|
||||||
|
msgstr "Ajouter librairie iTunes"
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/Localizable.strings:0
|
||||||
|
msgid "Add Aperture Library"
|
||||||
|
msgstr "Ajouter librairie Aperture"
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
|
msgid "Send Marked to Trash..."
|
||||||
|
msgstr "Envoyer marqués à la corbeille..."
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
#: cocoa/base/en.lproj/ResultWindow.strings:0
|
||||||
|
msgid "Quick Look"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: cocoa/base/en.lproj/MainMenu.strings:0
|
||||||
|
msgid "Filter Results..."
|
||||||
|
msgstr "Filtrer les résultats..."
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user