diff --git a/build.py b/build.py index aa879b5c..fb4d1eda 100644 --- a/build.py +++ b/build.py @@ -12,6 +12,7 @@ import os.path as op from optparse import OptionParser import shutil import json +import importlib from setuptools import setup, Extension @@ -41,8 +42,8 @@ def parse_args(): def build_cocoa(edition, dev): build_cocoa_proxy_module() - build_cocoa_bridging_interfaces() - print("Building dg_cocoa.plugin") + build_cocoa_bridging_interfaces(edition) + print("Building the cocoa layer") from pluginbuilder import copy_embeddable_python_dylib, get_python_header_folder, collect_dependencies copy_embeddable_python_dylib('build') if not op.exists('build/PythonHeaders'): @@ -186,7 +187,7 @@ def build_cocoa_proxy_module(): ['AppKit', 'CoreServices'], ['cocoalib']) -def build_cocoa_bridging_interfaces(): +def build_cocoa_bridging_interfaces(edition): print("Building Cocoa Bridging Interfaces") import objp.o2p import objp.p2o @@ -203,10 +204,11 @@ def build_cocoa_bridging_interfaces(): from inter.result_table import PyResultTable, ResultTableView from inter.stats_label import PyStatsLabel, StatsLabelView from inter.app import PyDupeGuruBase, DupeGuruView - from inter.app_se import PyDupeGuru + appmod = importlib.import_module('inter.app_{}'.format(edition)) allclasses = [PyGUIObject, PyColumns, PyOutline, PySelectableList, PyTable, PyFairware, PyDetailsPanel, PyDirectoryOutline, PyExtraFairwareReminder, PyPrioritizeDialog, - PyPrioritizeList, PyProblemDialog, PyResultTable, PyStatsLabel, PyDupeGuruBase, PyDupeGuru] + 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, @@ -276,7 +278,7 @@ def main(): build_mergepot() elif options.cocoamod: build_cocoa_proxy_module() - build_cocoa_bridging_interfaces() + build_cocoa_bridging_interfaces(edition) else: build_normal(edition, ui, dev) diff --git a/cocoa/se/main.m b/cocoa/base/main.m similarity index 100% rename from cocoa/se/main.m rename to cocoa/base/main.m diff --git a/cocoa/inter/app_me.py b/cocoa/inter/app_me.py index f22affb7..c7d1413a 100644 --- a/cocoa/inter/app_me.py +++ b/cocoa/inter/app_me.py @@ -15,8 +15,9 @@ from cocoa import as_fetch from hscommon.trans import tr from core.app import JobType +from core.scanner import ScanType from core_me.app import DupeGuru as DupeGuruBase -from .app import JOBID2TITLE +from .app import JOBID2TITLE, PyDupeGuruBase JobType.RemoveDeadTracks = 'jobRemoveDeadTracks' JobType.ScanDeadTracks = 'jobScanDeadTracks' @@ -67,3 +68,45 @@ class DupeGuruME(DupeGuruBase): 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) diff --git a/cocoa/inter/app_pe.py b/cocoa/inter/app_pe.py index 51ce2c58..fff54332 100644 --- a/cocoa/inter/app_pe.py +++ b/cocoa/inter/app_pe.py @@ -19,10 +19,12 @@ from hscommon.path import Path from hscommon.trans import tr from cocoa import proxy +from core.scanner import ScanType from core import directories from core_pe import _block_osx from core_pe.photo import Photo as PhotoBase from core_pe.app import DupeGuru as DupeGuruBase +from .app import PyDupeGuruBase IPHOTO_PATH = Path('iPhoto Library') @@ -194,3 +196,32 @@ class DupeGuruPE(DupeGuruBase): return 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 diff --git a/cocoa/me/AppDelegate.h b/cocoa/me/AppDelegate.h index 99829296..865224e7 100644 --- a/cocoa/me/AppDelegate.h +++ b/cocoa/me/AppDelegate.h @@ -12,5 +12,4 @@ http://www.hardcoded.net/licenses/bsd_license #import "PyDupeGuru.h" @interface AppDelegate : AppDelegateBase {} -- (PyDupeGuru *)py; @end diff --git a/cocoa/me/AppDelegate.m b/cocoa/me/AppDelegate.m index 3ec85031..beae0ee0 100644 --- a/cocoa/me/AppDelegate.m +++ b/cocoa/me/AppDelegate.m @@ -74,8 +74,6 @@ http://www.hardcoded.net/licenses/bsd_license return [[DirectoryPanelME alloc] initWithParentApp:self]; } -- (PyDupeGuru *)py { return (PyDupeGuru *)py; } - //Delegate - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { diff --git a/cocoa/me/PyDupeGuru.h b/cocoa/me/PyDupeGuru.h deleted file mode 100644 index 17680731..00000000 --- a/cocoa/me/PyDupeGuru.h +++ /dev/null @@ -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 -#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 diff --git a/cocoa/me/ResultWindow.m b/cocoa/me/ResultWindow.m index f2f8724e..715091f4 100644 --- a/cocoa/me/ResultWindow.m +++ b/cocoa/me/ResultWindow.m @@ -11,25 +11,25 @@ http://www.hardcoded.net/licenses/bsd_license #import "Utils.h" #import "PyDupeGuru.h" #import "Consts.h" +#import "ProgressController.h" @implementation ResultWindow /* Override */ - (void)setScanOptions { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - PyDupeGuru *_py = (PyDupeGuru *)py; - [_py setScanType:[ud objectForKey:@"scanType"]]; - [_py enable:[ud objectForKey:@"scanTagTrack"] scanForTag:@"track"]; - [_py enable:[ud objectForKey:@"scanTagArtist"] scanForTag:@"artist"]; - [_py enable:[ud objectForKey:@"scanTagAlbum"] scanForTag:@"album"]; - [_py enable:[ud objectForKey:@"scanTagTitle"] scanForTag:@"title"]; - [_py enable:[ud objectForKey:@"scanTagGenre"] scanForTag:@"genre"]; - [_py enable:[ud objectForKey:@"scanTagYear"] scanForTag:@"year"]; - [_py setMinMatchPercentage:[ud objectForKey:@"minMatchPercentage"]]; - [_py setWordWeighting:[ud objectForKey:@"wordWeighting"]]; - [_py setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])]; - [_py setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])]; - [_py setMatchSimilarWords:[ud objectForKey:@"matchSimilarWords"]]; + [model setScanType:n2i([ud objectForKey:@"scanType"])]; + [model enable:n2b([ud objectForKey:@"scanTagTrack"]) scanForTag:@"track"]; + [model enable:n2b([ud objectForKey:@"scanTagArtist"]) scanForTag:@"artist"]; + [model enable:n2b([ud objectForKey:@"scanTagAlbum"]) scanForTag:@"album"]; + [model enable:n2b([ud objectForKey:@"scanTagTitle"]) scanForTag:@"title"]; + [model enable:n2b([ud objectForKey:@"scanTagGenre"]) scanForTag:@"genre"]; + [model enable:n2b([ud objectForKey:@"scanTagYear"]) scanForTag:@"year"]; + [model setMinMatchPercentage:n2i([ud objectForKey:@"minMatchPercentage"])]; + [model setWordWeighting:n2b([ud objectForKey:@"wordWeighting"])]; + [model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])]; + [model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])]; + [model setMatchSimilarWords:n2b([ud objectForKey:@"matchSimilarWords"])]; } - (void)initResultColumns @@ -72,7 +72,7 @@ http://www.hardcoded.net/licenses/bsd_license /* Actions */ - (IBAction)removeDeadTracks:(id)sender { - [(PyDupeGuru *)py scanDeadTracks]; + [model scanDeadTracks]; } /* Notifications */ @@ -81,11 +81,11 @@ http://www.hardcoded.net/licenses/bsd_license [super jobCompleted:aNotification]; id lastAction = [[ProgressController mainProgressController] jobId]; if ([lastAction isEqualTo:jobScanDeadTracks]) { - NSInteger deadTrackCount = [(PyDupeGuru *)py deadTrackCount]; + NSInteger deadTrackCount = [model deadTrackCount]; if (deadTrackCount > 0) { NSString *msg = TR(@"Your iTunes Library contains %d dead tracks ready to be removed. Continue?"); if ([Dialogs askYesNo:[NSString stringWithFormat:msg,deadTrackCount]] == NSAlertFirstButtonReturn) - [(PyDupeGuru *)py removeDeadTracks]; + [model removeDeadTracks]; } else { [Dialogs showMessage:TR(@"You have no dead tracks in your iTunes Library")]; diff --git a/cocoa/me/dg_cocoa.py b/cocoa/me/dg_cocoa.py index 200d5312..d3db3672 100644 --- a/cocoa/me/dg_cocoa.py +++ b/cocoa/me/dg_cocoa.py @@ -7,64 +7,14 @@ from hscommon.trans import install_gettext_trans_under_cocoa install_gettext_trans_under_cocoa() -from cocoa.inter import signature +from cocoa.inter import PySelectableList, PyColumns, PyTable -from core.scanner import ScanType - -from inter.app import PyDupeGuruBase from inter.details_panel import PyDetailsPanel from inter.directory_outline import PyDirectoryOutline from inter.extra_fairware_reminder import PyExtraFairwareReminder from inter.prioritize_dialog import PyPrioritizeDialog +from inter.prioritize_list import PyPrioritizeList from inter.problem_dialog import PyProblemDialog -from inter.problem_table import PyProblemTable from inter.result_table import PyResultTable from inter.stats_label import PyStatsLabel -from inter.app_me import DupeGuruME - -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) - +from inter.app_me import PyDupeGuru diff --git a/cocoa/me/dupeguru.xcodeproj/project.pbxproj b/cocoa/me/dupeguru.xcodeproj/project.pbxproj index 19ba352e..7aaf6b8c 100644 --- a/cocoa/me/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/me/dupeguru.xcodeproj/project.pbxproj @@ -19,11 +19,9 @@ /* End PBXAppleScriptBuildPhase 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 */; }; CE003CC611242D00004B0AA7 /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CB411242D00004B0AA7 /* HSGUIController.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 */; }; CE003CCA11242D00004B0AA7 /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CC111242D00004B0AA7 /* HSOutlineView.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 */; }; CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.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 */; }; CE4F934912CCA96C0067A3AE /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4F934812CCA96C0067A3AE /* HSAboutBox.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 */; }; CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DF00FC6C12E00EC695D /* Utils.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 */; }; CE74A12412537F06008A8DF0 /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */; }; 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 */; }; CE84C9B31423ADFB0050A6AD /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */; }; CE84C9B91423AE410050A6AD /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9B61423AE410050A6AD /* HSPopUpList.m */; }; CE84C9BA1423AE410050A6AD /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE84C9B81423AE410050A6AD /* HSSelectableList.m */; }; 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 */; }; CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; }; CEB5E07813225C89009F521D /* ExtraFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */; }; @@ -89,7 +106,7 @@ dstSubfolderSpec = 10; files = ( CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */, - CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */, + CE9705F914C46EC3007A28F6 /* Python in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -98,7 +115,6 @@ /* Begin PBXFileReference section */ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; 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 = ""; }; CE003CB511242D00004B0AA7 /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = ""; }; CE003CB611242D00004B0AA7 /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = ""; }; - CE003CB711242D00004B0AA7 /* HSWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSWindowController.h; sourceTree = ""; }; - CE003CB811242D00004B0AA7 /* HSWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSWindowController.m; sourceTree = ""; }; 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; }; - CE003CBC11242D00004B0AA7 /* PyGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUI.h; sourceTree = ""; }; - CE003CBD11242D00004B0AA7 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = ""; }; CE003CC011242D00004B0AA7 /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = ""; }; CE003CC111242D00004B0AA7 /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = ""; }; CE003CC211242D00004B0AA7 /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = ""; }; @@ -121,7 +133,6 @@ CE003CC511242D00004B0AA7 /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = ""; }; 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; }; - 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; }; 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; }; @@ -142,12 +153,9 @@ CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = ""; }; 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; }; - 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 = ""; }; CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = ""; }; 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; }; - CE22399E148FFE4F00B3DC99 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = ""; }; CE2239A0148FFE6600B3DC99 /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = ""; }; CE2239A1148FFE6600B3DC99 /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = ""; }; CE2B2B5A1406ABDA0038D15A /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; @@ -158,17 +166,13 @@ 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; }; 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 = ""; }; 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; }; 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; }; - 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; }; 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; }; 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; }; @@ -178,7 +182,6 @@ 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; }; 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; }; 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; }; @@ -202,7 +205,6 @@ CE74255F1460318D002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = ""; }; 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; }; - 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; }; CE7A6992146442F80007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; CE7A6998146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DetailsPanel.xib; sourceTree = ""; }; @@ -221,21 +223,54 @@ CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = ""; }; CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = ""; }; CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = ""; }; - CE84C9B01423ADFB0050A6AD /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeDialog.h; path = ../base/PyPrioritizeDialog.h; sourceTree = ""; }; - CE84C9B11423ADFB0050A6AD /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeList.h; path = ../base/PyPrioritizeList.h; sourceTree = ""; }; - CE84C9B41423AE2A0050A6AD /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE84C9B51423AE410050A6AD /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = ""; }; CE84C9B61423AE410050A6AD /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = ""; }; CE84C9B71423AE410050A6AD /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = ""; }; CE84C9B81423AE410050A6AD /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = ""; }; CE84C9BC1423AF200050A6AD /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = ""; }; + CE9705C414C46E7D007A28F6 /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = ""; }; + CE9705C514C46E7D007A28F6 /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = ""; }; + CE9705C614C46E7D007A28F6 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = ""; }; + CE9705C714C46E7D007A28F6 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = ""; }; + CE9705C814C46E7D007A28F6 /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = ""; }; + CE9705C914C46E7D007A28F6 /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = ""; }; + CE9705CA14C46E7D007A28F6 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = ""; }; + CE9705CB14C46E7D007A28F6 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = ""; }; + CE9705CC14C46E7D007A28F6 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; + CE9705CD14C46E7D007A28F6 /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = ""; }; + CE9705CE14C46E7D007A28F6 /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = ""; }; + CE9705CF14C46E7D007A28F6 /* PyDupeGuruBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuruBase.m; sourceTree = ""; }; + CE9705D014C46E7D007A28F6 /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyExtraFairwareReminder.h; sourceTree = ""; }; + CE9705D114C46E7D007A28F6 /* PyExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyExtraFairwareReminder.m; sourceTree = ""; }; + CE9705D214C46E7D007A28F6 /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyFairware.h; sourceTree = ""; }; + CE9705D314C46E7D007A28F6 /* PyFairware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyFairware.m; sourceTree = ""; }; + CE9705D414C46E7D007A28F6 /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = ""; }; + CE9705D514C46E7D007A28F6 /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = ""; }; + CE9705D614C46E7D007A28F6 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = ""; }; + CE9705D714C46E7D007A28F6 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = ""; }; + CE9705D814C46E7D007A28F6 /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeDialog.h; sourceTree = ""; }; + CE9705D914C46E7D007A28F6 /* PyPrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeDialog.m; sourceTree = ""; }; + CE9705DA14C46E7D007A28F6 /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeList.h; sourceTree = ""; }; + CE9705DB14C46E7D007A28F6 /* PyPrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeList.m; sourceTree = ""; }; + CE9705DC14C46E7D007A28F6 /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = ""; }; + CE9705DD14C46E7D007A28F6 /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = ""; }; + CE9705DE14C46E7D007A28F6 /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyResultTable.h; sourceTree = ""; }; + CE9705DF14C46E7D007A28F6 /* PyResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyResultTable.m; sourceTree = ""; }; + CE9705E014C46E7D007A28F6 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; + CE9705E114C46E7D007A28F6 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; + CE9705E214C46E7D007A28F6 /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = ""; }; + CE9705E314C46E7D007A28F6 /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = ""; }; + CE9705E414C46E7D007A28F6 /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = ""; }; + CE9705E514C46E7D007A28F6 /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = ""; }; + CE9705F714C46EA3007A28F6 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = ""; }; + CE9705FE14C46F60007A28F6 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = ""; }; + CE97060014C46F70007A28F6 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = ""; }; + CE97060214C471F2007A28F6 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = ""; }; CEA14F421461ED63007F01A5 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = ""; }; - 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; }; 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; }; 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; }; 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 = ""; }; @@ -264,8 +299,6 @@ CECE37A31423EA980005187F /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CECE37A41423EA980005187F /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CECE37A51423EA980005187F /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - 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; }; 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 = ""; }; @@ -284,7 +317,6 @@ 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 = ""; }; 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 */ /* Begin PBXFrameworksBuildPhase section */ @@ -295,6 +327,7 @@ CE2E87F9142BC90A00519A68 /* Quartz.framework in Frameworks */, 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */, + CE9705F814C46EA3007A28F6 /* Python in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -304,13 +337,11 @@ 080E96DDFE201D6D7F000001 /* DGME */ = { isa = PBXGroup; children = ( - 29B97316FDCFA39411CA2CEA /* main.m */, CE381C9509914ACE003581CE /* AppDelegate.h */, CE381C9409914ACE003581CE /* AppDelegate.m */, CE848A1809DD85810004CB44 /* Consts.h */, CE68EE6509ABC48000971085 /* DirectoryPanel.h */, CE68EE6609ABC48000971085 /* DirectoryPanel.m */, - CEFF18A009A4D387005E6321 /* PyDupeGuru.h */, CE381C9B09914ADF003581CE /* ResultWindow.h */, CE381C9A09914ADF003581CE /* ResultWindow.m */, ); @@ -320,6 +351,7 @@ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { isa = PBXGroup; children = ( + CE9705F714C46EA3007A28F6 /* Python */, CE1425880AFB718500BD5167 /* Sparkle.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, CE2E87F8142BC90A00519A68 /* Quartz.framework */, @@ -350,6 +382,7 @@ children = ( 080E96DDFE201D6D7F000001 /* DGME */, CE515E140FC6C17900EC695D /* dgbase */, + CE9705C314C46E7D007A28F6 /* autogen */, CE515DDD0FC6C09400EC695D /* cocoalib */, 29B97317FDCFA39411CA2CEA /* Resources */, 29B97323FDCFA39411CA2CEA /* Frameworks */, @@ -361,9 +394,10 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + CE97060014C46F70007A28F6 /* dg_cocoa.py */, + CE9705FE14C46F60007A28F6 /* py */, CEA14F421461ED63007F01A5 /* locale */, CE073F5409CAE1A3005C1D2F /* help */, - CE381CF509915304003581CE /* dg_cocoa.plugin */, CEFC294309C89E0000D9F998 /* images */, CE05330C12E5D3D70029EF25 /* xib */, CEEB135109C837A2004D2330 /* dupeguru.icns */, @@ -394,8 +428,6 @@ CE003CB611242D00004B0AA7 /* HSOutline.m */, CE0A0BFE1175A1C000DCA3C6 /* HSTable.h */, CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */, - CE003CB711242D00004B0AA7 /* HSWindowController.h */, - CE003CB811242D00004B0AA7 /* HSWindowController.m */, CE84C9B51423AE410050A6AD /* HSPopUpList.h */, CE84C9B61423AE410050A6AD /* HSPopUpList.m */, CE84C9B71423AE410050A6AD /* HSSelectableList.h */, @@ -405,19 +437,6 @@ path = ../../cocoalib/controllers; 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 */ = { isa = PBXGroup; children = ( @@ -465,16 +484,12 @@ isa = PBXGroup; children = ( CE003CB211242D00004B0AA7 /* controllers */, - CE003CBB11242D00004B0AA7 /* proxies */, CE003CBF11242D00004B0AA7 /* views */, CE4B59C41119919700C06C9E /* xib */, CE515DE00FC6C12E00EC695D /* Dialogs.h */, CE515DE10FC6C12E00EC695D /* Dialogs.m */, - CE515DE20FC6C12E00EC695D /* HSErrorReportWindow.h */, - CE515DE30FC6C12E00EC695D /* HSErrorReportWindow.m */, CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */, CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */, - CE74A12312537F06008A8DF0 /* PyFairware.h */, CE4F934712CCA96C0067A3AE /* HSAboutBox.h */, CE4F934812CCA96C0067A3AE /* HSAboutBox.m */, CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */, @@ -485,7 +500,6 @@ CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */, CE515DE60FC6C12E00EC695D /* ProgressController.h */, CE515DE70FC6C12E00EC695D /* ProgressController.m */, - CE515DE80FC6C12E00EC695D /* PyApp.h */, CE515DEF0FC6C12E00EC695D /* Utils.h */, CE515DF00FC6C12E00EC695D /* Utils.m */, CE515DF10FC6C12E00EC695D /* ValueTransformers.h */, @@ -499,40 +513,74 @@ children = ( CEB14D27124DFC2800FA7481 /* ResultTable.h */, CEB14D28124DFC2800FA7481 /* ResultTable.m */, - CEB14D26124DFC2800FA7481 /* PyResultTable.h */, CE003CCD11242D2C004B0AA7 /* DirectoryOutline.h */, CE003CCE11242D2C004B0AA7 /* DirectoryOutline.m */, - CE003CCF11242D2C004B0AA7 /* PyDirectoryOutline.h */, CE515E150FC6C19300EC695D /* AppDelegate.h */, CE515E160FC6C19300EC695D /* AppDelegate.m */, - CE515E1A0FC6C19300EC695D /* PyDupeGuru.h */, CE515E170FC6C19300EC695D /* Consts.h */, CE6032BE0FE6784C007E33FF /* DetailsPanel.h */, CE6032BF0FE6784C007E33FF /* DetailsPanel.m */, - CED0A591111C9FD10020AD7D /* PyDetailsPanel.h */, CE515E180FC6C19300EC695D /* DirectoryPanel.h */, CE515E190FC6C19300EC695D /* DirectoryPanel.m */, CE0A0C011175A1DE00DCA3C6 /* ProblemDialog.h */, CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */, - CE0A0C031175A1DE00DCA3C6 /* PyProblemDialog.h */, CE515E1B0FC6C19300EC695D /* ResultWindow.h */, CE515E1C0FC6C19300EC695D /* ResultWindow.m */, CEDF07A1112493B200EE5BC0 /* StatsLabel.h */, CEDF07A2112493B200EE5BC0 /* StatsLabel.m */, - CEDF07A0112493B200EE5BC0 /* PyStatsLabel.h */, CEB5E07513225C89009F521D /* ExtraFairwareReminder.h */, CEB5E07613225C89009F521D /* ExtraFairwareReminder.m */, - CEB5E07713225C89009F521D /* PyExtraFairwareReminder.h */, CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */, CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */, - CE84C9B01423ADFB0050A6AD /* PyPrioritizeDialog.h */, CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */, CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */, - CE84C9B11423ADFB0050A6AD /* PyPrioritizeList.h */, + CE97060214C471F2007A28F6 /* main.m */, ); name = dgbase; sourceTree = ""; }; + 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 = ""; + }; CEFC294309C89E0000D9F998 /* images */ = { isa = PBXGroup; children = ( @@ -603,7 +651,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */, CE073F6309CAE1A3005C1D2F /* help in Resources */, CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */, CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, @@ -622,6 +669,8 @@ CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */, CE84C9BD1423AF200050A6AD /* PrioritizeDialog.xib in Resources */, CEA14F431461ED63007F01A5 /* locale in Resources */, + CE9705FF14C46F60007A28F6 /* py in Resources */, + CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -632,12 +681,10 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, CE381C9609914ACE003581CE /* AppDelegate.m in Sources */, CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */, CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */, CE515DF30FC6C12E00EC695D /* Dialogs.m in Sources */, - CE515DF40FC6C12E00EC695D /* HSErrorReportWindow.m in Sources */, CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */, CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */, CE515DFB0FC6C12E00EC695D /* ValueTransformers.m in Sources */, @@ -647,7 +694,6 @@ CE6032C00FE6784C007E33FF /* DetailsPanel.m in Sources */, CE003CC611242D00004B0AA7 /* HSGUIController.m in Sources */, CE003CC711242D00004B0AA7 /* HSOutline.m in Sources */, - CE003CC811242D00004B0AA7 /* HSWindowController.m in Sources */, CE003CC911242D00004B0AA7 /* NSEventAdditions.m in Sources */, CE003CCA11242D00004B0AA7 /* HSOutlineView.m in Sources */, CE003CCB11242D00004B0AA7 /* NSIndexPathAdditions.m in Sources */, @@ -668,6 +714,24 @@ CE84C9BA1423AE410050A6AD /* HSSelectableList.m in Sources */, CE2E87FD142BC92C00519A68 /* HSQuicklook.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; }; @@ -855,6 +919,10 @@ GCC_GENERATE_DEBUGGING_SYMBOLS = NO; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(PROJECT_DIR)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../../build\"", + ); PRODUCT_NAME = "dupeGuru ME"; WRAPPER_EXTENSION = app; }; @@ -865,8 +933,8 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; SDKROOT = macosx10.6; }; @@ -877,8 +945,8 @@ buildSettings = { ARCHS = "$(NATIVE_ARCH_ACTUAL)"; GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; SDKROOT = macosx10.6; }; @@ -892,6 +960,10 @@ DSTROOT = /; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(PROJECT_DIR)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../../build\"", + ); PRODUCT_NAME = "dupeGuru ME"; WRAPPER_EXTENSION = app; }; diff --git a/cocoa/me/main.m b/cocoa/me/main.m deleted file mode 100644 index 7fedbb8e..00000000 --- a/cocoa/me/main.m +++ /dev/null @@ -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 -#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); -} diff --git a/cocoa/pe/AppDelegate.h b/cocoa/pe/AppDelegate.h index 669b49e2..f6eaa271 100644 --- a/cocoa/pe/AppDelegate.h +++ b/cocoa/pe/AppDelegate.h @@ -8,8 +8,6 @@ http://www.hardcoded.net/licenses/bsd_license #import #import "../base/AppDelegate.h" -#import "PyDupeGuru.h" @interface AppDelegate : AppDelegateBase {} -- (PyDupeGuru *)py; @end diff --git a/cocoa/pe/AppDelegate.m b/cocoa/pe/AppDelegate.m index 8c7afbfa..c6cc1670 100644 --- a/cocoa/pe/AppDelegate.m +++ b/cocoa/pe/AppDelegate.m @@ -64,11 +64,9 @@ http://www.hardcoded.net/licenses/bsd_license - (DetailsPanel *)createDetailsPanel { - return [[DetailsPanelPE alloc] initWithPy:py]; + return [[DetailsPanelPE alloc] initWithApp:model]; } -- (PyDupeGuru *)py { return (PyDupeGuru *)py; } - //Delegate - (void)applicationDidFinishLaunching:(NSNotification *)aNotification { diff --git a/cocoa/pe/DetailsPanel.h b/cocoa/pe/DetailsPanel.h index 146eb5d2..3fe530fa 100644 --- a/cocoa/pe/DetailsPanel.h +++ b/cocoa/pe/DetailsPanel.h @@ -8,6 +8,7 @@ http://www.hardcoded.net/licenses/bsd_license #import #import "../base/DetailsPanel.h" +#import "PyDupeGuru.h" @interface DetailsPanelPE : DetailsPanel { @@ -16,9 +17,11 @@ http://www.hardcoded.net/licenses/bsd_license IBOutlet NSImageView *refImage; IBOutlet NSProgressIndicator *refProgressIndicator; - PyApp *pyApp; + PyDupeGuru *pyApp; BOOL _needsRefresh; NSString *_dupePath; NSString *_refPath; } + +- (id)initWithApp:(PyDupeGuru *)aApp; @end \ No newline at end of file diff --git a/cocoa/pe/DetailsPanel.m b/cocoa/pe/DetailsPanel.m index 692c2591..f94f823c 100644 --- a/cocoa/pe/DetailsPanel.m +++ b/cocoa/pe/DetailsPanel.m @@ -14,10 +14,10 @@ http://www.hardcoded.net/licenses/bsd_license #import "Consts.h" @implementation DetailsPanelPE -- (id)initWithPy:(PyApp *)aPy +- (id)initWithApp:(PyDupeGuru *)aApp { - self = [super initWithPy:aPy]; - pyApp = aPy; + self = [super initWithPyRef:[aApp detailsPanel]]; + pyApp = aApp; _needsRefresh = YES; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(imageLoaded:) name:ImageLoadedNotification object:self]; return self; @@ -42,12 +42,12 @@ http://www.hardcoded.net/licenses/bsd_license return; [detailsTable reloadData]; - NSString *refPath = [(PyDupeGuru *)pyApp getSelectedDupeRefPath]; + NSString *refPath = [pyApp getSelectedDupeRefPath]; if (_refPath != nil) [_refPath autorelease]; _refPath = [refPath retain]; [NSThread detachNewThreadSelector:@selector(loadImageAsync:) toTarget:self withObject:refPath]; - NSString *dupePath = [(PyDupeGuru *)pyApp getSelectedDupePath]; + NSString *dupePath = [pyApp getSelectedDupePath]; if (_dupePath != nil) [_dupePath autorelease]; _dupePath = [dupePath retain]; diff --git a/cocoa/pe/PyDupeGuru.h b/cocoa/pe/PyDupeGuru.h deleted file mode 100644 index 8270124b..00000000 --- a/cocoa/pe/PyDupeGuru.h +++ /dev/null @@ -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 -#import "../base/PyDupeGuru.h" - -@interface PyDupeGuru : PyDupeGuruBase -- (void)clearPictureCache; -- (NSString *)getSelectedDupePath; -- (NSString *)getSelectedDupeRefPath; -- (void)setMatchScaled:(NSNumber *)match_scaled; -@end diff --git a/cocoa/pe/ResultWindow.m b/cocoa/pe/ResultWindow.m index 23df283d..e6b304b8 100644 --- a/cocoa/pe/ResultWindow.m +++ b/cocoa/pe/ResultWindow.m @@ -40,12 +40,11 @@ http://www.hardcoded.net/licenses/bsd_license - (void)setScanOptions { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; - PyDupeGuru *_py = (PyDupeGuru *)py; - [_py setScanType:[ud objectForKey:@"scanType"]]; - [_py setMinMatchPercentage:[ud objectForKey:@"minMatchPercentage"]]; - [_py setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])]; - [_py setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])]; - [_py setMatchScaled:[ud objectForKey:@"matchScaled"]]; + [model setScanType:n2i([ud objectForKey:@"scanType"])]; + [model setMinMatchPercentage:n2i([ud objectForKey:@"minMatchPercentage"])]; + [model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])]; + [model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])]; + [model setMatchScaled:n2b([ud objectForKey:@"matchScaled"])]; } /* 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?"); if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO return; - [(PyDupeGuru *)py clearPictureCache]; + [model clearPictureCache]; } @end \ No newline at end of file diff --git a/cocoa/pe/dg_cocoa.py b/cocoa/pe/dg_cocoa.py index abbf8d4d..0e1572c2 100644 --- a/cocoa/pe/dg_cocoa.py +++ b/cocoa/pe/dg_cocoa.py @@ -7,48 +7,15 @@ from hscommon.trans import 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.directory_outline import PyDirectoryOutline from inter.extra_fairware_reminder import PyExtraFairwareReminder from inter.prioritize_dialog import PyPrioritizeDialog +from inter.prioritize_list import PyPrioritizeList from inter.problem_dialog import PyProblemDialog -from inter.problem_table import PyProblemTable from inter.result_table import PyResultTable from inter.stats_label import PyStatsLabel -from inter.app_pe import DupeGuruPE - -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) +from inter.app_pe import PyDupeGuru diff --git a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj index af7c6817..8fd64abf 100644 --- a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* 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 */; }; CE05339B12E5DA350029EF25 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.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 */; }; CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.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 */; }; CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6044EB0FE6796200B71262 /* DetailsPanel.m */; }; CE63D9D31461EDC000A8CADD /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CE63D9D21461EDC000A8CADD /* locale */; }; CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; }; 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 */; }; CE7D249D1423B0BD002E2297 /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249A1423B0BD002E2297 /* HSPopUpList.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 */; }; CE7D24A91423B123002E2297 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */; }; 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 */; }; CE80DB350FC192D60086DCA6 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB2B0FC192D60086DCA6 /* Utils.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 */; }; CE80DB8B0FC1951C0086DCA6 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB860FC1951C0086DCA6 /* DirectoryPanel.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 */; }; CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7441122C96C008CD2BC /* HSGUIController.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 */; }; CE9EA75A1122C96C008CD2BC /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7511122C96C008CD2BC /* HSOutlineView.m */; }; CE9EA75B1122C96C008CD2BC /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7531122C96C008CD2BC /* NSIndexPathAdditions.m */; }; @@ -62,7 +79,6 @@ CEA8F336142BC9AB00A6DFAC /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CEA8F335142BC9AB00A6DFAC /* Quartz.framework */; }; CEA8F33A142BC9D400A6DFAC /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA8F339142BC9D400A6DFAC /* HSQuicklook.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 */; }; CECB2AC513D867AD0081E295 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC113D867AD0081E295 /* about.xib */; }; CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */; }; @@ -81,8 +97,7 @@ dstSubfolderSpec = 10; files = ( CE15C8C00ADEB8D40061D4A5 /* Sparkle.framework in CopyFiles */, - CECA899C09DB132E00A3D774 /* DetailsPanel.h in CopyFiles */, - CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */, + CE75017A14C4775B00E2A349 /* Python in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -91,7 +106,6 @@ /* Begin PBXFileReference section */ 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; - 29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; @@ -112,17 +126,13 @@ CE0533AE12E5DAAD0029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; 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; }; - CE0C2AAA117700E700BC749F /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = ""; }; CE0C2AB41177011000BC749F /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = ""; }; CE0C2AB51177011000BC749F /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = ""; }; 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; }; - 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 = ""; }; - 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; }; 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; }; CE21AFB61423EA6E00DE35BF /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE21AFB71423EA6E00DE35BF /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -130,12 +140,10 @@ 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; }; 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; }; 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; }; 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; }; 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; }; @@ -156,6 +164,44 @@ 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 = ""; }; CE7358071406ABF700F3F6DA /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; + CE75017214C4770500E2A349 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = ""; }; + CE75017414C4771800E2A349 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = ""; }; + CE75017614C4772100E2A349 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = ""; }; + CE75017814C4774900E2A349 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = ""; }; + CE75017C14C477B100E2A349 /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = ""; }; + CE75017D14C477B100E2A349 /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = ""; }; + CE75017E14C477B100E2A349 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = ""; }; + CE75017F14C477B100E2A349 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = ""; }; + CE75018014C477B100E2A349 /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = ""; }; + CE75018114C477B100E2A349 /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = ""; }; + CE75018214C477B100E2A349 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = ""; }; + CE75018314C477B100E2A349 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = ""; }; + CE75018414C477B100E2A349 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; + CE75018514C477B100E2A349 /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = ""; }; + CE75018614C477B100E2A349 /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = ""; }; + CE75018714C477B100E2A349 /* PyDupeGuruBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuruBase.m; sourceTree = ""; }; + CE75018814C477B100E2A349 /* PyExtraFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyExtraFairwareReminder.h; sourceTree = ""; }; + CE75018914C477B100E2A349 /* PyExtraFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyExtraFairwareReminder.m; sourceTree = ""; }; + CE75018A14C477B100E2A349 /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyFairware.h; sourceTree = ""; }; + CE75018B14C477B100E2A349 /* PyFairware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyFairware.m; sourceTree = ""; }; + CE75018C14C477B100E2A349 /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = ""; }; + CE75018D14C477B100E2A349 /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = ""; }; + CE75018E14C477B100E2A349 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = ""; }; + CE75018F14C477B100E2A349 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = ""; }; + CE75019014C477B100E2A349 /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeDialog.h; sourceTree = ""; }; + CE75019114C477B100E2A349 /* PyPrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeDialog.m; sourceTree = ""; }; + CE75019214C477B100E2A349 /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeList.h; sourceTree = ""; }; + CE75019314C477B100E2A349 /* PyPrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeList.m; sourceTree = ""; }; + CE75019414C477B100E2A349 /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = ""; }; + CE75019514C477B100E2A349 /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = ""; }; + CE75019614C477B100E2A349 /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyResultTable.h; sourceTree = ""; }; + CE75019714C477B100E2A349 /* PyResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyResultTable.m; sourceTree = ""; }; + CE75019814C477B100E2A349 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; + CE75019914C477B100E2A349 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; + CE75019A14C477B100E2A349 /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = ""; }; + CE75019B14C477B100E2A349 /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = ""; }; + CE75019C14C477B100E2A349 /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = ""; }; + CE75019D14C477B100E2A349 /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = ""; }; 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; }; CE78759F13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; @@ -176,7 +222,6 @@ CE7A69CA146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/ErrorReportWindow.xib; sourceTree = ""; }; CE7A69CB146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/FairwareReminder.xib; sourceTree = ""; }; CE7AC9161119911200D02F6C /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = ""; }; - CE7D24971423B0A7002E2297 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE7D24991423B0BD002E2297 /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = ""; }; CE7D249A1423B0BD002E2297 /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = ""; }; CE7D249B1423B0BD002E2297 /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = ""; }; @@ -185,16 +230,11 @@ CE7D24A01423B106002E2297 /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = ""; }; CE7D24A11423B106002E2297 /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = ""; }; CE7D24A21423B106002E2297 /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = ""; }; - CE7D24A31423B106002E2297 /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeDialog.h; path = ../base/PyPrioritizeDialog.h; sourceTree = ""; }; - CE7D24A41423B106002E2297 /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyPrioritizeList.h; path = ../base/PyPrioritizeList.h; sourceTree = ""; }; CE7D24A81423B123002E2297 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = ""; }; 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; }; - 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; }; 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; }; 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; }; @@ -208,23 +248,17 @@ 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; }; 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; }; 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 = ""; }; - 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; }; 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 = ""; }; CE9EA7441122C96C008CD2BC /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = ""; }; CE9EA7451122C96C008CD2BC /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = ""; }; CE9EA7461122C96C008CD2BC /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = ""; }; - CE9EA7471122C96C008CD2BC /* HSWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSWindowController.h; sourceTree = ""; }; - CE9EA7481122C96C008CD2BC /* HSWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSWindowController.m; sourceTree = ""; }; 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; }; - CE9EA74C1122C96C008CD2BC /* PyGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUI.h; sourceTree = ""; }; - CE9EA74D1122C96C008CD2BC /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = ""; }; CE9EA7501122C96C008CD2BC /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = ""; }; CE9EA7511122C96C008CD2BC /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = ""; }; CE9EA7521122C96C008CD2BC /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = ""; }; @@ -233,7 +267,6 @@ CE9EA7551122C96C008CD2BC /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = ""; }; 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; }; - 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; }; CEA8F338142BC9D400A6DFAC /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = ""; }; CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = ""; }; @@ -261,7 +294,6 @@ CEE6D559149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/about.xib; sourceTree = ""; }; CEE6D55A149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/ErrorReportWindow.xib; sourceTree = ""; }; CEE6D55B149113320087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/FairwareReminder.xib; sourceTree = ""; }; - CEE6D55F1491134E0087CDFC /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = ""; }; CEE6D560149113570087CDFC /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = ""; }; CEE6D561149113570087CDFC /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = ""; }; CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; @@ -279,11 +311,9 @@ CEEE15911460329000783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = ""; }; 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; }; - 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; }; 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; }; - CEFF18A009A4D387005E6321 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -294,6 +324,7 @@ CEA8F336142BC9AB00A6DFAC /* Quartz.framework in Frameworks */, 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */, + CE75017914C4774900E2A349 /* Python in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -303,7 +334,6 @@ 080E96DDFE201D6D7F000001 /* DGPE */ = { isa = PBXGroup; children = ( - 29B97316FDCFA39411CA2CEA /* main.m */, CE381C9509914ACE003581CE /* AppDelegate.h */, CE381C9409914ACE003581CE /* AppDelegate.m */, CE848A1809DD85810004CB44 /* Consts.h */, @@ -311,7 +341,6 @@ CECA899B09DB132E00A3D774 /* DetailsPanel.m */, CE68EE6509ABC48000971085 /* DirectoryPanel.h */, CE68EE6609ABC48000971085 /* DirectoryPanel.m */, - CEFF18A009A4D387005E6321 /* PyDupeGuru.h */, CE381C9B09914ADF003581CE /* ResultWindow.h */, CE381C9A09914ADF003581CE /* ResultWindow.m */, ); @@ -321,6 +350,7 @@ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { isa = PBXGroup; children = ( + CE75017814C4774900E2A349 /* Python */, CEA8F335142BC9AB00A6DFAC /* Quartz.framework */, CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */, 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, @@ -352,6 +382,7 @@ 080E96DDFE201D6D7F000001 /* DGPE */, CE80DB1A0FC192AB0086DCA6 /* cocoalib */, CE80DB810FC194BD0086DCA6 /* dgbase */, + CE75017B14C477B100E2A349 /* autogen */, 29B97317FDCFA39411CA2CEA /* Resources */, 29B97323FDCFA39411CA2CEA /* Frameworks */, 19C28FACFE9D520D11CA2CBB /* Products */, @@ -362,9 +393,10 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + CE75017614C4772100E2A349 /* dg_cocoa.py */, + CE75017414C4771800E2A349 /* py */, CE63D9D21461EDC000A8CADD /* locale */, CE073F5409CAE1A3005C1D2F /* help */, - CE381CF509915304003581CE /* dg_cocoa.plugin */, CEFC294309C89E0000D9F998 /* images */, CE05339212E5DA1D0029EF25 /* xib */, CEEB135109C837A2004D2330 /* dupeguru.icns */, @@ -399,6 +431,48 @@ name = xib; sourceTree = ""; }; + 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 = ""; + }; CE7AC9141119911200D02F6C /* xib */ = { isa = PBXGroup; children = ( @@ -415,7 +489,6 @@ isa = PBXGroup; children = ( CE9EA7421122C96C008CD2BC /* controllers */, - CE9EA74B1122C96C008CD2BC /* proxies */, CE9EA74F1122C96C008CD2BC /* views */, CE7AC9141119911200D02F6C /* xib */, CE80DB480FC193770086DCA6 /* NSImageAdditions.h */, @@ -426,11 +499,8 @@ CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */, CE80DB1B0FC192D60086DCA6 /* Dialogs.h */, CE80DB1C0FC192D60086DCA6 /* Dialogs.m */, - CE80DB1D0FC192D60086DCA6 /* HSErrorReportWindow.h */, - CE80DB1E0FC192D60086DCA6 /* HSErrorReportWindow.m */, CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */, CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */, - CE1EB5FD12537F9D0034AABB /* PyFairware.h */, CEC9DB4A12CCAA7D003102F0 /* HSAboutBox.h */, CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */, CE60180612DF3EA900236FDC /* HSRecentFiles.h */, @@ -439,7 +509,6 @@ CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */, CE80DB210FC192D60086DCA6 /* ProgressController.h */, CE80DB220FC192D60086DCA6 /* ProgressController.m */, - CE80DB230FC192D60086DCA6 /* PyApp.h */, CE80DB2A0FC192D60086DCA6 /* Utils.h */, CE80DB2B0FC192D60086DCA6 /* Utils.m */, CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */, @@ -453,36 +522,28 @@ children = ( CEF12A82124DFD620087B51D /* ResultTable.h */, CEF12A83124DFD620087B51D /* ResultTable.m */, - CEF12A81124DFD620087B51D /* PyResultTable.h */, CE80DB820FC1951C0086DCA6 /* AppDelegate.h */, CE80DB830FC1951C0086DCA6 /* AppDelegate.m */, - CE80DB870FC1951C0086DCA6 /* PyDupeGuru.h */, CE80DB840FC1951C0086DCA6 /* Consts.h */, CE6044EA0FE6796200B71262 /* DetailsPanel.h */, CE6044EB0FE6796200B71262 /* DetailsPanel.m */, - CE18126F111C9D5100E49FCE /* PyDetailsPanel.h */, CE80DB850FC1951C0086DCA6 /* DirectoryPanel.h */, CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */, CE9EA76F1122CA0B008CD2BC /* DirectoryOutline.h */, CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */, - CE9EA7711122CA0B008CD2BC /* PyDirectoryOutline.h */, CE0C2ABA1177014200BC749F /* ProblemDialog.h */, CE0C2ABB1177014200BC749F /* ProblemDialog.m */, - CE0C2ABC1177014200BC749F /* PyProblemDialog.h */, CE80DB880FC1951C0086DCA6 /* ResultWindow.h */, CE80DB890FC1951C0086DCA6 /* ResultWindow.m */, CE95865C112C516400F95FD2 /* StatsLabel.h */, CE95865D112C516400F95FD2 /* StatsLabel.m */, - CE958659112C516400F95FD2 /* PyStatsLabel.h */, CE2A29F213213BE3005899AC /* ExtraFairwareReminder.h */, CE2A29F313213BE3005899AC /* ExtraFairwareReminder.m */, - CE2A29FF13213C31005899AC /* PyExtraFairwareReminder.h */, CE7D249F1423B106002E2297 /* PrioritizeDialog.h */, CE7D24A01423B106002E2297 /* PrioritizeDialog.m */, - CE7D24A31423B106002E2297 /* PyPrioritizeDialog.h */, CE7D24A11423B106002E2297 /* PrioritizeList.h */, CE7D24A21423B106002E2297 /* PrioritizeList.m */, - CE7D24A41423B106002E2297 /* PyPrioritizeList.h */, + CE75017214C4770500E2A349 /* main.m */, ); name = dgbase; sourceTree = ""; @@ -498,8 +559,6 @@ CE9EA7461122C96C008CD2BC /* HSOutline.m */, CE0C2AB41177011000BC749F /* HSTable.h */, CE0C2AB51177011000BC749F /* HSTable.m */, - CE9EA7471122C96C008CD2BC /* HSWindowController.h */, - CE9EA7481122C96C008CD2BC /* HSWindowController.m */, CE7D24991423B0BD002E2297 /* HSPopUpList.h */, CE7D249A1423B0BD002E2297 /* HSPopUpList.m */, CE7D249B1423B0BD002E2297 /* HSSelectableList.h */, @@ -509,19 +568,6 @@ path = ../../cocoalib/controllers; sourceTree = SOURCE_ROOT; }; - CE9EA74B1122C96C008CD2BC /* proxies */ = { - isa = PBXGroup; - children = ( - CEE6D55F1491134E0087CDFC /* PyColumns.h */, - CE9EA74C1122C96C008CD2BC /* PyGUI.h */, - CE9EA74D1122C96C008CD2BC /* PyOutline.h */, - CE0C2AAA117700E700BC749F /* PyTable.h */, - CE7D24971423B0A7002E2297 /* PySelectableList.h */, - ); - name = proxies; - path = ../../cocoalib/proxies; - sourceTree = SOURCE_ROOT; - }; CE9EA74F1122C96C008CD2BC /* views */ = { isa = PBXGroup; children = ( @@ -607,7 +653,6 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */, CE073F6309CAE1A3005C1D2F /* help in Resources */, CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */, CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, @@ -626,6 +671,8 @@ CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */, CE7D24A91423B123002E2297 /* PrioritizeDialog.xib in Resources */, CE63D9D31461EDC000A8CADD /* locale in Resources */, + CE75017514C4771800E2A349 /* py in Resources */, + CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -636,13 +683,11 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 8D11072D0486CEB800E47090 /* main.m in Sources */, CE381C9609914ACE003581CE /* AppDelegate.m in Sources */, CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */, CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */, CECA899D09DB132E00A3D774 /* DetailsPanel.m in Sources */, CE80DB2E0FC192D60086DCA6 /* Dialogs.m in Sources */, - CE80DB2F0FC192D60086DCA6 /* HSErrorReportWindow.m in Sources */, CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */, CE80DB350FC192D60086DCA6 /* Utils.m in Sources */, CE80DB360FC192D60086DCA6 /* ValueTransformers.m in Sources */, @@ -654,7 +699,6 @@ CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */, CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */, CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */, - CE9EA7581122C96C008CD2BC /* HSWindowController.m in Sources */, CE9EA7591122C96C008CD2BC /* NSEventAdditions.m in Sources */, CE9EA75A1122C96C008CD2BC /* HSOutlineView.m in Sources */, CE9EA75B1122C96C008CD2BC /* NSIndexPathAdditions.m in Sources */, @@ -675,6 +719,24 @@ CE7D24A61423B106002E2297 /* PrioritizeList.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; }; @@ -862,6 +924,10 @@ GCC_GENERATE_DEBUGGING_SYMBOLS = NO; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(PROJECT_DIR)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../../build\"", + ); PRODUCT_NAME = "dupeGuru PE"; WRAPPER_EXTENSION = app; }; @@ -872,8 +938,8 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; SDKROOT = macosx10.6; }; @@ -884,8 +950,8 @@ buildSettings = { ARCHS = "$(NATIVE_ARCH_ACTUAL)"; GCC_C_LANGUAGE_STANDARD = c99; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; + LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; SDKROOT = macosx10.6; }; @@ -899,6 +965,10 @@ DSTROOT = /; INFOPLIST_FILE = Info.plist; INSTALL_PATH = "$(PROJECT_DIR)"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)/../../build\"", + ); PRODUCT_NAME = "dupeGuru PE"; WRAPPER_EXTENSION = app; }; diff --git a/cocoa/pe/main.m b/cocoa/pe/main.m deleted file mode 100644 index 7fedbb8e..00000000 --- a/cocoa/pe/main.m +++ /dev/null @@ -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 -#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); -} diff --git a/core_me/app.py b/core_me/app.py index 2189554b..73b9a4dd 100644 --- a/core_me/app.py +++ b/core_me/app.py @@ -23,7 +23,6 @@ class DupeGuru(DupeGuruBase): DupeGuruBase.__init__(self, view, appdata) self.scanner = scanner.ScannerME() self.directories.fileclasses = [fs.MusicFile] - self.result_table = ResultTable(self) def _get_display_info(self, dupe, group, delta): size = dupe.size @@ -87,3 +86,5 @@ class DupeGuru(DupeGuruBase): def _prioritization_categories(self): return prioritize.all_categories() + def _create_result_table(self): + return ResultTable(self) diff --git a/core_pe/app.py b/core_pe/app.py index efee86d9..3a56745b 100644 --- a/core_pe/app.py +++ b/core_pe/app.py @@ -30,7 +30,6 @@ class DupeGuru(DupeGuruBase): DupeGuruBase.__init__(self, view, appdata) self.scanner = ScannerPE() self.scanner.cache_path = op.join(self.appdata, 'cached_pictures.db') - self.result_table = ResultTable(self) def _get_display_info(self, dupe, group, delta): size = dupe.size @@ -91,3 +90,5 @@ class DupeGuru(DupeGuruBase): def _prioritization_categories(self): return prioritize.all_categories() + def _create_result_table(self): + return ResultTable(self)