mirror of
https://github.com/arsenetar/dupeguru.git
synced 2026-01-24 23:51:38 +00:00
Compare commits
50 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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 | ||
|
|
c8e00cf0f7 | ||
|
|
0cca745d0d | ||
|
|
80043ccbea | ||
|
|
d62bfac95e | ||
|
|
f636333938 | ||
|
|
01f1e5e46e | ||
|
|
7ce72b1998 | ||
|
|
c4f95a4901 | ||
|
|
5b0d9f311c | ||
|
|
11d8f824e9 | ||
|
|
ceaf2ee4ba | ||
|
|
3b80de869a | ||
|
|
08813ce39c | ||
|
|
478f462ecc | ||
|
|
be53b6de76 | ||
|
|
ca602480d9 | ||
|
|
185cdbb6fa |
10
.hgignore
10
.hgignore
@@ -6,6 +6,7 @@ run.py
|
|||||||
*.so
|
*.so
|
||||||
*.mo
|
*.mo
|
||||||
*.pyd
|
*.pyd
|
||||||
|
.tm_*
|
||||||
*.xcodeproj/xcuserdata
|
*.xcodeproj/xcuserdata
|
||||||
*.xcodeproj/project.xcworkspace/xcuserdata
|
*.xcodeproj/project.xcworkspace/xcuserdata
|
||||||
conf.json
|
conf.json
|
||||||
@@ -13,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
|
||||||
@@ -22,10 +24,10 @@ cocoa/*/de.lproj/*.xib
|
|||||||
cocoa/*/zh_CN.lproj/*.xib
|
cocoa/*/zh_CN.lproj/*.xib
|
||||||
cocoa/*/cs.lproj/*.xib
|
cocoa/*/cs.lproj/*.xib
|
||||||
cocoa/*/it.lproj/*.xib
|
cocoa/*/it.lproj/*.xib
|
||||||
|
# We keep old strings files in the repo for a while to be sure that auto-generated strings work
|
||||||
|
# fine, but we'll eventually only have en.lproj in the repo.
|
||||||
|
hy.lproj
|
||||||
|
ru.lproj
|
||||||
qt/base/*_rc.py
|
qt/base/*_rc.py
|
||||||
qt/lang/fr.qm
|
|
||||||
qt/lang/en.qm
|
|
||||||
qt/lang/de.qm
|
|
||||||
qt/lang/zh.qm
|
|
||||||
help/*/conf.py
|
help/*/conf.py
|
||||||
help/*/changelog.rst
|
help/*/changelog.rst
|
||||||
2
.hgtags
2
.hgtags
@@ -62,3 +62,5 @@ a2f7b7302e178f08725a6404ddc28464409510b1 se3.2.0
|
|||||||
4e6cbef6bcdfcc0e56ff9690fbfe1cac1f4b1b09 pe2.3.0
|
4e6cbef6bcdfcc0e56ff9690fbfe1cac1f4b1b09 pe2.3.0
|
||||||
9ea9af1b886cd1adc4f42fd2276cc2b38376eab0 se3.3.0
|
9ea9af1b886cd1adc4f42fd2276cc2b38376eab0 se3.3.0
|
||||||
6e3379be6821bb36d7f0877a17dd6c07aa037b0a se3.3.1
|
6e3379be6821bb36d7f0877a17dd6c07aa037b0a se3.3.1
|
||||||
|
015ba7e2c10d09afb944f387c2a9c97f7eff7571 me6.2.0
|
||||||
|
8178bda48324461a17118c98634241952c074f29 pe2.4.0
|
||||||
|
|||||||
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
|
||||||
|
|||||||
114
build.py
114
build.py
@@ -6,18 +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
|
from setuptools import setup, Extension
|
||||||
from distutils.extension import 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():
|
||||||
@@ -29,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',
|
||||||
@@ -37,33 +41,35 @@ 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()
|
||||||
print("Building dg_cocoa.plugin")
|
build_cocoa_bridging_interfaces(edition)
|
||||||
if dev:
|
print("Building the cocoa layer")
|
||||||
tocopy = ['cocoa/inter']
|
from pluginbuilder import copy_embeddable_python_dylib, get_python_header_folder, collect_dependencies
|
||||||
else:
|
copy_embeddable_python_dylib('build')
|
||||||
specific_packages = {
|
if not op.exists('build/PythonHeaders'):
|
||||||
'se': ['core_se'],
|
os.symlink(get_python_header_folder(), 'build/PythonHeaders')
|
||||||
'me': ['core_me'],
|
if not op.exists('build/py'):
|
||||||
'pe': ['core_pe'],
|
os.mkdir('build/py')
|
||||||
}[edition]
|
|
||||||
tocopy = ['core', 'hscommon', 'cocoa/inter'] + specific_packages
|
|
||||||
copy_packages(tocopy, 'build')
|
|
||||||
cocoa_project_path = 'cocoa/{0}'.format(edition)
|
cocoa_project_path = 'cocoa/{0}'.format(edition)
|
||||||
shutil.copy(op.join(cocoa_project_path, 'dg_cocoa.py'), 'build')
|
shutil.copy(op.join(cocoa_project_path, 'dg_cocoa.py'), 'build')
|
||||||
os.chdir('build')
|
specific_packages = {
|
||||||
# We have to exclude PyQt4 specifically because it's conditionally imported in hscommon.trans
|
'se': ['core_se'],
|
||||||
build_plugin('dg_cocoa.py', excludes=['PyQt4'], alias=dev)
|
'me': ['core_me'],
|
||||||
os.chdir('..')
|
'pe': ['core_pe'],
|
||||||
pluginpath = op.join(cocoa_project_path, 'dg_cocoa.plugin')
|
}[edition]
|
||||||
if op.exists(pluginpath):
|
tocopy = ['core', 'hscommon', 'cocoa/inter', 'cocoalib/cocoa'] + specific_packages
|
||||||
shutil.rmtree(pluginpath)
|
|
||||||
shutil.move('build/dist/dg_cocoa.plugin', pluginpath)
|
|
||||||
if dev:
|
if dev:
|
||||||
# In alias mode, the tweakings we do to the pythonpath aren't counted in. We have to
|
# collect dependencies, then override our own pckages with symlinks
|
||||||
# manually put a .pth in the plugin
|
collect_dependencies('build/dg_cocoa.py', 'build/py', excludes=['PyQt4'])
|
||||||
pthpath = op.join(pluginpath, 'Contents/Resources/dev.pth')
|
copy_packages(tocopy, 'build/py', create_links=True)
|
||||||
open(pthpath, 'w').write(op.abspath('.'))
|
else:
|
||||||
|
copy_packages(tocopy, 'build')
|
||||||
|
sys.path.insert(0, 'build')
|
||||||
|
collect_dependencies('build/dg_cocoa.py', 'build/py', excludes=['PyQt4'])
|
||||||
|
del sys.path[0]
|
||||||
|
# Views are not referenced by python code, so they're not found by the collector.
|
||||||
|
copy_all('build/inter/*.so', 'build/py/inter')
|
||||||
|
copy_sysconfig_files_for_embed('build/py')
|
||||||
os.chdir(cocoa_project_path)
|
os.chdir(cocoa_project_path)
|
||||||
print('Generating Info.plist')
|
print('Generating Info.plist')
|
||||||
app_version = get_module_version('core_{}'.format(edition))
|
app_version = get_module_version('core_{}'.format(edition))
|
||||||
@@ -161,6 +167,57 @@ def build_mergepot():
|
|||||||
print("Updating .po files using .pot files")
|
print("Updating .po files using .pot files")
|
||||||
loc.merge_pots_into_pos('locale')
|
loc.merge_pots_into_pos('locale')
|
||||||
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'))
|
||||||
|
|
||||||
|
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():
|
||||||
|
print("Building Cocoa Proxy")
|
||||||
|
import objp.p2o
|
||||||
|
objp.p2o.generate_python_proxy_code('cocoalib/cocoa/CocoaProxy.h', 'build/CocoaProxy.m')
|
||||||
|
build_cocoa_ext("CocoaProxy", 'cocoalib/cocoa',
|
||||||
|
['cocoalib/cocoa/CocoaProxy.m', 'build/CocoaProxy.m', 'build/ObjP.m', 'cocoalib/HSErrorReportWindow.m'],
|
||||||
|
['AppKit', 'CoreServices'],
|
||||||
|
['cocoalib'])
|
||||||
|
|
||||||
|
def build_cocoa_bridging_interfaces(edition):
|
||||||
|
print("Building Cocoa Bridging Interfaces")
|
||||||
|
import objp.o2p
|
||||||
|
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")
|
||||||
@@ -220,6 +277,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,15 +1,13 @@
|
|||||||
import logging
|
import logging
|
||||||
|
|
||||||
|
from objp.util import pyref, dontwrap
|
||||||
from jobprogress import job
|
from jobprogress import job
|
||||||
from hscommon import cocoa
|
import cocoa
|
||||||
from hscommon.cocoa import install_exception_hook
|
from cocoa import install_exception_hook, proxy
|
||||||
from hscommon.cocoa.inter import signature, subproxy, PyFairware
|
from cocoa.inter import PyFairware, FairwareView
|
||||||
from hscommon.cocoa.objcmin import (NSNotificationCenter, NSSearchPathForDirectoriesInDomains,
|
|
||||||
NSApplicationSupportDirectory, NSUserDomainMask, NSWorkspace)
|
|
||||||
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')
|
||||||
|
|
||||||
@@ -21,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 = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, True)[0]
|
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:
|
||||||
@@ -151,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:
|
||||||
@@ -161,30 +167,31 @@ 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):
|
||||||
NSWorkspace.sharedWorkspace().openFile_(str(path))
|
proxy.openPath_(str(path))
|
||||||
|
|
||||||
|
@dontwrap
|
||||||
def reveal_path(self, path):
|
def reveal_path(self, path):
|
||||||
NSWorkspace.sharedWorkspace().selectFile_inFileViewerRootedAtPath_(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()
|
||||||
args = tuple([j] + list(args))
|
args = tuple([j] + list(args))
|
||||||
self.progress.run_threaded(func, args=args)
|
self.progress.run_threaded(func, args=args)
|
||||||
except job.JobInProgressError:
|
except job.JobInProgressError:
|
||||||
NSNotificationCenter.defaultCenter().postNotificationName_object_('JobInProgress', self)
|
proxy.postNotification_userInfo_('JobInProgress', None)
|
||||||
else:
|
else:
|
||||||
ud = {'desc': JOBID2TITLE[jobid], 'jobid':jobid}
|
ud = {'desc': JOBID2TITLE[jobid], 'jobid':jobid}
|
||||||
NSNotificationCenter.defaultCenter().postNotificationName_object_userInfo_('JobStarted', self, 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)
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,12 +11,13 @@ from appscript import app, k, CommandError
|
|||||||
import time
|
import time
|
||||||
import os.path as op
|
import os.path as op
|
||||||
|
|
||||||
from hscommon.cocoa import as_fetch
|
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)
|
||||||
|
|||||||
@@ -16,13 +16,15 @@ from appscript import app, its, CommandError, ApplicationNotFoundError
|
|||||||
from hscommon import io
|
from hscommon import io
|
||||||
from hscommon.util import remove_invalid_xml
|
from hscommon.util import remove_invalid_xml
|
||||||
from hscommon.path import Path
|
from hscommon.path import Path
|
||||||
from hscommon.cocoa.objcmin import NSUserDefaults, NSURL
|
|
||||||
from hscommon.trans import tr
|
from hscommon.trans import tr
|
||||||
|
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')
|
||||||
|
|
||||||
@@ -49,14 +51,11 @@ class IPhoto(Photo):
|
|||||||
return IPHOTO_PATH
|
return IPHOTO_PATH
|
||||||
|
|
||||||
def get_iphoto_database_path():
|
def get_iphoto_database_path():
|
||||||
ud = NSUserDefaults.standardUserDefaults()
|
plisturls = proxy.prefValue_inDomain_('iPhotoRecentDatabases', 'com.apple.iApps')
|
||||||
prefs = ud.persistentDomainForName_('com.apple.iApps')
|
if not plisturls:
|
||||||
if prefs is None:
|
|
||||||
raise directories.InvalidPathError()
|
raise directories.InvalidPathError()
|
||||||
if 'iPhotoRecentDatabases' not in prefs:
|
plistpath = proxy.url2path_(plisturls[0])
|
||||||
raise directories.InvalidPathError()
|
return Path(plistpath)
|
||||||
plisturl = NSURL.URLWithString_(prefs['iPhotoRecentDatabases'][0])
|
|
||||||
return Path(plisturl.path())
|
|
||||||
|
|
||||||
def get_iphoto_pictures(plistpath):
|
def get_iphoto_pictures(plistpath):
|
||||||
if not io.exists(plistpath):
|
if not io.exists(plistpath):
|
||||||
@@ -197,3 +196,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
|
||||||
|
|||||||
@@ -11,18 +11,19 @@ import os.path as op
|
|||||||
|
|
||||||
from hscommon import io
|
from hscommon import io
|
||||||
from hscommon.path import Path
|
from hscommon.path import Path
|
||||||
from hscommon.cocoa.objcmin import NSWorkspace
|
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):
|
||||||
sw = NSWorkspace.sharedWorkspace()
|
uti = proxy.getUTI_(str_path)
|
||||||
uti, error = sw.typeOfFile_error_(str_path, None)
|
if uti is None:
|
||||||
if error is not None:
|
|
||||||
logging.warning('There was an error trying to detect the UTI of %s', str_path)
|
logging.warning('There was an error trying to detect the UTI of %s', str_path)
|
||||||
return sw.type_conformsToType_(uti, 'com.apple.bundle') or sw.type_conformsToType_(uti, 'com.apple.package')
|
return proxy.type_conformsToType_(uti, 'com.apple.bundle') or proxy.type_conformsToType_(uti, 'com.apple.package')
|
||||||
|
|
||||||
class Bundle(fs.Folder):
|
class Bundle(fs.Folder):
|
||||||
@classmethod
|
@classmethod
|
||||||
@@ -71,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 hscommon.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 hscommon.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 hscommon.cocoa.inter import PyGUIObject
|
from objp.util import pyref, dontwrap
|
||||||
|
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 hscommon.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 hscommon.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 hscommon.cocoa.inter import PyGUIObject
|
from objp.util import pyref
|
||||||
|
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 hscommon.cocoa.inter import PyTable
|
|
||||||
|
|
||||||
from core.gui.problem_table import ProblemTable
|
|
||||||
|
|
||||||
class PyProblemTable(PyTable):
|
|
||||||
py_class = ProblemTable
|
|
||||||
@@ -1,53 +1,49 @@
|
|||||||
from hscommon.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 hscommon.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 hscommon.cocoa 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,33 +153,38 @@
|
|||||||
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>"; };
|
||||||
CE2E87F8142BC90A00519A68 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
|
CE2E87F8142BC90A00519A68 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
|
||||||
CE2E87FB142BC92C00519A68 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
|
CE2E87FB142BC92C00519A68 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
|
||||||
CE2E87FC142BC92C00519A68 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
|
CE2E87FC142BC92C00519A68 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
|
||||||
|
CE335AEE14B393C60000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CE335AEF14B393C60000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE335AF014B393C60000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE335AF514B393DC0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
CE335AF714B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE335AF814B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE335AF914B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE335AFA14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CE335AFB14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.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>"; };
|
||||||
|
CE335B0514B393FB0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.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; };
|
||||||
@@ -178,7 +194,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; };
|
||||||
@@ -202,7 +217,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>"; };
|
||||||
@@ -221,23 +235,68 @@
|
|||||||
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>"; };
|
||||||
|
CEC3D37D14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D37E14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D37F14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D38014911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D38114911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D38214911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D38B14911263006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D38D14911274006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
CEC3D38F14911288006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D39014911288006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CEC3D39114911288006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
CEC8F3091416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = "<group>"; };
|
CEC8F3091416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
CEC8F30A1416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CEC8F30A1416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
CEC8F30B1416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
CEC8F30B1416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
@@ -252,8 +311,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>"; };
|
||||||
@@ -272,7 +329,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 */
|
||||||
@@ -283,6 +339,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;
|
||||||
};
|
};
|
||||||
@@ -292,13 +349,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 */,
|
||||||
);
|
);
|
||||||
@@ -308,6 +363,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 */,
|
||||||
@@ -338,6 +394,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 */,
|
||||||
@@ -349,9 +406,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 */,
|
||||||
@@ -382,8 +440,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 */,
|
||||||
@@ -393,19 +449,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 = (
|
||||||
@@ -453,16 +496,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 */,
|
||||||
@@ -473,7 +512,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 */,
|
||||||
@@ -487,40 +525,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 = (
|
||||||
@@ -575,6 +647,8 @@
|
|||||||
zh_CN,
|
zh_CN,
|
||||||
cs,
|
cs,
|
||||||
it,
|
it,
|
||||||
|
hy,
|
||||||
|
ru,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -590,7 +664,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 */,
|
||||||
@@ -609,6 +682,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;
|
||||||
};
|
};
|
||||||
@@ -619,12 +694,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 */,
|
||||||
@@ -634,7 +707,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 */,
|
||||||
@@ -655,6 +727,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;
|
||||||
};
|
};
|
||||||
@@ -670,6 +760,8 @@
|
|||||||
CEC8F3141416A0FC004D28F3 /* zh_CN */,
|
CEC8F3141416A0FC004D28F3 /* zh_CN */,
|
||||||
CE74255114603152002F8E3E /* cs */,
|
CE74255114603152002F8E3E /* cs */,
|
||||||
CE7A6998146443090007D927 /* it */,
|
CE7A6998146443090007D927 /* it */,
|
||||||
|
CEC3D37C14911253006B1A91 /* hy */,
|
||||||
|
CE335AF714B393EE0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -683,6 +775,8 @@
|
|||||||
CEC8F3151416A0FC004D28F3 /* zh_CN */,
|
CEC8F3151416A0FC004D28F3 /* zh_CN */,
|
||||||
CE74255214603152002F8E3E /* cs */,
|
CE74255214603152002F8E3E /* cs */,
|
||||||
CE7A6999146443090007D927 /* it */,
|
CE7A6999146443090007D927 /* it */,
|
||||||
|
CEC3D37D14911253006B1A91 /* hy */,
|
||||||
|
CE335AF814B393EE0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -696,6 +790,8 @@
|
|||||||
CEC8F3171416A0FC004D28F3 /* zh_CN */,
|
CEC8F3171416A0FC004D28F3 /* zh_CN */,
|
||||||
CE74255414603152002F8E3E /* cs */,
|
CE74255414603152002F8E3E /* cs */,
|
||||||
CE7A699B146443090007D927 /* it */,
|
CE7A699B146443090007D927 /* it */,
|
||||||
|
CEC3D37F14911253006B1A91 /* hy */,
|
||||||
|
CE335AFA14B393EE0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -709,6 +805,8 @@
|
|||||||
CEC8F3181416A0FC004D28F3 /* zh_CN */,
|
CEC8F3181416A0FC004D28F3 /* zh_CN */,
|
||||||
CE74255614603152002F8E3E /* cs */,
|
CE74255614603152002F8E3E /* cs */,
|
||||||
CE7A699D146443090007D927 /* it */,
|
CE7A699D146443090007D927 /* it */,
|
||||||
|
CEC3D38114911253006B1A91 /* hy */,
|
||||||
|
CE335AFC14B393EE0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -722,6 +820,8 @@
|
|||||||
CEC8F3191416A0FC004D28F3 /* zh_CN */,
|
CEC8F3191416A0FC004D28F3 /* zh_CN */,
|
||||||
CE74255714603152002F8E3E /* cs */,
|
CE74255714603152002F8E3E /* cs */,
|
||||||
CE7A699E146443090007D927 /* it */,
|
CE7A699E146443090007D927 /* it */,
|
||||||
|
CEC3D38214911253006B1A91 /* hy */,
|
||||||
|
CE335AFD14B393EE0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -735,6 +835,8 @@
|
|||||||
CEC8F3201416A109004D28F3 /* zh_CN */,
|
CEC8F3201416A109004D28F3 /* zh_CN */,
|
||||||
CE74255F1460318D002F8E3E /* cs */,
|
CE74255F1460318D002F8E3E /* cs */,
|
||||||
CE7A69A6146443170007D927 /* it */,
|
CE7A69A6146443170007D927 /* it */,
|
||||||
|
CEC3D38B14911263006B1A91 /* hy */,
|
||||||
|
CE335B0514B393FB0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -748,6 +850,8 @@
|
|||||||
CEC8F3111416A0F0004D28F3 /* zh_CN */,
|
CEC8F3111416A0F0004D28F3 /* zh_CN */,
|
||||||
CE74254414603143002F8E3E /* cs */,
|
CE74254414603143002F8E3E /* cs */,
|
||||||
CE7A6992146442F80007D927 /* it */,
|
CE7A6992146442F80007D927 /* it */,
|
||||||
|
CEC3D38D14911274006B1A91 /* hy */,
|
||||||
|
CE335AF514B393DC0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -761,6 +865,8 @@
|
|||||||
CEC8F30B1416A0D2004D28F3 /* zh_CN */,
|
CEC8F30B1416A0D2004D28F3 /* zh_CN */,
|
||||||
CE74253D14603120002F8E3E /* cs */,
|
CE74253D14603120002F8E3E /* cs */,
|
||||||
CE7A69AA146443360007D927 /* it */,
|
CE7A69AA146443360007D927 /* it */,
|
||||||
|
CEC3D39114911288006B1A91 /* hy */,
|
||||||
|
CE335AF014B393C60000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -775,6 +881,8 @@
|
|||||||
CECE37A51423EA980005187F /* zh_CN */,
|
CECE37A51423EA980005187F /* zh_CN */,
|
||||||
CE74255514603152002F8E3E /* cs */,
|
CE74255514603152002F8E3E /* cs */,
|
||||||
CE7A699C146443090007D927 /* it */,
|
CE7A699C146443090007D927 /* it */,
|
||||||
|
CEC3D38014911253006B1A91 /* hy */,
|
||||||
|
CE335AFB14B393EE0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -788,6 +896,8 @@
|
|||||||
CEC8F3161416A0FC004D28F3 /* zh_CN */,
|
CEC8F3161416A0FC004D28F3 /* zh_CN */,
|
||||||
CE74255314603152002F8E3E /* cs */,
|
CE74255314603152002F8E3E /* cs */,
|
||||||
CE7A699A146443090007D927 /* it */,
|
CE7A699A146443090007D927 /* it */,
|
||||||
|
CEC3D37E14911253006B1A91 /* hy */,
|
||||||
|
CE335AF914B393EE0000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = ExtraFairwareReminder.xib;
|
name = ExtraFairwareReminder.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -801,6 +911,8 @@
|
|||||||
CEC8F3091416A0D2004D28F3 /* zh_CN */,
|
CEC8F3091416A0D2004D28F3 /* zh_CN */,
|
||||||
CE74253B14603120002F8E3E /* cs */,
|
CE74253B14603120002F8E3E /* cs */,
|
||||||
CE7A69A8146443360007D927 /* it */,
|
CE7A69A8146443360007D927 /* it */,
|
||||||
|
CEC3D38F14911288006B1A91 /* hy */,
|
||||||
|
CE335AEE14B393C60000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -814,6 +926,8 @@
|
|||||||
CEC8F30A1416A0D2004D28F3 /* zh_CN */,
|
CEC8F30A1416A0D2004D28F3 /* zh_CN */,
|
||||||
CE74253C14603120002F8E3E /* cs */,
|
CE74253C14603120002F8E3E /* cs */,
|
||||||
CE7A69A9146443360007D927 /* it */,
|
CE7A69A9146443360007D927 /* it */,
|
||||||
|
CEC3D39014911288006B1A91 /* hy */,
|
||||||
|
CE335AEF14B393C60000AF1A /* ru */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -830,6 +944,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;
|
||||||
};
|
};
|
||||||
@@ -840,8 +958,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;
|
||||||
};
|
};
|
||||||
@@ -852,8 +970,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;
|
||||||
};
|
};
|
||||||
@@ -867,6 +985,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
|
|
||||||
@@ -28,11 +28,11 @@ http://www.hardcoded.net/licenses/bsd_license
|
|||||||
{@"dupe_count", 80, 16, 0, YES, nil},
|
{@"dupe_count", 80, 16, 0, YES, nil},
|
||||||
nil
|
nil
|
||||||
};
|
};
|
||||||
[[self columns] initializeColumns:defs];
|
[[table columns] initializeColumns:defs];
|
||||||
NSTableColumn *c = [matches tableColumnWithIdentifier:@"marked"];
|
NSTableColumn *c = [matches tableColumnWithIdentifier:@"marked"];
|
||||||
[[c dataCell] setButtonType:NSSwitchButton];
|
[[c dataCell] setButtonType:NSSwitchButton];
|
||||||
[[c dataCell] setControlSize:NSSmallControlSize];
|
[[c dataCell] setControlSize:NSSmallControlSize];
|
||||||
c = [[self tableView] tableColumnWithIdentifier:@"size"];
|
c = [matches tableColumnWithIdentifier:@"size"];
|
||||||
[[c dataCell] setAlignment:NSRightTextAlignment];
|
[[c dataCell] setAlignment:NSRightTextAlignment];
|
||||||
[[table columns] restoreColumns];
|
[[table columns] restoreColumns];
|
||||||
}
|
}
|
||||||
@@ -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,10 +79,10 @@
|
|||||||
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 */; };
|
||||||
|
CEE6D562149113570087CDFC /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE6D561149113570087CDFC /* HSColumns.m */; };
|
||||||
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
|
||||||
CEF12A7E124DFD400087B51D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A7D124DFD400087B51D /* HSTableView.m */; };
|
CEF12A7E124DFD400087B51D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A7D124DFD400087B51D /* HSTableView.m */; };
|
||||||
CEF12A84124DFD620087B51D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A83124DFD620087B51D /* ResultTable.m */; };
|
CEF12A84124DFD620087B51D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A83124DFD620087B51D /* ResultTable.m */; };
|
||||||
@@ -80,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;
|
||||||
};
|
};
|
||||||
@@ -90,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; };
|
||||||
@@ -111,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>"; };
|
||||||
@@ -129,12 +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; };
|
|
||||||
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; };
|
||||||
@@ -155,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; };
|
||||||
@@ -175,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>"; };
|
||||||
@@ -184,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; };
|
||||||
@@ -207,23 +248,17 @@
|
|||||||
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; };
|
|
||||||
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>"; };
|
||||||
@@ -232,7 +267,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>"; };
|
||||||
@@ -248,6 +282,20 @@
|
|||||||
CECB2ACC13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CECB2ACC13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
CECB2ACD13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
CECB2ACD13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
CEE660B7132253910036DB04 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CEE660B7132253910036DB04 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ExtraFairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
|
CEE6D5461491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D5471491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D5481491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D5491491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D54A1491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D54B1491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D553149113190087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D554149113190087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D557149113250087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; 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>"; };
|
||||||
|
CEE6D55B149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CEE6D560149113570087CDFC /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
|
||||||
|
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>"; };
|
||||||
CEEE156E1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
|
CEEE156E1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
CEEE156F1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CEEE156F1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
@@ -263,11 +311,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 */
|
||||||
@@ -278,6 +324,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;
|
||||||
};
|
};
|
||||||
@@ -287,7 +334,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 */,
|
||||||
@@ -295,7 +341,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 */,
|
||||||
);
|
);
|
||||||
@@ -305,6 +350,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 */,
|
||||||
@@ -336,6 +382,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 */,
|
||||||
@@ -346,9 +393,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 */,
|
||||||
@@ -383,6 +431,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 = (
|
||||||
@@ -399,7 +489,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 */,
|
||||||
@@ -410,11 +499,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 */,
|
||||||
@@ -423,7 +509,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 */,
|
||||||
@@ -437,36 +522,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>";
|
||||||
@@ -474,14 +551,14 @@
|
|||||||
CE9EA7421122C96C008CD2BC /* controllers */ = {
|
CE9EA7421122C96C008CD2BC /* controllers */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
CEE6D560149113570087CDFC /* HSColumns.h */,
|
||||||
|
CEE6D561149113570087CDFC /* HSColumns.m */,
|
||||||
CE9EA7431122C96C008CD2BC /* HSGUIController.h */,
|
CE9EA7431122C96C008CD2BC /* HSGUIController.h */,
|
||||||
CE9EA7441122C96C008CD2BC /* HSGUIController.m */,
|
CE9EA7441122C96C008CD2BC /* HSGUIController.m */,
|
||||||
CE9EA7451122C96C008CD2BC /* HSOutline.h */,
|
CE9EA7451122C96C008CD2BC /* HSOutline.h */,
|
||||||
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 */,
|
||||||
@@ -491,18 +568,6 @@
|
|||||||
path = ../../cocoalib/controllers;
|
path = ../../cocoalib/controllers;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
};
|
};
|
||||||
CE9EA74B1122C96C008CD2BC /* proxies */ = {
|
|
||||||
isa = PBXGroup;
|
|
||||||
children = (
|
|
||||||
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 = (
|
||||||
@@ -572,6 +637,7 @@
|
|||||||
zh_CN,
|
zh_CN,
|
||||||
cs,
|
cs,
|
||||||
it,
|
it,
|
||||||
|
hy,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -587,7 +653,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 */,
|
||||||
@@ -606,6 +671,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;
|
||||||
};
|
};
|
||||||
@@ -616,13 +683,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 */,
|
||||||
@@ -634,7 +699,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 */,
|
||||||
@@ -654,6 +718,25 @@
|
|||||||
CE7D24A51423B106002E2297 /* PrioritizeDialog.m in Sources */,
|
CE7D24A51423B106002E2297 /* PrioritizeDialog.m in Sources */,
|
||||||
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 */,
|
||||||
|
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;
|
||||||
};
|
};
|
||||||
@@ -669,6 +752,7 @@
|
|||||||
CE653CFA1416A0260058A022 /* zh_CN */,
|
CE653CFA1416A0260058A022 /* zh_CN */,
|
||||||
CEEE15841460328400783E91 /* cs */,
|
CEEE15841460328400783E91 /* cs */,
|
||||||
CE7A69B9146443AD0007D927 /* it */,
|
CE7A69B9146443AD0007D927 /* it */,
|
||||||
|
CEE6D5461491130D0087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -682,6 +766,7 @@
|
|||||||
CE653CFC1416A0260058A022 /* zh_CN */,
|
CE653CFC1416A0260058A022 /* zh_CN */,
|
||||||
CEEE15861460328400783E91 /* cs */,
|
CEEE15861460328400783E91 /* cs */,
|
||||||
CE7A69BB146443AD0007D927 /* it */,
|
CE7A69BB146443AD0007D927 /* it */,
|
||||||
|
CEE6D5481491130D0087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -695,6 +780,7 @@
|
|||||||
CE653CFD1416A0260058A022 /* zh_CN */,
|
CE653CFD1416A0260058A022 /* zh_CN */,
|
||||||
CEEE15881460328400783E91 /* cs */,
|
CEEE15881460328400783E91 /* cs */,
|
||||||
CE7A69BD146443AD0007D927 /* it */,
|
CE7A69BD146443AD0007D927 /* it */,
|
||||||
|
CEE6D54A1491130D0087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -708,6 +794,7 @@
|
|||||||
CE653CFE1416A0260058A022 /* zh_CN */,
|
CE653CFE1416A0260058A022 /* zh_CN */,
|
||||||
CEEE15891460328400783E91 /* cs */,
|
CEEE15891460328400783E91 /* cs */,
|
||||||
CE7A69BE146443AD0007D927 /* it */,
|
CE7A69BE146443AD0007D927 /* it */,
|
||||||
|
CEE6D54B1491130D0087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -721,6 +808,7 @@
|
|||||||
CE653CF61416A0140058A022 /* zh_CN */,
|
CE653CF61416A0140058A022 /* zh_CN */,
|
||||||
CEEE15901460329000783E91 /* cs */,
|
CEEE15901460329000783E91 /* cs */,
|
||||||
CE7A69C5146443B90007D927 /* it */,
|
CE7A69C5146443B90007D927 /* it */,
|
||||||
|
CEE6D553149113190087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -734,6 +822,7 @@
|
|||||||
CE653CF71416A0140058A022 /* zh_CN */,
|
CE653CF71416A0140058A022 /* zh_CN */,
|
||||||
CEEE15911460329000783E91 /* cs */,
|
CEEE15911460329000783E91 /* cs */,
|
||||||
CE7A69C6146443B90007D927 /* it */,
|
CE7A69C6146443B90007D927 /* it */,
|
||||||
|
CEE6D554149113190087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -747,6 +836,7 @@
|
|||||||
CE653CF314169F2C0058A022 /* zh_CN */,
|
CE653CF314169F2C0058A022 /* zh_CN */,
|
||||||
CEEE15771460327300783E91 /* cs */,
|
CEEE15771460327300783E91 /* cs */,
|
||||||
CE7A69B3146443A00007D927 /* it */,
|
CE7A69B3146443A00007D927 /* it */,
|
||||||
|
CEE6D557149113250087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -760,6 +850,7 @@
|
|||||||
CE653CED14169F140058A022 /* zh_CN */,
|
CE653CED14169F140058A022 /* zh_CN */,
|
||||||
CEEE15701460325B00783E91 /* cs */,
|
CEEE15701460325B00783E91 /* cs */,
|
||||||
CE7A69CB146443CB0007D927 /* it */,
|
CE7A69CB146443CB0007D927 /* it */,
|
||||||
|
CEE6D55B149113320087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -774,6 +865,7 @@
|
|||||||
CE653CFB1416A0260058A022 /* zh_CN */,
|
CE653CFB1416A0260058A022 /* zh_CN */,
|
||||||
CEEE15851460328400783E91 /* cs */,
|
CEEE15851460328400783E91 /* cs */,
|
||||||
CE7A69BA146443AD0007D927 /* it */,
|
CE7A69BA146443AD0007D927 /* it */,
|
||||||
|
CEE6D5471491130D0087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = ExtraFairwareReminder.xib;
|
name = ExtraFairwareReminder.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -787,6 +879,7 @@
|
|||||||
CE21AFB81423EA6E00DE35BF /* zh_CN */,
|
CE21AFB81423EA6E00DE35BF /* zh_CN */,
|
||||||
CEEE15871460328400783E91 /* cs */,
|
CEEE15871460328400783E91 /* cs */,
|
||||||
CE7A69BC146443AD0007D927 /* it */,
|
CE7A69BC146443AD0007D927 /* it */,
|
||||||
|
CEE6D5491491130D0087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -800,6 +893,7 @@
|
|||||||
CE653CEB14169F140058A022 /* zh_CN */,
|
CE653CEB14169F140058A022 /* zh_CN */,
|
||||||
CEEE156E1460325B00783E91 /* cs */,
|
CEEE156E1460325B00783E91 /* cs */,
|
||||||
CE7A69C9146443CB0007D927 /* it */,
|
CE7A69C9146443CB0007D927 /* it */,
|
||||||
|
CEE6D559149113320087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -813,6 +907,7 @@
|
|||||||
CE653CEC14169F140058A022 /* zh_CN */,
|
CE653CEC14169F140058A022 /* zh_CN */,
|
||||||
CEEE156F1460325B00783E91 /* cs */,
|
CEEE156F1460325B00783E91 /* cs */,
|
||||||
CE7A69CA146443CB0007D927 /* it */,
|
CE7A69CA146443CB0007D927 /* it */,
|
||||||
|
CEE6D55A149113320087CDFC /* hy */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -829,6 +924,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;
|
||||||
};
|
};
|
||||||
@@ -839,8 +938,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;
|
||||||
};
|
};
|
||||||
@@ -851,8 +950,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;
|
||||||
};
|
};
|
||||||
@@ -866,6 +965,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 hscommon.cocoa 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,11 +102,22 @@
|
|||||||
/* 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; };
|
||||||
8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
|
CE00BBBD14910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBBE14910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBBF14910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBC114910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBC214910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBC314910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
|
CE00BBD014910CA3006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBD114910CA3006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CE00BBD214910CA3006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
CE05341312E5DC260029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../../cocoalib/fr.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
CE05341312E5DC260029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../../cocoalib/fr.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CE0564A814169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = "<group>"; };
|
CE0564A814169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
CE0564A914169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
CE0564A914169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
@@ -104,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>"; };
|
||||||
@@ -118,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; };
|
||||||
@@ -193,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; };
|
||||||
@@ -217,6 +250,18 @@
|
|||||||
CECFFF2013CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; };
|
CECFFF2013CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; };
|
CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; };
|
||||||
CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = "<group>"; };
|
CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CED638D514B38CC800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/about.xib; sourceTree = "<group>"; };
|
||||||
|
CED638D614B38CC800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/ErrorReportWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CED638D714B38CC800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/FairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CED638DC14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CED638DD14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
|
CED638DE14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ExtraFairwareReminder.xib; sourceTree = "<group>"; };
|
||||||
|
CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = "<group>"; };
|
||||||
|
CED638E014B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CED638E114B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = "<group>"; };
|
||||||
|
CED638E214B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||||
|
CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||||
|
CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = "<group>"; };
|
CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||||
CED64CF8145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
CED64CF8145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DetailsPanel.xib; sourceTree = "<group>"; };
|
||||||
CED64CF9145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
CED64CF9145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||||
@@ -230,6 +275,25 @@
|
|||||||
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>"; };
|
||||||
|
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>"; };
|
||||||
@@ -238,11 +302,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; };
|
||||||
@@ -252,10 +313,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 */
|
||||||
@@ -263,6 +322,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 */,
|
||||||
@@ -277,10 +337,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>";
|
||||||
@@ -288,6 +346,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 */,
|
||||||
@@ -318,6 +377,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 */,
|
||||||
@@ -329,9 +389,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 */,
|
||||||
@@ -363,6 +424,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 = (
|
||||||
@@ -382,38 +485,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 = (
|
||||||
@@ -443,26 +531,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 */,
|
||||||
@@ -474,15 +558,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 */,
|
||||||
@@ -492,20 +573,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>";
|
||||||
@@ -556,6 +632,8 @@
|
|||||||
zh_CN,
|
zh_CN,
|
||||||
cs,
|
cs,
|
||||||
it,
|
it,
|
||||||
|
hy,
|
||||||
|
ru,
|
||||||
);
|
);
|
||||||
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
|
||||||
projectDirPath = "";
|
projectDirPath = "";
|
||||||
@@ -571,7 +649,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 */,
|
||||||
@@ -590,6 +667,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;
|
||||||
};
|
};
|
||||||
@@ -600,11 +679,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 */,
|
||||||
@@ -615,14 +692,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 */,
|
||||||
@@ -630,11 +703,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;
|
||||||
};
|
};
|
||||||
@@ -650,6 +744,8 @@
|
|||||||
CE0564A814169D6C00D3D907 /* zh_CN */,
|
CE0564A814169D6C00D3D907 /* zh_CN */,
|
||||||
CE112F5F145EF28D009C9E3E /* cs */,
|
CE112F5F145EF28D009C9E3E /* cs */,
|
||||||
CE7A6985146442340007D927 /* it */,
|
CE7A6985146442340007D927 /* it */,
|
||||||
|
CE00BBD014910CA3006A717C /* hy */,
|
||||||
|
CED638D514B38CC800B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = about.xib;
|
name = about.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -663,6 +759,8 @@
|
|||||||
CE0564A914169D6C00D3D907 /* zh_CN */,
|
CE0564A914169D6C00D3D907 /* zh_CN */,
|
||||||
CE112F60145EF28D009C9E3E /* cs */,
|
CE112F60145EF28D009C9E3E /* cs */,
|
||||||
CE7A6986146442340007D927 /* it */,
|
CE7A6986146442340007D927 /* it */,
|
||||||
|
CE00BBD114910CA3006A717C /* hy */,
|
||||||
|
CED638D614B38CC800B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = ErrorReportWindow.xib;
|
name = ErrorReportWindow.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -676,6 +774,8 @@
|
|||||||
CE0564B514169DB100D3D907 /* zh_CN */,
|
CE0564B514169DB100D3D907 /* zh_CN */,
|
||||||
CED64CFA145EF07700572B00 /* cs */,
|
CED64CFA145EF07700572B00 /* cs */,
|
||||||
CE7A6979146442160007D927 /* it */,
|
CE7A6979146442160007D927 /* it */,
|
||||||
|
CE00BBBF14910C5E006A717C /* hy */,
|
||||||
|
CED638DE14B38CEC00B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = ExtraFairwareReminder.xib;
|
name = ExtraFairwareReminder.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -689,6 +789,8 @@
|
|||||||
CE0564AA14169D6C00D3D907 /* zh_CN */,
|
CE0564AA14169D6C00D3D907 /* zh_CN */,
|
||||||
CE112F61145EF28D009C9E3E /* cs */,
|
CE112F61145EF28D009C9E3E /* cs */,
|
||||||
CE7A6987146442340007D927 /* it */,
|
CE7A6987146442340007D927 /* it */,
|
||||||
|
CE00BBD214910CA3006A717C /* hy */,
|
||||||
|
CED638D714B38CC800B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = FairwareReminder.xib;
|
name = FairwareReminder.xib;
|
||||||
path = ../../cocoalib/xib;
|
path = ../../cocoalib/xib;
|
||||||
@@ -703,6 +805,8 @@
|
|||||||
CE0564B314169DB100D3D907 /* zh_CN */,
|
CE0564B314169DB100D3D907 /* zh_CN */,
|
||||||
CED64CF8145EF07700572B00 /* cs */,
|
CED64CF8145EF07700572B00 /* cs */,
|
||||||
CE7A6977146442160007D927 /* it */,
|
CE7A6977146442160007D927 /* it */,
|
||||||
|
CE00BBBD14910C5E006A717C /* hy */,
|
||||||
|
CED638DC14B38CEC00B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = DetailsPanel.xib;
|
name = DetailsPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -716,6 +820,8 @@
|
|||||||
CE0564B414169DB100D3D907 /* zh_CN */,
|
CE0564B414169DB100D3D907 /* zh_CN */,
|
||||||
CED64CF9145EF07700572B00 /* cs */,
|
CED64CF9145EF07700572B00 /* cs */,
|
||||||
CE7A6978146442160007D927 /* it */,
|
CE7A6978146442160007D927 /* it */,
|
||||||
|
CE00BBBE14910C5E006A717C /* hy */,
|
||||||
|
CED638DD14B38CEC00B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = DirectoryPanel.xib;
|
name = DirectoryPanel.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -729,6 +835,8 @@
|
|||||||
CE0564B614169DB100D3D907 /* zh_CN */,
|
CE0564B614169DB100D3D907 /* zh_CN */,
|
||||||
CED64CFB145EF07700572B00 /* cs */,
|
CED64CFB145EF07700572B00 /* cs */,
|
||||||
CE7A697A146442160007D927 /* it */,
|
CE7A697A146442160007D927 /* it */,
|
||||||
|
CE00BBC014910C5E006A717C /* hy */,
|
||||||
|
CED638DF14B38CEC00B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = MainMenu.xib;
|
name = MainMenu.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -742,6 +850,8 @@
|
|||||||
CE0564B714169DB100D3D907 /* zh_CN */,
|
CE0564B714169DB100D3D907 /* zh_CN */,
|
||||||
CED64CFD145EF07700572B00 /* cs */,
|
CED64CFD145EF07700572B00 /* cs */,
|
||||||
CE7A697C146442160007D927 /* it */,
|
CE7A697C146442160007D927 /* it */,
|
||||||
|
CE00BBC214910C5E006A717C /* hy */,
|
||||||
|
CED638E114B38CEC00B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = ProblemDialog.xib;
|
name = ProblemDialog.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -755,6 +865,8 @@
|
|||||||
CE0564B814169DB100D3D907 /* zh_CN */,
|
CE0564B814169DB100D3D907 /* zh_CN */,
|
||||||
CED64CFE145EF07700572B00 /* cs */,
|
CED64CFE145EF07700572B00 /* cs */,
|
||||||
CE7A697D146442160007D927 /* it */,
|
CE7A697D146442160007D927 /* it */,
|
||||||
|
CE00BBC314910C5E006A717C /* hy */,
|
||||||
|
CED638E214B38CEC00B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = ResultWindow.xib;
|
name = ResultWindow.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -768,6 +880,8 @@
|
|||||||
CE0564BF14169DDC00D3D907 /* zh_CN */,
|
CE0564BF14169DDC00D3D907 /* zh_CN */,
|
||||||
CED64D06145EF16300572B00 /* cs */,
|
CED64D06145EF16300572B00 /* cs */,
|
||||||
CE7A698B1464425A0007D927 /* it */,
|
CE7A698B1464425A0007D927 /* it */,
|
||||||
|
CE00BBCC14910C72006A717C /* hy */,
|
||||||
|
CED638EA14B38CF800B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = Preferences.xib;
|
name = Preferences.xib;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -781,6 +895,8 @@
|
|||||||
CE0564B014169D9E00D3D907 /* zh_CN */,
|
CE0564B014169D9E00D3D907 /* zh_CN */,
|
||||||
CED64CEB145EF06000572B00 /* cs */,
|
CED64CEB145EF06000572B00 /* cs */,
|
||||||
CE7A6971146442010007D927 /* it */,
|
CE7A6971146442010007D927 /* it */,
|
||||||
|
CE00BBCE14910C8E006A717C /* hy */,
|
||||||
|
CED638EC14B38D0900B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = Localizable.strings;
|
name = Localizable.strings;
|
||||||
sourceTree = SOURCE_ROOT;
|
sourceTree = SOURCE_ROOT;
|
||||||
@@ -794,6 +910,8 @@
|
|||||||
CEF27A9E1423EAD90048ADFA /* zh_CN */,
|
CEF27A9E1423EAD90048ADFA /* zh_CN */,
|
||||||
CED64CFC145EF07700572B00 /* cs */,
|
CED64CFC145EF07700572B00 /* cs */,
|
||||||
CE7A697B146442160007D927 /* it */,
|
CE7A697B146442160007D927 /* it */,
|
||||||
|
CE00BBC114910C5E006A717C /* hy */,
|
||||||
|
CED638E014B38CEC00B88D00 /* ru */,
|
||||||
);
|
);
|
||||||
name = PrioritizeDialog.xib;
|
name = PrioritizeDialog.xib;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -820,8 +938,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;
|
||||||
};
|
};
|
||||||
@@ -832,8 +950,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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -1,2 +1,2 @@
|
|||||||
__version__ = '2.3.0'
|
__version__ = '2.4.0'
|
||||||
__appname__ = 'dupeGuru Picture Edition'
|
__appname__ = 'dupeGuru Picture Edition'
|
||||||
@@ -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,14 @@
|
|||||||
|
=== 2.4.0 (2012-01-06)
|
||||||
|
|
||||||
|
* Added multiple-selection in folder selection dialog for a more efficient folder removal. (#179)
|
||||||
|
* Fixed a crash in the prioritize dialog. (#178)
|
||||||
|
* Fixed a bug where mass marking with a filter would mark more than filtered duplicates. (#181)
|
||||||
|
* Fixed random hard crashes. [Mac OS X] (#183 #184)
|
||||||
|
* Added Czech localization by Aleš Nehyba.
|
||||||
|
* Added Italian localization by Paolo Rossi.
|
||||||
|
* Added Armenian localization by Hrant Ohanyan.
|
||||||
|
* Added Russian localization by Igor Pavlov.
|
||||||
|
|
||||||
=== 2.3.0 (2011-10-04)
|
=== 2.3.0 (2011-10-04)
|
||||||
|
|
||||||
* Added duplicate re-prioritization dialog. (#138)
|
* Added duplicate re-prioritization dialog. (#138)
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ rst_epilog = u"""
|
|||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
#language = None
|
language = 'de'
|
||||||
|
|
||||||
# There are two options for replacing |today|: either, you set today to some
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
# non-false value, then it is used:
|
# non-false value, then it is used:
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ Below is the list of people who contributed, directly or indirectly to dupeGuru.
|
|||||||
|
|
||||||
| **Paolo Rossi, Italian localization**
|
| **Paolo Rossi, Italian localization**
|
||||||
|
|
||||||
|
| **Hrant Ohanyan, Armenian localization**
|
||||||
|
|
||||||
|
| **Igor Pavlov, Russian 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,15 @@
|
|||||||
|
|
||||||
.. only:: edition_se
|
.. only:: edition_se
|
||||||
|
|
||||||
This document is also available in `french <http://www.hardcoded.net/dupeguru/help/fr/>`__ and `german <http://www.hardcoded.net/dupeguru/help/de/>`__.
|
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/>`__.
|
||||||
|
|
||||||
.. only:: edition_me
|
.. only:: edition_me
|
||||||
|
|
||||||
This document is also available in `french <http://www.hardcoded.net/dupeguru_me/help/fr/>`__ and `german <http://www.hardcoded.net/dupeguru_me/help/de/>`__.
|
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/>`__.
|
||||||
|
|
||||||
.. only:: edition_pe
|
.. only:: edition_pe
|
||||||
|
|
||||||
This document is also available in `french <http://www.hardcoded.net/dupeguru_pe/help/fr/>`__ and `german <http://www.hardcoded.net/dupeguru_pe/help/de/>`__.
|
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/>`__.
|
||||||
|
|
||||||
.. only:: edition_se or edition_me
|
.. only:: edition_se or edition_me
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ rst_epilog = u"""
|
|||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
#language = None
|
language = 'fr'
|
||||||
|
|
||||||
# There are two options for replacing |today|: either, you set today to some
|
# There are two options for replacing |today|: either, you set today to some
|
||||||
# non-false value, then it is used:
|
# non-false value, then it is used:
|
||||||
|
|||||||
@@ -15,6 +15,10 @@ Voici la liste des contributeurs de dupeGuru. Merci!
|
|||||||
|
|
||||||
| **Paolo Rossi, localisation italienne**
|
| **Paolo Rossi, localisation italienne**
|
||||||
|
|
||||||
|
| **Hrant Ohanyan, localisation arménienne**
|
||||||
|
|
||||||
|
| **Igor Pavlov, localisation russe**
|
||||||
|
|
||||||
| **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
|
||||||
|
|
||||||
|
|||||||
@@ -3,15 +3,15 @@ Aide |appname|
|
|||||||
|
|
||||||
.. only:: edition_se
|
.. only:: edition_se
|
||||||
|
|
||||||
Ce document est aussi disponible en `anglais <http://www.hardcoded.net/dupeguru/help/en/>`__ et en `allemand <http://www.hardcoded.net/dupeguru/help/de/>`__.
|
Ce document est aussi disponible en `anglais <http://www.hardcoded.net/dupeguru/help/en/>`__, en `allemand <http://www.hardcoded.net/dupeguru/help/de/>`__ et en `arménien <http://www.hardcoded.net/dupeguru/help/hy/>`__.
|
||||||
|
|
||||||
.. only:: edition_me
|
.. only:: edition_me
|
||||||
|
|
||||||
Ce document est aussi disponible en `anglais <http://www.hardcoded.net/dupeguru_me/help/en/>`__ et en `allemand <http://www.hardcoded.net/dupeguru_me/help/de/>`__.
|
Ce document est aussi disponible en `anglais <http://www.hardcoded.net/dupeguru_me/help/en/>`__, en `allemand <http://www.hardcoded.net/dupeguru_me/help/de/>`__ et en `arménien <http://www.hardcoded.net/dupeguru_me/help/hy/>`__.
|
||||||
|
|
||||||
.. only:: edition_pe
|
.. only:: edition_pe
|
||||||
|
|
||||||
Ce document est aussi disponible en `anglais <http://www.hardcoded.net/dupeguru_pe/help/en/>`__ et en `allemand <http://www.hardcoded.net/dupeguru_pe/help/de/>`__.
|
Ce document est aussi disponible en `anglais <http://www.hardcoded.net/dupeguru_pe/help/en/>`__, en `allemand <http://www.hardcoded.net/dupeguru_pe/help/de/>`__ et en `arménien <http://www.hardcoded.net/dupeguru_pe/help/hy/>`__.
|
||||||
|
|
||||||
.. only:: edition_se or edition_me
|
.. only:: edition_se or edition_me
|
||||||
|
|
||||||
|
|||||||
6
help/hy/changelog.tmpl
Executable file
6
help/hy/changelog.tmpl
Executable file
@@ -0,0 +1,6 @@
|
|||||||
|
:tocdepth: 1
|
||||||
|
|
||||||
|
Changelog
|
||||||
|
=========
|
||||||
|
|
||||||
|
{changelog}
|
||||||
223
help/hy/conf.tmpl
Executable file
223
help/hy/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)
|
||||||
|
]
|
||||||
36
help/hy/credits.rst
Executable file
36
help/hy/credits.rst
Executable file
@@ -0,0 +1,36 @@
|
|||||||
|
Մասնակիցներ
|
||||||
|
===========
|
||||||
|
|
||||||
|
Ահա այն մարդկանց ցանկը, ովքեր ուղղակիորեն և անուղղակիորեն մասնակցել են dupeGuru-ի զարգացմանը:
|
||||||
|
|
||||||
|
| **Virgil Dupras, Զարգացնող** (`Վեբ կայքը <http://www.hardcoded.net>`__)
|
||||||
|
|
||||||
|
| **Jérôme Cantin, Պատկերակների հեղինակ**
|
||||||
|
| dupeGuru-ի պատկերակների հեղինակը
|
||||||
|
|
||||||
|
| **Gregor Tätzner, Գերմաներեն թարգմանիչը**
|
||||||
|
|
||||||
|
| **Eric Dee, Չինարեն թարգմանիչը**
|
||||||
|
|
||||||
|
| **Aleš Nehyba, Չեխերեն թարգմանիչը**
|
||||||
|
|
||||||
|
| **Paolo Rossi, Իտալերեն թարգմանիչը**
|
||||||
|
|
||||||
|
| **Hrant Ohanyan, Հայերեն թարգմանիչը**
|
||||||
|
|
||||||
|
| **Igor Pavlov, Russian localization**
|
||||||
|
|
||||||
|
| **Python, Ծրագրավորման լեզուն** (`Վեբ կայքը <http://www.python.org>`__)
|
||||||
|
| Լավագույներից լավագույնը
|
||||||
|
|
||||||
|
| **PyObjC, Python-ից Cocoa կամուրջ** (`Վեբ կայքը <http://pyobjc.sourceforge.net>`__)
|
||||||
|
| Օգտագործվում է Mac OS X տարբերակի համար
|
||||||
|
|
||||||
|
| **PyQt, Python-ից Qt կամուրջ** (`Վեբ կայքը <http://www.riverbankcomputing.co.uk>`__)
|
||||||
|
| Օգտագործվում է Windows-ի տարբերակի
|
||||||
|
|
||||||
|
| **Sparkle, Ինքնաթարմացվող շտեմարան** (`Վեբ կայքը <http://andymatuschak.org/pages/sparkle>`__)
|
||||||
|
| Օգտագործվում է Mac OS X տարբերակի համար
|
||||||
|
|
||||||
|
| **Դուք, dupeGuru-ի օգտվողը**
|
||||||
|
| Ողջույն!
|
||||||
113
help/hy/faq.rst
Executable file
113
help/hy/faq.rst
Executable file
@@ -0,0 +1,113 @@
|
|||||||
|
Հաճախ Տրվող Հարցեր
|
||||||
|
==========================
|
||||||
|
|
||||||
|
.. 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 կրկնօրինակների հետ միաժամանակ: Ծրագրի
|
||||||
|
`Անվճար տարբերակում <http://open.hardcoded.net/about/>`_ mode, այնուհանդերձ չկան էական սահմանափակումներ:
|
||||||
|
|
||||||
|
.. topic::Ջնջելու համար նշելու դաշտի պատուհանը ակտիվ չէ: Ի՞նչ անել:
|
||||||
|
|
||||||
|
Չեք կարող նշել հղումը (Առաջին ֆայլը) կրկնօրինակվող խմբի: Այնուհանդերձ, ինչ կարող եք Դուք անել առաջ մղելու համար կրկնօրինակվող ֆայլը հղմանը: Այսպիսով, եթե ֆայլը ցանկանում եք նշել որպես հղում, ընտրեք կրկնօրինակվող ֆայլը խմբից, որը ցանկանում եք տանել հղման մեջ, և սեղմեք **Գործողություններ-->Դարձնել ընտրվածը հղում**: Եթե հղվող ֆայլը հղման թղթապանակից է (ֆայլի անունը գրված է կապույտ տառերով), Դուք չեք կարող ջնջել այն հղման դիրքից:
|
||||||
|
|
||||||
|
.. topic:: Ես ունեմ թղթապանակ, որտեղից ես իրապես չեմ ցանկանում ջնջել ֆայլեր:
|
||||||
|
|
||||||
|
Եթե Դուք ցանկանում եք համոզված լինել, որ dupeGuru-ն երբեք չի ջնջի ֆայլ կոնկրետ թղթապանակից, համոզված եղեք, որ տվել եք կարգը **Հղման** :doc:`folders`:
|
||||||
|
|
||||||
|
.. topic:: Ի՞նչ է սա '(X վնասված)'՝ նշված դրության տողում:
|
||||||
|
|
||||||
|
Որոշ դեպքերում, որոշ համընկնումներ ներառված չեն վերջնական արդյունքում երկրորդական պատճառներով: Եկեք նայենք կոնկրետ օրինակի վրա: Մենք ունենք 3 ֆայլ. A, B և C: Մենք ստուգում ենք այն՝ օգտագործելով ֆիլտրի ցածր մակարդակով: Ստուգիչը արդեն որոշել է, որ A համընկնումները B-ի, A-ի համընկնումները C-ին, բայց B-ն **չի** համընկնում C-ին: Այստեղ dupeGuru-ն ունի մի շարք խնդիրներ: Այն չի կարող ստեղծել կրկնօրինակվող խումբ A, B և C իրենում, որովհետև ոչ բոլոր ֆայլերն են խմբում համընկնում միմյանց: Այն կարող է ստեղծել 2 խումբ. մեկ A-B խումբ և ապա մեկ A-C խումբ, բայց այն չի լինի՝ անվտանգության նկատառումներից ելնելով: Եկեք մտածենք սրա մասին. Եթե B-ն չի համընկնում C-ին, հնարավոր է դա նշանակում է, որ անգամ B, C կամ երկուսն էլ իրականում կրկնօրինակներ չեն: Եթե այնտեղ լինեն 2 խմբեր (A-B և A-C), ապա Դուք պետք է ջնջեք B-ն և C-ն: Եթե դրանցից մեկը կրկնօրինակ չէ, ապա դա այն չէ, ինչը որ Ձեզ պետք է, այնպես չէ՞: Այսպիսով, ինչ dupeGuru չի մի դեպքում նման սրան՝ բացառելով A-C համընկնումը (և ավելացնում է տեղեկացում դրության տողում): Այսպիսով, եթե Դուք ջնջեք B-ն և վերսկսեք ստուգումը, ապա կունենք A-C համընկնում հաջորդ արդյունքներում:
|
||||||
|
|
||||||
|
.. topic:: Ես ցանկանում եմ նշել բոլոր ֆայլերը որոշված թղթապանակից: Ի՞նչ կարող եմ ես անել:
|
||||||
|
|
||||||
|
Միացնել :doc:`Միայն Սխալները <results>` եղանակը և սեղմեք թղթապանակի սյանը՝ դասավորելու համար կրկնօրինակները ըստ թղթապանակների: Հետագայում հեշտ կլինի ընտրելու բոլոր կրկնօրինակները նույն թղթապանակից և ապա սեղմեք Space՝ ընտրելու ահմար բոլոր կրկնօրինակները:
|
||||||
|
|
||||||
|
.. only:: edition_se or edition_pe
|
||||||
|
|
||||||
|
.. topic:: Ես ցանկանում եմ հեռացնել բոլոր ֆայլերը, որոնք 300 ԿԲ-ից ավելի են հղվող ֆայլից: Ի՞նչ կարող եմ ես անել:
|
||||||
|
|
||||||
|
* Միացնել :doc:`Միայն Սխալները <results>` եղանակում:
|
||||||
|
* Միացնել **Դելտա նշանակությունները** եղանակը:
|
||||||
|
* Սեղմեք "Չափը" սյանը՝ դասավորելու համար արդյունները ըստ չափի;
|
||||||
|
* Ընտրեք բոլոր կրկնօրինակները՝ -300-ից ցածր:
|
||||||
|
* Սեղմեք **Ջնջել ընտրվածը Արդյունքներից**:
|
||||||
|
* Ընտրեք բոլոր կրկնօրինակերը, որոնք մեծ են 300-ից:
|
||||||
|
* Սեղմեք **Ջնջել ընտրվածները Արդյունքներից**:
|
||||||
|
|
||||||
|
.. topic:: Ես ցանկանում եմ դարձնել վերջին փոփոխված ֆայլերը հղման ֆայլեր: Ի՞նչ կարող եմ ես անել:
|
||||||
|
|
||||||
|
* Միացնել :doc:`Միայն Սխալները <results>` եղանակում:
|
||||||
|
* Միացնել **Դելտա նշանակությունները** եղանակը:
|
||||||
|
* Սեղմեք "Ըստ փոփոխության" սյանը՝ արդյունքները ըստ փոփոխման դասավորելու համար:
|
||||||
|
* Սեղմեք "Ըստ փոփոխության" սյանը՝ կրկնելու համար դասավորման կարգը:
|
||||||
|
* Ընտրել բոլոր կրկնօրինակները 0-ից բարձր:
|
||||||
|
* Սեղմեք **Դարձնել ընտրվածը հղում**:
|
||||||
|
|
||||||
|
.. topic:: Ես ցանկանում եմ նշել բոլոր այն կրկնօրինակները, որոնք պարունակում են "պատճենել" բառը: Ինչպե՞ս դա անել:
|
||||||
|
|
||||||
|
* **Windows**. Սեղմեք **Գործողություններ --> կիրառել ֆիլտրը**, ապա նշեք "պատճենել", հետո սեղմեք ԼԱՎ:
|
||||||
|
* **Mac OS X**. Նշեք "պատճենել" "Ֆիլտրում" դաշտում՝ գործիքների վահանակում:
|
||||||
|
* Սեղմեք **Նշել --> Նշել բոլորը**:
|
||||||
|
|
||||||
|
.. only:: edition_me
|
||||||
|
|
||||||
|
.. topic:: Ես ցանկանում եմ հեռացնել բոլոր երգերը, որոնք 3 վայրկյանից հեռու են իրենց հղման ֆայլից: Ի՞նչ կարող եմ ես անել:
|
||||||
|
|
||||||
|
* Միացնել :doc:`Միայն Սխալները <results>` եղանակում:
|
||||||
|
* Միացնել **Դելտա նշանակությունները** եղանակը:
|
||||||
|
* Սեղմեք "Ժամանակը" սյանը՝ դասավորելու համար արդյունքները ըստ ժամանակի:
|
||||||
|
* Ընտրեք բոլոր կրկնօրինակները՝ -00:03-ից ցածր:
|
||||||
|
* Սեղմեք **Ջնջել ընտրվածը արդյունքներից**:
|
||||||
|
* Ընտրել բոլոր կրկնօրինակները 00:03-ից բարձր:
|
||||||
|
* Սեղմեք **Ջնջել ընտրվածը արդյունքներից**:
|
||||||
|
|
||||||
|
.. topic:: Ես ցանկանում եմ դարձնել իմ բարձրագույն բիթրեյթ ունեցող երգերը հղման ֆայլեր: Ի՞նչ կարող եմ ես անել:
|
||||||
|
|
||||||
|
* Միացնել :doc:`Միայն Սխալները <results>` եղանակում:
|
||||||
|
* Միացնել **Դելտա նշանակությունները** եղանակը:
|
||||||
|
* Սեղմեք "Բիթրեյթը" սյանը՝ դասավորելու համար արդյունքները ըստ բիթրեյթի:
|
||||||
|
* Սեղմեք "Բիթրեյթը" սյանը՝ կրկնելու համար դասավորման կարգը:
|
||||||
|
* Ընտրել բոլոր կրկնօրինակները 0-ց բարձր;
|
||||||
|
* Սեղմեք **Դարձնել ընտրվածը հղում**:
|
||||||
|
|
||||||
|
.. topic:: Ես չեմ ցանկանում [live] և [remix] տարբերակները իմ երգերի՝ հաշված որպես կրկնօրինակ: Ինչպե՞ս դա անել:
|
||||||
|
|
||||||
|
Եթե Ձեր համեմատության սահմանը բավականին ցածր է, հնարավոր է Դուք ավարտվեք կենդանի և ռեմիքս տարբերակներով Ձեր երգերի արդյունեքներում: Դուք ոչինչ չեք կարող անել դրա համար, բայց կա ինչ-որ եղանակ՝ դրանք ստուգման արդյունքներից ջնջելու համար: Եթե օրինակի համար, Դուք ցանկանում եք ջնջել ամեն մի երգ, որը գտնվում է գծիկների միջև []:.
|
||||||
|
* **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-ն *մինչև* Դուք ուղարկեք Ձեր կրկնօրինակները Աղբարկղ:
|
||||||
|
|
||||||
|
Եթե այս ամենը ձախողվի, `կապնվեք HS աջակցության թիմի հետ <http://www.hardcoded.net/support>`_, մենք կփորձեք օգնել Ձեզ:
|
||||||
23
help/hy/folders.rst
Executable file
23
help/hy/folders.rst
Executable file
@@ -0,0 +1,23 @@
|
|||||||
|
Թղթապանակի ընտրություն
|
||||||
|
=======================
|
||||||
|
|
||||||
|
Առաջին թղթապանակը, որ Դուք տեսնում եք 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