mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-25 16:11:39 +00:00
Compare commits
39 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7d0948cd23 | ||
|
|
c4824b0f16 | ||
|
|
ea32af04fb | ||
|
|
e519e41e42 | ||
|
|
c937f2b20f | ||
|
|
fc477ab3b5 | ||
|
|
c53ddcdee1 | ||
|
|
9e668b11b8 | ||
|
|
f53a4c261c | ||
|
|
9a2554d24e | ||
|
|
b9ac135b89 | ||
|
|
235d3ae521 | ||
|
|
a487e83f3c | ||
|
|
4aaff8ffb1 | ||
|
|
302050b2d6 | ||
|
|
1b571f6fd2 | ||
|
|
baa2177439 | ||
|
|
29796e87b7 | ||
|
|
017e483b5a | ||
|
|
7a167208d0 | ||
|
|
475f2c7238 | ||
|
|
9392f818cc | ||
|
|
58347bc36f | ||
|
|
55db21f3e0 | ||
|
|
950cd0c341 | ||
|
|
937ea73c87 | ||
|
|
7bce70c128 | ||
|
|
f9ced08e6d | ||
|
|
4c8ce4b52d | ||
|
|
0d78201548 | ||
|
|
45d4915d88 | ||
|
|
a699a2ef45 | ||
|
|
f6dd1a6a42 | ||
|
|
e6819781f6 | ||
|
|
12467c9493 | ||
|
|
0c7d73854d | ||
|
|
a7eeb7db89 | ||
|
|
989026051c | ||
|
|
56fd94e205 |
@@ -14,6 +14,7 @@ build
|
|||||||
dist
|
dist
|
||||||
install
|
install
|
||||||
installer_tmp-cache
|
installer_tmp-cache
|
||||||
|
cocoa/autogen
|
||||||
cocoa/*/Info.plist
|
cocoa/*/Info.plist
|
||||||
cocoa/*/build
|
cocoa/*/build
|
||||||
cocoa/*/*.app
|
cocoa/*/*.app
|
||||||
@@ -27,6 +28,7 @@ cocoa/*/it.lproj/*.xib
|
|||||||
# fine, but we'll eventually only have en.lproj in the repo.
|
# fine, but we'll eventually only have en.lproj in the repo.
|
||||||
hy.lproj
|
hy.lproj
|
||||||
ru.lproj
|
ru.lproj
|
||||||
|
uk.lproj
|
||||||
qt/base/*_rc.py
|
qt/base/*_rc.py
|
||||||
help/*/conf.py
|
help/*/conf.py
|
||||||
help/*/changelog.rst
|
help/*/changelog.rst
|
||||||
2
.hgtags
2
.hgtags
@@ -63,3 +63,5 @@ a2f7b7302e178f08725a6404ddc28464409510b1 se3.2.0
|
|||||||
9ea9af1b886cd1adc4f42fd2276cc2b38376eab0 se3.3.0
|
9ea9af1b886cd1adc4f42fd2276cc2b38376eab0 se3.3.0
|
||||||
6e3379be6821bb36d7f0877a17dd6c07aa037b0a se3.3.1
|
6e3379be6821bb36d7f0877a17dd6c07aa037b0a se3.3.1
|
||||||
015ba7e2c10d09afb944f387c2a9c97f7eff7571 me6.2.0
|
015ba7e2c10d09afb944f387c2a9c97f7eff7571 me6.2.0
|
||||||
|
8178bda48324461a17118c98634241952c074f29 pe2.4.0
|
||||||
|
2a96f2fb3ddb6f1e0ae87951586733fc3e4a28a0 se3.3.2
|
||||||
|
|||||||
4
README
4
README
@@ -39,8 +39,8 @@ OS X prerequisites
|
|||||||
|
|
||||||
- XCode 4.1
|
- XCode 4.1
|
||||||
- Sparkle (http://sparkle.andymatuschak.org/)
|
- Sparkle (http://sparkle.andymatuschak.org/)
|
||||||
- PyObjC 2.3 (http://pyobjc.sourceforge.net/)
|
- objp 1.1.0 (http://bitbucket.org/hsoft/objp)
|
||||||
- pluginbuilder 1.0.1 (http://bitbucket.org/hsoft/pluginbuilder)
|
- pluginbuilder 1.1.0 (http://bitbucket.org/hsoft/pluginbuilder)
|
||||||
- appscript 1.0.0 for ME and PE (http://appscript.sourceforge.net/)
|
- appscript 1.0.0 for ME and PE (http://appscript.sourceforge.net/)
|
||||||
|
|
||||||
Windows prerequisites
|
Windows prerequisites
|
||||||
|
|||||||
96
build.py
96
build.py
@@ -6,17 +6,20 @@
|
|||||||
# which should be included with this package. The terms are also available at
|
# which should be included with this package. The terms are also available at
|
||||||
# http://www.hardcoded.net/licenses/bsd_license
|
# http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
|
||||||
|
import sys
|
||||||
import os
|
import os
|
||||||
import os.path as op
|
import os.path as op
|
||||||
from optparse import OptionParser
|
from optparse import OptionParser
|
||||||
import shutil
|
import shutil
|
||||||
import json
|
import json
|
||||||
|
import importlib
|
||||||
|
|
||||||
from setuptools import setup, Extension
|
from setuptools import setup, Extension
|
||||||
|
|
||||||
from hscommon import sphinxgen
|
from hscommon import sphinxgen
|
||||||
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
|
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
|
||||||
get_module_version, build_all_cocoa_locs, move_all)
|
get_module_version, build_all_cocoa_locs, move_all, copy_sysconfig_files_for_embed, copy_all,
|
||||||
|
move)
|
||||||
from hscommon import loc
|
from hscommon import loc
|
||||||
|
|
||||||
def parse_args():
|
def parse_args():
|
||||||
@@ -28,6 +31,8 @@ def parse_args():
|
|||||||
help="Build only the help file")
|
help="Build only the help file")
|
||||||
parser.add_option('--loc', action='store_true', dest='loc',
|
parser.add_option('--loc', action='store_true', dest='loc',
|
||||||
help="Build only localization")
|
help="Build only localization")
|
||||||
|
parser.add_option('--cocoamod', action='store_true', dest='cocoamod',
|
||||||
|
help="Build only Cocoa modules")
|
||||||
parser.add_option('--updatepot', action='store_true', dest='updatepot',
|
parser.add_option('--updatepot', action='store_true', dest='updatepot',
|
||||||
help="Generate .pot files from source code.")
|
help="Generate .pot files from source code.")
|
||||||
parser.add_option('--mergepot', action='store_true', dest='mergepot',
|
parser.add_option('--mergepot', action='store_true', dest='mergepot',
|
||||||
@@ -36,26 +41,32 @@ def parse_args():
|
|||||||
return options
|
return options
|
||||||
|
|
||||||
def build_cocoa(edition, dev):
|
def build_cocoa(edition, dev):
|
||||||
from pluginbuilder import build_plugin
|
|
||||||
build_cocoa_proxy_module()
|
build_cocoa_proxy_module()
|
||||||
print("Building dg_cocoa.plugin")
|
build_cocoa_bridging_interfaces(edition)
|
||||||
|
print("Building the cocoa layer")
|
||||||
|
from pluginbuilder import copy_embeddable_python_dylib, get_python_header_folder, collect_dependencies
|
||||||
|
copy_embeddable_python_dylib('build')
|
||||||
|
if not op.exists('build/PythonHeaders'):
|
||||||
|
os.symlink(get_python_header_folder(), 'build/PythonHeaders')
|
||||||
|
if not op.exists('build/py'):
|
||||||
|
os.mkdir('build/py')
|
||||||
|
cocoa_project_path = 'cocoa/{0}'.format(edition)
|
||||||
|
shutil.copy(op.join(cocoa_project_path, 'dg_cocoa.py'), 'build')
|
||||||
specific_packages = {
|
specific_packages = {
|
||||||
'se': ['core_se'],
|
'se': ['core_se'],
|
||||||
'me': ['core_me'],
|
'me': ['core_me'],
|
||||||
'pe': ['core_pe'],
|
'pe': ['core_pe'],
|
||||||
}[edition]
|
}[edition]
|
||||||
tocopy = ['core', 'hscommon', 'cocoa/inter', 'cocoalib/cocoa'] + specific_packages
|
tocopy = ['core', 'hscommon', 'cocoa/inter', 'cocoalib/cocoa'] + specific_packages
|
||||||
copy_packages(tocopy, 'build', create_links=dev)
|
copy_packages(tocopy, 'build')
|
||||||
cocoa_project_path = 'cocoa/{0}'.format(edition)
|
sys.path.insert(0, 'build')
|
||||||
shutil.copy(op.join(cocoa_project_path, 'dg_cocoa.py'), 'build')
|
collect_dependencies('build/dg_cocoa.py', 'build/py', excludes=['PyQt4'])
|
||||||
os.chdir('build')
|
del sys.path[0]
|
||||||
# We have to exclude PyQt4 specifically because it's conditionally imported in hscommon.trans
|
if dev:
|
||||||
build_plugin('dg_cocoa.py', excludes=['PyQt4'], alias=dev)
|
copy_packages(tocopy, 'build/py', create_links=True)
|
||||||
os.chdir('..')
|
# Views are not referenced by python code, so they're not found by the collector.
|
||||||
pluginpath = op.join(cocoa_project_path, 'dg_cocoa.plugin')
|
copy_all('build/inter/*.so', 'build/py/inter')
|
||||||
if op.exists(pluginpath):
|
copy_sysconfig_files_for_embed('build/py')
|
||||||
shutil.rmtree(pluginpath)
|
|
||||||
shutil.move('build/dist/dg_cocoa.plugin', pluginpath)
|
|
||||||
os.chdir(cocoa_project_path)
|
os.chdir(cocoa_project_path)
|
||||||
print('Generating Info.plist')
|
print('Generating Info.plist')
|
||||||
app_version = get_module_version('core_{}'.format(edition))
|
app_version = get_module_version('core_{}'.format(edition))
|
||||||
@@ -155,19 +166,55 @@ def build_mergepot():
|
|||||||
loc.merge_pots_into_pos(op.join('hscommon', 'locale'))
|
loc.merge_pots_into_pos(op.join('hscommon', 'locale'))
|
||||||
loc.merge_pots_into_pos(op.join('qtlib', 'locale'))
|
loc.merge_pots_into_pos(op.join('qtlib', 'locale'))
|
||||||
|
|
||||||
|
def build_cocoa_ext(extname, dest, source_files, extra_frameworks=(), extra_includes=()):
|
||||||
|
extra_link_args = ["-framework", "CoreFoundation", "-framework", "Foundation"]
|
||||||
|
for extra in extra_frameworks:
|
||||||
|
extra_link_args += ['-framework', extra]
|
||||||
|
ext = Extension(extname, source_files, extra_link_args=extra_link_args, include_dirs=extra_includes)
|
||||||
|
setup(script_args=['build_ext', '--inplace'], ext_modules=[ext])
|
||||||
|
fn = extname + '.so'
|
||||||
|
assert op.exists(fn)
|
||||||
|
move(fn, op.join(dest, fn))
|
||||||
|
|
||||||
def build_cocoa_proxy_module():
|
def build_cocoa_proxy_module():
|
||||||
print("Building Cocoa Proxy")
|
print("Building Cocoa Proxy")
|
||||||
import objp.p2o
|
import objp.p2o
|
||||||
objp.p2o.generate_python_proxy_code('cocoalib/cocoa/CocoaProxy.h', 'build/CocoaProxy.m')
|
objp.p2o.generate_python_proxy_code('cocoalib/cocoa/CocoaProxy.h', 'build/CocoaProxy.m')
|
||||||
exts = [
|
build_cocoa_ext("CocoaProxy", 'cocoalib/cocoa',
|
||||||
Extension("CocoaProxy", ['cocoalib/cocoa/CocoaProxy.m', 'build/CocoaProxy.m', 'build/ObjP.m'],
|
['cocoalib/cocoa/CocoaProxy.m', 'build/CocoaProxy.m', 'build/ObjP.m', 'cocoalib/HSErrorReportWindow.m'],
|
||||||
extra_link_args=["-framework", "CoreFoundation", "-framework", "Foundation", "-framework", "AppKit"]),
|
['AppKit', 'CoreServices'],
|
||||||
]
|
['cocoalib'])
|
||||||
setup(
|
|
||||||
script_args = ['build_ext', '--inplace'],
|
def build_cocoa_bridging_interfaces(edition):
|
||||||
ext_modules = exts,
|
print("Building Cocoa Bridging Interfaces")
|
||||||
)
|
import objp.o2p
|
||||||
move_all('CocoaProxy*', 'cocoalib/cocoa')
|
import objp.p2o
|
||||||
|
add_to_pythonpath('cocoa')
|
||||||
|
add_to_pythonpath('cocoalib')
|
||||||
|
from cocoa.inter import (PyGUIObject, GUIObjectView, PyColumns, ColumnsView, PyOutline,
|
||||||
|
OutlineView, PySelectableList, SelectableListView, PyTable, TableView, PyFairware)
|
||||||
|
from inter.details_panel import PyDetailsPanel, DetailsPanelView
|
||||||
|
from inter.directory_outline import PyDirectoryOutline, DirectoryOutlineView
|
||||||
|
from inter.extra_fairware_reminder import PyExtraFairwareReminder, ExtraFairwareReminderView
|
||||||
|
from inter.prioritize_dialog import PyPrioritizeDialog, PrioritizeDialogView
|
||||||
|
from inter.prioritize_list import PyPrioritizeList, PrioritizeListView
|
||||||
|
from inter.problem_dialog import PyProblemDialog
|
||||||
|
from inter.result_table import PyResultTable, ResultTableView
|
||||||
|
from inter.stats_label import PyStatsLabel, StatsLabelView
|
||||||
|
from inter.app import PyDupeGuruBase, DupeGuruView
|
||||||
|
appmod = importlib.import_module('inter.app_{}'.format(edition))
|
||||||
|
allclasses = [PyGUIObject, PyColumns, PyOutline, PySelectableList, PyTable, PyFairware,
|
||||||
|
PyDetailsPanel, PyDirectoryOutline, PyExtraFairwareReminder, PyPrioritizeDialog,
|
||||||
|
PyPrioritizeList, PyProblemDialog, PyResultTable, PyStatsLabel, PyDupeGuruBase,
|
||||||
|
appmod.PyDupeGuru]
|
||||||
|
for class_ in allclasses:
|
||||||
|
objp.o2p.generate_objc_code(class_, 'cocoa/autogen', inherit=True)
|
||||||
|
allclasses = [GUIObjectView, ColumnsView, OutlineView, SelectableListView, TableView,
|
||||||
|
DetailsPanelView, DirectoryOutlineView, ExtraFairwareReminderView, PrioritizeDialogView,
|
||||||
|
PrioritizeListView, ResultTableView, StatsLabelView, DupeGuruView]
|
||||||
|
clsspecs = [objp.o2p.spec_from_python_class(class_) for class_ in allclasses]
|
||||||
|
objp.p2o.generate_python_proxy_code_from_clsspec(clsspecs, 'build/CocoaViews.m')
|
||||||
|
build_cocoa_ext('CocoaViews', 'cocoa/inter', ['build/CocoaViews.m', 'build/ObjP.m'])
|
||||||
|
|
||||||
def build_pe_modules(ui):
|
def build_pe_modules(ui):
|
||||||
print("Building PE Modules")
|
print("Building PE Modules")
|
||||||
@@ -227,6 +274,9 @@ def main():
|
|||||||
build_updatepot()
|
build_updatepot()
|
||||||
elif options.mergepot:
|
elif options.mergepot:
|
||||||
build_mergepot()
|
build_mergepot()
|
||||||
|
elif options.cocoamod:
|
||||||
|
build_cocoa_proxy_module()
|
||||||
|
build_cocoa_bridging_interfaces(edition)
|
||||||
else:
|
else:
|
||||||
build_normal(edition, ui, dev)
|
build_normal(edition, ui, dev)
|
||||||
|
|
||||||
|
|||||||
@@ -16,11 +16,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
@interface AppDelegateBase : NSObject
|
@interface AppDelegateBase : NSObject
|
||||||
{
|
{
|
||||||
IBOutlet PyDupeGuruBase *py;
|
|
||||||
IBOutlet NSMenu *recentResultsMenu;
|
IBOutlet NSMenu *recentResultsMenu;
|
||||||
IBOutlet NSMenu *actionsMenu;
|
IBOutlet NSMenu *actionsMenu;
|
||||||
IBOutlet NSMenu *columnsMenu;
|
IBOutlet NSMenu *columnsMenu;
|
||||||
|
|
||||||
|
PyDupeGuru *model;
|
||||||
ResultWindowBase *_resultWindow;
|
ResultWindowBase *_resultWindow;
|
||||||
DirectoryPanel *_directoryPanel;
|
DirectoryPanel *_directoryPanel;
|
||||||
DetailsPanel *_detailsPanel;
|
DetailsPanel *_detailsPanel;
|
||||||
@@ -30,7 +30,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Virtual */
|
/* Virtual */
|
||||||
- (PyDupeGuruBase *)py;
|
- (PyDupeGuru *)model;
|
||||||
- (ResultWindowBase *)createResultWindow;
|
- (ResultWindowBase *)createResultWindow;
|
||||||
- (DirectoryPanel *)createDirectoryPanel;
|
- (DirectoryPanel *)createDirectoryPanel;
|
||||||
- (DetailsPanel *)createDetailsPanel;
|
- (DetailsPanel *)createDetailsPanel;
|
||||||
|
|||||||
@@ -25,7 +25,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (void)awakeFromNib
|
- (void)awakeFromNib
|
||||||
{
|
{
|
||||||
[py bindCocoa:self];
|
model = [[PyDupeGuru alloc] init];
|
||||||
|
[model bindCallback:createCallback(@"DupeGuruView", self)];
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
/* Because the pref pane is lazily loaded, we have to manually do the update check if the
|
/* Because the pref pane is lazily loaded, we have to manually do the update check if the
|
||||||
preference is set.
|
preference is set.
|
||||||
@@ -45,7 +46,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
/* Virtual */
|
/* Virtual */
|
||||||
|
|
||||||
- (PyDupeGuruBase *)py { return py; }
|
- (PyDupeGuru *)model
|
||||||
|
{
|
||||||
|
return model;
|
||||||
|
}
|
||||||
|
|
||||||
- (ResultWindowBase *)createResultWindow
|
- (ResultWindowBase *)createResultWindow
|
||||||
{
|
{
|
||||||
@@ -59,7 +63,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (DetailsPanel *)createDetailsPanel
|
- (DetailsPanel *)createDetailsPanel
|
||||||
{
|
{
|
||||||
return [[DetailsPanel alloc] initWithPy:py];
|
return [[DetailsPanel alloc] initWithPyRef:[model detailsPanel]];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)homepageURL
|
- (NSString *)homepageURL
|
||||||
@@ -104,7 +108,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
[op setTitle:TR(@"Select a results file to load")];
|
[op setTitle:TR(@"Select a results file to load")];
|
||||||
if ([op runModal] == NSOKButton) {
|
if ([op runModal] == NSOKButton) {
|
||||||
NSString *filename = [[op filenames] objectAtIndex:0];
|
NSString *filename = [[op filenames] objectAtIndex:0];
|
||||||
[py loadResultsFrom:filename];
|
[model loadResultsFrom:filename];
|
||||||
[[self recentResults] addFile:filename];
|
[[self recentResults] addFile:filename];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -125,7 +129,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
- (IBAction)showAboutBox:(id)sender
|
- (IBAction)showAboutBox:(id)sender
|
||||||
{
|
{
|
||||||
if (_aboutBox == nil) {
|
if (_aboutBox == nil) {
|
||||||
_aboutBox = [[HSAboutBox alloc] initWithApp:py];
|
_aboutBox = [[HSAboutBox alloc] initWithApp:model];
|
||||||
}
|
}
|
||||||
[[_aboutBox window] makeKeyAndOrderFront:sender];
|
[[_aboutBox window] makeKeyAndOrderFront:sender];
|
||||||
}
|
}
|
||||||
@@ -157,9 +161,9 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* Delegate */
|
/* Delegate */
|
||||||
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
||||||
{
|
{
|
||||||
[[ProgressController mainProgressController] setWorker:py];
|
[[ProgressController mainProgressController] setWorker:model];
|
||||||
[py initialRegistrationSetup];
|
[model initialRegistrationSetup];
|
||||||
[py loadSession];
|
[model loadSession];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)applicationWillBecomeActive:(NSNotification *)aNotification
|
- (void)applicationWillBecomeActive:(NSNotification *)aNotification
|
||||||
@@ -171,7 +175,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
|
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
|
||||||
{
|
{
|
||||||
if ([py resultsAreModified]) {
|
if ([model resultsAreModified]) {
|
||||||
NSString *msg = TR(@"You have unsaved results, do you really want to quit?");
|
NSString *msg = TR(@"You have unsaved results, do you really want to quit?");
|
||||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) { // NO
|
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) { // NO
|
||||||
return NSTerminateCancel;
|
return NSTerminateCancel;
|
||||||
@@ -186,10 +190,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
NSInteger sc = [ud integerForKey:@"sessionCountSinceLastIgnorePurge"];
|
NSInteger sc = [ud integerForKey:@"sessionCountSinceLastIgnorePurge"];
|
||||||
if (sc >= 10) {
|
if (sc >= 10) {
|
||||||
sc = -1;
|
sc = -1;
|
||||||
[py purgeIgnoreList];
|
[model purgeIgnoreList];
|
||||||
}
|
}
|
||||||
sc++;
|
sc++;
|
||||||
[py saveSession];
|
[model saveSession];
|
||||||
[ud setInteger:sc forKey:@"sessionCountSinceLastIgnorePurge"];
|
[ud setInteger:sc forKey:@"sessionCountSinceLastIgnorePurge"];
|
||||||
// NSApplication does not release nib instances objects, we must do it manually
|
// NSApplication does not release nib instances objects, we must do it manually
|
||||||
// Well, it isn't needed because the memory is freed anyway (we are quitting the application
|
// Well, it isn't needed because the memory is freed anyway (we are quitting the application
|
||||||
@@ -200,16 +204,17 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (void)recentFileClicked:(NSString *)path
|
- (void)recentFileClicked:(NSString *)path
|
||||||
{
|
{
|
||||||
[py loadResultsFrom:path];
|
[model loadResultsFrom:path];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* model --> view */
|
/* model --> view */
|
||||||
- (void)showExtraFairwareReminder
|
- (void)showExtraFairwareReminder
|
||||||
{
|
{
|
||||||
ExtraFairwareReminder *dialog = [[ExtraFairwareReminder alloc] initWithPy:py];
|
ExtraFairwareReminder *dialog = [[ExtraFairwareReminder alloc] initWithApp:model];
|
||||||
[dialog start];
|
[dialog start];
|
||||||
[NSApp runModalForWindow:[dialog window]];
|
[NSApp runModalForWindow:[dialog window]];
|
||||||
|
[dialog close];
|
||||||
[dialog release];
|
[dialog release];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -225,11 +230,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (void)showFairwareNagWithPrompt:(NSString *)prompt
|
- (void)showFairwareNagWithPrompt:(NSString *)prompt
|
||||||
{
|
{
|
||||||
[HSFairwareReminder showFairwareNagWithApp:[self py] prompt:prompt];
|
[HSFairwareReminder showFairwareNagWithApp:[self model] prompt:prompt];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)showDemoNagWithPrompt:(NSString *)prompt
|
- (void)showDemoNagWithPrompt:(NSString *)prompt
|
||||||
{
|
{
|
||||||
[HSFairwareReminder showDemoNagWithApp:[self py] prompt:prompt];
|
[HSFairwareReminder showDemoNagWithApp:[self model] prompt:prompt];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -7,16 +7,17 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#import "HSWindowController.h"
|
#import <Python.h>
|
||||||
#import "PyApp.h"
|
|
||||||
#import "PyDetailsPanel.h"
|
#import "PyDetailsPanel.h"
|
||||||
|
|
||||||
@interface DetailsPanel : HSWindowController
|
@interface DetailsPanel : NSWindowController
|
||||||
{
|
{
|
||||||
IBOutlet NSTableView *detailsTable;
|
IBOutlet NSTableView *detailsTable;
|
||||||
|
|
||||||
|
PyDetailsPanel *model;
|
||||||
}
|
}
|
||||||
- (id)initWithPy:(PyApp *)aPy;
|
- (id)initWithPyRef:(PyObject *)aPyRef;
|
||||||
- (PyDetailsPanel *)py;
|
- (PyDetailsPanel *)model;
|
||||||
|
|
||||||
- (BOOL)isVisible;
|
- (BOOL)isVisible;
|
||||||
- (void)toggleVisibility;
|
- (void)toggleVisibility;
|
||||||
|
|||||||
@@ -10,23 +10,24 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "Utils.h"
|
#import "Utils.h"
|
||||||
|
|
||||||
@implementation DetailsPanel
|
@implementation DetailsPanel
|
||||||
- (id)initWithPy:(PyApp *)aPy
|
- (id)initWithPyRef:(PyObject *)aPyRef
|
||||||
{
|
{
|
||||||
self = [super initWithNibName:@"DetailsPanel" pyClassName:@"PyDetailsPanel" pyParent:aPy];
|
self = [super initWithWindowNibName:@"DetailsPanel"];
|
||||||
[self window]; //So the detailsTable is initialized.
|
[self window]; //So the detailsTable is initialized.
|
||||||
[self connect];
|
model = [[PyDetailsPanel alloc] initWithModel:aPyRef];
|
||||||
|
[model bindCallback:createCallback(@"DetailsPanelView", self)];
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
{
|
{
|
||||||
[self disconnect];
|
[model release];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyDetailsPanel *)py
|
- (PyDetailsPanel *)model
|
||||||
{
|
{
|
||||||
return (PyDetailsPanel *)py;
|
return (PyDetailsPanel *)model;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)refreshDetails
|
- (void)refreshDetails
|
||||||
@@ -53,12 +54,12 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* NSTableView Delegate */
|
/* NSTableView Delegate */
|
||||||
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
|
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
|
||||||
{
|
{
|
||||||
return [[self py] numberOfRows];
|
return [[self model] numberOfRows];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)column row:(NSInteger)row
|
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)column row:(NSInteger)row
|
||||||
{
|
{
|
||||||
return [[self py] valueForColumn:[column identifier] row:row];
|
return [[self model] valueForColumn:[column identifier] row:row];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Python --> Cocoa */
|
/* Python --> Cocoa */
|
||||||
|
|||||||
@@ -7,12 +7,13 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#import <Python.h>
|
||||||
#import "HSOutline.h"
|
#import "HSOutline.h"
|
||||||
#import "PyDirectoryOutline.h"
|
#import "PyDirectoryOutline.h"
|
||||||
|
|
||||||
#define DGAddedFoldersNotification @"DGAddedFoldersNotification"
|
#define DGAddedFoldersNotification @"DGAddedFoldersNotification"
|
||||||
|
|
||||||
@interface DirectoryOutline : HSOutline {}
|
@interface DirectoryOutline : HSOutline {}
|
||||||
- (id)initWithPyParent:(id)aPyParent view:(HSOutlineView *)aOutlineView;
|
- (id)initWithPyRef:(PyObject *)aPyRef outlineView:(HSOutlineView *)aOutlineView;
|
||||||
- (PyDirectoryOutline *)py;
|
- (PyDirectoryOutline *)model;
|
||||||
@end;
|
@end;
|
||||||
@@ -9,23 +9,17 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "DirectoryOutline.h"
|
#import "DirectoryOutline.h"
|
||||||
|
|
||||||
@implementation DirectoryOutline
|
@implementation DirectoryOutline
|
||||||
- (id)initWithPyParent:(id)aPyParent view:(HSOutlineView *)aOutlineView
|
- (id)initWithPyRef:(PyObject *)aPyRef outlineView:(HSOutlineView *)aOutlineView
|
||||||
{
|
{
|
||||||
self = [super initWithPyClassName:@"PyDirectoryOutline" pyParent:aPyParent view:aOutlineView];
|
self = [super initWithPyRef:aPyRef wrapperClass:[PyDirectoryOutline class]
|
||||||
[outlineView registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]];
|
callbackClassName:@"DirectoryOutlineView" view:aOutlineView];
|
||||||
[self connect];
|
[[self view] registerForDraggedTypes:[NSArray arrayWithObject:NSFilenamesPboardType]];
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (PyDirectoryOutline *)model
|
||||||
{
|
{
|
||||||
[self disconnect];
|
return (PyDirectoryOutline *)model;
|
||||||
[super dealloc];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (PyDirectoryOutline *)py
|
|
||||||
{
|
|
||||||
return (PyDirectoryOutline *)py;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Delegate */
|
/* Delegate */
|
||||||
@@ -53,7 +47,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
if (!(sourceDragMask & NSDragOperationLink))
|
if (!(sourceDragMask & NSDragOperationLink))
|
||||||
return NO;
|
return NO;
|
||||||
for (NSString *foldername in foldernames) {
|
for (NSString *foldername in foldernames) {
|
||||||
[[self py] addDirectory:foldername];
|
[[self model] addDirectory:foldername];
|
||||||
}
|
}
|
||||||
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:foldernames forKey:@"foldernames"];
|
NSDictionary *userInfo = [NSDictionary dictionaryWithObject:foldernames forKey:@"foldernames"];
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:DGAddedFoldersNotification
|
[[NSNotificationCenter defaultCenter] postNotificationName:DGAddedFoldersNotification
|
||||||
@@ -67,7 +61,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
if ([cell isKindOfClass:[NSTextFieldCell class]]) {
|
if ([cell isKindOfClass:[NSTextFieldCell class]]) {
|
||||||
NSTextFieldCell *textCell = cell;
|
NSTextFieldCell *textCell = cell;
|
||||||
NSIndexPath *path = item;
|
NSIndexPath *path = item;
|
||||||
BOOL selected = [path isEqualTo:[outlineView selectedPath]];
|
BOOL selected = [path isEqualTo:[[self view] selectedPath]];
|
||||||
if (selected) {
|
if (selected) {
|
||||||
[textCell setTextColor:[NSColor blackColor]];
|
[textCell setTextColor:[NSColor blackColor]];
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
IBOutlet NSButton *removeButton;
|
IBOutlet NSButton *removeButton;
|
||||||
|
|
||||||
AppDelegateBase *_app;
|
AppDelegateBase *_app;
|
||||||
PyDupeGuruBase *_py;
|
PyDupeGuru *model;
|
||||||
HSRecentFiles *_recentDirectories;
|
HSRecentFiles *_recentDirectories;
|
||||||
DirectoryOutline *outline;
|
DirectoryOutline *outline;
|
||||||
BOOL _alwaysShowPopUp;
|
BOOL _alwaysShowPopUp;
|
||||||
|
|||||||
@@ -18,13 +18,13 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
self = [super initWithWindowNibName:@"DirectoryPanel"];
|
self = [super initWithWindowNibName:@"DirectoryPanel"];
|
||||||
[self window];
|
[self window];
|
||||||
_app = aParentApp;
|
_app = aParentApp;
|
||||||
_py = [_app py];
|
model = [_app model];
|
||||||
[[self window] setTitle:[_py appName]];
|
[[self window] setTitle:[model appName]];
|
||||||
_alwaysShowPopUp = NO;
|
_alwaysShowPopUp = NO;
|
||||||
[self fillPopUpMenu];
|
[self fillPopUpMenu];
|
||||||
_recentDirectories = [[HSRecentFiles alloc] initWithName:@"recentDirectories" menu:[addButtonPopUp menu]];
|
_recentDirectories = [[HSRecentFiles alloc] initWithName:@"recentDirectories" menu:[addButtonPopUp menu]];
|
||||||
[_recentDirectories setDelegate:self];
|
[_recentDirectories setDelegate:self];
|
||||||
outline = [[DirectoryOutline alloc] initWithPyParent:_py view:outlineView];
|
outline = [[DirectoryOutline alloc] initWithPyRef:[model directoryTree] outlineView:outlineView];
|
||||||
[self refreshRemoveButtonText];
|
[self refreshRemoveButtonText];
|
||||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(directorySelectionChanged:)
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(directorySelectionChanged:)
|
||||||
name:NSOutlineViewSelectionDidChangeNotification object:outlineView];
|
name:NSOutlineViewSelectionDidChangeNotification object:outlineView];
|
||||||
@@ -100,14 +100,14 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
- (IBAction)removeSelectedDirectory:(id)sender
|
- (IBAction)removeSelectedDirectory:(id)sender
|
||||||
{
|
{
|
||||||
[[self window] makeKeyAndOrderFront:nil];
|
[[self window] makeKeyAndOrderFront:nil];
|
||||||
[[outline py] removeSelectedDirectory];
|
[[outline model] removeSelectedDirectory];
|
||||||
[self refreshRemoveButtonText];
|
[self refreshRemoveButtonText];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Public */
|
/* Public */
|
||||||
- (void)addDirectory:(NSString *)directory
|
- (void)addDirectory:(NSString *)directory
|
||||||
{
|
{
|
||||||
NSInteger r = [[_py addDirectory:directory] intValue];
|
NSInteger r = [model addDirectory:directory];
|
||||||
if (r) {
|
if (r) {
|
||||||
NSString *m = @"";
|
NSString *m = @"";
|
||||||
if (r == 1) {
|
if (r == 1) {
|
||||||
|
|||||||
@@ -8,17 +8,17 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#import "PyExtraFairwareReminder.h"
|
#import "PyExtraFairwareReminder.h"
|
||||||
#import "HSWindowController.h"
|
#import "PyDupeGuru.h"
|
||||||
#import "PyApp.h"
|
|
||||||
|
|
||||||
@interface ExtraFairwareReminder : HSWindowController
|
@interface ExtraFairwareReminder : NSWindowController
|
||||||
{
|
{
|
||||||
IBOutlet NSButton *continueButton;
|
IBOutlet NSButton *continueButton;
|
||||||
|
|
||||||
|
PyExtraFairwareReminder *model;
|
||||||
NSTimer *timer;
|
NSTimer *timer;
|
||||||
}
|
}
|
||||||
- (id)initWithPy:(PyApp *)aPy;
|
- (id)initWithApp:(PyDupeGuru *)aApp;
|
||||||
- (PyExtraFairwareReminder *)py;
|
- (PyExtraFairwareReminder *)model;
|
||||||
|
|
||||||
- (void)start;
|
- (void)start;
|
||||||
- (void)updateButton;
|
- (void)updateButton;
|
||||||
|
|||||||
@@ -7,35 +7,39 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import "ExtraFairwareReminder.h"
|
#import "ExtraFairwareReminder.h"
|
||||||
|
#import "Utils.h"
|
||||||
|
|
||||||
@implementation ExtraFairwareReminder
|
@implementation ExtraFairwareReminder
|
||||||
- (id)initWithPy:(PyApp *)aPy
|
- (id)initWithApp:(PyDupeGuru *)aApp
|
||||||
{
|
{
|
||||||
self = [super initWithNibName:@"ExtraFairwareReminder" pyClassName:@"PyExtraFairwareReminder" pyParent:aPy];
|
self = [super initWithWindowNibName:@"ExtraFairwareReminder"];
|
||||||
[self window];
|
[self window];
|
||||||
[continueButton setEnabled:NO];
|
[continueButton setEnabled:NO];
|
||||||
|
model = [[PyExtraFairwareReminder alloc] initWithApp:[aApp pyRef]];
|
||||||
|
[model bindCallback:createCallback(@"ExtraFairwareReminderView", self)];
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
{
|
{
|
||||||
|
[model release];
|
||||||
[timer release];
|
[timer release];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyExtraFairwareReminder *)py
|
- (PyExtraFairwareReminder *)model
|
||||||
{
|
{
|
||||||
return (PyExtraFairwareReminder *)py;
|
return (PyExtraFairwareReminder *)model;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)start
|
- (void)start
|
||||||
{
|
{
|
||||||
[[self py] start];
|
[[self model] start];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)updateButton
|
- (void)updateButton
|
||||||
{
|
{
|
||||||
[[self py] updateButton];
|
[[self model] updateButton];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)continue:(id)sender
|
- (IBAction)continue:(id)sender
|
||||||
|
|||||||
@@ -7,25 +7,25 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#import "HSWindowController.h"
|
|
||||||
#import "PyApp.h"
|
|
||||||
#import "PyPrioritizeDialog.h"
|
#import "PyPrioritizeDialog.h"
|
||||||
#import "HSPopUpList.h"
|
#import "HSPopUpList.h"
|
||||||
#import "HSSelectableList.h"
|
#import "HSSelectableList.h"
|
||||||
#import "PrioritizeList.h"
|
#import "PrioritizeList.h"
|
||||||
|
#import "PyDupeGuru.h"
|
||||||
|
|
||||||
@interface PrioritizeDialog : HSWindowController
|
@interface PrioritizeDialog : NSWindowController
|
||||||
{
|
{
|
||||||
IBOutlet NSPopUpButton *categoryPopUpView;
|
IBOutlet NSPopUpButton *categoryPopUpView;
|
||||||
IBOutlet NSTableView *criteriaTableView;
|
IBOutlet NSTableView *criteriaTableView;
|
||||||
IBOutlet NSTableView *prioritizationTableView;
|
IBOutlet NSTableView *prioritizationTableView;
|
||||||
|
|
||||||
|
PyPrioritizeDialog *model;
|
||||||
HSPopUpList *categoryPopUp;
|
HSPopUpList *categoryPopUp;
|
||||||
HSSelectableList *criteriaList;
|
HSSelectableList *criteriaList;
|
||||||
PrioritizeList *prioritizationList;
|
PrioritizeList *prioritizationList;
|
||||||
}
|
}
|
||||||
- (id)initWithPy:(PyApp *)aPy;
|
- (id)initWithApp:(PyDupeGuru *)aApp;
|
||||||
- (PyPrioritizeDialog *)py;
|
- (PyPrioritizeDialog *)model;
|
||||||
|
|
||||||
- (IBAction)addSelected:(id)sender;
|
- (IBAction)addSelected:(id)sender;
|
||||||
- (IBAction)removeSelected:(id)sender;
|
- (IBAction)removeSelected:(id)sender;
|
||||||
|
|||||||
@@ -7,50 +7,54 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import "PrioritizeDialog.h"
|
#import "PrioritizeDialog.h"
|
||||||
|
#import "Utils.h"
|
||||||
|
|
||||||
@implementation PrioritizeDialog
|
@implementation PrioritizeDialog
|
||||||
- (id)initWithPy:(PyApp *)aPy
|
- (id)initWithApp:(PyDupeGuru *)aApp
|
||||||
{
|
{
|
||||||
self = [super initWithNibName:@"PrioritizeDialog" pyClassName:@"PyPrioritizeDialog" pyParent:aPy];
|
self = [super initWithWindowNibName:@"PrioritizeDialog"];
|
||||||
[self window];
|
[self window];
|
||||||
categoryPopUp = [[HSPopUpList alloc] initWithPy:[[self py] categoryList] view:categoryPopUpView];
|
model = [[PyPrioritizeDialog alloc] initWithApp:[aApp pyRef]];
|
||||||
criteriaList = [[HSSelectableList alloc] initWithPy:[[self py] criteriaList] view:criteriaTableView];
|
[model bindCallback:createCallback(@"PrioritizeDialogView", self)];
|
||||||
prioritizationList = [[PrioritizeList alloc] initWithPy:[[self py] prioritizationList] view:prioritizationTableView];
|
categoryPopUp = [[HSPopUpList alloc] initWithPyRef:[[self model] categoryList] popupView:categoryPopUpView];
|
||||||
[self connect];
|
criteriaList = [[HSSelectableList alloc] initWithPyRef:[[self model] criteriaList] tableView:criteriaTableView];
|
||||||
|
prioritizationList = [[PrioritizeList alloc] initWithPyRef:[[self model] prioritizationList] tableView:prioritizationTableView];
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
{
|
{
|
||||||
[self disconnect];
|
|
||||||
[categoryPopUp release];
|
[categoryPopUp release];
|
||||||
[criteriaList release];
|
[criteriaList release];
|
||||||
[prioritizationList release];
|
[prioritizationList release];
|
||||||
|
[model release];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyPrioritizeDialog *)py
|
- (PyPrioritizeDialog *)model
|
||||||
{
|
{
|
||||||
return (PyPrioritizeDialog *)py;
|
return (PyPrioritizeDialog *)model;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)addSelected:(id)sender
|
- (IBAction)addSelected:(id)sender
|
||||||
{
|
{
|
||||||
[[self py] addSelected];
|
[[self model] addSelected];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)removeSelected:(id)sender
|
- (IBAction)removeSelected:(id)sender
|
||||||
{
|
{
|
||||||
[[self py] removeSelected];
|
[[self model] removeSelected];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)ok:(id)sender
|
- (IBAction)ok:(id)sender
|
||||||
{
|
{
|
||||||
[NSApp stopModal];
|
[NSApp stopModal];
|
||||||
|
[self close];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)cancel:(id)sender
|
- (IBAction)cancel:(id)sender
|
||||||
{
|
{
|
||||||
[NSApp abortModal];
|
[NSApp abortModal];
|
||||||
|
[self close];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
@@ -11,5 +11,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "PyPrioritizeList.h"
|
#import "PyPrioritizeList.h"
|
||||||
|
|
||||||
@interface PrioritizeList : HSSelectableList {}
|
@interface PrioritizeList : HSSelectableList {}
|
||||||
- (PyPrioritizeList *)py;
|
- (id)initWithPyRef:(PyObject *)aPyRef tableView:(NSTableView *)aTableView;
|
||||||
|
- (PyPrioritizeList *)model;
|
||||||
@end
|
@end
|
||||||
@@ -11,9 +11,16 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "Consts.h"
|
#import "Consts.h"
|
||||||
|
|
||||||
@implementation PrioritizeList
|
@implementation PrioritizeList
|
||||||
- (PyPrioritizeList *)py
|
- (id)initWithPyRef:(PyObject *)aPyRef tableView:(NSTableView *)aTableView
|
||||||
{
|
{
|
||||||
return (PyPrioritizeList *)py;
|
self = [super initWithPyRef:aPyRef wrapperClass:[PyPrioritizeList class]
|
||||||
|
callbackClassName:@"PrioritizeListView" view:aTableView];
|
||||||
|
return self;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (PyPrioritizeList *)model
|
||||||
|
{
|
||||||
|
return (PyPrioritizeList *)model;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setView:(NSTableView *)aTableView
|
- (void)setView:(NSTableView *)aTableView
|
||||||
@@ -45,7 +52,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
NSPasteboard* pboard = [info draggingPasteboard];
|
NSPasteboard* pboard = [info draggingPasteboard];
|
||||||
NSData* rowData = [pboard dataForType:DGPrioritizeIndexPasteboardType];
|
NSData* rowData = [pboard dataForType:DGPrioritizeIndexPasteboardType];
|
||||||
NSIndexSet* rowIndexes = [NSKeyedUnarchiver unarchiveObjectWithData:rowData];
|
NSIndexSet* rowIndexes = [NSKeyedUnarchiver unarchiveObjectWithData:rowData];
|
||||||
[[self py] moveIndexes:[Utils indexSet2Array:rowIndexes] toIndex:row];
|
[[self model] moveIndexes:[Utils indexSet2Array:rowIndexes] toIndex:row];
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
@@ -7,19 +7,17 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#import "HSWindowController.h"
|
|
||||||
#import "PyApp.h"
|
|
||||||
#import "PyProblemDialog.h"
|
#import "PyProblemDialog.h"
|
||||||
#import "HSTable.h"
|
#import "HSTable.h"
|
||||||
|
|
||||||
@interface ProblemDialog : HSWindowController
|
@interface ProblemDialog : NSWindowController
|
||||||
{
|
{
|
||||||
IBOutlet NSTableView *problemTableView;
|
IBOutlet NSTableView *problemTableView;
|
||||||
|
|
||||||
|
PyProblemDialog *model;
|
||||||
HSTable *problemTable;
|
HSTable *problemTable;
|
||||||
}
|
}
|
||||||
- (id)initWithPy:(PyApp *)aPy;
|
- (id)initWithPyRef:(PyObject *)aPyRef;
|
||||||
- (PyProblemDialog *)py;
|
|
||||||
|
|
||||||
- (void)initializeColumns;
|
- (void)initializeColumns;
|
||||||
- (IBAction)revealSelected:(id)sender;
|
- (IBAction)revealSelected:(id)sender;
|
||||||
|
|||||||
@@ -10,30 +10,23 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "Utils.h"
|
#import "Utils.h"
|
||||||
|
|
||||||
@implementation ProblemDialog
|
@implementation ProblemDialog
|
||||||
- (id)initWithPy:(PyApp *)aPy
|
- (id)initWithPyRef:(PyObject *)aPyRef
|
||||||
{
|
{
|
||||||
self = [super initWithNibName:@"ProblemDialog" pyClassName:@"PyProblemDialog" pyParent:aPy];
|
self = [super initWithWindowNibName:@"ProblemDialog"];
|
||||||
[self window]; //So the detailsTable is initialized.
|
[self window]; //So the detailsTable is initialized.
|
||||||
problemTable = [[HSTable alloc] initWithPyClassName:@"PyProblemTable" pyParent:[self py] view:problemTableView];
|
model = [[PyProblemDialog alloc] initWithModel:aPyRef];
|
||||||
|
problemTable = [[HSTable alloc] initWithPyRef:[model problemTable] tableView:problemTableView];
|
||||||
[self initializeColumns];
|
[self initializeColumns];
|
||||||
[self connect];
|
|
||||||
[problemTable connect];
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
{
|
{
|
||||||
[problemTable disconnect];
|
|
||||||
[self disconnect];
|
|
||||||
[problemTable release];
|
[problemTable release];
|
||||||
|
[model release];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyProblemDialog *)py
|
|
||||||
{
|
|
||||||
return (PyProblemDialog *)py;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)initializeColumns
|
- (void)initializeColumns
|
||||||
{
|
{
|
||||||
HSColumnDef defs[] = {
|
HSColumnDef defs[] = {
|
||||||
@@ -46,6 +39,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (IBAction)revealSelected:(id)sender
|
- (IBAction)revealSelected:(id)sender
|
||||||
{
|
{
|
||||||
[[self py] revealSelected];
|
[model revealSelected];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PyGUI.h"
|
|
||||||
|
|
||||||
@interface PyDetailsPanel : PyGUI
|
|
||||||
- (NSInteger)numberOfRows;
|
|
||||||
- (id)valueForColumn:(NSString *)column row:(NSInteger)row;
|
|
||||||
@end
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PyOutline.h"
|
|
||||||
|
|
||||||
@interface PyDirectoryOutline : PyOutline
|
|
||||||
- (void)addDirectory:(NSString *)directoryPath;
|
|
||||||
- (void)removeSelectedDirectory;
|
|
||||||
@end
|
|
||||||
@@ -1,59 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PyResultTable.h"
|
|
||||||
#import "PyApp.h"
|
|
||||||
|
|
||||||
@interface PyDupeGuruBase : PyApp
|
|
||||||
- (void)bindCocoa:(id)cocoa;
|
|
||||||
- (PyResultTable *)resultTable;
|
|
||||||
//Actions
|
|
||||||
- (NSNumber *)addDirectory:(NSString *)name;
|
|
||||||
- (void)loadResultsFrom:(NSString *)filename;
|
|
||||||
- (void)saveResultsAs:(NSString *)filename;
|
|
||||||
- (void)loadSession;
|
|
||||||
- (void)saveSession;
|
|
||||||
- (void)clearIgnoreList;
|
|
||||||
- (void)purgeIgnoreList;
|
|
||||||
- (NSString *)exportToXHTML;
|
|
||||||
- (void)invokeCommand:(NSString *)cmd;
|
|
||||||
|
|
||||||
- (void)doScan;
|
|
||||||
|
|
||||||
- (void)toggleSelectedMark;
|
|
||||||
- (void)markAll;
|
|
||||||
- (void)markInvert;
|
|
||||||
- (void)markNone;
|
|
||||||
|
|
||||||
- (void)addSelectedToIgnoreList;
|
|
||||||
- (void)openSelected;
|
|
||||||
- (void)revealSelected;
|
|
||||||
- (void)makeSelectedReference;
|
|
||||||
- (void)applyFilter:(NSString *)filter;
|
|
||||||
|
|
||||||
- (void)copyOrMove:(NSNumber *)aCopy markedTo:(NSString *)destination recreatePath:(NSNumber *)aRecreateType;
|
|
||||||
- (void)deleteMarked;
|
|
||||||
- (void)hardlinkMarked;
|
|
||||||
- (void)removeMarked;
|
|
||||||
|
|
||||||
//Data
|
|
||||||
- (NSNumber *)getIgnoreListCount;
|
|
||||||
- (NSNumber *)getMarkCount;
|
|
||||||
- (BOOL)scanWasProblematic;
|
|
||||||
- (BOOL)resultsAreModified;
|
|
||||||
|
|
||||||
//Scanning options
|
|
||||||
- (void)setScanType:(NSNumber *)scan_type;
|
|
||||||
- (void)setMinMatchPercentage:(NSNumber *)percentage;
|
|
||||||
- (void)setMixFileKind:(BOOL)mix_file_kind;
|
|
||||||
- (void)setEscapeFilterRegexp:(BOOL)escape_filter_regexp;
|
|
||||||
- (void)setRemoveEmptyFolders:(BOOL)remove_empty_folders;
|
|
||||||
- (void)setIgnoreHardlinkMatches:(BOOL)ignore_hardlink_matches;
|
|
||||||
- (void)setSizeThreshold:(NSInteger)size_threshold;
|
|
||||||
@end
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PyGUI.h"
|
|
||||||
|
|
||||||
@interface PyExtraFairwareReminder : PyGUI
|
|
||||||
- (void)start;
|
|
||||||
- (void)updateButton;
|
|
||||||
@end
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PyGUI.h"
|
|
||||||
#import "PySelectableList.h"
|
|
||||||
|
|
||||||
@interface PyPrioritizeDialog : PyGUI
|
|
||||||
- (PySelectableList *)categoryList;
|
|
||||||
- (PySelectableList *)criteriaList;
|
|
||||||
- (PySelectableList *)prioritizationList;
|
|
||||||
- (void)addSelected;
|
|
||||||
- (void)removeSelected;
|
|
||||||
- (void)performReprioritization;
|
|
||||||
@end
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PySelectableList.h"
|
|
||||||
|
|
||||||
@interface PyPrioritizeList : PySelectableList
|
|
||||||
- (void)moveIndexes:(NSArray *)indexes toIndex:(NSInteger)destIndex;
|
|
||||||
@end
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PyGUI.h"
|
|
||||||
|
|
||||||
@interface PyProblemDialog : PyGUI
|
|
||||||
- (void)revealSelected;
|
|
||||||
@end
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PyTable.h"
|
|
||||||
|
|
||||||
@interface PyResultTable : PyTable
|
|
||||||
- (BOOL)powerMarkerMode;
|
|
||||||
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode;
|
|
||||||
- (BOOL)deltaValuesMode;
|
|
||||||
- (void)setDeltaValuesMode:(BOOL)aDeltaValuesMode;
|
|
||||||
- (NSArray *)deltaColumns;
|
|
||||||
|
|
||||||
- (NSString *)valueForRow:(NSInteger)rowIndex column:(NSString *)aColumn;
|
|
||||||
- (BOOL)renameSelected:(NSString *)aNewName;
|
|
||||||
- (void)sortBy:(NSString *)aIdentifier ascending:(BOOL)aAscending;
|
|
||||||
- (void)markSelected;
|
|
||||||
- (void)removeSelected;
|
|
||||||
- (NSInteger)selectedDupeCount;
|
|
||||||
- (NSString *)pathAtIndex:(NSInteger)index;
|
|
||||||
@end
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "PyGUI.h"
|
|
||||||
|
|
||||||
@interface PyStatsLabel : PyGUI
|
|
||||||
- (NSString *)display;
|
|
||||||
@end
|
|
||||||
@@ -15,8 +15,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
{
|
{
|
||||||
NSSet *_deltaColumns;
|
NSSet *_deltaColumns;
|
||||||
}
|
}
|
||||||
- (id)initWithPy:(id)aPy view:(NSTableView *)aTableView;
|
- (id)initWithPyRef:(PyObject *)aPyRef view:(NSTableView *)aTableView;
|
||||||
- (PyResultTable *)py;
|
- (PyResultTable *)model;
|
||||||
- (BOOL)powerMarkerMode;
|
- (BOOL)powerMarkerMode;
|
||||||
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode;
|
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode;
|
||||||
- (BOOL)deltaValuesMode;
|
- (BOOL)deltaValuesMode;
|
||||||
|
|||||||
@@ -18,24 +18,22 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
@end
|
@end
|
||||||
|
|
||||||
@implementation ResultTable
|
@implementation ResultTable
|
||||||
- (id)initWithPy:(id)aPy view:(NSTableView *)aTableView
|
- (id)initWithPyRef:(PyObject *)aPyRef view:(NSTableView *)aTableView
|
||||||
{
|
{
|
||||||
self = [super initWithPy:aPy view:aTableView];
|
self = [super initWithPyRef:aPyRef wrapperClass:[PyResultTable class] callbackClassName:@"ResultTableView" view:aTableView];
|
||||||
_deltaColumns = [[NSSet setWithArray:[[self py] deltaColumns]] retain];
|
_deltaColumns = [[NSSet setWithArray:[[self model] deltaColumns]] retain];
|
||||||
[self connect];
|
|
||||||
return self;
|
return self;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (void)dealloc
|
||||||
{
|
{
|
||||||
[self disconnect];
|
|
||||||
[_deltaColumns release];
|
[_deltaColumns release];
|
||||||
[super dealloc];
|
[super dealloc];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyResultTable *)py
|
- (PyResultTable *)model
|
||||||
{
|
{
|
||||||
return (PyResultTable *)py;
|
return (PyResultTable *)model;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Private */
|
/* Private */
|
||||||
@@ -61,27 +59,27 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* Public */
|
/* Public */
|
||||||
- (BOOL)powerMarkerMode
|
- (BOOL)powerMarkerMode
|
||||||
{
|
{
|
||||||
return [[self py] powerMarkerMode];
|
return [[self model] powerMarkerMode];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode
|
- (void)setPowerMarkerMode:(BOOL)aPowerMarkerMode
|
||||||
{
|
{
|
||||||
[[self py] setPowerMarkerMode:aPowerMarkerMode];
|
[[self model] setPowerMarkerMode:aPowerMarkerMode];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (BOOL)deltaValuesMode
|
- (BOOL)deltaValuesMode
|
||||||
{
|
{
|
||||||
return [[self py] deltaValuesMode];
|
return [[self model] deltaValuesMode];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setDeltaValuesMode:(BOOL)aDeltaValuesMode
|
- (void)setDeltaValuesMode:(BOOL)aDeltaValuesMode
|
||||||
{
|
{
|
||||||
[[self py] setDeltaValuesMode:aDeltaValuesMode];
|
[[self model] setDeltaValuesMode:aDeltaValuesMode];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSInteger)selectedDupeCount
|
- (NSInteger)selectedDupeCount
|
||||||
{
|
{
|
||||||
return [[self py] selectedDupeCount];
|
return [[self model] selectedDupeCount];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)removeSelected
|
- (void)removeSelected
|
||||||
@@ -93,7 +91,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
NSString *msg = [NSString stringWithFormat:msgFmt,selectedDupeCount];
|
NSString *msg = [NSString stringWithFormat:msgFmt,selectedDupeCount];
|
||||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
||||||
return;
|
return;
|
||||||
[[self py] removeSelected];
|
[[self model] removeSelected];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Datasource */
|
/* Datasource */
|
||||||
@@ -101,27 +99,27 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
{
|
{
|
||||||
NSString *identifier = [column identifier];
|
NSString *identifier = [column identifier];
|
||||||
if ([identifier isEqual:@"marked"]) {
|
if ([identifier isEqual:@"marked"]) {
|
||||||
return [[self py] valueForColumn:@"marked" row:row];
|
return [[self model] valueForColumn:@"marked" row:row];
|
||||||
}
|
}
|
||||||
return [[self py] valueForRow:row column:identifier];
|
return [[self model] valueForRow:row column:identifier];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)column row:(NSInteger)row
|
- (void)tableView:(NSTableView *)aTableView setObjectValue:(id)object forTableColumn:(NSTableColumn *)column row:(NSInteger)row
|
||||||
{
|
{
|
||||||
NSString *identifier = [column identifier];
|
NSString *identifier = [column identifier];
|
||||||
if ([identifier isEqual:@"marked"]) {
|
if ([identifier isEqual:@"marked"]) {
|
||||||
[[self py] setValue:object forColumn:identifier row:row];
|
[[self model] setValue:object forColumn:identifier row:row];
|
||||||
}
|
}
|
||||||
else if ([identifier isEqual:@"name"]) {
|
else if ([identifier isEqual:@"name"]) {
|
||||||
NSString *oldName = [[self py] valueForRow:row column:identifier];
|
NSString *oldName = [[self model] valueForRow:row column:identifier];
|
||||||
NSString *newName = object;
|
NSString *newName = object;
|
||||||
if (![newName isEqual:oldName]) {
|
if (![newName isEqual:oldName]) {
|
||||||
BOOL renamed = [[self py] renameSelected:newName];
|
BOOL renamed = [[self model] renameSelected:newName];
|
||||||
if (!renamed) {
|
if (!renamed) {
|
||||||
[Dialogs showMessage:[NSString stringWithFormat:TR(@"The name '%@' already exists."), newName]];
|
[Dialogs showMessage:[NSString stringWithFormat:TR(@"The name '%@' already exists."), newName]];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[tableView setNeedsDisplay:YES];
|
[[self view] setNeedsDisplay:YES];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -130,16 +128,16 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* Delegate */
|
/* Delegate */
|
||||||
- (void)tableView:(NSTableView *)aTableView didClickTableColumn:(NSTableColumn *)tableColumn
|
- (void)tableView:(NSTableView *)aTableView didClickTableColumn:(NSTableColumn *)tableColumn
|
||||||
{
|
{
|
||||||
if ([[tableView sortDescriptors] count] < 1)
|
if ([[[self view] sortDescriptors] count] < 1)
|
||||||
return;
|
return;
|
||||||
NSSortDescriptor *sd = [[tableView sortDescriptors] objectAtIndex:0];
|
NSSortDescriptor *sd = [[[self view] sortDescriptors] objectAtIndex:0];
|
||||||
[[self py] sortBy:[sd key] ascending:[sd ascending]];
|
[[self model] sortBy:[sd key] ascending:[sd ascending]];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)column row:(NSInteger)row
|
- (void)tableView:(NSTableView *)aTableView willDisplayCell:(id)cell forTableColumn:(NSTableColumn *)column row:(NSInteger)row
|
||||||
{
|
{
|
||||||
BOOL isSelected = [tableView isRowSelected:row];
|
BOOL isSelected = [[self view] isRowSelected:row];
|
||||||
BOOL isMarkable = n2b([[self py] valueForColumn:@"markable" row:row]);
|
BOOL isMarkable = n2b([[self model] valueForColumn:@"markable" row:row]);
|
||||||
if ([[column identifier] isEqual:@"marked"]) {
|
if ([[column identifier] isEqual:@"marked"]) {
|
||||||
[cell setEnabled:isMarkable];
|
[cell setEnabled:isMarkable];
|
||||||
// Low-tech solution, for indentation, but it works...
|
// Low-tech solution, for indentation, but it works...
|
||||||
@@ -173,21 +171,21 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (BOOL)tableViewHadSpacePressed:(NSTableView *)tableView
|
- (BOOL)tableViewHadSpacePressed:(NSTableView *)tableView
|
||||||
{
|
{
|
||||||
[[self py] markSelected];
|
[[self model] markSelected];
|
||||||
return YES;
|
return YES;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Quicklook */
|
/* Quicklook */
|
||||||
- (NSInteger)numberOfPreviewItemsInPreviewPanel:(QLPreviewPanel *)panel
|
- (NSInteger)numberOfPreviewItemsInPreviewPanel:(QLPreviewPanel *)panel
|
||||||
{
|
{
|
||||||
return [[[self py] selectedRows] count];
|
return [[[self model] selectedRows] count];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id <QLPreviewItem>)previewPanel:(QLPreviewPanel *)panel previewItemAtIndex:(NSInteger)index
|
- (id <QLPreviewItem>)previewPanel:(QLPreviewPanel *)panel previewItemAtIndex:(NSInteger)index
|
||||||
{
|
{
|
||||||
NSArray *selectedRows = [[self py] selectedRows];
|
NSArray *selectedRows = [[self model] selectedRows];
|
||||||
NSInteger absIndex = n2i([selectedRows objectAtIndex:index]);
|
NSInteger absIndex = n2i([selectedRows objectAtIndex:index]);
|
||||||
NSString *path = [[self py] pathAtIndex:absIndex];
|
NSString *path = [[self model] pathAtIndex:absIndex];
|
||||||
return [[HSQLPreviewItem alloc] initWithUrl:[NSURL fileURLWithPath:path] title:path];
|
return [[HSQLPreviewItem alloc] initWithUrl:[NSURL fileURLWithPath:path] title:path];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -204,6 +202,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* Python --> Cocoa */
|
/* Python --> Cocoa */
|
||||||
- (void)invalidateMarkings
|
- (void)invalidateMarkings
|
||||||
{
|
{
|
||||||
[tableView setNeedsDisplay:YES];
|
[[self view] setNeedsDisplay:YES];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
@@ -25,7 +25,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
IBOutlet NSSearchField *filterField;
|
IBOutlet NSSearchField *filterField;
|
||||||
|
|
||||||
AppDelegateBase *app;
|
AppDelegateBase *app;
|
||||||
PyDupeGuruBase *py;
|
PyDupeGuru *model;
|
||||||
NSMenu *columnsMenu;
|
NSMenu *columnsMenu;
|
||||||
ResultTable *table;
|
ResultTable *table;
|
||||||
StatsLabel *statsLabel;
|
StatsLabel *statsLabel;
|
||||||
|
|||||||
@@ -19,14 +19,14 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
{
|
{
|
||||||
self = [super initWithWindowNibName:@"ResultWindow"];
|
self = [super initWithWindowNibName:@"ResultWindow"];
|
||||||
app = aApp;
|
app = aApp;
|
||||||
py = [app py];
|
model = [app model];
|
||||||
[[self window] setTitle:fmt(@"%@ Results", [py appName])];
|
[[self window] setTitle:fmt(@"%@ Results", [model appName])];
|
||||||
columnsMenu = [app columnsMenu];
|
columnsMenu = [app columnsMenu];
|
||||||
/* Put a cute iTunes-like bottom bar */
|
/* Put a cute iTunes-like bottom bar */
|
||||||
[[self window] setContentBorderThickness:28 forEdge:NSMinYEdge];
|
[[self window] setContentBorderThickness:28 forEdge:NSMinYEdge];
|
||||||
table = [[ResultTable alloc] initWithPy:[py resultTable] view:matches];
|
table = [[ResultTable alloc] initWithPyRef:[model resultTable] view:matches];
|
||||||
statsLabel = [[StatsLabel alloc] initWithPyParent:py labelView:stats];
|
statsLabel = [[StatsLabel alloc] initWithPyRef:[model statsLabel] view:stats];
|
||||||
problemDialog = [[ProblemDialog alloc] initWithPy:py];
|
problemDialog = [[ProblemDialog alloc] initWithPyRef:[model problemDialog]];
|
||||||
[self initResultColumns];
|
[self initResultColumns];
|
||||||
[self fillColumnsMenu];
|
[self fillColumnsMenu];
|
||||||
[matches setTarget:self];
|
[matches setTarget:self];
|
||||||
@@ -58,7 +58,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* Helpers */
|
/* Helpers */
|
||||||
- (void)fillColumnsMenu
|
- (void)fillColumnsMenu
|
||||||
{
|
{
|
||||||
NSArray *menuItems = [[[table columns] py] menuItems];
|
NSArray *menuItems = [[[table columns] model] menuItems];
|
||||||
for (NSInteger i=0; i < [menuItems count]; i++) {
|
for (NSInteger i=0; i < [menuItems count]; i++) {
|
||||||
NSArray *pair = [menuItems objectAtIndex:i];
|
NSArray *pair = [menuItems objectAtIndex:i];
|
||||||
NSString *display = [pair objectAtIndex:0];
|
NSString *display = [pair objectAtIndex:0];
|
||||||
@@ -76,7 +76,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (void)sendMarkedToTrash:(BOOL)hardlinkDeleted
|
- (void)sendMarkedToTrash:(BOOL)hardlinkDeleted
|
||||||
{
|
{
|
||||||
NSInteger mark_count = [[py getMarkCount] intValue];
|
NSInteger mark_count = [model getMarkCount];
|
||||||
if (!mark_count) {
|
if (!mark_count) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -88,12 +88,12 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
[py setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
||||||
if (hardlinkDeleted) {
|
if (hardlinkDeleted) {
|
||||||
[py hardlinkMarked];
|
[model hardlinkMarked];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[py deleteMarked];
|
[model deleteMarked];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,13 +107,13 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* Actions */
|
/* Actions */
|
||||||
- (IBAction)clearIgnoreList:(id)sender
|
- (IBAction)clearIgnoreList:(id)sender
|
||||||
{
|
{
|
||||||
NSInteger i = n2i([py getIgnoreListCount]);
|
NSInteger i = [model getIgnoreListCount];
|
||||||
if (!i)
|
if (!i)
|
||||||
return;
|
return;
|
||||||
NSString *msg = [NSString stringWithFormat:TR(@"Do you really want to remove all %d items from the ignore list?"),i];
|
NSString *msg = [NSString stringWithFormat:TR(@"Do you really want to remove all %d items from the ignore list?"),i];
|
||||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
||||||
return;
|
return;
|
||||||
[py clearIgnoreList];
|
[model clearIgnoreList];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)changeOptions:(id)sender
|
- (IBAction)changeOptions:(id)sender
|
||||||
@@ -132,7 +132,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (IBAction)copyMarked:(id)sender
|
- (IBAction)copyMarked:(id)sender
|
||||||
{
|
{
|
||||||
NSInteger mark_count = [[py getMarkCount] intValue];
|
NSInteger mark_count = [model getMarkCount];
|
||||||
if (!mark_count)
|
if (!mark_count)
|
||||||
return;
|
return;
|
||||||
NSOpenPanel *op = [NSOpenPanel openPanel];
|
NSOpenPanel *op = [NSOpenPanel openPanel];
|
||||||
@@ -144,7 +144,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
if ([op runModal] == NSOKButton) {
|
if ([op runModal] == NSOKButton) {
|
||||||
NSString *directory = [[op filenames] objectAtIndex:0];
|
NSString *directory = [[op filenames] objectAtIndex:0];
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
[py copyOrMove:b2n(YES) markedTo:directory recreatePath:[ud objectForKey:@"recreatePathType"]];
|
[model copyOrMove:YES markedTo:directory recreatePath:n2b([ud objectForKey:@"recreatePathType"])];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -160,15 +160,15 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (IBAction)exportToXHTML:(id)sender
|
- (IBAction)exportToXHTML:(id)sender
|
||||||
{
|
{
|
||||||
NSString *exported = [py exportToXHTML];
|
NSString *exported = [model exportToXHTML];
|
||||||
[[NSWorkspace sharedWorkspace] openFile:exported];
|
[[NSWorkspace sharedWorkspace] openFile:exported];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)filter:(id)sender
|
- (IBAction)filter:(id)sender
|
||||||
{
|
{
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
[py setEscapeFilterRegexp:!n2b([ud objectForKey:@"useRegexpFilter"])];
|
[model setEscapeFilterRegexp:!n2b([ud objectForKey:@"useRegexpFilter"])];
|
||||||
[py applyFilter:[filterField stringValue]];
|
[model applyFilter:[filterField stringValue]];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)ignoreSelected:(id)sender
|
- (IBAction)ignoreSelected:(id)sender
|
||||||
@@ -179,7 +179,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
NSString *msg = [NSString stringWithFormat:TR(@"All selected %d matches are going to be ignored in all subsequent scans. Continue?"),selectedDupeCount];
|
NSString *msg = [NSString stringWithFormat:TR(@"All selected %d matches are going to be ignored in all subsequent scans. Continue?"),selectedDupeCount];
|
||||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
||||||
return;
|
return;
|
||||||
[py addSelectedToIgnoreList];
|
[model addSelectedToIgnoreList];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)invokeCustomCommand:(id)sender
|
- (IBAction)invokeCustomCommand:(id)sender
|
||||||
@@ -187,7 +187,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
NSString *cmd = [ud stringForKey:@"CustomCommand"];
|
NSString *cmd = [ud stringForKey:@"CustomCommand"];
|
||||||
if ((cmd != nil) && ([cmd length] > 0)) {
|
if ((cmd != nil) && ([cmd length] > 0)) {
|
||||||
[py invokeCommand:cmd];
|
[model invokeCommand:cmd];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[Dialogs showMessage:TR(@"You have no custom command set up. Set it up in your preferences.")];
|
[Dialogs showMessage:TR(@"You have no custom command set up. Set it up in your preferences.")];
|
||||||
@@ -196,27 +196,27 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (IBAction)markAll:(id)sender
|
- (IBAction)markAll:(id)sender
|
||||||
{
|
{
|
||||||
[py markAll];
|
[model markAll];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)markInvert:(id)sender
|
- (IBAction)markInvert:(id)sender
|
||||||
{
|
{
|
||||||
[py markInvert];
|
[model markInvert];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)markNone:(id)sender
|
- (IBAction)markNone:(id)sender
|
||||||
{
|
{
|
||||||
[py markNone];
|
[model markNone];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)markSelected:(id)sender
|
- (IBAction)markSelected:(id)sender
|
||||||
{
|
{
|
||||||
[py toggleSelectedMark];
|
[model toggleSelectedMark];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)moveMarked:(id)sender
|
- (IBAction)moveMarked:(id)sender
|
||||||
{
|
{
|
||||||
NSInteger mark_count = [[py getMarkCount] intValue];
|
NSInteger mark_count = [model getMarkCount];
|
||||||
if (!mark_count)
|
if (!mark_count)
|
||||||
return;
|
return;
|
||||||
NSOpenPanel *op = [NSOpenPanel openPanel];
|
NSOpenPanel *op = [NSOpenPanel openPanel];
|
||||||
@@ -228,8 +228,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
if ([op runModal] == NSOKButton) {
|
if ([op runModal] == NSOKButton) {
|
||||||
NSString *directory = [[op filenames] objectAtIndex:0];
|
NSString *directory = [[op filenames] objectAtIndex:0];
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
[py setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
[model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])];
|
||||||
[py copyOrMove:b2n(NO) markedTo:directory recreatePath:[ud objectForKey:@"recreatePathType"]];
|
[model copyOrMove:NO markedTo:directory recreatePath:n2b([ud objectForKey:@"recreatePathType"])];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -239,23 +239,23 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
[matches selectRowIndexes:[NSIndexSet indexSetWithIndex:[matches clickedRow]] byExtendingSelection:NO];
|
[matches selectRowIndexes:[NSIndexSet indexSetWithIndex:[matches clickedRow]] byExtendingSelection:NO];
|
||||||
[py openSelected];
|
[model openSelected];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)openSelected:(id)sender
|
- (IBAction)openSelected:(id)sender
|
||||||
{
|
{
|
||||||
[py openSelected];
|
[model openSelected];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)removeMarked:(id)sender
|
- (IBAction)removeMarked:(id)sender
|
||||||
{
|
{
|
||||||
int mark_count = [[py getMarkCount] intValue];
|
int mark_count = [model getMarkCount];
|
||||||
if (!mark_count)
|
if (!mark_count)
|
||||||
return;
|
return;
|
||||||
NSString *msg = [NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",mark_count];
|
NSString *msg = [NSString stringWithFormat:@"You are about to remove %d files from results. Continue?",mark_count];
|
||||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
||||||
return;
|
return;
|
||||||
[py removeMarked];
|
[model removeMarked];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)removeSelected:(id)sender
|
- (IBAction)removeSelected:(id)sender
|
||||||
@@ -272,10 +272,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (IBAction)reprioritizeResults:(id)sender
|
- (IBAction)reprioritizeResults:(id)sender
|
||||||
{
|
{
|
||||||
PrioritizeDialog *dlg = [[PrioritizeDialog alloc] initWithPy:py];
|
PrioritizeDialog *dlg = [[PrioritizeDialog alloc] initWithApp:model];
|
||||||
NSInteger result = [NSApp runModalForWindow:[dlg window]];
|
NSInteger result = [NSApp runModalForWindow:[dlg window]];
|
||||||
if (result == NSRunStoppedResponse) {
|
if (result == NSRunStoppedResponse) {
|
||||||
[[dlg py] performReprioritization];
|
[[dlg model] performReprioritization];
|
||||||
}
|
}
|
||||||
[dlg release];
|
[dlg release];
|
||||||
[[self window] makeKeyAndOrderFront:nil];
|
[[self window] makeKeyAndOrderFront:nil];
|
||||||
@@ -283,12 +283,12 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (IBAction)resetColumnsToDefault:(id)sender
|
- (IBAction)resetColumnsToDefault:(id)sender
|
||||||
{
|
{
|
||||||
[[[table columns] py] resetToDefaults];
|
[[[table columns] model] resetToDefaults];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)revealSelected:(id)sender
|
- (IBAction)revealSelected:(id)sender
|
||||||
{
|
{
|
||||||
[py revealSelected];
|
[model revealSelected];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)saveResults:(id)sender
|
- (IBAction)saveResults:(id)sender
|
||||||
@@ -298,30 +298,30 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
[sp setAllowedFileTypes:[NSArray arrayWithObject:@"dupeguru"]];
|
[sp setAllowedFileTypes:[NSArray arrayWithObject:@"dupeguru"]];
|
||||||
[sp setTitle:TR(@"Select a file to save your results to")];
|
[sp setTitle:TR(@"Select a file to save your results to")];
|
||||||
if ([sp runModal] == NSOKButton) {
|
if ([sp runModal] == NSOKButton) {
|
||||||
[py saveResultsAs:[sp filename]];
|
[model saveResultsAs:[sp filename]];
|
||||||
[[app recentResults] addFile:[sp filename]];
|
[[app recentResults] addFile:[sp filename]];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)startDuplicateScan:(id)sender
|
- (IBAction)startDuplicateScan:(id)sender
|
||||||
{
|
{
|
||||||
if ([py resultsAreModified]) {
|
if ([model resultsAreModified]) {
|
||||||
if ([Dialogs askYesNo:TR(@"You have unsaved results, do you really want to continue?")] == NSAlertSecondButtonReturn) // NO
|
if ([Dialogs askYesNo:TR(@"You have unsaved results, do you really want to continue?")] == NSAlertSecondButtonReturn) // NO
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
[self setScanOptions];
|
[self setScanOptions];
|
||||||
[py doScan];
|
[model doScan];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)switchSelected:(id)sender
|
- (IBAction)switchSelected:(id)sender
|
||||||
{
|
{
|
||||||
[py makeSelectedReference];
|
[model makeSelectedReference];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (IBAction)toggleColumn:(id)sender
|
- (IBAction)toggleColumn:(id)sender
|
||||||
{
|
{
|
||||||
NSMenuItem *mi = sender;
|
NSMenuItem *mi = sender;
|
||||||
BOOL checked = [[[table columns] py] toggleMenuItem:[mi tag]];
|
BOOL checked = [[[table columns] model] toggleMenuItem:[mi tag]];
|
||||||
[mi setState:checked ? NSOnState : NSOffState];
|
[mi setState:checked ? NSOnState : NSOffState];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -382,7 +382,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
{
|
{
|
||||||
id lastAction = [[ProgressController mainProgressController] jobId];
|
id lastAction = [[ProgressController mainProgressController] jobId];
|
||||||
if ([lastAction isEqualTo:jobCopy]) {
|
if ([lastAction isEqualTo:jobCopy]) {
|
||||||
if ([py scanWasProblematic]) {
|
if ([model scanWasProblematic]) {
|
||||||
[problemDialog showWindow:self];
|
[problemDialog showWindow:self];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -390,7 +390,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ([lastAction isEqualTo:jobMove]) {
|
else if ([lastAction isEqualTo:jobMove]) {
|
||||||
if ([py scanWasProblematic]) {
|
if ([model scanWasProblematic]) {
|
||||||
[problemDialog showWindow:self];
|
[problemDialog showWindow:self];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -398,7 +398,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ([lastAction isEqualTo:jobDelete]) {
|
else if ([lastAction isEqualTo:jobDelete]) {
|
||||||
if ([py scanWasProblematic]) {
|
if ([model scanWasProblematic]) {
|
||||||
[problemDialog showWindow:self];
|
[problemDialog showWindow:self];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -406,7 +406,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if ([lastAction isEqualTo:jobScan]) {
|
else if ([lastAction isEqualTo:jobScan]) {
|
||||||
NSInteger rowCount = [[table py] numberOfRows];
|
NSInteger rowCount = [[table model] numberOfRows];
|
||||||
if (rowCount == 0) {
|
if (rowCount == 0) {
|
||||||
[Dialogs showMessage:TR(@"No duplicates found.")];
|
[Dialogs showMessage:TR(@"No duplicates found.")];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,10 +10,8 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "HSGUIController.h"
|
#import "HSGUIController.h"
|
||||||
#import "PyStatsLabel.h"
|
#import "PyStatsLabel.h"
|
||||||
|
|
||||||
@interface StatsLabel : HSGUIController
|
@interface StatsLabel : HSGUIController {}
|
||||||
{
|
- (id)initWithPyRef:(PyObject *)aPyRef view:(NSTextField *)aLabelView;
|
||||||
NSTextField *labelView;
|
- (PyStatsLabel *)model;
|
||||||
}
|
- (NSTextField *)labelView;
|
||||||
- (id)initWithPyParent:(id)aPyParent labelView:(NSTextField *)aLabelView;
|
|
||||||
- (PyStatsLabel *)py;
|
|
||||||
@end
|
@end
|
||||||
@@ -10,29 +10,25 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "Utils.h"
|
#import "Utils.h"
|
||||||
|
|
||||||
@implementation StatsLabel
|
@implementation StatsLabel
|
||||||
- (id)initWithPyParent:(id)aPyParent labelView:(NSTextField *)aLabelView
|
- (id)initWithPyRef:(PyObject *)aPyRef view:(NSTextField *)aLabelView
|
||||||
{
|
{
|
||||||
self = [super initWithPyClassName:@"PyStatsLabel" pyParent:aPyParent];
|
return [super initWithPyRef:aPyRef wrapperClass:[PyStatsLabel class]
|
||||||
labelView = [aLabelView retain];
|
callbackClassName:@"StatsLabelView" view:aLabelView];
|
||||||
[self connect];
|
|
||||||
return self;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)dealloc
|
- (PyStatsLabel *)model
|
||||||
{
|
{
|
||||||
[self disconnect];
|
return (PyStatsLabel *)model;
|
||||||
[labelView release];
|
|
||||||
[super dealloc];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyStatsLabel *)py
|
- (NSTextField *)labelView
|
||||||
{
|
{
|
||||||
return (PyStatsLabel *)py;
|
return (NSTextField *)view;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Python --> Cocoa */
|
/* Python --> Cocoa */
|
||||||
- (void)refresh
|
- (void)refresh
|
||||||
{
|
{
|
||||||
[labelView setStringValue:[[self py] display]];
|
[[self labelView] setStringValue:[[self model] display]];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -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">11B26</string>
|
<string key="IBDocument.SystemVersion">11C74</string>
|
||||||
<string key="IBDocument.InterfaceBuilderVersion">1617</string>
|
<string key="IBDocument.InterfaceBuilderVersion">1938</string>
|
||||||
<string key="IBDocument.AppKitVersion">1138</string>
|
<string key="IBDocument.AppKitVersion">1138.23</string>
|
||||||
<string key="IBDocument.HIToolboxVersion">566.00</string>
|
<string key="IBDocument.HIToolboxVersion">567.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">1617</string>
|
<string key="NS.object.0">1938</string>
|
||||||
</object>
|
</object>
|
||||||
<array key="IBDocument.IntegratedClassDependencies">
|
<array key="IBDocument.IntegratedClassDependencies">
|
||||||
<string>NSMenu</string>
|
<string>NSMenu</string>
|
||||||
@@ -18,7 +18,10 @@
|
|||||||
<array key="IBDocument.PluginDependencies">
|
<array key="IBDocument.PluginDependencies">
|
||||||
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string>com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
</array>
|
</array>
|
||||||
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/>
|
<object class="NSMutableDictionary" key="IBDocument.Metadata">
|
||||||
|
<string key="NS.key.0">PluginDependencyRecalculationVersion</string>
|
||||||
|
<integer value="1" key="NS.object.0"/>
|
||||||
|
</object>
|
||||||
<array class="NSMutableArray" key="IBDocument.RootObjects" id="248533267">
|
<array class="NSMutableArray" key="IBDocument.RootObjects" id="248533267">
|
||||||
<object class="NSCustomObject" id="77446904">
|
<object class="NSCustomObject" id="77446904">
|
||||||
<string key="NSClassName">NSApplication</string>
|
<string key="NSClassName">NSApplication</string>
|
||||||
@@ -668,31 +671,12 @@
|
|||||||
<object class="NSCustomObject" id="91622651">
|
<object class="NSCustomObject" id="91622651">
|
||||||
<string key="NSClassName">AppDelegate</string>
|
<string key="NSClassName">AppDelegate</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSCustomObject" id="875360857">
|
|
||||||
<string key="NSClassName">PyDupeGuru</string>
|
|
||||||
</object>
|
|
||||||
<object class="NSCustomObject" id="23220930">
|
<object class="NSCustomObject" id="23220930">
|
||||||
<string key="NSClassName">SUUpdater</string>
|
<string key="NSClassName">SUUpdater</string>
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<object class="IBObjectContainer" key="IBDocument.Objects">
|
<object class="IBObjectContainer" key="IBDocument.Objects">
|
||||||
<array class="NSMutableArray" key="connectionRecords">
|
<array class="NSMutableArray" key="connectionRecords">
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">performMiniaturize:</string>
|
|
||||||
<reference key="source" ref="83466988"/>
|
|
||||||
<reference key="destination" ref="1033736835"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">37</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">arrangeInFront:</string>
|
|
||||||
<reference key="source" ref="83466988"/>
|
|
||||||
<reference key="destination" ref="941358624"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">39</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">terminate:</string>
|
<string key="label">terminate:</string>
|
||||||
@@ -725,14 +709,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">153</int>
|
<int key="connectionID">153</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">performZoom:</string>
|
|
||||||
<reference key="source" ref="83466988"/>
|
|
||||||
<reference key="destination" ref="781972485"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">198</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">delegate</string>
|
<string key="label">delegate</string>
|
||||||
@@ -742,20 +718,28 @@
|
|||||||
<int key="connectionID">207</int>
|
<int key="connectionID">207</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">delegate</string>
|
<string key="label">performMiniaturize:</string>
|
||||||
<reference key="source" ref="133452984"/>
|
<reference key="source" ref="83466988"/>
|
||||||
<reference key="destination" ref="91622651"/>
|
<reference key="destination" ref="1033736835"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">208</int>
|
<int key="connectionID">37</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">py</string>
|
<string key="label">arrangeInFront:</string>
|
||||||
<reference key="source" ref="91622651"/>
|
<reference key="source" ref="83466988"/>
|
||||||
<reference key="destination" ref="875360857"/>
|
<reference key="destination" ref="941358624"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">614</int>
|
<int key="connectionID">39</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">performZoom:</string>
|
||||||
|
<reference key="source" ref="83466988"/>
|
||||||
|
<reference key="destination" ref="781972485"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">198</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
@@ -765,14 +749,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">925</int>
|
<int key="connectionID">925</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">checkForUpdates:</string>
|
|
||||||
<reference key="source" ref="23220930"/>
|
|
||||||
<reference key="destination" ref="688262014"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">951</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">cut:</string>
|
<string key="label">cut:</string>
|
||||||
@@ -797,46 +773,6 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">1005</int>
|
<int key="connectionID">1005</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">openWebsite:</string>
|
|
||||||
<reference key="source" ref="91622651"/>
|
|
||||||
<reference key="destination" ref="440547877"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">1024</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">delegate</string>
|
|
||||||
<reference key="source" ref="23220930"/>
|
|
||||||
<reference key="destination" ref="91622651"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">1175</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">showAboutBox:</string>
|
|
||||||
<reference key="source" ref="91622651"/>
|
|
||||||
<reference key="destination" ref="436112936"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">1232</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">openHelp:</string>
|
|
||||||
<reference key="source" ref="91622651"/>
|
|
||||||
<reference key="destination" ref="914881560"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">1233</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBOutletConnection" key="connection">
|
|
||||||
<string key="label">recentResultsMenu</string>
|
|
||||||
<reference key="source" ref="91622651"/>
|
|
||||||
<reference key="destination" ref="782784943"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">1242</int>
|
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">clearIgnoreList:</string>
|
<string key="label">clearIgnoreList:</string>
|
||||||
@@ -1013,6 +949,70 @@
|
|||||||
</object>
|
</object>
|
||||||
<int key="connectionID">1266</int>
|
<int key="connectionID">1266</int>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">reprioritizeResults:</string>
|
||||||
|
<reference key="source" ref="83466988"/>
|
||||||
|
<reference key="destination" ref="200019883"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1278</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">removeMarked:</string>
|
||||||
|
<reference key="source" ref="83466988"/>
|
||||||
|
<reference key="destination" ref="733607971"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1279</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">toggleQuicklookPanel:</string>
|
||||||
|
<reference key="source" ref="83466988"/>
|
||||||
|
<reference key="destination" ref="343354529"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1282</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">delegate</string>
|
||||||
|
<reference key="source" ref="133452984"/>
|
||||||
|
<reference key="destination" ref="91622651"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">208</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">openWebsite:</string>
|
||||||
|
<reference key="source" ref="91622651"/>
|
||||||
|
<reference key="destination" ref="440547877"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1024</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">showAboutBox:</string>
|
||||||
|
<reference key="source" ref="91622651"/>
|
||||||
|
<reference key="destination" ref="436112936"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1232</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBActionConnection" key="connection">
|
||||||
|
<string key="label">openHelp:</string>
|
||||||
|
<reference key="source" ref="91622651"/>
|
||||||
|
<reference key="destination" ref="914881560"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1233</int>
|
||||||
|
</object>
|
||||||
|
<object class="IBConnectionRecord">
|
||||||
|
<object class="IBOutletConnection" key="connection">
|
||||||
|
<string key="label">recentResultsMenu</string>
|
||||||
|
<reference key="source" ref="91622651"/>
|
||||||
|
<reference key="destination" ref="782784943"/>
|
||||||
|
</object>
|
||||||
|
<int key="connectionID">1242</int>
|
||||||
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBOutletConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">columnsMenu</string>
|
<string key="label">columnsMenu</string>
|
||||||
@@ -1063,27 +1063,19 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBActionConnection" key="connection">
|
||||||
<string key="label">reprioritizeResults:</string>
|
<string key="label">checkForUpdates:</string>
|
||||||
<reference key="source" ref="83466988"/>
|
<reference key="source" ref="23220930"/>
|
||||||
<reference key="destination" ref="200019883"/>
|
<reference key="destination" ref="688262014"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">1278</int>
|
<int key="connectionID">951</int>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBConnectionRecord">
|
<object class="IBConnectionRecord">
|
||||||
<object class="IBActionConnection" key="connection">
|
<object class="IBOutletConnection" key="connection">
|
||||||
<string key="label">removeMarked:</string>
|
<string key="label">delegate</string>
|
||||||
<reference key="source" ref="83466988"/>
|
<reference key="source" ref="23220930"/>
|
||||||
<reference key="destination" ref="733607971"/>
|
<reference key="destination" ref="91622651"/>
|
||||||
</object>
|
</object>
|
||||||
<int key="connectionID">1279</int>
|
<int key="connectionID">1175</int>
|
||||||
</object>
|
|
||||||
<object class="IBConnectionRecord">
|
|
||||||
<object class="IBActionConnection" key="connection">
|
|
||||||
<string key="label">toggleQuicklookPanel:</string>
|
|
||||||
<reference key="source" ref="83466988"/>
|
|
||||||
<reference key="destination" ref="343354529"/>
|
|
||||||
</object>
|
|
||||||
<int key="connectionID">1282</int>
|
|
||||||
</object>
|
</object>
|
||||||
</array>
|
</array>
|
||||||
<object class="IBMutableOrderedSet" key="objectRecords">
|
<object class="IBMutableOrderedSet" key="objectRecords">
|
||||||
@@ -1508,12 +1500,6 @@
|
|||||||
<reference key="parent" ref="0"/>
|
<reference key="parent" ref="0"/>
|
||||||
<string key="objectName">AppDelegate</string>
|
<string key="objectName">AppDelegate</string>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBObjectRecord">
|
|
||||||
<int key="objectID">613</int>
|
|
||||||
<reference key="object" ref="875360857"/>
|
|
||||||
<reference key="parent" ref="0"/>
|
|
||||||
<string key="objectName">PyDupeGuru</string>
|
|
||||||
</object>
|
|
||||||
<object class="IBObjectRecord">
|
<object class="IBObjectRecord">
|
||||||
<int key="objectID">949</int>
|
<int key="objectID">949</int>
|
||||||
<reference key="object" ref="23220930"/>
|
<reference key="object" ref="23220930"/>
|
||||||
@@ -1654,7 +1640,6 @@
|
|||||||
<string key="603.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="603.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="604.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="604.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="605.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="605.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="613.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
|
||||||
<string key="618.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="618.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="619.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="619.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
<string key="707.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
<string key="707.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
|
||||||
@@ -1772,6 +1757,25 @@
|
|||||||
<string key="minorKey">./Classes/AppDelegateBase.h</string>
|
<string key="minorKey">./Classes/AppDelegateBase.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
|
<object class="IBPartialClassDescription">
|
||||||
|
<string key="className">HSOutlineView</string>
|
||||||
|
<string key="superclassName">NSOutlineView</string>
|
||||||
|
<object class="NSMutableDictionary" key="actions">
|
||||||
|
<string key="NS.key.0">copy:</string>
|
||||||
|
<string key="NS.object.0">id</string>
|
||||||
|
</object>
|
||||||
|
<object class="NSMutableDictionary" key="actionInfosByName">
|
||||||
|
<string key="NS.key.0">copy:</string>
|
||||||
|
<object class="IBActionInfo" key="NS.object.0">
|
||||||
|
<string key="name">copy:</string>
|
||||||
|
<string key="candidateClassName">id</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
|
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
||||||
|
<string key="majorKey">IBProjectSource</string>
|
||||||
|
<string key="minorKey">./Classes/HSOutlineView.h</string>
|
||||||
|
</object>
|
||||||
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">HSTableView</string>
|
<string key="className">HSTableView</string>
|
||||||
<string key="superclassName">NSTableView</string>
|
<string key="superclassName">NSTableView</string>
|
||||||
@@ -1780,17 +1784,9 @@
|
|||||||
<string key="minorKey">./Classes/HSTableView.h</string>
|
<string key="minorKey">./Classes/HSTableView.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">HSWindowController</string>
|
|
||||||
<string key="superclassName">NSWindowController</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/HSWindowController.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">PrioritizeDialog</string>
|
<string key="className">PrioritizeDialog</string>
|
||||||
<string key="superclassName">HSWindowController</string>
|
<string key="superclassName">NSWindowController</string>
|
||||||
<dictionary class="NSMutableDictionary" key="actions">
|
<dictionary class="NSMutableDictionary" key="actions">
|
||||||
<string key="addSelected:">id</string>
|
<string key="addSelected:">id</string>
|
||||||
<string key="cancel:">id</string>
|
<string key="cancel:">id</string>
|
||||||
@@ -1841,7 +1837,7 @@
|
|||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">ProblemDialog</string>
|
<string key="className">ProblemDialog</string>
|
||||||
<string key="superclassName">HSWindowController</string>
|
<string key="superclassName">NSWindowController</string>
|
||||||
<object class="NSMutableDictionary" key="actions">
|
<object class="NSMutableDictionary" key="actions">
|
||||||
<string key="NS.key.0">revealSelected:</string>
|
<string key="NS.key.0">revealSelected:</string>
|
||||||
<string key="NS.object.0">id</string>
|
<string key="NS.object.0">id</string>
|
||||||
@@ -1869,38 +1865,6 @@
|
|||||||
<string key="minorKey">./Classes/ProblemDialog.h</string>
|
<string key="minorKey">./Classes/ProblemDialog.h</string>
|
||||||
</object>
|
</object>
|
||||||
</object>
|
</object>
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">PyApp</string>
|
|
||||||
<string key="superclassName">PyFairware</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/PyApp.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">PyDupeGuru</string>
|
|
||||||
<string key="superclassName">PyDupeGuruBase</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/PyDupeGuru.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">PyDupeGuruBase</string>
|
|
||||||
<string key="superclassName">PyApp</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/PyDupeGuruBase.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
|
||||||
<string key="className">PyFairware</string>
|
|
||||||
<string key="superclassName">NSObject</string>
|
|
||||||
<object class="IBClassDescriptionSource" key="sourceIdentifier">
|
|
||||||
<string key="majorKey">IBProjectSource</string>
|
|
||||||
<string key="minorKey">./Classes/PyFairware.h</string>
|
|
||||||
</object>
|
|
||||||
</object>
|
|
||||||
<object class="IBPartialClassDescription">
|
<object class="IBPartialClassDescription">
|
||||||
<string key="className">ResultWindowBase</string>
|
<string key="className">ResultWindowBase</string>
|
||||||
<string key="superclassName">NSWindowController</string>
|
<string key="superclassName">NSWindowController</string>
|
||||||
@@ -2127,7 +2091,7 @@
|
|||||||
</object>
|
</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>
|
||||||
<integer value="1050" key="NS.object.0"/>
|
<real value="1060" key="NS.object.0"/>
|
||||||
</object>
|
</object>
|
||||||
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
|
||||||
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
|
||||||
|
|||||||
41
cocoa/base/main.m
Normal file
41
cocoa/base/main.m
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
||||||
|
|
||||||
|
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
||||||
|
which should be included with this package. The terms are also available at
|
||||||
|
http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import <Cocoa/Cocoa.h>
|
||||||
|
#import <Python.h>
|
||||||
|
#import <wchar.h>
|
||||||
|
#import <locale.h>
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
||||||
|
/* We have to set the locate to UTF8 for mbstowcs() to correctly convert non-ascii chars in paths */
|
||||||
|
setlocale(LC_ALL, "en_US.UTF-8");
|
||||||
|
NSString *respath = [[NSBundle mainBundle] resourcePath];
|
||||||
|
NSString *mainpy = [respath stringByAppendingPathComponent:@"dg_cocoa.py"];
|
||||||
|
wchar_t wPythonPath[PATH_MAX+1];
|
||||||
|
NSString *pypath = [respath stringByAppendingPathComponent:@"py"];
|
||||||
|
mbstowcs(wPythonPath, [pypath fileSystemRepresentation], PATH_MAX+1);
|
||||||
|
Py_SetPath(wPythonPath);
|
||||||
|
Py_SetPythonHome(wPythonPath);
|
||||||
|
Py_Initialize();
|
||||||
|
PyEval_InitThreads();
|
||||||
|
PyGILState_STATE gilState = PyGILState_Ensure();
|
||||||
|
FILE* fp = fopen([mainpy UTF8String], "r");
|
||||||
|
PyRun_SimpleFile(fp, [mainpy UTF8String]);
|
||||||
|
fclose(fp);
|
||||||
|
PyGILState_Release(gilState);
|
||||||
|
if (gilState == PyGILState_LOCKED) {
|
||||||
|
PyThreadState_Swap(NULL);
|
||||||
|
PyEval_ReleaseLock();
|
||||||
|
}
|
||||||
|
int result = NSApplicationMain(argc, (const char **) argv);
|
||||||
|
Py_Finalize();
|
||||||
|
[pool release];
|
||||||
|
return result;
|
||||||
|
}
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from objp.util import pyref, dontwrap
|
||||||
from jobprogress import job
|
from jobprogress import job
|
||||||
import cocoa
|
import cocoa
|
||||||
from cocoa import install_exception_hook, proxy
|
from cocoa import install_exception_hook, proxy
|
||||||
from cocoa.inter import signature, subproxy, PyFairware
|
from cocoa.inter import PyFairware, FairwareView
|
||||||
from hscommon.trans import trget
|
from hscommon.trans import trget
|
||||||
|
|
||||||
from core.app import JobType
|
from core.app import JobType
|
||||||
from .result_table import PyResultTable
|
|
||||||
|
|
||||||
tr = trget('ui')
|
tr = trget('ui')
|
||||||
|
|
||||||
@@ -19,128 +19,136 @@ JOBID2TITLE = {
|
|||||||
JobType.Delete: tr("Sending to Trash"),
|
JobType.Delete: tr("Sending to Trash"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class DupeGuruView(FairwareView):
|
||||||
|
def showExtraFairwareReminder(self): pass
|
||||||
|
|
||||||
class PyDupeGuruBase(PyFairware):
|
class PyDupeGuruBase(PyFairware):
|
||||||
|
FOLLOW_PROTOCOLS = ['Worker']
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
def _init(self, modelclass):
|
def _init(self, modelclass):
|
||||||
logging.basicConfig(level=logging.WARNING, format='%(levelname)s %(message)s')
|
logging.basicConfig(level=logging.WARNING, format='%(levelname)s %(message)s')
|
||||||
install_exception_hook()
|
install_exception_hook()
|
||||||
appdata = proxy.getAppdataPath()
|
appdata = proxy.getAppdataPath()
|
||||||
self.py = modelclass(self, appdata)
|
self.model = modelclass(self, appdata)
|
||||||
self.progress = cocoa.ThreadedJobPerformer()
|
self.progress = cocoa.ThreadedJobPerformer()
|
||||||
|
|
||||||
def bindCocoa_(self, cocoa):
|
#---Sub-proxies
|
||||||
self.cocoa = cocoa
|
def detailsPanel(self) -> pyref:
|
||||||
|
return self.model.details_panel
|
||||||
|
|
||||||
resultTable = subproxy('resultTable', 'result_table', PyResultTable)
|
def directoryTree(self) -> pyref:
|
||||||
|
return self.model.directory_tree
|
||||||
|
|
||||||
|
def problemDialog(self) -> pyref:
|
||||||
|
return self.model.problem_dialog
|
||||||
|
|
||||||
|
def statsLabel(self) -> pyref:
|
||||||
|
return self.model.stats_label
|
||||||
|
|
||||||
|
def resultTable(self) -> pyref:
|
||||||
|
return self.model.result_table
|
||||||
|
|
||||||
#---Directories
|
#---Directories
|
||||||
def addDirectory_(self, directory):
|
def addDirectory_(self, directory: str) -> int:
|
||||||
return self.py.add_directory(directory)
|
return self.model.add_directory(directory)
|
||||||
|
|
||||||
#---Results
|
#---Results
|
||||||
def clearIgnoreList(self):
|
def clearIgnoreList(self):
|
||||||
self.py.scanner.ignore_list.Clear()
|
self.model.scanner.ignore_list.Clear()
|
||||||
|
|
||||||
def doScan(self):
|
def doScan(self):
|
||||||
self.py.start_scanning()
|
self.model.start_scanning()
|
||||||
|
|
||||||
def exportToXHTML(self):
|
def exportToXHTML(self) -> str:
|
||||||
return self.py.export_to_xhtml()
|
return self.model.export_to_xhtml()
|
||||||
|
|
||||||
def loadSession(self):
|
def loadSession(self):
|
||||||
self.py.load()
|
self.model.load()
|
||||||
|
|
||||||
def loadResultsFrom_(self, filename):
|
def loadResultsFrom_(self, filename: str):
|
||||||
self.py.load_from(filename)
|
self.model.load_from(filename)
|
||||||
|
|
||||||
def markAll(self):
|
def markAll(self):
|
||||||
self.py.mark_all()
|
self.model.mark_all()
|
||||||
|
|
||||||
def markNone(self):
|
def markNone(self):
|
||||||
self.py.mark_none()
|
self.model.mark_none()
|
||||||
|
|
||||||
def markInvert(self):
|
def markInvert(self):
|
||||||
self.py.mark_invert()
|
self.model.mark_invert()
|
||||||
|
|
||||||
def purgeIgnoreList(self):
|
def purgeIgnoreList(self):
|
||||||
self.py.purge_ignore_list()
|
self.model.purge_ignore_list()
|
||||||
|
|
||||||
def toggleSelectedMark(self):
|
def toggleSelectedMark(self):
|
||||||
self.py.toggle_selected_mark_state()
|
self.model.toggle_selected_mark_state()
|
||||||
|
|
||||||
def saveSession(self):
|
def saveSession(self):
|
||||||
self.py.save()
|
self.model.save()
|
||||||
|
|
||||||
def saveResultsAs_(self, filename):
|
def saveResultsAs_(self, filename: str):
|
||||||
self.py.save_as(filename)
|
self.model.save_as(filename)
|
||||||
|
|
||||||
#---Actions
|
#---Actions
|
||||||
def addSelectedToIgnoreList(self):
|
def addSelectedToIgnoreList(self):
|
||||||
self.py.add_selected_to_ignore_list()
|
self.model.add_selected_to_ignore_list()
|
||||||
|
|
||||||
def deleteMarked(self):
|
def deleteMarked(self):
|
||||||
self.py.delete_marked()
|
self.model.delete_marked()
|
||||||
|
|
||||||
def hardlinkMarked(self):
|
def hardlinkMarked(self):
|
||||||
self.py.delete_marked(replace_with_hardlinks=True)
|
self.model.delete_marked(replace_with_hardlinks=True)
|
||||||
|
|
||||||
def applyFilter_(self, filter):
|
def applyFilter_(self, filter: str):
|
||||||
self.py.apply_filter(filter)
|
self.model.apply_filter(filter)
|
||||||
|
|
||||||
def makeSelectedReference(self):
|
def makeSelectedReference(self):
|
||||||
self.py.make_selected_reference()
|
self.model.make_selected_reference()
|
||||||
|
|
||||||
def copyOrMove_markedTo_recreatePath_(self, copy, destination, recreate_path):
|
def copyOrMove_markedTo_recreatePath_(self, copy: bool, destination: str, recreate_path: bool):
|
||||||
self.py.copy_or_move_marked(copy, destination, recreate_path)
|
self.model.copy_or_move_marked(copy, destination, recreate_path)
|
||||||
|
|
||||||
def openSelected(self):
|
def openSelected(self):
|
||||||
self.py.open_selected()
|
self.model.open_selected()
|
||||||
|
|
||||||
def removeMarked(self):
|
def removeMarked(self):
|
||||||
self.py.remove_marked()
|
self.model.remove_marked()
|
||||||
|
|
||||||
def renameSelected_(self,newname):
|
|
||||||
return self.py.rename_selected(newname)
|
|
||||||
|
|
||||||
def revealSelected(self):
|
def revealSelected(self):
|
||||||
self.py.reveal_selected()
|
self.model.reveal_selected()
|
||||||
|
|
||||||
def invokeCommand_(self, cmd):
|
def invokeCommand_(self, cmd: str):
|
||||||
self.py.invoke_command(cmd)
|
self.model.invoke_command(cmd)
|
||||||
|
|
||||||
#---Information
|
#---Information
|
||||||
def getIgnoreListCount(self):
|
def getIgnoreListCount(self) -> int:
|
||||||
return len(self.py.scanner.ignore_list)
|
return len(self.model.scanner.ignore_list)
|
||||||
|
|
||||||
def getMarkCount(self):
|
def getMarkCount(self) -> int:
|
||||||
return self.py.results.mark_count
|
return self.model.results.mark_count
|
||||||
|
|
||||||
@signature('i@:')
|
def scanWasProblematic(self) -> bool:
|
||||||
def scanWasProblematic(self):
|
return bool(self.model.results.problems)
|
||||||
return bool(self.py.results.problems)
|
|
||||||
|
|
||||||
@signature('i@:')
|
def resultsAreModified(self) -> bool:
|
||||||
def resultsAreModified(self):
|
return self.model.results.is_modified
|
||||||
return self.py.results.is_modified
|
|
||||||
|
|
||||||
#---Properties
|
#---Properties
|
||||||
@signature('v@:c')
|
def setMixFileKind_(self, mix_file_kind: bool):
|
||||||
def setMixFileKind_(self, mix_file_kind):
|
self.model.scanner.mix_file_kind = mix_file_kind
|
||||||
self.py.scanner.mix_file_kind = mix_file_kind
|
|
||||||
|
|
||||||
@signature('v@:c')
|
def setEscapeFilterRegexp_(self, escape_filter_regexp: bool):
|
||||||
def setEscapeFilterRegexp_(self, escape_filter_regexp):
|
self.model.options['escape_filter_regexp'] = escape_filter_regexp
|
||||||
self.py.options['escape_filter_regexp'] = escape_filter_regexp
|
|
||||||
|
|
||||||
@signature('v@:c')
|
def setRemoveEmptyFolders_(self, remove_empty_folders: bool):
|
||||||
def setRemoveEmptyFolders_(self, remove_empty_folders):
|
self.model.options['clean_empty_dirs'] = remove_empty_folders
|
||||||
self.py.options['clean_empty_dirs'] = remove_empty_folders
|
|
||||||
|
|
||||||
@signature('v@:c')
|
def setIgnoreHardlinkMatches_(self, ignore_hardlink_matches: bool):
|
||||||
def setIgnoreHardlinkMatches_(self, ignore_hardlink_matches):
|
self.model.options['ignore_hardlink_matches'] = ignore_hardlink_matches
|
||||||
self.py.options['ignore_hardlink_matches'] = ignore_hardlink_matches
|
|
||||||
|
|
||||||
#---Worker
|
#---Worker
|
||||||
def getJobProgress(self):
|
def getJobProgress(self) -> object: # NSNumber
|
||||||
try:
|
try:
|
||||||
return self.progress.last_progress
|
return self.progress.last_progress
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
@@ -149,7 +157,7 @@ class PyDupeGuruBase(PyFairware):
|
|||||||
# is sent), but it happens anyway, so there we go. ref: #106
|
# is sent), but it happens anyway, so there we go. ref: #106
|
||||||
return -1
|
return -1
|
||||||
|
|
||||||
def getJobDesc(self):
|
def getJobDesc(self) -> str:
|
||||||
try:
|
try:
|
||||||
return self.progress.last_desc
|
return self.progress.last_desc
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
@@ -159,16 +167,19 @@ class PyDupeGuruBase(PyFairware):
|
|||||||
def cancelJob(self):
|
def cancelJob(self):
|
||||||
self.progress.job_cancelled = True
|
self.progress.job_cancelled = True
|
||||||
|
|
||||||
def jobCompleted_(self, jobid):
|
def jobCompleted_(self, jobid: str):
|
||||||
self.py._job_completed(jobid)
|
self.model._job_completed(jobid)
|
||||||
|
|
||||||
#--- model --> view
|
#--- model --> view
|
||||||
|
@dontwrap
|
||||||
def open_path(self, path):
|
def open_path(self, path):
|
||||||
proxy.openPath_(str(path))
|
proxy.openPath_(str(path))
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
def reveal_path(self, path):
|
def reveal_path(self, path):
|
||||||
proxy.revealPath_(str(path))
|
proxy.revealPath_(str(path))
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
def start_job(self, jobid, func, args=()):
|
def start_job(self, jobid, func, args=()):
|
||||||
try:
|
try:
|
||||||
j = self.progress.create_job()
|
j = self.progress.create_job()
|
||||||
@@ -180,9 +191,7 @@ class PyDupeGuruBase(PyFairware):
|
|||||||
ud = {'desc': JOBID2TITLE[jobid], 'jobid':jobid}
|
ud = {'desc': JOBID2TITLE[jobid], 'jobid':jobid}
|
||||||
proxy.postNotification_userInfo_('JobStarted', ud)
|
proxy.postNotification_userInfo_('JobStarted', ud)
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
def show_extra_fairware_reminder(self):
|
def show_extra_fairware_reminder(self):
|
||||||
self.cocoa.showExtraFairwareReminder()
|
self.cocoa.showExtraFairwareReminder()
|
||||||
|
|
||||||
def show_message(self, msg):
|
|
||||||
self.cocoa.showMessage_(msg)
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,9 @@ from cocoa import as_fetch
|
|||||||
from hscommon.trans import tr
|
from hscommon.trans import tr
|
||||||
|
|
||||||
from core.app import JobType
|
from core.app import JobType
|
||||||
|
from core.scanner import ScanType
|
||||||
from core_me.app import DupeGuru as DupeGuruBase
|
from core_me.app import DupeGuru as DupeGuruBase
|
||||||
from .app import JOBID2TITLE
|
from .app import JOBID2TITLE, PyDupeGuruBase
|
||||||
|
|
||||||
JobType.RemoveDeadTracks = 'jobRemoveDeadTracks'
|
JobType.RemoveDeadTracks = 'jobRemoveDeadTracks'
|
||||||
JobType.ScanDeadTracks = 'jobScanDeadTracks'
|
JobType.ScanDeadTracks = 'jobScanDeadTracks'
|
||||||
@@ -67,3 +68,45 @@ class DupeGuruME(DupeGuruBase):
|
|||||||
|
|
||||||
self.view.start_job(JobType.ScanDeadTracks, do)
|
self.view.start_job(JobType.ScanDeadTracks, do)
|
||||||
|
|
||||||
|
class PyDupeGuru(PyDupeGuruBase):
|
||||||
|
def __init__(self):
|
||||||
|
self._init(DupeGuruME)
|
||||||
|
|
||||||
|
def removeDeadTracks(self):
|
||||||
|
self.model.remove_dead_tracks()
|
||||||
|
|
||||||
|
def scanDeadTracks(self):
|
||||||
|
self.model.scan_dead_tracks()
|
||||||
|
|
||||||
|
#---Information
|
||||||
|
def deadTrackCount(self) -> int:
|
||||||
|
return len(self.model.dead_tracks)
|
||||||
|
|
||||||
|
#---Properties
|
||||||
|
def setMinMatchPercentage_(self, percentage: int):
|
||||||
|
self.model.scanner.min_match_percentage = percentage
|
||||||
|
|
||||||
|
def setScanType_(self, scan_type: int):
|
||||||
|
try:
|
||||||
|
self.model.scanner.scan_type = [
|
||||||
|
ScanType.Filename,
|
||||||
|
ScanType.Fields,
|
||||||
|
ScanType.FieldsNoOrder,
|
||||||
|
ScanType.Tag,
|
||||||
|
ScanType.Contents,
|
||||||
|
ScanType.ContentsAudio,
|
||||||
|
][scan_type]
|
||||||
|
except IndexError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def setWordWeighting_(self, words_are_weighted: bool):
|
||||||
|
self.model.scanner.word_weighting = words_are_weighted
|
||||||
|
|
||||||
|
def setMatchSimilarWords_(self, match_similar_words: bool):
|
||||||
|
self.model.scanner.match_similar_words = match_similar_words
|
||||||
|
|
||||||
|
def enable_scanForTag_(self, enable: bool, scan_tag: str):
|
||||||
|
if enable:
|
||||||
|
self.model.scanner.scanned_tags.add(scan_tag)
|
||||||
|
else:
|
||||||
|
self.model.scanner.scanned_tags.discard(scan_tag)
|
||||||
|
|||||||
@@ -19,10 +19,12 @@ from hscommon.path import Path
|
|||||||
from hscommon.trans import tr
|
from hscommon.trans import tr
|
||||||
from cocoa import proxy
|
from cocoa import proxy
|
||||||
|
|
||||||
|
from core.scanner import ScanType
|
||||||
from core import directories
|
from core import directories
|
||||||
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
|
||||||
|
from .app import PyDupeGuruBase
|
||||||
|
|
||||||
IPHOTO_PATH = Path('iPhoto Library')
|
IPHOTO_PATH = Path('iPhoto Library')
|
||||||
|
|
||||||
@@ -152,7 +154,11 @@ class DupeGuruPE(DupeGuruBase):
|
|||||||
if isinstance(dupe, IPhoto):
|
if isinstance(dupe, IPhoto):
|
||||||
try:
|
try:
|
||||||
a = app('iPhoto')
|
a = app('iPhoto')
|
||||||
[photo] = a.photo_library_album().photos[its.image_path == str(dupe.path)]()
|
album = a.photo_library_album()
|
||||||
|
if album is None:
|
||||||
|
msg = "There are communication problems with iPhoto. Try opening iPhoto first, it might solve it."
|
||||||
|
raise EnvironmentError(msg)
|
||||||
|
[photo] = album.photos[its.image_path == str(dupe.path)]()
|
||||||
a.remove(photo, timeout=0)
|
a.remove(photo, timeout=0)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
msg = "Could not find photo '{}' in iPhoto Library".format(str(dupe.path))
|
msg = "Could not find photo '{}' in iPhoto Library".format(str(dupe.path))
|
||||||
@@ -194,3 +200,32 @@ class DupeGuruPE(DupeGuruBase):
|
|||||||
return
|
return
|
||||||
DupeGuruBase.start_scanning(self)
|
DupeGuruBase.start_scanning(self)
|
||||||
|
|
||||||
|
class PyDupeGuru(PyDupeGuruBase):
|
||||||
|
def __init__(self):
|
||||||
|
self._init(DupeGuruPE)
|
||||||
|
|
||||||
|
def clearPictureCache(self):
|
||||||
|
self.model.scanner.clear_picture_cache()
|
||||||
|
|
||||||
|
#---Information
|
||||||
|
def getSelectedDupePath(self) -> str:
|
||||||
|
return str(self.model.selected_dupe_path())
|
||||||
|
|
||||||
|
def getSelectedDupeRefPath(self) -> str:
|
||||||
|
return str(self.model.selected_dupe_ref_path())
|
||||||
|
|
||||||
|
#---Properties
|
||||||
|
def setScanType_(self, scan_type: int):
|
||||||
|
try:
|
||||||
|
self.model.scanner.scan_type = [
|
||||||
|
ScanType.FuzzyBlock,
|
||||||
|
ScanType.ExifTimestamp,
|
||||||
|
][scan_type]
|
||||||
|
except IndexError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def setMatchScaled_(self, match_scaled: bool):
|
||||||
|
self.model.scanner.match_scaled = match_scaled
|
||||||
|
|
||||||
|
def setMinMatchPercentage_(self, percentage: int):
|
||||||
|
self.model.scanner.threshold = percentage
|
||||||
|
|||||||
@@ -13,9 +13,11 @@ from hscommon import io
|
|||||||
from hscommon.path import Path
|
from hscommon.path import Path
|
||||||
from cocoa import proxy
|
from cocoa import proxy
|
||||||
|
|
||||||
|
from core.scanner import ScanType
|
||||||
from core import fs
|
from core import fs
|
||||||
from core.directories import Directories as DirectoriesBase, DirectoryState
|
from core.directories import Directories as DirectoriesBase, DirectoryState
|
||||||
from core_se.app import DupeGuru as DupeGuruBase
|
from core_se.app import DupeGuru as DupeGuruBase
|
||||||
|
from .app import PyDupeGuruBase
|
||||||
|
|
||||||
def is_bundle(str_path):
|
def is_bundle(str_path):
|
||||||
uti = proxy.getUTI_(str_path)
|
uti = proxy.getUTI_(str_path)
|
||||||
@@ -70,3 +72,31 @@ class DupeGuru(DupeGuruBase):
|
|||||||
DupeGuruBase.__init__(self, view, appdata)
|
DupeGuruBase.__init__(self, view, appdata)
|
||||||
self.directories = Directories()
|
self.directories = Directories()
|
||||||
|
|
||||||
|
|
||||||
|
class PyDupeGuru(PyDupeGuruBase):
|
||||||
|
def __init__(self):
|
||||||
|
self._init(DupeGuru)
|
||||||
|
|
||||||
|
#---Properties
|
||||||
|
def setMinMatchPercentage_(self, percentage: int):
|
||||||
|
self.model.scanner.min_match_percentage = int(percentage)
|
||||||
|
|
||||||
|
def setScanType_(self, scan_type: int):
|
||||||
|
try:
|
||||||
|
self.model.scanner.scan_type = [
|
||||||
|
ScanType.Filename,
|
||||||
|
ScanType.Contents,
|
||||||
|
ScanType.Folders,
|
||||||
|
][scan_type]
|
||||||
|
except IndexError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def setWordWeighting_(self, words_are_weighted: bool):
|
||||||
|
self.model.scanner.word_weighting = words_are_weighted
|
||||||
|
|
||||||
|
def setMatchSimilarWords_(self, match_similar_words: bool):
|
||||||
|
self.model.scanner.match_similar_words = match_similar_words
|
||||||
|
|
||||||
|
def setSizeThreshold_(self, size_threshold: int):
|
||||||
|
self.model.scanner.size_threshold = size_threshold
|
||||||
|
|
||||||
|
|||||||
@@ -1,13 +1,11 @@
|
|||||||
from cocoa.inter import signature, PyGUIObject
|
from cocoa.inter import PyGUIObject, GUIObjectView
|
||||||
|
|
||||||
from core.gui.details_panel import DetailsPanel
|
class DetailsPanelView(GUIObjectView):
|
||||||
|
pass
|
||||||
|
|
||||||
class PyDetailsPanel(PyGUIObject):
|
class PyDetailsPanel(PyGUIObject):
|
||||||
py_class = DetailsPanel
|
def numberOfRows(self) -> int:
|
||||||
@signature('i@:')
|
return self.model.row_count()
|
||||||
def numberOfRows(self):
|
|
||||||
return self.py.row_count()
|
|
||||||
|
|
||||||
@signature('@@:@i')
|
def valueForColumn_row_(self, column: str, row: int) -> object:
|
||||||
def valueForColumn_row_(self, column, row):
|
return self.model.row(row)[int(column)]
|
||||||
return self.py.row(row)[int(column)]
|
|
||||||
|
|||||||
@@ -1,17 +1,18 @@
|
|||||||
from cocoa.inter import PyOutline
|
from objp.util import dontwrap
|
||||||
|
from cocoa.inter import PyOutline, GUIObjectView
|
||||||
|
|
||||||
from core.gui.directory_tree import DirectoryTree
|
class DirectoryOutlineView(GUIObjectView):
|
||||||
|
pass
|
||||||
|
|
||||||
class PyDirectoryOutline(PyOutline):
|
class PyDirectoryOutline(PyOutline):
|
||||||
py_class = DirectoryTree
|
def addDirectory_(self, path: str):
|
||||||
|
self.model.add_directory(path)
|
||||||
def addDirectory_(self, path):
|
|
||||||
self.py.add_directory(path)
|
|
||||||
|
|
||||||
def removeSelectedDirectory(self):
|
def removeSelectedDirectory(self):
|
||||||
self.py.remove_selected()
|
self.model.remove_selected()
|
||||||
|
|
||||||
# python --> cocoa
|
# python --> cocoa
|
||||||
|
@dontwrap
|
||||||
def refresh_states(self):
|
def refresh_states(self):
|
||||||
# Under cocoa, both refresh() and refresh_states() do the same thing.
|
# Under cocoa, both refresh() and refresh_states() do the same thing.
|
||||||
self.cocoa.refresh()
|
self.callback.refresh()
|
||||||
@@ -1,25 +1,37 @@
|
|||||||
|
from objp.util import pyref, dontwrap
|
||||||
from cocoa.inter import PyGUIObject
|
from cocoa.inter import PyGUIObject
|
||||||
|
|
||||||
from core.gui.extra_fairware_reminder import ExtraFairwareReminder
|
from core.gui.extra_fairware_reminder import ExtraFairwareReminder
|
||||||
|
|
||||||
|
class ExtraFairwareReminderView:
|
||||||
|
def startTimer(self): pass
|
||||||
|
def stopTimer(self): pass
|
||||||
|
def setButtonText_(self, text: str): pass;
|
||||||
|
def enableButton(self): pass
|
||||||
|
|
||||||
class PyExtraFairwareReminder(PyGUIObject):
|
class PyExtraFairwareReminder(PyGUIObject):
|
||||||
py_class = ExtraFairwareReminder
|
def __init__(self, app: pyref):
|
||||||
|
model = ExtraFairwareReminder(app.model)
|
||||||
|
PyGUIObject.__init__(self, model)
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.py.start()
|
self.model.start()
|
||||||
|
|
||||||
def updateButton(self):
|
def updateButton(self):
|
||||||
self.py.update_button()
|
self.model.update_button()
|
||||||
|
|
||||||
# model --> view
|
# model --> view
|
||||||
|
@dontwrap
|
||||||
def start_timer(self):
|
def start_timer(self):
|
||||||
self.cocoa.startTimer()
|
self.callback.startTimer()
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
def stop_timer(self):
|
def stop_timer(self):
|
||||||
self.cocoa.stopTimer()
|
self.callback.stopTimer()
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
def enable_button(self):
|
def enable_button(self):
|
||||||
self.cocoa.enableButton()
|
self.callback.enableButton()
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
def set_button_text(self, text):
|
def set_button_text(self, text):
|
||||||
self.cocoa.setButtonText_(text)
|
self.callback.setButtonText_(text)
|
||||||
|
|||||||
@@ -1,31 +1,29 @@
|
|||||||
from cocoa.inter import PyGUIObject, PySelectableList
|
from objp.util import pyref
|
||||||
|
from cocoa.inter import PyGUIObject, GUIObjectView
|
||||||
from core.gui.prioritize_dialog import PrioritizeDialog
|
from core.gui.prioritize_dialog import PrioritizeDialog
|
||||||
from .prioritize_list import PyPrioritizeList
|
|
||||||
|
class PrioritizeDialogView(GUIObjectView):
|
||||||
|
pass
|
||||||
|
|
||||||
class PyPrioritizeDialog(PyGUIObject):
|
class PyPrioritizeDialog(PyGUIObject):
|
||||||
py_class = PrioritizeDialog
|
def __init__(self, app: pyref):
|
||||||
|
model = PrioritizeDialog(app.model)
|
||||||
|
PyGUIObject.__init__(self, model)
|
||||||
|
|
||||||
def categoryList(self):
|
def categoryList(self) -> pyref:
|
||||||
if not hasattr(self, '_categoryList'):
|
return self.model.category_list
|
||||||
self._categoryList = PySelectableList.alloc().initWithPy_(self.py.category_list)
|
|
||||||
return self._categoryList
|
|
||||||
|
|
||||||
def criteriaList(self):
|
def criteriaList(self) -> pyref:
|
||||||
if not hasattr(self, '_criteriaList'):
|
return self.model.criteria_list
|
||||||
self._criteriaList = PySelectableList.alloc().initWithPy_(self.py.criteria_list)
|
|
||||||
return self._criteriaList
|
|
||||||
|
|
||||||
def prioritizationList(self):
|
def prioritizationList(self) -> pyref:
|
||||||
if not hasattr(self, '_prioritizationList'):
|
return self.model.prioritization_list
|
||||||
self._prioritizationList = PyPrioritizeList.alloc().initWithPy_(self.py.prioritization_list)
|
|
||||||
return self._prioritizationList
|
|
||||||
|
|
||||||
def addSelected(self):
|
def addSelected(self):
|
||||||
self.py.add_selected()
|
self.model.add_selected()
|
||||||
|
|
||||||
def removeSelected(self):
|
def removeSelected(self):
|
||||||
self.py.remove_selected()
|
self.model.remove_selected()
|
||||||
|
|
||||||
def performReprioritization(self):
|
def performReprioritization(self):
|
||||||
self.py.perform_reprioritization()
|
self.model.perform_reprioritization()
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
from cocoa.inter import signature, PySelectableList
|
from cocoa.inter import PySelectableList, SelectableListView
|
||||||
|
|
||||||
|
class PrioritizeListView(SelectableListView):
|
||||||
|
pass
|
||||||
|
|
||||||
class PyPrioritizeList(PySelectableList):
|
class PyPrioritizeList(PySelectableList):
|
||||||
@signature('v@:@i')
|
def moveIndexes_toIndex_(self, indexes: list, dest_index: int):
|
||||||
def moveIndexes_toIndex_(self, indexes, dest_index):
|
self.model.move_indexes(indexes, dest_index)
|
||||||
self.py.move_indexes(indexes, dest_index)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
|
from objp.util import pyref
|
||||||
from cocoa.inter import PyGUIObject
|
from cocoa.inter import PyGUIObject
|
||||||
|
|
||||||
from core.gui.problem_dialog import ProblemDialog
|
|
||||||
|
|
||||||
class PyProblemDialog(PyGUIObject):
|
class PyProblemDialog(PyGUIObject):
|
||||||
py_class = ProblemDialog
|
def problemTable(self) -> pyref:
|
||||||
|
return self.model.problem_table
|
||||||
|
|
||||||
def revealSelected(self):
|
def revealSelected(self):
|
||||||
self.py.reveal_selected_dupe()
|
self.model.reveal_selected_dupe()
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
from cocoa.inter import PyTable
|
|
||||||
|
|
||||||
from core.gui.problem_table import ProblemTable
|
|
||||||
|
|
||||||
class PyProblemTable(PyTable):
|
|
||||||
py_class = ProblemTable
|
|
||||||
@@ -1,53 +1,49 @@
|
|||||||
from cocoa.inter import signature, PyTable
|
from objp.util import dontwrap
|
||||||
|
from cocoa.inter import PyTable, TableView
|
||||||
|
|
||||||
|
class ResultTableView(TableView):
|
||||||
|
def invalidateMarkings(self): pass
|
||||||
|
|
||||||
class PyResultTable(PyTable):
|
class PyResultTable(PyTable):
|
||||||
@signature('c@:')
|
def powerMarkerMode(self) -> bool:
|
||||||
def powerMarkerMode(self):
|
return self.model.power_marker
|
||||||
return self.py.power_marker
|
|
||||||
|
|
||||||
@signature('v@:c')
|
def setPowerMarkerMode_(self, value: bool):
|
||||||
def setPowerMarkerMode_(self, value):
|
self.model.power_marker = value
|
||||||
self.py.power_marker = value
|
|
||||||
|
|
||||||
@signature('c@:')
|
def deltaValuesMode(self) -> bool:
|
||||||
def deltaValuesMode(self):
|
return self.model.delta_values
|
||||||
return self.py.delta_values
|
|
||||||
|
|
||||||
@signature('v@:c')
|
def setDeltaValuesMode_(self, value: bool):
|
||||||
def setDeltaValuesMode_(self, value):
|
self.model.delta_values = value
|
||||||
self.py.delta_values = value
|
|
||||||
|
|
||||||
def deltaColumns(self):
|
def deltaColumns(self) -> list:
|
||||||
return list(self.py.DELTA_COLUMNS)
|
return list(self.model.DELTA_COLUMNS)
|
||||||
|
|
||||||
@signature('@@:i@')
|
def valueForRow_column_(self, row_index: int, column: str) -> object:
|
||||||
def valueForRow_column_(self, row_index, column):
|
return self.model.get_row_value(row_index, column)
|
||||||
return self.py.get_row_value(row_index, column)
|
|
||||||
|
|
||||||
@signature('c@:@')
|
def renameSelected_(self, newname: str) -> bool:
|
||||||
def renameSelected_(self, newname):
|
return self.model.rename_selected(newname)
|
||||||
return self.py.rename_selected(newname)
|
|
||||||
|
|
||||||
@signature('v@:@c')
|
def sortBy_ascending_(self, key: str, asc: bool):
|
||||||
def sortBy_ascending_(self, key, asc):
|
self.model.sort(key, asc)
|
||||||
self.py.sort(key, asc)
|
|
||||||
|
|
||||||
def markSelected(self):
|
def markSelected(self):
|
||||||
self.py.app.toggle_selected_mark_state()
|
self.model.app.toggle_selected_mark_state()
|
||||||
|
|
||||||
def removeSelected(self):
|
def removeSelected(self):
|
||||||
self.py.app.remove_selected()
|
self.model.app.remove_selected()
|
||||||
|
|
||||||
@signature('i@:')
|
def selectedDupeCount(self) -> int:
|
||||||
def selectedDupeCount(self):
|
return self.model.selected_dupe_count
|
||||||
return self.py.selected_dupe_count
|
|
||||||
|
|
||||||
@signature('@@:i')
|
def pathAtIndex_(self, index: int) -> str:
|
||||||
def pathAtIndex_(self, index):
|
row = self.model[index]
|
||||||
row = self.py[index]
|
|
||||||
return str(row._dupe.path)
|
return str(row._dupe.path)
|
||||||
|
|
||||||
# python --> cocoa
|
# python --> cocoa
|
||||||
|
@dontwrap
|
||||||
def invalidate_markings(self):
|
def invalidate_markings(self):
|
||||||
self.cocoa.invalidateMarkings()
|
self.callback.invalidateMarkings()
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
from cocoa.inter import PyGUIObject
|
from cocoa.inter import PyGUIObject, GUIObjectView
|
||||||
|
|
||||||
from core.gui.stats_label import StatsLabel
|
class StatsLabelView(GUIObjectView):
|
||||||
|
pass
|
||||||
|
|
||||||
class PyStatsLabel(PyGUIObject):
|
class PyStatsLabel(PyGUIObject):
|
||||||
py_class = StatsLabel
|
|
||||||
|
|
||||||
def display(self):
|
def display(self) -> str:
|
||||||
return self.py.display
|
return self.model.display
|
||||||
|
|||||||
@@ -12,5 +12,4 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "PyDupeGuru.h"
|
#import "PyDupeGuru.h"
|
||||||
|
|
||||||
@interface AppDelegate : AppDelegateBase {}
|
@interface AppDelegate : AppDelegateBase {}
|
||||||
- (PyDupeGuru *)py;
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -74,8 +74,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
return [[DirectoryPanelME alloc] initWithParentApp:self];
|
return [[DirectoryPanelME alloc] initWithParentApp:self];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyDupeGuru *)py { return (PyDupeGuru *)py; }
|
|
||||||
|
|
||||||
//Delegate
|
//Delegate
|
||||||
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "../base/PyDupeGuru.h"
|
|
||||||
|
|
||||||
@interface PyDupeGuru : PyDupeGuruBase
|
|
||||||
//Scanning options
|
|
||||||
- (void)setMinWordCount:(NSNumber *)word_count;
|
|
||||||
- (void)setMinWordLength:(NSNumber *)word_length;
|
|
||||||
- (void)setWordWeighting:(NSNumber *)words_are_weighted;
|
|
||||||
- (void)setMatchSimilarWords:(NSNumber *)match_similar_words;
|
|
||||||
- (void)enable:(NSNumber *)enable scanForTag:(NSString *)tag;
|
|
||||||
- (void)scanDeadTracks;
|
|
||||||
- (void)removeDeadTracks;
|
|
||||||
- (NSInteger)deadTrackCount;
|
|
||||||
@end
|
|
||||||
@@ -11,25 +11,25 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "Utils.h"
|
#import "Utils.h"
|
||||||
#import "PyDupeGuru.h"
|
#import "PyDupeGuru.h"
|
||||||
#import "Consts.h"
|
#import "Consts.h"
|
||||||
|
#import "ProgressController.h"
|
||||||
|
|
||||||
@implementation ResultWindow
|
@implementation ResultWindow
|
||||||
/* Override */
|
/* Override */
|
||||||
- (void)setScanOptions
|
- (void)setScanOptions
|
||||||
{
|
{
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
PyDupeGuru *_py = (PyDupeGuru *)py;
|
[model setScanType:n2i([ud objectForKey:@"scanType"])];
|
||||||
[_py setScanType:[ud objectForKey:@"scanType"]];
|
[model enable:n2b([ud objectForKey:@"scanTagTrack"]) scanForTag:@"track"];
|
||||||
[_py enable:[ud objectForKey:@"scanTagTrack"] scanForTag:@"track"];
|
[model enable:n2b([ud objectForKey:@"scanTagArtist"]) scanForTag:@"artist"];
|
||||||
[_py enable:[ud objectForKey:@"scanTagArtist"] scanForTag:@"artist"];
|
[model enable:n2b([ud objectForKey:@"scanTagAlbum"]) scanForTag:@"album"];
|
||||||
[_py enable:[ud objectForKey:@"scanTagAlbum"] scanForTag:@"album"];
|
[model enable:n2b([ud objectForKey:@"scanTagTitle"]) scanForTag:@"title"];
|
||||||
[_py enable:[ud objectForKey:@"scanTagTitle"] scanForTag:@"title"];
|
[model enable:n2b([ud objectForKey:@"scanTagGenre"]) scanForTag:@"genre"];
|
||||||
[_py enable:[ud objectForKey:@"scanTagGenre"] scanForTag:@"genre"];
|
[model enable:n2b([ud objectForKey:@"scanTagYear"]) scanForTag:@"year"];
|
||||||
[_py enable:[ud objectForKey:@"scanTagYear"] scanForTag:@"year"];
|
[model setMinMatchPercentage:n2i([ud objectForKey:@"minMatchPercentage"])];
|
||||||
[_py setMinMatchPercentage:[ud objectForKey:@"minMatchPercentage"]];
|
[model setWordWeighting:n2b([ud objectForKey:@"wordWeighting"])];
|
||||||
[_py setWordWeighting:[ud objectForKey:@"wordWeighting"]];
|
[model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
||||||
[_py setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
[model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
||||||
[_py setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
[model setMatchSimilarWords:n2b([ud objectForKey:@"matchSimilarWords"])];
|
||||||
[_py setMatchSimilarWords:[ud objectForKey:@"matchSimilarWords"]];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)initResultColumns
|
- (void)initResultColumns
|
||||||
@@ -72,7 +72,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
/* Actions */
|
/* Actions */
|
||||||
- (IBAction)removeDeadTracks:(id)sender
|
- (IBAction)removeDeadTracks:(id)sender
|
||||||
{
|
{
|
||||||
[(PyDupeGuru *)py scanDeadTracks];
|
[model scanDeadTracks];
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Notifications */
|
/* Notifications */
|
||||||
@@ -81,11 +81,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
[super jobCompleted:aNotification];
|
[super jobCompleted:aNotification];
|
||||||
id lastAction = [[ProgressController mainProgressController] jobId];
|
id lastAction = [[ProgressController mainProgressController] jobId];
|
||||||
if ([lastAction isEqualTo:jobScanDeadTracks]) {
|
if ([lastAction isEqualTo:jobScanDeadTracks]) {
|
||||||
NSInteger deadTrackCount = [(PyDupeGuru *)py deadTrackCount];
|
NSInteger deadTrackCount = [model deadTrackCount];
|
||||||
if (deadTrackCount > 0) {
|
if (deadTrackCount > 0) {
|
||||||
NSString *msg = TR(@"Your iTunes Library contains %d dead tracks ready to be removed. Continue?");
|
NSString *msg = TR(@"Your iTunes Library contains %d dead tracks ready to be removed. Continue?");
|
||||||
if ([Dialogs askYesNo:[NSString stringWithFormat:msg,deadTrackCount]] == NSAlertFirstButtonReturn)
|
if ([Dialogs askYesNo:[NSString stringWithFormat:msg,deadTrackCount]] == NSAlertFirstButtonReturn)
|
||||||
[(PyDupeGuru *)py removeDeadTracks];
|
[model removeDeadTracks];
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
[Dialogs showMessage:TR(@"You have no dead tracks in your iTunes Library")];
|
[Dialogs showMessage:TR(@"You have no dead tracks in your iTunes Library")];
|
||||||
|
|||||||
@@ -7,64 +7,14 @@
|
|||||||
from hscommon.trans import install_gettext_trans_under_cocoa
|
from hscommon.trans import install_gettext_trans_under_cocoa
|
||||||
install_gettext_trans_under_cocoa()
|
install_gettext_trans_under_cocoa()
|
||||||
|
|
||||||
from cocoa.inter import signature
|
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
||||||
|
|
||||||
from core.scanner import ScanType
|
|
||||||
|
|
||||||
from inter.app import PyDupeGuruBase
|
|
||||||
from inter.details_panel import PyDetailsPanel
|
from inter.details_panel import PyDetailsPanel
|
||||||
from inter.directory_outline import PyDirectoryOutline
|
from inter.directory_outline import PyDirectoryOutline
|
||||||
from inter.extra_fairware_reminder import PyExtraFairwareReminder
|
from inter.extra_fairware_reminder import PyExtraFairwareReminder
|
||||||
from inter.prioritize_dialog import PyPrioritizeDialog
|
from inter.prioritize_dialog import PyPrioritizeDialog
|
||||||
|
from inter.prioritize_list import PyPrioritizeList
|
||||||
from inter.problem_dialog import PyProblemDialog
|
from inter.problem_dialog import PyProblemDialog
|
||||||
from inter.problem_table import PyProblemTable
|
|
||||||
from inter.result_table import PyResultTable
|
from inter.result_table import PyResultTable
|
||||||
from inter.stats_label import PyStatsLabel
|
from inter.stats_label import PyStatsLabel
|
||||||
from inter.app_me import DupeGuruME
|
from inter.app_me import PyDupeGuru
|
||||||
|
|
||||||
class PyDupeGuru(PyDupeGuruBase):
|
|
||||||
def init(self):
|
|
||||||
self = super(PyDupeGuru,self).init()
|
|
||||||
self._init(DupeGuruME)
|
|
||||||
return self
|
|
||||||
|
|
||||||
def removeDeadTracks(self):
|
|
||||||
self.py.remove_dead_tracks()
|
|
||||||
|
|
||||||
def scanDeadTracks(self):
|
|
||||||
self.py.scan_dead_tracks()
|
|
||||||
|
|
||||||
#---Information
|
|
||||||
@signature('i@:')
|
|
||||||
def deadTrackCount(self):
|
|
||||||
return len(self.py.dead_tracks)
|
|
||||||
|
|
||||||
#---Properties
|
|
||||||
def setMinMatchPercentage_(self, percentage):
|
|
||||||
self.py.scanner.min_match_percentage = int(percentage)
|
|
||||||
|
|
||||||
def setScanType_(self, scan_type):
|
|
||||||
try:
|
|
||||||
self.py.scanner.scan_type = [
|
|
||||||
ScanType.Filename,
|
|
||||||
ScanType.Fields,
|
|
||||||
ScanType.FieldsNoOrder,
|
|
||||||
ScanType.Tag,
|
|
||||||
ScanType.Contents,
|
|
||||||
ScanType.ContentsAudio,
|
|
||||||
][scan_type]
|
|
||||||
except IndexError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def setWordWeighting_(self, words_are_weighted):
|
|
||||||
self.py.scanner.word_weighting = words_are_weighted
|
|
||||||
|
|
||||||
def setMatchSimilarWords_(self, match_similar_words):
|
|
||||||
self.py.scanner.match_similar_words = match_similar_words
|
|
||||||
|
|
||||||
def enable_scanForTag_(self, enable, scan_tag):
|
|
||||||
if enable:
|
|
||||||
self.py.scanner.scanned_tags.add(scan_tag)
|
|
||||||
else:
|
|
||||||
self.py.scanner.scanned_tags.discard(scan_tag)
|
|
||||||
|
|
||||||
|
|||||||
@@ -19,11 +19,9 @@
|
|||||||
/* End PBXAppleScriptBuildPhase section */
|
/* End PBXAppleScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
|
||||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||||
CE003CC611242D00004B0AA7 /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CB411242D00004B0AA7 /* HSGUIController.m */; };
|
CE003CC611242D00004B0AA7 /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CB411242D00004B0AA7 /* HSGUIController.m */; };
|
||||||
CE003CC711242D00004B0AA7 /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CB611242D00004B0AA7 /* HSOutline.m */; };
|
CE003CC711242D00004B0AA7 /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CB611242D00004B0AA7 /* HSOutline.m */; };
|
||||||
CE003CC811242D00004B0AA7 /* HSWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CB811242D00004B0AA7 /* HSWindowController.m */; };
|
|
||||||
CE003CC911242D00004B0AA7 /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */; };
|
CE003CC911242D00004B0AA7 /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */; };
|
||||||
CE003CCA11242D00004B0AA7 /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CC111242D00004B0AA7 /* HSOutlineView.m */; };
|
CE003CCA11242D00004B0AA7 /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CC111242D00004B0AA7 /* HSOutlineView.m */; };
|
||||||
CE003CCB11242D00004B0AA7 /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CC311242D00004B0AA7 /* NSIndexPathAdditions.m */; };
|
CE003CCB11242D00004B0AA7 /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CC311242D00004B0AA7 /* NSIndexPathAdditions.m */; };
|
||||||
@@ -47,11 +45,9 @@
|
|||||||
CE2E87FD142BC92C00519A68 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2E87FC142BC92C00519A68 /* HSQuicklook.m */; };
|
CE2E87FD142BC92C00519A68 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2E87FC142BC92C00519A68 /* HSQuicklook.m */; };
|
||||||
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
|
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
|
||||||
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
|
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
|
||||||
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */ = {isa = PBXBuildFile; fileRef = CE381CF509915304003581CE /* dg_cocoa.plugin */; };
|
|
||||||
CE4B59C91119919700C06C9E /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE4B59C61119919700C06C9E /* progress.xib */; };
|
CE4B59C91119919700C06C9E /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE4B59C61119919700C06C9E /* progress.xib */; };
|
||||||
CE4F934912CCA96C0067A3AE /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4F934812CCA96C0067A3AE /* HSAboutBox.m */; };
|
CE4F934912CCA96C0067A3AE /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4F934812CCA96C0067A3AE /* HSAboutBox.m */; };
|
||||||
CE515DF30FC6C12E00EC695D /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE10FC6C12E00EC695D /* Dialogs.m */; };
|
CE515DF30FC6C12E00EC695D /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE10FC6C12E00EC695D /* Dialogs.m */; };
|
||||||
CE515DF40FC6C12E00EC695D /* HSErrorReportWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE30FC6C12E00EC695D /* HSErrorReportWindow.m */; };
|
|
||||||
CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE70FC6C12E00EC695D /* ProgressController.m */; };
|
CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE70FC6C12E00EC695D /* ProgressController.m */; };
|
||||||
CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DF00FC6C12E00EC695D /* Utils.m */; };
|
CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DF00FC6C12E00EC695D /* Utils.m */; };
|
||||||
CE515DFB0FC6C12E00EC695D /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DF20FC6C12E00EC695D /* ValueTransformers.m */; };
|
CE515DFB0FC6C12E00EC695D /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DF20FC6C12E00EC695D /* ValueTransformers.m */; };
|
||||||
@@ -64,12 +60,33 @@
|
|||||||
CE6E0E9F1054EB97008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */; };
|
CE6E0E9F1054EB97008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */; };
|
||||||
CE74A12412537F06008A8DF0 /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */; };
|
CE74A12412537F06008A8DF0 /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */; };
|
||||||
CE74A12712537F2E008A8DF0 /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */; };
|
CE74A12712537F2E008A8DF0 /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */; };
|
||||||
CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE848A1809DD85810004CB44 /* Consts.h */; };
|
|
||||||
CE84C9B21423ADFB0050A6AD /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */; };
|
CE84C9B21423ADFB0050A6AD /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */; };
|
||||||
CE84C9B31423ADFB0050A6AD /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */; };
|
CE84C9B31423ADFB0050A6AD /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */; };
|
||||||
CE84C9B91423AE410050A6AD /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9B61423AE410050A6AD /* HSPopUpList.m */; };
|
CE84C9B91423AE410050A6AD /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9B61423AE410050A6AD /* HSPopUpList.m */; };
|
||||||
CE84C9BA1423AE410050A6AD /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9B81423AE410050A6AD /* HSSelectableList.m */; };
|
CE84C9BA1423AE410050A6AD /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9B81423AE410050A6AD /* HSSelectableList.m */; };
|
||||||
CE84C9BD1423AF200050A6AD /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */; };
|
CE84C9BD1423AF200050A6AD /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */; };
|
||||||
|
CE9705E614C46E7D007A28F6 /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705C514C46E7D007A28F6 /* ObjP.m */; };
|
||||||
|
CE9705E714C46E7D007A28F6 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705C714C46E7D007A28F6 /* PyColumns.m */; };
|
||||||
|
CE9705E814C46E7D007A28F6 /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705C914C46E7D007A28F6 /* PyDetailsPanel.m */; };
|
||||||
|
CE9705E914C46E7D007A28F6 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705CB14C46E7D007A28F6 /* PyDirectoryOutline.m */; };
|
||||||
|
CE9705EA14C46E7D007A28F6 /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705CD14C46E7D007A28F6 /* PyDupeGuru.m */; };
|
||||||
|
CE9705EB14C46E7D007A28F6 /* PyDupeGuruBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705CF14C46E7D007A28F6 /* PyDupeGuruBase.m */; };
|
||||||
|
CE9705EC14C46E7D007A28F6 /* PyExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705D114C46E7D007A28F6 /* PyExtraFairwareReminder.m */; };
|
||||||
|
CE9705ED14C46E7D007A28F6 /* PyFairware.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705D314C46E7D007A28F6 /* PyFairware.m */; };
|
||||||
|
CE9705EE14C46E7D007A28F6 /* PyGUIObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705D514C46E7D007A28F6 /* PyGUIObject.m */; };
|
||||||
|
CE9705EF14C46E7D007A28F6 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705D714C46E7D007A28F6 /* PyOutline.m */; };
|
||||||
|
CE9705F014C46E7D007A28F6 /* PyPrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705D914C46E7D007A28F6 /* PyPrioritizeDialog.m */; };
|
||||||
|
CE9705F114C46E7D007A28F6 /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705DB14C46E7D007A28F6 /* PyPrioritizeList.m */; };
|
||||||
|
CE9705F214C46E7D007A28F6 /* PyProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705DD14C46E7D007A28F6 /* PyProblemDialog.m */; };
|
||||||
|
CE9705F314C46E7D007A28F6 /* PyResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705DF14C46E7D007A28F6 /* PyResultTable.m */; };
|
||||||
|
CE9705F414C46E7D007A28F6 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705E114C46E7D007A28F6 /* PySelectableList.m */; };
|
||||||
|
CE9705F514C46E7D007A28F6 /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705E314C46E7D007A28F6 /* PyStatsLabel.m */; };
|
||||||
|
CE9705F614C46E7D007A28F6 /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9705E514C46E7D007A28F6 /* PyTable.m */; };
|
||||||
|
CE9705F814C46EA3007A28F6 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE9705F714C46EA3007A28F6 /* Python */; };
|
||||||
|
CE9705F914C46EC3007A28F6 /* Python in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE9705F714C46EA3007A28F6 /* Python */; };
|
||||||
|
CE9705FF14C46F60007A28F6 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE9705FE14C46F60007A28F6 /* 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 */; };
|
||||||
CEA14F431461ED63007F01A5 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA14F421461ED63007F01A5 /* locale */; };
|
CEA14F431461ED63007F01A5 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA14F421461ED63007F01A5 /* locale */; };
|
||||||
CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; };
|
CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; };
|
||||||
CEB5E07813225C89009F521D /* ExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */; };
|
CEB5E07813225C89009F521D /* ExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */; };
|
||||||
@@ -89,7 +106,7 @@
|
|||||||
dstSubfolderSpec = 10;
|
dstSubfolderSpec = 10;
|
||||||
files = (
|
files = (
|
||||||
CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */,
|
CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */,
|
||||||
CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */,
|
CE9705F914C46EC3007A28F6 /* Python in CopyFiles */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -98,7 +115,6 @@
|
|||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
|
||||||
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -107,12 +123,8 @@
|
|||||||
CE003CB411242D00004B0AA7 /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = "<group>"; };
|
CE003CB411242D00004B0AA7 /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = "<group>"; };
|
||||||
CE003CB511242D00004B0AA7 /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = "<group>"; };
|
CE003CB511242D00004B0AA7 /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = "<group>"; };
|
||||||
CE003CB611242D00004B0AA7 /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; };
|
CE003CB611242D00004B0AA7 /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; };
|
||||||
CE003CB711242D00004B0AA7 /* HSWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSWindowController.h; sourceTree = "<group>"; };
|
|
||||||
CE003CB811242D00004B0AA7 /* HSWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSWindowController.m; sourceTree = "<group>"; };
|
|
||||||
CE003CB911242D00004B0AA7 /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; };
|
CE003CB911242D00004B0AA7 /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; };
|
CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE003CBC11242D00004B0AA7 /* PyGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUI.h; sourceTree = "<group>"; };
|
|
||||||
CE003CBD11242D00004B0AA7 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
|
|
||||||
CE003CC011242D00004B0AA7 /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; };
|
CE003CC011242D00004B0AA7 /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; };
|
||||||
CE003CC111242D00004B0AA7 /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; };
|
CE003CC111242D00004B0AA7 /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; };
|
||||||
CE003CC211242D00004B0AA7 /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; };
|
CE003CC211242D00004B0AA7 /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; };
|
||||||
@@ -121,7 +133,6 @@
|
|||||||
CE003CC511242D00004B0AA7 /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = "<group>"; };
|
CE003CC511242D00004B0AA7 /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = "<group>"; };
|
||||||
CE003CCD11242D2C004B0AA7 /* DirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryOutline.h; path = ../base/DirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
CE003CCD11242D2C004B0AA7 /* DirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryOutline.h; path = ../base/DirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE003CCE11242D2C004B0AA7 /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; };
|
CE003CCE11242D2C004B0AA7 /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE003CCF11242D2C004B0AA7 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDirectoryOutline.h; path = ../base/PyDirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE05330E12E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; };
|
CE05330E12E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE05331012E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
|
CE05331012E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE05331212E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
CE05331212E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -142,12 +153,9 @@
|
|||||||
CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
|
CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
|
||||||
CE0A0C011175A1DE00DCA3C6 /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
CE0A0C011175A1DE00DCA3C6 /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
|
CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE0A0C031175A1DE00DCA3C6 /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyProblemDialog.h; path = ../base/PyProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE0A0C131175A28100DCA3C6 /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
|
|
||||||
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; };
|
||||||
CE22399E148FFE4F00B3DC99 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; 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>"; };
|
||||||
@@ -166,21 +174,29 @@
|
|||||||
CE335AFC14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
CE335AFC14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
CE335AFD14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
CE335AFD14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
CE335B0514B393FB0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = "<group>"; };
|
CE335B0514B393FB0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCEC14C637B8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCED14C637B8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCEE14C637B8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCF314C637C8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
CE35FCF514C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCF614C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCF714C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCF814C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCF914C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCFA14C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FCFB14C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE35FD0314C637EC004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
CE381C9409914ACE003581CE /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
|
CE381C9409914ACE003581CE /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
|
CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE381CF509915304003581CE /* dg_cocoa.plugin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = dg_cocoa.plugin; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE4B59C61119919700C06C9E /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
|
CE4B59C61119919700C06C9E /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
|
||||||
CE4F934712CCA96C0067A3AE /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
|
CE4F934712CCA96C0067A3AE /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE4F934812CCA96C0067A3AE /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
|
CE4F934812CCA96C0067A3AE /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE515DE00FC6C12E00EC695D /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
|
CE515DE00FC6C12E00EC695D /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE515DE10FC6C12E00EC695D /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
|
CE515DE10FC6C12E00EC695D /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE515DE20FC6C12E00EC695D /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = ../../cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE515DE30FC6C12E00EC695D /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = ../../cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE515DE60FC6C12E00EC695D /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
|
CE515DE60FC6C12E00EC695D /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE515DE70FC6C12E00EC695D /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
|
CE515DE70FC6C12E00EC695D /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE515DE80FC6C12E00EC695D /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = ../../cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE515DEF0FC6C12E00EC695D /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; };
|
CE515DEF0FC6C12E00EC695D /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE515DF00FC6C12E00EC695D /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; };
|
CE515DF00FC6C12E00EC695D /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE515DF10FC6C12E00EC695D /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; };
|
CE515DF10FC6C12E00EC695D /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -190,7 +206,6 @@
|
|||||||
CE515E170FC6C19300EC695D /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; };
|
CE515E170FC6C19300EC695D /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE515E180FC6C19300EC695D /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
|
CE515E180FC6C19300EC695D /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE515E190FC6C19300EC695D /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
CE515E190FC6C19300EC695D /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE515E1A0FC6C19300EC695D /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = ../base/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE515E1B0FC6C19300EC695D /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
CE515E1B0FC6C19300EC695D /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE515E1C0FC6C19300EC695D /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
CE515E1C0FC6C19300EC695D /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE578301124DFC660004769C /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
|
CE578301124DFC660004769C /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -214,7 +229,6 @@
|
|||||||
CE74255F1460318D002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = "<group>"; };
|
CE74255F1460318D002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE74A12312537F06008A8DF0 /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyFairware.h; path = ../../cocoalib/PyFairware.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE74A12612537F2E008A8DF0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE74A12612537F2E008A8DF0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE7A6992146442F80007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = "<group>"; };
|
CE7A6992146442F80007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
CE7A6998146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
CE7A6998146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
@@ -233,21 +247,54 @@
|
|||||||
CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = "<group>"; };
|
CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = "<group>"; };
|
||||||
CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = "<group>"; };
|
CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = "<group>"; };
|
||||||
CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = "<group>"; };
|
CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = "<group>"; };
|
||||||
CE84C9B01423ADFB0050A6AD /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeDialog.h; path = ../base/PyPrioritizeDialog.h; sourceTree = "<group>"; };
|
|
||||||
CE84C9B11423ADFB0050A6AD /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeList.h; path = ../base/PyPrioritizeList.h; sourceTree = "<group>"; };
|
|
||||||
CE84C9B41423AE2A0050A6AD /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
|
||||||
CE84C9B51423AE410050A6AD /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
|
CE84C9B51423AE410050A6AD /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
|
||||||
CE84C9B61423AE410050A6AD /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
|
CE84C9B61423AE410050A6AD /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
|
||||||
CE84C9B71423AE410050A6AD /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
|
CE84C9B71423AE410050A6AD /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
|
||||||
CE84C9B81423AE410050A6AD /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = "<group>"; };
|
CE84C9B81423AE410050A6AD /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = "<group>"; };
|
||||||
CE84C9BC1423AF200050A6AD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CE84C9BC1423AF200050A6AD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE9705C414C46E7D007A28F6 /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = "<group>"; };
|
||||||
|
CE9705C514C46E7D007A28F6 /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = "<group>"; };
|
||||||
|
CE9705C614C46E7D007A28F6 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
|
||||||
|
CE9705C714C46E7D007A28F6 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = "<group>"; };
|
||||||
|
CE9705C814C46E7D007A28F6 /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = "<group>"; };
|
||||||
|
CE9705C914C46E7D007A28F6 /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = "<group>"; };
|
||||||
|
CE9705CA14C46E7D007A28F6 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = "<group>"; };
|
||||||
|
CE9705CB14C46E7D007A28F6 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = "<group>"; };
|
||||||
|
CE9705CC14C46E7D007A28F6 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = "<group>"; };
|
||||||
|
CE9705CD14C46E7D007A28F6 /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = "<group>"; };
|
||||||
|
CE9705CE14C46E7D007A28F6 /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = "<group>"; };
|
||||||
|
CE9705CF14C46E7D007A28F6 /* PyDupeGuruBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuruBase.m; sourceTree = "<group>"; };
|
||||||
|
CE9705D014C46E7D007A28F6 /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyExtraFairwareReminder.h; sourceTree = "<group>"; };
|
||||||
|
CE9705D114C46E7D007A28F6 /* PyExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyExtraFairwareReminder.m; sourceTree = "<group>"; };
|
||||||
|
CE9705D214C46E7D007A28F6 /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyFairware.h; sourceTree = "<group>"; };
|
||||||
|
CE9705D314C46E7D007A28F6 /* PyFairware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyFairware.m; sourceTree = "<group>"; };
|
||||||
|
CE9705D414C46E7D007A28F6 /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = "<group>"; };
|
||||||
|
CE9705D514C46E7D007A28F6 /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = "<group>"; };
|
||||||
|
CE9705D614C46E7D007A28F6 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
|
||||||
|
CE9705D714C46E7D007A28F6 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = "<group>"; };
|
||||||
|
CE9705D814C46E7D007A28F6 /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeDialog.h; sourceTree = "<group>"; };
|
||||||
|
CE9705D914C46E7D007A28F6 /* PyPrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeDialog.m; sourceTree = "<group>"; };
|
||||||
|
CE9705DA14C46E7D007A28F6 /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeList.h; sourceTree = "<group>"; };
|
||||||
|
CE9705DB14C46E7D007A28F6 /* PyPrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeList.m; sourceTree = "<group>"; };
|
||||||
|
CE9705DC14C46E7D007A28F6 /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = "<group>"; };
|
||||||
|
CE9705DD14C46E7D007A28F6 /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = "<group>"; };
|
||||||
|
CE9705DE14C46E7D007A28F6 /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyResultTable.h; sourceTree = "<group>"; };
|
||||||
|
CE9705DF14C46E7D007A28F6 /* PyResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyResultTable.m; sourceTree = "<group>"; };
|
||||||
|
CE9705E014C46E7D007A28F6 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
||||||
|
CE9705E114C46E7D007A28F6 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = "<group>"; };
|
||||||
|
CE9705E214C46E7D007A28F6 /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = "<group>"; };
|
||||||
|
CE9705E314C46E7D007A28F6 /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = "<group>"; };
|
||||||
|
CE9705E414C46E7D007A28F6 /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
|
||||||
|
CE9705E514C46E7D007A28F6 /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = "<group>"; };
|
||||||
|
CE9705F714C46EA3007A28F6 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = "<group>"; };
|
||||||
|
CE9705FE14C46F60007A28F6 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/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>"; };
|
||||||
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>"; };
|
||||||
CEB14D26124DFC2800FA7481 /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyResultTable.h; path = ../base/PyResultTable.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEB14D27124DFC2800FA7481 /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
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; };
|
||||||
CEB5E07513225C89009F521D /* ExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExtraFairwareReminder.h; path = ../base/ExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
CEB5E07513225C89009F521D /* ExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExtraFairwareReminder.h; path = ../base/ExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ExtraFairwareReminder.m; path = ../base/ExtraFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ExtraFairwareReminder.m; path = ../base/ExtraFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEB5E07713225C89009F521D /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyExtraFairwareReminder.h; path = ../base/PyExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEB5E07C13225CA2009F521D /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CEB5E07C13225CA2009F521D /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CEB5E07E13225CB8009F521D /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CEB5E07E13225CB8009F521D /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ExtraFairwareReminder.xib; 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>"; };
|
||||||
@@ -276,8 +323,6 @@
|
|||||||
CECE37A31423EA980005187F /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CECE37A31423EA980005187F /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
CECE37A41423EA980005187F /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CECE37A41423EA980005187F /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
CECE37A51423EA980005187F /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CECE37A51423EA980005187F /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
CED0A591111C9FD10020AD7D /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDetailsPanel.h; path = ../base/PyDetailsPanel.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEDF07A0112493B200EE5BC0 /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyStatsLabel.h; path = ../base/PyStatsLabel.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEDF07A1112493B200EE5BC0 /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; };
|
CEDF07A1112493B200EE5BC0 /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEDF07A2112493B200EE5BC0 /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; };
|
CEDF07A2112493B200EE5BC0 /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; };
|
||||||
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>"; };
|
||||||
@@ -296,7 +341,6 @@
|
|||||||
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>"; };
|
||||||
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; };
|
||||||
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -307,6 +351,7 @@
|
|||||||
CE2E87F9142BC90A00519A68 /* Quartz.framework in Frameworks */,
|
CE2E87F9142BC90A00519A68 /* Quartz.framework in Frameworks */,
|
||||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
|
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
|
||||||
CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */,
|
CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */,
|
||||||
|
CE9705F814C46EA3007A28F6 /* Python in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -316,13 +361,11 @@
|
|||||||
080E96DDFE201D6D7F000001 /* DGME */ = {
|
080E96DDFE201D6D7F000001 /* DGME */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
|
||||||
CE381C9509914ACE003581CE /* AppDelegate.h */,
|
CE381C9509914ACE003581CE /* AppDelegate.h */,
|
||||||
CE381C9409914ACE003581CE /* AppDelegate.m */,
|
CE381C9409914ACE003581CE /* AppDelegate.m */,
|
||||||
CE848A1809DD85810004CB44 /* Consts.h */,
|
CE848A1809DD85810004CB44 /* Consts.h */,
|
||||||
CE68EE6509ABC48000971085 /* DirectoryPanel.h */,
|
CE68EE6509ABC48000971085 /* DirectoryPanel.h */,
|
||||||
CE68EE6609ABC48000971085 /* DirectoryPanel.m */,
|
CE68EE6609ABC48000971085 /* DirectoryPanel.m */,
|
||||||
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */,
|
|
||||||
CE381C9B09914ADF003581CE /* ResultWindow.h */,
|
CE381C9B09914ADF003581CE /* ResultWindow.h */,
|
||||||
CE381C9A09914ADF003581CE /* ResultWindow.m */,
|
CE381C9A09914ADF003581CE /* ResultWindow.m */,
|
||||||
);
|
);
|
||||||
@@ -332,6 +375,7 @@
|
|||||||
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
CE9705F714C46EA3007A28F6 /* Python */,
|
||||||
CE1425880AFB718500BD5167 /* Sparkle.framework */,
|
CE1425880AFB718500BD5167 /* Sparkle.framework */,
|
||||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
||||||
CE2E87F8142BC90A00519A68 /* Quartz.framework */,
|
CE2E87F8142BC90A00519A68 /* Quartz.framework */,
|
||||||
@@ -362,6 +406,7 @@
|
|||||||
children = (
|
children = (
|
||||||
080E96DDFE201D6D7F000001 /* DGME */,
|
080E96DDFE201D6D7F000001 /* DGME */,
|
||||||
CE515E140FC6C17900EC695D /* dgbase */,
|
CE515E140FC6C17900EC695D /* dgbase */,
|
||||||
|
CE9705C314C46E7D007A28F6 /* autogen */,
|
||||||
CE515DDD0FC6C09400EC695D /* cocoalib */,
|
CE515DDD0FC6C09400EC695D /* cocoalib */,
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
29B97317FDCFA39411CA2CEA /* Resources */,
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||||
@@ -373,9 +418,10 @@
|
|||||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
CE97060014C46F70007A28F6 /* dg_cocoa.py */,
|
||||||
|
CE9705FE14C46F60007A28F6 /* py */,
|
||||||
CEA14F421461ED63007F01A5 /* locale */,
|
CEA14F421461ED63007F01A5 /* locale */,
|
||||||
CE073F5409CAE1A3005C1D2F /* help */,
|
CE073F5409CAE1A3005C1D2F /* help */,
|
||||||
CE381CF509915304003581CE /* dg_cocoa.plugin */,
|
|
||||||
CEFC294309C89E0000D9F998 /* images */,
|
CEFC294309C89E0000D9F998 /* images */,
|
||||||
CE05330C12E5D3D70029EF25 /* xib */,
|
CE05330C12E5D3D70029EF25 /* xib */,
|
||||||
CEEB135109C837A2004D2330 /* dupeguru.icns */,
|
CEEB135109C837A2004D2330 /* dupeguru.icns */,
|
||||||
@@ -406,8 +452,6 @@
|
|||||||
CE003CB611242D00004B0AA7 /* HSOutline.m */,
|
CE003CB611242D00004B0AA7 /* HSOutline.m */,
|
||||||
CE0A0BFE1175A1C000DCA3C6 /* HSTable.h */,
|
CE0A0BFE1175A1C000DCA3C6 /* HSTable.h */,
|
||||||
CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */,
|
CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */,
|
||||||
CE003CB711242D00004B0AA7 /* HSWindowController.h */,
|
|
||||||
CE003CB811242D00004B0AA7 /* HSWindowController.m */,
|
|
||||||
CE84C9B51423AE410050A6AD /* HSPopUpList.h */,
|
CE84C9B51423AE410050A6AD /* HSPopUpList.h */,
|
||||||
CE84C9B61423AE410050A6AD /* HSPopUpList.m */,
|
CE84C9B61423AE410050A6AD /* HSPopUpList.m */,
|
||||||
CE84C9B71423AE410050A6AD /* HSSelectableList.h */,
|
CE84C9B71423AE410050A6AD /* HSSelectableList.h */,
|
||||||
@@ -417,19 +461,6 @@
|
|||||||
path = ../../cocoalib/controllers;
|
path = ../../cocoalib/controllers;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
};
|
};
|
||||||
CE003CBB11242D00004B0AA7 /* proxies */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
CE22399E148FFE4F00B3DC99 /* PyColumns.h */,
|
|
||||||
CE003CBC11242D00004B0AA7 /* PyGUI.h */,
|
|
||||||
CE003CBD11242D00004B0AA7 /* PyOutline.h */,
|
|
||||||
CE0A0C131175A28100DCA3C6 /* PyTable.h */,
|
|
||||||
CE84C9B41423AE2A0050A6AD /* PySelectableList.h */,
|
|
||||||
);
|
|
||||||
name = proxies;
|
|
||||||
path = ../../cocoalib/proxies;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
CE003CBF11242D00004B0AA7 /* views */ = {
|
CE003CBF11242D00004B0AA7 /* views */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -477,16 +508,12 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
CE003CB211242D00004B0AA7 /* controllers */,
|
CE003CB211242D00004B0AA7 /* controllers */,
|
||||||
CE003CBB11242D00004B0AA7 /* proxies */,
|
|
||||||
CE003CBF11242D00004B0AA7 /* views */,
|
CE003CBF11242D00004B0AA7 /* views */,
|
||||||
CE4B59C41119919700C06C9E /* xib */,
|
CE4B59C41119919700C06C9E /* xib */,
|
||||||
CE515DE00FC6C12E00EC695D /* Dialogs.h */,
|
CE515DE00FC6C12E00EC695D /* Dialogs.h */,
|
||||||
CE515DE10FC6C12E00EC695D /* Dialogs.m */,
|
CE515DE10FC6C12E00EC695D /* Dialogs.m */,
|
||||||
CE515DE20FC6C12E00EC695D /* HSErrorReportWindow.h */,
|
|
||||||
CE515DE30FC6C12E00EC695D /* HSErrorReportWindow.m */,
|
|
||||||
CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */,
|
CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */,
|
||||||
CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */,
|
CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */,
|
||||||
CE74A12312537F06008A8DF0 /* PyFairware.h */,
|
|
||||||
CE4F934712CCA96C0067A3AE /* HSAboutBox.h */,
|
CE4F934712CCA96C0067A3AE /* HSAboutBox.h */,
|
||||||
CE4F934812CCA96C0067A3AE /* HSAboutBox.m */,
|
CE4F934812CCA96C0067A3AE /* HSAboutBox.m */,
|
||||||
CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */,
|
CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */,
|
||||||
@@ -497,7 +524,6 @@
|
|||||||
CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */,
|
CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */,
|
||||||
CE515DE60FC6C12E00EC695D /* ProgressController.h */,
|
CE515DE60FC6C12E00EC695D /* ProgressController.h */,
|
||||||
CE515DE70FC6C12E00EC695D /* ProgressController.m */,
|
CE515DE70FC6C12E00EC695D /* ProgressController.m */,
|
||||||
CE515DE80FC6C12E00EC695D /* PyApp.h */,
|
|
||||||
CE515DEF0FC6C12E00EC695D /* Utils.h */,
|
CE515DEF0FC6C12E00EC695D /* Utils.h */,
|
||||||
CE515DF00FC6C12E00EC695D /* Utils.m */,
|
CE515DF00FC6C12E00EC695D /* Utils.m */,
|
||||||
CE515DF10FC6C12E00EC695D /* ValueTransformers.h */,
|
CE515DF10FC6C12E00EC695D /* ValueTransformers.h */,
|
||||||
@@ -511,40 +537,74 @@
|
|||||||
children = (
|
children = (
|
||||||
CEB14D27124DFC2800FA7481 /* ResultTable.h */,
|
CEB14D27124DFC2800FA7481 /* ResultTable.h */,
|
||||||
CEB14D28124DFC2800FA7481 /* ResultTable.m */,
|
CEB14D28124DFC2800FA7481 /* ResultTable.m */,
|
||||||
CEB14D26124DFC2800FA7481 /* PyResultTable.h */,
|
|
||||||
CE003CCD11242D2C004B0AA7 /* DirectoryOutline.h */,
|
CE003CCD11242D2C004B0AA7 /* DirectoryOutline.h */,
|
||||||
CE003CCE11242D2C004B0AA7 /* DirectoryOutline.m */,
|
CE003CCE11242D2C004B0AA7 /* DirectoryOutline.m */,
|
||||||
CE003CCF11242D2C004B0AA7 /* PyDirectoryOutline.h */,
|
|
||||||
CE515E150FC6C19300EC695D /* AppDelegate.h */,
|
CE515E150FC6C19300EC695D /* AppDelegate.h */,
|
||||||
CE515E160FC6C19300EC695D /* AppDelegate.m */,
|
CE515E160FC6C19300EC695D /* AppDelegate.m */,
|
||||||
CE515E1A0FC6C19300EC695D /* PyDupeGuru.h */,
|
|
||||||
CE515E170FC6C19300EC695D /* Consts.h */,
|
CE515E170FC6C19300EC695D /* Consts.h */,
|
||||||
CE6032BE0FE6784C007E33FF /* DetailsPanel.h */,
|
CE6032BE0FE6784C007E33FF /* DetailsPanel.h */,
|
||||||
CE6032BF0FE6784C007E33FF /* DetailsPanel.m */,
|
CE6032BF0FE6784C007E33FF /* DetailsPanel.m */,
|
||||||
CED0A591111C9FD10020AD7D /* PyDetailsPanel.h */,
|
|
||||||
CE515E180FC6C19300EC695D /* DirectoryPanel.h */,
|
CE515E180FC6C19300EC695D /* DirectoryPanel.h */,
|
||||||
CE515E190FC6C19300EC695D /* DirectoryPanel.m */,
|
CE515E190FC6C19300EC695D /* DirectoryPanel.m */,
|
||||||
CE0A0C011175A1DE00DCA3C6 /* ProblemDialog.h */,
|
CE0A0C011175A1DE00DCA3C6 /* ProblemDialog.h */,
|
||||||
CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */,
|
CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */,
|
||||||
CE0A0C031175A1DE00DCA3C6 /* PyProblemDialog.h */,
|
|
||||||
CE515E1B0FC6C19300EC695D /* ResultWindow.h */,
|
CE515E1B0FC6C19300EC695D /* ResultWindow.h */,
|
||||||
CE515E1C0FC6C19300EC695D /* ResultWindow.m */,
|
CE515E1C0FC6C19300EC695D /* ResultWindow.m */,
|
||||||
CEDF07A1112493B200EE5BC0 /* StatsLabel.h */,
|
CEDF07A1112493B200EE5BC0 /* StatsLabel.h */,
|
||||||
CEDF07A2112493B200EE5BC0 /* StatsLabel.m */,
|
CEDF07A2112493B200EE5BC0 /* StatsLabel.m */,
|
||||||
CEDF07A0112493B200EE5BC0 /* PyStatsLabel.h */,
|
|
||||||
CEB5E07513225C89009F521D /* ExtraFairwareReminder.h */,
|
CEB5E07513225C89009F521D /* ExtraFairwareReminder.h */,
|
||||||
CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */,
|
CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */,
|
||||||
CEB5E07713225C89009F521D /* PyExtraFairwareReminder.h */,
|
|
||||||
CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */,
|
CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */,
|
||||||
CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */,
|
CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */,
|
||||||
CE84C9B01423ADFB0050A6AD /* PyPrioritizeDialog.h */,
|
|
||||||
CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */,
|
CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */,
|
||||||
CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */,
|
CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */,
|
||||||
CE84C9B11423ADFB0050A6AD /* PyPrioritizeList.h */,
|
CE97060214C471F2007A28F6 /* main.m */,
|
||||||
);
|
);
|
||||||
name = dgbase;
|
name = dgbase;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
CE9705C314C46E7D007A28F6 /* autogen */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
CE9705C414C46E7D007A28F6 /* ObjP.h */,
|
||||||
|
CE9705C514C46E7D007A28F6 /* ObjP.m */,
|
||||||
|
CE9705C614C46E7D007A28F6 /* PyColumns.h */,
|
||||||
|
CE9705C714C46E7D007A28F6 /* PyColumns.m */,
|
||||||
|
CE9705C814C46E7D007A28F6 /* PyDetailsPanel.h */,
|
||||||
|
CE9705C914C46E7D007A28F6 /* PyDetailsPanel.m */,
|
||||||
|
CE9705CA14C46E7D007A28F6 /* PyDirectoryOutline.h */,
|
||||||
|
CE9705CB14C46E7D007A28F6 /* PyDirectoryOutline.m */,
|
||||||
|
CE9705CC14C46E7D007A28F6 /* PyDupeGuru.h */,
|
||||||
|
CE9705CD14C46E7D007A28F6 /* PyDupeGuru.m */,
|
||||||
|
CE9705CE14C46E7D007A28F6 /* PyDupeGuruBase.h */,
|
||||||
|
CE9705CF14C46E7D007A28F6 /* PyDupeGuruBase.m */,
|
||||||
|
CE9705D014C46E7D007A28F6 /* PyExtraFairwareReminder.h */,
|
||||||
|
CE9705D114C46E7D007A28F6 /* PyExtraFairwareReminder.m */,
|
||||||
|
CE9705D214C46E7D007A28F6 /* PyFairware.h */,
|
||||||
|
CE9705D314C46E7D007A28F6 /* PyFairware.m */,
|
||||||
|
CE9705D414C46E7D007A28F6 /* PyGUIObject.h */,
|
||||||
|
CE9705D514C46E7D007A28F6 /* PyGUIObject.m */,
|
||||||
|
CE9705D614C46E7D007A28F6 /* PyOutline.h */,
|
||||||
|
CE9705D714C46E7D007A28F6 /* PyOutline.m */,
|
||||||
|
CE9705D814C46E7D007A28F6 /* PyPrioritizeDialog.h */,
|
||||||
|
CE9705D914C46E7D007A28F6 /* PyPrioritizeDialog.m */,
|
||||||
|
CE9705DA14C46E7D007A28F6 /* PyPrioritizeList.h */,
|
||||||
|
CE9705DB14C46E7D007A28F6 /* PyPrioritizeList.m */,
|
||||||
|
CE9705DC14C46E7D007A28F6 /* PyProblemDialog.h */,
|
||||||
|
CE9705DD14C46E7D007A28F6 /* PyProblemDialog.m */,
|
||||||
|
CE9705DE14C46E7D007A28F6 /* PyResultTable.h */,
|
||||||
|
CE9705DF14C46E7D007A28F6 /* PyResultTable.m */,
|
||||||
|
CE9705E014C46E7D007A28F6 /* PySelectableList.h */,
|
||||||
|
CE9705E114C46E7D007A28F6 /* PySelectableList.m */,
|
||||||
|
CE9705E214C46E7D007A28F6 /* PyStatsLabel.h */,
|
||||||
|
CE9705E314C46E7D007A28F6 /* PyStatsLabel.m */,
|
||||||
|
CE9705E414C46E7D007A28F6 /* PyTable.h */,
|
||||||
|
CE9705E514C46E7D007A28F6 /* PyTable.m */,
|
||||||
|
);
|
||||||
|
name = autogen;
|
||||||
|
path = ../autogen;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
CEFC294309C89E0000D9F998 /* images */ = {
|
CEFC294309C89E0000D9F998 /* images */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -601,6 +661,7 @@
|
|||||||
it,
|
it,
|
||||||
hy,
|
hy,
|
||||||
ru,
|
ru,
|
||||||
|
uk,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -616,7 +677,6 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */,
|
|
||||||
CE073F6309CAE1A3005C1D2F /* help in Resources */,
|
CE073F6309CAE1A3005C1D2F /* help in Resources */,
|
||||||
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */,
|
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */,
|
||||||
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */,
|
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */,
|
||||||
@@ -635,6 +695,8 @@
|
|||||||
CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */,
|
CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */,
|
||||||
CE84C9BD1423AF200050A6AD /* PrioritizeDialog.xib in Resources */,
|
CE84C9BD1423AF200050A6AD /* PrioritizeDialog.xib in Resources */,
|
||||||
CEA14F431461ED63007F01A5 /* locale in Resources */,
|
CEA14F431461ED63007F01A5 /* locale in Resources */,
|
||||||
|
CE9705FF14C46F60007A28F6 /* py in Resources */,
|
||||||
|
CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -645,12 +707,10 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
8D11072D0486CEB800E47090 /* main.m in Sources */,
|
|
||||||
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */,
|
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */,
|
||||||
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */,
|
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */,
|
||||||
CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */,
|
CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */,
|
||||||
CE515DF30FC6C12E00EC695D /* Dialogs.m in Sources */,
|
CE515DF30FC6C12E00EC695D /* Dialogs.m in Sources */,
|
||||||
CE515DF40FC6C12E00EC695D /* HSErrorReportWindow.m in Sources */,
|
|
||||||
CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */,
|
CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */,
|
||||||
CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */,
|
CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */,
|
||||||
CE515DFB0FC6C12E00EC695D /* ValueTransformers.m in Sources */,
|
CE515DFB0FC6C12E00EC695D /* ValueTransformers.m in Sources */,
|
||||||
@@ -660,7 +720,6 @@
|
|||||||
CE6032C00FE6784C007E33FF /* DetailsPanel.m in Sources */,
|
CE6032C00FE6784C007E33FF /* DetailsPanel.m in Sources */,
|
||||||
CE003CC611242D00004B0AA7 /* HSGUIController.m in Sources */,
|
CE003CC611242D00004B0AA7 /* HSGUIController.m in Sources */,
|
||||||
CE003CC711242D00004B0AA7 /* HSOutline.m in Sources */,
|
CE003CC711242D00004B0AA7 /* HSOutline.m in Sources */,
|
||||||
CE003CC811242D00004B0AA7 /* HSWindowController.m in Sources */,
|
|
||||||
CE003CC911242D00004B0AA7 /* NSEventAdditions.m in Sources */,
|
CE003CC911242D00004B0AA7 /* NSEventAdditions.m in Sources */,
|
||||||
CE003CCA11242D00004B0AA7 /* HSOutlineView.m in Sources */,
|
CE003CCA11242D00004B0AA7 /* HSOutlineView.m in Sources */,
|
||||||
CE003CCB11242D00004B0AA7 /* NSIndexPathAdditions.m in Sources */,
|
CE003CCB11242D00004B0AA7 /* NSIndexPathAdditions.m in Sources */,
|
||||||
@@ -681,6 +740,24 @@
|
|||||||
CE84C9BA1423AE410050A6AD /* HSSelectableList.m in Sources */,
|
CE84C9BA1423AE410050A6AD /* HSSelectableList.m in Sources */,
|
||||||
CE2E87FD142BC92C00519A68 /* HSQuicklook.m in Sources */,
|
CE2E87FD142BC92C00519A68 /* HSQuicklook.m in Sources */,
|
||||||
CE2239A2148FFE6600B3DC99 /* HSColumns.m in Sources */,
|
CE2239A2148FFE6600B3DC99 /* HSColumns.m in Sources */,
|
||||||
|
CE9705E614C46E7D007A28F6 /* ObjP.m in Sources */,
|
||||||
|
CE9705E714C46E7D007A28F6 /* PyColumns.m in Sources */,
|
||||||
|
CE9705E814C46E7D007A28F6 /* PyDetailsPanel.m in Sources */,
|
||||||
|
CE9705E914C46E7D007A28F6 /* PyDirectoryOutline.m in Sources */,
|
||||||
|
CE9705EA14C46E7D007A28F6 /* PyDupeGuru.m in Sources */,
|
||||||
|
CE9705EB14C46E7D007A28F6 /* PyDupeGuruBase.m in Sources */,
|
||||||
|
CE9705EC14C46E7D007A28F6 /* PyExtraFairwareReminder.m in Sources */,
|
||||||
|
CE9705ED14C46E7D007A28F6 /* PyFairware.m in Sources */,
|
||||||
|
CE9705EE14C46E7D007A28F6 /* PyGUIObject.m in Sources */,
|
||||||
|
CE9705EF14C46E7D007A28F6 /* PyOutline.m in Sources */,
|
||||||
|
CE9705F014C46E7D007A28F6 /* PyPrioritizeDialog.m in Sources */,
|
||||||
|
CE9705F114C46E7D007A28F6 /* PyPrioritizeList.m in Sources */,
|
||||||
|
CE9705F214C46E7D007A28F6 /* PyProblemDialog.m in Sources */,
|
||||||
|
CE9705F314C46E7D007A28F6 /* PyResultTable.m in Sources */,
|
||||||
|
CE9705F414C46E7D007A28F6 /* PySelectableList.m in Sources */,
|
||||||
|
CE9705F514C46E7D007A28F6 /* PyStatsLabel.m in Sources */,
|
||||||
|
CE9705F614C46E7D007A28F6 /* PyTable.m in Sources */,
|
||||||
|
CE97060314C471F2007A28F6 /* main.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -698,6 +775,7 @@
|
|||||||
CE7A6998146443090007D927 /* it */,
|
CE7A6998146443090007D927 /* it */,
|
||||||
CEC3D37C14911253006B1A91 /* hy */,
|
CEC3D37C14911253006B1A91 /* hy */,
|
||||||
CE335AF714B393EE0000AF1A /* ru */,
|
CE335AF714B393EE0000AF1A /* ru */,
|
||||||
|
CE35FCF514C637DD004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -713,6 +791,7 @@
|
|||||||
CE7A6999146443090007D927 /* it */,
|
CE7A6999146443090007D927 /* it */,
|
||||||
CEC3D37D14911253006B1A91 /* hy */,
|
CEC3D37D14911253006B1A91 /* hy */,
|
||||||
CE335AF814B393EE0000AF1A /* ru */,
|
CE335AF814B393EE0000AF1A /* ru */,
|
||||||
|
CE35FCF614C637DD004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -728,6 +807,7 @@
|
|||||||
CE7A699B146443090007D927 /* it */,
|
CE7A699B146443090007D927 /* it */,
|
||||||
CEC3D37F14911253006B1A91 /* hy */,
|
CEC3D37F14911253006B1A91 /* hy */,
|
||||||
CE335AFA14B393EE0000AF1A /* ru */,
|
CE335AFA14B393EE0000AF1A /* ru */,
|
||||||
|
CE35FCF814C637DD004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -743,6 +823,7 @@
|
|||||||
CE7A699D146443090007D927 /* it */,
|
CE7A699D146443090007D927 /* it */,
|
||||||
CEC3D38114911253006B1A91 /* hy */,
|
CEC3D38114911253006B1A91 /* hy */,
|
||||||
CE335AFC14B393EE0000AF1A /* ru */,
|
CE335AFC14B393EE0000AF1A /* ru */,
|
||||||
|
CE35FCFA14C637DD004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -758,6 +839,7 @@
|
|||||||
CE7A699E146443090007D927 /* it */,
|
CE7A699E146443090007D927 /* it */,
|
||||||
CEC3D38214911253006B1A91 /* hy */,
|
CEC3D38214911253006B1A91 /* hy */,
|
||||||
CE335AFD14B393EE0000AF1A /* ru */,
|
CE335AFD14B393EE0000AF1A /* ru */,
|
||||||
|
CE35FCFB14C637DD004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -773,6 +855,7 @@
|
|||||||
CE7A69A6146443170007D927 /* it */,
|
CE7A69A6146443170007D927 /* it */,
|
||||||
CEC3D38B14911263006B1A91 /* hy */,
|
CEC3D38B14911263006B1A91 /* hy */,
|
||||||
CE335B0514B393FB0000AF1A /* ru */,
|
CE335B0514B393FB0000AF1A /* ru */,
|
||||||
|
CE35FD0314C637EC004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -788,6 +871,7 @@
|
|||||||
CE7A6992146442F80007D927 /* it */,
|
CE7A6992146442F80007D927 /* it */,
|
||||||
CEC3D38D14911274006B1A91 /* hy */,
|
CEC3D38D14911274006B1A91 /* hy */,
|
||||||
CE335AF514B393DC0000AF1A /* ru */,
|
CE335AF514B393DC0000AF1A /* ru */,
|
||||||
|
CE35FCF314C637C8004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -803,6 +887,7 @@
|
|||||||
CE7A69AA146443360007D927 /* it */,
|
CE7A69AA146443360007D927 /* it */,
|
||||||
CEC3D39114911288006B1A91 /* hy */,
|
CEC3D39114911288006B1A91 /* hy */,
|
||||||
CE335AF014B393C60000AF1A /* ru */,
|
CE335AF014B393C60000AF1A /* ru */,
|
||||||
|
CE35FCEE14C637B8004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -819,6 +904,7 @@
|
|||||||
CE7A699C146443090007D927 /* it */,
|
CE7A699C146443090007D927 /* it */,
|
||||||
CEC3D38014911253006B1A91 /* hy */,
|
CEC3D38014911253006B1A91 /* hy */,
|
||||||
CE335AFB14B393EE0000AF1A /* ru */,
|
CE335AFB14B393EE0000AF1A /* ru */,
|
||||||
|
CE35FCF914C637DD004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -834,6 +920,7 @@
|
|||||||
CE7A699A146443090007D927 /* it */,
|
CE7A699A146443090007D927 /* it */,
|
||||||
CEC3D37E14911253006B1A91 /* hy */,
|
CEC3D37E14911253006B1A91 /* hy */,
|
||||||
CE335AF914B393EE0000AF1A /* ru */,
|
CE335AF914B393EE0000AF1A /* ru */,
|
||||||
|
CE35FCF714C637DD004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = ExtraFairwareReminder.xib;
|
name = ExtraFairwareReminder.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -849,6 +936,7 @@
|
|||||||
CE7A69A8146443360007D927 /* it */,
|
CE7A69A8146443360007D927 /* it */,
|
||||||
CEC3D38F14911288006B1A91 /* hy */,
|
CEC3D38F14911288006B1A91 /* hy */,
|
||||||
CE335AEE14B393C60000AF1A /* ru */,
|
CE335AEE14B393C60000AF1A /* ru */,
|
||||||
|
CE35FCEC14C637B8004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -864,6 +952,7 @@
|
|||||||
CE7A69A9146443360007D927 /* it */,
|
CE7A69A9146443360007D927 /* it */,
|
||||||
CEC3D39014911288006B1A91 /* hy */,
|
CEC3D39014911288006B1A91 /* hy */,
|
||||||
CE335AEF14B393C60000AF1A /* ru */,
|
CE335AEF14B393C60000AF1A /* ru */,
|
||||||
|
CE35FCED14C637B8004E4864 /* uk */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -880,6 +969,10 @@
|
|||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
INFOPLIST_FILE = Info.plist;
|
INFOPLIST_FILE = Info.plist;
|
||||||
INSTALL_PATH = "$(PROJECT_DIR)";
|
INSTALL_PATH = "$(PROJECT_DIR)";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"\"$(SRCROOT)/../../build\"",
|
||||||
|
);
|
||||||
PRODUCT_NAME = "dupeGuru ME";
|
PRODUCT_NAME = "dupeGuru ME";
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
@@ -890,8 +983,8 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
GCC_C_LANGUAGE_STANDARD = c99;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\"";
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
SDKROOT = macosx10.6;
|
SDKROOT = macosx10.6;
|
||||||
};
|
};
|
||||||
@@ -902,8 +995,8 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
GCC_C_LANGUAGE_STANDARD = c99;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\"";
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
SDKROOT = macosx10.6;
|
SDKROOT = macosx10.6;
|
||||||
};
|
};
|
||||||
@@ -917,6 +1010,10 @@
|
|||||||
DSTROOT = /;
|
DSTROOT = /;
|
||||||
INFOPLIST_FILE = Info.plist;
|
INFOPLIST_FILE = Info.plist;
|
||||||
INSTALL_PATH = "$(PROJECT_DIR)";
|
INSTALL_PATH = "$(PROJECT_DIR)";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"\"$(SRCROOT)/../../build\"",
|
||||||
|
);
|
||||||
PRODUCT_NAME = "dupeGuru ME";
|
PRODUCT_NAME = "dupeGuru ME";
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "Utils.h"
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
|
||||||
[Utils setPluginName:@"dg_cocoa"];
|
|
||||||
NSString *pluginPath = [[NSBundle mainBundle]
|
|
||||||
pathForResource:@"dg_cocoa"
|
|
||||||
ofType:@"plugin"];
|
|
||||||
NSBundle *pluginBundle = [NSBundle bundleWithPath:pluginPath];
|
|
||||||
[pluginBundle load];
|
|
||||||
[pool release];
|
|
||||||
return NSApplicationMain(argc, (const char **) argv);
|
|
||||||
}
|
|
||||||
@@ -8,8 +8,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#import "../base/AppDelegate.h"
|
#import "../base/AppDelegate.h"
|
||||||
#import "PyDupeGuru.h"
|
|
||||||
|
|
||||||
@interface AppDelegate : AppDelegateBase {}
|
@interface AppDelegate : AppDelegateBase {}
|
||||||
- (PyDupeGuru *)py;
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -64,11 +64,9 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
- (DetailsPanel *)createDetailsPanel
|
- (DetailsPanel *)createDetailsPanel
|
||||||
{
|
{
|
||||||
return [[DetailsPanelPE alloc] initWithPy:py];
|
return [[DetailsPanelPE alloc] initWithApp:model];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyDupeGuru *)py { return (PyDupeGuru *)py; }
|
|
||||||
|
|
||||||
//Delegate
|
//Delegate
|
||||||
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
#import <Cocoa/Cocoa.h>
|
||||||
#import "../base/DetailsPanel.h"
|
#import "../base/DetailsPanel.h"
|
||||||
|
#import "PyDupeGuru.h"
|
||||||
|
|
||||||
@interface DetailsPanelPE : DetailsPanel
|
@interface DetailsPanelPE : DetailsPanel
|
||||||
{
|
{
|
||||||
@@ -16,9 +17,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
IBOutlet NSImageView *refImage;
|
IBOutlet NSImageView *refImage;
|
||||||
IBOutlet NSProgressIndicator *refProgressIndicator;
|
IBOutlet NSProgressIndicator *refProgressIndicator;
|
||||||
|
|
||||||
PyApp *pyApp;
|
PyDupeGuru *pyApp;
|
||||||
BOOL _needsRefresh;
|
BOOL _needsRefresh;
|
||||||
NSString *_dupePath;
|
NSString *_dupePath;
|
||||||
NSString *_refPath;
|
NSString *_refPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (id)initWithApp:(PyDupeGuru *)aApp;
|
||||||
@end
|
@end
|
||||||
@@ -14,10 +14,10 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "Consts.h"
|
#import "Consts.h"
|
||||||
|
|
||||||
@implementation DetailsPanelPE
|
@implementation DetailsPanelPE
|
||||||
- (id)initWithPy:(PyApp *)aPy
|
- (id)initWithApp:(PyDupeGuru *)aApp
|
||||||
{
|
{
|
||||||
self = [super initWithPy:aPy];
|
self = [super initWithPyRef:[aApp detailsPanel]];
|
||||||
pyApp = aPy;
|
pyApp = aApp;
|
||||||
_needsRefresh = YES;
|
_needsRefresh = YES;
|
||||||
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imageLoaded:) name:ImageLoadedNotification object:self];
|
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imageLoaded:) name:ImageLoadedNotification object:self];
|
||||||
return self;
|
return self;
|
||||||
@@ -42,12 +42,12 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
return;
|
return;
|
||||||
[detailsTable reloadData];
|
[detailsTable reloadData];
|
||||||
|
|
||||||
NSString *refPath = [(PyDupeGuru *)pyApp getSelectedDupeRefPath];
|
NSString *refPath = [pyApp getSelectedDupeRefPath];
|
||||||
if (_refPath != nil)
|
if (_refPath != nil)
|
||||||
[_refPath autorelease];
|
[_refPath autorelease];
|
||||||
_refPath = [refPath retain];
|
_refPath = [refPath retain];
|
||||||
[NSThread detachNewThreadSelector:@selector(loadImageAsync:) toTarget:self withObject:refPath];
|
[NSThread detachNewThreadSelector:@selector(loadImageAsync:) toTarget:self withObject:refPath];
|
||||||
NSString *dupePath = [(PyDupeGuru *)pyApp getSelectedDupePath];
|
NSString *dupePath = [pyApp getSelectedDupePath];
|
||||||
if (_dupePath != nil)
|
if (_dupePath != nil)
|
||||||
[_dupePath autorelease];
|
[_dupePath autorelease];
|
||||||
_dupePath = [dupePath retain];
|
_dupePath = [dupePath retain];
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "../base/PyDupeGuru.h"
|
|
||||||
|
|
||||||
@interface PyDupeGuru : PyDupeGuruBase
|
|
||||||
- (void)clearPictureCache;
|
|
||||||
- (NSString *)getSelectedDupePath;
|
|
||||||
- (NSString *)getSelectedDupeRefPath;
|
|
||||||
- (void)setMatchScaled:(NSNumber *)match_scaled;
|
|
||||||
@end
|
|
||||||
@@ -40,12 +40,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
- (void)setScanOptions
|
- (void)setScanOptions
|
||||||
{
|
{
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
PyDupeGuru *_py = (PyDupeGuru *)py;
|
[model setScanType:n2i([ud objectForKey:@"scanType"])];
|
||||||
[_py setScanType:[ud objectForKey:@"scanType"]];
|
[model setMinMatchPercentage:n2i([ud objectForKey:@"minMatchPercentage"])];
|
||||||
[_py setMinMatchPercentage:[ud objectForKey:@"minMatchPercentage"]];
|
[model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
||||||
[_py setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
[model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
||||||
[_py setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
[model setMatchScaled:n2b([ud objectForKey:@"matchScaled"])];
|
||||||
[_py setMatchScaled:[ud objectForKey:@"matchScaled"]];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Actions */
|
/* Actions */
|
||||||
@@ -54,6 +53,6 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
NSString *msg = TR(@"Do you really want to remove all your cached picture analysis?");
|
NSString *msg = TR(@"Do you really want to remove all your cached picture analysis?");
|
||||||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO
|
||||||
return;
|
return;
|
||||||
[(PyDupeGuru *)py clearPictureCache];
|
[model clearPictureCache];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
@@ -7,48 +7,15 @@
|
|||||||
from hscommon.trans import install_gettext_trans_under_cocoa
|
from hscommon.trans import install_gettext_trans_under_cocoa
|
||||||
install_gettext_trans_under_cocoa()
|
install_gettext_trans_under_cocoa()
|
||||||
|
|
||||||
from core.scanner import ScanType
|
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
||||||
|
|
||||||
from inter.app import PyDupeGuruBase
|
|
||||||
from inter.details_panel import PyDetailsPanel
|
from inter.details_panel import PyDetailsPanel
|
||||||
from inter.directory_outline import PyDirectoryOutline
|
from inter.directory_outline import PyDirectoryOutline
|
||||||
from inter.extra_fairware_reminder import PyExtraFairwareReminder
|
from inter.extra_fairware_reminder import PyExtraFairwareReminder
|
||||||
from inter.prioritize_dialog import PyPrioritizeDialog
|
from inter.prioritize_dialog import PyPrioritizeDialog
|
||||||
|
from inter.prioritize_list import PyPrioritizeList
|
||||||
from inter.problem_dialog import PyProblemDialog
|
from inter.problem_dialog import PyProblemDialog
|
||||||
from inter.problem_table import PyProblemTable
|
|
||||||
from inter.result_table import PyResultTable
|
from inter.result_table import PyResultTable
|
||||||
from inter.stats_label import PyStatsLabel
|
from inter.stats_label import PyStatsLabel
|
||||||
from inter.app_pe import DupeGuruPE
|
from inter.app_pe import PyDupeGuru
|
||||||
|
|
||||||
class PyDupeGuru(PyDupeGuruBase):
|
|
||||||
def init(self):
|
|
||||||
self = super(PyDupeGuru, self).init()
|
|
||||||
self._init(DupeGuruPE)
|
|
||||||
return self
|
|
||||||
|
|
||||||
def clearPictureCache(self):
|
|
||||||
self.py.scanner.clear_picture_cache()
|
|
||||||
|
|
||||||
#---Information
|
|
||||||
def getSelectedDupePath(self):
|
|
||||||
return str(self.py.selected_dupe_path())
|
|
||||||
|
|
||||||
def getSelectedDupeRefPath(self):
|
|
||||||
return str(self.py.selected_dupe_ref_path())
|
|
||||||
|
|
||||||
#---Properties
|
|
||||||
def setScanType_(self, scan_type):
|
|
||||||
try:
|
|
||||||
self.py.scanner.scan_type = [
|
|
||||||
ScanType.FuzzyBlock,
|
|
||||||
ScanType.ExifTimestamp,
|
|
||||||
][scan_type]
|
|
||||||
except IndexError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def setMatchScaled_(self,match_scaled):
|
|
||||||
self.py.scanner.match_scaled = match_scaled
|
|
||||||
|
|
||||||
def setMinMatchPercentage_(self,percentage):
|
|
||||||
self.py.scanner.threshold = int(percentage)
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,6 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
|
||||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||||
CE05339B12E5DA350029EF25 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; };
|
CE05339B12E5DA350029EF25 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; };
|
||||||
CE05339C12E5DA350029EF25 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; };
|
CE05339C12E5DA350029EF25 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; };
|
||||||
@@ -27,12 +26,33 @@
|
|||||||
CE2A29F713213BFB005899AC /* ExtraFairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE2A29F513213BFB005899AC /* ExtraFairwareReminder.xib */; };
|
CE2A29F713213BFB005899AC /* ExtraFairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE2A29F513213BFB005899AC /* ExtraFairwareReminder.xib */; };
|
||||||
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
|
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
|
||||||
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
|
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
|
||||||
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */ = {isa = PBXBuildFile; fileRef = CE381CF509915304003581CE /* dg_cocoa.plugin */; };
|
|
||||||
CE60180812DF3EA900236FDC /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE60180712DF3EA900236FDC /* HSRecentFiles.m */; };
|
CE60180812DF3EA900236FDC /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE60180712DF3EA900236FDC /* HSRecentFiles.m */; };
|
||||||
CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6044EB0FE6796200B71262 /* DetailsPanel.m */; };
|
CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6044EB0FE6796200B71262 /* DetailsPanel.m */; };
|
||||||
CE63D9D31461EDC000A8CADD /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CE63D9D21461EDC000A8CADD /* locale */; };
|
CE63D9D31461EDC000A8CADD /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CE63D9D21461EDC000A8CADD /* locale */; };
|
||||||
CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; };
|
CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; };
|
||||||
CE6E0F3D1054EC62008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */; };
|
CE6E0F3D1054EC62008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */; };
|
||||||
|
CE75017314C4770500E2A349 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75017214C4770500E2A349 /* main.m */; };
|
||||||
|
CE75017514C4771800E2A349 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE75017414C4771800E2A349 /* py */; };
|
||||||
|
CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CE75017614C4772100E2A349 /* dg_cocoa.py */; };
|
||||||
|
CE75017914C4774900E2A349 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE75017814C4774900E2A349 /* Python */; };
|
||||||
|
CE75017A14C4775B00E2A349 /* Python in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE75017814C4774900E2A349 /* Python */; };
|
||||||
|
CE75019E14C477B100E2A349 /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75017D14C477B100E2A349 /* ObjP.m */; };
|
||||||
|
CE75019F14C477B100E2A349 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75017F14C477B100E2A349 /* PyColumns.m */; };
|
||||||
|
CE7501A014C477B100E2A349 /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75018114C477B100E2A349 /* PyDetailsPanel.m */; };
|
||||||
|
CE7501A114C477B100E2A349 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75018314C477B100E2A349 /* PyDirectoryOutline.m */; };
|
||||||
|
CE7501A214C477B100E2A349 /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75018514C477B100E2A349 /* PyDupeGuru.m */; };
|
||||||
|
CE7501A314C477B100E2A349 /* PyDupeGuruBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75018714C477B100E2A349 /* PyDupeGuruBase.m */; };
|
||||||
|
CE7501A414C477B100E2A349 /* PyExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75018914C477B100E2A349 /* PyExtraFairwareReminder.m */; };
|
||||||
|
CE7501A514C477B100E2A349 /* PyFairware.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75018B14C477B100E2A349 /* PyFairware.m */; };
|
||||||
|
CE7501A614C477B100E2A349 /* PyGUIObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75018D14C477B100E2A349 /* PyGUIObject.m */; };
|
||||||
|
CE7501A714C477B100E2A349 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75018F14C477B100E2A349 /* PyOutline.m */; };
|
||||||
|
CE7501A814C477B100E2A349 /* PyPrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019114C477B100E2A349 /* PyPrioritizeDialog.m */; };
|
||||||
|
CE7501A914C477B100E2A349 /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019314C477B100E2A349 /* PyPrioritizeList.m */; };
|
||||||
|
CE7501AA14C477B100E2A349 /* PyProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019514C477B100E2A349 /* PyProblemDialog.m */; };
|
||||||
|
CE7501AB14C477B100E2A349 /* PyResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019714C477B100E2A349 /* PyResultTable.m */; };
|
||||||
|
CE7501AC14C477B100E2A349 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019914C477B100E2A349 /* PySelectableList.m */; };
|
||||||
|
CE7501AD14C477B100E2A349 /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019B14C477B100E2A349 /* PyStatsLabel.m */; };
|
||||||
|
CE7501AE14C477B100E2A349 /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE75019D14C477B100E2A349 /* PyTable.m */; };
|
||||||
CE7AC9191119911200D02F6C /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7AC9161119911200D02F6C /* progress.xib */; };
|
CE7AC9191119911200D02F6C /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7AC9161119911200D02F6C /* progress.xib */; };
|
||||||
CE7D249D1423B0BD002E2297 /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249A1423B0BD002E2297 /* HSPopUpList.m */; };
|
CE7D249D1423B0BD002E2297 /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249A1423B0BD002E2297 /* HSPopUpList.m */; };
|
||||||
CE7D249E1423B0BD002E2297 /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249C1423B0BD002E2297 /* HSSelectableList.m */; };
|
CE7D249E1423B0BD002E2297 /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249C1423B0BD002E2297 /* HSSelectableList.m */; };
|
||||||
@@ -40,7 +60,6 @@
|
|||||||
CE7D24A61423B106002E2297 /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D24A21423B106002E2297 /* PrioritizeList.m */; };
|
CE7D24A61423B106002E2297 /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D24A21423B106002E2297 /* PrioritizeList.m */; };
|
||||||
CE7D24A91423B123002E2297 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */; };
|
CE7D24A91423B123002E2297 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */; };
|
||||||
CE80DB2E0FC192D60086DCA6 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB1C0FC192D60086DCA6 /* Dialogs.m */; };
|
CE80DB2E0FC192D60086DCA6 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB1C0FC192D60086DCA6 /* Dialogs.m */; };
|
||||||
CE80DB2F0FC192D60086DCA6 /* HSErrorReportWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB1E0FC192D60086DCA6 /* HSErrorReportWindow.m */; };
|
|
||||||
CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB220FC192D60086DCA6 /* ProgressController.m */; };
|
CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB220FC192D60086DCA6 /* ProgressController.m */; };
|
||||||
CE80DB350FC192D60086DCA6 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB2B0FC192D60086DCA6 /* Utils.m */; };
|
CE80DB350FC192D60086DCA6 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB2B0FC192D60086DCA6 /* Utils.m */; };
|
||||||
CE80DB360FC192D60086DCA6 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB2D0FC192D60086DCA6 /* ValueTransformers.m */; };
|
CE80DB360FC192D60086DCA6 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB2D0FC192D60086DCA6 /* ValueTransformers.m */; };
|
||||||
@@ -49,11 +68,9 @@
|
|||||||
CE80DB8A0FC1951C0086DCA6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB830FC1951C0086DCA6 /* AppDelegate.m */; };
|
CE80DB8A0FC1951C0086DCA6 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB830FC1951C0086DCA6 /* AppDelegate.m */; };
|
||||||
CE80DB8B0FC1951C0086DCA6 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */; };
|
CE80DB8B0FC1951C0086DCA6 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */; };
|
||||||
CE80DB8C0FC1951C0086DCA6 /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB890FC1951C0086DCA6 /* ResultWindow.m */; };
|
CE80DB8C0FC1951C0086DCA6 /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB890FC1951C0086DCA6 /* ResultWindow.m */; };
|
||||||
CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE848A1809DD85810004CB44 /* Consts.h */; };
|
|
||||||
CE95865F112C516400F95FD2 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE95865D112C516400F95FD2 /* StatsLabel.m */; };
|
CE95865F112C516400F95FD2 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE95865D112C516400F95FD2 /* StatsLabel.m */; };
|
||||||
CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7441122C96C008CD2BC /* HSGUIController.m */; };
|
CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7441122C96C008CD2BC /* HSGUIController.m */; };
|
||||||
CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7461122C96C008CD2BC /* HSOutline.m */; };
|
CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7461122C96C008CD2BC /* HSOutline.m */; };
|
||||||
CE9EA7581122C96C008CD2BC /* HSWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7481122C96C008CD2BC /* HSWindowController.m */; };
|
|
||||||
CE9EA7591122C96C008CD2BC /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */; };
|
CE9EA7591122C96C008CD2BC /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */; };
|
||||||
CE9EA75A1122C96C008CD2BC /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7511122C96C008CD2BC /* HSOutlineView.m */; };
|
CE9EA75A1122C96C008CD2BC /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7511122C96C008CD2BC /* HSOutlineView.m */; };
|
||||||
CE9EA75B1122C96C008CD2BC /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7531122C96C008CD2BC /* NSIndexPathAdditions.m */; };
|
CE9EA75B1122C96C008CD2BC /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7531122C96C008CD2BC /* NSIndexPathAdditions.m */; };
|
||||||
@@ -62,7 +79,6 @@
|
|||||||
CEA8F336142BC9AB00A6DFAC /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEA8F335142BC9AB00A6DFAC /* Quartz.framework */; };
|
CEA8F336142BC9AB00A6DFAC /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEA8F335142BC9AB00A6DFAC /* Quartz.framework */; };
|
||||||
CEA8F33A142BC9D400A6DFAC /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */; };
|
CEA8F33A142BC9D400A6DFAC /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */; };
|
||||||
CEC9DB4C12CCAA7D003102F0 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */; };
|
CEC9DB4C12CCAA7D003102F0 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */; };
|
||||||
CECA899C09DB132E00A3D774 /* DetailsPanel.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CECA899A09DB132E00A3D774 /* DetailsPanel.h */; };
|
|
||||||
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 */; };
|
||||||
@@ -81,8 +97,7 @@
|
|||||||
dstSubfolderSpec = 10;
|
dstSubfolderSpec = 10;
|
||||||
files = (
|
files = (
|
||||||
CE15C8C00ADEB8D40061D4A5 /* Sparkle.framework in CopyFiles */,
|
CE15C8C00ADEB8D40061D4A5 /* Sparkle.framework in CopyFiles */,
|
||||||
CECA899C09DB132E00A3D774 /* DetailsPanel.h in CopyFiles */,
|
CE75017A14C4775B00E2A349 /* Python in CopyFiles */,
|
||||||
CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -91,7 +106,6 @@
|
|||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
|
||||||
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -112,17 +126,13 @@
|
|||||||
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; };
|
||||||
CE0C2AAA117700E700BC749F /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; 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; };
|
||||||
CE0C2ABB1177014200BC749F /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
|
CE0C2ABB1177014200BC749F /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE0C2ABC1177014200BC749F /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyProblemDialog.h; path = ../base/PyProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
|
CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
|
||||||
CE18126F111C9D5100E49FCE /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDetailsPanel.h; path = ../base/PyDetailsPanel.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE1EB5FD12537F9D0034AABB /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyFairware.h; path = ../../cocoalib/PyFairware.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE1EB60012537FB90034AABB /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE1EB60012537FB90034AABB /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE21AFB61423EA6E00DE35BF /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CE21AFB61423EA6E00DE35BF /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
CE21AFB71423EA6E00DE35BF /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CE21AFB71423EA6E00DE35BF /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
@@ -130,24 +140,10 @@
|
|||||||
CE2A29F213213BE3005899AC /* ExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExtraFairwareReminder.h; path = ../base/ExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
CE2A29F213213BE3005899AC /* ExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExtraFairwareReminder.h; path = ../base/ExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE2A29F313213BE3005899AC /* ExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ExtraFairwareReminder.m; path = ../base/ExtraFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
CE2A29F313213BE3005899AC /* ExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ExtraFairwareReminder.m; path = ../base/ExtraFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE2A29F613213BFB005899AC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE2A29F613213BFB005899AC /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE2A29FF13213C31005899AC /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyExtraFairwareReminder.h; path = ../base/PyExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE381C9409914ACE003581CE /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
|
CE381C9409914ACE003581CE /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
|
CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE381CF509915304003581CE /* dg_cocoa.plugin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = dg_cocoa.plugin; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE520C5914B394B000AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/about.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C5A14B394B000AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C5B14B394B000AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C6014B394C200AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C6114B394C200AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C6414B394DB00AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C6514B394DB00AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C6614B394DB00AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C6714B394DB00AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C6814B394DB00AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C6914B394DB00AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
|
||||||
CE520C7014B394E400AE80D6 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
|
|
||||||
CE60180612DF3EA900236FDC /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
|
CE60180612DF3EA900236FDC /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE60180712DF3EA900236FDC /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
|
CE60180712DF3EA900236FDC /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE6044EA0FE6796200B71262 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
|
CE6044EA0FE6796200B71262 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -168,6 +164,44 @@
|
|||||||
CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = "<group>"; };
|
CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = "<group>"; };
|
||||||
CE7358071406ABF700F3F6DA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
CE7358071406ABF700F3F6DA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
CE75017214C4770500E2A349 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = "<group>"; };
|
||||||
|
CE75017414C4771800E2A349 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = "<group>"; };
|
||||||
|
CE75017614C4772100E2A349 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = "<group>"; };
|
||||||
|
CE75017814C4774900E2A349 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = "<group>"; };
|
||||||
|
CE75017C14C477B100E2A349 /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = "<group>"; };
|
||||||
|
CE75017D14C477B100E2A349 /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = "<group>"; };
|
||||||
|
CE75017E14C477B100E2A349 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
|
||||||
|
CE75017F14C477B100E2A349 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = "<group>"; };
|
||||||
|
CE75018014C477B100E2A349 /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = "<group>"; };
|
||||||
|
CE75018114C477B100E2A349 /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = "<group>"; };
|
||||||
|
CE75018214C477B100E2A349 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = "<group>"; };
|
||||||
|
CE75018314C477B100E2A349 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = "<group>"; };
|
||||||
|
CE75018414C477B100E2A349 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = "<group>"; };
|
||||||
|
CE75018514C477B100E2A349 /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = "<group>"; };
|
||||||
|
CE75018614C477B100E2A349 /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = "<group>"; };
|
||||||
|
CE75018714C477B100E2A349 /* PyDupeGuruBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuruBase.m; sourceTree = "<group>"; };
|
||||||
|
CE75018814C477B100E2A349 /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyExtraFairwareReminder.h; sourceTree = "<group>"; };
|
||||||
|
CE75018914C477B100E2A349 /* PyExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyExtraFairwareReminder.m; sourceTree = "<group>"; };
|
||||||
|
CE75018A14C477B100E2A349 /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyFairware.h; sourceTree = "<group>"; };
|
||||||
|
CE75018B14C477B100E2A349 /* PyFairware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyFairware.m; sourceTree = "<group>"; };
|
||||||
|
CE75018C14C477B100E2A349 /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = "<group>"; };
|
||||||
|
CE75018D14C477B100E2A349 /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = "<group>"; };
|
||||||
|
CE75018E14C477B100E2A349 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
|
||||||
|
CE75018F14C477B100E2A349 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = "<group>"; };
|
||||||
|
CE75019014C477B100E2A349 /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeDialog.h; sourceTree = "<group>"; };
|
||||||
|
CE75019114C477B100E2A349 /* PyPrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeDialog.m; sourceTree = "<group>"; };
|
||||||
|
CE75019214C477B100E2A349 /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeList.h; sourceTree = "<group>"; };
|
||||||
|
CE75019314C477B100E2A349 /* PyPrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeList.m; sourceTree = "<group>"; };
|
||||||
|
CE75019414C477B100E2A349 /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = "<group>"; };
|
||||||
|
CE75019514C477B100E2A349 /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = "<group>"; };
|
||||||
|
CE75019614C477B100E2A349 /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyResultTable.h; sourceTree = "<group>"; };
|
||||||
|
CE75019714C477B100E2A349 /* PyResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyResultTable.m; sourceTree = "<group>"; };
|
||||||
|
CE75019814C477B100E2A349 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
||||||
|
CE75019914C477B100E2A349 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = "<group>"; };
|
||||||
|
CE75019A14C477B100E2A349 /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = "<group>"; };
|
||||||
|
CE75019B14C477B100E2A349 /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = "<group>"; };
|
||||||
|
CE75019C14C477B100E2A349 /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
|
||||||
|
CE75019D14C477B100E2A349 /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = "<group>"; };
|
||||||
CE78759D13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
|
CE78759D13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE78759E13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE78759E13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE78759F13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
CE78759F13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -188,7 +222,6 @@
|
|||||||
CE7A69CA146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CE7A69CA146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
CE7A69CB146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
CE7A69CB146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
CE7AC9161119911200D02F6C /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
|
CE7AC9161119911200D02F6C /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
|
||||||
CE7D24971423B0A7002E2297 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
|
||||||
CE7D24991423B0BD002E2297 /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
|
CE7D24991423B0BD002E2297 /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
|
||||||
CE7D249A1423B0BD002E2297 /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
|
CE7D249A1423B0BD002E2297 /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
|
||||||
CE7D249B1423B0BD002E2297 /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
|
CE7D249B1423B0BD002E2297 /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
|
||||||
@@ -197,16 +230,11 @@
|
|||||||
CE7D24A01423B106002E2297 /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = "<group>"; };
|
CE7D24A01423B106002E2297 /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = "<group>"; };
|
||||||
CE7D24A11423B106002E2297 /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = "<group>"; };
|
CE7D24A11423B106002E2297 /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = "<group>"; };
|
||||||
CE7D24A21423B106002E2297 /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = "<group>"; };
|
CE7D24A21423B106002E2297 /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = "<group>"; };
|
||||||
CE7D24A31423B106002E2297 /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeDialog.h; path = ../base/PyPrioritizeDialog.h; sourceTree = "<group>"; };
|
|
||||||
CE7D24A41423B106002E2297 /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeList.h; path = ../base/PyPrioritizeList.h; sourceTree = "<group>"; };
|
|
||||||
CE7D24A81423B123002E2297 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CE7D24A81423B123002E2297 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
CE80DB1B0FC192D60086DCA6 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
|
CE80DB1B0FC192D60086DCA6 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB1C0FC192D60086DCA6 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
|
CE80DB1C0FC192D60086DCA6 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB1D0FC192D60086DCA6 /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = ../../cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE80DB1E0FC192D60086DCA6 /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = ../../cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE80DB210FC192D60086DCA6 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
|
CE80DB210FC192D60086DCA6 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB220FC192D60086DCA6 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
|
CE80DB220FC192D60086DCA6 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB230FC192D60086DCA6 /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = ../../cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE80DB2A0FC192D60086DCA6 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; };
|
CE80DB2A0FC192D60086DCA6 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB2B0FC192D60086DCA6 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; };
|
CE80DB2B0FC192D60086DCA6 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; };
|
CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -220,23 +248,29 @@
|
|||||||
CE80DB840FC1951C0086DCA6 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; };
|
CE80DB840FC1951C0086DCA6 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB850FC1951C0086DCA6 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
|
CE80DB850FC1951C0086DCA6 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB870FC1951C0086DCA6 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = ../base/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE80DB880FC1951C0086DCA6 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
CE80DB880FC1951C0086DCA6 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE80DB890FC1951C0086DCA6 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
CE80DB890FC1951C0086DCA6 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = "<group>"; };
|
CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = "<group>"; };
|
||||||
CE958659112C516400F95FD2 /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyStatsLabel.h; path = ../base/PyStatsLabel.h; sourceTree = SOURCE_ROOT; };
|
CE905DE114C6387B00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DE214C6387B00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DE314C6387B00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DE814C6388E00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
CE905DEA14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DEB14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DEC14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DED14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DEE14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DEF14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DF614C638B000C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE905DF714C638B000C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
CE95865C112C516400F95FD2 /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; };
|
CE95865C112C516400F95FD2 /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE95865D112C516400F95FD2 /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; };
|
CE95865D112C516400F95FD2 /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE9EA7431122C96C008CD2BC /* HSGUIController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController.h; sourceTree = "<group>"; };
|
CE9EA7431122C96C008CD2BC /* HSGUIController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController.h; sourceTree = "<group>"; };
|
||||||
CE9EA7441122C96C008CD2BC /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = "<group>"; };
|
CE9EA7441122C96C008CD2BC /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = "<group>"; };
|
||||||
CE9EA7451122C96C008CD2BC /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = "<group>"; };
|
CE9EA7451122C96C008CD2BC /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = "<group>"; };
|
||||||
CE9EA7461122C96C008CD2BC /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; };
|
CE9EA7461122C96C008CD2BC /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; };
|
||||||
CE9EA7471122C96C008CD2BC /* HSWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSWindowController.h; sourceTree = "<group>"; };
|
|
||||||
CE9EA7481122C96C008CD2BC /* HSWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSWindowController.m; sourceTree = "<group>"; };
|
|
||||||
CE9EA7491122C96C008CD2BC /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; };
|
CE9EA7491122C96C008CD2BC /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; };
|
CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE9EA74C1122C96C008CD2BC /* PyGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUI.h; sourceTree = "<group>"; };
|
|
||||||
CE9EA74D1122C96C008CD2BC /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
|
|
||||||
CE9EA7501122C96C008CD2BC /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; };
|
CE9EA7501122C96C008CD2BC /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; };
|
||||||
CE9EA7511122C96C008CD2BC /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; };
|
CE9EA7511122C96C008CD2BC /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; };
|
||||||
CE9EA7521122C96C008CD2BC /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; };
|
CE9EA7521122C96C008CD2BC /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; };
|
||||||
@@ -245,7 +279,6 @@
|
|||||||
CE9EA7551122C96C008CD2BC /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = "<group>"; };
|
CE9EA7551122C96C008CD2BC /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = "<group>"; };
|
||||||
CE9EA76F1122CA0B008CD2BC /* DirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryOutline.h; path = ../base/DirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
CE9EA76F1122CA0B008CD2BC /* DirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryOutline.h; path = ../base/DirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; };
|
CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE9EA7711122CA0B008CD2BC /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDirectoryOutline.h; path = ../base/PyDirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEA8F335142BC9AB00A6DFAC /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
|
CEA8F335142BC9AB00A6DFAC /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
|
||||||
CEA8F338142BC9D400A6DFAC /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
|
CEA8F338142BC9D400A6DFAC /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
|
||||||
CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
|
CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
|
||||||
@@ -273,7 +306,6 @@
|
|||||||
CEE6D559149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/about.xib; sourceTree = "<group>"; };
|
CEE6D559149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
CEE6D55A149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CEE6D55A149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
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>"; };
|
||||||
CEE6D55F1491134E0087CDFC /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; 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>"; };
|
||||||
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>"; };
|
||||||
@@ -291,11 +323,9 @@
|
|||||||
CEEE15911460329000783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = "<group>"; };
|
CEEE15911460329000783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
CEF12A7C124DFD400087B51D /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
|
CEF12A7C124DFD400087B51D /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEF12A7D124DFD400087B51D /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; };
|
CEF12A7D124DFD400087B51D /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEF12A81124DFD620087B51D /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyResultTable.h; path = ../base/PyResultTable.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEF12A82124DFD620087B51D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
CEF12A82124DFD620087B51D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEF12A83124DFD620087B51D /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; };
|
CEF12A83124DFD620087B51D /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; };
|
||||||
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; };
|
||||||
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -306,6 +336,7 @@
|
|||||||
CEA8F336142BC9AB00A6DFAC /* Quartz.framework in Frameworks */,
|
CEA8F336142BC9AB00A6DFAC /* Quartz.framework in Frameworks */,
|
||||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
|
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
|
||||||
CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */,
|
CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */,
|
||||||
|
CE75017914C4774900E2A349 /* Python in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -315,7 +346,6 @@
|
|||||||
080E96DDFE201D6D7F000001 /* DGPE */ = {
|
080E96DDFE201D6D7F000001 /* DGPE */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
|
||||||
CE381C9509914ACE003581CE /* AppDelegate.h */,
|
CE381C9509914ACE003581CE /* AppDelegate.h */,
|
||||||
CE381C9409914ACE003581CE /* AppDelegate.m */,
|
CE381C9409914ACE003581CE /* AppDelegate.m */,
|
||||||
CE848A1809DD85810004CB44 /* Consts.h */,
|
CE848A1809DD85810004CB44 /* Consts.h */,
|
||||||
@@ -323,7 +353,6 @@
|
|||||||
CECA899B09DB132E00A3D774 /* DetailsPanel.m */,
|
CECA899B09DB132E00A3D774 /* DetailsPanel.m */,
|
||||||
CE68EE6509ABC48000971085 /* DirectoryPanel.h */,
|
CE68EE6509ABC48000971085 /* DirectoryPanel.h */,
|
||||||
CE68EE6609ABC48000971085 /* DirectoryPanel.m */,
|
CE68EE6609ABC48000971085 /* DirectoryPanel.m */,
|
||||||
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */,
|
|
||||||
CE381C9B09914ADF003581CE /* ResultWindow.h */,
|
CE381C9B09914ADF003581CE /* ResultWindow.h */,
|
||||||
CE381C9A09914ADF003581CE /* ResultWindow.m */,
|
CE381C9A09914ADF003581CE /* ResultWindow.m */,
|
||||||
);
|
);
|
||||||
@@ -333,6 +362,7 @@
|
|||||||
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
CE75017814C4774900E2A349 /* Python */,
|
||||||
CEA8F335142BC9AB00A6DFAC /* Quartz.framework */,
|
CEA8F335142BC9AB00A6DFAC /* Quartz.framework */,
|
||||||
CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */,
|
CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */,
|
||||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
||||||
@@ -364,6 +394,7 @@
|
|||||||
080E96DDFE201D6D7F000001 /* DGPE */,
|
080E96DDFE201D6D7F000001 /* DGPE */,
|
||||||
CE80DB1A0FC192AB0086DCA6 /* cocoalib */,
|
CE80DB1A0FC192AB0086DCA6 /* cocoalib */,
|
||||||
CE80DB810FC194BD0086DCA6 /* dgbase */,
|
CE80DB810FC194BD0086DCA6 /* dgbase */,
|
||||||
|
CE75017B14C477B100E2A349 /* autogen */,
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
29B97317FDCFA39411CA2CEA /* Resources */,
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||||
19C28FACFE9D520D11CA2CBB /* Products */,
|
19C28FACFE9D520D11CA2CBB /* Products */,
|
||||||
@@ -374,9 +405,10 @@
|
|||||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
CE75017614C4772100E2A349 /* dg_cocoa.py */,
|
||||||
|
CE75017414C4771800E2A349 /* py */,
|
||||||
CE63D9D21461EDC000A8CADD /* locale */,
|
CE63D9D21461EDC000A8CADD /* locale */,
|
||||||
CE073F5409CAE1A3005C1D2F /* help */,
|
CE073F5409CAE1A3005C1D2F /* help */,
|
||||||
CE381CF509915304003581CE /* dg_cocoa.plugin */,
|
|
||||||
CEFC294309C89E0000D9F998 /* images */,
|
CEFC294309C89E0000D9F998 /* images */,
|
||||||
CE05339212E5DA1D0029EF25 /* xib */,
|
CE05339212E5DA1D0029EF25 /* xib */,
|
||||||
CEEB135109C837A2004D2330 /* dupeguru.icns */,
|
CEEB135109C837A2004D2330 /* dupeguru.icns */,
|
||||||
@@ -411,6 +443,48 @@
|
|||||||
name = xib;
|
name = xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
};
|
};
|
||||||
|
CE75017B14C477B100E2A349 /* autogen */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
CE75017C14C477B100E2A349 /* ObjP.h */,
|
||||||
|
CE75017D14C477B100E2A349 /* ObjP.m */,
|
||||||
|
CE75017E14C477B100E2A349 /* PyColumns.h */,
|
||||||
|
CE75017F14C477B100E2A349 /* PyColumns.m */,
|
||||||
|
CE75018014C477B100E2A349 /* PyDetailsPanel.h */,
|
||||||
|
CE75018114C477B100E2A349 /* PyDetailsPanel.m */,
|
||||||
|
CE75018214C477B100E2A349 /* PyDirectoryOutline.h */,
|
||||||
|
CE75018314C477B100E2A349 /* PyDirectoryOutline.m */,
|
||||||
|
CE75018414C477B100E2A349 /* PyDupeGuru.h */,
|
||||||
|
CE75018514C477B100E2A349 /* PyDupeGuru.m */,
|
||||||
|
CE75018614C477B100E2A349 /* PyDupeGuruBase.h */,
|
||||||
|
CE75018714C477B100E2A349 /* PyDupeGuruBase.m */,
|
||||||
|
CE75018814C477B100E2A349 /* PyExtraFairwareReminder.h */,
|
||||||
|
CE75018914C477B100E2A349 /* PyExtraFairwareReminder.m */,
|
||||||
|
CE75018A14C477B100E2A349 /* PyFairware.h */,
|
||||||
|
CE75018B14C477B100E2A349 /* PyFairware.m */,
|
||||||
|
CE75018C14C477B100E2A349 /* PyGUIObject.h */,
|
||||||
|
CE75018D14C477B100E2A349 /* PyGUIObject.m */,
|
||||||
|
CE75018E14C477B100E2A349 /* PyOutline.h */,
|
||||||
|
CE75018F14C477B100E2A349 /* PyOutline.m */,
|
||||||
|
CE75019014C477B100E2A349 /* PyPrioritizeDialog.h */,
|
||||||
|
CE75019114C477B100E2A349 /* PyPrioritizeDialog.m */,
|
||||||
|
CE75019214C477B100E2A349 /* PyPrioritizeList.h */,
|
||||||
|
CE75019314C477B100E2A349 /* PyPrioritizeList.m */,
|
||||||
|
CE75019414C477B100E2A349 /* PyProblemDialog.h */,
|
||||||
|
CE75019514C477B100E2A349 /* PyProblemDialog.m */,
|
||||||
|
CE75019614C477B100E2A349 /* PyResultTable.h */,
|
||||||
|
CE75019714C477B100E2A349 /* PyResultTable.m */,
|
||||||
|
CE75019814C477B100E2A349 /* PySelectableList.h */,
|
||||||
|
CE75019914C477B100E2A349 /* PySelectableList.m */,
|
||||||
|
CE75019A14C477B100E2A349 /* PyStatsLabel.h */,
|
||||||
|
CE75019B14C477B100E2A349 /* PyStatsLabel.m */,
|
||||||
|
CE75019C14C477B100E2A349 /* PyTable.h */,
|
||||||
|
CE75019D14C477B100E2A349 /* PyTable.m */,
|
||||||
|
);
|
||||||
|
name = autogen;
|
||||||
|
path = ../autogen;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
CE7AC9141119911200D02F6C /* xib */ = {
|
CE7AC9141119911200D02F6C /* xib */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -427,7 +501,6 @@
|
|||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
CE9EA7421122C96C008CD2BC /* controllers */,
|
CE9EA7421122C96C008CD2BC /* controllers */,
|
||||||
CE9EA74B1122C96C008CD2BC /* proxies */,
|
|
||||||
CE9EA74F1122C96C008CD2BC /* views */,
|
CE9EA74F1122C96C008CD2BC /* views */,
|
||||||
CE7AC9141119911200D02F6C /* xib */,
|
CE7AC9141119911200D02F6C /* xib */,
|
||||||
CE80DB480FC193770086DCA6 /* NSImageAdditions.h */,
|
CE80DB480FC193770086DCA6 /* NSImageAdditions.h */,
|
||||||
@@ -438,11 +511,8 @@
|
|||||||
CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */,
|
CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */,
|
||||||
CE80DB1B0FC192D60086DCA6 /* Dialogs.h */,
|
CE80DB1B0FC192D60086DCA6 /* Dialogs.h */,
|
||||||
CE80DB1C0FC192D60086DCA6 /* Dialogs.m */,
|
CE80DB1C0FC192D60086DCA6 /* Dialogs.m */,
|
||||||
CE80DB1D0FC192D60086DCA6 /* HSErrorReportWindow.h */,
|
|
||||||
CE80DB1E0FC192D60086DCA6 /* HSErrorReportWindow.m */,
|
|
||||||
CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */,
|
CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */,
|
||||||
CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */,
|
CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */,
|
||||||
CE1EB5FD12537F9D0034AABB /* PyFairware.h */,
|
|
||||||
CEC9DB4A12CCAA7D003102F0 /* HSAboutBox.h */,
|
CEC9DB4A12CCAA7D003102F0 /* HSAboutBox.h */,
|
||||||
CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */,
|
CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */,
|
||||||
CE60180612DF3EA900236FDC /* HSRecentFiles.h */,
|
CE60180612DF3EA900236FDC /* HSRecentFiles.h */,
|
||||||
@@ -451,7 +521,6 @@
|
|||||||
CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */,
|
CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */,
|
||||||
CE80DB210FC192D60086DCA6 /* ProgressController.h */,
|
CE80DB210FC192D60086DCA6 /* ProgressController.h */,
|
||||||
CE80DB220FC192D60086DCA6 /* ProgressController.m */,
|
CE80DB220FC192D60086DCA6 /* ProgressController.m */,
|
||||||
CE80DB230FC192D60086DCA6 /* PyApp.h */,
|
|
||||||
CE80DB2A0FC192D60086DCA6 /* Utils.h */,
|
CE80DB2A0FC192D60086DCA6 /* Utils.h */,
|
||||||
CE80DB2B0FC192D60086DCA6 /* Utils.m */,
|
CE80DB2B0FC192D60086DCA6 /* Utils.m */,
|
||||||
CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */,
|
CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */,
|
||||||
@@ -465,36 +534,28 @@
|
|||||||
children = (
|
children = (
|
||||||
CEF12A82124DFD620087B51D /* ResultTable.h */,
|
CEF12A82124DFD620087B51D /* ResultTable.h */,
|
||||||
CEF12A83124DFD620087B51D /* ResultTable.m */,
|
CEF12A83124DFD620087B51D /* ResultTable.m */,
|
||||||
CEF12A81124DFD620087B51D /* PyResultTable.h */,
|
|
||||||
CE80DB820FC1951C0086DCA6 /* AppDelegate.h */,
|
CE80DB820FC1951C0086DCA6 /* AppDelegate.h */,
|
||||||
CE80DB830FC1951C0086DCA6 /* AppDelegate.m */,
|
CE80DB830FC1951C0086DCA6 /* AppDelegate.m */,
|
||||||
CE80DB870FC1951C0086DCA6 /* PyDupeGuru.h */,
|
|
||||||
CE80DB840FC1951C0086DCA6 /* Consts.h */,
|
CE80DB840FC1951C0086DCA6 /* Consts.h */,
|
||||||
CE6044EA0FE6796200B71262 /* DetailsPanel.h */,
|
CE6044EA0FE6796200B71262 /* DetailsPanel.h */,
|
||||||
CE6044EB0FE6796200B71262 /* DetailsPanel.m */,
|
CE6044EB0FE6796200B71262 /* DetailsPanel.m */,
|
||||||
CE18126F111C9D5100E49FCE /* PyDetailsPanel.h */,
|
|
||||||
CE80DB850FC1951C0086DCA6 /* DirectoryPanel.h */,
|
CE80DB850FC1951C0086DCA6 /* DirectoryPanel.h */,
|
||||||
CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */,
|
CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */,
|
||||||
CE9EA76F1122CA0B008CD2BC /* DirectoryOutline.h */,
|
CE9EA76F1122CA0B008CD2BC /* DirectoryOutline.h */,
|
||||||
CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */,
|
CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */,
|
||||||
CE9EA7711122CA0B008CD2BC /* PyDirectoryOutline.h */,
|
|
||||||
CE0C2ABA1177014200BC749F /* ProblemDialog.h */,
|
CE0C2ABA1177014200BC749F /* ProblemDialog.h */,
|
||||||
CE0C2ABB1177014200BC749F /* ProblemDialog.m */,
|
CE0C2ABB1177014200BC749F /* ProblemDialog.m */,
|
||||||
CE0C2ABC1177014200BC749F /* PyProblemDialog.h */,
|
|
||||||
CE80DB880FC1951C0086DCA6 /* ResultWindow.h */,
|
CE80DB880FC1951C0086DCA6 /* ResultWindow.h */,
|
||||||
CE80DB890FC1951C0086DCA6 /* ResultWindow.m */,
|
CE80DB890FC1951C0086DCA6 /* ResultWindow.m */,
|
||||||
CE95865C112C516400F95FD2 /* StatsLabel.h */,
|
CE95865C112C516400F95FD2 /* StatsLabel.h */,
|
||||||
CE95865D112C516400F95FD2 /* StatsLabel.m */,
|
CE95865D112C516400F95FD2 /* StatsLabel.m */,
|
||||||
CE958659112C516400F95FD2 /* PyStatsLabel.h */,
|
|
||||||
CE2A29F213213BE3005899AC /* ExtraFairwareReminder.h */,
|
CE2A29F213213BE3005899AC /* ExtraFairwareReminder.h */,
|
||||||
CE2A29F313213BE3005899AC /* ExtraFairwareReminder.m */,
|
CE2A29F313213BE3005899AC /* ExtraFairwareReminder.m */,
|
||||||
CE2A29FF13213C31005899AC /* PyExtraFairwareReminder.h */,
|
|
||||||
CE7D249F1423B106002E2297 /* PrioritizeDialog.h */,
|
CE7D249F1423B106002E2297 /* PrioritizeDialog.h */,
|
||||||
CE7D24A01423B106002E2297 /* PrioritizeDialog.m */,
|
CE7D24A01423B106002E2297 /* PrioritizeDialog.m */,
|
||||||
CE7D24A31423B106002E2297 /* PyPrioritizeDialog.h */,
|
|
||||||
CE7D24A11423B106002E2297 /* PrioritizeList.h */,
|
CE7D24A11423B106002E2297 /* PrioritizeList.h */,
|
||||||
CE7D24A21423B106002E2297 /* PrioritizeList.m */,
|
CE7D24A21423B106002E2297 /* PrioritizeList.m */,
|
||||||
CE7D24A41423B106002E2297 /* PyPrioritizeList.h */,
|
CE75017214C4770500E2A349 /* main.m */,
|
||||||
);
|
);
|
||||||
name = dgbase;
|
name = dgbase;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -510,8 +571,6 @@
|
|||||||
CE9EA7461122C96C008CD2BC /* HSOutline.m */,
|
CE9EA7461122C96C008CD2BC /* HSOutline.m */,
|
||||||
CE0C2AB41177011000BC749F /* HSTable.h */,
|
CE0C2AB41177011000BC749F /* HSTable.h */,
|
||||||
CE0C2AB51177011000BC749F /* HSTable.m */,
|
CE0C2AB51177011000BC749F /* HSTable.m */,
|
||||||
CE9EA7471122C96C008CD2BC /* HSWindowController.h */,
|
|
||||||
CE9EA7481122C96C008CD2BC /* HSWindowController.m */,
|
|
||||||
CE7D24991423B0BD002E2297 /* HSPopUpList.h */,
|
CE7D24991423B0BD002E2297 /* HSPopUpList.h */,
|
||||||
CE7D249A1423B0BD002E2297 /* HSPopUpList.m */,
|
CE7D249A1423B0BD002E2297 /* HSPopUpList.m */,
|
||||||
CE7D249B1423B0BD002E2297 /* HSSelectableList.h */,
|
CE7D249B1423B0BD002E2297 /* HSSelectableList.h */,
|
||||||
@@ -521,19 +580,6 @@
|
|||||||
path = ../../cocoalib/controllers;
|
path = ../../cocoalib/controllers;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
};
|
};
|
||||||
CE9EA74B1122C96C008CD2BC /* proxies */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
CEE6D55F1491134E0087CDFC /* PyColumns.h */,
|
|
||||||
CE9EA74C1122C96C008CD2BC /* PyGUI.h */,
|
|
||||||
CE9EA74D1122C96C008CD2BC /* PyOutline.h */,
|
|
||||||
CE0C2AAA117700E700BC749F /* PyTable.h */,
|
|
||||||
CE7D24971423B0A7002E2297 /* PySelectableList.h */,
|
|
||||||
);
|
|
||||||
name = proxies;
|
|
||||||
path = ../../cocoalib/proxies;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
CE9EA74F1122C96C008CD2BC /* views */ = {
|
CE9EA74F1122C96C008CD2BC /* views */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -604,7 +650,7 @@
|
|||||||
cs,
|
cs,
|
||||||
it,
|
it,
|
||||||
hy,
|
hy,
|
||||||
ru,
|
uk,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -620,7 +666,6 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */,
|
|
||||||
CE073F6309CAE1A3005C1D2F /* help in Resources */,
|
CE073F6309CAE1A3005C1D2F /* help in Resources */,
|
||||||
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */,
|
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */,
|
||||||
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */,
|
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */,
|
||||||
@@ -639,6 +684,8 @@
|
|||||||
CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */,
|
CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */,
|
||||||
CE7D24A91423B123002E2297 /* PrioritizeDialog.xib in Resources */,
|
CE7D24A91423B123002E2297 /* PrioritizeDialog.xib in Resources */,
|
||||||
CE63D9D31461EDC000A8CADD /* locale in Resources */,
|
CE63D9D31461EDC000A8CADD /* locale in Resources */,
|
||||||
|
CE75017514C4771800E2A349 /* py in Resources */,
|
||||||
|
CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -649,13 +696,11 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
8D11072D0486CEB800E47090 /* main.m in Sources */,
|
|
||||||
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */,
|
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */,
|
||||||
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */,
|
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */,
|
||||||
CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */,
|
CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */,
|
||||||
CECA899D09DB132E00A3D774 /* DetailsPanel.m in Sources */,
|
CECA899D09DB132E00A3D774 /* DetailsPanel.m in Sources */,
|
||||||
CE80DB2E0FC192D60086DCA6 /* Dialogs.m in Sources */,
|
CE80DB2E0FC192D60086DCA6 /* Dialogs.m in Sources */,
|
||||||
CE80DB2F0FC192D60086DCA6 /* HSErrorReportWindow.m in Sources */,
|
|
||||||
CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */,
|
CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */,
|
||||||
CE80DB350FC192D60086DCA6 /* Utils.m in Sources */,
|
CE80DB350FC192D60086DCA6 /* Utils.m in Sources */,
|
||||||
CE80DB360FC192D60086DCA6 /* ValueTransformers.m in Sources */,
|
CE80DB360FC192D60086DCA6 /* ValueTransformers.m in Sources */,
|
||||||
@@ -667,7 +712,6 @@
|
|||||||
CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */,
|
CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */,
|
||||||
CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */,
|
CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */,
|
||||||
CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */,
|
CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */,
|
||||||
CE9EA7581122C96C008CD2BC /* HSWindowController.m in Sources */,
|
|
||||||
CE9EA7591122C96C008CD2BC /* NSEventAdditions.m in Sources */,
|
CE9EA7591122C96C008CD2BC /* NSEventAdditions.m in Sources */,
|
||||||
CE9EA75A1122C96C008CD2BC /* HSOutlineView.m in Sources */,
|
CE9EA75A1122C96C008CD2BC /* HSOutlineView.m in Sources */,
|
||||||
CE9EA75B1122C96C008CD2BC /* NSIndexPathAdditions.m in Sources */,
|
CE9EA75B1122C96C008CD2BC /* NSIndexPathAdditions.m in Sources */,
|
||||||
@@ -688,6 +732,24 @@
|
|||||||
CE7D24A61423B106002E2297 /* PrioritizeList.m in Sources */,
|
CE7D24A61423B106002E2297 /* PrioritizeList.m in Sources */,
|
||||||
CEA8F33A142BC9D400A6DFAC /* HSQuicklook.m in Sources */,
|
CEA8F33A142BC9D400A6DFAC /* HSQuicklook.m in Sources */,
|
||||||
CEE6D562149113570087CDFC /* HSColumns.m in Sources */,
|
CEE6D562149113570087CDFC /* HSColumns.m in Sources */,
|
||||||
|
CE75017314C4770500E2A349 /* main.m in Sources */,
|
||||||
|
CE75019E14C477B100E2A349 /* ObjP.m in Sources */,
|
||||||
|
CE75019F14C477B100E2A349 /* PyColumns.m in Sources */,
|
||||||
|
CE7501A014C477B100E2A349 /* PyDetailsPanel.m in Sources */,
|
||||||
|
CE7501A114C477B100E2A349 /* PyDirectoryOutline.m in Sources */,
|
||||||
|
CE7501A214C477B100E2A349 /* PyDupeGuru.m in Sources */,
|
||||||
|
CE7501A314C477B100E2A349 /* PyDupeGuruBase.m in Sources */,
|
||||||
|
CE7501A414C477B100E2A349 /* PyExtraFairwareReminder.m in Sources */,
|
||||||
|
CE7501A514C477B100E2A349 /* PyFairware.m in Sources */,
|
||||||
|
CE7501A614C477B100E2A349 /* PyGUIObject.m in Sources */,
|
||||||
|
CE7501A714C477B100E2A349 /* PyOutline.m in Sources */,
|
||||||
|
CE7501A814C477B100E2A349 /* PyPrioritizeDialog.m in Sources */,
|
||||||
|
CE7501A914C477B100E2A349 /* PyPrioritizeList.m in Sources */,
|
||||||
|
CE7501AA14C477B100E2A349 /* PyProblemDialog.m in Sources */,
|
||||||
|
CE7501AB14C477B100E2A349 /* PyResultTable.m in Sources */,
|
||||||
|
CE7501AC14C477B100E2A349 /* PySelectableList.m in Sources */,
|
||||||
|
CE7501AD14C477B100E2A349 /* PyStatsLabel.m in Sources */,
|
||||||
|
CE7501AE14C477B100E2A349 /* PyTable.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -704,7 +766,7 @@
|
|||||||
CEEE15841460328400783E91 /* cs */,
|
CEEE15841460328400783E91 /* cs */,
|
||||||
CE7A69B9146443AD0007D927 /* it */,
|
CE7A69B9146443AD0007D927 /* it */,
|
||||||
CEE6D5461491130D0087CDFC /* hy */,
|
CEE6D5461491130D0087CDFC /* hy */,
|
||||||
CE520C6414B394DB00AE80D6 /* ru */,
|
CE905DEA14C638A500C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -719,7 +781,7 @@
|
|||||||
CEEE15861460328400783E91 /* cs */,
|
CEEE15861460328400783E91 /* cs */,
|
||||||
CE7A69BB146443AD0007D927 /* it */,
|
CE7A69BB146443AD0007D927 /* it */,
|
||||||
CEE6D5481491130D0087CDFC /* hy */,
|
CEE6D5481491130D0087CDFC /* hy */,
|
||||||
CE520C6614B394DB00AE80D6 /* ru */,
|
CE905DEC14C638A500C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -734,7 +796,7 @@
|
|||||||
CEEE15881460328400783E91 /* cs */,
|
CEEE15881460328400783E91 /* cs */,
|
||||||
CE7A69BD146443AD0007D927 /* it */,
|
CE7A69BD146443AD0007D927 /* it */,
|
||||||
CEE6D54A1491130D0087CDFC /* hy */,
|
CEE6D54A1491130D0087CDFC /* hy */,
|
||||||
CE520C6814B394DB00AE80D6 /* ru */,
|
CE905DEE14C638A500C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -749,7 +811,7 @@
|
|||||||
CEEE15891460328400783E91 /* cs */,
|
CEEE15891460328400783E91 /* cs */,
|
||||||
CE7A69BE146443AD0007D927 /* it */,
|
CE7A69BE146443AD0007D927 /* it */,
|
||||||
CEE6D54B1491130D0087CDFC /* hy */,
|
CEE6D54B1491130D0087CDFC /* hy */,
|
||||||
CE520C6914B394DB00AE80D6 /* ru */,
|
CE905DEF14C638A500C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -764,7 +826,7 @@
|
|||||||
CEEE15901460329000783E91 /* cs */,
|
CEEE15901460329000783E91 /* cs */,
|
||||||
CE7A69C5146443B90007D927 /* it */,
|
CE7A69C5146443B90007D927 /* it */,
|
||||||
CEE6D553149113190087CDFC /* hy */,
|
CEE6D553149113190087CDFC /* hy */,
|
||||||
CE520C6014B394C200AE80D6 /* ru */,
|
CE905DF614C638B000C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -779,7 +841,7 @@
|
|||||||
CEEE15911460329000783E91 /* cs */,
|
CEEE15911460329000783E91 /* cs */,
|
||||||
CE7A69C6146443B90007D927 /* it */,
|
CE7A69C6146443B90007D927 /* it */,
|
||||||
CEE6D554149113190087CDFC /* hy */,
|
CEE6D554149113190087CDFC /* hy */,
|
||||||
CE520C6114B394C200AE80D6 /* ru */,
|
CE905DF714C638B000C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -794,7 +856,7 @@
|
|||||||
CEEE15771460327300783E91 /* cs */,
|
CEEE15771460327300783E91 /* cs */,
|
||||||
CE7A69B3146443A00007D927 /* it */,
|
CE7A69B3146443A00007D927 /* it */,
|
||||||
CEE6D557149113250087CDFC /* hy */,
|
CEE6D557149113250087CDFC /* hy */,
|
||||||
CE520C7014B394E400AE80D6 /* ru */,
|
CE905DE814C6388E00C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -809,7 +871,7 @@
|
|||||||
CEEE15701460325B00783E91 /* cs */,
|
CEEE15701460325B00783E91 /* cs */,
|
||||||
CE7A69CB146443CB0007D927 /* it */,
|
CE7A69CB146443CB0007D927 /* it */,
|
||||||
CEE6D55B149113320087CDFC /* hy */,
|
CEE6D55B149113320087CDFC /* hy */,
|
||||||
CE520C5B14B394B000AE80D6 /* ru */,
|
CE905DE314C6387B00C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -825,7 +887,7 @@
|
|||||||
CEEE15851460328400783E91 /* cs */,
|
CEEE15851460328400783E91 /* cs */,
|
||||||
CE7A69BA146443AD0007D927 /* it */,
|
CE7A69BA146443AD0007D927 /* it */,
|
||||||
CEE6D5471491130D0087CDFC /* hy */,
|
CEE6D5471491130D0087CDFC /* hy */,
|
||||||
CE520C6514B394DB00AE80D6 /* ru */,
|
CE905DEB14C638A500C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = ExtraFairwareReminder.xib;
|
name = ExtraFairwareReminder.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -840,7 +902,7 @@
|
|||||||
CEEE15871460328400783E91 /* cs */,
|
CEEE15871460328400783E91 /* cs */,
|
||||||
CE7A69BC146443AD0007D927 /* it */,
|
CE7A69BC146443AD0007D927 /* it */,
|
||||||
CEE6D5491491130D0087CDFC /* hy */,
|
CEE6D5491491130D0087CDFC /* hy */,
|
||||||
CE520C6714B394DB00AE80D6 /* ru */,
|
CE905DED14C638A500C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -855,7 +917,7 @@
|
|||||||
CEEE156E1460325B00783E91 /* cs */,
|
CEEE156E1460325B00783E91 /* cs */,
|
||||||
CE7A69C9146443CB0007D927 /* it */,
|
CE7A69C9146443CB0007D927 /* it */,
|
||||||
CEE6D559149113320087CDFC /* hy */,
|
CEE6D559149113320087CDFC /* hy */,
|
||||||
CE520C5914B394B000AE80D6 /* ru */,
|
CE905DE114C6387B00C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -870,7 +932,7 @@
|
|||||||
CEEE156F1460325B00783E91 /* cs */,
|
CEEE156F1460325B00783E91 /* cs */,
|
||||||
CE7A69CA146443CB0007D927 /* it */,
|
CE7A69CA146443CB0007D927 /* it */,
|
||||||
CEE6D55A149113320087CDFC /* hy */,
|
CEE6D55A149113320087CDFC /* hy */,
|
||||||
CE520C5A14B394B000AE80D6 /* ru */,
|
CE905DE214C6387B00C0ECEF /* uk */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -887,6 +949,10 @@
|
|||||||
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
|
||||||
INFOPLIST_FILE = Info.plist;
|
INFOPLIST_FILE = Info.plist;
|
||||||
INSTALL_PATH = "$(PROJECT_DIR)";
|
INSTALL_PATH = "$(PROJECT_DIR)";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"\"$(SRCROOT)/../../build\"",
|
||||||
|
);
|
||||||
PRODUCT_NAME = "dupeGuru PE";
|
PRODUCT_NAME = "dupeGuru PE";
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
@@ -897,8 +963,8 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
GCC_C_LANGUAGE_STANDARD = c99;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\"";
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
SDKROOT = macosx10.6;
|
SDKROOT = macosx10.6;
|
||||||
};
|
};
|
||||||
@@ -909,8 +975,8 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
GCC_C_LANGUAGE_STANDARD = c99;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\"";
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
SDKROOT = macosx10.6;
|
SDKROOT = macosx10.6;
|
||||||
};
|
};
|
||||||
@@ -924,6 +990,10 @@
|
|||||||
DSTROOT = /;
|
DSTROOT = /;
|
||||||
INFOPLIST_FILE = Info.plist;
|
INFOPLIST_FILE = Info.plist;
|
||||||
INSTALL_PATH = "$(PROJECT_DIR)";
|
INSTALL_PATH = "$(PROJECT_DIR)";
|
||||||
|
LIBRARY_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"\"$(SRCROOT)/../../build\"",
|
||||||
|
);
|
||||||
PRODUCT_NAME = "dupeGuru PE";
|
PRODUCT_NAME = "dupeGuru PE";
|
||||||
WRAPPER_EXTENSION = app;
|
WRAPPER_EXTENSION = app;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "Utils.h"
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
|
||||||
[Utils setPluginName:@"dg_cocoa"];
|
|
||||||
NSString *pluginPath = [[NSBundle mainBundle]
|
|
||||||
pathForResource:@"dg_cocoa"
|
|
||||||
ofType:@"plugin"];
|
|
||||||
NSBundle *pluginBundle = [NSBundle bundleWithPath:pluginPath];
|
|
||||||
[pluginBundle load];
|
|
||||||
[pool release];
|
|
||||||
return NSApplicationMain(argc, (const char **) argv);
|
|
||||||
}
|
|
||||||
@@ -11,5 +11,4 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
#import "PyDupeGuru.h"
|
#import "PyDupeGuru.h"
|
||||||
|
|
||||||
@interface AppDelegate : AppDelegateBase {}
|
@interface AppDelegate : AppDelegateBase {}
|
||||||
- (PyDupeGuru *)py;
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -62,6 +62,4 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
{
|
{
|
||||||
return [[ResultWindow alloc] initWithParentApp:self];
|
return [[ResultWindow alloc] initWithParentApp:self];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (PyDupeGuru *)py { return (PyDupeGuru *)py; }
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -1,16 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "../base/PyDupeGuru.h"
|
|
||||||
|
|
||||||
@interface PyDupeGuru : PyDupeGuruBase
|
|
||||||
//Scanning options
|
|
||||||
- (void)setWordWeighting:(NSNumber *)words_are_weighted;
|
|
||||||
- (void)setMatchSimilarWords:(NSNumber *)match_similar_words;
|
|
||||||
@end
|
|
||||||
@@ -39,15 +39,14 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
- (void)setScanOptions
|
- (void)setScanOptions
|
||||||
{
|
{
|
||||||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults];
|
||||||
PyDupeGuru *_py = (PyDupeGuru *)py;
|
[model setScanType:n2b([ud objectForKey:@"scanType"])];
|
||||||
[_py setScanType:[ud objectForKey:@"scanType"]];
|
[model setMinMatchPercentage:n2i([ud objectForKey:@"minMatchPercentage"])];
|
||||||
[_py setMinMatchPercentage:[ud objectForKey:@"minMatchPercentage"]];
|
[model setWordWeighting:n2b([ud objectForKey:@"wordWeighting"])];
|
||||||
[_py setWordWeighting:[ud objectForKey:@"wordWeighting"]];
|
[model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
||||||
[_py setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])];
|
[model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
||||||
[_py setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])];
|
[model setMatchSimilarWords:n2b([ud objectForKey:@"matchSimilarWords"])];
|
||||||
[_py setMatchSimilarWords:[ud objectForKey:@"matchSimilarWords"]];
|
|
||||||
int smallFileThreshold = [ud integerForKey:@"smallFileThreshold"]; // In KB
|
int smallFileThreshold = [ud integerForKey:@"smallFileThreshold"]; // In KB
|
||||||
int sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes
|
int sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes
|
||||||
[_py setSizeThreshold:sizeThreshold];
|
[model setSizeThreshold:sizeThreshold];
|
||||||
}
|
}
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -7,48 +7,14 @@
|
|||||||
from hscommon.trans import install_gettext_trans_under_cocoa
|
from hscommon.trans import install_gettext_trans_under_cocoa
|
||||||
install_gettext_trans_under_cocoa()
|
install_gettext_trans_under_cocoa()
|
||||||
|
|
||||||
from cocoa.inter import signature
|
from cocoa.inter import PySelectableList, PyColumns, PyTable
|
||||||
|
|
||||||
from core.scanner import ScanType
|
|
||||||
|
|
||||||
from inter.app import PyDupeGuruBase
|
|
||||||
from inter.details_panel import PyDetailsPanel
|
from inter.details_panel import PyDetailsPanel
|
||||||
from inter.directory_outline import PyDirectoryOutline
|
from inter.directory_outline import PyDirectoryOutline
|
||||||
from inter.extra_fairware_reminder import PyExtraFairwareReminder
|
from inter.extra_fairware_reminder import PyExtraFairwareReminder
|
||||||
from inter.prioritize_dialog import PyPrioritizeDialog
|
from inter.prioritize_dialog import PyPrioritizeDialog
|
||||||
|
from inter.prioritize_list import PyPrioritizeList
|
||||||
from inter.problem_dialog import PyProblemDialog
|
from inter.problem_dialog import PyProblemDialog
|
||||||
from inter.problem_table import PyProblemTable
|
|
||||||
from inter.result_table import PyResultTable
|
from inter.result_table import PyResultTable
|
||||||
from inter.stats_label import PyStatsLabel
|
from inter.stats_label import PyStatsLabel
|
||||||
from inter.app_se import DupeGuru
|
from inter.app_se import PyDupeGuru
|
||||||
|
|
||||||
class PyDupeGuru(PyDupeGuruBase):
|
|
||||||
def init(self):
|
|
||||||
self = super(PyDupeGuru,self).init()
|
|
||||||
self._init(DupeGuru)
|
|
||||||
return self
|
|
||||||
|
|
||||||
#---Properties
|
|
||||||
def setMinMatchPercentage_(self,percentage):
|
|
||||||
self.py.scanner.min_match_percentage = int(percentage)
|
|
||||||
|
|
||||||
def setScanType_(self,scan_type):
|
|
||||||
try:
|
|
||||||
self.py.scanner.scan_type = [
|
|
||||||
ScanType.Filename,
|
|
||||||
ScanType.Contents,
|
|
||||||
ScanType.Folders,
|
|
||||||
][scan_type]
|
|
||||||
except IndexError:
|
|
||||||
pass
|
|
||||||
|
|
||||||
def setWordWeighting_(self,words_are_weighted):
|
|
||||||
self.py.scanner.word_weighting = words_are_weighted
|
|
||||||
|
|
||||||
def setMatchSimilarWords_(self,match_similar_words):
|
|
||||||
self.py.scanner.match_similar_words = match_similar_words
|
|
||||||
|
|
||||||
@signature('v@:i')
|
|
||||||
def setSizeThreshold_(self, size_threshold):
|
|
||||||
self.py.scanner.size_threshold = size_threshold
|
|
||||||
|
|
||||||
@@ -7,22 +7,31 @@
|
|||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
|
||||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||||
CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; };
|
CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; };
|
||||||
|
CE18004D14BDD837001B6329 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; };
|
||||||
|
CE18004F14BDD854001B6329 /* Python in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; };
|
||||||
|
CE18005114BDD87B001B6329 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE18005014BDD87B001B6329 /* py */; };
|
||||||
CE19BC6411199231007CCEB0 /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE19BC6111199231007CCEB0 /* progress.xib */; };
|
CE19BC6411199231007CCEB0 /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE19BC6111199231007CCEB0 /* progress.xib */; };
|
||||||
|
CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091514BE0C6400CA6B8C /* ObjP.m */; };
|
||||||
|
CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */; };
|
||||||
|
CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; };
|
||||||
|
CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; };
|
||||||
CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; };
|
CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; };
|
||||||
CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; };
|
CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; };
|
||||||
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; };
|
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; };
|
||||||
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
|
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
|
||||||
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
|
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
|
||||||
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */ = {isa = PBXBuildFile; fileRef = CE381CF509915304003581CE /* dg_cocoa.plugin */; };
|
CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */; };
|
||||||
CE41672D141FE1E5004F3F0B /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE41672B141FE1E5004F3F0B /* HSSelectableList.m */; };
|
|
||||||
CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
|
CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
|
||||||
CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
|
CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
|
||||||
|
CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4746D214C09C12001A66DE /* PyProblemDialog.m */; };
|
||||||
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5335FB142BBFAF008E5374 /* HSQuicklook.m */; };
|
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5335FB142BBFAF008E5374 /* HSQuicklook.m */; };
|
||||||
CE533603142BC034008E5374 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE533602142BC034008E5374 /* Quartz.framework */; };
|
CE533603142BC034008E5374 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE533602142BC034008E5374 /* Quartz.framework */; };
|
||||||
CE54A87E148046F9008EEA77 /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE54A87D148046F9008EEA77 /* HSColumns.m */; };
|
CE548CC614BF903D00D180CB /* PyPrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */; };
|
||||||
|
CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC514BF903D00D180CB /* PyPrioritizeList.m */; };
|
||||||
|
CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9814C07BCF004CA031 /* PyOutline.m */; };
|
||||||
|
CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9D14C0801F004CA031 /* PySelectableList.m */; };
|
||||||
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; };
|
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; };
|
||||||
CE665B3013225ADD003F5CFB /* ExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */; };
|
CE665B3013225ADD003F5CFB /* ExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */; };
|
||||||
CE665B3313225AF8003F5CFB /* ExtraFairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE665B3113225AF8003F5CFB /* ExtraFairwareReminder.xib */; };
|
CE665B3313225AF8003F5CFB /* ExtraFairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE665B3113225AF8003F5CFB /* ExtraFairwareReminder.xib */; };
|
||||||
@@ -32,9 +41,7 @@
|
|||||||
CE76FDC4111EE37C006618EA /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDBF111EE37C006618EA /* HSOutlineView.m */; };
|
CE76FDC4111EE37C006618EA /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDBF111EE37C006618EA /* HSOutlineView.m */; };
|
||||||
CE76FDC5111EE37C006618EA /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */; };
|
CE76FDC5111EE37C006618EA /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */; };
|
||||||
CE76FDC6111EE37C006618EA /* NSTableViewAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */; };
|
CE76FDC6111EE37C006618EA /* NSTableViewAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */; };
|
||||||
CE76FDCF111EE38E006618EA /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC9111EE38E006618EA /* HSGUIController.m */; };
|
|
||||||
CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */; };
|
CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */; };
|
||||||
CE76FDDF111EE42F006618EA /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDDE111EE42F006618EA /* HSOutline.m */; };
|
|
||||||
CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDF6111EE561006618EA /* NSEventAdditions.m */; };
|
CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDF6111EE561006618EA /* NSEventAdditions.m */; };
|
||||||
CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; };
|
CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; };
|
||||||
CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; };
|
CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; };
|
||||||
@@ -46,19 +53,30 @@
|
|||||||
CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; };
|
CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; };
|
||||||
CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; };
|
CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; };
|
||||||
CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; };
|
CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; };
|
||||||
CE8C53BC117324CE0011B41F /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE8C53BB117324CE0011B41F /* HSTable.m */; };
|
|
||||||
CE91F216113BC22D0010360B /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE91F214113BC22D0010360B /* StatsLabel.m */; };
|
CE91F216113BC22D0010360B /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE91F214113BC22D0010360B /* StatsLabel.m */; };
|
||||||
CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */; };
|
CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */; };
|
||||||
CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */; };
|
CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */; };
|
||||||
CE9777D5141F9D7600C13FB5 /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777D4141F9D7600C13FB5 /* HSPopUpList.m */; };
|
CE9D842A14BE2AE900184165 /* PyExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9D842914BE2AE900184165 /* PyExtraFairwareReminder.m */; };
|
||||||
|
CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22C14C080CF005C31FD /* PyGUIObject.m */; };
|
||||||
|
CE9FC23014C08622005C31FD /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22F14C08622005C31FD /* PyTable.m */; };
|
||||||
|
CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC23214C0866F005C31FD /* PyResultTable.m */; };
|
||||||
CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; };
|
CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; };
|
||||||
CEBE4D74111F0EE1009AAC6D /* HSWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */; };
|
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */; };
|
||||||
|
CEB2AF5614C49AC800F907A9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB2AF5514C49AC800F907A9 /* main.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 */; };
|
||||||
|
CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */; };
|
||||||
|
CEEF2A1E14C0A8480082545A /* PyFairware.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1C14C0A8480082545A /* PyFairware.m */; };
|
||||||
|
CEEF2A3C14C0B9050082545A /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3114C0B9050082545A /* HSColumns.m */; };
|
||||||
|
CEEF2A3D14C0B9050082545A /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3314C0B9050082545A /* HSGUIController.m */; };
|
||||||
|
CEEF2A3E14C0B9050082545A /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3514C0B9050082545A /* HSOutline.m */; };
|
||||||
|
CEEF2A3F14C0B9050082545A /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3714C0B9050082545A /* HSPopUpList.m */; };
|
||||||
|
CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3914C0B9050082545A /* HSSelectableList.m */; };
|
||||||
|
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3B14C0B9050082545A /* HSTable.m */; };
|
||||||
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; };
|
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 */; };
|
||||||
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; };
|
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; };
|
||||||
CEFC7F9F0FC9517500CD5728 /* HSErrorReportWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.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 */; };
|
||||||
CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */; };
|
CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */; };
|
||||||
@@ -75,6 +93,7 @@
|
|||||||
dstSubfolderSpec = 10;
|
dstSubfolderSpec = 10;
|
||||||
files = (
|
files = (
|
||||||
CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */,
|
CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */,
|
||||||
|
CE18004F14BDD854001B6329 /* Python in CopyFiles */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -83,7 +102,6 @@
|
|||||||
/* Begin PBXFileReference section */
|
/* Begin PBXFileReference section */
|
||||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
|
||||||
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
|
|
||||||
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
|
||||||
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
|
||||||
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -116,7 +134,17 @@
|
|||||||
CE112F5F145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
|
CE112F5F145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
CE112F60145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CE112F60145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
CE112F61145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
CE112F61145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = "<group>"; };
|
||||||
|
CE18005014BDD87B001B6329 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = "<group>"; };
|
||||||
CE19BC6111199231007CCEB0 /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
|
CE19BC6111199231007CCEB0 /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = "<group>"; };
|
||||||
|
CE1D091414BE0C6400CA6B8C /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = "<group>"; };
|
||||||
|
CE1D091514BE0C6400CA6B8C /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = "<group>"; };
|
||||||
|
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = "<group>"; };
|
||||||
|
CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = "<group>"; };
|
||||||
|
CE275C5414BF712B00265960 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = "<group>"; };
|
||||||
|
CE275C5514BF712B00265960 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = "<group>"; };
|
||||||
|
CE275C5814BF71DF00265960 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
|
||||||
|
CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = "<group>"; };
|
||||||
CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
|
CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
|
CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE31819A13D85D9B00B6D649 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/about.xib; sourceTree = "<group>"; };
|
CE31819A13D85D9B00B6D649 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
@@ -130,50 +158,43 @@
|
|||||||
CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
|
CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE381CF509915304003581CE /* dg_cocoa.plugin */ = {isa = PBXFileReference; lastKnownFileType = folder; path = dg_cocoa.plugin; sourceTree = SOURCE_ROOT; };
|
CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = "<group>"; };
|
||||||
CE41672A141FE1E5004F3F0B /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
|
CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = "<group>"; };
|
||||||
CE41672B141FE1E5004F3F0B /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = "<group>"; };
|
|
||||||
CE41672C141FE1E5004F3F0B /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = "<group>"; };
|
|
||||||
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
|
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; };
|
||||||
|
CE4746D114C09C12001A66DE /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = "<group>"; };
|
||||||
|
CE4746D214C09C12001A66DE /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = "<group>"; };
|
||||||
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
|
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
|
||||||
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
|
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
|
||||||
CE533602142BC034008E5374 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
|
CE533602142BC034008E5374 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
|
||||||
CE54A87A14804687008EEA77 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
|
CE548CC214BF903D00D180CB /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeDialog.h; sourceTree = "<group>"; };
|
||||||
CE54A87C148046F9008EEA77 /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
|
CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeDialog.m; sourceTree = "<group>"; };
|
||||||
CE54A87D148046F9008EEA77 /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
|
CE548CC414BF903D00D180CB /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeList.h; sourceTree = "<group>"; };
|
||||||
|
CE548CC514BF903D00D180CB /* PyPrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeList.m; sourceTree = "<group>"; };
|
||||||
|
CE587E9714C07BCF004CA031 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
|
||||||
|
CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = "<group>"; };
|
||||||
|
CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
||||||
|
CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = "<group>"; };
|
||||||
CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
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; };
|
||||||
CE647E561173024A006D28BA /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyProblemDialog.h; path = ../base/PyProblemDialog.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE665B2D13225ADD003F5CFB /* ExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExtraFairwareReminder.h; path = ../base/ExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
CE665B2D13225ADD003F5CFB /* ExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExtraFairwareReminder.h; path = ../base/ExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ExtraFairwareReminder.m; path = ../base/ExtraFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ExtraFairwareReminder.m; path = ../base/ExtraFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE665B2F13225ADD003F5CFB /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyExtraFairwareReminder.h; path = ../base/PyExtraFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE665B3213225AF8003F5CFB /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE665B3213225AF8003F5CFB /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE665B3413225B07003F5CFB /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE665B3413225B07003F5CFB /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE6DD4E4124CA3070089A48D /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyResultTable.h; path = ../base/PyResultTable.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; };
|
CE6DD4E5124CA3070089A48D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE6DD4E6124CA3070089A48D /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; };
|
CE6DD4E6124CA3070089A48D /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE6DD545124CAF1F0089A48D /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
|
CE6DD545124CAF1F0089A48D /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE6DD546124CAF1F0089A48D /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; };
|
CE6DD546124CAF1F0089A48D /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = "<group>"; };
|
CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = "<group>"; };
|
||||||
CE6E7407111C997500C350E3 /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDetailsPanel.h; path = ../base/PyDetailsPanel.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE76FDBE111EE37C006618EA /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; };
|
CE76FDBE111EE37C006618EA /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; };
|
||||||
CE76FDBF111EE37C006618EA /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; };
|
CE76FDBF111EE37C006618EA /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; };
|
||||||
CE76FDC0111EE37C006618EA /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; };
|
CE76FDC0111EE37C006618EA /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; };
|
||||||
CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSIndexPathAdditions.m; sourceTree = "<group>"; };
|
CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSIndexPathAdditions.m; sourceTree = "<group>"; };
|
||||||
CE76FDC2111EE37C006618EA /* NSTableViewAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTableViewAdditions.h; sourceTree = "<group>"; };
|
CE76FDC2111EE37C006618EA /* NSTableViewAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTableViewAdditions.h; sourceTree = "<group>"; };
|
||||||
CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = "<group>"; };
|
CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = "<group>"; };
|
||||||
CE76FDC8111EE38E006618EA /* HSGUIController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController.h; sourceTree = "<group>"; };
|
|
||||||
CE76FDC9111EE38E006618EA /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = "<group>"; };
|
|
||||||
CE76FDCD111EE38E006618EA /* PyGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUI.h; sourceTree = "<group>"; };
|
|
||||||
CE76FDCE111EE38E006618EA /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
|
|
||||||
CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryOutline.h; path = ../base/DirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryOutline.h; path = ../base/DirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; };
|
CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE76FDD3111EE3A7006618EA /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDirectoryOutline.h; path = ../base/PyDirectoryOutline.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE76FDDD111EE42F006618EA /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = "<group>"; };
|
|
||||||
CE76FDDE111EE42F006618EA /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; };
|
|
||||||
CE76FDF5111EE561006618EA /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; };
|
CE76FDF5111EE561006618EA /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE76FDF6111EE561006618EA /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; };
|
CE76FDF6111EE561006618EA /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE79638212536C6E008D405B /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyFairware.h; path = ../../cocoalib/PyFairware.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE79638512536C94008D405B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE79638512536C94008D405B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -205,23 +226,23 @@
|
|||||||
CE8113EC12E5CEA800A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; };
|
CE8113EC12E5CEA800A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; };
|
||||||
CE89240614239CC30024CE4E /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = "<group>"; };
|
CE89240614239CC30024CE4E /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = "<group>"; };
|
||||||
CE89240714239CC30024CE4E /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = "<group>"; };
|
CE89240714239CC30024CE4E /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = "<group>"; };
|
||||||
CE89240814239CC30024CE4E /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeDialog.h; path = ../base/PyPrioritizeDialog.h; sourceTree = "<group>"; };
|
|
||||||
CE89240914239CC30024CE4E /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeList.h; path = ../base/PyPrioritizeList.h; sourceTree = "<group>"; };
|
|
||||||
CE8C53B61173248F0011B41F /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
|
|
||||||
CE8C53BB117324CE0011B41F /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
|
|
||||||
CE91F210113BC22D0010360B /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyStatsLabel.h; path = ../base/PyStatsLabel.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CE91F213113BC22D0010360B /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; };
|
CE91F213113BC22D0010360B /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; };
|
||||||
CE91F214113BC22D0010360B /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; };
|
CE91F214113BC22D0010360B /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; };
|
||||||
CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = "<group>"; };
|
CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = "<group>"; };
|
||||||
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = "<group>"; };
|
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = "<group>"; };
|
||||||
CE9777D0141F8CB400C13FB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CE9777D0141F8CB400C13FB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
CE9777D2141F9D6500C13FB5 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
|
CE9D842814BE2AE900184165 /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyExtraFairwareReminder.h; sourceTree = "<group>"; };
|
||||||
CE9777D3141F9D7600C13FB5 /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
|
CE9D842914BE2AE900184165 /* PyExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyExtraFairwareReminder.m; sourceTree = "<group>"; };
|
||||||
CE9777D4141F9D7600C13FB5 /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
|
CE9FC22B14C080CF005C31FD /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = "<group>"; };
|
||||||
|
CE9FC22C14C080CF005C31FD /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = "<group>"; };
|
||||||
|
CE9FC22E14C08622005C31FD /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
|
||||||
|
CE9FC22F14C08622005C31FD /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = "<group>"; };
|
||||||
|
CE9FC23114C0866F005C31FD /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyResultTable.h; sourceTree = "<group>"; };
|
||||||
|
CE9FC23214C0866F005C31FD /* PyResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyResultTable.m; sourceTree = "<group>"; };
|
||||||
CEA175C91461E8E600776591 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
|
CEA175C91461E8E600776591 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
|
||||||
|
CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = "<group>"; };
|
||||||
|
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>"; };
|
||||||
CEBE4D72111F0EE1009AAC6D /* HSWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSWindowController.h; sourceTree = "<group>"; };
|
|
||||||
CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSWindowController.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; };
|
||||||
CECFFF1E13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CECFFF1E13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -254,6 +275,37 @@
|
|||||||
CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
|
CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
|
CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
|
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
|
||||||
|
CEECCD0614C636C900A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD0714C636C900A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD0814C636C900A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
CEECCD0F14C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD1014C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD1114C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD1314C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD1414C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD1514C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CEECCD1D14C6370C00A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuruBase.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A1B14C0A8480082545A /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyFairware.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A1C14C0A8480082545A /* PyFairware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyFairware.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3014C0B9050082545A /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3114C0B9050082545A /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3214C0B9050082545A /* HSGUIController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3314C0B9050082545A /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3414C0B9050082545A /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3514C0B9050082545A /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3614C0B9050082545A /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3714C0B9050082545A /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3814C0B9050082545A /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3914C0B9050082545A /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3A14C0B9050082545A /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = "<group>"; };
|
||||||
|
CEEF2A3B14C0B9050082545A /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
|
||||||
|
CEEF2A4214C0BB430082545A /* Worker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Worker.h; path = ../../cocoalib/Worker.h; sourceTree = "<group>"; };
|
||||||
CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
|
CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
|
CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEF27A9C1423EAD90048ADFA /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
CEF27A9C1423EAD90048ADFA /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
@@ -262,11 +314,8 @@
|
|||||||
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; };
|
||||||
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; };
|
||||||
CEFC7F8C0FC9517500CD5728 /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = ../../cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = ../../cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEFC7F900FC9517500CD5728 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
|
CEFC7F900FC9517500CD5728 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7F910FC9517500CD5728 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
|
CEFC7F910FC9517500CD5728 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7F920FC9517500CD5728 /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = ../../cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEFC7F9A0FC9517500CD5728 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; };
|
CEFC7F9A0FC9517500CD5728 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7F9B0FC9517500CD5728 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; };
|
CEFC7F9B0FC9517500CD5728 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; };
|
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -276,10 +325,8 @@
|
|||||||
CEFC7FB30FC951A700CD5728 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; };
|
CEFC7FB30FC951A700CD5728 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
|
CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7FB60FC951A700CD5728 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = ../base/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
CEFC7FB70FC951A700CD5728 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
CEFC7FB70FC951A700CD5728 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
|
||||||
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
|
||||||
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
|
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@@ -287,6 +334,7 @@
|
|||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
CE18004D14BDD837001B6329 /* Python in Frameworks */,
|
||||||
CE533603142BC034008E5374 /* Quartz.framework in Frameworks */,
|
CE533603142BC034008E5374 /* Quartz.framework in Frameworks */,
|
||||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
|
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
|
||||||
CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */,
|
CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */,
|
||||||
@@ -301,10 +349,8 @@
|
|||||||
children = (
|
children = (
|
||||||
CE381C9509914ACE003581CE /* AppDelegate.h */,
|
CE381C9509914ACE003581CE /* AppDelegate.h */,
|
||||||
CE381C9409914ACE003581CE /* AppDelegate.m */,
|
CE381C9409914ACE003581CE /* AppDelegate.m */,
|
||||||
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */,
|
|
||||||
CE381C9B09914ADF003581CE /* ResultWindow.h */,
|
CE381C9B09914ADF003581CE /* ResultWindow.h */,
|
||||||
CE381C9A09914ADF003581CE /* ResultWindow.m */,
|
CE381C9A09914ADF003581CE /* ResultWindow.m */,
|
||||||
29B97316FDCFA39411CA2CEA /* main.m */,
|
|
||||||
);
|
);
|
||||||
name = DGSE;
|
name = DGSE;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -312,6 +358,7 @@
|
|||||||
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
CE18004C14BDD837001B6329 /* Python */,
|
||||||
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */,
|
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */,
|
||||||
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
|
||||||
CE533602142BC034008E5374 /* Quartz.framework */,
|
CE533602142BC034008E5374 /* Quartz.framework */,
|
||||||
@@ -342,6 +389,7 @@
|
|||||||
children = (
|
children = (
|
||||||
080E96DDFE201D6D7F000001 /* DGSE */,
|
080E96DDFE201D6D7F000001 /* DGSE */,
|
||||||
CEFC7FB00FC9518F00CD5728 /* dgbase */,
|
CEFC7FB00FC9518F00CD5728 /* dgbase */,
|
||||||
|
CE1D091314BE0C6400CA6B8C /* autogen */,
|
||||||
CEFC7F890FC9513600CD5728 /* cocoalib */,
|
CEFC7F890FC9513600CD5728 /* cocoalib */,
|
||||||
29B97317FDCFA39411CA2CEA /* Resources */,
|
29B97317FDCFA39411CA2CEA /* Resources */,
|
||||||
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
29B97323FDCFA39411CA2CEA /* Frameworks */,
|
||||||
@@ -353,9 +401,10 @@
|
|||||||
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
29B97317FDCFA39411CA2CEA /* Resources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */,
|
||||||
|
CE18005014BDD87B001B6329 /* py */,
|
||||||
CEA175C91461E8E600776591 /* locale */,
|
CEA175C91461E8E600776591 /* locale */,
|
||||||
CE073F5409CAE1A3005C1D2F /* help */,
|
CE073F5409CAE1A3005C1D2F /* help */,
|
||||||
CE381CF509915304003581CE /* dg_cocoa.plugin */,
|
|
||||||
CEFC294309C89E0000D9F998 /* images */,
|
CEFC294309C89E0000D9F998 /* images */,
|
||||||
CEEFC0CA10943849001F3A39 /* xib */,
|
CEEFC0CA10943849001F3A39 /* xib */,
|
||||||
CEEB135109C837A2004D2330 /* dupeguru.icns */,
|
CEEB135109C837A2004D2330 /* dupeguru.icns */,
|
||||||
@@ -387,6 +436,48 @@
|
|||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
};
|
};
|
||||||
|
CE1D091314BE0C6400CA6B8C /* autogen */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
CE9FC22B14C080CF005C31FD /* PyGUIObject.h */,
|
||||||
|
CE9FC22C14C080CF005C31FD /* PyGUIObject.m */,
|
||||||
|
CE275C5814BF71DF00265960 /* PyColumns.h */,
|
||||||
|
CE275C5914BF71DF00265960 /* PyColumns.m */,
|
||||||
|
CE587E9714C07BCF004CA031 /* PyOutline.h */,
|
||||||
|
CE587E9814C07BCF004CA031 /* PyOutline.m */,
|
||||||
|
CE587E9C14C0801F004CA031 /* PySelectableList.h */,
|
||||||
|
CE587E9D14C0801F004CA031 /* PySelectableList.m */,
|
||||||
|
CE9FC22E14C08622005C31FD /* PyTable.h */,
|
||||||
|
CE9FC22F14C08622005C31FD /* PyTable.m */,
|
||||||
|
CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */,
|
||||||
|
CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */,
|
||||||
|
CE9D842814BE2AE900184165 /* PyExtraFairwareReminder.h */,
|
||||||
|
CE9D842914BE2AE900184165 /* PyExtraFairwareReminder.m */,
|
||||||
|
CE275C5414BF712B00265960 /* PyDirectoryOutline.h */,
|
||||||
|
CE275C5514BF712B00265960 /* PyDirectoryOutline.m */,
|
||||||
|
CE548CC214BF903D00D180CB /* PyPrioritizeDialog.h */,
|
||||||
|
CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */,
|
||||||
|
CE548CC414BF903D00D180CB /* PyPrioritizeList.h */,
|
||||||
|
CE548CC514BF903D00D180CB /* PyPrioritizeList.m */,
|
||||||
|
CE4746D114C09C12001A66DE /* PyProblemDialog.h */,
|
||||||
|
CE4746D214C09C12001A66DE /* PyProblemDialog.m */,
|
||||||
|
CE9FC23114C0866F005C31FD /* PyResultTable.h */,
|
||||||
|
CE9FC23214C0866F005C31FD /* PyResultTable.m */,
|
||||||
|
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */,
|
||||||
|
CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */,
|
||||||
|
CE1D091414BE0C6400CA6B8C /* ObjP.h */,
|
||||||
|
CE1D091514BE0C6400CA6B8C /* ObjP.m */,
|
||||||
|
CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */,
|
||||||
|
CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */,
|
||||||
|
CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */,
|
||||||
|
CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */,
|
||||||
|
CEEF2A1B14C0A8480082545A /* PyFairware.h */,
|
||||||
|
CEEF2A1C14C0A8480082545A /* PyFairware.m */,
|
||||||
|
);
|
||||||
|
name = autogen;
|
||||||
|
path = ../autogen;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
CE76FDBD111EE37C006618EA /* views */ = {
|
CE76FDBD111EE37C006618EA /* views */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -406,38 +497,23 @@
|
|||||||
CE76FDC7111EE38E006618EA /* controllers */ = {
|
CE76FDC7111EE38E006618EA /* controllers */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
CE54A87C148046F9008EEA77 /* HSColumns.h */,
|
CEEF2A3014C0B9050082545A /* HSColumns.h */,
|
||||||
CE54A87D148046F9008EEA77 /* HSColumns.m */,
|
CEEF2A3114C0B9050082545A /* HSColumns.m */,
|
||||||
CEBE4D72111F0EE1009AAC6D /* HSWindowController.h */,
|
CEEF2A3214C0B9050082545A /* HSGUIController.h */,
|
||||||
CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */,
|
CEEF2A3314C0B9050082545A /* HSGUIController.m */,
|
||||||
CE76FDDD111EE42F006618EA /* HSOutline.h */,
|
CEEF2A3414C0B9050082545A /* HSOutline.h */,
|
||||||
CE76FDDE111EE42F006618EA /* HSOutline.m */,
|
CEEF2A3514C0B9050082545A /* HSOutline.m */,
|
||||||
CE76FDC8111EE38E006618EA /* HSGUIController.h */,
|
CEEF2A3614C0B9050082545A /* HSPopUpList.h */,
|
||||||
CE76FDC9111EE38E006618EA /* HSGUIController.m */,
|
CEEF2A3714C0B9050082545A /* HSPopUpList.m */,
|
||||||
CE41672C141FE1E5004F3F0B /* HSTable.h */,
|
CEEF2A3814C0B9050082545A /* HSSelectableList.h */,
|
||||||
CE8C53BB117324CE0011B41F /* HSTable.m */,
|
CEEF2A3914C0B9050082545A /* HSSelectableList.m */,
|
||||||
CE9777D3141F9D7600C13FB5 /* HSPopUpList.h */,
|
CEEF2A3A14C0B9050082545A /* HSTable.h */,
|
||||||
CE9777D4141F9D7600C13FB5 /* HSPopUpList.m */,
|
CEEF2A3B14C0B9050082545A /* HSTable.m */,
|
||||||
CE41672A141FE1E5004F3F0B /* HSSelectableList.h */,
|
|
||||||
CE41672B141FE1E5004F3F0B /* HSSelectableList.m */,
|
|
||||||
);
|
);
|
||||||
name = controllers;
|
name = controllers;
|
||||||
path = ../../cocoalib/controllers;
|
path = ../../cocoalib/controllers;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
};
|
};
|
||||||
CE76FDCC111EE38E006618EA /* proxies */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
CE54A87A14804687008EEA77 /* PyColumns.h */,
|
|
||||||
CE76FDCD111EE38E006618EA /* PyGUI.h */,
|
|
||||||
CE76FDCE111EE38E006618EA /* PyOutline.h */,
|
|
||||||
CE8C53B61173248F0011B41F /* PyTable.h */,
|
|
||||||
CE9777D2141F9D6500C13FB5 /* PySelectableList.h */,
|
|
||||||
);
|
|
||||||
name = proxies;
|
|
||||||
path = ../../cocoalib/proxies;
|
|
||||||
sourceTree = SOURCE_ROOT;
|
|
||||||
};
|
|
||||||
CEEFC0CA10943849001F3A39 /* xib */ = {
|
CEEFC0CA10943849001F3A39 /* xib */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -467,26 +543,22 @@
|
|||||||
CE76FDF5111EE561006618EA /* NSEventAdditions.h */,
|
CE76FDF5111EE561006618EA /* NSEventAdditions.h */,
|
||||||
CE76FDF6111EE561006618EA /* NSEventAdditions.m */,
|
CE76FDF6111EE561006618EA /* NSEventAdditions.m */,
|
||||||
CE76FDC7111EE38E006618EA /* controllers */,
|
CE76FDC7111EE38E006618EA /* controllers */,
|
||||||
CE76FDCC111EE38E006618EA /* proxies */,
|
|
||||||
CE76FDBD111EE37C006618EA /* views */,
|
CE76FDBD111EE37C006618EA /* views */,
|
||||||
CE19BC5F11199231007CCEB0 /* xib */,
|
CE19BC5F11199231007CCEB0 /* xib */,
|
||||||
CEB57990146ADC5100EDF7D7 /* HSConsts.h */,
|
CEB57990146ADC5100EDF7D7 /* HSConsts.h */,
|
||||||
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */,
|
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */,
|
||||||
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */,
|
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */,
|
||||||
CEFC7F8C0FC9517500CD5728 /* HSErrorReportWindow.h */,
|
|
||||||
CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */,
|
|
||||||
CE79638A12536F4E008D405B /* HSFairwareReminder.h */,
|
CE79638A12536F4E008D405B /* HSFairwareReminder.h */,
|
||||||
CE79638B12536F4E008D405B /* HSFairwareReminder.m */,
|
CE79638B12536F4E008D405B /* HSFairwareReminder.m */,
|
||||||
CE79638212536C6E008D405B /* PyFairware.h */,
|
|
||||||
CE27D3C212CCA43800859E67 /* HSAboutBox.h */,
|
CE27D3C212CCA43800859E67 /* HSAboutBox.h */,
|
||||||
CE27D3C312CCA43800859E67 /* HSAboutBox.m */,
|
CE27D3C312CCA43800859E67 /* HSAboutBox.m */,
|
||||||
CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */,
|
CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */,
|
||||||
CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */,
|
CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */,
|
||||||
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */,
|
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */,
|
||||||
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */,
|
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */,
|
||||||
|
CEEF2A4214C0BB430082545A /* Worker.h */,
|
||||||
CEFC7F900FC9517500CD5728 /* ProgressController.h */,
|
CEFC7F900FC9517500CD5728 /* ProgressController.h */,
|
||||||
CEFC7F910FC9517500CD5728 /* ProgressController.m */,
|
CEFC7F910FC9517500CD5728 /* ProgressController.m */,
|
||||||
CEFC7F920FC9517500CD5728 /* PyApp.h */,
|
|
||||||
CEFC7F9A0FC9517500CD5728 /* Utils.h */,
|
CEFC7F9A0FC9517500CD5728 /* Utils.h */,
|
||||||
CEFC7F9B0FC9517500CD5728 /* Utils.m */,
|
CEFC7F9B0FC9517500CD5728 /* Utils.m */,
|
||||||
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */,
|
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */,
|
||||||
@@ -498,15 +570,12 @@
|
|||||||
CEFC7FB00FC9518F00CD5728 /* dgbase */ = {
|
CEFC7FB00FC9518F00CD5728 /* dgbase */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
CE6DD4E4124CA3070089A48D /* PyResultTable.h */,
|
|
||||||
CE6DD4E5124CA3070089A48D /* ResultTable.h */,
|
CE6DD4E5124CA3070089A48D /* ResultTable.h */,
|
||||||
CE6DD4E6124CA3070089A48D /* ResultTable.m */,
|
CE6DD4E6124CA3070089A48D /* ResultTable.m */,
|
||||||
CE91F210113BC22D0010360B /* PyStatsLabel.h */,
|
|
||||||
CE91F213113BC22D0010360B /* StatsLabel.h */,
|
CE91F213113BC22D0010360B /* StatsLabel.h */,
|
||||||
CE91F214113BC22D0010360B /* StatsLabel.m */,
|
CE91F214113BC22D0010360B /* StatsLabel.m */,
|
||||||
CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */,
|
CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */,
|
||||||
CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */,
|
CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */,
|
||||||
CE76FDD3111EE3A7006618EA /* PyDirectoryOutline.h */,
|
|
||||||
CEFC7FB10FC951A700CD5728 /* AppDelegate.h */,
|
CEFC7FB10FC951A700CD5728 /* AppDelegate.h */,
|
||||||
CEFC7FB20FC951A700CD5728 /* AppDelegate.m */,
|
CEFC7FB20FC951A700CD5728 /* AppDelegate.m */,
|
||||||
CEFC7FB30FC951A700CD5728 /* Consts.h */,
|
CEFC7FB30FC951A700CD5728 /* Consts.h */,
|
||||||
@@ -516,20 +585,15 @@
|
|||||||
CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */,
|
CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */,
|
||||||
CE665B2D13225ADD003F5CFB /* ExtraFairwareReminder.h */,
|
CE665B2D13225ADD003F5CFB /* ExtraFairwareReminder.h */,
|
||||||
CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */,
|
CE665B2E13225ADD003F5CFB /* ExtraFairwareReminder.m */,
|
||||||
CEFC7FB60FC951A700CD5728 /* PyDupeGuru.h */,
|
|
||||||
CE6E7407111C997500C350E3 /* PyDetailsPanel.h */,
|
|
||||||
CEFC7FB70FC951A700CD5728 /* ResultWindow.h */,
|
CEFC7FB70FC951A700CD5728 /* ResultWindow.h */,
|
||||||
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */,
|
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */,
|
||||||
CE647E541173024A006D28BA /* ProblemDialog.h */,
|
CE647E541173024A006D28BA /* ProblemDialog.h */,
|
||||||
CE647E551173024A006D28BA /* ProblemDialog.m */,
|
CE647E551173024A006D28BA /* ProblemDialog.m */,
|
||||||
CE647E561173024A006D28BA /* PyProblemDialog.h */,
|
|
||||||
CE665B2F13225ADD003F5CFB /* PyExtraFairwareReminder.h */,
|
|
||||||
CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */,
|
CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */,
|
||||||
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */,
|
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */,
|
||||||
CE89240814239CC30024CE4E /* PyPrioritizeDialog.h */,
|
|
||||||
CE89240614239CC30024CE4E /* PrioritizeList.h */,
|
CE89240614239CC30024CE4E /* PrioritizeList.h */,
|
||||||
CE89240714239CC30024CE4E /* PrioritizeList.m */,
|
CE89240714239CC30024CE4E /* PrioritizeList.m */,
|
||||||
CE89240914239CC30024CE4E /* PyPrioritizeList.h */,
|
CEB2AF5514C49AC800F907A9 /* main.m */,
|
||||||
);
|
);
|
||||||
name = dgbase;
|
name = dgbase;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -582,6 +646,7 @@
|
|||||||
it,
|
it,
|
||||||
hy,
|
hy,
|
||||||
ru,
|
ru,
|
||||||
|
uk,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -597,7 +662,6 @@
|
|||||||
isa = PBXResourcesBuildPhase;
|
isa = PBXResourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */,
|
|
||||||
CE073F6309CAE1A3005C1D2F /* help in Resources */,
|
CE073F6309CAE1A3005C1D2F /* help in Resources */,
|
||||||
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */,
|
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */,
|
||||||
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */,
|
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */,
|
||||||
@@ -616,6 +680,8 @@
|
|||||||
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */,
|
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */,
|
||||||
CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */,
|
CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */,
|
||||||
CEA175CA1461E8E600776591 /* locale in Resources */,
|
CEA175CA1461E8E600776591 /* locale in Resources */,
|
||||||
|
CE18005114BDD87B001B6329 /* py in Resources */,
|
||||||
|
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -626,11 +692,9 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
8D11072D0486CEB800E47090 /* main.m in Sources */,
|
|
||||||
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */,
|
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */,
|
||||||
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */,
|
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */,
|
||||||
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */,
|
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */,
|
||||||
CEFC7F9F0FC9517500CD5728 /* HSErrorReportWindow.m in Sources */,
|
|
||||||
CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */,
|
CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */,
|
||||||
CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */,
|
CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */,
|
||||||
CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */,
|
CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */,
|
||||||
@@ -641,14 +705,10 @@
|
|||||||
CE76FDC4111EE37C006618EA /* HSOutlineView.m in Sources */,
|
CE76FDC4111EE37C006618EA /* HSOutlineView.m in Sources */,
|
||||||
CE76FDC5111EE37C006618EA /* NSIndexPathAdditions.m in Sources */,
|
CE76FDC5111EE37C006618EA /* NSIndexPathAdditions.m in Sources */,
|
||||||
CE76FDC6111EE37C006618EA /* NSTableViewAdditions.m in Sources */,
|
CE76FDC6111EE37C006618EA /* NSTableViewAdditions.m in Sources */,
|
||||||
CE76FDCF111EE38E006618EA /* HSGUIController.m in Sources */,
|
|
||||||
CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */,
|
CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */,
|
||||||
CE76FDDF111EE42F006618EA /* HSOutline.m in Sources */,
|
|
||||||
CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */,
|
CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */,
|
||||||
CEBE4D74111F0EE1009AAC6D /* HSWindowController.m in Sources */,
|
|
||||||
CE91F216113BC22D0010360B /* StatsLabel.m in Sources */,
|
CE91F216113BC22D0010360B /* StatsLabel.m in Sources */,
|
||||||
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */,
|
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */,
|
||||||
CE8C53BC117324CE0011B41F /* HSTable.m in Sources */,
|
|
||||||
CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */,
|
CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */,
|
||||||
CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */,
|
CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */,
|
||||||
CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */,
|
CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */,
|
||||||
@@ -656,11 +716,32 @@
|
|||||||
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */,
|
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */,
|
||||||
CE665B3013225ADD003F5CFB /* ExtraFairwareReminder.m in Sources */,
|
CE665B3013225ADD003F5CFB /* ExtraFairwareReminder.m in Sources */,
|
||||||
CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */,
|
CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */,
|
||||||
CE9777D5141F9D7600C13FB5 /* HSPopUpList.m in Sources */,
|
|
||||||
CE41672D141FE1E5004F3F0B /* HSSelectableList.m in Sources */,
|
|
||||||
CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */,
|
CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */,
|
||||||
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */,
|
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */,
|
||||||
CE54A87E148046F9008EEA77 /* HSColumns.m in Sources */,
|
CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */,
|
||||||
|
CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */,
|
||||||
|
CE9D842A14BE2AE900184165 /* PyExtraFairwareReminder.m in Sources */,
|
||||||
|
CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */,
|
||||||
|
CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */,
|
||||||
|
CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */,
|
||||||
|
CE548CC614BF903D00D180CB /* PyPrioritizeDialog.m in Sources */,
|
||||||
|
CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */,
|
||||||
|
CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */,
|
||||||
|
CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */,
|
||||||
|
CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */,
|
||||||
|
CE9FC23014C08622005C31FD /* PyTable.m in Sources */,
|
||||||
|
CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */,
|
||||||
|
CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */,
|
||||||
|
CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */,
|
||||||
|
CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */,
|
||||||
|
CEEF2A1E14C0A8480082545A /* PyFairware.m in Sources */,
|
||||||
|
CEEF2A3C14C0B9050082545A /* HSColumns.m in Sources */,
|
||||||
|
CEEF2A3D14C0B9050082545A /* HSGUIController.m in Sources */,
|
||||||
|
CEEF2A3E14C0B9050082545A /* HSOutline.m in Sources */,
|
||||||
|
CEEF2A3F14C0B9050082545A /* HSPopUpList.m in Sources */,
|
||||||
|
CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */,
|
||||||
|
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */,
|
||||||
|
CEB2AF5614C49AC800F907A9 /* main.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -678,6 +759,7 @@
|
|||||||
CE7A6985146442340007D927 /* it */,
|
CE7A6985146442340007D927 /* it */,
|
||||||
CE00BBD014910CA3006A717C /* hy */,
|
CE00BBD014910CA3006A717C /* hy */,
|
||||||
CED638D514B38CC800B88D00 /* ru */,
|
CED638D514B38CC800B88D00 /* ru */,
|
||||||
|
CEECCD0614C636C900A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -693,6 +775,7 @@
|
|||||||
CE7A6986146442340007D927 /* it */,
|
CE7A6986146442340007D927 /* it */,
|
||||||
CE00BBD114910CA3006A717C /* hy */,
|
CE00BBD114910CA3006A717C /* hy */,
|
||||||
CED638D614B38CC800B88D00 /* ru */,
|
CED638D614B38CC800B88D00 /* ru */,
|
||||||
|
CEECCD0714C636C900A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -708,6 +791,7 @@
|
|||||||
CE7A6979146442160007D927 /* it */,
|
CE7A6979146442160007D927 /* it */,
|
||||||
CE00BBBF14910C5E006A717C /* hy */,
|
CE00BBBF14910C5E006A717C /* hy */,
|
||||||
CED638DE14B38CEC00B88D00 /* ru */,
|
CED638DE14B38CEC00B88D00 /* ru */,
|
||||||
|
CEECCD1114C6370000A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = ExtraFairwareReminder.xib;
|
name = ExtraFairwareReminder.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -723,6 +807,7 @@
|
|||||||
CE7A6987146442340007D927 /* it */,
|
CE7A6987146442340007D927 /* it */,
|
||||||
CE00BBD214910CA3006A717C /* hy */,
|
CE00BBD214910CA3006A717C /* hy */,
|
||||||
CED638D714B38CC800B88D00 /* ru */,
|
CED638D714B38CC800B88D00 /* ru */,
|
||||||
|
CEECCD0814C636C900A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -739,6 +824,7 @@
|
|||||||
CE7A6977146442160007D927 /* it */,
|
CE7A6977146442160007D927 /* it */,
|
||||||
CE00BBBD14910C5E006A717C /* hy */,
|
CE00BBBD14910C5E006A717C /* hy */,
|
||||||
CED638DC14B38CEC00B88D00 /* ru */,
|
CED638DC14B38CEC00B88D00 /* ru */,
|
||||||
|
CEECCD0F14C6370000A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -754,6 +840,7 @@
|
|||||||
CE7A6978146442160007D927 /* it */,
|
CE7A6978146442160007D927 /* it */,
|
||||||
CE00BBBE14910C5E006A717C /* hy */,
|
CE00BBBE14910C5E006A717C /* hy */,
|
||||||
CED638DD14B38CEC00B88D00 /* ru */,
|
CED638DD14B38CEC00B88D00 /* ru */,
|
||||||
|
CEECCD1014C6370000A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -769,6 +856,7 @@
|
|||||||
CE7A697A146442160007D927 /* it */,
|
CE7A697A146442160007D927 /* it */,
|
||||||
CE00BBC014910C5E006A717C /* hy */,
|
CE00BBC014910C5E006A717C /* hy */,
|
||||||
CED638DF14B38CEC00B88D00 /* ru */,
|
CED638DF14B38CEC00B88D00 /* ru */,
|
||||||
|
CEECCD1214C6370000A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -784,6 +872,7 @@
|
|||||||
CE7A697C146442160007D927 /* it */,
|
CE7A697C146442160007D927 /* it */,
|
||||||
CE00BBC214910C5E006A717C /* hy */,
|
CE00BBC214910C5E006A717C /* hy */,
|
||||||
CED638E114B38CEC00B88D00 /* ru */,
|
CED638E114B38CEC00B88D00 /* ru */,
|
||||||
|
CEECCD1414C6370000A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -799,6 +888,7 @@
|
|||||||
CE7A697D146442160007D927 /* it */,
|
CE7A697D146442160007D927 /* it */,
|
||||||
CE00BBC314910C5E006A717C /* hy */,
|
CE00BBC314910C5E006A717C /* hy */,
|
||||||
CED638E214B38CEC00B88D00 /* ru */,
|
CED638E214B38CEC00B88D00 /* ru */,
|
||||||
|
CEECCD1514C6370000A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -814,6 +904,7 @@
|
|||||||
CE7A698B1464425A0007D927 /* it */,
|
CE7A698B1464425A0007D927 /* it */,
|
||||||
CE00BBCC14910C72006A717C /* hy */,
|
CE00BBCC14910C72006A717C /* hy */,
|
||||||
CED638EA14B38CF800B88D00 /* ru */,
|
CED638EA14B38CF800B88D00 /* ru */,
|
||||||
|
CEECCD1D14C6370C00A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -829,6 +920,7 @@
|
|||||||
CE7A6971146442010007D927 /* it */,
|
CE7A6971146442010007D927 /* it */,
|
||||||
CE00BBCE14910C8E006A717C /* hy */,
|
CE00BBCE14910C8E006A717C /* hy */,
|
||||||
CED638EC14B38D0900B88D00 /* ru */,
|
CED638EC14B38D0900B88D00 /* ru */,
|
||||||
|
CEECCD0D14C636F100A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -844,6 +936,7 @@
|
|||||||
CE7A697B146442160007D927 /* it */,
|
CE7A697B146442160007D927 /* it */,
|
||||||
CE00BBC114910C5E006A717C /* hy */,
|
CE00BBC114910C5E006A717C /* hy */,
|
||||||
CED638E014B38CEC00B88D00 /* ru */,
|
CED638E014B38CEC00B88D00 /* ru */,
|
||||||
|
CEECCD1314C6370000A2F3A0 /* uk */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -870,8 +963,8 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
GCC_C_LANGUAGE_STANDARD = c99;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\"";
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
SDKROOT = macosx10.6;
|
SDKROOT = macosx10.6;
|
||||||
};
|
};
|
||||||
@@ -882,8 +975,8 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
|
||||||
GCC_C_LANGUAGE_STANDARD = c99;
|
GCC_C_LANGUAGE_STANDARD = c99;
|
||||||
GCC_WARN_ABOUT_RETURN_TYPE = YES;
|
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\"";
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
MACOSX_DEPLOYMENT_TARGET = 10.6;
|
||||||
SDKROOT = macosx10.6;
|
SDKROOT = macosx10.6;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
|
||||||
|
|
||||||
This software is licensed under the "BSD" License as described in the "LICENSE" file,
|
|
||||||
which should be included with this package. The terms are also available at
|
|
||||||
http://www.hardcoded.net/licenses/bsd_license
|
|
||||||
*/
|
|
||||||
|
|
||||||
#import <Cocoa/Cocoa.h>
|
|
||||||
#import "Utils.h"
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
|
|
||||||
[Utils setPluginName:@"dg_cocoa"];
|
|
||||||
NSString *pluginPath = [[NSBundle mainBundle]
|
|
||||||
pathForResource:@"dg_cocoa"
|
|
||||||
ofType:@"plugin"];
|
|
||||||
NSBundle *pluginBundle = [NSBundle bundleWithPath:pluginPath];
|
|
||||||
[pluginBundle load];
|
|
||||||
[pool release];
|
|
||||||
return NSApplicationMain(argc, (const char **) argv);
|
|
||||||
}
|
|
||||||
18
core/app.py
18
core/app.py
@@ -24,6 +24,10 @@ 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.details_panel import DetailsPanel
|
||||||
|
from .gui.directory_tree import DirectoryTree
|
||||||
|
from .gui.problem_dialog import ProblemDialog
|
||||||
|
from .gui.stats_label import StatsLabel
|
||||||
|
|
||||||
HAD_FIRST_LAUNCH_PREFERENCE = 'HadFirstLaunch'
|
HAD_FIRST_LAUNCH_PREFERENCE = 'HadFirstLaunch'
|
||||||
DEBUG_MODE_PREFERENCE = 'DebugMode'
|
DEBUG_MODE_PREFERENCE = 'DebugMode'
|
||||||
@@ -100,7 +104,16 @@ class DupeGuru(RegistrableApplication, Broadcaster):
|
|||||||
'ignore_hardlink_matches': False,
|
'ignore_hardlink_matches': False,
|
||||||
}
|
}
|
||||||
self.selected_dupes = []
|
self.selected_dupes = []
|
||||||
# subclasses must create self.result_table
|
self.details_panel = DetailsPanel(self)
|
||||||
|
self.directory_tree = DirectoryTree(self)
|
||||||
|
self.problem_dialog = ProblemDialog(self)
|
||||||
|
self.stats_label = StatsLabel(self)
|
||||||
|
self.result_table = self._create_result_table()
|
||||||
|
children = [self.result_table, self.directory_tree, self.problem_dialog, self.stats_label,
|
||||||
|
self.details_panel]
|
||||||
|
for child in children:
|
||||||
|
child.connect()
|
||||||
|
# subclasses must create and connect self.result_table
|
||||||
|
|
||||||
#--- Virtual
|
#--- Virtual
|
||||||
def _get_display_info(self, dupe, group, delta):
|
def _get_display_info(self, dupe, group, delta):
|
||||||
@@ -115,6 +128,9 @@ class DupeGuru(RegistrableApplication, Broadcaster):
|
|||||||
def _prioritization_categories(self):
|
def _prioritization_categories(self):
|
||||||
raise NotImplementedError()
|
raise NotImplementedError()
|
||||||
|
|
||||||
|
def _create_result_table(self):
|
||||||
|
raise NotImplementedError()
|
||||||
|
|
||||||
#--- Private
|
#--- Private
|
||||||
def _do_delete(self, j, replace_with_hardlinks):
|
def _do_delete(self, j, replace_with_hardlinks):
|
||||||
def op(dupe):
|
def op(dupe):
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Created By: Virgil Dupras
|
# Created By: Virgil Dupras
|
||||||
# Created On: 2010-02-06
|
# Created On: 2010-02-06
|
||||||
# Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
# Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
||||||
@@ -8,12 +7,12 @@
|
|||||||
# http://www.hardcoded.net/licenses/bsd_license
|
# http://www.hardcoded.net/licenses/bsd_license
|
||||||
|
|
||||||
from hscommon.notify import Listener
|
from hscommon.notify import Listener
|
||||||
|
from hscommon.gui.base import NoopGUI
|
||||||
|
|
||||||
class GUIObject(Listener):
|
class GUIObject(Listener):
|
||||||
def __init__(self, view, app):
|
def __init__(self, app):
|
||||||
Listener.__init__(self, app)
|
Listener.__init__(self, app)
|
||||||
if view is not None:
|
self.view = NoopGUI()
|
||||||
self.view = view
|
|
||||||
self.app = app
|
self.app = app
|
||||||
|
|
||||||
def directories_changed(self):
|
def directories_changed(self):
|
||||||
|
|||||||
@@ -9,8 +9,8 @@
|
|||||||
from .base import GUIObject
|
from .base import GUIObject
|
||||||
|
|
||||||
class DetailsPanel(GUIObject):
|
class DetailsPanel(GUIObject):
|
||||||
def __init__(self, view, app):
|
def __init__(self, app):
|
||||||
GUIObject.__init__(self, view, app)
|
GUIObject.__init__(self, app)
|
||||||
self._table = []
|
self._table = []
|
||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
|
|||||||
@@ -59,8 +59,8 @@ class DirectoryTree(GUIObject, Tree):
|
|||||||
# refresh()
|
# refresh()
|
||||||
# refresh_states() # when only states label need to be refreshed
|
# refresh_states() # when only states label need to be refreshed
|
||||||
#
|
#
|
||||||
def __init__(self, view, app):
|
def __init__(self, app):
|
||||||
GUIObject.__init__(self, view, app)
|
GUIObject.__init__(self, app)
|
||||||
Tree.__init__(self)
|
Tree.__init__(self)
|
||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ class PrioritizationList(GUISelectableList):
|
|||||||
self._refresh_contents()
|
self._refresh_contents()
|
||||||
|
|
||||||
class PrioritizeDialog:
|
class PrioritizeDialog:
|
||||||
def __init__(self, view, app):
|
def __init__(self, app):
|
||||||
self.app = app
|
self.app = app
|
||||||
self.categories = [cat(app.results) for cat in app._prioritization_categories()]
|
self.categories = [cat(app.results) for cat in app._prioritization_categories()]
|
||||||
self.category_list = CriterionCategoryList(self)
|
self.category_list = CriterionCategoryList(self)
|
||||||
|
|||||||
@@ -9,12 +9,15 @@
|
|||||||
from hscommon.notify import Broadcaster
|
from hscommon.notify import Broadcaster
|
||||||
|
|
||||||
from .base import GUIObject
|
from .base import GUIObject
|
||||||
|
from .problem_table import ProblemTable
|
||||||
|
|
||||||
class ProblemDialog(GUIObject, Broadcaster):
|
class ProblemDialog(GUIObject, Broadcaster):
|
||||||
def __init__(self, view, app):
|
def __init__(self, app):
|
||||||
GUIObject.__init__(self, view, app)
|
GUIObject.__init__(self, app)
|
||||||
Broadcaster.__init__(self)
|
Broadcaster.__init__(self)
|
||||||
self._selected_dupe = None
|
self._selected_dupe = None
|
||||||
|
self.problem_table = ProblemTable(self)
|
||||||
|
self.problem_table.connect()
|
||||||
|
|
||||||
def reveal_selected_dupe(self):
|
def reveal_selected_dupe(self):
|
||||||
if self._selected_dupe is not None:
|
if self._selected_dupe is not None:
|
||||||
|
|||||||
@@ -19,11 +19,11 @@ class ProblemTable(GUITable, Listener):
|
|||||||
Column('msg', coltr("Error Message")),
|
Column('msg', coltr("Error Message")),
|
||||||
]
|
]
|
||||||
|
|
||||||
def __init__(self, view, problem_dialog):
|
def __init__(self, problem_dialog):
|
||||||
GUITable.__init__(self)
|
GUITable.__init__(self)
|
||||||
Listener.__init__(self, problem_dialog)
|
Listener.__init__(self, problem_dialog)
|
||||||
self.columns = Columns(self)
|
self.columns = Columns(self)
|
||||||
self.view = view
|
self.view = None
|
||||||
self.dialog = problem_dialog
|
self.dialog = problem_dialog
|
||||||
|
|
||||||
#--- Override
|
#--- Override
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ class DupeRow(Row):
|
|||||||
|
|
||||||
class ResultTable(GUIObject, GUITable):
|
class ResultTable(GUIObject, GUITable):
|
||||||
def __init__(self, app):
|
def __init__(self, app):
|
||||||
GUIObject.__init__(self, None, app)
|
GUIObject.__init__(self, app)
|
||||||
GUITable.__init__(self)
|
GUITable.__init__(self)
|
||||||
self.columns = Columns(self, prefaccess=app, savename='ResultTable')
|
self.columns = Columns(self, prefaccess=app, savename='ResultTable')
|
||||||
self._power_marker = False
|
self._power_marker = False
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Created By: Virgil Dupras
|
# Created By: Virgil Dupras
|
||||||
# Created On: 2010-02-11
|
# Created On: 2010-02-11
|
||||||
# Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
# Copyright 2011 Hardcoded Software (http://www.hardcoded.net)
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '6.2.0'
|
__version__ = '6.2.1'
|
||||||
__appname__ = 'dupeGuru Music Edition'
|
__appname__ = 'dupeGuru Music Edition'
|
||||||
@@ -23,7 +23,6 @@ class DupeGuru(DupeGuruBase):
|
|||||||
DupeGuruBase.__init__(self, view, appdata)
|
DupeGuruBase.__init__(self, view, appdata)
|
||||||
self.scanner = scanner.ScannerME()
|
self.scanner = scanner.ScannerME()
|
||||||
self.directories.fileclasses = [fs.MusicFile]
|
self.directories.fileclasses = [fs.MusicFile]
|
||||||
self.result_table = ResultTable(self)
|
|
||||||
|
|
||||||
def _get_display_info(self, dupe, group, delta):
|
def _get_display_info(self, dupe, group, delta):
|
||||||
size = dupe.size
|
size = dupe.size
|
||||||
@@ -87,3 +86,5 @@ class DupeGuru(DupeGuruBase):
|
|||||||
def _prioritization_categories(self):
|
def _prioritization_categories(self):
|
||||||
return prioritize.all_categories()
|
return prioritize.all_categories()
|
||||||
|
|
||||||
|
def _create_result_table(self):
|
||||||
|
return ResultTable(self)
|
||||||
|
|||||||
@@ -30,7 +30,6 @@ class DupeGuru(DupeGuruBase):
|
|||||||
DupeGuruBase.__init__(self, view, appdata)
|
DupeGuruBase.__init__(self, view, appdata)
|
||||||
self.scanner = ScannerPE()
|
self.scanner = ScannerPE()
|
||||||
self.scanner.cache_path = op.join(self.appdata, 'cached_pictures.db')
|
self.scanner.cache_path = op.join(self.appdata, 'cached_pictures.db')
|
||||||
self.result_table = ResultTable(self)
|
|
||||||
|
|
||||||
def _get_display_info(self, dupe, group, delta):
|
def _get_display_info(self, dupe, group, delta):
|
||||||
size = dupe.size
|
size = dupe.size
|
||||||
@@ -72,7 +71,7 @@ class DupeGuru(DupeGuruBase):
|
|||||||
r = cmp_value(dupe, key)
|
r = cmp_value(dupe, key)
|
||||||
if delta and (key in self.result_table.DELTA_COLUMNS):
|
if delta and (key in self.result_table.DELTA_COLUMNS):
|
||||||
ref_value = cmp_value(get_group().ref, key)
|
ref_value = cmp_value(get_group().ref, key)
|
||||||
if key == 4: # dimensions
|
if key == 'dimensions':
|
||||||
r = get_delta_dimensions(r, ref_value)
|
r = get_delta_dimensions(r, ref_value)
|
||||||
else:
|
else:
|
||||||
r -= ref_value
|
r -= ref_value
|
||||||
@@ -91,3 +90,5 @@ class DupeGuru(DupeGuruBase):
|
|||||||
def _prioritization_categories(self):
|
def _prioritization_categories(self):
|
||||||
return prioritize.all_categories()
|
return prioritize.all_categories()
|
||||||
|
|
||||||
|
def _create_result_table(self):
|
||||||
|
return ResultTable(self)
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '3.3.1'
|
__version__ = '3.3.2'
|
||||||
__appname__ = 'dupeGuru'
|
__appname__ = 'dupeGuru'
|
||||||
|
|||||||
@@ -17,10 +17,6 @@ class DupeGuru(DupeGuruBase):
|
|||||||
NAME = __appname__
|
NAME = __appname__
|
||||||
METADATA_TO_READ = ['size', 'mtime']
|
METADATA_TO_READ = ['size', 'mtime']
|
||||||
|
|
||||||
def __init__(self, view, appdata):
|
|
||||||
DupeGuruBase.__init__(self, view, appdata)
|
|
||||||
self.result_table = ResultTable(self)
|
|
||||||
|
|
||||||
def _get_display_info(self, dupe, group, delta):
|
def _get_display_info(self, dupe, group, delta):
|
||||||
size = dupe.size
|
size = dupe.size
|
||||||
mtime = dupe.mtime
|
mtime = dupe.mtime
|
||||||
@@ -67,3 +63,6 @@ class DupeGuru(DupeGuruBase):
|
|||||||
def _prioritization_categories(self):
|
def _prioritization_categories(self):
|
||||||
return prioritize.all_categories()
|
return prioritize.all_categories()
|
||||||
|
|
||||||
|
def _create_result_table(self):
|
||||||
|
return ResultTable(self)
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,11 @@
|
|||||||
|
=== 6.2.1 (2012-01-20)
|
||||||
|
|
||||||
|
* Fixed random hard crashes (yeah, again). [Mac OS X]
|
||||||
|
* Fixed crash on Export to HTML. [Windows, Linux]
|
||||||
|
* Added Armenian localization by Hrant Ohanyan.
|
||||||
|
* Added Russian localization by Igor Pavlov.
|
||||||
|
* Added Ukrainian localization by Yuri Petrashko.
|
||||||
|
|
||||||
=== 6.2.0 (2011-12-07)
|
=== 6.2.0 (2011-12-07)
|
||||||
|
|
||||||
* Added multiple-selection in folder selection dialog for a more efficient folder removal. (#179)
|
* Added multiple-selection in folder selection dialog for a more efficient folder removal. (#179)
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
=== 3.3.2 (2012-01-16)
|
||||||
|
|
||||||
|
* Fixed random hard crashes (yeah, again). [Mac OS X]
|
||||||
|
* Fixed crash on Export to HTML. [Windows, Linux]
|
||||||
|
* Added Armenian localization by Hrant Ohanyan.
|
||||||
|
* Added Russian localization by Igor Pavlov.
|
||||||
|
|
||||||
=== 3.3.1 (2011-12-02)
|
=== 3.3.1 (2011-12-02)
|
||||||
|
|
||||||
* Fixed a couple of nasty crashes.
|
* Fixed a couple of nasty crashes.
|
||||||
|
|||||||
@@ -16,12 +16,13 @@ Unten befindet sich die Liste aller Menschen, die direkt oder indirekt zu dupeGu
|
|||||||
|
|
||||||
| **Paolo Rossi, Italian localization**
|
| **Paolo Rossi, Italian localization**
|
||||||
|
|
||||||
|
| **Igor Pavlov, Russian localization**
|
||||||
|
|
||||||
|
| **Yuri Petrashko, Ukrainian 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
|
||||||
|
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ Below is the list of people who contributed, directly or indirectly to dupeGuru.
|
|||||||
|
|
||||||
| **Igor Pavlov, Russian localization**
|
| **Igor Pavlov, Russian localization**
|
||||||
|
|
||||||
|
| **Yuri Petrashko, Ukrainian 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
|
||||||
|
|
||||||
|
|||||||
@@ -3,15 +3,33 @@
|
|||||||
|
|
||||||
.. only:: edition_se
|
.. only:: edition_se
|
||||||
|
|
||||||
This document is also available in `french <http://www.hardcoded.net/dupeguru/help/fr/>`__, `german <http://www.hardcoded.net/dupeguru/help/de/>`__, `armenian <http://www.hardcoded.net/dupeguru/help/hy/>`__ and `russian <http://www.hardcoded.net/dupeguru/help/ru/>`__.
|
This help document is also available in these languages:
|
||||||
|
|
||||||
|
* `French <http://www.hardcoded.net/dupeguru/help/fr>`__
|
||||||
|
* `German <http://www.hardcoded.net/dupeguru/help/de>`__
|
||||||
|
* `Armenian <http://www.hardcoded.net/dupeguru/help/hy>`__
|
||||||
|
* `Russian <http://www.hardcoded.net/dupeguru/help/ru>`__
|
||||||
|
* `Ukrainian <http://www.hardcoded.net/dupeguru/help/uk>`__
|
||||||
|
|
||||||
.. only:: edition_me
|
.. only:: edition_me
|
||||||
|
|
||||||
This document is also available in `french <http://www.hardcoded.net/dupeguru_me/help/fr/>`__, `german <http://www.hardcoded.net/dupeguru_me/help/de/>`__, `armenian <http://www.hardcoded.net/dupeguru_me/help/hy/>`__ and `russian <http://www.hardcoded.net/dupeguru_me/help/ru/>`__.
|
This help document is also available in these languages:
|
||||||
|
|
||||||
|
* `French <http://www.hardcoded.net/dupeguru_me/help/fr>`__
|
||||||
|
* `German <http://www.hardcoded.net/dupeguru_me/help/de>`__
|
||||||
|
* `Armenian <http://www.hardcoded.net/dupeguru_me/help/hy>`__
|
||||||
|
* `Russian <http://www.hardcoded.net/dupeguru_me/help/ru>`__
|
||||||
|
* `Ukrainian <http://www.hardcoded.net/dupeguru_me/help/uk>`__
|
||||||
|
|
||||||
.. only:: edition_pe
|
.. only:: edition_pe
|
||||||
|
|
||||||
This document is also available in `french <http://www.hardcoded.net/dupeguru_pe/help/fr/>`__, `german <http://www.hardcoded.net/dupeguru_pe/help/de/>`__, `armenian <http://www.hardcoded.net/dupeguru_pe/help/hy/>`__ and `russian <http://www.hardcoded.net/dupeguru_pe/help/ru/>`__.
|
This help document is also available in these languages:
|
||||||
|
|
||||||
|
* `French <http://www.hardcoded.net/dupeguru_pe/help/fr>`__
|
||||||
|
* `German <http://www.hardcoded.net/dupeguru_pe/help/de>`__
|
||||||
|
* `Armenian <http://www.hardcoded.net/dupeguru_pe/help/hy>`__
|
||||||
|
* `Russian <http://www.hardcoded.net/dupeguru_pe/help/ru>`__
|
||||||
|
* `Ukrainian <http://www.hardcoded.net/dupeguru_pe/help/uk>`__
|
||||||
|
|
||||||
.. only:: edition_se or edition_me
|
.. only:: edition_se or edition_me
|
||||||
|
|
||||||
|
|||||||
@@ -19,12 +19,11 @@ Voici la liste des contributeurs de dupeGuru. Merci!
|
|||||||
|
|
||||||
| **Igor Pavlov, localisation russe**
|
| **Igor Pavlov, localisation russe**
|
||||||
|
|
||||||
|
| **Yuri Petrashko, localisation ukrainienne**
|
||||||
|
|
||||||
| **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
|
||||||
|
|
||||||
| **PyObjC, Pont Python/Cocoa** (`Website <http://pyobjc.sourceforge.net>`__)
|
|
||||||
| Pour la version Mac OS X
|
|
||||||
|
|
||||||
| **PyQt, Pont Python/Qt** (`Website <http://www.riverbankcomputing.co.uk>`__)
|
| **PyQt, Pont Python/Qt** (`Website <http://www.riverbankcomputing.co.uk>`__)
|
||||||
| Pour les versions Windows et Linux
|
| Pour les versions Windows et Linux
|
||||||
|
|
||||||
|
|||||||
@@ -20,12 +20,11 @@
|
|||||||
|
|
||||||
| **Igor Pavlov, Russian localization**
|
| **Igor Pavlov, Russian localization**
|
||||||
|
|
||||||
|
| **Yuri Petrashko, Ukrainian localization**
|
||||||
|
|
||||||
| **Python, Ծրագրավորման լեզուն** (`Վեբ կայքը <http://www.python.org>`__)
|
| **Python, Ծրագրավորման լեզուն** (`Վեբ կայքը <http://www.python.org>`__)
|
||||||
| Լավագույներից լավագույնը
|
| Լավագույներից լավագույնը
|
||||||
|
|
||||||
| **PyObjC, Python-ից Cocoa կամուրջ** (`Վեբ կայքը <http://pyobjc.sourceforge.net>`__)
|
|
||||||
| Օգտագործվում է Mac OS X տարբերակի համար
|
|
||||||
|
|
||||||
| **PyQt, Python-ից Qt կամուրջ** (`Վեբ կայքը <http://www.riverbankcomputing.co.uk>`__)
|
| **PyQt, Python-ից Qt կամուրջ** (`Վեբ կայքը <http://www.riverbankcomputing.co.uk>`__)
|
||||||
| Օգտագործվում է Windows-ի տարբերակի
|
| Օգտագործվում է Windows-ի տարբերակի
|
||||||
|
|
||||||
|
|||||||
@@ -20,12 +20,11 @@
|
|||||||
|
|
||||||
| **Igor Pavlov, Russian localization**
|
| **Igor Pavlov, Russian localization**
|
||||||
|
|
||||||
|
| **Yuri Petrashko, Ukrainian localization**
|
||||||
|
|
||||||
| **Python, Язык программирования** (`Веб сайт <http://www.python.org>`__)
|
| **Python, Язык программирования** (`Веб сайт <http://www.python.org>`__)
|
||||||
| Самая лучшая
|
| Самая лучшая
|
||||||
|
|
||||||
| **PyObjC, Python-to-Cocoa bridge** (`Веб сайт <http://pyobjc.sourceforge.net>`__)
|
|
||||||
| Используется для Mac OS X версии
|
|
||||||
|
|
||||||
| **PyQt, Python-to-Qt bridge** (`Веб сайт <http://www.riverbankcomputing.co.uk>`__)
|
| **PyQt, Python-to-Qt bridge** (`Веб сайт <http://www.riverbankcomputing.co.uk>`__)
|
||||||
| Используется для версии для Windows
|
| Используется для версии для Windows
|
||||||
|
|
||||||
|
|||||||
6
help/uk/changelog.tmpl
Executable file
6
help/uk/changelog.tmpl
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
:tocdepth: 1
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
=========
|
||||||
|
|
||||||
|
{changelog}
|
||||||
223
help/uk/conf.tmpl
Executable file
223
help/uk/conf.tmpl
Executable file
@@ -0,0 +1,223 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
#
|
||||||
|
# dupeGuru documentation build configuration file, created by
|
||||||
|
# sphinx-quickstart on Wed Jan 12 13:20:15 2011.
|
||||||
|
#
|
||||||
|
# This file is execfile()d with the current directory set to its containing dir.
|
||||||
|
#
|
||||||
|
# Note that not all possible configuration values are present in this
|
||||||
|
# autogenerated file.
|
||||||
|
#
|
||||||
|
# All configuration values have a default; values that are commented out
|
||||||
|
# serve to show the default.
|
||||||
|
|
||||||
|
import sys, os
|
||||||
|
|
||||||
|
# If extensions (or modules to document with autodoc) are in another directory,
|
||||||
|
# add these directories to sys.path here. If the directory is relative to the
|
||||||
|
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||||
|
#sys.path.insert(0, os.path.abspath('.'))
|
||||||
|
|
||||||
|
# -- General configuration -----------------------------------------------------
|
||||||
|
|
||||||
|
# If your documentation needs a minimal Sphinx version, state it here.
|
||||||
|
#needs_sphinx = '1.0'
|
||||||
|
|
||||||
|
# Add any Sphinx extension module names here, as strings. They can be extensions
|
||||||
|
# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
|
||||||
|
extensions = []
|
||||||
|
|
||||||
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
|
templates_path = ['_templates']
|
||||||
|
|
||||||
|
# The suffix of source filenames.
|
||||||
|
source_suffix = '.rst'
|
||||||
|
|
||||||
|
# The encoding of source files.
|
||||||
|
#source_encoding = 'utf-8-sig'
|
||||||
|
|
||||||
|
# The master toctree document.
|
||||||
|
master_doc = 'index'
|
||||||
|
|
||||||
|
# General information about the project.
|
||||||
|
project = u'{appname}'
|
||||||
|
copyright = u'2011, Hardcoded Software'
|
||||||
|
|
||||||
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
|
# |version| and |release|, also used in various other places throughout the
|
||||||
|
# built documents.
|
||||||
|
#
|
||||||
|
# The short X.Y version.
|
||||||
|
version = '{version}'
|
||||||
|
# The full version, including alpha/beta/rc tags.
|
||||||
|
release = version
|
||||||
|
edition = '{edition}'
|
||||||
|
tags.add('edition_{0}'.format(edition))
|
||||||
|
|
||||||
|
rst_epilog = u"""
|
||||||
|
.. |appname| replace:: {appname}
|
||||||
|
.. _homepage: {homepage}
|
||||||
|
"""
|
||||||
|
|
||||||
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
|
# for a list of supported languages.
|
||||||
|
#language = None
|
||||||
|
|
||||||
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
|
# non-false value, then it is used:
|
||||||
|
#today = ''
|
||||||
|
# Else, today_fmt is used as the format for a strftime call.
|
||||||
|
#today_fmt = '%B %d, %Y'
|
||||||
|
|
||||||
|
# List of patterns, relative to source directory, that match files and
|
||||||
|
# directories to ignore when looking for source files.
|
||||||
|
exclude_patterns = ['_build']
|
||||||
|
|
||||||
|
# The reST default role (used for this markup: `text`) to use for all documents.
|
||||||
|
#default_role = None
|
||||||
|
|
||||||
|
# If true, '()' will be appended to :func: etc. cross-reference text.
|
||||||
|
#add_function_parentheses = True
|
||||||
|
|
||||||
|
# If true, the current module name will be prepended to all description
|
||||||
|
# unit titles (such as .. function::).
|
||||||
|
#add_module_names = True
|
||||||
|
|
||||||
|
# If true, sectionauthor and moduleauthor directives will be shown in the
|
||||||
|
# output. They are ignored by default.
|
||||||
|
#show_authors = False
|
||||||
|
|
||||||
|
# The name of the Pygments (syntax highlighting) style to use.
|
||||||
|
pygments_style = 'sphinx'
|
||||||
|
|
||||||
|
# A list of ignored prefixes for module index sorting.
|
||||||
|
#modindex_common_prefix = []
|
||||||
|
|
||||||
|
|
||||||
|
# -- Options for HTML output ---------------------------------------------------
|
||||||
|
|
||||||
|
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||||
|
# a list of builtin themes.
|
||||||
|
html_theme = 'default'
|
||||||
|
|
||||||
|
# Theme options are theme-specific and customize the look and feel of a theme
|
||||||
|
# further. For a list of options available for each theme, see the
|
||||||
|
# documentation.
|
||||||
|
#html_theme_options = {}
|
||||||
|
|
||||||
|
# Add any paths that contain custom themes here, relative to this directory.
|
||||||
|
#html_theme_path = []
|
||||||
|
|
||||||
|
# The name for this set of Sphinx documents. If None, it defaults to
|
||||||
|
# "<project> v<release> documentation".
|
||||||
|
#html_title = None
|
||||||
|
|
||||||
|
# A shorter title for the navigation bar. Default is the same as html_title.
|
||||||
|
#html_short_title = None
|
||||||
|
|
||||||
|
# The name of an image file (relative to this directory) to place at the top
|
||||||
|
# of the sidebar.
|
||||||
|
#html_logo = None
|
||||||
|
|
||||||
|
# The name of an image file (within the static path) to use as favicon of the
|
||||||
|
# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
|
||||||
|
# pixels large.
|
||||||
|
#html_favicon = None
|
||||||
|
|
||||||
|
# Add any paths that contain custom static files (such as style sheets) here,
|
||||||
|
# relative to this directory. They are copied after the builtin static files,
|
||||||
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||||
|
# html_static_path = ['_static']
|
||||||
|
|
||||||
|
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
|
||||||
|
# using the given strftime format.
|
||||||
|
#html_last_updated_fmt = '%b %d, %Y'
|
||||||
|
|
||||||
|
# If true, SmartyPants will be used to convert quotes and dashes to
|
||||||
|
# typographically correct entities.
|
||||||
|
#html_use_smartypants = True
|
||||||
|
|
||||||
|
# Custom sidebar templates, maps document names to template names.
|
||||||
|
#html_sidebars = {}
|
||||||
|
|
||||||
|
# Additional templates that should be rendered to pages, maps page names to
|
||||||
|
# template names.
|
||||||
|
#html_additional_pages = {}
|
||||||
|
|
||||||
|
# If false, no module index is generated.
|
||||||
|
html_domain_indices = False
|
||||||
|
|
||||||
|
# If false, no index is generated.
|
||||||
|
html_use_index = False
|
||||||
|
|
||||||
|
# If true, the index is split into individual pages for each letter.
|
||||||
|
#html_split_index = False
|
||||||
|
|
||||||
|
# If true, links to the reST sources are added to the pages.
|
||||||
|
html_show_sourcelink = False
|
||||||
|
|
||||||
|
# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
|
||||||
|
#html_show_sphinx = True
|
||||||
|
|
||||||
|
# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
|
||||||
|
#html_show_copyright = True
|
||||||
|
|
||||||
|
# If true, an OpenSearch description file will be output, and all pages will
|
||||||
|
# contain a <link> tag referring to it. The value of this option must be the
|
||||||
|
# base URL from which the finished HTML is served.
|
||||||
|
#html_use_opensearch = ''
|
||||||
|
|
||||||
|
# This is the file name suffix for HTML files (e.g. ".xhtml").
|
||||||
|
#html_file_suffix = None
|
||||||
|
|
||||||
|
# Output file base name for HTML help builder.
|
||||||
|
htmlhelp_basename = 'dupeGurudoc'
|
||||||
|
|
||||||
|
|
||||||
|
# -- 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)
|
||||||
|
]
|
||||||
35
help/uk/credits.rst
Executable file
35
help/uk/credits.rst
Executable file
@@ -0,0 +1,35 @@
|
|||||||
|
Кредити
|
||||||
|
=======
|
||||||
|
|
||||||
|
Нижче наводиться список людей, які сприяли, прямо або побічно dupeGuru.
|
||||||
|
|
||||||
|
| **Virgil Dupras, Developer** (`Website <http://www.hardcoded.net>`__)
|
||||||
|
|
||||||
|
| **Jérôme Cantin, Іконка дизайнера**
|
||||||
|
| Ікони в dupeGuru які від нього
|
||||||
|
|
||||||
|
| **Gregor Tätzner, Німецька локалізація**
|
||||||
|
|
||||||
|
| **Eric Dee, Китайська локалізація**
|
||||||
|
|
||||||
|
| **Aleš Nehyba, Чеський локалізації**
|
||||||
|
|
||||||
|
| **Paolo Rossi, Італійська локалізації**
|
||||||
|
|
||||||
|
| **Hrant Ohanyan, Armenian localization**
|
||||||
|
|
||||||
|
| **Igor Pavlov, Russian localization**
|
||||||
|
|
||||||
|
| **Yuri Petrashko, Ukrainian localization**
|
||||||
|
|
||||||
|
| **Python, Мова програмування** (`Веб-сайт <http://www.python.org>`__)
|
||||||
|
| Кращі рекорди
|
||||||
|
|
||||||
|
| **PyQt, Python-to-Qt bridge** (`Веб-сайт <http://www.riverbankcomputing.co.uk>`__)
|
||||||
|
| Використовується для версії для Windows
|
||||||
|
|
||||||
|
| **Sparkle, Auto-update library** (`Веб-сайт <http://andymatuschak.org/pages/sparkle>`__)
|
||||||
|
| Використовується для Mac OS X версії
|
||||||
|
|
||||||
|
| **Ви, dupeGuru користувача**
|
||||||
|
| Ви рока.
|
||||||
115
help/uk/faq.rst
Executable file
115
help/uk/faq.rst
Executable file
@@ -0,0 +1,115 @@
|
|||||||
|
Часті питання
|
||||||
|
==========================
|
||||||
|
|
||||||
|
.. topic:: Що таке |appname|?
|
||||||
|
|
||||||
|
.. only:: edition_se
|
||||||
|
|
||||||
|
dupeGuru це інструмент для пошуку дублікатів файлів на вашому комп'ютері. Він може сканувати або імен файлів або контенту. Файл функцій сканування нечіткого відповідності алгоритму, який дозволяє знайти однакові імена файлів, навіть якщо вони не зовсім те ж саме.
|
||||||
|
|
||||||
|
.. only:: edition_me
|
||||||
|
|
||||||
|
dupeGuru Music Edition являє собою інструмент для пошуку дубльованих пісень у вашій музичній колекції. Він може будувати свою сканування файлів, тегам або змісту. Файл і тег перевіряє функція нечіткого відповідності алгоритм, який може знаходити дублікати файлів або теги, навіть якщо вони не зовсім те ж саме.
|
||||||
|
|
||||||
|
.. only:: edition_pe
|
||||||
|
|
||||||
|
dupeGuru Picture Edition (PE для стислості) являє собою інструмент для пошуку дублікатів фотографій на вашому комп'ютері. Не тільки він може знайти точні відповідності, але він також може знайти дублікати серед фотографій різного роду (PNG, JPG, GIF і т.д..) І якість.
|
||||||
|
|
||||||
|
.. topic:: Що робить його краще, ніж інші сканери дублювати?
|
||||||
|
|
||||||
|
Сканування є надзвичайно гнучкою. Ви можете налаштувати його, щоб дійсно отримати, яких результатів ви хочете. Ви можете прочитати більше про опція налаштування dupeGuru в :doc:`Установки <preferences>`.
|
||||||
|
|
||||||
|
.. topic:: Наскільки безпечно використовувати dupeGuru?
|
||||||
|
|
||||||
|
Дуже безпечною. dupeGuru був розроблений, щоб переконатися, що ви не видаляєте файли, які ви не хотіли видалити. По-перше, існує система відліку папку, яка дозволяє визначити папки, в яких ви абсолютно не ** ** хочете dupeGuru, щоб ви видаляєте файли там, і тоді є система контрольної групи, що гарантує, що ви завжди ** * * тримати принаймні один член групи дублікатів.
|
||||||
|
|
||||||
|
.. topic:: Які обмеження демо dupeGuru?
|
||||||
|
|
||||||
|
У демо-режимі, ви можете тільки виконувати дії над 10 дублікати відразу. В
|
||||||
|
`Fairware <http://open.hardcoded.net/about/>`_ mode, однак, Є ніяких обмежень.
|
||||||
|
|
||||||
|
.. topic:: Знак коробку файл я хочу видалити відключена. Що я повинен зробити?
|
||||||
|
|
||||||
|
Ви не можете помітити посилання (перший файл) дублікат групи. Однак те, що ви можете зробити, полягає в сприянні дублювати файл довідки. Таким чином, якщо файл, який Ви хочете, щоб відзначити цю посилання, виділіть дублікатів файлів в групу, яку ви хочете просувати на посилання, і натисніть на кнопку **Дії -> Додати вибраної посилання**. Якщо посилання файл з папки посилання (назва файлу написані на синіми літерами), ви не можете видалити його з вихідного положення.
|
||||||
|
|
||||||
|
.. topic:: У мене є папка, з якої я справді не хочу, щоб видалити файли.
|
||||||
|
|
||||||
|
Якщо ви хочете бути впевнені, що dupeGuru ніколи не буде видаляти файл з певної папки, переконайтеся, що встановили в стан **Посилання на:** документ: :doc:`folders`.
|
||||||
|
|
||||||
|
.. topic:: Що це за '(X відкидається) "повідомлення в рядку стану?
|
||||||
|
|
||||||
|
У деяких випадках, кілька матчів не включені в остаточні результати з міркувань безпеки. Дозвольте мені навести приклад. У нас є 3 файли: A, B і C. Ми скануємо їх за допомогою фільтра низьких твердості. Сканер визначає, що матчі з B, матчі з С, але робить B ** не ** матч з С. При цьому, dupeGuru має вигляд проблеми. Вона не може створити дублікат групи А, В і С в це, тому що не всі файли в групі буде відповідати разом. Це може створити 2 групи: одна група AB, а потім одна група AC, але це не буде, з міркувань безпеки. Давайте думати про це: якщо Б не співпадає з С, вона, ймовірно, означає, що або B, C або обидва на самому ділі не дублікати. Якщо не було б 2 групи (АВ і АС), ви б у кінцевому підсумку видалити обидва B і C. І якщо один з них не дублювати, що насправді не те, що ви хочете робити, правильно? Так що dupeGuru робить у такому випадку є, щоб відмінити матч AC (і додає повідомлення в рядку стану). Таким чином, якщо ви вилучили B і повторно запустити сканування, вам доведеться відповідати змінного струму в наступний результат.
|
||||||
|
|
||||||
|
.. topic:: Я хочу, щоб відзначити всі файли з визначеної папки. Що я можу зробити?
|
||||||
|
|
||||||
|
Включити :doc:`ошукані Тільки <results>` режим і натиснути на папку колонки для сортування дублікатів по папках. Потім він буде легким для вас, щоб вибрати всі дублікати з тієї ж папці, а потім натиснути клавішу пробіл, щоб відзначити всі вибрані дублікатів.
|
||||||
|
|
||||||
|
.. only:: edition_se or edition_pe
|
||||||
|
|
||||||
|
.. topic:: Я хочу, щоб видалити всі файли, які більше 300 Кб від їх посиланням на файл. Що я можу зробити?
|
||||||
|
|
||||||
|
* Включити :doc:`ошукані Тільки <results>` режимі.
|
||||||
|
* Включити **Значення Delta** режимі.
|
||||||
|
* Натисніть на "Розмір" стовпця для сортування результатів за розміром.
|
||||||
|
* Вибрати всі дублікати нижче -300.
|
||||||
|
* Натисніть на **Видалити вибрані з результатів**.
|
||||||
|
* Вибрати всі дублікати більше 300 осіб.
|
||||||
|
* Натисніть на **Видалити вибрані з результатів**.
|
||||||
|
|
||||||
|
.. topic:: Я хочу, щоб мої останні змінені файли файли довідки. Що я можу зробити?
|
||||||
|
|
||||||
|
* Включити :doc:`ошукані Тільки <results>` режимі.
|
||||||
|
* Включити **Значення Delta** режимі.
|
||||||
|
* Натисніть на "Модифікація" колонку для сортування результатів за датою зміни.
|
||||||
|
* Натисніть на "Модифікація" колона знову змінити порядок сортування.
|
||||||
|
* Вибрати всі дублікати за 0.
|
||||||
|
* Натисніть на **Зробити вибраної посилання**.
|
||||||
|
|
||||||
|
.. topic:: Я хочу, щоб відзначити все дублікати, що містять слово "копія". Як мені це зробити?
|
||||||
|
|
||||||
|
* **Windows**: Натисніть на **Дії -> Застосувати фільтр**, потім введіть "копія", натисніть кнопку ОК.
|
||||||
|
* **Mac OS X**: Типу "копія" в "Фільтр" поле на панелі інструментів.
|
||||||
|
* Натисніть на Марка **-> Позначити всі**.
|
||||||
|
|
||||||
|
.. only:: edition_me
|
||||||
|
|
||||||
|
.. topic:: Я хочу, щоб видалити всі пісні, які більш ніж на 3 секунди від своєї посиланням на файл. Що я можу зробити?
|
||||||
|
|
||||||
|
* Включити :doc:`ошукані Тільки <results>` режимі.
|
||||||
|
* Включити **Значення Delta** режимі.
|
||||||
|
* Натисніть на "Час" колонку для сортування результатів за часом.
|
||||||
|
* Вибрати всі дублікати нижче -00:03.
|
||||||
|
* Натисніть на **Видалити вибрані з результатів**.
|
||||||
|
* Вибрати всі дублікати за 00:03.
|
||||||
|
* Натисніть на **Видалити вибрані з результатів**.
|
||||||
|
|
||||||
|
.. topic:: Я хочу, щоб мій високий бітрейт файлів пісні посилання. Що я можу зробити?
|
||||||
|
|
||||||
|
* Включити :doc:`ошукані Тільки <results>` режимі.
|
||||||
|
* Включити **Значення Delta** режимі.
|
||||||
|
* Натисніть на "Бітрейт" колонку для сортування результатів по бітрейт.
|
||||||
|
* Натисніть на "Бітрейт" колона знову змінити порядок сортування.
|
||||||
|
* Вибрати всі дублікати за 0.
|
||||||
|
* Натисніть на **Зробити вибраної посилання**.
|
||||||
|
|
||||||
|
.. topic:: Я не хочу [жити] і [ремікс] версії моїх пісень вважатися дублікатами. Як мені це зробити?
|
||||||
|
|
||||||
|
Якщо ваше порівняння поріг досить низьким, ви, ймовірно, в кінцевому підсумку з живою і ремікс версії ваших пісень у своїх результатах. Там ви нічого не можете зробити, щоб запобігти цьому, але є дещо можна зробити, щоб легко видалити їх зі свого результати після сканування: після сканування, фільтрації. Якщо, наприклад, ви хочете видалити всі пісні з чим-небудь у квадратних дужках []:
|
||||||
|
|
||||||
|
* **Windows**: Натисніть на **Дії -> Застосувати фільтр**, а потім введіть "[*]", натисніть кнопку ОК.
|
||||||
|
* **Mac OS X**: Тип "[*]" в "Фільтр" поле на панелі інструментів.
|
||||||
|
* Натисніть на Марка **-> Позначити всі**.
|
||||||
|
* Натисніть на **Дії -> Видалити вибрані з результатів**.
|
||||||
|
|
||||||
|
.. topic:: Я намагався відправити свої дублікати в корзину, але dupeGuru говорить мені, він не може це зробити. Чому? Що я можу зробити?
|
||||||
|
|
||||||
|
Більшу частину часу, тому dupeGuru не можете відправляти файли до кошика через права доступу до файлів. Ви повинні * написати * дозволу на файли, які ви хочете відправити у кошик. Якщо ви не знайомі з командним рядком, ви можете використовувати утиліти, такі як `BatChmod <http://macchampion.com/arbysoft/BatchMod>`_ виправити Ваші права.
|
||||||
|
|
||||||
|
Якщо dupeGuru ще дає вам неприємності після фіксації ваших прав, було кілька випадків, коли за допомогою "Переміщення Позначено до ..." як обхідного шляху зробили свою справу. Таким чином, замість відправки файлів в корзину, ви посилаєте їх в тимчасову папку з "Переміщати Позначено до ..." дії, а потім видалити цю тимчасову папку вручну.
|
||||||
|
|
||||||
|
.. only:: edition_pe
|
||||||
|
|
||||||
|
Якщо ви намагаєтеся видалити *iPhoto*, то причина збою інша. Видалення не виконується, так dupeGuru не може спілкуватися з iPhoto. Врахуйте, що для видалення коректної роботи, ви не повинні грати навколо iPhoto в той час як dupeGuru працює. Крім того, іноді, система Applescript, здається, не знають, де знайти Iphoto запустити його. Це може допомогти в таких випадках для запуску Iphoto * до * ви посилаєте дублікатів в корзину.
|
||||||
|
|
||||||
|
Якщо все це не так, `контакт УГ підтримки <http://www.hardcoded.net/support>`_, ми зрозуміти це.
|
||||||
|
|
||||||
21
help/uk/folders.rst
Executable file
21
help/uk/folders.rst
Executable file
@@ -0,0 +1,21 @@
|
|||||||
|
Вибір папки
|
||||||
|
================
|
||||||
|
|
||||||
|
Перше вікно, ви бачите, коли ви запускаєте dupeGuru це вікно вибору папки. Це вікно містить список папок, які будуть скануватися при натисканні на **Сканування**.Це вікно досить проста у використанні. Якщо ви хочете додати папку, натисніть на кнопку **+**. Якщо ви додали папки перш, спливаюче меню зі списком останніх папки додав з'явиться. Ви можете натиснути на одну з них, щоб додати його прямо в свій список. Якщо натиснути на перший пункт меню, **Додати новий папку ...**, вам буде запропоновано ввести папку додати. Якщо ви ніколи не додається папка, не з'явиться меню, і ви будете безпосередньо буде запропоновано ввести нову папку додати.
|
||||||
|
|
||||||
|
Альтернативний спосіб для додавання папок в список, щоб перетягнути їх в списку.
|
||||||
|
|
||||||
|
Щоб видалити папку, виберіть папку, видалити, і натисніть на **-**. Якщо папці вибирається при натисканні кнопки, обраної папки буде встановлений в **виключені** стану (див. нижче), а не видалений.
|
||||||
|
|
||||||
|
Папка держав
|
||||||
|
-------------
|
||||||
|
|
||||||
|
Кожна папка може знаходитися в одному з цих 3-х держав:
|
||||||
|
|
||||||
|
* ** Нормальний: ** дублікати знайдені в цю папку можна видалити.
|
||||||
|
* ** Довідка: ** Дублікати знайти в цій папці **не може** бути видалені. Файли з цієї папки можна тільки в кінцевому підсумку в **посилання** позиція в групі обдурити. Якщо більш ніж один файл з папки посилання в кінцевому підсумку в тій же групі обдурити, тільки один, будуть збережені. Інші будуть видалені з групи.
|
||||||
|
* ** Не включено: ** Файли в цьому каталозі не буде включений у перевірку.
|
||||||
|
|
||||||
|
Стан за замовчуванням до папки, звичайно, **Нормальний**. Ви можете використовувати **Посилання** стан для папки, якщо ви хочете бути впевнені, що ви не будете видаляти будь-які файли з нього.
|
||||||
|
|
||||||
|
Коли ви встановлюєте стан каталог, все підпапки цієї папки автоматично успадковує цей стан, якщо явно не включений стан підпапку в.
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user