From 500314859dbce2d27648ac996290794a5ae9915e Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Fri, 20 Jul 2012 17:09:43 -0400 Subject: [PATCH 01/33] Switched to cocoalib's xibless branch and adapted build script and cocoa projects to that branch. --HG-- branch : xibless --- build.py | 24 ++- cocoa/me/dupeguru.xcodeproj/project.pbxproj | 197 ++++++++---------- cocoa/pe/dupeguru.xcodeproj/project.pbxproj | 213 ++++++++----------- cocoa/se/dupeguru.xcodeproj/project.pbxproj | 216 ++++++++------------ 4 files changed, 282 insertions(+), 368 deletions(-) diff --git a/build.py b/build.py index ffa885cc..cae9e84c 100644 --- a/build.py +++ b/build.py @@ -33,6 +33,8 @@ def parse_args(): help="Build only localization") parser.add_option('--cocoamod', action='store_true', dest='cocoamod', help="Build only Cocoa modules") + parser.add_option('--xibless', action='store_true', dest='xibless', + help="Build only xibless UIs") parser.add_option('--updatepot', action='store_true', dest='updatepot', help="Generate .pot files from source code.") parser.add_option('--mergepot', action='store_true', dest='mergepot', @@ -40,7 +42,19 @@ def parse_args(): (options, args) = parser.parse_args() return options +def build_xibless(): + import xibless + if not op.exists('cocoalib/autogen'): + os.mkdir('cocoalib/autogen') + xibless.generate('cocoalib/ui/progress.py', 'cocoalib/autogen/ProgressController_UI') + xibless.generate('cocoalib/ui/about.py', 'cocoalib/autogen/HSAboutBox_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/fairware_reminder.py', 'cocoalib/autogen/HSFairwareReminder_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/demo_reminder.py', 'cocoalib/autogen/HSDemoReminder_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/enter_code.py', 'cocoalib/autogen/HSEnterCode_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/error_report.py', 'cocoalib/autogen/HSErrorReportWindow_UI', localizationTable='cocoalib') + def build_cocoa(edition, dev): + build_xibless() build_cocoa_proxy_module() build_cocoa_bridging_interfaces(edition) print("Building the cocoa layer") @@ -130,8 +144,7 @@ def build_localizations(ui, edition): if edition_folder == 'base': loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings')) pofile = op.join('cocoalib', 'locale', lang, 'LC_MESSAGES', 'cocoalib.po') - loc.po2allxibstrings(pofile, op.join('cocoalib', 'en.lproj'), op.join('cocoalib', lang + '.lproj')) - build_all_cocoa_locs('cocoalib') + loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), op.join('cocoalib', lang + '.lproj', 'cocoalib.strings')) build_all_cocoa_locs(op.join('cocoa', 'base')) build_all_cocoa_locs(op.join('cocoa', edition)) elif ui == 'qt': @@ -186,9 +199,10 @@ def build_cocoa_proxy_module(): import objp.p2o objp.p2o.generate_python_proxy_code('cocoalib/cocoa/CocoaProxy.h', 'build/CocoaProxy.m') build_cocoa_ext("CocoaProxy", 'cocoalib/cocoa', - ['cocoalib/cocoa/CocoaProxy.m', 'build/CocoaProxy.m', 'build/ObjP.m', 'cocoalib/HSErrorReportWindow.m'], + ['cocoalib/cocoa/CocoaProxy.m', 'build/CocoaProxy.m', 'build/ObjP.m', + 'cocoalib/HSErrorReportWindow.m', 'cocoalib/autogen/HSErrorReportWindow_UI.m'], ['AppKit', 'CoreServices'], - ['cocoalib']) + ['cocoalib', 'cocoalib/autogen']) def build_cocoa_bridging_interfaces(edition): print("Building Cocoa Bridging Interfaces") @@ -283,6 +297,8 @@ def main(): elif options.cocoamod: build_cocoa_proxy_module() build_cocoa_bridging_interfaces(edition) + elif options.xibless: + build_xibless() else: build_normal(edition, ui, dev) diff --git a/cocoa/me/dupeguru.xcodeproj/project.pbxproj b/cocoa/me/dupeguru.xcodeproj/project.pbxproj index 3ae4b28c..5b3317ae 100644 --- a/cocoa/me/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/me/dupeguru.xcodeproj/project.pbxproj @@ -43,25 +43,11 @@ CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; }; CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; }; CE1EAA0A12DF3E81009BA949 /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */; }; - CE20A79315A2843F00FAC2BA /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185513D8660000B8CDCA /* about.xib */; }; - CE20A79415A2843F00FAC2BA /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */; }; - CE20A79515A2843F00FAC2BA /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */; }; - CE20A79815A2845A00FAC2BA /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330D12E5D3ED0029EF25 /* DetailsPanel.xib */; }; - CE20A7A115A2847500FAC2BA /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330D12E5D3ED0029EF25 /* DetailsPanel.xib */; }; - CE20A7A215A2847500FAC2BA /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */; }; - CE20A7A315A2847500FAC2BA /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331112E5D3ED0029EF25 /* MainMenu.xib */; }; - CE20A7A415A2847500FAC2BA /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */; }; - CE20A7A515A2847500FAC2BA /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */; }; - CE20A7A615A2847500FAC2BA /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331512E5D3ED0029EF25 /* ResultWindow.xib */; }; - CE20A7A715A2847500FAC2BA /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05332112E5D4100029EF25 /* Preferences.xib */; }; - CE20A7A815A2847500FAC2BA /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */; }; CE2239A2148FFE6600B3DC99 /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2239A1148FFE6600B3DC99 /* HSColumns.m */; }; CE2E87F9142BC90A00519A68 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E87F8142BC90A00519A68 /* Quartz.framework */; }; 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 */; }; - CE39D18615B9D1A300AD36C6 /* Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 8D1107310486CEB800E47090 /* Info.plist */; }; - 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 */; }; CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE70FC6C12E00EC695D /* ProgressController.m */; }; @@ -76,11 +62,18 @@ 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 */; }; + CE78EEC815B9FEE0005CB26E /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE78EEC615B9FEE0005CB26E /* cocoalib.strings */; }; 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 */; }; + CE85B9B315B9F9A1003C7302 /* HSAboutBox_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9A815B9F9A1003C7302 /* HSAboutBox_UI.m */; }; + CE85B9B415B9F9A1003C7302 /* HSDemoReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9AA15B9F9A1003C7302 /* HSDemoReminder_UI.m */; }; + CE85B9B515B9F9A1003C7302 /* HSEnterCode_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9AC15B9F9A1003C7302 /* HSEnterCode_UI.m */; }; + CE85B9B615B9F9A1003C7302 /* HSErrorReportWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9AE15B9F9A1003C7302 /* HSErrorReportWindow_UI.m */; }; + CE85B9B715B9F9A1003C7302 /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9B015B9F9A1003C7302 /* HSFairwareReminder_UI.m */; }; + CE85B9B815B9F9A1003C7302 /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9B215B9F9A1003C7302 /* ProgressController_UI.m */; }; 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 */; }; @@ -164,7 +157,6 @@ CE05332912E5D4460029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; CE05332E12E5D6100029EF25 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; CE05333312E5D6370029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - CE05347712E5DC420029EF25 /* 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 = ""; }; CE0A0BFE1175A1C000DCA3C6 /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = ""; }; CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = ""; }; @@ -183,12 +175,9 @@ CE11959C151100020063C8AF /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE11959D151100020063C8AF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE11959E151100020063C8AF /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = ""; }; + CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; sourceTree = SOURCE_ROOT; }; CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; }; CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; }; - CE20A79015A2843F00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/about.xib; sourceTree = ""; }; - CE20A79115A2843F00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE20A79215A2843F00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/FairwareReminder.xib; sourceTree = ""; }; CE20A79715A2845A00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; CE20A79915A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; CE20A79A15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DetailsPanel.xib; sourceTree = ""; }; @@ -204,9 +193,6 @@ CE2E87F8142BC90A00519A68 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; }; CE2E87FB142BC92C00519A68 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = ""; }; CE2E87FC142BC92C00519A68 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = ""; }; - CE335AEE14B393C60000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/about.xib; sourceTree = ""; }; - CE335AEF14B393C60000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE335AF014B393C60000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/FairwareReminder.xib; sourceTree = ""; }; CE335AF514B393DC0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CE335AF714B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DetailsPanel.xib; sourceTree = ""; }; CE335AF814B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -215,9 +201,6 @@ CE335AFC14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = ""; }; CE335AFD14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; CE335B0514B393FB0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; - CE35FCEC14C637B8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/about.xib; sourceTree = ""; }; - CE35FCED14C637B8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE35FCEE14C637B8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/FairwareReminder.xib; sourceTree = ""; }; CE35FCF314C637C8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; CE35FCF514C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DetailsPanel.xib; sourceTree = ""; }; CE35FCF614C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -231,7 +214,6 @@ 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; }; CE39D18515B9D1A300AD36C6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; - 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; }; @@ -256,9 +238,6 @@ CE68EE6509ABC48000971085 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; }; - CE74253B14603120002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = ""; }; - CE74253C14603120002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE74253D14603120002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = ""; }; CE74254414603143002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; CE74255114603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DetailsPanel.xib; sourceTree = ""; }; CE74255214603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -269,7 +248,16 @@ 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; }; - CE74A12612537F2E008A8DF0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; }; + CE78EEC715B9FEE0005CB26E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../../cocoalib/en.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EECA15B9FF07005CB26E /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../../cocoalib/cs.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EECB15B9FF07005CB26E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../../cocoalib/de.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EECC15B9FF07005CB26E /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../../cocoalib/fr.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EECD15B9FF07005CB26E /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../../cocoalib/hy.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EECE15B9FF07005CB26E /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../../cocoalib/it.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EECF15B9FF07005CB26E /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../../cocoalib/pt_BR.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EED015B9FF07005CB26E /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../../cocoalib/ru.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EED115B9FF07005CB26E /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../../cocoalib/uk.lproj/cocoalib.strings; sourceTree = ""; }; + CE78EED215B9FF07005CB26E /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../../cocoalib/zh_CN.lproj/cocoalib.strings; sourceTree = ""; }; 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 = ""; }; CE7A6999146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -278,9 +266,6 @@ CE7A699D146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = ""; }; CE7A699E146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; CE7A69A6146443170007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; - CE7A69A8146443360007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/about.xib; sourceTree = ""; }; - CE7A69A9146443360007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE7A69AA146443360007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/FairwareReminder.xib; sourceTree = ""; }; CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = ""; }; CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = ""; }; CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = ""; }; @@ -291,6 +276,18 @@ 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 = ""; }; + CE85B9A715B9F9A1003C7302 /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSAboutBox_UI.h; sourceTree = ""; }; + CE85B9A815B9F9A1003C7302 /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSAboutBox_UI.m; sourceTree = ""; }; + CE85B9A915B9F9A1003C7302 /* HSDemoReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSDemoReminder_UI.h; sourceTree = ""; }; + CE85B9AA15B9F9A1003C7302 /* HSDemoReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSDemoReminder_UI.m; sourceTree = ""; }; + CE85B9AB15B9F9A1003C7302 /* HSEnterCode_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSEnterCode_UI.h; sourceTree = ""; }; + CE85B9AC15B9F9A1003C7302 /* HSEnterCode_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSEnterCode_UI.m; sourceTree = ""; }; + CE85B9AD15B9F9A1003C7302 /* HSErrorReportWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSErrorReportWindow_UI.h; sourceTree = ""; }; + CE85B9AE15B9F9A1003C7302 /* HSErrorReportWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSErrorReportWindow_UI.m; sourceTree = ""; }; + CE85B9AF15B9F9A1003C7302 /* HSFairwareReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSFairwareReminder_UI.h; sourceTree = ""; }; + CE85B9B015B9F9A1003C7302 /* HSFairwareReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSFairwareReminder_UI.m; sourceTree = ""; }; + CE85B9B115B9F9A1003C7302 /* ProgressController_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProgressController_UI.h; sourceTree = ""; }; + CE85B9B215B9F9A1003C7302 /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProgressController_UI.m; 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 = ""; }; @@ -351,12 +348,6 @@ CEC3D38214911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; CEC3D38B14911263006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CEC3D38D14911274006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; - CEC3D38F14911288006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/about.xib; sourceTree = ""; }; - CEC3D39014911288006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CEC3D39114911288006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/FairwareReminder.xib; sourceTree = ""; }; - CEC8F3091416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = ""; }; - CEC8F30A1416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CEC8F30B1416A0D2004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/FairwareReminder.xib; sourceTree = ""; }; CEC8F3111416A0F0004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; CEC8F3141416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DetailsPanel.xib; sourceTree = ""; }; CEC8F3151416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -370,13 +361,6 @@ 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 = ""; }; - CEF3185613D8660000B8CDCA /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/about.xib; sourceTree = ""; }; - CEF3185813D8660000B8CDCA /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CEF3185B13D8660900B8CDCA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../fr.lproj/about.xib; sourceTree = ""; }; - CEF3185C13D8660900B8CDCA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../fr.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CEF3185F13D8661300B8CDCA /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/about.xib; sourceTree = ""; }; - CEF3186013D8661300B8CDCA /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CEF3186113D8661300B8CDCA /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = ""; }; CEF5770713CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; }; CEF5770813CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CEF5770A13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; @@ -539,24 +523,13 @@ name = xib; sourceTree = ""; }; - CE4B59C41119919700C06C9E /* xib */ = { - isa = PBXGroup; - children = ( - CEF3185513D8660000B8CDCA /* about.xib */, - CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */, - CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */, - CE4B59C61119919700C06C9E /* progress.xib */, - ); - name = xib; - path = ../../cocoalib/xib; - sourceTree = SOURCE_ROOT; - }; CE515DDD0FC6C09400EC695D /* cocoalib */ = { isa = PBXGroup; children = ( + CE85B9A615B9F9A1003C7302 /* autogen */, CE003CB211242D00004B0AA7 /* controllers */, CE003CBF11242D00004B0AA7 /* views */, - CE4B59C41119919700C06C9E /* xib */, + CE78EEC615B9FEE0005CB26E /* cocoalib.strings */, CE515DE00FC6C12E00EC695D /* Dialogs.h */, CE515DE10FC6C12E00EC695D /* Dialogs.m */, CEF6BCA71575769C00DACF6F /* HSFairwareProtocol.h */, @@ -615,6 +588,26 @@ name = dgbase; sourceTree = ""; }; + CE85B9A615B9F9A1003C7302 /* autogen */ = { + isa = PBXGroup; + children = ( + CE85B9A715B9F9A1003C7302 /* HSAboutBox_UI.h */, + CE85B9A815B9F9A1003C7302 /* HSAboutBox_UI.m */, + CE85B9A915B9F9A1003C7302 /* HSDemoReminder_UI.h */, + CE85B9AA15B9F9A1003C7302 /* HSDemoReminder_UI.m */, + CE85B9AB15B9F9A1003C7302 /* HSEnterCode_UI.h */, + CE85B9AC15B9F9A1003C7302 /* HSEnterCode_UI.m */, + CE85B9AD15B9F9A1003C7302 /* HSErrorReportWindow_UI.h */, + CE85B9AE15B9F9A1003C7302 /* HSErrorReportWindow_UI.m */, + CE85B9AF15B9F9A1003C7302 /* HSFairwareReminder_UI.h */, + CE85B9B015B9F9A1003C7302 /* HSFairwareReminder_UI.m */, + CE85B9B115B9F9A1003C7302 /* ProgressController_UI.h */, + CE85B9B215B9F9A1003C7302 /* ProgressController_UI.m */, + ); + name = autogen; + path = ../../cocoalib/autogen; + sourceTree = ""; + }; CE9705C314C46E7D007A28F6 /* autogen */ = { isa = PBXGroup; children = ( @@ -696,7 +689,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0430; + LastUpgradeCheck = 0440; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */; compatibilityVersion = "Xcode 3.2"; @@ -736,7 +729,6 @@ CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */, CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, CE6E0E9F1054EB97008D9390 /* dsa_pub.pem in Resources */, - CE4B59C91119919700C06C9E /* progress.xib in Resources */, CE74A12712537F2E008A8DF0 /* FairwareReminder.xib in Resources */, CE05331712E5D3ED0029EF25 /* DetailsPanel.xib in Resources */, CE05331812E5D3ED0029EF25 /* DirectoryPanel.xib in Resources */, @@ -753,19 +745,7 @@ CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */, CE1195961510FFB20063C8AF /* IgnoreListDialog.xib in Resources */, CEA39FA1157679FB00F294DE /* DeletionOptions.xib in Resources */, - CE20A79315A2843F00FAC2BA /* about.xib in Resources */, - CE20A79415A2843F00FAC2BA /* ErrorReportWindow.xib in Resources */, - CE20A79515A2843F00FAC2BA /* FairwareReminder.xib in Resources */, - CE20A79815A2845A00FAC2BA /* DetailsPanel.xib in Resources */, - CE20A7A115A2847500FAC2BA /* DetailsPanel.xib in Resources */, - CE20A7A215A2847500FAC2BA /* DirectoryPanel.xib in Resources */, - CE20A7A315A2847500FAC2BA /* MainMenu.xib in Resources */, - CE20A7A415A2847500FAC2BA /* ProblemDialog.xib in Resources */, - CE20A7A515A2847500FAC2BA /* IgnoreListDialog.xib in Resources */, - CE20A7A615A2847500FAC2BA /* ResultWindow.xib in Resources */, - CE20A7A715A2847500FAC2BA /* Preferences.xib in Resources */, - CE20A7A815A2847500FAC2BA /* PrioritizeDialog.xib in Resources */, - CE39D18615B9D1A300AD36C6 /* Info.plist in Resources */, + CE78EEC815B9FEE0005CB26E /* cocoalib.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -830,6 +810,12 @@ CEF6BCAA1575769C00DACF6F /* HSPyUtil.m in Sources */, CEA39FAD15767A2900F294DE /* PyDeletionOptions.m in Sources */, CEA39FB015767A3A00F294DE /* DeletionOptions.m in Sources */, + CE85B9B315B9F9A1003C7302 /* HSAboutBox_UI.m in Sources */, + CE85B9B415B9F9A1003C7302 /* HSDemoReminder_UI.m in Sources */, + CE85B9B515B9F9A1003C7302 /* HSEnterCode_UI.m in Sources */, + CE85B9B615B9F9A1003C7302 /* HSErrorReportWindow_UI.m in Sources */, + CE85B9B715B9F9A1003C7302 /* HSFairwareReminder_UI.m in Sources */, + CE85B9B815B9F9A1003C7302 /* ProgressController_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -975,20 +961,27 @@ CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */ = { isa = PBXVariantGroup; children = ( - CE74A12612537F2E008A8DF0 /* en */, - CE05347712E5DC420029EF25 /* fr */, - CEF3186113D8661300B8CDCA /* de */, - CEC8F30B1416A0D2004D28F3 /* zh_CN */, - CE74253D14603120002F8E3E /* cs */, - CE7A69AA146443360007D927 /* it */, - CEC3D39114911288006B1A91 /* hy */, - CE335AF014B393C60000AF1A /* ru */, - CE35FCEE14C637B8004E4864 /* uk */, - CE20A79215A2843F00FAC2BA /* pt_BR */, ); name = FairwareReminder.xib; - path = ../../cocoalib/xib; - sourceTree = SOURCE_ROOT; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; + }; + CE78EEC615B9FEE0005CB26E /* cocoalib.strings */ = { + isa = PBXVariantGroup; + children = ( + CE78EEC715B9FEE0005CB26E /* en */, + CE78EECA15B9FF07005CB26E /* cs */, + CE78EECB15B9FF07005CB26E /* de */, + CE78EECC15B9FF07005CB26E /* fr */, + CE78EECD15B9FF07005CB26E /* hy */, + CE78EECE15B9FF07005CB26E /* it */, + CE78EECF15B9FF07005CB26E /* pt_BR */, + CE78EED015B9FF07005CB26E /* ru */, + CE78EED115B9FF07005CB26E /* uk */, + CE78EED215B9FF07005CB26E /* zh_CN */, + ); + name = cocoalib.strings; + sourceTree = ""; }; CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */ = { isa = PBXVariantGroup; @@ -1027,36 +1020,18 @@ CEF3185513D8660000B8CDCA /* about.xib */ = { isa = PBXVariantGroup; children = ( - CEF3185613D8660000B8CDCA /* en */, - CEF3185B13D8660900B8CDCA /* fr */, - CEF3185F13D8661300B8CDCA /* de */, - CEC8F3091416A0D2004D28F3 /* zh_CN */, - CE74253B14603120002F8E3E /* cs */, - CE7A69A8146443360007D927 /* it */, - CEC3D38F14911288006B1A91 /* hy */, - CE335AEE14B393C60000AF1A /* ru */, - CE35FCEC14C637B8004E4864 /* uk */, - CE20A79015A2843F00FAC2BA /* pt_BR */, ); name = about.xib; - sourceTree = ""; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; }; CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */ = { isa = PBXVariantGroup; children = ( - CEF3185813D8660000B8CDCA /* en */, - CEF3185C13D8660900B8CDCA /* fr */, - CEF3186013D8661300B8CDCA /* de */, - CEC8F30A1416A0D2004D28F3 /* zh_CN */, - CE74253C14603120002F8E3E /* cs */, - CE7A69A9146443360007D927 /* it */, - CEC3D39014911288006B1A91 /* hy */, - CE335AEF14B393C60000AF1A /* ru */, - CE35FCED14C637B8004E4864 /* uk */, - CE20A79115A2843F00FAC2BA /* pt_BR */, ); name = ErrorReportWindow.xib; - sourceTree = ""; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; }; /* End PBXVariantGroup section */ @@ -1083,11 +1058,12 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; GCC_C_LANGUAGE_STANDARD = c99; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.6; + SDKROOT = macosx10.7; }; name = release; }; @@ -1095,11 +1071,12 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; GCC_C_LANGUAGE_STANDARD = c99; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.6; + SDKROOT = macosx10.7; }; name = dev; }; diff --git a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj index 32dd8fe3..3b22362f 100644 --- a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj @@ -16,18 +16,6 @@ CE0533A812E5DA4D0029EF25 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; }; CE0533AB12E5DA6A0029EF25 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A912E5DA6A0029EF25 /* Localizable.strings */; }; CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; }; - CE09AF4615A284F600BD431C /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC113D867AD0081E295 /* about.xib */; }; - CE09AF4715A284F600BD431C /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */; }; - CE09AF4815A284F600BD431C /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */; }; - CE09AF4C15A2851100BD431C /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; }; - CE09AF4D15A2851100BD431C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; }; - CE09AF5515A2852600BD431C /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; }; - CE09AF5615A2852600BD431C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; }; - CE09AF5715A2852600BD431C /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; }; - CE09AF5815A2852600BD431C /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7857951511019400174D51 /* IgnoreListDialog.xib */; }; - CE09AF5915A2852600BD431C /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; }; - CE09AF5A15A2852600BD431C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */; }; - CE09AF5B15A2852600BD431C /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; }; CE0C2AB61177011000BC749F /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0C2AB51177011000BC749F /* HSTable.m */; }; CE0C2ABD1177014200BC749F /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0C2ABB1177014200BC749F /* ProblemDialog.m */; }; CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */; }; @@ -36,6 +24,7 @@ CE1EB60112537FB90034AABB /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */; }; CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; }; CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; }; + CE3E323515B9FFA2006FF5F1 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE3E323315B9FFA2006FF5F1 /* cocoalib.strings */; }; 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 */; }; @@ -65,7 +54,6 @@ CE7857971511019400174D51 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7857951511019400174D51 /* IgnoreListDialog.xib */; }; CE7857AA1511021200174D51 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7857A91511021200174D51 /* PyIgnoreListDialog.m */; }; CE7857AD1511022A00174D51 /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7857AC1511022A00174D51 /* IgnoreListDialog.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 */; }; CE7D24A51423B106002E2297 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D24A01423B106002E2297 /* PrioritizeDialog.m */; }; @@ -80,6 +68,12 @@ 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 */; }; + CE9292B415B9FA5200C6D7F6 /* HSAboutBox_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292A915B9FA5200C6D7F6 /* HSAboutBox_UI.m */; }; + CE9292B515B9FA5200C6D7F6 /* HSDemoReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292AB15B9FA5200C6D7F6 /* HSDemoReminder_UI.m */; }; + CE9292B615B9FA5200C6D7F6 /* HSEnterCode_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292AD15B9FA5200C6D7F6 /* HSEnterCode_UI.m */; }; + CE9292B715B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292AF15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m */; }; + CE9292B815B9FA5200C6D7F6 /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292B115B9FA5200C6D7F6 /* HSFairwareReminder_UI.m */; }; + CE9292B915B9FA5200C6D7F6 /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292B315B9FA5200C6D7F6 /* ProgressController_UI.m */; }; 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 */; }; @@ -97,15 +91,6 @@ CED3BC1515767AFB0028F3C9 /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */; }; CED3BC1915767B0E0028F3C9 /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CED3BC1815767B0E0028F3C9 /* DeletionOptions.m */; }; CED3BC2415767B200028F3C9 /* DeletionOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */; }; - CED3BC2515767B200028F3C9 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339312E5DA350029EF25 /* DirectoryPanel.xib */; }; - CED3BC2615767B200028F3C9 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; }; - CED3BC2715767B200028F3C9 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; }; - CED3BC2815767B200028F3C9 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7857951511019400174D51 /* IgnoreListDialog.xib */; }; - CED3BC2915767B200028F3C9 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; }; - CED3BC2A15767B200028F3C9 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */; }; - CED3BC2B15767B200028F3C9 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; }; - CED3BC2C15767B200028F3C9 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */; }; - CED3EA5015B9D1DF00557437 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */; }; CEE6D562149113570087CDFC /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE6D561149113570087CDFC /* HSColumns.m */; }; CEE8D3E2157576FD00E1A1B8 /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE8D3E1157576FD00E1A1B8 /* HSPyUtil.m */; }; CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; @@ -143,9 +128,6 @@ CE03DD7214FBD33600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/DetailsPanel.xib; sourceTree = ""; }; CE03DD7314FBD33600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CE03DD7614FBD34600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; - CE03DD7814FBD36600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/about.xib; sourceTree = ""; }; - CE03DD7914FBD36600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE03DD7A14FBD36600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/FairwareReminder.xib; sourceTree = ""; }; CE05339412E5DA350029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE05339612E5DA350029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE05339812E5DA350029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; @@ -160,11 +142,7 @@ CE0533AC12E5DA790029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; CE0533AD12E5DAAD0029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/DetailsPanel.xib; sourceTree = ""; }; 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; }; - CE09AF4315A284F600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/about.xib; sourceTree = ""; }; - CE09AF4415A284F600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE09AF4515A284F600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/FairwareReminder.xib; sourceTree = ""; }; CE09AF4A15A2851100BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/DetailsPanel.xib; sourceTree = ""; }; CE09AF4B15A2851100BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; CE09AF4E15A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; @@ -178,10 +156,9 @@ 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; }; - CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = ""; }; + CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; 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; }; - 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 = ""; }; CE21AFB81423EA6E00DE35BF /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -189,14 +166,21 @@ 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; }; + CE3E323415B9FFA2006FF5F1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../../cocoalib/en.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323715B9FFC7006FF5F1 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../../cocoalib/cs.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323815B9FFC7006FF5F1 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../../cocoalib/de.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323915B9FFC7006FF5F1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../../cocoalib/fr.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323A15B9FFC7006FF5F1 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../../cocoalib/hy.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323B15B9FFC7006FF5F1 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../../cocoalib/it.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323C15B9FFC7006FF5F1 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../../cocoalib/pt_BR.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323D15B9FFC7006FF5F1 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../../cocoalib/ru.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323E15B9FFC7006FF5F1 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../../cocoalib/uk.lproj/cocoalib.strings; sourceTree = ""; }; + CE3E323F15B9FFC7006FF5F1 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../../cocoalib/zh_CN.lproj/cocoalib.strings; sourceTree = ""; }; 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; }; CE6044EB0FE6796200B71262 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; CE63D9D21461EDC000A8CADD /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = ""; }; - CE653CEB14169F140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = ""; }; - CE653CEC14169F140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE653CED14169F140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/FairwareReminder.xib; sourceTree = ""; }; CE653CF314169F2C0058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; CE653CF61416A0140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/DetailsPanel.xib; sourceTree = ""; }; CE653CF71416A0140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; @@ -271,10 +255,6 @@ CE7A69BE146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; CE7A69C5146443B90007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/DetailsPanel.xib; sourceTree = ""; }; CE7A69C6146443B90007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; - CE7A69C9146443CB0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/about.xib; sourceTree = ""; }; - 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 = ""; }; 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 = ""; }; @@ -304,9 +284,6 @@ 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 = ""; }; - CE905DE114C6387B00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/about.xib; sourceTree = ""; }; - CE905DE214C6387B00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE905DE314C6387B00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/FairwareReminder.xib; sourceTree = ""; }; CE905DE814C6388E00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; CE905DEA14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE905DEC14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; @@ -315,6 +292,18 @@ CE905DEF14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = ""; }; CE905DF614C638B000C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/DetailsPanel.xib; sourceTree = ""; }; CE905DF714C638B000C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; + CE9292A815B9FA5200C6D7F6 /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSAboutBox_UI.h; sourceTree = ""; }; + CE9292A915B9FA5200C6D7F6 /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSAboutBox_UI.m; sourceTree = ""; }; + CE9292AA15B9FA5200C6D7F6 /* HSDemoReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSDemoReminder_UI.h; sourceTree = ""; }; + CE9292AB15B9FA5200C6D7F6 /* HSDemoReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSDemoReminder_UI.m; sourceTree = ""; }; + CE9292AC15B9FA5200C6D7F6 /* HSEnterCode_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSEnterCode_UI.h; sourceTree = ""; }; + CE9292AD15B9FA5200C6D7F6 /* HSEnterCode_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSEnterCode_UI.m; sourceTree = ""; }; + CE9292AE15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSErrorReportWindow_UI.h; sourceTree = ""; }; + CE9292AF15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSErrorReportWindow_UI.m; sourceTree = ""; }; + CE9292B015B9FA5200C6D7F6 /* HSFairwareReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSFairwareReminder_UI.h; sourceTree = ""; }; + CE9292B115B9FA5200C6D7F6 /* HSFairwareReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSFairwareReminder_UI.m; sourceTree = ""; }; + CE9292B215B9FA5200C6D7F6 /* ProgressController_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProgressController_UI.h; sourceTree = ""; }; + CE9292B315B9FA5200C6D7F6 /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProgressController_UI.m; sourceTree = ""; }; 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 = ""; }; @@ -338,13 +327,6 @@ CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; CECA899A09DB132E00A3D774 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DetailsPanel.h; sourceTree = ""; }; CECA899B09DB132E00A3D774 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel.m; sourceTree = ""; }; - CECB2AC213D867AD0081E295 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/about.xib; sourceTree = ""; }; - CECB2AC413D867AD0081E295 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CECB2AC713D867B70081E295 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../fr.lproj/about.xib; sourceTree = ""; }; - CECB2AC813D867B70081E295 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../fr.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CECB2ACB13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/about.xib; sourceTree = ""; }; - CECB2ACC13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CECB2ACD13D867C00081E295 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = ""; }; CED3BC1315767AFB0028F3C9 /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; CED3BC1715767B0E0028F3C9 /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = ""; }; @@ -367,18 +349,12 @@ CEE6D553149113190087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/DetailsPanel.xib; sourceTree = ""; }; CEE6D554149113190087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CEE6D557149113250087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; - 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 = ""; }; 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 = ""; }; CEE8D3DF157576FD00E1A1B8 /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = ""; }; CEE8D3E0157576FD00E1A1B8 /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = ""; }; CEE8D3E1157576FD00E1A1B8 /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = ""; }; CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; - CEEE156E1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = ""; }; - CEEE156F1460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CEEE15701460325B00783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = ""; }; CEEE15771460327300783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; CEEE15841460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = ""; }; CEEE15861460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; @@ -554,24 +530,13 @@ path = ../autogen; sourceTree = ""; }; - CE7AC9141119911200D02F6C /* xib */ = { - isa = PBXGroup; - children = ( - CECB2AC113D867AD0081E295 /* about.xib */, - CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */, - CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */, - CE7AC9161119911200D02F6C /* progress.xib */, - ); - name = xib; - path = ../../cocoalib/xib; - sourceTree = SOURCE_ROOT; - }; CE80DB1A0FC192AB0086DCA6 /* cocoalib */ = { isa = PBXGroup; children = ( + CE9292A715B9FA5200C6D7F6 /* autogen */, CE9EA7421122C96C008CD2BC /* controllers */, CE9EA74F1122C96C008CD2BC /* views */, - CE7AC9141119911200D02F6C /* xib */, + CE3E323315B9FFA2006FF5F1 /* cocoalib.strings */, CE80DB480FC193770086DCA6 /* NSImageAdditions.h */, CE80DB490FC193770086DCA6 /* NSImageAdditions.m */, CE80DB450FC193650086DCA6 /* NSNotificationAdditions.h */, @@ -634,6 +599,26 @@ name = dgbase; sourceTree = ""; }; + CE9292A715B9FA5200C6D7F6 /* autogen */ = { + isa = PBXGroup; + children = ( + CE9292A815B9FA5200C6D7F6 /* HSAboutBox_UI.h */, + CE9292A915B9FA5200C6D7F6 /* HSAboutBox_UI.m */, + CE9292AA15B9FA5200C6D7F6 /* HSDemoReminder_UI.h */, + CE9292AB15B9FA5200C6D7F6 /* HSDemoReminder_UI.m */, + CE9292AC15B9FA5200C6D7F6 /* HSEnterCode_UI.h */, + CE9292AD15B9FA5200C6D7F6 /* HSEnterCode_UI.m */, + CE9292AE15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.h */, + CE9292AF15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m */, + CE9292B015B9FA5200C6D7F6 /* HSFairwareReminder_UI.h */, + CE9292B115B9FA5200C6D7F6 /* HSFairwareReminder_UI.m */, + CE9292B215B9FA5200C6D7F6 /* ProgressController_UI.h */, + CE9292B315B9FA5200C6D7F6 /* ProgressController_UI.m */, + ); + name = autogen; + path = ../../cocoalib/autogen; + sourceTree = ""; + }; CE9EA7421122C96C008CD2BC /* controllers */ = { isa = PBXGroup; children = ( @@ -706,7 +691,7 @@ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { - LastUpgradeCheck = 0430; + LastUpgradeCheck = 0440; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */; compatibilityVersion = "Xcode 3.2"; @@ -746,7 +731,6 @@ CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */, CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, CE6E0F3D1054EC62008D9390 /* dsa_pub.pem in Resources */, - CE7AC9191119911200D02F6C /* progress.xib in Resources */, CE1EB60112537FB90034AABB /* FairwareReminder.xib in Resources */, CE05339B12E5DA350029EF25 /* DirectoryPanel.xib in Resources */, CE05339C12E5DA350029EF25 /* MainMenu.xib in Resources */, @@ -763,27 +747,7 @@ CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */, CE7857971511019400174D51 /* IgnoreListDialog.xib in Resources */, CED3BC2415767B200028F3C9 /* DeletionOptions.xib in Resources */, - CED3BC2515767B200028F3C9 /* DirectoryPanel.xib in Resources */, - CED3BC2615767B200028F3C9 /* MainMenu.xib in Resources */, - CED3BC2715767B200028F3C9 /* ProblemDialog.xib in Resources */, - CED3BC2815767B200028F3C9 /* IgnoreListDialog.xib in Resources */, - CED3BC2915767B200028F3C9 /* ResultWindow.xib in Resources */, - CED3BC2A15767B200028F3C9 /* DetailsPanel.xib in Resources */, - CED3BC2B15767B200028F3C9 /* Preferences.xib in Resources */, - CED3BC2C15767B200028F3C9 /* PrioritizeDialog.xib in Resources */, - CE09AF4615A284F600BD431C /* about.xib in Resources */, - CE09AF4715A284F600BD431C /* ErrorReportWindow.xib in Resources */, - CE09AF4815A284F600BD431C /* FairwareReminder.xib in Resources */, - CE09AF4C15A2851100BD431C /* DirectoryPanel.xib in Resources */, - CE09AF4D15A2851100BD431C /* MainMenu.xib in Resources */, - CE09AF5515A2852600BD431C /* DirectoryPanel.xib in Resources */, - CE09AF5615A2852600BD431C /* MainMenu.xib in Resources */, - CE09AF5715A2852600BD431C /* ProblemDialog.xib in Resources */, - CE09AF5815A2852600BD431C /* IgnoreListDialog.xib in Resources */, - CE09AF5915A2852600BD431C /* ResultWindow.xib in Resources */, - CE09AF5A15A2852600BD431C /* DetailsPanel.xib in Resources */, - CE09AF5B15A2852600BD431C /* Preferences.xib in Resources */, - CED3EA5015B9D1DF00557437 /* dsa_pub.pem in Resources */, + CE3E323515B9FFA2006FF5F1 /* cocoalib.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -851,6 +815,12 @@ CEE8D3E2157576FD00E1A1B8 /* HSPyUtil.m in Sources */, CED3BC1515767AFB0028F3C9 /* PyDeletionOptions.m in Sources */, CED3BC1915767B0E0028F3C9 /* DeletionOptions.m in Sources */, + CE9292B415B9FA5200C6D7F6 /* HSAboutBox_UI.m in Sources */, + CE9292B515B9FA5200C6D7F6 /* HSDemoReminder_UI.m in Sources */, + CE9292B615B9FA5200C6D7F6 /* HSEnterCode_UI.m in Sources */, + CE9292B715B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m in Sources */, + CE9292B815B9FA5200C6D7F6 /* HSFairwareReminder_UI.m in Sources */, + CE9292B915B9FA5200C6D7F6 /* ProgressController_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -979,20 +949,27 @@ CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */ = { isa = PBXVariantGroup; children = ( - CE1EB60012537FB90034AABB /* en */, - CE0533B712E5DC040029EF25 /* fr */, - CECB2ACD13D867C00081E295 /* de */, - CE653CED14169F140058A022 /* zh_CN */, - CEEE15701460325B00783E91 /* cs */, - CE7A69CB146443CB0007D927 /* it */, - CEE6D55B149113320087CDFC /* hy */, - CE905DE314C6387B00C0ECEF /* uk */, - CE03DD7A14FBD36600E998AC /* ru */, - CE09AF4515A284F600BD431C /* pt_BR */, ); name = FairwareReminder.xib; - path = ../../cocoalib/xib; - sourceTree = SOURCE_ROOT; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; + }; + CE3E323315B9FFA2006FF5F1 /* cocoalib.strings */ = { + isa = PBXVariantGroup; + children = ( + CE3E323415B9FFA2006FF5F1 /* en */, + CE3E323715B9FFC7006FF5F1 /* cs */, + CE3E323815B9FFC7006FF5F1 /* de */, + CE3E323915B9FFC7006FF5F1 /* fr */, + CE3E323A15B9FFC7006FF5F1 /* hy */, + CE3E323B15B9FFC7006FF5F1 /* it */, + CE3E323C15B9FFC7006FF5F1 /* pt_BR */, + CE3E323D15B9FFC7006FF5F1 /* ru */, + CE3E323E15B9FFC7006FF5F1 /* uk */, + CE3E323F15B9FFC7006FF5F1 /* zh_CN */, + ); + name = cocoalib.strings; + sourceTree = ""; }; CE7857951511019400174D51 /* IgnoreListDialog.xib */ = { isa = PBXVariantGroup; @@ -1031,36 +1008,18 @@ CECB2AC113D867AD0081E295 /* about.xib */ = { isa = PBXVariantGroup; children = ( - CECB2AC213D867AD0081E295 /* en */, - CECB2AC713D867B70081E295 /* fr */, - CECB2ACB13D867C00081E295 /* de */, - CE653CEB14169F140058A022 /* zh_CN */, - CEEE156E1460325B00783E91 /* cs */, - CE7A69C9146443CB0007D927 /* it */, - CEE6D559149113320087CDFC /* hy */, - CE905DE114C6387B00C0ECEF /* uk */, - CE03DD7814FBD36600E998AC /* ru */, - CE09AF4315A284F600BD431C /* pt_BR */, ); name = about.xib; - sourceTree = ""; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; }; CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */ = { isa = PBXVariantGroup; children = ( - CECB2AC413D867AD0081E295 /* en */, - CECB2AC813D867B70081E295 /* fr */, - CECB2ACC13D867C00081E295 /* de */, - CE653CEC14169F140058A022 /* zh_CN */, - CEEE156F1460325B00783E91 /* cs */, - CE7A69CA146443CB0007D927 /* it */, - CEE6D55A149113320087CDFC /* hy */, - CE905DE214C6387B00C0ECEF /* uk */, - CE03DD7914FBD36600E998AC /* ru */, - CE09AF4415A284F600BD431C /* pt_BR */, ); name = ErrorReportWindow.xib; - sourceTree = ""; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; }; CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */ = { isa = PBXVariantGroup; @@ -1104,11 +1063,12 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; GCC_C_LANGUAGE_STANDARD = c99; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.6; + SDKROOT = macosx10.7; }; name = release; }; @@ -1116,11 +1076,12 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; GCC_C_LANGUAGE_STANDARD = c99; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.6; + SDKROOT = macosx10.7; }; name = dev; }; diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 2d50ab1e..0a1e9438 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -8,12 +8,10 @@ /* Begin PBXBuildFile section */ 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - CE066CEF15B9D15B007084A6 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */; }; CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; }; CE18004D14BDD837001B6329 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; }; CE18004F14BDD854001B6329 /* Python in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; }; CE18005114BDD87B001B6329 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE18005014BDD87B001B6329 /* py */; }; - CE19BC6411199231007CCEB0 /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE19BC6111199231007CCEB0 /* progress.xib */; }; CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091514BE0C6400CA6B8C /* ObjP.m */; }; CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */; }; CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; }; @@ -36,18 +34,6 @@ CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC514BF903D00D180CB /* PyPrioritizeList.m */; }; CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9814C07BCF004CA031 /* PyOutline.m */; }; CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9D14C0801F004CA031 /* PySelectableList.m */; }; - CE5A5C9C15A2837200C4E461 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; }; - CE5A5C9D15A2837200C4E461 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; }; - CE5A5C9E15A2837200C4E461 /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; }; - CE5A5CA815A283C200C4E461 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; }; - CE5A5CA915A283C200C4E461 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */; }; - CE5A5CAA15A283C200C4E461 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; }; - CE5A5CAB15A283C200C4E461 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */; }; - CE5A5CAC15A283C200C4E461 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */; }; - CE5A5CAD15A283C200C4E461 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; }; - CE5A5CAE15A283C200C4E461 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; }; - CE5A5CAF15A283C200C4E461 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */; }; - CE5A5CB115A283D700C4E461 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; }; CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; }; CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD4E6124CA3070089A48D /* ResultTable.m */; }; CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD546124CAF1F0089A48D /* HSTableView.m */; }; @@ -67,6 +53,7 @@ CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; }; CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; }; CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; }; + CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8C25CB15B9FCC100D44175 /* cocoalib.strings */; }; CE91F216113BC22D0010360B /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE91F214113BC22D0010360B /* StatsLabel.m */; }; CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */; }; CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */; }; @@ -80,6 +67,12 @@ CEC3F8F815765F9F00B26F0C /* DeletionOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEC3F8F615765F9F00B26F0C /* DeletionOptions.xib */; }; CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FB157668A300B26F0C /* DeletionOptions.m */; }; CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */; }; + CEE49F4015B9F4E1002BD78B /* HSAboutBox_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */; }; + CEE49F4115B9F4E1002BD78B /* HSDemoReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */; }; + CEE49F4215B9F4E1002BD78B /* HSEnterCode_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */; }; + CEE49F4315B9F4E1002BD78B /* HSErrorReportWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */; }; + CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */; }; + CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */; }; CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; }; CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */; }; @@ -93,14 +86,6 @@ CEEF2A4114C0B9050082545A /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3B14C0B9050082545A /* HSTable.m */; }; CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; }; CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; }; - CEFC64DE157678A500664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; }; - CEFC64E1157678AF00664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; }; - CEFC64E3157678C000664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; }; - CEFC64E5157678CA00664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; }; - CEFC64EA157678DE00664D8C /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; }; - CEFC64EB157678DE00664D8C /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */; }; - CEFC64EC157678DE00664D8C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; }; - CEFC64ED157678DE00664D8C /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */; }; CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; }; CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F910FC9517500CD5728 /* ProgressController.m */; }; CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9B0FC9517500CD5728 /* Utils.m */; }; @@ -139,13 +124,6 @@ CE00BBC314910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; - CE00BBD014910CA3006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/about.xib; sourceTree = ""; }; - CE00BBD114910CA3006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE00BBD214910CA3006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../hy.lproj/FairwareReminder.xib; sourceTree = ""; }; - CE05341312E5DC260029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../../cocoalib/fr.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; }; - CE0564A814169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/about.xib; sourceTree = ""; }; - CE0564A914169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE0564AA14169D6C00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../zh_CN.lproj/FairwareReminder.xib; sourceTree = ""; }; CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; CE0564B314169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DetailsPanel.xib; sourceTree = ""; }; CE0564B414169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -155,16 +133,12 @@ CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = ""; }; - CE112F5F145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/about.xib; sourceTree = ""; }; - CE112F60145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE112F61145EF28D009C9E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../cs.lproj/FairwareReminder.xib; sourceTree = ""; }; CE148034151100EC00CD5DAD /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE148037151100FB00CD5DAD /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE1480391511010500CD5DAD /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE14803B1511011000CD5DAD /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = ""; }; CE18005014BDD87B001B6329 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = ""; }; - CE19BC6111199231007CCEB0 /* progress.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = progress.xib; sourceTree = ""; }; CE1D091414BE0C6400CA6B8C /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = ""; }; CE1D091514BE0C6400CA6B8C /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = ""; }; CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = ""; }; @@ -175,13 +149,6 @@ CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = ""; }; CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; }; CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; - CE31819A13D85D9B00B6D649 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/about.xib; sourceTree = ""; }; - CE31819C13D85D9B00B6D649 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../en.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE31819F13D85DA800B6D649 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../fr.lproj/about.xib; sourceTree = ""; }; - CE3181A013D85DA800B6D649 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../fr.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE3181A313D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/about.xib; sourceTree = ""; }; - CE3181A413D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE3181A513D85DB700B6D649 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../de.lproj/FairwareReminder.xib; sourceTree = ""; }; CE3491E2151100A40030B64C /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE3491E5151100AD0030B64C /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE3491E7151100BB0030B64C /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/IgnoreListDialog.xib; sourceTree = ""; }; @@ -197,7 +164,7 @@ CE412C101510ECCA00484122 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE412C121510ED2E00484122 /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = ""; }; CE412C131510ED2E00484122 /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = ""; }; - CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = ""; }; + CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; sourceTree = SOURCE_ROOT; }; CE4746D114C09C12001A66DE /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = ""; }; CE4746D214C09C12001A66DE /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = ""; }; CE5335FA142BBFAF008E5374 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = ""; }; @@ -211,9 +178,6 @@ CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = ""; }; CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; - CE5A5C9915A2837200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/about.xib; sourceTree = ""; }; - CE5A5C9A15A2837200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE5A5C9B15A2837200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../pt_BR.lproj/FairwareReminder.xib; sourceTree = ""; }; CE5A5CA015A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; CE5A5CA115A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DetailsPanel.xib; sourceTree = ""; }; CE5A5CA215A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -240,7 +204,6 @@ CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; }; CE76FDF5111EE561006618EA /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; }; CE76FDF6111EE561006618EA /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; }; - CE79638512536C94008D405B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; }; CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; }; CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; @@ -250,9 +213,6 @@ CE7A697B146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE7A697C146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = ""; }; CE7A697D146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; - CE7A6985146442340007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/about.xib; sourceTree = ""; }; - CE7A6986146442340007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CE7A6987146442340007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../it.lproj/FairwareReminder.xib; sourceTree = ""; }; CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; CE81134312E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; }; CE81134512E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; @@ -270,6 +230,16 @@ CE8113EC12E5CEA800A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; CE89240614239CC30024CE4E /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = ""; }; CE89240714239CC30024CE4E /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = ""; }; + CE8C25CC15B9FCC100D44175 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../../cocoalib/en.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25CF15B9FCF300D44175 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../../cocoalib/cs.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25D015B9FCF300D44175 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../../cocoalib/de.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25D115B9FCF300D44175 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../../cocoalib/fr.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25D215B9FCF300D44175 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../../cocoalib/hy.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25D315B9FCF300D44175 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../../cocoalib/it.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25D415B9FCF300D44175 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../../cocoalib/pt_BR.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25D515B9FCF300D44175 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../../cocoalib/ru.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25D615B9FCF300D44175 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../../cocoalib/uk.lproj/cocoalib.strings; sourceTree = ""; }; + CE8C25D715B9FCF300D44175 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../../cocoalib/zh_CN.lproj/cocoalib.strings; sourceTree = ""; }; CE91F213113BC22D0010360B /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; }; CE91F214113BC22D0010360B /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; }; CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = ""; }; @@ -299,9 +269,6 @@ CECFFF2013CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; - CED638D514B38CC800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/about.xib; sourceTree = ""; }; - CED638D614B38CC800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CED638D714B38CC800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../ru.lproj/FairwareReminder.xib; sourceTree = ""; }; CED638DC14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DetailsPanel.xib; sourceTree = ""; }; CED638DD14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = ""; }; CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; @@ -319,12 +286,21 @@ CED64CFE145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = ""; }; CED64D06145EF16300572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = ""; }; CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; + CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox_UI.h; path = ../../cocoalib/autogen/HSAboutBox_UI.h; sourceTree = ""; }; + CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox_UI.m; path = ../../cocoalib/autogen/HSAboutBox_UI.m; sourceTree = ""; }; + CEE49F3615B9F4E1002BD78B /* HSDemoReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSDemoReminder_UI.h; path = ../../cocoalib/autogen/HSDemoReminder_UI.h; sourceTree = ""; }; + CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSDemoReminder_UI.m; path = ../../cocoalib/autogen/HSDemoReminder_UI.m; sourceTree = ""; }; + CEE49F3815B9F4E1002BD78B /* HSEnterCode_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSEnterCode_UI.h; path = ../../cocoalib/autogen/HSEnterCode_UI.h; sourceTree = ""; }; + CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSEnterCode_UI.m; path = ../../cocoalib/autogen/HSEnterCode_UI.m; sourceTree = ""; }; + CEE49F3A15B9F4E1002BD78B /* HSErrorReportWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow_UI.h; path = ../../cocoalib/autogen/HSErrorReportWindow_UI.h; sourceTree = ""; }; + CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow_UI.m; path = ../../cocoalib/autogen/HSErrorReportWindow_UI.m; sourceTree = ""; }; + CEE49F3C15B9F4E1002BD78B /* HSFairwareReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder_UI.h; path = ../../cocoalib/autogen/HSFairwareReminder_UI.h; sourceTree = ""; }; + CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder_UI.m; path = ../../cocoalib/autogen/HSFairwareReminder_UI.m; sourceTree = ""; }; + CEE49F3E15B9F4E1002BD78B /* ProgressController_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController_UI.h; path = ../../cocoalib/autogen/ProgressController_UI.h; sourceTree = ""; }; + CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController_UI.m; path = ../../cocoalib/autogen/ProgressController_UI.m; sourceTree = ""; }; CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; }; CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; - CEECCD0614C636C900A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/about.xib; sourceTree = ""; }; - CEECCD0714C636C900A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/ErrorReportWindow.xib; sourceTree = ""; }; - CEECCD0814C636C900A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../uk.lproj/FairwareReminder.xib; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; CEECCD0F14C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DetailsPanel.xib; sourceTree = ""; }; CEECCD1014C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -478,18 +454,6 @@ name = Frameworks; sourceTree = ""; }; - CE19BC5F11199231007CCEB0 /* xib */ = { - isa = PBXGroup; - children = ( - CE31819913D85D9B00B6D649 /* about.xib */, - CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */, - CE79638412536C94008D405B /* FairwareReminder.xib */, - CE19BC6111199231007CCEB0 /* progress.xib */, - ); - name = xib; - path = ../../cocoalib/xib; - sourceTree = SOURCE_ROOT; - }; CE1D091314BE0C6400CA6B8C /* autogen */ = { isa = PBXGroup; children = ( @@ -570,6 +534,25 @@ path = ../../cocoalib/controllers; sourceTree = SOURCE_ROOT; }; + CEE49F3315B9F4BA002BD78B /* autogen */ = { + isa = PBXGroup; + children = ( + CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */, + CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */, + CEE49F3615B9F4E1002BD78B /* HSDemoReminder_UI.h */, + CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */, + CEE49F3815B9F4E1002BD78B /* HSEnterCode_UI.h */, + CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */, + CEE49F3A15B9F4E1002BD78B /* HSErrorReportWindow_UI.h */, + CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */, + CEE49F3C15B9F4E1002BD78B /* HSFairwareReminder_UI.h */, + CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */, + CEE49F3E15B9F4E1002BD78B /* ProgressController_UI.h */, + CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */, + ); + name = autogen; + sourceTree = ""; + }; CEEFC0CA10943849001F3A39 /* xib */ = { isa = PBXGroup; children = ( @@ -597,11 +580,12 @@ CEFC7F890FC9513600CD5728 /* cocoalib */ = { isa = PBXGroup; children = ( - CE76FDF5111EE561006618EA /* NSEventAdditions.h */, - CE76FDF6111EE561006618EA /* NSEventAdditions.m */, + CEE49F3315B9F4BA002BD78B /* autogen */, CE76FDC7111EE38E006618EA /* controllers */, CE76FDBD111EE37C006618EA /* views */, - CE19BC5F11199231007CCEB0 /* xib */, + CE8C25CB15B9FCC100D44175 /* cocoalib.strings */, + CE76FDF5111EE561006618EA /* NSEventAdditions.h */, + CE76FDF6111EE561006618EA /* NSEventAdditions.m */, CEB57990146ADC5100EDF7D7 /* HSConsts.h */, CEFC7F8A0FC9517500CD5728 /* Dialogs.h */, CEFC7F8B0FC9517500CD5728 /* Dialogs.m */, @@ -689,7 +673,7 @@ isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = NO; - LastUpgradeCheck = 0430; + LastUpgradeCheck = 0440; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */; compatibilityVersion = "Xcode 3.2"; @@ -729,7 +713,6 @@ CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */, CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */, - CE19BC6411199231007CCEB0 /* progress.xib in Resources */, CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, CE81134C12E5CE4D00A36C80 /* DetailsPanel.xib in Resources */, CE81134D12E5CE4D00A36C80 /* DirectoryPanel.xib in Resources */, @@ -746,27 +729,7 @@ CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */, CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */, CEC3F8F815765F9F00B26F0C /* DeletionOptions.xib in Resources */, - CEFC64DE157678A500664D8C /* DetailsPanel.xib in Resources */, - CEFC64E1157678AF00664D8C /* DetailsPanel.xib in Resources */, - CEFC64E3157678C000664D8C /* DetailsPanel.xib in Resources */, - CEFC64E5157678CA00664D8C /* DetailsPanel.xib in Resources */, - CEFC64EA157678DE00664D8C /* DetailsPanel.xib in Resources */, - CEFC64EB157678DE00664D8C /* DirectoryPanel.xib in Resources */, - CEFC64EC157678DE00664D8C /* MainMenu.xib in Resources */, - CEFC64ED157678DE00664D8C /* ProblemDialog.xib in Resources */, - CE5A5C9C15A2837200C4E461 /* about.xib in Resources */, - CE5A5C9D15A2837200C4E461 /* ErrorReportWindow.xib in Resources */, - CE5A5C9E15A2837200C4E461 /* FairwareReminder.xib in Resources */, - CE5A5CA815A283C200C4E461 /* DetailsPanel.xib in Resources */, - CE5A5CA915A283C200C4E461 /* DirectoryPanel.xib in Resources */, - CE5A5CAA15A283C200C4E461 /* MainMenu.xib in Resources */, - CE5A5CAB15A283C200C4E461 /* ProblemDialog.xib in Resources */, - CE5A5CAC15A283C200C4E461 /* IgnoreListDialog.xib in Resources */, - CE5A5CAD15A283C200C4E461 /* ResultWindow.xib in Resources */, - CE5A5CAE15A283C200C4E461 /* Preferences.xib in Resources */, - CE5A5CAF15A283C200C4E461 /* PrioritizeDialog.xib in Resources */, - CE5A5CB115A283D700C4E461 /* DetailsPanel.xib in Resources */, - CE066CEF15B9D15B007084A6 /* dsa_pub.pem in Resources */, + CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -830,6 +793,12 @@ CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */, CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */, CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */, + CEE49F4015B9F4E1002BD78B /* HSAboutBox_UI.m in Sources */, + CEE49F4115B9F4E1002BD78B /* HSDemoReminder_UI.m in Sources */, + CEE49F4215B9F4E1002BD78B /* HSEnterCode_UI.m in Sources */, + CEE49F4315B9F4E1002BD78B /* HSErrorReportWindow_UI.m in Sources */, + CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */, + CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -839,36 +808,18 @@ CE31819913D85D9B00B6D649 /* about.xib */ = { isa = PBXVariantGroup; children = ( - CE31819A13D85D9B00B6D649 /* en */, - CE31819F13D85DA800B6D649 /* fr */, - CE3181A313D85DB700B6D649 /* de */, - CE0564A814169D6C00D3D907 /* zh_CN */, - CE112F5F145EF28D009C9E3E /* cs */, - CE7A6985146442340007D927 /* it */, - CE00BBD014910CA3006A717C /* hy */, - CED638D514B38CC800B88D00 /* ru */, - CEECCD0614C636C900A2F3A0 /* uk */, - CE5A5C9915A2837200C4E461 /* pt_BR */, ); name = about.xib; - sourceTree = ""; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; }; CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */ = { isa = PBXVariantGroup; children = ( - CE31819C13D85D9B00B6D649 /* en */, - CE3181A013D85DA800B6D649 /* fr */, - CE3181A413D85DB700B6D649 /* de */, - CE0564A914169D6C00D3D907 /* zh_CN */, - CE112F60145EF28D009C9E3E /* cs */, - CE7A6986146442340007D927 /* it */, - CE00BBD114910CA3006A717C /* hy */, - CED638D614B38CC800B88D00 /* ru */, - CEECCD0714C636C900A2F3A0 /* uk */, - CE5A5C9A15A2837200C4E461 /* pt_BR */, ); name = ErrorReportWindow.xib; - sourceTree = ""; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; }; CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */ = { isa = PBXVariantGroup; @@ -890,20 +841,10 @@ CE79638412536C94008D405B /* FairwareReminder.xib */ = { isa = PBXVariantGroup; children = ( - CE79638512536C94008D405B /* en */, - CE05341312E5DC260029EF25 /* fr */, - CE3181A513D85DB700B6D649 /* de */, - CE0564AA14169D6C00D3D907 /* zh_CN */, - CE112F61145EF28D009C9E3E /* cs */, - CE7A6987146442340007D927 /* it */, - CE00BBD214910CA3006A717C /* hy */, - CED638D714B38CC800B88D00 /* ru */, - CEECCD0814C636C900A2F3A0 /* uk */, - CE5A5C9B15A2837200C4E461 /* pt_BR */, ); name = FairwareReminder.xib; - path = ../../cocoalib/xib; - sourceTree = SOURCE_ROOT; + path = /Users/hsoft/src/dupeguru/cocoalib/xib; + sourceTree = ""; }; CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */ = { isa = PBXVariantGroup; @@ -1024,6 +965,23 @@ name = Localizable.strings; sourceTree = SOURCE_ROOT; }; + CE8C25CB15B9FCC100D44175 /* cocoalib.strings */ = { + isa = PBXVariantGroup; + children = ( + CE8C25CC15B9FCC100D44175 /* en */, + CE8C25CF15B9FCF300D44175 /* cs */, + CE8C25D015B9FCF300D44175 /* de */, + CE8C25D115B9FCF300D44175 /* fr */, + CE8C25D215B9FCF300D44175 /* hy */, + CE8C25D315B9FCF300D44175 /* it */, + CE8C25D415B9FCF300D44175 /* pt_BR */, + CE8C25D515B9FCF300D44175 /* ru */, + CE8C25D615B9FCF300D44175 /* uk */, + CE8C25D715B9FCF300D44175 /* zh_CN */, + ); + name = cocoalib.strings; + sourceTree = ""; + }; CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */ = { isa = PBXVariantGroup; children = ( @@ -1079,11 +1037,12 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; GCC_C_LANGUAGE_STANDARD = c99; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.6; + SDKROOT = macosx10.7; }; name = release; }; @@ -1091,11 +1050,12 @@ isa = XCBuildConfiguration; buildSettings = { ARCHS = "$(NATIVE_ARCH_ACTUAL)"; + FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; GCC_C_LANGUAGE_STANDARD = c99; HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.6; + SDKROOT = macosx10.7; }; name = dev; }; From a68e4310ee32597c8a5b5068eb9f427519eda18a Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 21 Jul 2012 10:39:01 -0400 Subject: [PATCH 02/33] xibless-ified base DetailsPanel. Note that for now, PE's detail panel is broken. --HG-- branch : xibless --- build.py | 3 + cocoa/base/DetailsPanel.h | 7 +- cocoa/base/DetailsPanel.m | 8 +- cocoa/base/en.lproj/DetailsPanel.strings | 12 - cocoa/base/en.lproj/DetailsPanel.xib | 519 -------------------- cocoa/base/en.lproj/Localizable.strings | 7 +- cocoa/base/ui/details_panel.py | 34 ++ cocoa/me/dupeguru.xcodeproj/project.pbxproj | 36 +- cocoa/se/dupeguru.xcodeproj/project.pbxproj | 36 +- 9 files changed, 66 insertions(+), 596 deletions(-) delete mode 100644 cocoa/base/en.lproj/DetailsPanel.strings delete mode 100644 cocoa/base/en.lproj/DetailsPanel.xib create mode 100644 cocoa/base/ui/details_panel.py diff --git a/build.py b/build.py index cae9e84c..b612f340 100644 --- a/build.py +++ b/build.py @@ -46,12 +46,15 @@ def build_xibless(): import xibless if not op.exists('cocoalib/autogen'): os.mkdir('cocoalib/autogen') + if not op.exists('cocoa/autogen'): + os.mkdir('cocoa/autogen') xibless.generate('cocoalib/ui/progress.py', 'cocoalib/autogen/ProgressController_UI') xibless.generate('cocoalib/ui/about.py', 'cocoalib/autogen/HSAboutBox_UI', localizationTable='cocoalib') xibless.generate('cocoalib/ui/fairware_reminder.py', 'cocoalib/autogen/HSFairwareReminder_UI', localizationTable='cocoalib') xibless.generate('cocoalib/ui/demo_reminder.py', 'cocoalib/autogen/HSDemoReminder_UI', localizationTable='cocoalib') xibless.generate('cocoalib/ui/enter_code.py', 'cocoalib/autogen/HSEnterCode_UI', localizationTable='cocoalib') xibless.generate('cocoalib/ui/error_report.py', 'cocoalib/autogen/HSErrorReportWindow_UI', localizationTable='cocoalib') + xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') def build_cocoa(edition, dev): build_xibless() diff --git a/cocoa/base/DetailsPanel.h b/cocoa/base/DetailsPanel.h index c56328fa..05a7f3f4 100644 --- a/cocoa/base/DetailsPanel.h +++ b/cocoa/base/DetailsPanel.h @@ -10,12 +10,15 @@ http://www.hardcoded.net/licenses/bsd_license #import #import "PyDetailsPanel.h" -@interface DetailsPanel : NSWindowController +@interface DetailsPanel : NSWindowController { - IBOutlet NSTableView *detailsTable; + NSTableView *detailsTable; PyDetailsPanel *model; } + +@property (readwrite, retain) NSTableView *detailsTable; + - (id)initWithPyRef:(PyObject *)aPyRef; - (PyDetailsPanel *)model; diff --git a/cocoa/base/DetailsPanel.m b/cocoa/base/DetailsPanel.m index 238fcd34..df2ee2c0 100644 --- a/cocoa/base/DetailsPanel.m +++ b/cocoa/base/DetailsPanel.m @@ -7,13 +7,17 @@ http://www.hardcoded.net/licenses/bsd_license */ #import "DetailsPanel.h" +#import "DetailsPanel_UI.h" #import "HSPyUtil.h" @implementation DetailsPanel + +@synthesize detailsTable; + - (id)initWithPyRef:(PyObject *)aPyRef { - self = [super initWithWindowNibName:@"DetailsPanel"]; - [self window]; //So the detailsTable is initialized. + self = [super initWithWindow:nil]; + [self setWindow:createDetailsPanel_UI(self)]; model = [[PyDetailsPanel alloc] initWithModel:aPyRef]; [model bindCallback:createCallback(@"DetailsPanelView", self)]; return self; diff --git a/cocoa/base/en.lproj/DetailsPanel.strings b/cocoa/base/en.lproj/DetailsPanel.strings deleted file mode 100644 index d8e7e715..00000000 --- a/cocoa/base/en.lproj/DetailsPanel.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "NSPanel"; title = "Details of Selected File"; ObjectID = "5"; */ -"5.title" = "Details of Selected File"; - -/* Class = "NSTableColumn"; headerCell.title = "Selected"; ObjectID = "9"; */ -"9.headerCell.title" = "Selected"; - -/* Class = "NSTableColumn"; headerCell.title = "Reference"; ObjectID = "10"; */ -"10.headerCell.title" = "Reference"; - -/* Class = "NSTableColumn"; headerCell.title = "Attribute"; ObjectID = "11"; */ -"11.headerCell.title" = "Attribute"; diff --git a/cocoa/base/en.lproj/DetailsPanel.xib b/cocoa/base/en.lproj/DetailsPanel.xib deleted file mode 100644 index e207278c..00000000 --- a/cocoa/base/en.lproj/DetailsPanel.xib +++ /dev/null @@ -1,519 +0,0 @@ - - - - 1060 - 11B26 - 1617 - 1138 - 566.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1617 - - - NSView - NSCustomObject - NSScrollView - NSWindowTemplate - NSTextFieldCell - NSTableHeaderView - NSTableColumn - NSScroller - NSTableView - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - DetailsPanel - - - FirstResponder - - - NSApplication - - - 155 - 2 - {{33, 261}, {451, 146}} - -260571136 - Details of Selected File - - NSPanel - - - View - - - {451, 146} - - - 256 - - - - 274 - - - - 2304 - - - - 256 - {449, 128} - - - 2 - YES - - - 256 - {449, 17} - - - - - - - -2147483392 - {{-26, 0}, {16, 17}} - - - - - - 0 - 70 - 40 - 1000 - - 75628096 - 2048 - Attribute - - LucidaGrande - 11 - 3100 - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - 3 - MAA - - - - - 337772096 - 2048 - - - - 6 - System - controlBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - - - 2 - YES - - - - 1 - 198 - 40 - 1000 - - 75628096 - 2048 - Selected - - - - - - 337772096 - 2048 - - - - - - 3 - YES - - - - 2 - 172 - 56.4755859375 - 1000 - - 75628096 - 2048 - Reference - - - 6 - System - headerColor - - 3 - MQA - - - - - - 337772096 - 2048 - - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 14 - 1111523328 - - - 1 - 15 - 0 - YES - 0 - 1 - - - {{1, 17}, {449, 128}} - - - - - - 4 - - - - -2147483392 - {{-30, 17}, {15, 129}} - - - - _doScroller: - 0.89375001192092896 - - - - -2147483392 - {{-100, -100}, {394, 15}} - - - 1 - - _doScroller: - 0.96332520246505737 - - - - 2304 - - - - {{1, 0}, {449, 17}} - - - - - - 4 - - - - {451, 146} - - - - 133650 - - - - - - QSAAAEEgAABBgAAAQYAAAA - - - {451, 146} - - - - {{0, 0}, {1920, 1058}} - {451, 162} - {10000000000000, 10000000000000} - DetailsPanel - YES - - - - - - - window - - - - 12 - - - - dataSource - - - - 21 - - - - detailsTable - - - - 22 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - 5 - - - - - - details - - - 6 - - - - - - - - 7 - - - - - - - - - - - 8 - - - - - - - - - - 9 - - - - - - - - 10 - - - - - - - - 11 - - - - - - - - 15 - - - - - 16 - - - - - 17 - - - - - 18 - - - - - 19 - - - - - 20 - - - - - -3 - - - Application - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{109, 671}, {451, 146}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 22 - - - - - DetailsPanel - HSWindowController - - detailsTable - NSTableView - - - detailsTable - - detailsTable - NSTableView - - - - IBProjectSource - ./Classes/DetailsPanel.h - - - - HSWindowController - NSWindowController - - IBProjectSource - ./Classes/HSWindowController.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index a497a4dd..e4f5db60 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -25,4 +25,9 @@ "Yes" = "Yes"; "No" = "No"; -"OK" = "OK"; \ No newline at end of file +"OK" = "OK"; + +"Details of Selected File" = "Details of Selected File"; +"Selected" = "Selected"; +"Reference" = "Reference"; +"Attribute" = "Attribute"; diff --git a/cocoa/base/ui/details_panel.py b/cocoa/base/ui/details_panel.py new file mode 100644 index 00000000..1ca57def --- /dev/null +++ b/cocoa/base/ui/details_panel.py @@ -0,0 +1,34 @@ +ownerclass = 'DetailsPanel' +ownerimport = 'DetailsPanel.h' + +result = Panel(451, 146, "Details of Selected File") +table = TableView(result) + +owner.detailsTable = table + +result.style = PanelStyle.Utility +result.xProportion = 0.2 +result.yProportion = 0.4 +result.canMinimize = False +result.autosaveName = 'DetailsPanel' +result.minSize = Size(result.width, result.height) + +table.dataSource = owner +table.allowsColumnReordering = False +table.allowsColumnSelection = False +table.allowsMultipleSelection = False +table.font = Font(FontFamily.System, FontSize.SmallSystem) +table.rowHeight = 14 +table.editable = False +col = table.addColumn('0', "Attribute", 70) +col.autoResizable = True +col = table.addColumn('1', "Selected", 198) +col.autoResizable = True +col = table.addColumn('2', "Reference", 172) +col.autoResizable = True + +table.x = 0 +table.y = 0 +table.width = result.width +table.height = result.height +table.setAnchor(Pack.UpperLeft, growX=True, growY=True) diff --git a/cocoa/me/dupeguru.xcodeproj/project.pbxproj b/cocoa/me/dupeguru.xcodeproj/project.pbxproj index 5b3317ae..80b63a0c 100644 --- a/cocoa/me/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/me/dupeguru.xcodeproj/project.pbxproj @@ -27,7 +27,6 @@ CE003CCB11242D00004B0AA7 /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CC311242D00004B0AA7 /* NSIndexPathAdditions.m */; }; CE003CCC11242D00004B0AA7 /* NSTableViewAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CC511242D00004B0AA7 /* NSTableViewAdditions.m */; }; CE003CD011242D2C004B0AA7 /* DirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CCE11242D2C004B0AA7 /* DirectoryOutline.m */; }; - CE05331712E5D3ED0029EF25 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330D12E5D3ED0029EF25 /* DetailsPanel.xib */; }; CE05331812E5D3ED0029EF25 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */; }; CE05331912E5D3ED0029EF25 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331112E5D3ED0029EF25 /* MainMenu.xib */; }; CE05331A12E5D3ED0029EF25 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */; }; @@ -105,6 +104,7 @@ CEF3185913D8660000B8CDCA /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185513D8660000B8CDCA /* about.xib */; }; CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */; }; CEF6BCAA1575769C00DACF6F /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF6BCA91575769C00DACF6F /* HSPyUtil.m */; }; + CEF8AB8A15BAECBA00E57AD6 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF8AB8915BAECBA00E57AD6 /* DetailsPanel_UI.m */; }; CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; }; /* End PBXBuildFile section */ @@ -143,12 +143,10 @@ 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; }; - 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; }; CE05331412E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CE05331612E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE05331C12E5D4010029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; }; CE05331D12E5D4010029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE05331E12E5D4010029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE05331F12E5D4010029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; @@ -180,7 +178,6 @@ CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; }; CE20A79715A2845A00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; CE20A79915A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; - CE20A79A15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DetailsPanel.xib; sourceTree = ""; }; CE20A79B15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE20A79C15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE20A79D15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; @@ -194,7 +191,6 @@ CE2E87FB142BC92C00519A68 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = ""; }; CE2E87FC142BC92C00519A68 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = ""; }; CE335AF514B393DC0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; - CE335AF714B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DetailsPanel.xib; sourceTree = ""; }; CE335AF814B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE335AFA14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; CE335AFB14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -202,7 +198,6 @@ CE335AFD14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; CE335B0514B393FB0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CE35FCF314C637C8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; - CE35FCF514C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DetailsPanel.xib; sourceTree = ""; }; CE35FCF614C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE35FCF814C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; CE35FCF914C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -239,7 +234,6 @@ CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; }; CE74254414603143002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; - CE74255114603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DetailsPanel.xib; sourceTree = ""; }; CE74255214603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE74255414603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; CE74255514603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -259,7 +253,6 @@ CE78EED115B9FF07005CB26E /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../../cocoalib/uk.lproj/cocoalib.strings; sourceTree = ""; }; CE78EED215B9FF07005CB26E /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../../cocoalib/zh_CN.lproj/cocoalib.strings; sourceTree = ""; }; 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 = ""; }; CE7A6999146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE7A699B146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; CE7A699C146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -340,7 +333,6 @@ CEA39FAF15767A3A00F294DE /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = ""; }; 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; }; - CEC3D37C14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DetailsPanel.xib; sourceTree = ""; }; CEC3D37D14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = ""; }; CEC3D37F14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; CEC3D38014911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -349,7 +341,6 @@ CEC3D38B14911263006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CEC3D38D14911274006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CEC8F3111416A0F0004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; - CEC8F3141416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DetailsPanel.xib; sourceTree = ""; }; CEC8F3151416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; CEC8F3171416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; CEC8F3181416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ProblemDialog.xib; sourceTree = ""; }; @@ -361,7 +352,6 @@ 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 = ""; }; - CEF5770713CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; }; CEF5770813CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CEF5770A13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CEF5770B13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; @@ -370,6 +360,8 @@ CEF6BCA71575769C00DACF6F /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = ""; }; CEF6BCA81575769C00DACF6F /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = ""; }; CEF6BCA91575769C00DACF6F /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = ""; }; + CEF8AB8815BAECBA00E57AD6 /* DetailsPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailsPanel_UI.h; sourceTree = ""; }; + CEF8AB8915BAECBA00E57AD6 /* DetailsPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel_UI.m; sourceTree = ""; }; CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ @@ -510,7 +502,6 @@ CE05330C12E5D3D70029EF25 /* xib */ = { isa = PBXGroup; children = ( - CE05330D12E5D3ED0029EF25 /* DetailsPanel.xib */, CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */, CE05331112E5D3ED0029EF25 /* MainMenu.xib */, CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */, @@ -611,6 +602,8 @@ CE9705C314C46E7D007A28F6 /* autogen */ = { isa = PBXGroup; children = ( + CEF8AB8815BAECBA00E57AD6 /* DetailsPanel_UI.h */, + CEF8AB8915BAECBA00E57AD6 /* DetailsPanel_UI.m */, CE9705C414C46E7D007A28F6 /* ObjP.h */, CE9705C514C46E7D007A28F6 /* ObjP.m */, CE9705C614C46E7D007A28F6 /* PyColumns.h */, @@ -730,7 +723,6 @@ CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, CE6E0E9F1054EB97008D9390 /* dsa_pub.pem in Resources */, CE74A12712537F2E008A8DF0 /* FairwareReminder.xib in Resources */, - CE05331712E5D3ED0029EF25 /* DetailsPanel.xib in Resources */, CE05331812E5D3ED0029EF25 /* DirectoryPanel.xib in Resources */, CE05331912E5D3ED0029EF25 /* MainMenu.xib in Resources */, CE05331A12E5D3ED0029EF25 /* ProblemDialog.xib in Resources */, @@ -816,29 +808,13 @@ CE85B9B615B9F9A1003C7302 /* HSErrorReportWindow_UI.m in Sources */, CE85B9B715B9F9A1003C7302 /* HSFairwareReminder_UI.m in Sources */, CE85B9B815B9F9A1003C7302 /* ProgressController_UI.m in Sources */, + CEF8AB8A15BAECBA00E57AD6 /* DetailsPanel_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXVariantGroup section */ - CE05330D12E5D3ED0029EF25 /* DetailsPanel.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05330E12E5D3ED0029EF25 /* en */, - CE05331C12E5D4010029EF25 /* fr */, - CEF5770713CDFB250083CB30 /* de */, - CEC8F3141416A0FC004D28F3 /* zh_CN */, - CE74255114603152002F8E3E /* cs */, - CE7A6998146443090007D927 /* it */, - CEC3D37C14911253006B1A91 /* hy */, - CE335AF714B393EE0000AF1A /* ru */, - CE35FCF514C637DD004E4864 /* uk */, - CE20A79A15A2847500FAC2BA /* pt_BR */, - ); - name = DetailsPanel.xib; - sourceTree = SOURCE_ROOT; - }; CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */ = { isa = PBXVariantGroup; children = ( diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 0a1e9438..cc1d7809 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -21,6 +21,7 @@ CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; }; CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; }; CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; }; + CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */; }; CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */; }; CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */; }; CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */; }; @@ -45,7 +46,6 @@ CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDF6111EE561006618EA /* NSEventAdditions.m */; }; CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; }; CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; }; - CE81134C12E5CE4D00A36C80 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */; }; CE81134D12E5CE4D00A36C80 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */; }; CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; }; CE81134F12E5CE4D00A36C80 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */; }; @@ -116,7 +116,6 @@ 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; }; 8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; - CE00BBBD14910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DetailsPanel.xib; sourceTree = ""; }; CE00BBBE14910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; CE00BBC114910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -125,7 +124,6 @@ CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; - CE0564B314169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DetailsPanel.xib; sourceTree = ""; }; CE0564B414169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE0564B614169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; CE0564B714169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ProblemDialog.xib; sourceTree = ""; }; @@ -157,6 +155,8 @@ 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; }; + CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailsPanel_UI.h; sourceTree = ""; }; + CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel_UI.m; sourceTree = ""; }; CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = ""; }; CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = ""; }; CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = ""; }; @@ -179,7 +179,6 @@ CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; CE5A5CA015A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; - CE5A5CA115A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DetailsPanel.xib; sourceTree = ""; }; CE5A5CA215A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE5A5CA315A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; @@ -207,19 +206,16 @@ CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; }; CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; - CE7A6977146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DetailsPanel.xib; sourceTree = ""; }; CE7A6978146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; CE7A697B146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE7A697C146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = ""; }; CE7A697D146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; - CE81134312E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; }; CE81134512E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE81134912E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CE81134B12E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE81135112E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; }; CE81135212E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE81135312E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE81135412E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; @@ -263,13 +259,11 @@ CEC3F8FB157668A300B26F0C /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = ""; }; CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; - CECFFF1C13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DetailsPanel.xib; sourceTree = SOURCE_ROOT; }; CECFFF1D13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CECFFF2013CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; - CED638DC14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DetailsPanel.xib; sourceTree = ""; }; CED638DD14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = ""; }; CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; CED638E014B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -278,7 +272,6 @@ CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; - CED64CF8145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DetailsPanel.xib; sourceTree = ""; }; CED64CF9145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = ""; }; CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; CED64CFC145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -302,7 +295,6 @@ CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; - CEECCD0F14C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DetailsPanel.xib; sourceTree = ""; }; CEECCD1014C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; CEECCD1314C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -457,6 +449,8 @@ CE1D091314BE0C6400CA6B8C /* autogen */ = { isa = PBXGroup; children = ( + CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */, + CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */, CE9FC22B14C080CF005C31FD /* PyGUIObject.h */, CE9FC22C14C080CF005C31FD /* PyGUIObject.m */, CE275C5814BF71DF00265960 /* PyColumns.h */, @@ -556,7 +550,6 @@ CEEFC0CA10943849001F3A39 /* xib */ = { isa = PBXGroup; children = ( - CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */, CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */, CE81134612E5CE4D00A36C80 /* MainMenu.xib */, CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */, @@ -714,7 +707,6 @@ CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */, CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, - CE81134C12E5CE4D00A36C80 /* DetailsPanel.xib in Resources */, CE81134D12E5CE4D00A36C80 /* DirectoryPanel.xib in Resources */, CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */, CE81134F12E5CE4D00A36C80 /* ProblemDialog.xib in Resources */, @@ -799,6 +791,7 @@ CEE49F4315B9F4E1002BD78B /* HSErrorReportWindow_UI.m in Sources */, CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */, CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */, + CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -846,23 +839,6 @@ path = /Users/hsoft/src/dupeguru/cocoalib/xib; sourceTree = ""; }; - CE81134212E5CE4D00A36C80 /* DetailsPanel.xib */ = { - isa = PBXVariantGroup; - children = ( - CE81134312E5CE4D00A36C80 /* en */, - CE81135112E5CE6100A36C80 /* fr */, - CECFFF1C13CDF8D0003A4518 /* de */, - CE0564B314169DB100D3D907 /* zh_CN */, - CED64CF8145EF07700572B00 /* cs */, - CE7A6977146442160007D927 /* it */, - CE00BBBD14910C5E006A717C /* hy */, - CED638DC14B38CEC00B88D00 /* ru */, - CEECCD0F14C6370000A2F3A0 /* uk */, - CE5A5CA115A283C200C4E461 /* pt_BR */, - ); - name = DetailsPanel.xib; - sourceTree = SOURCE_ROOT; - }; CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */ = { isa = PBXVariantGroup; children = ( From 729db491831782bda6c55d5ff4513a3ec2f393ea Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 21 Jul 2012 16:13:16 -0400 Subject: [PATCH 03/33] xibless-ified PE\s details panel. --HG-- branch : xibless rename : cocoa/pe/DetailsPanel.h => cocoa/pe/DetailsPanelPE.h rename : cocoa/pe/DetailsPanel.m => cocoa/pe/DetailsPanelPE.m --- build.py | 11 +- cocoa/base/ui/details_panel.py | 8 +- cocoa/pe/AppDelegate.m | 2 +- cocoa/pe/{DetailsPanel.h => DetailsPanelPE.h} | 15 +- cocoa/pe/{DetailsPanel.m => DetailsPanelPE.m} | 8 +- cocoa/pe/dupeguru.xcodeproj/project.pbxproj | 48 +- cocoa/pe/en.lproj/DetailsPanel.strings | 18 - cocoa/pe/en.lproj/DetailsPanel.xib | 846 ------------------ cocoa/pe/ui/details_panel.py | 74 ++ 9 files changed, 115 insertions(+), 915 deletions(-) rename cocoa/pe/{DetailsPanel.h => DetailsPanelPE.h} (54%) rename cocoa/pe/{DetailsPanel.m => DetailsPanelPE.m} (95%) delete mode 100644 cocoa/pe/en.lproj/DetailsPanel.strings delete mode 100644 cocoa/pe/en.lproj/DetailsPanel.xib create mode 100644 cocoa/pe/ui/details_panel.py diff --git a/build.py b/build.py index b612f340..ac158332 100644 --- a/build.py +++ b/build.py @@ -42,7 +42,7 @@ def parse_args(): (options, args) = parser.parse_args() return options -def build_xibless(): +def build_xibless(edition): import xibless if not op.exists('cocoalib/autogen'): os.mkdir('cocoalib/autogen') @@ -54,10 +54,13 @@ def build_xibless(): xibless.generate('cocoalib/ui/demo_reminder.py', 'cocoalib/autogen/HSDemoReminder_UI', localizationTable='cocoalib') xibless.generate('cocoalib/ui/enter_code.py', 'cocoalib/autogen/HSEnterCode_UI', localizationTable='cocoalib') xibless.generate('cocoalib/ui/error_report.py', 'cocoalib/autogen/HSErrorReportWindow_UI', localizationTable='cocoalib') - xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') + if edition == 'pe': + xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') + else: + xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') def build_cocoa(edition, dev): - build_xibless() + build_xibless(edition) build_cocoa_proxy_module() build_cocoa_bridging_interfaces(edition) print("Building the cocoa layer") @@ -301,7 +304,7 @@ def main(): build_cocoa_proxy_module() build_cocoa_bridging_interfaces(edition) elif options.xibless: - build_xibless() + build_xibless(edition) else: build_normal(edition, ui, dev) diff --git a/cocoa/base/ui/details_panel.py b/cocoa/base/ui/details_panel.py index 1ca57def..956188f1 100644 --- a/cocoa/base/ui/details_panel.py +++ b/cocoa/base/ui/details_panel.py @@ -27,8 +27,8 @@ col.autoResizable = True col = table.addColumn('2', "Reference", 172) col.autoResizable = True -table.x = 0 -table.y = 0 -table.width = result.width -table.height = result.height +result.ignoreMargin = True +table.packToCorner(Pack.UpperLeft) +table.fill(Pack.Right) +table.fill(Pack.Below) table.setAnchor(Pack.UpperLeft, growX=True, growY=True) diff --git a/cocoa/pe/AppDelegate.m b/cocoa/pe/AppDelegate.m index a1364d46..f67cb9eb 100644 --- a/cocoa/pe/AppDelegate.m +++ b/cocoa/pe/AppDelegate.m @@ -11,7 +11,7 @@ http://www.hardcoded.net/licenses/bsd_license #import "Utils.h" #import "ValueTransformers.h" #import "Consts.h" -#import "DetailsPanel.h" +#import "DetailsPanelPE.h" #import "DirectoryPanel.h" #import "ResultWindow.h" diff --git a/cocoa/pe/DetailsPanel.h b/cocoa/pe/DetailsPanelPE.h similarity index 54% rename from cocoa/pe/DetailsPanel.h rename to cocoa/pe/DetailsPanelPE.h index 6de1d837..3a68f60b 100644 --- a/cocoa/pe/DetailsPanel.h +++ b/cocoa/pe/DetailsPanelPE.h @@ -7,15 +7,15 @@ http://www.hardcoded.net/licenses/bsd_license */ #import -#import "../base/DetailsPanel.h" +#import "DetailsPanel.h" #import "PyDupeGuru.h" @interface DetailsPanelPE : DetailsPanel { - IBOutlet NSImageView *dupeImage; - IBOutlet NSProgressIndicator *dupeProgressIndicator; - IBOutlet NSImageView *refImage; - IBOutlet NSProgressIndicator *refProgressIndicator; + NSImageView *dupeImage; + NSProgressIndicator *dupeProgressIndicator; + NSImageView *refImage; + NSProgressIndicator *refProgressIndicator; PyDupeGuru *pyApp; BOOL _needsRefresh; @@ -23,5 +23,10 @@ http://www.hardcoded.net/licenses/bsd_license NSString *_refPath; } +@property (readwrite, retain) NSImageView *dupeImage; +@property (readwrite, retain) NSProgressIndicator *dupeProgressIndicator; +@property (readwrite, retain) NSImageView *refImage; +@property (readwrite, retain) NSProgressIndicator *refProgressIndicator; + - (id)initWithApp:(PyDupeGuru *)aApp; @end \ No newline at end of file diff --git a/cocoa/pe/DetailsPanel.m b/cocoa/pe/DetailsPanelPE.m similarity index 95% rename from cocoa/pe/DetailsPanel.m rename to cocoa/pe/DetailsPanelPE.m index a93a1bc3..e0ed66c1 100644 --- a/cocoa/pe/DetailsPanel.m +++ b/cocoa/pe/DetailsPanelPE.m @@ -10,10 +10,16 @@ http://www.hardcoded.net/licenses/bsd_license #import "NSNotificationAdditions.h" #import "NSImageAdditions.h" #import "PyDupeGuru.h" -#import "DetailsPanel.h" +#import "DetailsPanelPE.h" #import "Consts.h" @implementation DetailsPanelPE + +@synthesize dupeImage; +@synthesize dupeProgressIndicator; +@synthesize refImage; +@synthesize refProgressIndicator; + - (id)initWithApp:(PyDupeGuru *)aApp { self = [super initWithPyRef:[aApp detailsPanel]]; diff --git a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj index 3b22362f..94eeec63 100644 --- a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj @@ -12,7 +12,6 @@ CE05339C12E5DA350029EF25 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339512E5DA350029EF25 /* MainMenu.xib */; }; CE05339D12E5DA350029EF25 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; }; CE05339E12E5DA350029EF25 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; }; - CE0533A712E5DA4D0029EF25 /* DetailsPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */; }; CE0533A812E5DA4D0029EF25 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; }; CE0533AB12E5DA6A0029EF25 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A912E5DA6A0029EF25 /* Localizable.strings */; }; CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; }; @@ -75,6 +74,7 @@ CE9292B815B9FA5200C6D7F6 /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292B115B9FA5200C6D7F6 /* HSFairwareReminder_UI.m */; }; CE9292B915B9FA5200C6D7F6 /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292B315B9FA5200C6D7F6 /* ProgressController_UI.m */; }; CE95865F112C516400F95FD2 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE95865D112C516400F95FD2 /* StatsLabel.m */; }; + CE9ACBA015BB3D8D00E94337 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9ACB9F15BB3D8D00E94337 /* DetailsPanel_UI.m */; }; CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7441122C96C008CD2BC /* HSGUIController.m */; }; CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7461122C96C008CD2BC /* HSOutline.m */; }; CE9EA7591122C96C008CD2BC /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */; }; @@ -85,7 +85,7 @@ 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 */; }; - CECA899D09DB132E00A3D774 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CECA899B09DB132E00A3D774 /* DetailsPanel.m */; }; + CECA899D09DB132E00A3D774 /* DetailsPanelPE.m in Sources */ = {isa = PBXBuildFile; fileRef = CECA899B09DB132E00A3D774 /* DetailsPanelPE.m */; }; CECB2AC513D867AD0081E295 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC113D867AD0081E295 /* about.xib */; }; CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */; }; CED3BC1515767AFB0028F3C9 /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */; }; @@ -125,7 +125,6 @@ CE03DD6914FBD31300E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE03DD6A14FBD31300E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = ""; }; CE03DD6B14FBD31300E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; - CE03DD7214FBD33600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/DetailsPanel.xib; sourceTree = ""; }; CE03DD7314FBD33600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CE03DD7614FBD34600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CE05339412E5DA350029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; @@ -136,14 +135,11 @@ CE0533A012E5DA420029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE0533A112E5DA420029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CE0533A212E5DA420029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE0533A412E5DA4D0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/DetailsPanel.xib; sourceTree = ""; }; CE0533A612E5DA4D0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = ""; }; CE0533AA12E5DA6A0029EF25 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; CE0533AC12E5DA790029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - CE0533AD12E5DAAD0029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/DetailsPanel.xib; sourceTree = ""; }; CE0533AE12E5DAAD0029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = SOURCE_ROOT; }; - CE09AF4A15A2851100BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/DetailsPanel.xib; sourceTree = ""; }; CE09AF4B15A2851100BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; CE09AF4E15A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; CE09AF4F15A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -182,7 +178,6 @@ CE6044EB0FE6796200B71262 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; CE63D9D21461EDC000A8CADD /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = ""; }; CE653CF314169F2C0058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; - CE653CF61416A0140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/DetailsPanel.xib; sourceTree = ""; }; CE653CF71416A0140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; CE653CFA1416A0260058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE653CFC1416A0260058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; @@ -245,7 +240,6 @@ CE78759F13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE7875A013CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CE7875A113CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE7875A513CDFAB900F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/DetailsPanel.xib; sourceTree = ""; }; CE7875A613CDFAB900F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; CE7A69B3146443A00007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; CE7A69B9146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -253,7 +247,6 @@ CE7A69BC146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE7A69BD146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = ""; }; CE7A69BE146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; - CE7A69C5146443B90007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/DetailsPanel.xib; sourceTree = ""; }; CE7A69C6146443B90007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; 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 = ""; }; @@ -290,7 +283,6 @@ CE905DED14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE905DEE14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ProblemDialog.xib; sourceTree = ""; }; CE905DEF14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = ""; }; - CE905DF614C638B000C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/DetailsPanel.xib; sourceTree = ""; }; CE905DF714C638B000C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; CE9292A815B9FA5200C6D7F6 /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSAboutBox_UI.h; sourceTree = ""; }; CE9292A915B9FA5200C6D7F6 /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSAboutBox_UI.m; sourceTree = ""; }; @@ -306,6 +298,8 @@ CE9292B315B9FA5200C6D7F6 /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProgressController_UI.m; sourceTree = ""; }; 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; }; + CE9ACB9E15BB3D8D00E94337 /* DetailsPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailsPanel_UI.h; sourceTree = ""; }; + CE9ACB9F15BB3D8D00E94337 /* DetailsPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel_UI.m; sourceTree = ""; }; 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 = ""; }; @@ -325,8 +319,8 @@ CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = ""; }; CEC9DB4A12CCAA7D003102F0 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; }; CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; - CECA899A09DB132E00A3D774 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DetailsPanel.h; sourceTree = ""; }; - CECA899B09DB132E00A3D774 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel.m; sourceTree = ""; }; + CECA899A09DB132E00A3D774 /* DetailsPanelPE.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DetailsPanelPE.h; sourceTree = ""; }; + CECA899B09DB132E00A3D774 /* DetailsPanelPE.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DetailsPanelPE.m; sourceTree = ""; }; CED3BC1315767AFB0028F3C9 /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; CED3BC1715767B0E0028F3C9 /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = ""; }; @@ -346,7 +340,6 @@ CEE6D5491491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEE6D54A1491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ProblemDialog.xib; sourceTree = ""; }; CEE6D54B1491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; - CEE6D553149113190087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/DetailsPanel.xib; sourceTree = ""; }; CEE6D554149113190087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CEE6D557149113250087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CEE6D560149113570087CDFC /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = ""; }; @@ -361,7 +354,6 @@ CEEE15871460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEEE15881460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ProblemDialog.xib; sourceTree = ""; }; CEEE15891460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = ""; }; - CEEE15901460329000783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/DetailsPanel.xib; sourceTree = ""; }; 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; }; @@ -391,8 +383,8 @@ CE381C9509914ACE003581CE /* AppDelegate.h */, CE381C9409914ACE003581CE /* AppDelegate.m */, CE848A1809DD85810004CB44 /* Consts.h */, - CECA899A09DB132E00A3D774 /* DetailsPanel.h */, - CECA899B09DB132E00A3D774 /* DetailsPanel.m */, + CECA899A09DB132E00A3D774 /* DetailsPanelPE.h */, + CECA899B09DB132E00A3D774 /* DetailsPanelPE.m */, CE68EE6509ABC48000971085 /* DirectoryPanel.h */, CE68EE6609ABC48000971085 /* DirectoryPanel.m */, CE381C9B09914ADF003581CE /* ResultWindow.h */, @@ -478,7 +470,6 @@ CE05339712E5DA350029EF25 /* ProblemDialog.xib */, CE7857951511019400174D51 /* IgnoreListDialog.xib */, CE05339912E5DA350029EF25 /* ResultWindow.xib */, - CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */, CE0533A512E5DA4D0029EF25 /* Preferences.xib */, CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */, CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */, @@ -489,6 +480,8 @@ CE75017B14C477B100E2A349 /* autogen */ = { isa = PBXGroup; children = ( + CE9ACB9E15BB3D8D00E94337 /* DetailsPanel_UI.h */, + CE9ACB9F15BB3D8D00E94337 /* DetailsPanel_UI.m */, CE75017C14C477B100E2A349 /* ObjP.h */, CE75017D14C477B100E2A349 /* ObjP.m */, CE75017E14C477B100E2A349 /* PyColumns.h */, @@ -736,7 +729,6 @@ CE05339C12E5DA350029EF25 /* MainMenu.xib in Resources */, CE05339D12E5DA350029EF25 /* ProblemDialog.xib in Resources */, CE05339E12E5DA350029EF25 /* ResultWindow.xib in Resources */, - CE0533A712E5DA4D0029EF25 /* DetailsPanel.xib in Resources */, CE0533A812E5DA4D0029EF25 /* Preferences.xib in Resources */, CE0533AB12E5DA6A0029EF25 /* Localizable.strings in Resources */, CECB2AC513D867AD0081E295 /* about.xib in Resources */, @@ -761,7 +753,7 @@ CE381C9609914ACE003581CE /* AppDelegate.m in Sources */, CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */, CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */, - CECA899D09DB132E00A3D774 /* DetailsPanel.m in Sources */, + CECA899D09DB132E00A3D774 /* DetailsPanelPE.m in Sources */, CE80DB2E0FC192D60086DCA6 /* Dialogs.m in Sources */, CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */, CE80DB350FC192D60086DCA6 /* Utils.m in Sources */, @@ -821,6 +813,7 @@ CE9292B715B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m in Sources */, CE9292B815B9FA5200C6D7F6 /* HSFairwareReminder_UI.m in Sources */, CE9292B915B9FA5200C6D7F6 /* ProgressController_UI.m in Sources */, + CE9ACBA015BB3D8D00E94337 /* DetailsPanel_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -895,23 +888,6 @@ name = ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE0533A312E5DA4D0029EF25 /* DetailsPanel.xib */ = { - isa = PBXVariantGroup; - children = ( - CE0533A412E5DA4D0029EF25 /* en */, - CE0533AD12E5DAAD0029EF25 /* fr */, - CE7875A513CDFAB900F23771 /* de */, - CE653CF61416A0140058A022 /* zh_CN */, - CEEE15901460329000783E91 /* cs */, - CE7A69C5146443B90007D927 /* it */, - CEE6D553149113190087CDFC /* hy */, - CE905DF614C638B000C0ECEF /* uk */, - CE03DD7214FBD33600E998AC /* ru */, - CE09AF4A15A2851100BD431C /* pt_BR */, - ); - name = DetailsPanel.xib; - sourceTree = SOURCE_ROOT; - }; CE0533A512E5DA4D0029EF25 /* Preferences.xib */ = { isa = PBXVariantGroup; children = ( diff --git a/cocoa/pe/en.lproj/DetailsPanel.strings b/cocoa/pe/en.lproj/DetailsPanel.strings deleted file mode 100644 index 8baff404..00000000 --- a/cocoa/pe/en.lproj/DetailsPanel.strings +++ /dev/null @@ -1,18 +0,0 @@ - -/* Class = "NSPanel"; title = "Details of Selected File"; ObjectID = "5"; */ -"5.title" = "Details of Selected File"; - -/* Class = "NSTableColumn"; headerCell.title = "Selected"; ObjectID = "9"; */ -"9.headerCell.title" = "Selected"; - -/* Class = "NSTableColumn"; headerCell.title = "Reference"; ObjectID = "10"; */ -"10.headerCell.title" = "Reference"; - -/* Class = "NSTableColumn"; headerCell.title = "Attribute"; ObjectID = "11"; */ -"11.headerCell.title" = "Attribute"; - -/* Class = "NSTextFieldCell"; title = "Selected"; ObjectID = "33"; */ -"33.title" = "Selected"; - -/* Class = "NSTextFieldCell"; title = "Reference"; ObjectID = "35"; */ -"35.title" = "Reference"; diff --git a/cocoa/pe/en.lproj/DetailsPanel.xib b/cocoa/pe/en.lproj/DetailsPanel.xib deleted file mode 100644 index d5dc4e26..00000000 --- a/cocoa/pe/en.lproj/DetailsPanel.xib +++ /dev/null @@ -1,846 +0,0 @@ - - - - 1060 - 11B26 - 1617 - 1138 - 566.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1617 - - - NSScroller - NSSplitView - NSTableHeaderView - NSScrollView - NSImageView - NSTextFieldCell - NSProgressIndicator - NSTableView - NSImageCell - NSCustomObject - NSCustomView - NSView - NSWindowTemplate - NSTextField - NSTableColumn - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - DetailsPanelPE - - - FirstResponder - - - NSApplication - - - 155 - 2 - {{634, 317}, {593, 398}} - -260571136 - Details of Selected File - - NSPanel - - - View - - - {451, 161} - - - 256 - - - - 266 - - - - 2304 - - - - 256 - {591, 147} - - - 2 - YES - - - 256 - {591, 17} - - - - - - - -2147483392 - {{-26, 0}, {16, 17}} - - - - - - 0 - 74 - 40 - 1000 - - 75628096 - 2048 - Attribute - - LucidaGrande - 11 - 3100 - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - 3 - MAA - - - - - 337772096 - 2048 - - - - 6 - System - controlBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - - - 2 - YES - - - - 1 - 260 - 40 - 1000 - - 75628096 - 2048 - Selected - - - - - - 337772096 - 2048 - - - - - - 3 - YES - - - - 2 - 248 - 56.4755859375 - 1000 - - 75628096 - 2048 - Reference - - - 6 - System - headerColor - - 3 - MQA - - - - - - 337772096 - 2048 - - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 14 - 1111523328 - - - 1 - 15 - 0 - YES - 0 - 1 - - - {{1, 17}, {591, 147}} - - - - - - 4 - - - - -2147483392 - {{-30, 17}, {15, 147}} - - - - _doScroller: - 0.91874998807907104 - - - - -2147483392 - {{-100, -100}, {394, 15}} - - - 1 - - _doScroller: - 0.96332520246505737 - - - - 2304 - - - - {{1, 0}, {591, 17}} - - - - - - 4 - - - - {{0, 233}, {593, 165}} - - - - 133650 - - - - - - QSAAAEEgAABBgAAAQYAAAA - - - - 274 - - - - 256 - - - - 266 - {{-3, 201}, {294, 17}} - - - YES - - 67239424 - 138412032 - Selected - - LucidaGrande - 13 - 1044 - - - - 6 - System - controlColor - - - - - - - - 274 - - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - {288, 193} - - - YES - - 130560 - 33554432 - - NSImage - NSApplicationIcon - - 0 - 0 - 0 - NO - - YES - - - - 1289 - - {{255, 201}, {16, 16}} - - - 28938 - 100 - - - {291, 225} - - - NSView - - - - 256 - - - - 266 - {{-3, 203}, {295, 17}} - - - YES - - 67239424 - 138412032 - Reference - - - - - - - - - 274 - - Apple PDF pasteboard type - Apple PICT pasteboard type - Apple PNG pasteboard type - NSFilenamesPboardType - NeXT Encapsulated PostScript v1.2 pasteboard type - NeXT TIFF v4.0 pasteboard type - - {289, 195} - - - YES - - 130560 - 33554432 - - 0 - 0 - 0 - NO - - YES - - - - 1289 - - {{257, 203}, {16, 16}} - - - 28938 - 100 - - - {{300, 0}, {293, 225}} - - - NSView - - - {593, 225} - - - YES - - - {593, 398} - - - - {{0, 0}, {1440, 878}} - {451, 177} - {10000000000000, 10000000000000} - DetailsPanel - YES - - - - - - - window - - - - 12 - - - - detailsTable - - - - 13 - - - - refImage - - - - 25 - - - - dupeImage - - - - 26 - - - - dupeProgressIndicator - - - - 30 - - - - refProgressIndicator - - - - 31 - - - - dataSource - - - - 43 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - 5 - - - - - - details - - - 6 - - - - - - - - - 7 - - - - - - - - - - - 8 - - - - - - - - - - 9 - - - - - - - - 10 - - - - - - - - 11 - - - - - - - - 20 - - - - - - - - - 18 - - - - - - - - - - 14 - - - - - - - - 16 - - - - - - - - 27 - - - - - 19 - - - - - - - - - - 15 - - - - - - - - 17 - - - - - - - - 29 - - - - - 33 - - - - - 34 - - - - - 35 - - - - - 36 - - - - - 37 - - - - - 38 - - - - - 39 - - - - - 40 - - - - - 41 - - - - - 42 - - - - - -3 - - - Application - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{88, 453}, {593, 398}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 43 - - - - - DetailsPanel - HSWindowController - - detailsTable - NSTableView - - - detailsTable - - detailsTable - NSTableView - - - - IBProjectSource - ./Classes/DetailsPanel.h - - - - DetailsPanelPE - DetailsPanel - - NSImageView - NSProgressIndicator - NSImageView - NSProgressIndicator - - - - dupeImage - NSImageView - - - dupeProgressIndicator - NSProgressIndicator - - - refImage - NSImageView - - - refProgressIndicator - NSProgressIndicator - - - - IBProjectSource - ./Classes/DetailsPanelPE.h - - - - HSWindowController - NSWindowController - - IBProjectSource - ./Classes/HSWindowController.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - NSApplicationIcon - {128, 128} - - - diff --git a/cocoa/pe/ui/details_panel.py b/cocoa/pe/ui/details_panel.py new file mode 100644 index 00000000..0fbd2186 --- /dev/null +++ b/cocoa/pe/ui/details_panel.py @@ -0,0 +1,74 @@ +ownerclass = 'DetailsPanelPE' +ownerimport = 'DetailsPanelPE.h' + +result = Panel(593, 398, "Details of Selected File") +table = TableView(result) +split = SplitView(result, 2, vertical=True) +leftSplit, rightSplit = split.subviews +selectedLabel = Label(leftSplit, "Selected") +selectedImage = ImageView(leftSplit, 'NSApplicationIcon') +leftSpinner = ProgressIndicator(leftSplit) +referenceLabel = Label(rightSplit, "Reference") +referenceImage = ImageView(rightSplit, 'NSApplicationIcon') +rightSpinner = ProgressIndicator(rightSplit) + +owner.detailsTable = table +owner.dupeImage = selectedImage +owner.dupeProgressIndicator = leftSpinner +owner.refImage = referenceImage +owner.refProgressIndicator = rightSpinner +table.dataSource = owner + +result.style = PanelStyle.Utility +result.xProportion = 0.6 +result.yProportion = 0.6 +result.canMinimize = False +result.autosaveName = 'DetailsPanel' +result.minSize = Size(451, 240) + +table.allowsColumnReordering = False +table.allowsColumnSelection = False +table.allowsMultipleSelection = False +table.font = Font(FontFamily.System, FontSize.SmallSystem) +table.rowHeight = 14 +table.editable = False +col = table.addColumn('0', "Attribute", 70) +col.autoResizable = True +col = table.addColumn('1', "Selected", 198) +col.autoResizable = True +col = table.addColumn('2', "Reference", 172) +col.autoResizable = True +table.height = 165 + +sides = [ + (leftSplit, selectedLabel, selectedImage, leftSpinner), + (rightSplit, referenceLabel, referenceImage, rightSpinner), +] +for subSplit, label, image, spinner in sides: + label.alignment = TextAlignment.Center + spinner.style = const.NSProgressIndicatorSpinningStyle + spinner.controlSize = const.NSSmallControlSize + spinner.displayedWhenStopped = False + + subSplit.ignoreMargin = True + label.packToCorner(Pack.UpperLeft) + label.fill(Pack.Right) + label.setAnchor(Pack.UpperLeft, growX=True) + image.packRelativeTo(label, Pack.Below) + image.fill(Pack.Right) + image.fill(Pack.Below) + image.setAnchor(Pack.UpperLeft, growX=True, growY=True) + spinner.y = label.y + spinner.x = subSplit.width - 30 + spinner.setAnchor(Pack.UpperRight) + +result.ignoreMargin = True +table.packToCorner(Pack.UpperLeft) +table.fill(Pack.Right) +table.setAnchor(Pack.UpperLeft, growX=True) + +split.packRelativeTo(table, Pack.Below) +split.fill(Pack.Right) +split.fill(Pack.Below) +split.setAnchor(Pack.UpperLeft, growX=True, growY=True) + From fd706e752f1d79af26823543c8705490f9a7e935 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 22 Jul 2012 12:46:43 -0400 Subject: [PATCH 04/33] xibless-ified IgnoreListDialog. --HG-- branch : xibless --- build.py | 1 + cocoa/base/IgnoreListDialog.h | 10 +- cocoa/base/IgnoreListDialog.m | 24 +- cocoa/base/en.lproj/IgnoreListDialog.strings | 12 - cocoa/base/en.lproj/IgnoreListDialog.xib | 504 ------------------- cocoa/base/en.lproj/Localizable.strings | 7 + cocoa/base/ui/ignore_list_dialog.py | 30 ++ cocoa/se/dupeguru.xcodeproj/project.pbxproj | 36 +- 8 files changed, 58 insertions(+), 566 deletions(-) delete mode 100644 cocoa/base/en.lproj/IgnoreListDialog.strings delete mode 100644 cocoa/base/en.lproj/IgnoreListDialog.xib create mode 100644 cocoa/base/ui/ignore_list_dialog.py diff --git a/build.py b/build.py index ac158332..3091cd70 100644 --- a/build.py +++ b/build.py @@ -58,6 +58,7 @@ def build_xibless(edition): xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') else: xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable') def build_cocoa(edition, dev): build_xibless(edition) diff --git a/cocoa/base/IgnoreListDialog.h b/cocoa/base/IgnoreListDialog.h index 2fe8c92c..dc957c33 100644 --- a/cocoa/base/IgnoreListDialog.h +++ b/cocoa/base/IgnoreListDialog.h @@ -12,14 +12,14 @@ http://www.hardcoded.net/licenses/bsd_license @interface IgnoreListDialog : NSWindowController { - IBOutlet NSTableView *ignoreListTableView; - PyIgnoreListDialog *model; HSTable *ignoreListTable; + NSTableView *ignoreListTableView; } -- (id)initWithPyRef:(PyObject *)aPyRef; +@property (readwrite, retain) PyIgnoreListDialog *model; +@property (readwrite, retain) NSTableView *ignoreListTableView; + +- (id)initWithPyRef:(PyObject *)aPyRef; - (void)initializeColumns; -- (IBAction)removeSelected:(id)sender; -- (IBAction)clear:(id)sender; @end \ No newline at end of file diff --git a/cocoa/base/IgnoreListDialog.m b/cocoa/base/IgnoreListDialog.m index 742d9640..0ae89850 100644 --- a/cocoa/base/IgnoreListDialog.m +++ b/cocoa/base/IgnoreListDialog.m @@ -7,15 +7,20 @@ http://www.hardcoded.net/licenses/bsd_license */ #import "IgnoreListDialog.h" +#import "IgnoreListDialog_UI.h" #import "HSPyUtil.h" @implementation IgnoreListDialog + +@synthesize model; +@synthesize ignoreListTableView; + - (id)initWithPyRef:(PyObject *)aPyRef { - self = [super initWithWindowNibName:@"IgnoreListDialog"]; - [self window]; //So the detailsTable is initialized. - model = [[PyIgnoreListDialog alloc] initWithModel:aPyRef]; - [model bindCallback:createCallback(@"IgnoreListDialogView", self)]; + self = [super initWithWindow:nil]; + self.model = [[[PyIgnoreListDialog alloc] initWithModel:aPyRef] autorelease]; + [self.model bindCallback:createCallback(@"IgnoreListDialogView", self)]; + [self setWindow:createIgnoreListDialog_UI(self)]; ignoreListTable = [[HSTable alloc] initWithPyRef:[model ignoreListTable] tableView:ignoreListTableView]; [self initializeColumns]; return self; @@ -24,7 +29,6 @@ http://www.hardcoded.net/licenses/bsd_license - (void)dealloc { [ignoreListTable release]; - [model release]; [super dealloc]; } @@ -39,16 +43,6 @@ http://www.hardcoded.net/licenses/bsd_license [[ignoreListTable columns] setColumnsAsReadOnly]; } -- (IBAction)removeSelected:(id)sender -{ - [model removeSelected]; -} - -- (IBAction)clear:(id)sender -{ - [model clear]; -} - /* model --> view */ - (void)show { diff --git a/cocoa/base/en.lproj/IgnoreListDialog.strings b/cocoa/base/en.lproj/IgnoreListDialog.strings deleted file mode 100644 index e8d0806e..00000000 --- a/cocoa/base/en.lproj/IgnoreListDialog.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "NSWindow"; title = "Ignore List"; ObjectID = "1"; */ -"1.title" = "Ignore List"; - -/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */ -"19.title" = "Close"; - -/* Class = "NSButtonCell"; title = "Remove Selected"; ObjectID = "21"; */ -"21.title" = "Remove Selected"; - -/* Class = "NSButtonCell"; title = "Clear"; ObjectID = "28"; */ -"28.title" = "Clear"; diff --git a/cocoa/base/en.lproj/IgnoreListDialog.xib b/cocoa/base/en.lproj/IgnoreListDialog.xib deleted file mode 100644 index 88d8f839..00000000 --- a/cocoa/base/en.lproj/IgnoreListDialog.xib +++ /dev/null @@ -1,504 +0,0 @@ - - - - 1060 - 11D50 - 2177 - 1138.32 - 568.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2177 - - - NSView - NSTableView - NSScrollView - NSWindowTemplate - NSTableHeaderView - NSButtonCell - NSButton - NSScroller - NSCustomObject - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - IgnoreListDialog - - - FirstResponder - - - NSApplication - - - 11 - 2 - {{477, 306}, {574, 347}} - 1685585920 - Ignore List - NSWindow - - - - - 256 - - - - 274 - - - - 2304 - - - - 256 - {532, 211} - - - - YES - - - 256 - {532, 17} - - - - - - - - -2147483392 - {{224, 0}, {16, 17}} - - - - - - 3 - 2 - - 3 - MQA - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - 1512046592 - - - 4 - 15 - 0 - NO - 0 - 1 - - - {{1, 17}, {532, 249}} - - - - - - 6 - System - controlBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - - - _doScroller: - 0.99052132701421802 - - - - -2147483392 - {{1, 154}, {438, 15}} - - - - 1 - - _doScroller: - 1 - 0.98871331828442433 - - - - 2304 - - - - {{1, 0}, {532, 17}} - - - - - - 4 - - - - {{20, 60}, {534, 267}} - - - - 133682 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 289 - {{464, 12}, {96, 32}} - - - YES - - 67239424 - 134217728 - Close - - LucidaGrande - 13 - 1044 - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 292 - {{14, 12}, {154, 32}} - - - - YES - - 67239424 - 134217728 - Remove Selected - - - -2038284033 - 129 - - - 200 - 25 - - - - - 292 - {{162, 12}, {154, 32}} - - - - YES - - 67239424 - 134217728 - Clear - - - -2038284033 - 129 - - - 200 - 25 - - - - {574, 347} - - - - - {{0, 0}, {1920, 1058}} - {10000000000000, 10000000000000} - YES - - - - - - - window - - - - 22 - - - - ignoreListTableView - - - - 30 - - - - removeSelected: - - - - 31 - - - - clear: - - - - 32 - - - - performClose: - - - - 25 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - - 2 - - - - - - - - - - - 5 - - - - - - - - - - - 6 - - - - - 7 - - - - - 8 - - - - - - 9 - - - - - 18 - - - - - - - - 19 - - - - - 20 - - - - - - - - 21 - - - - - 27 - - - - - - - - 28 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{477, 306}, {480, 309}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 32 - - - - - IgnoreListDialog - NSWindowController - - id - id - - - - clear: - id - - - removeSelected: - id - - - - ignoreListTableView - NSTableView - - - ignoreListTableView - - ignoreListTableView - NSTableView - - - - IBProjectSource - ./Classes/IgnoreListDialog.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index e4f5db60..f99bcbea 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -27,7 +27,14 @@ "No" = "No"; "OK" = "OK"; +/* Details Panel */ "Details of Selected File" = "Details of Selected File"; "Selected" = "Selected"; "Reference" = "Reference"; "Attribute" = "Attribute"; + +/* Ignore List Dialog */ +"Ignore List" = "Ignore List"; +"Close" = "Close"; +"Remove Selected" = "Remove Selected"; +"Clear" = "Clear"; diff --git a/cocoa/base/ui/ignore_list_dialog.py b/cocoa/base/ui/ignore_list_dialog.py new file mode 100644 index 00000000..a6e355d5 --- /dev/null +++ b/cocoa/base/ui/ignore_list_dialog.py @@ -0,0 +1,30 @@ +ownerclass = 'IgnoreListDialog' +ownerimport = 'IgnoreListDialog.h' + +result = Window(550, 350, "Ignore List") +table = TableView(result) +removeSelectedButton = Button(result, "Remove Selected") +clearButton = Button(result, "Clear") +closeButton = Button(result, "Close") + +owner.ignoreListTableView = table + +result.canMinimize = False +removeSelectedButton.action = Action(owner.model, 'removeSelected') +clearButton.action = Action(owner.model, 'clear') +closeButton.action = Action(result, 'performClose:') +closeButton.keyEquivalent = '\\r' +table.allowsColumnReordering = False +table.allowsColumnSelection = False +table.allowsMultipleSelection = True + +removeSelectedButton.width = 142 +clearButton.width = 142 +closeButton.width = 84 +buttonLayout = HLayout(left=[removeSelectedButton, clearButton], right=[closeButton]) +buttonLayout.packToCorner(Pack.LowerLeft) +buttonLayout.fill(Pack.Right) +buttonLayout.setAnchor(Pack.Below) +table.packRelativeTo(buttonLayout, Pack.Above) +table.fill(Pack.UpperRight) +table.setAnchor(Pack.UpperLeft, growX=True, growY=True) diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index cc1d7809..6faa5572 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -24,7 +24,6 @@ CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */; }; CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */; }; CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */; }; - CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */; }; CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C131510ED2E00484122 /* IgnoreListDialog.m */; }; CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; }; CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; }; @@ -74,6 +73,7 @@ CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */; }; CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */; }; CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; }; + CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */; }; CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */; }; CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */; }; @@ -131,10 +131,6 @@ CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = ""; }; - CE148034151100EC00CD5DAD /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE148037151100FB00CD5DAD /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE1480391511010500CD5DAD /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE14803B1511011000CD5DAD /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = ""; }; CE18005014BDD87B001B6329 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = ""; }; CE1D091414BE0C6400CA6B8C /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = ""; }; @@ -147,10 +143,6 @@ CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = ""; }; CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; }; CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; - CE3491E2151100A40030B64C /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE3491E5151100AD0030B64C /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE3491E7151100BB0030B64C /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE3491E8151100BB0030B64C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/IgnoreListDialog.xib; sourceTree = ""; }; 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; }; @@ -161,7 +153,6 @@ CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = ""; }; CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = ""; }; CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = ""; }; - CE412C101510ECCA00484122 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE412C121510ED2E00484122 /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = ""; }; CE412C131510ED2E00484122 /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = ""; }; CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; sourceTree = SOURCE_ROOT; }; @@ -180,7 +171,6 @@ CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; CE5A5CA015A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; CE5A5CA215A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE5A5CA315A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; CE5A5CA515A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE5A5CA615A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ProblemDialog.xib; sourceTree = ""; }; @@ -293,6 +283,8 @@ CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController_UI.m; path = ../../cocoalib/autogen/ProgressController_UI.m; sourceTree = ""; }; CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; }; CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; + CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IgnoreListDialog_UI.h; sourceTree = ""; }; + CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IgnoreListDialog_UI.m; sourceTree = ""; }; CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; CEECCD1014C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; @@ -451,6 +443,8 @@ children = ( CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */, CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */, + CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */, + CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */, CE9FC22B14C080CF005C31FD /* PyGUIObject.h */, CE9FC22C14C080CF005C31FD /* PyGUIObject.m */, CE275C5814BF71DF00265960 /* PyColumns.h */, @@ -553,7 +547,6 @@ CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */, CE81134612E5CE4D00A36C80 /* MainMenu.xib */, CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */, - CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */, CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */, CE81135612E5CE6D00A36C80 /* Preferences.xib */, CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */, @@ -719,7 +712,6 @@ CEA175CA1461E8E600776591 /* locale in Resources */, CE18005114BDD87B001B6329 /* py in Resources */, CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */, - CE412C111510ECCA00484122 /* IgnoreListDialog.xib in Resources */, CEC3F8F815765F9F00B26F0C /* DeletionOptions.xib in Resources */, CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */, ); @@ -792,6 +784,7 @@ CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */, CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */, CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */, + CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -814,23 +807,6 @@ path = /Users/hsoft/src/dupeguru/cocoalib/xib; sourceTree = ""; }; - CE412C0F1510ECCA00484122 /* IgnoreListDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE412C101510ECCA00484122 /* en */, - CE3491E2151100A40030B64C /* cs */, - CE3491E5151100AD0030B64C /* de */, - CE3491E7151100BB0030B64C /* fr */, - CE3491E8151100BB0030B64C /* hy */, - CE148034151100EC00CD5DAD /* it */, - CE148037151100FB00CD5DAD /* ru */, - CE1480391511010500CD5DAD /* uk */, - CE14803B1511011000CD5DAD /* zh_CN */, - CE5A5CA315A283C200C4E461 /* pt_BR */, - ); - name = IgnoreListDialog.xib; - sourceTree = ""; - }; CE79638412536C94008D405B /* FairwareReminder.xib */ = { isa = PBXVariantGroup; children = ( From a29ed235f638a489262389c74c010a7a6e4f6567 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 23 Jul 2012 10:14:50 -0400 Subject: [PATCH 05/33] xibless-ified DeletionOptions. --HG-- branch : xibless --- build.py | 1 + cocoa/base/DeletionOptions.h | 18 +++++--- cocoa/base/DeletionOptions.m | 16 ++++--- cocoa/base/ui/deletion_options.py | 47 +++++++++++++++++++++ cocoa/se/dupeguru.xcodeproj/project.pbxproj | 36 +++------------- 5 files changed, 77 insertions(+), 41 deletions(-) create mode 100644 cocoa/base/ui/deletion_options.py diff --git a/build.py b/build.py index 3091cd70..0eb253c2 100644 --- a/build.py +++ b/build.py @@ -59,6 +59,7 @@ def build_xibless(edition): else: xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/deletion_options.py', 'cocoa/autogen/DeletionOptions_UI', localizationTable='Localizable') def build_cocoa(edition, dev): build_xibless(edition) diff --git a/cocoa/base/DeletionOptions.h b/cocoa/base/DeletionOptions.h index 1df2bec0..9b6a9279 100644 --- a/cocoa/base/DeletionOptions.h +++ b/cocoa/base/DeletionOptions.h @@ -11,15 +11,21 @@ http://www.hardcoded.net/licenses/bsd_license @interface DeletionOptions : NSWindowController { - IBOutlet NSTextField *messageTextField; - IBOutlet NSButton *hardlinkButton; - IBOutlet NSButton *directButton; PyDeletionOptions *model; + + NSTextField *messageTextField; + NSButton *hardlinkButton; + NSButton *directButton; } + +@property (readwrite, retain) NSTextField *messageTextField; +@property (readwrite, retain) NSButton *hardlinkButton; +@property (readwrite, retain) NSButton *directButton; + - (id)initWithPyRef:(PyObject *)aPyRef; -- (IBAction)updateOptions:(id)sender; -- (IBAction)proceed:(id)sender; -- (IBAction)cancel:(id)sender; +- (void)updateOptions; +- (void)proceed; +- (void)cancel; @end \ No newline at end of file diff --git a/cocoa/base/DeletionOptions.m b/cocoa/base/DeletionOptions.m index b7049da5..7b746c0c 100644 --- a/cocoa/base/DeletionOptions.m +++ b/cocoa/base/DeletionOptions.m @@ -7,14 +7,20 @@ http://www.hardcoded.net/licenses/bsd_license */ #import "DeletionOptions.h" +#import "DeletionOptions_UI.h" #import "HSPyUtil.h" @implementation DeletionOptions + +@synthesize messageTextField; +@synthesize hardlinkButton; +@synthesize directButton; + - (id)initWithPyRef:(PyObject *)aPyRef { - self = [super initWithWindowNibName:@"DeletionOptions"]; - [self window]; + self = [super initWithWindow:nil]; model = [[PyDeletionOptions alloc] initWithModel:aPyRef]; + [self setWindow:createDeletionOptions_UI(self)]; [model bindCallback:createCallback(@"DeletionOptionsView", self)]; return self; } @@ -25,18 +31,18 @@ http://www.hardcoded.net/licenses/bsd_license [super dealloc]; } -- (IBAction)updateOptions:(id)sender +- (void)updateOptions { [model setHardlink:[hardlinkButton state] == NSOnState]; [model setDirect:[directButton state] == NSOnState]; } -- (IBAction)proceed:(id)sender +- (void)proceed { [NSApp stopModalWithCode:NSOKButton]; } -- (IBAction)cancel:(id)sender +- (void)cancel { [NSApp stopModalWithCode:NSCancelButton]; } diff --git a/cocoa/base/ui/deletion_options.py b/cocoa/base/ui/deletion_options.py new file mode 100644 index 00000000..2ccbb784 --- /dev/null +++ b/cocoa/base/ui/deletion_options.py @@ -0,0 +1,47 @@ +ownerclass = 'DeletionOptions' +ownerimport = 'DeletionOptions.h' + +result = Window(450, 215, "Deletion Options") +messageLabel = Label(result, "") +hardlinkCheckbox = Checkbox(result, "Hardlink deleted files") +hardlinkLabel = Label(result, "After having deleted a duplicate, place a hardlink targeting the " + "reference file to replace the deleted file.") +directCheckbox = Checkbox(result, "Directly delete files") +directLabel = Label(result, "Instead of sending files to trash, delete them directly. This option " + "is usually used as a workaround when the normal deletion method doesn't work.") +proceedButton = Button(result, "Proceed") +cancelButton = Button(result, "Cancel") + +owner.hardlinkButton = hardlinkCheckbox +owner.directButton = directCheckbox +owner.messageTextField = messageLabel + +result.canMinimize = False +result.canResize = False +hardlinkLabel.controlSize = const.NSSmallControlSize +directLabel.controlSize = const.NSSmallControlSize +proceedButton.keyEquivalent = '\\r' +cancelButton.keyEquivalent = '\\e' +hardlinkCheckbox.action = directCheckbox.action = Action(owner, 'updateOptions') +proceedButton.action = Action(owner, 'proceed') +cancelButton.action = Action(owner, 'cancel') + +hardlinkLabel.height *= 2 # 2 lines +directLabel.height *= 3 # 3 lines +proceedButton.width = 92 +cancelButton.width = 92 + +messageLabel.packToCorner(Pack.UpperLeft) +hardlinkCheckbox.packRelativeTo(messageLabel, Pack.Below) +hardlinkLabel.packRelativeTo(hardlinkCheckbox, Pack.Below) +directCheckbox.packRelativeTo(hardlinkLabel, Pack.Below) +directLabel.packRelativeTo(directCheckbox, Pack.Below) +for view in (messageLabel, hardlinkCheckbox, hardlinkLabel, directCheckbox, directLabel): + view.fill(Pack.Right) +proceedButton.packToCorner(Pack.LowerRight) +cancelButton.packRelativeTo(proceedButton, Pack.Left) + +# indent the labels under checkboxes a little bit to the right +for label in (hardlinkLabel, directLabel): + label.x += 20 + label.width -= 20 diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 6faa5572..33cdcf98 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; }; CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; }; CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; }; + CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */; }; CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; }; CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; }; CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; }; @@ -63,7 +64,6 @@ CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */; }; CEB2AF5614C49AC800F907A9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB2AF5514C49AC800F907A9 /* main.m */; }; CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBCE2D71573FE49000402E1 /* HSPyUtil.m */; }; - CEC3F8F815765F9F00B26F0C /* DeletionOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEC3F8F615765F9F00B26F0C /* DeletionOptions.xib */; }; CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FB157668A300B26F0C /* DeletionOptions.m */; }; CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */; }; CEE49F4015B9F4E1002BD78B /* HSAboutBox_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */; }; @@ -143,6 +143,8 @@ CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = ""; }; CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; }; CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; + CE2EC62715BD931E00698FF3 /* DeletionOptions_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeletionOptions_UI.h; sourceTree = ""; }; + CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeletionOptions_UI.m; sourceTree = ""; }; 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; }; @@ -169,7 +171,6 @@ CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = ""; }; CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; - CE5A5CA015A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; CE5A5CA215A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; CE5A5CA515A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = ""; }; @@ -244,7 +245,6 @@ CEBCE2D61573FE49000402E1 /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = ""; }; CEBCE2D71573FE49000402E1 /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = ""; }; CEBCE2DA1573FEBF000402E1 /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = ""; }; - CEC3F8F715765F9F00B26F0C /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DeletionOptions.xib; sourceTree = ""; }; CEC3F8FA157668A300B26F0C /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = ""; }; CEC3F8FB157668A300B26F0C /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = ""; }; CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; @@ -318,14 +318,6 @@ CEF27A9D1423EAD90048ADFA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEF27A9E1423EAD90048ADFA /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; }; - CEFC64DD157678A500664D8C /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEFC64E0157678AF00664D8C /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEFC64E2157678C000664D8C /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEFC64E4157678CA00664D8C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEFC64E6157678DE00664D8C /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEFC64E7157678DE00664D8C /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEFC64E8157678DE00664D8C /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEFC64E9157678DE00664D8C /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DeletionOptions.xib; sourceTree = ""; }; CEFC7F8A0FC9517500CD5728 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; }; CEFC7F8B0FC9517500CD5728 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; }; CEFC7F900FC9517500CD5728 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; }; @@ -445,6 +437,8 @@ CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */, CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */, CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */, + CE2EC62715BD931E00698FF3 /* DeletionOptions_UI.h */, + CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */, CE9FC22B14C080CF005C31FD /* PyGUIObject.h */, CE9FC22C14C080CF005C31FD /* PyGUIObject.m */, CE275C5814BF71DF00265960 /* PyColumns.h */, @@ -550,7 +544,6 @@ CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */, CE81135612E5CE6D00A36C80 /* Preferences.xib */, CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */, - CEC3F8F615765F9F00B26F0C /* DeletionOptions.xib */, ); name = xib; sourceTree = ""; @@ -712,7 +705,6 @@ CEA175CA1461E8E600776591 /* locale in Resources */, CE18005114BDD87B001B6329 /* py in Resources */, CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */, - CEC3F8F815765F9F00B26F0C /* DeletionOptions.xib in Resources */, CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -785,6 +777,7 @@ CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */, CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */, CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */, + CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -951,23 +944,6 @@ name = PrioritizeDialog.xib; sourceTree = ""; }; - CEC3F8F615765F9F00B26F0C /* DeletionOptions.xib */ = { - isa = PBXVariantGroup; - children = ( - CEC3F8F715765F9F00B26F0C /* en */, - CEFC64DD157678A500664D8C /* de */, - CEFC64E0157678AF00664D8C /* cs */, - CEFC64E2157678C000664D8C /* fr */, - CEFC64E4157678CA00664D8C /* hy */, - CEFC64E6157678DE00664D8C /* it */, - CEFC64E7157678DE00664D8C /* ru */, - CEFC64E8157678DE00664D8C /* uk */, - CEFC64E9157678DE00664D8C /* zh_CN */, - CE5A5CA015A283C200C4E461 /* pt_BR */, - ); - name = DeletionOptions.xib; - sourceTree = ""; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ From e21a7e18b46d0b2ea72a78423225e932151f7ab5 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 23 Jul 2012 10:22:21 -0400 Subject: [PATCH 06/33] I had forgot to remove the DeletionOptions XIB and to move localized strings in my last commit. --HG-- branch : xibless --- cocoa/base/en.lproj/DeletionOptions.strings | 21 - cocoa/base/en.lproj/DeletionOptions.xib | 556 -------------------- cocoa/base/en.lproj/Localizable.strings | 9 + 3 files changed, 9 insertions(+), 577 deletions(-) delete mode 100644 cocoa/base/en.lproj/DeletionOptions.strings delete mode 100644 cocoa/base/en.lproj/DeletionOptions.xib diff --git a/cocoa/base/en.lproj/DeletionOptions.strings b/cocoa/base/en.lproj/DeletionOptions.strings deleted file mode 100644 index ebe071a6..00000000 --- a/cocoa/base/en.lproj/DeletionOptions.strings +++ /dev/null @@ -1,21 +0,0 @@ - -/* Class = "NSWindow"; title = "Deletion Options"; ObjectID = "1"; */ -"1.title" = "Deletion Options"; - -/* Class = "NSButtonCell"; title = "Hardlink deleted files"; ObjectID = "4"; */ -"4.title" = "Hardlink deleted files"; - -/* Class = "NSTextFieldCell"; title = "After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file."; ObjectID = "8"; */ -"8.title" = "After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file."; - -/* Class = "NSButtonCell"; title = "Directly delete files"; ObjectID = "36"; */ -"36.title" = "Directly delete files"; - -/* Class = "NSTextFieldCell"; title = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work."; ObjectID = "38"; */ -"38.title" = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work."; - -/* Class = "NSButtonCell"; title = "Proceed"; ObjectID = "40"; */ -"40.title" = "Proceed"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "42"; */ -"42.title" = "Cancel"; diff --git a/cocoa/base/en.lproj/DeletionOptions.xib b/cocoa/base/en.lproj/DeletionOptions.xib deleted file mode 100644 index 572e42a1..00000000 --- a/cocoa/base/en.lproj/DeletionOptions.xib +++ /dev/null @@ -1,556 +0,0 @@ - - - - 1060 - 11E53 - 2182 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSTextField - NSView - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSButton - NSCustomObject - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - DeletionOptions - - - FirstResponder - - - NSApplication - - - 3 - 2 - {{196, 240}, {449, 215}} - 1618477056 - Deletion Options - NSWindow - - - - - 256 - - - - 268 - {{18, 154}, {413, 18}} - - - - _NS:9 - YES - - 67239424 - 0 - Hardlink deleted files - - LucidaGrande - 13 - 1044 - - _NS:9 - - 1211912703 - 2 - - NSImage - NSSwitch - - - NSSwitch - - - - 200 - 25 - - - - - 268 - {{18, 96}, {413, 18}} - - - - _NS:9 - YES - - 67239424 - 0 - Directly delete files - - _NS:9 - - 1211912703 - 2 - - - - - 200 - 25 - - - - - 268 - {{38, 120}, {394, 28}} - - - - _NS:9 - {250, 750} - YES - - 67239424 - 272629760 - After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file. - - LucidaGrande - 11 - 16 - - _NS:9 - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 268 - {{38, 48}, {394, 42}} - - - - _NS:9 - {250, 750} - YES - - 67239424 - 272629760 - Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work. - - _NS:9 - - - - - - - - 268 - {{331, 12}, {104, 32}} - - - - _NS:9 - YES - - 67239424 - 134217728 - Proceed - - _NS:9 - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 268 - {{227, 12}, {104, 32}} - - - - _NS:9 - YES - - 67239424 - 134217728 - Cancel - - _NS:9 - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 178}, {415, 17}} - - - - _NS:1505 - YES - - 68288064 - 272630784 - - - _NS:1505 - - - - - - - {449, 215} - - - - - {{0, 0}, {1920, 1058}} - {10000000000000, 10000000000000} - NO - - - - - - - messageTextField - - - - 45 - - - - hardlinkButton - - - - 46 - - - - directButton - - - - 47 - - - - updateOptions: - - - - 48 - - - - updateOptions: - - - - 49 - - - - cancel: - - - - 50 - - - - proceed: - - - - 51 - - - - window - - - - 52 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - - 2 - - - - - - - - - - - - - - 3 - - - - - - - - 4 - - - - - 7 - - - - - - - - 8 - - - - - 35 - - - - - - - - 36 - - - - - 37 - - - - - - - - 38 - - - - - 39 - - - - - - - - 40 - - - - - 41 - - - - - - - - 42 - - - - - 43 - - - - - - - - 44 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - com.apple.InterfaceBuilder.CocoaPlugin - {{357, 418}, {480, 270}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 52 - - - - - DeletionOptions - NSWindowController - - id - id - id - - - - cancel: - id - - - proceed: - id - - - updateOptions: - id - - - - NSButton - NSButton - NSTextField - - - - directButton - NSButton - - - hardlinkButton - NSButton - - - messageTextField - NSTextField - - - - IBProjectSource - ./Classes/DeletionOptions.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - NSSwitch - {15, 15} - - - diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index f99bcbea..45505902 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -38,3 +38,12 @@ "Close" = "Close"; "Remove Selected" = "Remove Selected"; "Clear" = "Clear"; + +/* Deletion Options */ +"Deletion Options" = "Deletion Options"; +"Hardlink deleted files" = "Hardlink deleted files"; +"After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file." = "After having deleted a duplicate, place a hardlink targeting the reference file to replace the deleted file."; +"Directly delete files" = "Directly delete files"; +"Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work." = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work."; +"Proceed" = "Proceed"; +"Cancel" = "Cancel"; \ No newline at end of file From 5d5670d4be1986e710b4c02637f56e73f1213b5b Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 23 Jul 2012 11:04:13 -0400 Subject: [PATCH 07/33] xibless-ified ProblemDialog. Also, fixed a bug where the problems table wasn't read-only. --HG-- branch : xibless --- build.py | 1 + cocoa/base/ProblemDialog.h | 8 +- cocoa/base/ProblemDialog.m | 20 +- cocoa/base/en.lproj/Localizable.strings | 7 +- cocoa/base/en.lproj/ProblemDialog.strings | 12 - cocoa/base/en.lproj/ProblemDialog.xib | 500 -------------------- cocoa/base/ui/problem_dialog.py | 35 ++ cocoa/se/dupeguru.xcodeproj/project.pbxproj | 36 +- 8 files changed, 63 insertions(+), 556 deletions(-) delete mode 100644 cocoa/base/en.lproj/ProblemDialog.strings delete mode 100644 cocoa/base/en.lproj/ProblemDialog.xib create mode 100644 cocoa/base/ui/problem_dialog.py diff --git a/build.py b/build.py index 0eb253c2..7a2a7d3c 100644 --- a/build.py +++ b/build.py @@ -60,6 +60,7 @@ def build_xibless(edition): xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/deletion_options.py', 'cocoa/autogen/DeletionOptions_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/problem_dialog.py', 'cocoa/autogen/ProblemDialog_UI', localizationTable='Localizable') def build_cocoa(edition, dev): build_xibless(edition) diff --git a/cocoa/base/ProblemDialog.h b/cocoa/base/ProblemDialog.h index 148fd7e2..1e97617e 100644 --- a/cocoa/base/ProblemDialog.h +++ b/cocoa/base/ProblemDialog.h @@ -12,13 +12,15 @@ http://www.hardcoded.net/licenses/bsd_license @interface ProblemDialog : NSWindowController { - IBOutlet NSTableView *problemTableView; - PyProblemDialog *model; HSTable *problemTable; + NSTableView *problemTableView; } + +@property (readwrite, retain) PyProblemDialog *model; +@property (readwrite, retain) NSTableView *problemTableView; + - (id)initWithPyRef:(PyObject *)aPyRef; - (void)initializeColumns; -- (IBAction)revealSelected:(id)sender; @end \ No newline at end of file diff --git a/cocoa/base/ProblemDialog.m b/cocoa/base/ProblemDialog.m index 0119fe06..5b0aa37d 100644 --- a/cocoa/base/ProblemDialog.m +++ b/cocoa/base/ProblemDialog.m @@ -7,15 +7,20 @@ http://www.hardcoded.net/licenses/bsd_license */ #import "ProblemDialog.h" +#import "ProblemDialog_UI.h" #import "Utils.h" @implementation ProblemDialog + +@synthesize model; +@synthesize problemTableView; + - (id)initWithPyRef:(PyObject *)aPyRef { - self = [super initWithWindowNibName:@"ProblemDialog"]; - [self window]; //So the detailsTable is initialized. - model = [[PyProblemDialog alloc] initWithModel:aPyRef]; - problemTable = [[HSTable alloc] initWithPyRef:[model problemTable] tableView:problemTableView]; + self = [super initWithWindow:nil]; + self.model = [[PyProblemDialog alloc] initWithModel:aPyRef]; + [self setWindow:createProblemDialog_UI(self)]; + problemTable = [[HSTable alloc] initWithPyRef:[self.model problemTable] tableView:problemTableView]; [self initializeColumns]; return self; } @@ -23,7 +28,6 @@ http://www.hardcoded.net/licenses/bsd_license - (void)dealloc { [problemTable release]; - [model release]; [super dealloc]; } @@ -35,10 +39,6 @@ http://www.hardcoded.net/licenses/bsd_license nil }; [[problemTable columns] initializeColumns:defs]; -} - -- (IBAction)revealSelected:(id)sender -{ - [model revealSelected]; + [[problemTable columns] setColumnsAsReadOnly]; } @end \ No newline at end of file diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 45505902..8419096d 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -46,4 +46,9 @@ "Directly delete files" = "Directly delete files"; "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work." = "Instead of sending files to trash, delete them directly. This option is usually used as a workaround when the normal deletion method doesn't work."; "Proceed" = "Proceed"; -"Cancel" = "Cancel"; \ No newline at end of file +"Cancel" = "Cancel"; + +/* Problem Dialog */ +"Problems!" = "Problems!"; +"There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results." = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; +"Reveal Selected" = "Reveal Selected"; diff --git a/cocoa/base/en.lproj/ProblemDialog.strings b/cocoa/base/en.lproj/ProblemDialog.strings deleted file mode 100644 index 56d9173c..00000000 --- a/cocoa/base/en.lproj/ProblemDialog.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "NSWindow"; title = "Problems!"; ObjectID = "1"; */ -"1.title" = "Problems!"; - -/* Class = "NSTextFieldCell"; title = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; ObjectID = "4"; */ -"4.title" = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; - -/* Class = "NSButtonCell"; title = "Close"; ObjectID = "19"; */ -"19.title" = "Close"; - -/* Class = "NSButtonCell"; title = "Reveal Selected"; ObjectID = "21"; */ -"21.title" = "Reveal Selected"; diff --git a/cocoa/base/en.lproj/ProblemDialog.xib b/cocoa/base/en.lproj/ProblemDialog.xib deleted file mode 100644 index 8f9ba4e4..00000000 --- a/cocoa/base/en.lproj/ProblemDialog.xib +++ /dev/null @@ -1,500 +0,0 @@ - - - - 1060 - 11D50 - 2182 - 1138.32 - 568.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSTextField - NSView - NSWindowTemplate - NSScrollView - NSCustomObject - NSTableView - NSTableHeaderView - NSButtonCell - NSButton - NSScroller - NSTextFieldCell - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - ProblemDialog - - - FirstResponder - - - NSApplication - - - 11 - 2 - {{477, 306}, {480, 309}} - 1685585920 - Problems! - NSWindow - - - - - 256 - - - - 266 - {{17, 238}, {446, 51}} - - - YES - - 67239424 - 272891904 - There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results. - - LucidaGrande - 13 - 16 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 274 - - - - 2304 - - - - 256 - {438, 152} - - - YES - - - 256 - {438, 17} - - - - - - - -2147483392 - {{224, 0}, {16, 17}} - - - - - 3 - 2 - - 3 - MQA - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - -702545920 - - - 4 - 15 - 0 - YES - 0 - 1 - - - {{1, 17}, {438, 152}} - - - - - - 6 - System - controlBackgroundColor - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - - _doScroller: - 0.90131578947368418 - - - - -2147483392 - {{1, 154}, {438, 15}} - - - 1 - - _doScroller: - 1 - 0.98871331828442433 - - - - 2304 - - - - {{1, 0}, {438, 17}} - - - - - - 4 - - - - {{20, 60}, {440, 170}} - - - - 133682 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 289 - {{356, 12}, {110, 32}} - - - YES - - 67239424 - 134217728 - Close - - LucidaGrande - 13 - 1044 - - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 292 - {{14, 12}, {162, 32}} - - - YES - - 67239424 - 134217728 - Reveal Selected - - - -2038284033 - 129 - - - 200 - 25 - - - - {480, 309} - - - - {{0, 0}, {1920, 1058}} - {10000000000000, 10000000000000} - YES - - - - - - - window - - - - 22 - - - - revealSelected: - - - - 24 - - - - problemTableView - - - - 26 - - - - performClose: - - - - 25 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - - 2 - - - - - - - - - - - 3 - - - - - - - - 4 - - - - - 5 - - - - - - - - - - - 6 - - - - - 7 - - - - - 8 - - - - - - 9 - - - - - 18 - - - - - - - - 19 - - - - - 20 - - - - - - - - 21 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{477, 306}, {480, 309}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 26 - - - - - ProblemDialog - NSWindowController - - revealSelected: - id - - - revealSelected: - - revealSelected: - id - - - - problemTableView - NSTableView - - - problemTableView - - problemTableView - NSTableView - - - - IBProjectSource - ./Classes/ProblemDialog.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - diff --git a/cocoa/base/ui/problem_dialog.py b/cocoa/base/ui/problem_dialog.py new file mode 100644 index 00000000..cd3430ba --- /dev/null +++ b/cocoa/base/ui/problem_dialog.py @@ -0,0 +1,35 @@ +ownerclass = 'ProblemDialog' +ownerimport = 'ProblemDialog.h' + +result = Window(480, 310, "Problems!") +messageLabel = Label(result, "There were problems processing some (or all) of the files. The cause " + "of these problems are described in the table below. Those files were not removed from your " + "results.") +problemTable = TableView(result) +revealButton = Button(result, "Reveal") +closeButton = Button(result, "Close") + +owner.problemTableView = problemTable + +result.canMinimize = False +result.minSize = Size(300, 300) +closeButton.keyEquivalent = '\\r' +revealButton.action = Action(owner.model, 'revealSelected') +closeButton.action = Action(result, 'performClose:') + +messageLabel.height *= 3 # 3 lines +revealButton.width = 150 +closeButton.width = 98 + +messageLabel.packToCorner(Pack.UpperLeft) +messageLabel.fill(Pack.Right) +problemTable.packRelativeTo(messageLabel, Pack.Below) +problemTable.fill(Pack.Right) +revealButton.packRelativeTo(problemTable, Pack.Below) +closeButton.packRelativeTo(problemTable, Pack.Below, align=Pack.Right) +problemTable.fill(Pack.Below) + +messageLabel.setAnchor(Pack.UpperLeft, growX=True) +problemTable.setAnchor(Pack.UpperLeft, growX=True, growY=True) +revealButton.setAnchor(Pack.LowerLeft) +closeButton.setAnchor(Pack.LowerRight) diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 33cdcf98..daafed7e 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; }; CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; }; CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */; }; + CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */; }; CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; }; CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; }; CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; }; @@ -48,7 +49,6 @@ CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; }; CE81134D12E5CE4D00A36C80 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */; }; CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; }; - CE81134F12E5CE4D00A36C80 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */; }; CE81135012E5CE4D00A36C80 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; }; CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; }; CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; }; @@ -119,14 +119,12 @@ CE00BBBE14910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; CE00BBC114910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE00BBC214910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ProblemDialog.xib; sourceTree = ""; }; CE00BBC314910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; CE0564B414169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE0564B614169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; - CE0564B714169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ProblemDialog.xib; sourceTree = ""; }; CE0564B814169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ResultWindow.xib; sourceTree = ""; }; CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; @@ -145,6 +143,8 @@ CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; CE2EC62715BD931E00698FF3 /* DeletionOptions_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeletionOptions_UI.h; sourceTree = ""; }; CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeletionOptions_UI.m; sourceTree = ""; }; + CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProblemDialog_UI.h; sourceTree = ""; }; + CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProblemDialog_UI.m; sourceTree = ""; }; 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; }; @@ -174,7 +174,6 @@ CE5A5CA215A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; CE5A5CA515A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE5A5CA615A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ProblemDialog.xib; sourceTree = ""; }; CE5A5CA715A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; sourceTree = ""; }; CE5A5CB015A283D700C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; }; @@ -200,16 +199,13 @@ CE7A6978146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; CE7A697B146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE7A697C146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = ""; }; CE7A697D146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; CE81134512E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81134912E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CE81134B12E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CE81135212E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE81135312E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81135412E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CE81135512E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CE81135712E5CE6D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = ""; }; CE81135912E5CE7B00A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; @@ -251,13 +247,11 @@ CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; CECFFF1D13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CECFFF2013CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; CED638DD14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = ""; }; CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; CED638E014B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CED638E114B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = ""; }; CED638E214B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; @@ -265,7 +259,6 @@ CED64CF9145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = ""; }; CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; CED64CFC145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CED64CFD145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ProblemDialog.xib; sourceTree = ""; }; CED64CFE145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = ""; }; CED64D06145EF16300572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = ""; }; CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; @@ -290,7 +283,6 @@ CEECCD1014C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; CEECCD1314C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CEECCD1414C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ProblemDialog.xib; sourceTree = ""; }; CEECCD1514C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = ""; }; CEECCD1D14C6370C00A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; @@ -433,6 +425,8 @@ CE1D091314BE0C6400CA6B8C /* autogen */ = { isa = PBXGroup; children = ( + CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */, + CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */, CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */, CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */, CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */, @@ -540,7 +534,6 @@ children = ( CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */, CE81134612E5CE4D00A36C80 /* MainMenu.xib */, - CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */, CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */, CE81135612E5CE6D00A36C80 /* Preferences.xib */, CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */, @@ -695,7 +688,6 @@ CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, CE81134D12E5CE4D00A36C80 /* DirectoryPanel.xib in Resources */, CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */, - CE81134F12E5CE4D00A36C80 /* ProblemDialog.xib in Resources */, CE81135012E5CE4D00A36C80 /* ResultWindow.xib in Resources */, CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */, CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */, @@ -778,6 +770,7 @@ CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */, CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */, CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */, + CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -842,23 +835,6 @@ name = MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81134812E5CE4D00A36C80 /* ProblemDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE81134912E5CE4D00A36C80 /* en */, - CE81135412E5CE6100A36C80 /* fr */, - CECFFF2013CDF8D0003A4518 /* de */, - CE0564B714169DB100D3D907 /* zh_CN */, - CED64CFD145EF07700572B00 /* cs */, - CE7A697C146442160007D927 /* it */, - CE00BBC214910C5E006A717C /* hy */, - CED638E114B38CEC00B88D00 /* ru */, - CEECCD1414C6370000A2F3A0 /* uk */, - CE5A5CA615A283C200C4E461 /* pt_BR */, - ); - name = ProblemDialog.xib; - sourceTree = SOURCE_ROOT; - }; CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */ = { isa = PBXVariantGroup; children = ( From 4db5fae38b806a421cef05c79555e318f20dab65 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 23 Jul 2012 17:46:01 -0400 Subject: [PATCH 08/33] xibless-ified DirectoryPanel. --HG-- branch : xibless --- build.py | 1 + cocoa/base/DirectoryPanel.h | 26 +- cocoa/base/DirectoryPanel.m | 24 +- cocoa/base/en.lproj/DirectoryPanel.strings | 23 - cocoa/base/en.lproj/DirectoryPanel.xib | 1083 ------------------- cocoa/base/en.lproj/Localizable.strings | 10 + cocoa/base/ui/details_panel.py | 6 +- cocoa/base/ui/directory_panel.py | 59 + cocoa/pe/ui/details_panel.py | 16 +- cocoa/se/dupeguru.xcodeproj/project.pbxproj | 36 +- 10 files changed, 116 insertions(+), 1168 deletions(-) delete mode 100644 cocoa/base/en.lproj/DirectoryPanel.strings delete mode 100644 cocoa/base/en.lproj/DirectoryPanel.xib create mode 100644 cocoa/base/ui/directory_panel.py diff --git a/build.py b/build.py index 7a2a7d3c..06a304d2 100644 --- a/build.py +++ b/build.py @@ -61,6 +61,7 @@ def build_xibless(edition): xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/deletion_options.py', 'cocoa/autogen/DeletionOptions_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/problem_dialog.py', 'cocoa/autogen/ProblemDialog_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/directory_panel.py', 'cocoa/autogen/DirectoryPanel_UI', localizationTable='Localizable') def build_cocoa(edition, dev): build_xibless(edition) diff --git a/cocoa/base/DirectoryPanel.h b/cocoa/base/DirectoryPanel.h index 75ed2ea2..10c75fa6 100644 --- a/cocoa/base/DirectoryPanel.h +++ b/cocoa/base/DirectoryPanel.h @@ -16,27 +16,33 @@ http://www.hardcoded.net/licenses/bsd_license @interface DirectoryPanel : NSWindowController { - IBOutlet NSPopUpButton *addButtonPopUp; - IBOutlet NSPopUpButton *loadRecentButtonPopUp; - IBOutlet HSOutlineView *outlineView; - IBOutlet NSButton *removeButton; - IBOutlet NSButton *loadResultsButton; - AppDelegateBase *_app; PyDupeGuru *model; HSRecentFiles *_recentDirectories; DirectoryOutline *outline; BOOL _alwaysShowPopUp; + NSPopUpButton *addButtonPopUp; + NSPopUpButton *loadRecentButtonPopUp; + HSOutlineView *outlineView; + NSButton *removeButton; + NSButton *loadResultsButton; } + +@property (readwrite, retain) NSPopUpButton *addButtonPopUp; +@property (readwrite, retain) NSPopUpButton *loadRecentButtonPopUp; +@property (readwrite, retain) HSOutlineView *outlineView; +@property (readwrite, retain) NSButton *removeButton; +@property (readwrite, retain) NSButton *loadResultsButton; + - (id)initWithParentApp:(AppDelegateBase *)aParentApp; - (void)fillPopUpMenu; // Virtual - (void)adjustUIToLocalization; -- (IBAction)askForDirectory:(id)sender; -- (IBAction)popupAddDirectoryMenu:(id)sender; -- (IBAction)popupLoadRecentMenu:(id)sender; -- (IBAction)removeSelectedDirectory:(id)sender; +- (void)askForDirectory; +- (void)popupAddDirectoryMenu:(id)sender; +- (void)popupLoadRecentMenu:(id)sender; +- (void)removeSelectedDirectory; - (void)addDirectory:(NSString *)directory; - (void)refreshRemoveButtonText; diff --git a/cocoa/base/DirectoryPanel.m b/cocoa/base/DirectoryPanel.m index ed8c3425..5ef3613a 100644 --- a/cocoa/base/DirectoryPanel.m +++ b/cocoa/base/DirectoryPanel.m @@ -7,16 +7,24 @@ http://www.hardcoded.net/licenses/bsd_license */ #import "DirectoryPanel.h" +#import "DirectoryPanel_UI.h" #import "Dialogs.h" #import "Utils.h" #import "AppDelegate.h" #import "Consts.h" @implementation DirectoryPanel + +@synthesize addButtonPopUp; +@synthesize loadRecentButtonPopUp; +@synthesize outlineView; +@synthesize removeButton; +@synthesize loadResultsButton; + - (id)initWithParentApp:(AppDelegateBase *)aParentApp { - self = [super initWithWindowNibName:@"DirectoryPanel"]; - [self window]; + self = [super initWithWindow:nil]; + [self setWindow:createDirectoryPanel_UI(self)]; _app = aParentApp; model = [_app model]; [[self window] setTitle:[model appName]]; @@ -47,7 +55,7 @@ http://www.hardcoded.net/licenses/bsd_license - (void)fillPopUpMenu { NSMenu *m = [addButtonPopUp menu]; - NSMenuItem *mi = [m addItemWithTitle:TR(@"Add New Folder...") action:@selector(askForDirectory:) keyEquivalent:@""]; + NSMenuItem *mi = [m addItemWithTitle:TR(@"Add New Folder...") action:@selector(askForDirectory) keyEquivalent:@""]; [mi setTarget:self]; [m addItem:[NSMenuItem separatorItem]]; } @@ -75,7 +83,7 @@ http://www.hardcoded.net/licenses/bsd_license /* Actions */ -- (IBAction)askForDirectory:(id)sender +- (void)askForDirectory { NSOpenPanel *op = [NSOpenPanel openPanel]; [op setCanChooseFiles:YES]; @@ -90,10 +98,10 @@ http://www.hardcoded.net/licenses/bsd_license } } -- (IBAction)popupAddDirectoryMenu:(id)sender +- (void)popupAddDirectoryMenu:(id)sender { if ((!_alwaysShowPopUp) && ([[_recentDirectories filepaths] count] == 0)) { - [self askForDirectory:sender]; + [self askForDirectory]; } else { [addButtonPopUp selectItem:nil]; @@ -101,7 +109,7 @@ http://www.hardcoded.net/licenses/bsd_license } } -- (IBAction)popupLoadRecentMenu:(id)sender +- (void)popupLoadRecentMenu:(id)sender { if ([[[_app recentResults] filepaths] count] > 0) { NSMenu *m = [loadRecentButtonPopUp menu]; @@ -120,7 +128,7 @@ http://www.hardcoded.net/licenses/bsd_license } } -- (IBAction)removeSelectedDirectory:(id)sender +- (void)removeSelectedDirectory { [[self window] makeKeyAndOrderFront:nil]; [[outline model] removeSelectedDirectory]; diff --git a/cocoa/base/en.lproj/DirectoryPanel.strings b/cocoa/base/en.lproj/DirectoryPanel.strings deleted file mode 100644 index e22074ac..00000000 --- a/cocoa/base/en.lproj/DirectoryPanel.strings +++ /dev/null @@ -1,23 +0,0 @@ -/* Class = "NSTableColumn"; headerCell.title = "State"; ObjectID = "13"; */ -"13.headerCell.title" = "State"; - -/* Class = "NSTableColumn"; headerCell.title = "Name"; ObjectID = "15"; */ -"15.headerCell.title" = "Name"; - -/* Class = "NSButtonCell"; title = "Scan"; ObjectID = "48"; */ -"48.title" = "Scan"; - -/* Class = "NSMenuItem"; title = "Normal"; ObjectID = "55"; */ -"55.title" = "Normal"; - -/* Class = "NSMenuItem"; title = "Reference"; ObjectID = "56"; */ -"56.title" = "Reference"; - -/* Class = "NSMenuItem"; title = "Excluded"; ObjectID = "57"; */ -"57.title" = "Excluded"; - -/* Class = "NSTextFieldCell"; title = "Select folders to scan and press \"Scan\"."; ObjectID = "71"; */ -"71.title" = "Select folders to scan and press \"Scan\"."; - -/* Class = "NSButtonCell"; title = "Load Results"; ObjectID = "73"; */ -"73.title" = "Load Results"; diff --git a/cocoa/base/en.lproj/DirectoryPanel.xib b/cocoa/base/en.lproj/DirectoryPanel.xib deleted file mode 100644 index 637fff9c..00000000 --- a/cocoa/base/en.lproj/DirectoryPanel.xib +++ /dev/null @@ -1,1083 +0,0 @@ - - - - 1060 - 11D50 - 2182 - 1138.32 - 568.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSTextField - NSPopUpButton - NSScroller - NSButton - NSMenu - NSScrollView - NSTextFieldCell - NSButtonCell - NSTableHeaderView - NSMenuItem - NSOutlineView - NSCustomObject - NSView - NSWindowTemplate - NSPopUpButtonCell - NSTableColumn - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - DirectoryPanel - - - FirstResponder - - - NSApplication - - - 11 - 2 - {{387, 265}, {422, 294}} - 1886913536 - dupeGuru - NSWindow - - View - - - {369, 269} - - - 256 - - - - 274 - - - - 2304 - - - - 256 - {380, 183} - - - YES - - - 256 - {380, 17} - - - - - - - -2147483392 - {{-26, 0}, {16, 17}} - - - - - - name - 289 - 16 - 1000 - - 75628096 - 2048 - Name - - LucidaGrande - 11 - 3100 - - - 3 - MC4zMzMzMzI5OQA - - - 6 - System - headerTextColor - - 3 - MAA - - - - - 337772096 - 2048 - Text Cell - - - - 6 - System - controlBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - - - 3 - YES - - - - state - 85.35595703125 - 30.35595703125 - 1000 - - 75628096 - 2048 - State - - - 6 - System - headerColor - - 3 - MQA - - - - - - 71433792 - 2048 - - - -2046672641 - 1 - - - 400 - 75 - - - Normal - - 2147483647 - 1 - _popUpItemAction: - - - YES - - Normal - - - - - Reference - - 2147483647 - _popUpItemAction: - - - - - Excluded - - 2147483647 - _popUpItemAction: - - - - YES - YES - - 3 - YES - YES - 1 - - 2 - YES - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 14 - 1514176512 - - - 1 - 15 - 0 - YES - 0 - 1 - - - {{1, 17}, {380, 183}} - - - - - - 4 - - - - -2147483392 - {{-30, 17}, {15, 150}} - - - - _doScroller: - 0.7366071343421936 - - - - -2147483392 - {{1, -30}, {312, 15}} - - - 1 - - _doScroller: - 0.9541284441947937 - - - - 2304 - - - - {{1, 0}, {380, 17}} - - - - - - 4 - - - - {{20, 48}, {382, 201}} - - - - 133682 - - - - - - QSAAAEEgAABBgAAAQYAAAA - - - - -2147483356 - {{89, 16}, {46, 26}} - - - YES - - -2076049856 - 2048 - - LucidaGrande - 13 - 1044 - - - 109199615 - 1 - - LucidaGrande - 13 - 16 - - - - - - 400 - 75 - - YES - - - OtherViews - - - - -1 - 3 - YES - YES - 1 - - - - - -2147483356 - {{89, 6}, {46, 26}} - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - YES - - - OtherViews - - - - -1 - 3 - YES - YES - 1 - - - - - 289 - {{278, 13}, {130, 32}} - - - YES - - 67239424 - 134217728 - Scan - - - -2038284033 - 1 - - - DQ - 200 - 25 - - - - - 292 - {{20, 16}, {28, 25}} - - - YES - - -2080244224 - 134217728 - - - - -2033958657 - 163 - - NSImage - NSAddTemplate - - - - 400 - 75 - - - - - 292 - {{56, 16}, {28, 25}} - - - YES - - -2080244224 - 134217728 - - - - -2033958657 - 163 - - NSImage - NSRemoveTemplate - - - - 400 - 75 - - - - - 266 - {{17, 257}, {388, 17}} - - - YES - - 68288064 - 272630784 - Select folders to scan and press "Scan". - - - - 6 - System - controlColor - - - - - - - - 289 - {{148, 13}, {130, 32}} - - - YES - - 67239424 - 134217728 - Load Results - - - -2038284033 - 129 - - - 200 - 25 - - - - {422, 294} - - - - {{0, 0}, {1440, 878}} - {369, 291} - {10000000000000, 10000000000000} - DirectoryPanel - YES - - - - - - - window - - - - 25 - - - - addButtonPopUp - - - - 26 - - - - outlineView - - - - 54 - - - - removeSelectedDirectory: - - - - 67 - - - - popupAddDirectoryMenu: - - - - 68 - - - - removeButton - - - - 69 - - - - loadRecentButtonPopUp - - - - 77 - - - - popupLoadRecentMenu: - - - - 78 - - - - loadResultsButton - - - - 79 - - - - startScanning: - - - - 60 - - - - initialFirstResponder - - - - 19 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 5 - - - - - - directories - - - 6 - - - - - - - - - - - - - - - 7 - - - - - - - - 10 - - - - - - - - - - - 11 - - - - - - - - - 13 - - - - - - - - 14 - - - - - - - - 15 - - - - - - - - 31 - - - - - - - - 45 - - - - - - - - 48 - - - - - 49 - - - - - 8 - - - - - - 50 - - - - - - - - - - 51 - - - - - 52 - - - - - 53 - - - - - 55 - - - - - 56 - - - - - 57 - - - - - 63 - - - - - - - - 64 - - - - - 65 - - - - - - - - 66 - - - - - 70 - - - - - - - - 71 - - - - - 72 - - - - - - - - 73 - - - - - 74 - - - - - - - - 75 - - - - - - - - 76 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - HSOutlineView - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - {{413, 484}, {395, 294}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 79 - - - - - AppDelegateBase - NSObject - - id - id - id - id - id - id - id - id - id - - - - loadResults: - id - - - openHelp: - id - - - openWebsite: - id - - - showAboutBox: - id - - - showDirectoryWindow: - id - - - showIgnoreList: - id - - - showPreferencesPanel: - id - - - showResultWindow: - id - - - startScanning: - id - - - - NSMenu - NSMenu - NSMenu - - - - actionsMenu - NSMenu - - - columnsMenu - NSMenu - - - recentResultsMenu - NSMenu - - - - IBProjectSource - ./Classes/AppDelegateBase.h - - - - DirectoryPanel - NSWindowController - - id - id - id - id - - - - askForDirectory: - id - - - popupAddDirectoryMenu: - id - - - popupLoadRecentMenu: - id - - - removeSelectedDirectory: - id - - - - NSPopUpButton - NSPopUpButton - NSButton - HSOutlineView - NSButton - - - - addButtonPopUp - NSPopUpButton - - - loadRecentButtonPopUp - NSPopUpButton - - - loadResultsButton - NSButton - - - outlineView - HSOutlineView - - - removeButton - NSButton - - - - IBProjectSource - ./Classes/DirectoryPanel.h - - - - HSOutlineView - NSOutlineView - - copy: - id - - - copy: - - copy: - id - - - - IBProjectSource - ./Classes/HSOutlineView.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - {8, 8} - {8, 8} - - - diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 8419096d..7e46a5ac 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -52,3 +52,13 @@ "Problems!" = "Problems!"; "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results." = "There were problems processing some (or all) of the files. The cause of these problems are described in the table below. Those files were not removed from your results."; "Reveal Selected" = "Reveal Selected"; + +/* Directory Panel */ +"State" = "State"; +"Name" = "Name"; +"Scan" = "Scan"; +"Normal" = "Normal"; +"Reference" = "Reference"; +"Excluded" = "Excluded"; +"Select folders to scan and press \"Scan\"." = "Select folders to scan and press \"Scan\"."; +"Load Results" = "Load Results"; diff --git a/cocoa/base/ui/details_panel.py b/cocoa/base/ui/details_panel.py index 956188f1..d8d02905 100644 --- a/cocoa/base/ui/details_panel.py +++ b/cocoa/base/ui/details_panel.py @@ -27,8 +27,6 @@ col.autoResizable = True col = table.addColumn('2', "Reference", 172) col.autoResizable = True -result.ignoreMargin = True -table.packToCorner(Pack.UpperLeft) -table.fill(Pack.Right) -table.fill(Pack.Below) +table.packToCorner(Pack.UpperLeft, margin=0) +table.fill(Pack.LowerRight, margin=0) table.setAnchor(Pack.UpperLeft, growX=True, growY=True) diff --git a/cocoa/base/ui/directory_panel.py b/cocoa/base/ui/directory_panel.py new file mode 100644 index 00000000..41e641eb --- /dev/null +++ b/cocoa/base/ui/directory_panel.py @@ -0,0 +1,59 @@ +ownerclass = 'DirectoryPanel' +ownerimport = 'DirectoryPanel.h' + +result = Window(425, 300, "dupeGuru") +promptLabel = Label(result, "Select folders to scan and press \"Scan\".") +directoryOutline = OutlineView(result) +directoryOutline.OBJC_CLASS = 'HSOutlineView' +addButton = Button(result, "") +removeButton = Button(result, "") +loadResultsButton = Button(result, "Load Results") +scanButton = Button(result, "Scan") +addPopup = Popup(None) +loadRecentPopup = Popup(None) + +owner.outlineView = directoryOutline +owner.removeButton = removeButton +owner.loadResultsButton = loadResultsButton +owner.addButtonPopUp = addPopup +owner.loadRecentButtonPopUp = loadRecentPopup + +result.autosaveName = 'DirectoryPanel' +result.canMinimize = False +result.minSize = Size(370, 270) +addButton.image = 'NSAddTemplate' +removeButton.image = 'NSRemoveTemplate' +for button in (addButton, removeButton): + button.style = const.NSTexturedRoundedBezelStyle + button.imagePosition = const.NSImageOnly +scanButton.keyEquivalent = '\\r' +addButton.action = Action(owner, 'popupAddDirectoryMenu:') +removeButton.action = Action(owner, 'removeSelectedDirectory') +loadResultsButton.action = Action(owner, 'popupLoadRecentMenu:') +scanButton.action = Action(None, 'startScanning:') + +directoryOutline.font = Font(FontFamily.System, FontSize.SmallSystem) +col = directoryOutline.addColumn('name', "Name", 100) +col.editable = False +col.autoResizable = True +col = directoryOutline.addColumn('state', "State", 85) +col.editable = True +col.autoResizable = False +col.dataCell = Popup(None, ["Normal", "Reference", "Excluded"]) +col.dataCell.controlSize = const.NSSmallControlSize + +for button in (addButton, removeButton): + button.width = 28 +for button in (loadResultsButton, scanButton): + button.width = 118 + +buttonLayout = HLayout(left=[addButton, removeButton], right=[loadResultsButton, scanButton]) +promptLabel.packToCorner(Pack.UpperLeft) +promptLabel.fill(Pack.Right) +directoryOutline.packRelativeTo(promptLabel, Pack.Below) +buttonLayout.packRelativeTo(directoryOutline, Pack.Below, margin=8) +directoryOutline.fill(Pack.LowerRight) + +promptLabel.setAnchor(Pack.UpperLeft, growX=True) +directoryOutline.setAnchor(Pack.UpperLeft, growX=True, growY=True) +buttonLayout.setAnchor(Pack.Below) diff --git a/cocoa/pe/ui/details_panel.py b/cocoa/pe/ui/details_panel.py index 0fbd2186..86da0fd6 100644 --- a/cocoa/pe/ui/details_panel.py +++ b/cocoa/pe/ui/details_panel.py @@ -50,25 +50,21 @@ for subSplit, label, image, spinner in sides: spinner.controlSize = const.NSSmallControlSize spinner.displayedWhenStopped = False - subSplit.ignoreMargin = True - label.packToCorner(Pack.UpperLeft) - label.fill(Pack.Right) + label.packToCorner(Pack.UpperLeft, margin=0) + label.fill(Pack.Right, margin=0) label.setAnchor(Pack.UpperLeft, growX=True) image.packRelativeTo(label, Pack.Below) - image.fill(Pack.Right) - image.fill(Pack.Below) + image.fill(Pack.LowerRight, margin=0) image.setAnchor(Pack.UpperLeft, growX=True, growY=True) spinner.y = label.y spinner.x = subSplit.width - 30 spinner.setAnchor(Pack.UpperRight) -result.ignoreMargin = True -table.packToCorner(Pack.UpperLeft) -table.fill(Pack.Right) +table.packToCorner(Pack.UpperLeft, margin=0) +table.fill(Pack.Right, margin=0) table.setAnchor(Pack.UpperLeft, growX=True) split.packRelativeTo(table, Pack.Below) -split.fill(Pack.Right) -split.fill(Pack.Below) +split.fill(Pack.LowerRight, margin=0) split.setAnchor(Pack.UpperLeft, growX=True, growY=True) diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index daafed7e..1d942538 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -47,7 +47,6 @@ CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDF6111EE561006618EA /* NSEventAdditions.m */; }; CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; }; CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; }; - CE81134D12E5CE4D00A36C80 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */; }; CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; }; CE81135012E5CE4D00A36C80 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; }; CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; }; @@ -85,6 +84,7 @@ CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3914C0B9050082545A /* HSSelectableList.m */; }; CEEF2A4114C0B9050082545A /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3B14C0B9050082545A /* HSTable.m */; }; CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; }; + CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */; }; CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; }; CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; }; CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F910FC9517500CD5728 /* ProgressController.m */; }; @@ -116,14 +116,12 @@ 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; }; 8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; - CE00BBBE14910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; CE00BBC114910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE00BBC314910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; - CE0564B414169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE0564B614169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; CE0564B814169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ResultWindow.xib; sourceTree = ""; }; CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; @@ -171,7 +169,6 @@ CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = ""; }; CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; - CE5A5CA215A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; CE5A5CA515A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE5A5CA715A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; sourceTree = ""; }; @@ -196,15 +193,12 @@ CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; }; CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; - CE7A6978146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = ""; }; CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; CE7A697B146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE7A697D146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; - CE81134512E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE81134B12E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE81135212E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CE81135312E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE81135512E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CE81135712E5CE6D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = ""; }; @@ -245,18 +239,15 @@ CEC3F8FB157668A300B26F0C /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = ""; }; CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; - CECFFF1D13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; - CED638DD14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = ""; }; CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; CED638E014B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CED638E214B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; - CED64CF9145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = ""; }; CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; CED64CFC145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CED64CFE145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = ""; }; @@ -280,7 +271,6 @@ CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IgnoreListDialog_UI.m; sourceTree = ""; }; CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; - CEECCD1014C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; CEECCD1314C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEECCD1514C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = ""; }; @@ -309,6 +299,8 @@ CEF27A9C1423EAD90048ADFA /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEF27A9D1423EAD90048ADFA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEF27A9E1423EAD90048ADFA /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = ""; }; + CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel_UI.h; sourceTree = ""; }; + CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel_UI.m; sourceTree = ""; }; CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; }; CEFC7F8A0FC9517500CD5728 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; }; CEFC7F8B0FC9517500CD5728 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; }; @@ -425,6 +417,8 @@ CE1D091314BE0C6400CA6B8C /* autogen */ = { isa = PBXGroup; children = ( + CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */, + CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */, CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */, CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */, CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */, @@ -532,7 +526,6 @@ CEEFC0CA10943849001F3A39 /* xib */ = { isa = PBXGroup; children = ( - CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */, CE81134612E5CE4D00A36C80 /* MainMenu.xib */, CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */, CE81135612E5CE6D00A36C80 /* Preferences.xib */, @@ -686,7 +679,6 @@ CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */, CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, - CE81134D12E5CE4D00A36C80 /* DirectoryPanel.xib in Resources */, CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */, CE81135012E5CE4D00A36C80 /* ResultWindow.xib in Resources */, CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */, @@ -771,6 +763,7 @@ CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */, CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */, CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */, + CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -801,23 +794,6 @@ path = /Users/hsoft/src/dupeguru/cocoalib/xib; sourceTree = ""; }; - CE81134412E5CE4D00A36C80 /* DirectoryPanel.xib */ = { - isa = PBXVariantGroup; - children = ( - CE81134512E5CE4D00A36C80 /* en */, - CE81135212E5CE6100A36C80 /* fr */, - CECFFF1D13CDF8D0003A4518 /* de */, - CE0564B414169DB100D3D907 /* zh_CN */, - CED64CF9145EF07700572B00 /* cs */, - CE7A6978146442160007D927 /* it */, - CE00BBBE14910C5E006A717C /* hy */, - CED638DD14B38CEC00B88D00 /* ru */, - CEECCD1014C6370000A2F3A0 /* uk */, - CE5A5CA215A283C200C4E461 /* pt_BR */, - ); - name = DirectoryPanel.xib; - sourceTree = SOURCE_ROOT; - }; CE81134612E5CE4D00A36C80 /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( From c34004ed9464d5dc9b6af54fa975b3bf5b68cf24 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Tue, 24 Jul 2012 11:31:18 -0400 Subject: [PATCH 09/33] xibless-ified PrioritizeDialog. --HG-- branch : xibless --- build.py | 1 + cocoa/base/PrioritizeDialog.h | 17 +- cocoa/base/PrioritizeDialog.m | 22 +- cocoa/base/en.lproj/Localizable.strings | 5 + cocoa/base/en.lproj/PrioritizeDialog.strings | 12 - cocoa/base/en.lproj/PrioritizeDialog.xib | 897 ------------------- cocoa/base/ui/directory_panel.py | 3 +- cocoa/base/ui/ignore_list_dialog.py | 2 +- cocoa/base/ui/prioritize_dialog.py | 50 ++ cocoa/se/dupeguru.xcodeproj/project.pbxproj | 36 +- 10 files changed, 84 insertions(+), 961 deletions(-) delete mode 100644 cocoa/base/en.lproj/PrioritizeDialog.strings delete mode 100644 cocoa/base/en.lproj/PrioritizeDialog.xib create mode 100644 cocoa/base/ui/prioritize_dialog.py diff --git a/build.py b/build.py index 06a304d2..bf0769f5 100644 --- a/build.py +++ b/build.py @@ -62,6 +62,7 @@ def build_xibless(edition): xibless.generate('cocoa/base/ui/deletion_options.py', 'cocoa/autogen/DeletionOptions_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/problem_dialog.py', 'cocoa/autogen/ProblemDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/directory_panel.py', 'cocoa/autogen/DirectoryPanel_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/prioritize_dialog.py', 'cocoa/autogen/PrioritizeDialog_UI', localizationTable='Localizable') def build_cocoa(edition, dev): build_xibless(edition) diff --git a/cocoa/base/PrioritizeDialog.h b/cocoa/base/PrioritizeDialog.h index d3c806e3..b3c5789d 100644 --- a/cocoa/base/PrioritizeDialog.h +++ b/cocoa/base/PrioritizeDialog.h @@ -15,20 +15,23 @@ http://www.hardcoded.net/licenses/bsd_license @interface PrioritizeDialog : NSWindowController { - IBOutlet NSPopUpButton *categoryPopUpView; - IBOutlet NSTableView *criteriaTableView; - IBOutlet NSTableView *prioritizationTableView; + NSPopUpButton *categoryPopUpView; + NSTableView *criteriaTableView; + NSTableView *prioritizationTableView; PyPrioritizeDialog *model; HSPopUpList *categoryPopUp; HSSelectableList *criteriaList; PrioritizeList *prioritizationList; } + +@property (readwrite, retain) NSPopUpButton *categoryPopUpView; +@property (readwrite, retain) NSTableView *criteriaTableView; +@property (readwrite, retain) NSTableView *prioritizationTableView; + - (id)initWithApp:(PyDupeGuru *)aApp; - (PyPrioritizeDialog *)model; -- (IBAction)addSelected:(id)sender; -- (IBAction)removeSelected:(id)sender; -- (IBAction)ok:(id)sender; -- (IBAction)cancel:(id)sender; +- (void)ok; +- (void)cancel; @end; \ No newline at end of file diff --git a/cocoa/base/PrioritizeDialog.m b/cocoa/base/PrioritizeDialog.m index 935c5f0b..6214f909 100644 --- a/cocoa/base/PrioritizeDialog.m +++ b/cocoa/base/PrioritizeDialog.m @@ -7,14 +7,20 @@ http://www.hardcoded.net/licenses/bsd_license */ #import "PrioritizeDialog.h" +#import "PrioritizeDialog_UI.h" #import "HSPyUtil.h" @implementation PrioritizeDialog + +@synthesize categoryPopUpView; +@synthesize criteriaTableView; +@synthesize prioritizationTableView; + - (id)initWithApp:(PyDupeGuru *)aApp { self = [super initWithWindowNibName:@"PrioritizeDialog"]; - [self window]; model = [[PyPrioritizeDialog alloc] initWithApp:[aApp pyRef]]; + [self setWindow:createPrioritizeDialog_UI(self)]; categoryPopUp = [[HSPopUpList alloc] initWithPyRef:[[self model] categoryList] popupView:categoryPopUpView]; criteriaList = [[HSSelectableList alloc] initWithPyRef:[[self model] criteriaList] tableView:criteriaTableView]; prioritizationList = [[PrioritizeList alloc] initWithPyRef:[[self model] prioritizationList] tableView:prioritizationTableView]; @@ -36,23 +42,13 @@ http://www.hardcoded.net/licenses/bsd_license return (PyPrioritizeDialog *)model; } -- (IBAction)addSelected:(id)sender -{ - [[self model] addSelected]; -} - -- (IBAction)removeSelected:(id)sender -{ - [[self model] removeSelected]; -} - -- (IBAction)ok:(id)sender +- (void)ok { [NSApp stopModal]; [self close]; } -- (IBAction)cancel:(id)sender +- (void)cancel { [NSApp abortModal]; [self close]; diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 7e46a5ac..3a27d908 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -62,3 +62,8 @@ "Excluded" = "Excluded"; "Select folders to scan and press \"Scan\"." = "Select folders to scan and press \"Scan\"."; "Load Results" = "Load Results"; + +/* Prioritize Dialog */ +"Re-Prioritize duplicates" = "Re-Prioritize duplicates"; +"Ok" = "Ok"; +"Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information." = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information."; diff --git a/cocoa/base/en.lproj/PrioritizeDialog.strings b/cocoa/base/en.lproj/PrioritizeDialog.strings deleted file mode 100644 index 82e26868..00000000 --- a/cocoa/base/en.lproj/PrioritizeDialog.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "NSWindow"; title = "Re-Prioritize duplicates"; ObjectID = "1"; */ -"1.title" = "Re-Prioritize duplicates"; - -/* Class = "NSButtonCell"; title = "Ok"; ObjectID = "37"; */ -"37.title" = "Ok"; - -/* Class = "NSButtonCell"; title = "Cancel"; ObjectID = "39"; */ -"39.title" = "Cancel"; - -/* Class = "NSTextFieldCell"; title = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information."; ObjectID = "41"; */ -"41.title" = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information."; diff --git a/cocoa/base/en.lproj/PrioritizeDialog.xib b/cocoa/base/en.lproj/PrioritizeDialog.xib deleted file mode 100644 index 1785df2c..00000000 --- a/cocoa/base/en.lproj/PrioritizeDialog.xib +++ /dev/null @@ -1,897 +0,0 @@ - - - - 1060 - 11D50 - 2182 - 1138.32 - 568.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSTextField - NSPopUpButton - NSScroller - NSButton - NSMenu - NSScrollView - NSTextFieldCell - NSButtonCell - NSTableView - NSCustomObject - NSView - NSWindowTemplate - NSPopUpButtonCell - NSTableColumn - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - PrioritizeDialog - - - FirstResponder - - - NSApplication - - - 9 - 2 - {{196, 240}, {609, 401}} - 1618477056 - Re-Prioritize duplicates - NSWindow - - - - - 256 - - - - 268 - {{17, 298}, {268, 26}} - - - - _NS:179 - YES - - -2076049856 - 2048 - - LucidaGrande - 13 - 1044 - - _NS:179 - - 109199615 - 129 - - - 400 - 75 - - YES - - OtherViews - - - - -1 - 1 - YES - YES - 2 - - - - - 276 - - - - 2304 - - - - 256 - {260, 233} - - - - _NS:1197 - YES - - - -2147483392 - {{224, 0}, {16, 17}} - _NS:1202 - - - - 257 - 40 - 1000 - - 75628096 - 2048 - - - LucidaGrande - 11 - 3100 - - - 3 - MC4zMzMzMzI5ODU2AA - - - 6 - System - headerTextColor - - 3 - MAA - - - - - 337772096 - 2560 - - - - - 6 - System - controlBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - - - 3 - YES - YES - - - - 3 - 2 - - 3 - MQA - - - 6 - System - gridColor - - 3 - MC41AA - - - 17 - 306184192 - - - 4 - 15 - 0 - NO - 0 - 1 - - - {{1, 1}, {260, 233}} - - - - _NS:1195 - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - - _NS:1214 - - _doScroller: - 0.9925373134328358 - - - - -2147483392 - {{1, 119}, {223, 15}} - - - - _NS:1216 - 1 - - _doScroller: - 0.99581589958159 - - - {{20, 60}, {262, 235}} - - - - _NS:1193 - 133682 - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 274 - - - - 2304 - - - - 256 - {248, 260} - - - - _NS:1197 - YES - - - -2147483392 - {{224, 0}, {16, 17}} - _NS:1202 - - - - 245 - 40 - 1000 - - 75628096 - 2048 - - - - 3 - MC4zMzMzMzI5ODU2AA - - - - - 337772096 - 2048 - - - - - - - 3 - YES - YES - - - - 3 - 2 - - - 17 - 306184192 - - - 4 - 15 - 0 - NO - 0 - 1 - - - {{1, 1}, {248, 260}} - - - - _NS:1195 - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - - _NS:1214 - - _doScroller: - 0.9925373134328358 - - - - -2147483392 - {{1, 119}, {223, 15}} - - - - _NS:1216 - 1 - - _doScroller: - 0.99581589958159 - - - {{339, 60}, {250, 262}} - - - - _NS:1193 - 133682 - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 268 - {{284, 186}, {53, 32}} - - - - _NS:161 - YES - - 67239424 - 134217728 - --> - - _NS:161 - - -2038284033 - 129 - - - 200 - 25 - - - - - 268 - {{284, 160}, {53, 32}} - - - - _NS:161 - YES - - 67239424 - 134217728 - <-- - - _NS:161 - - -2038284033 - 129 - - - 200 - 25 - - - - - 289 - {{495, 12}, {100, 32}} - - - - _NS:161 - YES - - 67239424 - 134217728 - Ok - - _NS:161 - - -2038284033 - 129 - - DQ - 200 - 25 - - - - - 289 - {{395, 12}, {100, 32}} - - - - _NS:161 - YES - - 67239424 - 134217728 - Cancel - - _NS:161 - - -2038284033 - 129 - - Gw - 200 - 25 - - - - - 268 - {{17, 330}, {575, 51}} - - - - _NS:3936 - YES - - 67239424 - 4194304 - Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information. - - _NS:3936 - - - 6 - System - controlColor - - - - - - - {609, 401} - - - - - {{0, 0}, {1920, 1058}} - {10000000000000, 10000000000000} - YES - - - - - - - categoryPopUpView - - - - 10 - - - - criteriaTableView - - - - 20 - - - - prioritizationTableView - - - - 33 - - - - addSelected: - - - - 34 - - - - removeSelected: - - - - 35 - - - - cancel: - - - - 42 - - - - ok: - - - - 43 - - - - window - - - - 44 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - - 2 - - - - - - - - - - - - - - - 3 - - - - - - - - 4 - - - - - - - - 5 - - - - - - 11 - - - - - - - - - - 12 - - - - - 14 - - - - - 15 - - - - - - - - 16 - - - - - - - - 19 - - - - - 21 - - - - - - - - 22 - - - - - 23 - - - - - - - - 24 - - - - - 25 - - - - - - - - - - 26 - - - - - - - - 27 - - - - - 28 - - - - - 29 - - - - - - - - 30 - - - - - 36 - - - - - - - - 37 - - - - - 38 - - - - - - - - 39 - - - - - 40 - - - - - - - - 41 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{357, 418}, {480, 270}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 44 - - - - - PrioritizeDialog - NSWindowController - - id - id - id - id - - - - addSelected: - id - - - cancel: - id - - - ok: - id - - - removeSelected: - id - - - - NSPopUpButton - NSTableView - NSTableView - - - - categoryPopUpView - NSPopUpButton - - - criteriaTableView - NSTableView - - - prioritizationTableView - NSTableView - - - - IBProjectSource - ./Classes/PrioritizeDialog.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - diff --git a/cocoa/base/ui/directory_panel.py b/cocoa/base/ui/directory_panel.py index 41e641eb..7652c6d5 100644 --- a/cocoa/base/ui/directory_panel.py +++ b/cocoa/base/ui/directory_panel.py @@ -47,12 +47,13 @@ for button in (addButton, removeButton): for button in (loadResultsButton, scanButton): button.width = 118 -buttonLayout = HLayout(left=[addButton, removeButton], right=[loadResultsButton, scanButton]) +buttonLayout = HLayout([addButton, removeButton, None, loadResultsButton, scanButton]) promptLabel.packToCorner(Pack.UpperLeft) promptLabel.fill(Pack.Right) directoryOutline.packRelativeTo(promptLabel, Pack.Below) buttonLayout.packRelativeTo(directoryOutline, Pack.Below, margin=8) directoryOutline.fill(Pack.LowerRight) +buttonLayout.fill(Pack.Right) promptLabel.setAnchor(Pack.UpperLeft, growX=True) directoryOutline.setAnchor(Pack.UpperLeft, growX=True, growY=True) diff --git a/cocoa/base/ui/ignore_list_dialog.py b/cocoa/base/ui/ignore_list_dialog.py index a6e355d5..60ad46ab 100644 --- a/cocoa/base/ui/ignore_list_dialog.py +++ b/cocoa/base/ui/ignore_list_dialog.py @@ -21,7 +21,7 @@ table.allowsMultipleSelection = True removeSelectedButton.width = 142 clearButton.width = 142 closeButton.width = 84 -buttonLayout = HLayout(left=[removeSelectedButton, clearButton], right=[closeButton]) +buttonLayout = HLayout([removeSelectedButton, clearButton, None, closeButton]) buttonLayout.packToCorner(Pack.LowerLeft) buttonLayout.fill(Pack.Right) buttonLayout.setAnchor(Pack.Below) diff --git a/cocoa/base/ui/prioritize_dialog.py b/cocoa/base/ui/prioritize_dialog.py new file mode 100644 index 00000000..ac5c18cc --- /dev/null +++ b/cocoa/base/ui/prioritize_dialog.py @@ -0,0 +1,50 @@ +ownerclass = 'PrioritizeDialog' +ownerimport = 'PrioritizeDialog.h' + +result = Window(610, 400, "Re-Prioritize duplicates") +promptLabel = Label(result, "Add criteria to the right box and click OK to send the dupes that " + "correspond the best to these criteria to their respective group's reference position. Read " + "the help file for more information.") +categoryPopup = Popup(result) +criteriaTable = ListView(result) +prioritizationTable = ListView(result) +addButton = Button(result, "-->") +removeButton = Button(result, "<--") +okButton = Button(result, "Ok") +cancelButton = Button(result, "Cancel") + +owner.categoryPopUpView = categoryPopup +owner.criteriaTableView = criteriaTable +owner.prioritizationTableView = prioritizationTable + +result.canMinimize = False +result.canClose = False +result.minSize = Size(result.width, result.height) +addButton.action = Action(owner.model, 'addSelected') +removeButton.action = Action(owner.model, 'removeSelected') +okButton.action = Action(owner, 'ok') +cancelButton.action = Action(owner, 'cancel') +okButton.keyEquivalent = '\\r' +cancelButton.keyEquivalent = '\\e' + +promptLabel.height *= 3 # 3 lines + +leftLayout = VLayout([categoryPopup, criteriaTable], width=262, filler=criteriaTable) +middleLayout = VLayout([addButton, removeButton], width=41) +buttonLayout = HLayout([None, cancelButton, okButton]) + +promptLabel.packToCorner(Pack.UpperLeft) +promptLabel.fill(Pack.Right) +leftLayout.packRelativeTo(promptLabel, Pack.Below) +middleLayout.packRelativeTo(leftLayout, Pack.Right, align=Pack.Above) +prioritizationTable.packRelativeTo(middleLayout, Pack.Right, align=Pack.Above) +buttonLayout.packRelativeTo(leftLayout, Pack.Below) +buttonLayout.fill(Pack.Right) +leftLayout.fill(Pack.Below) +middleLayout.packRelativeTo(leftLayout, Pack.Right, align=Pack.Middle) +prioritizationTable.fill(Pack.Below, goal=leftLayout.y) +prioritizationTable.fill(Pack.Right) + +promptLabel.setAnchor(Pack.UpperLeft, growX=True) +prioritizationTable.setAnchor(Pack.UpperLeft, growX=True, growY=True) +buttonLayout.setAnchor(Pack.Below) diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 1d942538..5dd2dba2 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -55,13 +55,13 @@ CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8C25CB15B9FCC100D44175 /* cocoalib.strings */; }; CE91F216113BC22D0010360B /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE91F214113BC22D0010360B /* StatsLabel.m */; }; CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */; }; - CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */; }; CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22C14C080CF005C31FD /* PyGUIObject.m */; }; CE9FC23014C08622005C31FD /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22F14C08622005C31FD /* PyTable.m */; }; CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC23214C0866F005C31FD /* PyResultTable.m */; }; CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; }; CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */; }; CEB2AF5614C49AC800F907A9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB2AF5514C49AC800F907A9 /* main.m */; }; + CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */; }; CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBCE2D71573FE49000402E1 /* HSPyUtil.m */; }; CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FB157668A300B26F0C /* DeletionOptions.m */; }; CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */; }; @@ -117,7 +117,6 @@ 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; 8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; - CE00BBC114910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE00BBC314910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; @@ -170,7 +169,6 @@ CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; - CE5A5CA515A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE5A5CA715A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; sourceTree = ""; }; CE5A5CB015A283D700C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; }; @@ -194,7 +192,6 @@ CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; - CE7A697B146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE7A697D146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; @@ -221,7 +218,6 @@ CE91F214113BC22D0010360B /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; }; CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = ""; }; CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = ""; }; - CE9777D0141F8CB400C13FB5 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CE9FC22B14C080CF005C31FD /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = ""; }; CE9FC22C14C080CF005C31FD /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = ""; }; CE9FC22E14C08622005C31FD /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = ""; }; @@ -232,6 +228,8 @@ CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = ""; }; CEB2AF5514C49AC800F907A9 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = ""; }; CEB57990146ADC5100EDF7D7 /* HSConsts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSConsts.h; path = ../../cocoalib/HSConsts.h; sourceTree = ""; }; + CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrioritizeDialog_UI.h; sourceTree = ""; }; + CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PrioritizeDialog_UI.m; sourceTree = ""; }; CEBCE2D61573FE49000402E1 /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = ""; }; CEBCE2D71573FE49000402E1 /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = ""; }; CEBCE2DA1573FEBF000402E1 /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = ""; }; @@ -243,13 +241,11 @@ CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; - CED638E014B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CED638E214B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; - CED64CFC145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CED64CFE145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = ""; }; CED64D06145EF16300572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = ""; }; CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; @@ -272,7 +268,6 @@ CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; - CEECCD1314C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEECCD1514C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = ""; }; CEECCD1D14C6370C00A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; @@ -296,9 +291,6 @@ CEEF2A4214C0BB430082545A /* Worker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Worker.h; path = ../../cocoalib/Worker.h; sourceTree = ""; }; CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; }; CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; }; - CEF27A9C1423EAD90048ADFA /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CEF27A9D1423EAD90048ADFA /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CEF27A9E1423EAD90048ADFA /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = ""; }; CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel_UI.h; sourceTree = ""; }; CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel_UI.m; sourceTree = ""; }; CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; }; @@ -417,6 +409,8 @@ CE1D091314BE0C6400CA6B8C /* autogen */ = { isa = PBXGroup; children = ( + CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */, + CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */, CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */, CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */, CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */, @@ -529,7 +523,6 @@ CE81134612E5CE4D00A36C80 /* MainMenu.xib */, CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */, CE81135612E5CE6D00A36C80 /* Preferences.xib */, - CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */, ); name = xib; sourceTree = ""; @@ -685,7 +678,6 @@ CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */, CE31819D13D85D9B00B6D649 /* about.xib in Resources */, CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */, - CE9777D1141F8CB400C13FB5 /* PrioritizeDialog.xib in Resources */, CEA175CA1461E8E600776591 /* locale in Resources */, CE18005114BDD87B001B6329 /* py in Resources */, CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */, @@ -764,6 +756,7 @@ CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */, CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */, CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */, + CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -879,23 +872,6 @@ name = cocoalib.strings; sourceTree = ""; }; - CE9777CF141F8CB400C13FB5 /* PrioritizeDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE9777D0141F8CB400C13FB5 /* en */, - CEF27A9C1423EAD90048ADFA /* de */, - CEF27A9D1423EAD90048ADFA /* fr */, - CEF27A9E1423EAD90048ADFA /* zh_CN */, - CED64CFC145EF07700572B00 /* cs */, - CE7A697B146442160007D927 /* it */, - CE00BBC114910C5E006A717C /* hy */, - CED638E014B38CEC00B88D00 /* ru */, - CEECCD1314C6370000A2F3A0 /* uk */, - CE5A5CA515A283C200C4E461 /* pt_BR */, - ); - name = PrioritizeDialog.xib; - sourceTree = ""; - }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ From 2d0facdb1473c8db9e3613ff9d0c598be13aaed9 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Thu, 26 Jul 2012 11:24:44 -0400 Subject: [PATCH 10/33] Fixed a crash on fresh repo building. --HG-- branch : xibless --- build.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build.py b/build.py index bf0769f5..a2acf0c7 100644 --- a/build.py +++ b/build.py @@ -155,7 +155,10 @@ def build_localizations(ui, edition): if edition_folder == 'base': loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings')) pofile = op.join('cocoalib', 'locale', lang, 'LC_MESSAGES', 'cocoalib.po') - loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), op.join('cocoalib', lang + '.lproj', 'cocoalib.strings')) + cocoalib_dest = op.join('cocoalib', lang + '.lproj', 'cocoalib.strings') + if not op.exists(op.dirname(cocoalib_dest)): + os.makedirs(op.dirname(cocoalib_dest)) + loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), cocoalib_dest) build_all_cocoa_locs(op.join('cocoa', 'base')) build_all_cocoa_locs(op.join('cocoa', edition)) elif ui == 'qt': From b74e33f4b0c89e422041e1a8a173f02af02d99e8 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Thu, 26 Jul 2012 12:18:39 -0400 Subject: [PATCH 11/33] Began designing a xibless result window. The basics are there, but there are still many things missing. --HG-- branch : xibless --- build.py | 1 + cocoa/base/ResultWindow.h | 17 +++-- cocoa/base/ResultWindow.m | 11 ++- cocoa/base/ui/result_window.py | 85 +++++++++++++++++++++ cocoa/se/dupeguru.xcodeproj/project.pbxproj | 6 ++ 5 files changed, 114 insertions(+), 6 deletions(-) create mode 100644 cocoa/base/ui/result_window.py diff --git a/build.py b/build.py index a2acf0c7..df48bf3e 100644 --- a/build.py +++ b/build.py @@ -63,6 +63,7 @@ def build_xibless(edition): xibless.generate('cocoa/base/ui/problem_dialog.py', 'cocoa/autogen/ProblemDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/directory_panel.py', 'cocoa/autogen/DirectoryPanel_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/prioritize_dialog.py', 'cocoa/autogen/PrioritizeDialog_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/result_window.py', 'cocoa/autogen/ResultWindow_UI', localizationTable='Localizable') def build_cocoa(edition, dev): build_xibless(edition) diff --git a/cocoa/base/ResultWindow.h b/cocoa/base/ResultWindow.h index 28d6041b..59772542 100644 --- a/cocoa/base/ResultWindow.h +++ b/cocoa/base/ResultWindow.h @@ -20,11 +20,11 @@ http://www.hardcoded.net/licenses/bsd_license @interface ResultWindowBase : NSWindowController { @protected - IBOutlet NSSegmentedControl *optionsSwitch; - IBOutlet NSToolbarItem *optionsToolbarItem; - IBOutlet HSTableView *matches; - IBOutlet NSTextField *stats; - IBOutlet NSSearchField *filterField; + NSSegmentedControl *optionsSwitch; + NSToolbarItem *optionsToolbarItem; + HSTableView *matches; + NSTextField *stats; + NSSearchField *filterField; AppDelegateBase *app; PyDupeGuru *model; @@ -35,6 +35,13 @@ http://www.hardcoded.net/licenses/bsd_license DeletionOptions *deletionOptions; QLPreviewPanel* previewPanel; } + +@property (readwrite, retain) NSSegmentedControl *optionsSwitch; +@property (readwrite, retain) NSToolbarItem *optionsToolbarItem; +@property (readwrite, retain) HSTableView *matches; +@property (readwrite, retain) NSTextField *stats; +@property (readwrite, retain) NSSearchField *filterField; + - (id)initWithParentApp:(AppDelegateBase *)app; /* Virtual */ diff --git a/cocoa/base/ResultWindow.m b/cocoa/base/ResultWindow.m index c0a0e6d8..44c6dd13 100644 --- a/cocoa/base/ResultWindow.m +++ b/cocoa/base/ResultWindow.m @@ -7,6 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license */ #import "ResultWindow.h" +#import "ResultWindow_UI.h" #import "Dialogs.h" #import "ProgressController.h" #import "Utils.h" @@ -15,11 +16,19 @@ http://www.hardcoded.net/licenses/bsd_license #import "PrioritizeDialog.h" @implementation ResultWindowBase + +@synthesize optionsSwitch; +@synthesize optionsToolbarItem; +@synthesize matches; +@synthesize stats; +@synthesize filterField; + - (id)initWithParentApp:(AppDelegateBase *)aApp; { - self = [super initWithWindowNibName:@"ResultWindow"]; + self = [super initWithWindow:nil]; app = aApp; model = [app model]; + [self setWindow:createResultWindow_UI(self)]; [[self window] setTitle:fmt(@"%@ Results", [model appName])]; columnsMenu = [app columnsMenu]; /* Put a cute iTunes-like bottom bar */ diff --git a/cocoa/base/ui/result_window.py b/cocoa/base/ui/result_window.py new file mode 100644 index 00000000..5bb0e051 --- /dev/null +++ b/cocoa/base/ui/result_window.py @@ -0,0 +1,85 @@ +wnerclass = 'ResultWindow' +ownerimport = 'ResultWindow.h' + +result = Window(557, 400, "dupeGuru Results") +toolbar = result.createToolbar('ResultsToolbar') +table = TableView(result) +table.OBJC_CLASS = 'HSTableView' +statsLabel = Label(result, "Hello") +contextMenu = Menu("") + +#Setup toolbar items +toolbar.displayMode = const.NSToolbarDisplayModeIconOnly +directoriesToolItem = toolbar.addItem('Directories', "Directories", image='folder32') +actionToolItem = toolbar.addItem('Action', "Action") +filterToolItem = toolbar.addItem('Filter', "Filter") +optionsToolItem = toolbar.addItem('Options', "Options") +quicklookToolItem = toolbar.addItem('QuickLook', "Quick Look") +toolbar.defaultItems = [actionToolItem, optionsToolItem, quicklookToolItem, directoriesToolItem, + toolbar.flexibleSpace(), filterToolItem] +actionPopup = Popup(None) +actionPopup.pullsdown = True +actionPopup.bezelStyle = const.NSTexturedRoundedBezelStyle +item = actionPopup.menu.addItem("") # First item is invisible +item.hidden = True +item.image = 'NSActionTemplate' +actionPopup.width = 44 +actionToolItem.view = actionPopup +filterField = SearchField(None, "Filter") +filterField.action = Action(owner, 'filter:') +filterToolItem.view = filterField +filterToolItem.minSize = Size(80, 22) +filterToolItem.maxSize = Size(300, 22) +quickLookButton = Button(None, "") +quickLookButton.bezelStyle = const.NSTexturedRoundedBezelStyle +quickLookButton.image = 'NSQuickLookTemplate' +quickLookButton.width = 44 +quickLookButton.action = Action(owner, 'toggleQuicklookPanel:') +quicklookToolItem.view = quickLookButton +optionsSegments = SegmentedControl(None) +optionsSegments.segmentStyle = const.NSSegmentStyleCapsule +optionsSegments.trackingMode = const.NSSegmentSwitchTrackingSelectAny +optionsSegments.font = Font(FontFamily.System, 11) +optionsSegments.addSegment("Details", 57) +optionsSegments.addSegment("Dupes Only", 82) +optionsSegments.addSegment("Delta", 48) +optionsSegments.action = Action(owner, 'changeOptions:') +optionsToolItem.view = optionsSegments + +# Popuplate menus +actionPopup.menu.addItem("Send Marked to Trash...", action=Action(owner, 'trashMarked:')) +actionPopup.menu.addItem("Move Marked to...", action=Action(owner, 'moveMarked:')) +actionPopup.menu.addItem("Copy Marked to...", action=Action(owner, 'moveMarked:')) +actionPopup.menu.addItem("Remove Marked from Results", action=Action(owner, 'removeMarked:')) +actionPopup.menu.addSeparator() +for menu in (actionPopup.menu, contextMenu): + menu.addItem("Remove Selected from Results", action=Action(owner, 'removeSelected:')) + menu.addItem("Add Selected to Ignore List", action=Action(owner, 'ignoreSelected:')) + menu.addItem("Make Selected Reference", action=Action(owner, 'switchSelected:')) + menu.addSeparator() + menu.addItem("Open Selected with Default Application", action=Action(owner, 'openSelected:')) + menu.addItem("Reveal Selected in Finder", action=Action(owner, 'revealSelected:')) + menu.addItem("Rename Selected", action=Action(owner, 'renameSelected:')) + +# Doing connections +owner.filterField = filterField +owner.matches = table +owner.optionsSwitch = optionsSegments +owner.optionsToolbarItem = optionsToolItem +owner.stats = statsLabel + +# Rest of the setup +result.minSize = Size(340, 340) +result.autosaveName = 'MainWindow' +statsLabel.alignment = TextAlignment.Center +table.alternatingRows = True +table.menu = contextMenu +table.setAnchor(Pack.UpperLeft, growX=True, growY=True) +statsLabel.setAnchor(Pack.LowerLeft, growX=True) + +# Layout +table.packToCorner(Pack.UpperLeft, margin=0) +table.fill(Pack.Right, margin=0) +statsLabel.packRelativeTo(table, Pack.Below, margin=6) +statsLabel.fill(Pack.Right, margin=0) +table.fill(Pack.Below, margin=6) diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 5dd2dba2..36805a07 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -71,6 +71,7 @@ CEE49F4315B9F4E1002BD78B /* HSErrorReportWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */; }; CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */; }; CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */; }; + CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */; }; CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; }; CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */; }; CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; @@ -261,6 +262,8 @@ CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder_UI.m; path = ../../cocoalib/autogen/HSFairwareReminder_UI.m; sourceTree = ""; }; CEE49F3E15B9F4E1002BD78B /* ProgressController_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController_UI.h; path = ../../cocoalib/autogen/ProgressController_UI.h; sourceTree = ""; }; CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController_UI.m; path = ../../cocoalib/autogen/ProgressController_UI.m; sourceTree = ""; }; + CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultWindow_UI.h; sourceTree = ""; }; + CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultWindow_UI.m; sourceTree = ""; }; CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; }; CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IgnoreListDialog_UI.h; sourceTree = ""; }; @@ -409,6 +412,8 @@ CE1D091314BE0C6400CA6B8C /* autogen */ = { isa = PBXGroup; children = ( + CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */, + CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */, CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */, CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */, CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */, @@ -757,6 +762,7 @@ CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */, CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */, CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */, + CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; From 1017e3c730d1789554f7d27fe562518fd31845d0 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Thu, 26 Jul 2012 12:48:47 -0400 Subject: [PATCH 12/33] Fixed dupeGuru building under virtualenv, which mistakenly didn't include distutils.sysconfig during the dependencies collection phase. --HG-- branch : xibless --- cocoa/me/dg_cocoa.py | 4 ++++ cocoa/pe/dg_cocoa.py | 3 +++ cocoa/se/dg_cocoa.py | 6 +++++- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/cocoa/me/dg_cocoa.py b/cocoa/me/dg_cocoa.py index 6d1a83d8..dbf7572f 100644 --- a/cocoa/me/dg_cocoa.py +++ b/cocoa/me/dg_cocoa.py @@ -11,3 +11,7 @@ from cocoa.inter import PySelectableList, PyColumns, PyTable from inter.all import * from inter.app_me import PyDupeGuru + +# When built under virtualenv, the dependency collector misses this module, so we have to force it +# to see the module. +import distutils.sysconfig \ No newline at end of file diff --git a/cocoa/pe/dg_cocoa.py b/cocoa/pe/dg_cocoa.py index f70d5f80..3fa05668 100644 --- a/cocoa/pe/dg_cocoa.py +++ b/cocoa/pe/dg_cocoa.py @@ -12,3 +12,6 @@ from cocoa.inter import PySelectableList, PyColumns, PyTable from inter.all import * from inter.app_pe import PyDupeGuru +# When built under virtualenv, the dependency collector misses this module, so we have to force it +# to see the module. +import distutils.sysconfig \ No newline at end of file diff --git a/cocoa/se/dg_cocoa.py b/cocoa/se/dg_cocoa.py index 59aaae07..1c4ae162 100644 --- a/cocoa/se/dg_cocoa.py +++ b/cocoa/se/dg_cocoa.py @@ -10,4 +10,8 @@ install_gettext_trans_under_cocoa() from cocoa.inter import PySelectableList, PyColumns, PyTable from inter.all import * -from inter.app_se import PyDupeGuru \ No newline at end of file +from inter.app_se import PyDupeGuru + +# When built under virtualenv, the dependency collector misses this module, so we have to force it +# to see the module. +import distutils.sysconfig \ No newline at end of file From b7e7e67c99570dc017550684e70474c9ff9dec86 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Thu, 26 Jul 2012 16:33:12 -0400 Subject: [PATCH 13/33] Tweaked match table settings and bindings in results_window xibless UI. --HG-- branch : xibless --- cocoa/base/ui/result_window.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cocoa/base/ui/result_window.py b/cocoa/base/ui/result_window.py index 5bb0e051..39d4443f 100644 --- a/cocoa/base/ui/result_window.py +++ b/cocoa/base/ui/result_window.py @@ -67,6 +67,7 @@ owner.matches = table owner.optionsSwitch = optionsSegments owner.optionsToolbarItem = optionsToolItem owner.stats = statsLabel +table.bind('rowHeight', defaults, 'values.TableFontSize', valueTransformer='vtRowHeightOffset') # Rest of the setup result.minSize = Size(340, 340) @@ -74,6 +75,13 @@ result.autosaveName = 'MainWindow' statsLabel.alignment = TextAlignment.Center table.alternatingRows = True table.menu = contextMenu +table.allowsColumnReordering = True +table.allowsColumnResizing = True +table.allowsColumnSelection = False +table.allowsEmptySelection = False +table.allowsMultipleSelection = True +table.allowsTypeSelect = True +table.gridStyleMask = const.NSTableViewSolidHorizontalGridLineMask table.setAnchor(Pack.UpperLeft, growX=True, growY=True) statsLabel.setAnchor(Pack.LowerLeft, growX=True) From 79e6020982a6b5db2d3f50c0de9fe28b7b3f5481 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Fri, 27 Jul 2012 09:02:03 -0400 Subject: [PATCH 14/33] Tweaked the result window xibless file and removed the old results XIB. --HG-- branch : xibless --- cocoa/base/en.lproj/Localizable.strings | 27 + cocoa/base/en.lproj/ResultWindow.strings | 99 -- cocoa/base/en.lproj/ResultWindow.xib | 1782 ------------------- cocoa/base/ui/result_window.py | 9 +- cocoa/se/dupeguru.xcodeproj/project.pbxproj | 30 - 5 files changed, 33 insertions(+), 1914 deletions(-) delete mode 100644 cocoa/base/en.lproj/ResultWindow.strings delete mode 100644 cocoa/base/en.lproj/ResultWindow.xib diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 3a27d908..3f1330cd 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -67,3 +67,30 @@ "Re-Prioritize duplicates" = "Re-Prioritize duplicates"; "Ok" = "Ok"; "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information." = "Add criteria to the right box and click OK to send the dupes that correspond the best to these criteria to their respective group's reference position. Read the help file for more information."; + +/* Results Window */ +"dupeGuru Results" = "dupeGuru Results"; +"Options" = "Options"; +"Filter" = "Filter"; +"Action" = "Action"; +"Directories" = "Directories"; +"Send Marked to Trash..." = "Send Marked to Trash..."; +"Move Marked to..." = "Move Marked to..."; +"Copy Marked to..." = "Copy Marked to..."; +"Remove Marked from Results" = "Remove Marked from Results"; +"Remove Selected from Results" = "Remove Selected from Results"; +"Add Selected to Ignore List" = "Add Selected to Ignore List"; +"Make Selected Reference" = "Make Selected Reference"; +"Open Selected with Default Application" = "Open Selected with Default Application"; +"Reveal Selected in Finder" = "Reveal Selected in Finder"; +"Rename Selected" = "Rename Selected"; +"Details" = "Details"; +"Dupes Only" = "Dupes Only"; +"Delta" = "Delta"; +"Add Selected to Ignore List" = "Add Selected to Ignore List"; +"Rename Selected" = "Rename Selected"; +"Remove Selected from Results" = "Remove Selected from Results"; +"Make Selected Reference" = "Make Selected Reference"; +"Reveal Selected in Finder" = "Reveal Selected in Finder"; +"Open Selected with Default Application" = "Open Selected with Default Application"; +"Quick Look" = "Quick Look"; diff --git a/cocoa/base/en.lproj/ResultWindow.strings b/cocoa/base/en.lproj/ResultWindow.strings deleted file mode 100644 index f91ba4a5..00000000 --- a/cocoa/base/en.lproj/ResultWindow.strings +++ /dev/null @@ -1,99 +0,0 @@ - -/* Class = "NSWindow"; title = "dupeGuru Results"; ObjectID = "1"; */ -"1.title" = "dupeGuru Results"; - -/* Class = "NSTextFieldCell"; title = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; ObjectID = "6"; */ -"6.title" = "Marked: 0 files, 0 B. Total: 0 files, 0 B."; - -/* Class = "NSToolbarItem"; label = "Options"; ObjectID = "15"; */ -"15.label" = "Options"; - -/* Class = "NSToolbarItem"; paletteLabel = "Options"; ObjectID = "15"; */ -"15.paletteLabel" = "Options"; - -/* Class = "NSToolbarItem"; label = "Filter"; ObjectID = "16"; */ -"16.label" = "Filter"; - -/* Class = "NSToolbarItem"; paletteLabel = "Filter"; ObjectID = "16"; */ -"16.paletteLabel" = "Filter"; - -/* Class = "NSToolbarItem"; label = "Action"; ObjectID = "17"; */ -"17.label" = "Action"; - -/* Class = "NSToolbarItem"; paletteLabel = "Action"; ObjectID = "17"; */ -"17.paletteLabel" = "Action"; - -/* Class = "NSToolbarItem"; label = "Directories"; ObjectID = "19"; */ -"19.label" = "Directories"; - -/* Class = "NSToolbarItem"; paletteLabel = "Directories"; ObjectID = "19"; */ -"19.paletteLabel" = "Directories"; - -/* Class = "NSMenuItem"; title = "Send Marked to Trash..."; ObjectID = "29"; */ -"29.title" = "Send Marked to Trash..."; - -/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "30"; */ -"30.title" = "Move Marked to..."; - -/* Class = "NSMenuItem"; title = "Copy Marked to..."; ObjectID = "31"; */ -"31.title" = "Copy Marked to..."; - -/* Class = "NSMenuItem"; title = "Remove Marked from Results"; ObjectID = "32"; */ -"32.title" = "Remove Marked from Results"; - -/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "34"; */ -"34.title" = "Remove Selected from Results"; - -/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "35"; */ -"35.title" = "Add Selected to Ignore List"; - -/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "36"; */ -"36.title" = "Make Selected Reference"; - -/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "38"; */ -"38.title" = "Open Selected with Default Application"; - -/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "39"; */ -"39.title" = "Reveal Selected in Finder"; - -/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "40"; */ -"40.title" = "Rename Selected"; - -/* Class = "NSSearchFieldCell"; placeholderString = "Filter"; ObjectID = "42"; */ -"42.placeholderString" = "Filter"; - -/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[0] = "Details"; ObjectID = "44"; */ -"44.ibShadowedLabels[0]" = "Details"; - -/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[1] = "Dupes Only"; ObjectID = "44"; */ -"44.ibShadowedLabels[1]" = "Dupes Only"; - -/* Class = "NSSegmentedCell"; 44.ibShadowedLabels[2] = "Delta"; ObjectID = "44"; */ -"44.ibShadowedLabels[2]" = "Delta"; - -/* Class = "NSMenu"; title = "Menu"; ObjectID = "67"; */ -"67.title" = "Menu"; - -/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "68"; */ -"68.title" = "Add Selected to Ignore List"; - -/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "70"; */ -"70.title" = "Rename Selected"; - -/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "71"; */ -"71.title" = "Remove Selected from Results"; - -/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "72"; */ -"72.title" = "Make Selected Reference"; - -/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "73"; */ -"73.title" = "Reveal Selected in Finder"; - -/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "74"; */ -"74.title" = "Open Selected with Default Application"; - -/* Class = "NSToolbarItem"; label = "Quick Look"; ObjectID = "86"; */ -"86.label" = "Quick Look"; - -/* Class = "NSToolbarItem"; paletteLabel = "Quick Look"; ObjectID = "86"; */ -"86.paletteLabel" = "Quick Look"; diff --git a/cocoa/base/en.lproj/ResultWindow.xib b/cocoa/base/en.lproj/ResultWindow.xib deleted file mode 100644 index 61414245..00000000 --- a/cocoa/base/en.lproj/ResultWindow.xib +++ /dev/null @@ -1,1782 +0,0 @@ - - - - 1060 - 11E53 - 2182 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSPopUpButton - NSMenu - NSToolbarItem - NSButton - NSToolbarFlexibleSpaceItem - NSCustomObject - NSTableView - NSSearchField - NSTextField - NSSearchFieldCell - NSWindowTemplate - NSTextFieldCell - NSButtonCell - NSSegmentedControl - NSToolbarSpaceItem - NSPopUpButtonCell - NSView - NSToolbar - NSScrollView - NSUserDefaultsController - NSSegmentedCell - NSScroller - NSTableHeaderView - NSMenuItem - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - ResultWindow - - - FirstResponder - - - NSApplication - - - Menu - - - - Remove Selected from Results - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - - - - Add Selected to Ignore List - - 1048576 - 2147483647 - - - - - - Make Selected Reference - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Open Selected with Default Application - - 1048576 - 2147483647 - - - - - - Reveal Selected in Finder - - 1048576 - 2147483647 - - - - - - Rename Selected - - 1048576 - 2147483647 - - - - - - - - 15 - 2 - {{47, 310}, {557, 400}} - 1618477056 - dupeGuru Results - NSWindow - - - 184FCE08-7704-43E1-B7CA-394621354414 - - - YES - YES - YES - YES - 2 - 1 - - - - 4BD1D94E-8A70-48E1-AF8A-CEDC80CD0A5E - - Options - Options - - - - 268 - {{0, 14}, {195, 23}} - - - YES - - 67239424 - 0 - - LucidaGrande - 11 - 16 - - - - - 57 - Details - 0 - - - 82 - Dupes Only - 1 - 0 - - - 48 - Delta - 0 - - - -1 - 1 - 5 - - - - - - {195, 23} - {195, 25} - YES - YES - 0 - YES - 0 - - - - 8E5ADD0F-24AD-452A-BE68-464FE9E5E240 - - Filter - Filter - - - - 258 - {{0, 14}, {81, 22}} - - - YES - - 343014976 - 268436480 - - - LucidaGrande - 13 - 1044 - - Filter - - YES - 1 - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - 130560 - 0 - search - - _searchFieldSearch: - - 138690815 - 0 - - 400 - 75 - - - 130560 - 0 - clear - - - cancel - - - - - _searchFieldCancel: - - 138690815 - 0 - - 400 - 75 - - 10 - YES - - - - - - {81, 22} - {300, 22} - YES - YES - 0 - YES - 0 - - - - A85CDEA8-333B-47CF-960E-DDC65B0C56BC - - Quick Look - Quick Look - - - - 268 - {{12, 14}, {44, 25}} - - - _NS:161 - YES - - 67239424 - 134217728 - - - _NS:161 - - -2033958657 - 163 - - NSImage - NSQuickLookTemplate - - - - 200 - 25 - - - - - - {30, 25} - {44, 32} - YES - YES - 0 - YES - 0 - - - - BA65FFF2-9E56-4E88-AB2E-8FBE2B3D030F - - Directories - Directories - - - - NSImage - folder32 - - - - {0, 0} - {0, 0} - YES - YES - -1 - YES - 0 - - - - F37510C7-955F-4141-9D09-AC2881ADCCFA - - Action - Action - - - - 256 - {{1, 14}, {40, 25}} - - - YES - - -2076049856 - 134219776 - - - -2035269377 - 35 - - - - - 400 - 75 - - - YES - IA - - 1048576 - 2147483647 - 1 - - NSImage - NSActionTemplate - - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Send Marked to Trash... - - 2147483647 - - - _popUpItemAction: - - - - - Move Marked to... - - 2147483647 - - - _popUpItemAction: - - - - - Copy Marked to... - - 2147483647 - - - _popUpItemAction: - - - - - Remove Marked from Results - - 2147483647 - - - _popUpItemAction: - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Remove Selected from Results - - 2147483647 - - - _popUpItemAction: - - - - - Add Selected to Ignore List - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Make Selected Reference - - 2147483647 - - - _popUpItemAction: - - - - - YES - YES - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Open Selected with Default Application - - 2147483647 - - - _popUpItemAction: - - - - - Reveal Selected in Finder - - 2147483647 - - - _popUpItemAction: - - - - - Rename Selected - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 1 - YES - 3 - YES - YES - 2 - - - - - - {30, 25} - {40, 26} - YES - YES - 0 - YES - 0 - - - NSToolbarFlexibleSpaceItem - - Flexible Space - - - - - - {1, 5} - {20000, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - - - - NSToolbarSpaceItem - - Space - - - - - - {32, 5} - {32, 32} - YES - YES - -1 - YES - 0 - - YES - YES - - - 1048576 - 2147483647 - - - - - - - - - - - - - - - - - - - - - - - - - - {340, 340} - - - 256 - - - - 290 - {{17, 6}, {523, 17}} - - - - YES - - 67239424 - 138412032 - Marked: 0 files, 0 B. Total: 0 files, 0 B. - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - - - - - 274 - - - - 2304 - - - - 256 - {557, 355} - - - - YES - - - 256 - {557, 17} - - - - - - - - -2147483392 - {{224, 0}, {16, 17}} - - - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 14 - -358612992 - - - 2 - 4 - 15 - 0 - YES - 0 - 1 - - - {{1, 17}, {557, 355}} - - - - - - 6 - System - controlBackgroundColor - - - 4 - - - - -2147483392 - {{224, 17}, {15, 102}} - - - - - _doScroller: - 37 - 0.1947367936372757 - - - - -2147483392 - {{1, 119}, {223, 15}} - - - - 1 - - _doScroller: - 0.57142859697341919 - - - - 2304 - - - - {{1, 0}, {557, 17}} - - - - - - 4 - - - - {{0, 28}, {559, 373}} - - - - 133682 - - - - - - QSAAAEEgAABBgAAAQYAAAA - - - {557, 400} - - - - - {{0, 0}, {1920, 1058}} - {340, 402} - {10000000000000, 10000000000000} - MainWindow - YES - - - YES - - - - - - - window - - - - 46 - - - - moveMarked: - - - - 52 - - - - copyMarked: - - - - 53 - - - - removeMarked: - - - - 54 - - - - removeSelected: - - - - 55 - - - - ignoreSelected: - - - - 56 - - - - switchSelected: - - - - 57 - - - - openSelected: - - - - 58 - - - - revealSelected: - - - - 59 - - - - renameSelected: - - - - 60 - - - - filterField - - - - 61 - - - - filter: - - - - 62 - - - - changeOptions: - - - - 63 - - - - optionsSwitch - - - - 64 - - - - stats - - - - 65 - - - - matches - - - - 66 - - - - removeSelected: - - - - 76 - - - - ignoreSelected: - - - - 77 - - - - switchSelected: - - - - 78 - - - - openSelected: - - - - 79 - - - - revealSelected: - - - - 80 - - - - renameSelected: - - - - 81 - - - - toggleQuicklookPanel: - - - - 87 - - - - optionsToolbarItem - - - - 92 - - - - showDirectoryWindow: - - - - 82 - - - - trashMarked: - - - - 93 - - - - delegate - - - - 45 - - - - menu - - - - 83 - - - - rowHeight: values.TableFontSize - - - - - - rowHeight: values.TableFontSize - rowHeight - values.TableFontSize - - NSValueTransformerName - vtRowHeightOffset - - 2 - - - 90 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - - - - - Window - - - 3 - - - - - - - - - 4 - - - - - - - - - - - 5 - - - - - - - - 6 - - - - - 7 - - - - - 8 - - - - - - 9 - - - - - 10 - - - - - 67 - - - - - - - - - - - - matches_context - - - 68 - - - - - 69 - - - - - 70 - - - - - 71 - - - - - 72 - - - - - 73 - - - - - 74 - - - - - 2 - - - - - - - - - - - - - - 22 - - - - - 21 - - - - - 19 - - - - - 17 - - - - - - - - 24 - - - - - - - - 25 - - - - - - - - 26 - - - - - - - - - - - - - - - - - - - - 40 - - - - - 39 - - - - - 38 - - - - - 37 - - - - - 36 - - - - - 35 - - - - - 34 - - - - - 33 - - - - - 32 - - - - - 31 - - - - - 30 - - - - - 29 - - - - - 28 - - - - - 16 - - - - - - - - 41 - - - - - - - - 42 - - - - - 15 - - - - - - - - 43 - - - - - - - - 44 - - - - - 86 - - - - - - - - 84 - - - - - - - - 85 - - - - - 88 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{324, 305}, {557, 400}} - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - HSTableView - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 93 - - - - - AppDelegateBase - NSObject - - id - id - id - id - id - id - id - id - id - - - - loadResults: - id - - - openHelp: - id - - - openWebsite: - id - - - showAboutBox: - id - - - showDirectoryWindow: - id - - - showIgnoreList: - id - - - showPreferencesPanel: - id - - - showResultWindow: - id - - - startScanning: - id - - - - NSMenu - NSMenu - NSMenu - - - - actionsMenu - NSMenu - - - columnsMenu - NSMenu - - - recentResultsMenu - NSMenu - - - - IBProjectSource - ./Classes/AppDelegateBase.h - - - - HSTableView - NSTableView - - IBProjectSource - ./Classes/HSTableView.h - - - - ResultWindow - ResultWindowBase - - clearPictureCache: - id - - - clearPictureCache: - - clearPictureCache: - id - - - - IBProjectSource - ./Classes/ResultWindow.h - - - - ResultWindowBase - NSWindowController - - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - changeOptions: - id - - - copyMarked: - id - - - exportToXHTML: - id - - - filter: - id - - - focusOnFilterField: - id - - - ignoreSelected: - id - - - invokeCustomCommand: - id - - - markAll: - id - - - markInvert: - id - - - markNone: - id - - - markSelected: - id - - - moveMarked: - id - - - openClicked: - id - - - openSelected: - id - - - removeMarked: - id - - - removeSelected: - id - - - renameSelected: - id - - - reprioritizeResults: - id - - - resetColumnsToDefault: - id - - - revealSelected: - id - - - saveResults: - id - - - startDuplicateScan: - id - - - switchSelected: - id - - - toggleColumn: - id - - - toggleDelta: - id - - - toggleDetailsPanel: - id - - - togglePowerMarker: - id - - - toggleQuicklookPanel: - id - - - trashMarked: - id - - - - NSSearchField - HSTableView - NSSegmentedControl - NSToolbarItem - NSTextField - - - - filterField - NSSearchField - - - matches - HSTableView - - - optionsSwitch - NSSegmentedControl - - - optionsToolbarItem - NSToolbarItem - - - stats - NSTextField - - - - IBProjectSource - ./Classes/ResultWindowBase.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - {15, 15} - {11, 11} - {10, 3} - {21, 16} - {32, 32} - - - diff --git a/cocoa/base/ui/result_window.py b/cocoa/base/ui/result_window.py index 39d4443f..0e978823 100644 --- a/cocoa/base/ui/result_window.py +++ b/cocoa/base/ui/result_window.py @@ -5,7 +5,7 @@ result = Window(557, 400, "dupeGuru Results") toolbar = result.createToolbar('ResultsToolbar') table = TableView(result) table.OBJC_CLASS = 'HSTableView' -statsLabel = Label(result, "Hello") +statsLabel = Label(result, "") contextMenu = Menu("") #Setup toolbar items @@ -27,6 +27,7 @@ actionPopup.width = 44 actionToolItem.view = actionPopup filterField = SearchField(None, "Filter") filterField.action = Action(owner, 'filter:') +filterField.sendsWholeSearchString = True filterToolItem.view = filterField filterToolItem.minSize = Size(80, 22) filterToolItem.maxSize = Size(300, 22) @@ -86,8 +87,10 @@ table.setAnchor(Pack.UpperLeft, growX=True, growY=True) statsLabel.setAnchor(Pack.LowerLeft, growX=True) # Layout -table.packToCorner(Pack.UpperLeft, margin=0) +# It's a little weird to pack with a margin of -1, but if I don't do that, I get too thick of a +# border on the upper side of the table. +table.packToCorner(Pack.UpperLeft, margin=-1) table.fill(Pack.Right, margin=0) statsLabel.packRelativeTo(table, Pack.Below, margin=6) statsLabel.fill(Pack.Right, margin=0) -table.fill(Pack.Below, margin=6) +table.fill(Pack.Below, margin=5) diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 36805a07..1da0d0b9 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -48,7 +48,6 @@ CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; }; CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; }; CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; }; - CE81135012E5CE4D00A36C80 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */; }; CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; }; CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; }; CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; }; @@ -118,12 +117,10 @@ 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; 8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; - CE00BBC314910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; CE0564B614169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; - CE0564B814169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ResultWindow.xib; sourceTree = ""; }; CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = ""; }; @@ -170,7 +167,6 @@ CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; - CE5A5CA715A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; sourceTree = ""; }; CE5A5CB015A283D700C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; }; CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; }; @@ -193,12 +189,9 @@ CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; - CE7A697D146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81134B12E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CE81135312E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81135512E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CE81135712E5CE6D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = ""; }; CE81135912E5CE7B00A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; CE8113EA12E5CE9A00A36C80 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; @@ -239,15 +232,12 @@ CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CECFFF2113CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; - CED638E214B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; - CED64CFE145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = ""; }; CED64D06145EF16300572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = ""; }; CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox_UI.h; path = ../../cocoalib/autogen/HSAboutBox_UI.h; sourceTree = ""; }; @@ -271,7 +261,6 @@ CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; - CEECCD1514C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = ""; }; CEECCD1D14C6370C00A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = ""; }; @@ -526,7 +515,6 @@ isa = PBXGroup; children = ( CE81134612E5CE4D00A36C80 /* MainMenu.xib */, - CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */, CE81135612E5CE6D00A36C80 /* Preferences.xib */, ); name = xib; @@ -678,7 +666,6 @@ CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */, CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */, - CE81135012E5CE4D00A36C80 /* ResultWindow.xib in Resources */, CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */, CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */, CE31819D13D85D9B00B6D649 /* about.xib in Resources */, @@ -810,23 +797,6 @@ name = MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81134A12E5CE4D00A36C80 /* ResultWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - CE81134B12E5CE4D00A36C80 /* en */, - CE81135512E5CE6100A36C80 /* fr */, - CECFFF2113CDF8D0003A4518 /* de */, - CE0564B814169DB100D3D907 /* zh_CN */, - CED64CFE145EF07700572B00 /* cs */, - CE7A697D146442160007D927 /* it */, - CE00BBC314910C5E006A717C /* hy */, - CED638E214B38CEC00B88D00 /* ru */, - CEECCD1514C6370000A2F3A0 /* uk */, - CE5A5CA715A283C200C4E461 /* pt_BR */, - ); - name = ResultWindow.xib; - sourceTree = SOURCE_ROOT; - }; CE81135612E5CE6D00A36C80 /* Preferences.xib */ = { isa = PBXVariantGroup; children = ( From 85e5b4cfa7f0f89a7ba0a65ee074771243c22058 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Fri, 27 Jul 2012 15:21:35 -0400 Subject: [PATCH 15/33] xibless-ified SE's preferences panel. --HG-- branch : xibless --- build.py | 11 +- cocoa/base/AppDelegate.m | 3 +- cocoa/base/en.lproj/Localizable.strings | 30 + cocoa/se/dupeguru.xcodeproj/project.pbxproj | 36 +- cocoa/se/en.lproj/Preferences.strings | 81 - cocoa/se/en.lproj/Preferences.xib | 1909 ------------------- cocoa/se/ui/preferences_panel.py | 109 ++ 7 files changed, 154 insertions(+), 2025 deletions(-) delete mode 100644 cocoa/se/en.lproj/Preferences.strings delete mode 100644 cocoa/se/en.lproj/Preferences.xib create mode 100644 cocoa/se/ui/preferences_panel.py diff --git a/build.py b/build.py index df48bf3e..2a1fb3ad 100644 --- a/build.py +++ b/build.py @@ -54,16 +54,19 @@ def build_xibless(edition): xibless.generate('cocoalib/ui/demo_reminder.py', 'cocoalib/autogen/HSDemoReminder_UI', localizationTable='cocoalib') xibless.generate('cocoalib/ui/enter_code.py', 'cocoalib/autogen/HSEnterCode_UI', localizationTable='cocoalib') xibless.generate('cocoalib/ui/error_report.py', 'cocoalib/autogen/HSErrorReportWindow_UI', localizationTable='cocoalib') - if edition == 'pe': - xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') - else: - xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/deletion_options.py', 'cocoa/autogen/DeletionOptions_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/problem_dialog.py', 'cocoa/autogen/ProblemDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/directory_panel.py', 'cocoa/autogen/DirectoryPanel_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/prioritize_dialog.py', 'cocoa/autogen/PrioritizeDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/result_window.py', 'cocoa/autogen/ResultWindow_UI', localizationTable='Localizable') + if edition == 'pe': + xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') + else: + xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') + if edition == 'se': + xibless.generate('cocoa/se/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI', localizationTable='Localizable') + def build_cocoa(edition, dev): build_xibless(edition) diff --git a/cocoa/base/AppDelegate.m b/cocoa/base/AppDelegate.m index dda9a91d..fa470998 100644 --- a/cocoa/base/AppDelegate.m +++ b/cocoa/base/AppDelegate.m @@ -13,6 +13,7 @@ http://www.hardcoded.net/licenses/bsd_license #import "Consts.h" #import "Dialogs.h" #import "ValueTransformers.h" +#import "PreferencesPanel_UI.h" #import @implementation AppDelegateBase @@ -140,7 +141,7 @@ http://www.hardcoded.net/licenses/bsd_license - (IBAction)showPreferencesPanel:(id)sender { if (_preferencesPanel == nil) { - _preferencesPanel = [[NSWindowController alloc] initWithWindowNibName:@"Preferences"]; + _preferencesPanel = [[NSWindowController alloc] initWithWindow:createPreferencesPanel_UI(nil)]; } [_preferencesPanel showWindow:sender]; } diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 3f1330cd..9e820865 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -94,3 +94,33 @@ "Reveal Selected in Finder" = "Reveal Selected in Finder"; "Open Selected with Default Application" = "Open Selected with Default Application"; "Quick Look" = "Quick Look"; + +/* Preferences */ +"dupeGuru Preferences" = "dupeGuru Preferences"; +"More results" = "More results"; +"Fewer results" = "Fewer results"; +"Filter hardness:" = "Filter hardness:"; +"Scan type:" = "Scan type:"; +"Content" = "Content"; +"Filename" = "Filename"; +"Word weighting" = "Word weighting"; +"Can mix file kind" = "Can mix file kind"; +"Reset to Defaults" = "Reset to Defaults"; +"Match similar words" = "Match similar words"; +"Copy and Move:" = "Copy and Move:"; +"Recreate relative path" = "Recreate relative path"; +"Recreate absolute path" = "Recreate absolute path"; +"Right in destination" = "Right in destination"; +"Automatically check for updates" = "Automatically check for updates"; +"Remove empty folders on delete or move" = "Remove empty folders on delete or move"; +"Ignore files smaller than:" = "Ignore files smaller than:"; +"KB" = "KB"; +"Basic" = "Basic"; +"Advanced" = "Advanced"; +"Use regular expressions when filtering" = "Use regular expressions when filtering"; +"Custom command (arguments: %d for dupe, %r for ref):" = "Custom command (arguments: %d for dupe, %r for ref):"; +"Ignore duplicates hardlinking to the same file" = "Ignore duplicates hardlinking to the same file"; +"Debug mode (restart required)" = "Debug mode (restart required)"; +"Folders" = "Folders"; +"Font size:" = "Font size:"; + diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index 1da0d0b9..bc4c20fe 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -14,6 +14,7 @@ CE18005114BDD87B001B6329 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE18005014BDD87B001B6329 /* py */; }; CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091514BE0C6400CA6B8C /* ObjP.m */; }; CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */; }; + CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */; }; CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; }; CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; }; CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; }; @@ -48,7 +49,6 @@ CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; }; CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; }; CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; }; - CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81135612E5CE6D00A36C80 /* Preferences.xib */; }; CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; }; CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; }; CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8C25CB15B9FCC100D44175 /* cocoalib.strings */; }; @@ -117,11 +117,9 @@ 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; }; 8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; - CE00BBCC14910C72006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; CE0564B614169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; - CE0564BF14169DDC00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = ""; }; CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = ""; }; @@ -130,6 +128,8 @@ CE1D091514BE0C6400CA6B8C /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = ""; }; CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = ""; }; CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = ""; }; + CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreferencesPanel_UI.h; sourceTree = ""; }; + CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreferencesPanel_UI.m; sourceTree = ""; }; CE275C5414BF712B00265960 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = ""; }; CE275C5514BF712B00265960 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = ""; }; CE275C5814BF71DF00265960 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = ""; }; @@ -167,7 +167,6 @@ CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; - CE5A5CB015A283D700C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; }; CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; }; CE6DD4E5124CA3070089A48D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; }; @@ -189,11 +188,8 @@ CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; - CE7A698B1464425A0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE81135312E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81135712E5CE6D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = ""; }; - CE81135912E5CE7B00A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; CE8113EA12E5CE9A00A36C80 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; CE8113EC12E5CEA800A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; CE89240614239CC30024CE4E /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = ""; }; @@ -232,13 +228,10 @@ CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CECFFF2413CDF8E5003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; - CED638EA14B38CF800B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; - CED64D06145EF16300572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = cs.lproj/Preferences.xib; sourceTree = ""; }; CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox_UI.h; path = ../../cocoalib/autogen/HSAboutBox_UI.h; sourceTree = ""; }; CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox_UI.m; path = ../../cocoalib/autogen/HSAboutBox_UI.m; sourceTree = ""; }; @@ -261,7 +254,6 @@ CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; - CEECCD1D14C6370C00A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = ""; }; CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = ""; }; @@ -401,6 +393,8 @@ CE1D091314BE0C6400CA6B8C /* autogen */ = { isa = PBXGroup; children = ( + CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */, + CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */, CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */, CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */, CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */, @@ -515,7 +509,6 @@ isa = PBXGroup; children = ( CE81134612E5CE4D00A36C80 /* MainMenu.xib */, - CE81135612E5CE6D00A36C80 /* Preferences.xib */, ); name = xib; sourceTree = ""; @@ -666,7 +659,6 @@ CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */, CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */, - CE81135812E5CE6D00A36C80 /* Preferences.xib in Resources */, CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */, CE31819D13D85D9B00B6D649 /* about.xib in Resources */, CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */, @@ -750,6 +742,7 @@ CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */, CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */, CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */, + CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -797,23 +790,6 @@ name = MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81135612E5CE6D00A36C80 /* Preferences.xib */ = { - isa = PBXVariantGroup; - children = ( - CE81135712E5CE6D00A36C80 /* en */, - CE81135912E5CE7B00A36C80 /* fr */, - CECFFF2413CDF8E5003A4518 /* de */, - CE0564BF14169DDC00D3D907 /* zh_CN */, - CED64D06145EF16300572B00 /* cs */, - CE7A698B1464425A0007D927 /* it */, - CE00BBCC14910C72006A717C /* hy */, - CED638EA14B38CF800B88D00 /* ru */, - CEECCD1D14C6370C00A2F3A0 /* uk */, - CE5A5CB015A283D700C4E461 /* pt_BR */, - ); - name = Preferences.xib; - sourceTree = SOURCE_ROOT; - }; CE8113E912E5CE9A00A36C80 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( diff --git a/cocoa/se/en.lproj/Preferences.strings b/cocoa/se/en.lproj/Preferences.strings deleted file mode 100644 index fa6a38c1..00000000 --- a/cocoa/se/en.lproj/Preferences.strings +++ /dev/null @@ -1,81 +0,0 @@ - -/* Class = "NSWindow"; title = "dupeGuru Preferences"; ObjectID = "52"; */ -"52.title" = "dupeGuru Preferences"; - -/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "74"; */ -"74.title" = "More results"; - -/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "75"; */ -"75.title" = "Fewer results"; - -/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "76"; */ -"76.title" = "Filter hardness:"; - -/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "77"; */ -"77.title" = "Scan type:"; - -/* Class = "NSMenuItem"; title = "Content"; ObjectID = "80"; */ -"80.title" = "Content"; - -/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "81"; */ -"81.title" = "Filename"; - -/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "82"; */ -"82.title" = "Word weighting"; - -/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "83"; */ -"83.title" = "Can mix file kind"; - -/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "86"; */ -"86.title" = "Reset to Defaults"; - -/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "87"; */ -"87.title" = "Match similar words"; - -/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "88"; */ -"88.title" = "Copy and Move:"; - -/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "91"; */ -"91.title" = "Recreate relative path"; - -/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "92"; */ -"92.title" = "Recreate absolute path"; - -/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "93"; */ -"93.title" = "Right in destination"; - -/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "94"; */ -"94.title" = "Automatically check for updates"; - -/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "96"; */ -"96.title" = "Remove empty folders on delete or move"; - -/* Class = "NSButtonCell"; title = "Ignore files smaller than:"; ObjectID = "97"; */ -"97.title" = "Ignore files smaller than:"; - -/* Class = "NSTextFieldCell"; title = "KB"; ObjectID = "100"; */ -"100.title" = "KB"; - -/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "124"; */ -"124.label" = "Basic"; - -/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "125"; */ -"125.label" = "Advanced"; - -/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "129"; */ -"129.title" = "Use regular expressions when filtering"; - -/* Class = "NSTextFieldCell"; title = "Custom command (arguments: %d for dupe, %r for ref):"; ObjectID = "134"; */ -"134.title" = "Custom command (arguments: %d for dupe, %r for ref):"; - -/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "142"; */ -"142.title" = "Ignore duplicates hardlinking to the same file"; - -/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "146"; */ -"146.title" = "Debug mode (restart required)"; - -/* Class = "NSMenuItem"; title = "Folders"; ObjectID = "149"; */ -"149.title" = "Folders"; - -/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "155"; */ -"155.title" = "Font size:"; diff --git a/cocoa/se/en.lproj/Preferences.xib b/cocoa/se/en.lproj/Preferences.xib deleted file mode 100644 index 0ed3cf5f..00000000 --- a/cocoa/se/en.lproj/Preferences.xib +++ /dev/null @@ -1,1909 +0,0 @@ - - - - 1060 - 11B26 - 1617 - 1138 - 566.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1617 - - - NSPopUpButtonCell - NSComboBoxCell - NSPopUpButton - NSNumberFormatter - NSButton - NSMenu - NSButtonCell - NSTextFieldCell - NSMenuItem - NSComboBox - NSTabView - NSSlider - NSSliderCell - NSCustomObject - NSTabViewItem - NSView - NSWindowTemplate - NSTextField - NSUserDefaultsController - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - NSWindowController - - - FirstResponder - - - NSApplication - - - YES - - - 3 - 2 - {{92, 277}, {409, 344}} - 1886912512 - dupeGuru Preferences - - NSWindow - - - View - - - {213, 107} - - - 256 - - - - 256 - {{247, 5}, {148, 32}} - - - - YES - - 67239424 - 134217728 - Reset to Defaults - - LucidaGrande - 13 - 1044 - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 12 - {{13, 33}, {383, 305}} - - - - - - 1 - - - 256 - - - - 292 - {{117, 197}, {198, 21}} - - - - YES - - 67239424 - 0 - - - - - Helvetica - 12 - 16 - - - 100 - 1 - 80 - 0.0 - 0 - 1 - NO - NO - - - - - 292 - {{119, 180}, {80, 13}} - - - - YES - - 67239424 - 272629760 - More results - - LucidaGrande - 10 - 2843 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 289 - {{236, 180}, {80, 13}} - - - - YES - - 67239424 - 71303168 - Fewer results - - - - - - - - - 292 - {{14, 202}, {100, 14}} - - - - YES - - 67239424 - 272629760 - Filter hardness: - - LucidaGrande - 11 - 3100 - - - - - - - - - 292 - {{14, 152}, {100, 17}} - - - - YES - - 67239424 - 272629760 - Font size: - - - - - - - - - 292 - {{17, 243}, {85, 13}} - - - - YES - - 67239424 - 272629760 - Scan type: - - - - - - - - - 292 - {{116, 232}, {233, 26}} - - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Filename - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Content - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Folders - - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{15, 128}, {333, 18}} - - - - YES - - 67239424 - 0 - Word weighting - - - 1211912703 - 2 - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{15, 88}, {333, 18}} - - - - YES - - 67239424 - 0 - Can mix file kind - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 108}, {333, 18}} - - - - YES - - 67239424 - 0 - Match similar words - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 5}, {333, 18}} - - - - YES - - 67239424 - 0 - Automatically check for updates - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 68}, {333, 18}} - - - - YES - - 67239424 - 0 - Remove empty folders on delete or move - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 46}, {333, 18}} - - - - YES - - 67239424 - 0 - Ignore files smaller than: - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 268 - {{40, 24}, {59, 22}} - - - - YES - - -1804468671 - -1874852864 - - - - - - - - - - - - #0 - - - - #0 - #0 - - - - - - NaN - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - 3 - YES - YES - YES - - . - , - NO - NO - NO - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - System - textColor - - - - - - - 292 - {{104, 23}, {30, 17}} - - - - YES - - 67239424 - 272629760 - KB - - - - - - - - - 256 - {{318, 202}, {31, 14}} - - - - YES - - 67239424 - -1874853888 - - - - - - - 0 - - - . - - , - -0 - 0 - - - 0 - -0 - - - - - - - - NaN - - - - - - . - , - NO - YES - YES - - - - - - - - - 268 - {{119, 148}, {69, 26}} - - - - YES - - 343014976 - 272630784 - - - - YES - - - 6 - YES - YES - - 11 - 12 - 13 - 14 - 18 - 24 - - - - - 274 - {13, 126} - - - YES - - - 10 - 10 - 1000 - - 75628032 - 0 - - - LucidaGrande - 12 - 16 - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - YES - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 19 - tableViewAction: - -765427712 - - - - 1 - 15 - 0 - YES - 0 - 1 - - - - - {{10, 33}, {363, 259}} - - - - - Basic - - - - - 2 - - - 256 - - - - 256 - {{15, 240}, {346, 18}} - - YES - - 67239424 - 0 - Use regular expressions when filtering - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 220}, {346, 18}} - - YES - - 67239424 - 0 - Ignore duplicates hardlinking to the same file - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 200}, {346, 18}} - - YES - - 67239424 - 0 - Debug mode (restart required) - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 292 - {{14, 177}, {348, 17}} - - YES - - 67239424 - 272629760 - Custom command (arguments: %d for dupe, %r for ref): - - - - - - - - - 266 - {{17, 147}, {329, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - - - - - 292 - {{14, 126}, {348, 13}} - - YES - - 67239424 - 272629760 - Copy and Move: - - - - - - - - - 292 - {{14, 94}, {234, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Right in destination - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Recreate relative path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Recreate absolute path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - {{10, 33}, {363, 259}} - - Advanced - - - - - - - 0 - YES - YES - - - - - - {409, 344} - - - - - {{0, 0}, {1440, 878}} - {213, 129} - {10000000000000, 10000000000000} - YES - - - - - - - revertToInitialValues: - - - - 101 - - - - value: values.matchSimilarWords - - - - - - value: values.matchSimilarWords - value - values.matchSimilarWords - 2 - - - 102 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 103 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 104 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 105 - - - - nextKeyView - - - - 106 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 107 - - - - value: values.wordWeighting - - - - - - value: values.wordWeighting - value - values.wordWeighting - 2 - - - 108 - - - - value: values.mixFileKind - - - - - - value: values.mixFileKind - value - values.mixFileKind - 2 - - - 109 - - - - value: values.ignoreSmallFiles - - - - - - value: values.ignoreSmallFiles - value - values.ignoreSmallFiles - 2 - - - 110 - - - - value: values.removeEmptyFolders - - - - - - value: values.removeEmptyFolders - value - values.removeEmptyFolders - 2 - - - 113 - - - - selectedIndex: values.scanType - - - - - - selectedIndex: values.scanType - selectedIndex - values.scanType - 2 - - - 115 - - - - selectedIndex: values.recreatePathType - - - - - - selectedIndex: values.recreatePathType - selectedIndex - values.recreatePathType - 2 - - - 116 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 117 - - - - window - - - - 118 - - - - value: values.smallFileThreshold - - - - - - value: values.smallFileThreshold - value - values.smallFileThreshold - - NSContinuouslyUpdatesValue - - - 2 - - - 121 - - - - value: values.SUEnableAutomaticChecks - - - - - - value: values.SUEnableAutomaticChecks - value - values.SUEnableAutomaticChecks - 2 - - - 122 - - - - value: values.useRegexpFilter - - - - - - value: values.useRegexpFilter - value - values.useRegexpFilter - 2 - - - 130 - - - - value: values.CustomCommand - - - - - - value: values.CustomCommand - value - values.CustomCommand - 2 - - - 140 - - - - value: values.ignoreHardlinkMatches - - - - - - value: values.ignoreHardlinkMatches - value - values.ignoreHardlinkMatches - 2 - - - 144 - - - - value: values.DebugMode - - - - - - value: values.DebugMode - value - values.DebugMode - 2 - - - 148 - - - - value: values.TableFontSize - - - - - - value: values.TableFontSize - value - values.TableFontSize - 2 - - - 156 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 51 - - - Shared Defaults - - - 52 - - - - - - preferences - - - 53 - - - - - - - - - 63 - - - - - - - - 86 - - - - - 123 - - - - - - - - - 124 - - - - - - - - 125 - - - - - - - - 126 - - - - - - - - - - - - - - 127 - - - - - - - - - - - - - - - - - - - - - - - - 72 - - - - - - - - 73 - - - - - 71 - - - - - - - - 74 - - - - - 70 - - - - - - - - 75 - - - - - 69 - - - - - - - - 76 - - - - - 68 - - - - - - - - 77 - - - - - 67 - - - - - - - - 78 - - - - - - - - 79 - - - - - - - - - - 81 - - - - - 80 - - - - - 66 - - - - - - - - 82 - - - - - 65 - - - - - - - - 83 - - - - - 62 - - - - - - - - 87 - - - - - 59 - - - - - - - - 94 - - - - - 57 - - - - - - - - 96 - - - - - 56 - - - - - - - - 97 - - - - - 55 - - - - - - - - 98 - - - - - - - - 99 - - - - - 54 - - - - - - - - 100 - - - - - 128 - - - - - - - - 129 - - - - - 133 - - - - - - - - 134 - - - - - 138 - - - - - - - - 139 - - - - - 64 - - - - - - - - 84 - - - - - - - - 85 - - - - - 61 - - - - - - - - 88 - - - - - 60 - - - - - - - - 89 - - - - - - - - 90 - - - - - - - - - - 91 - - - - - 92 - - - - - 93 - - - - - 141 - - - - - - - - 142 - - - - - 145 - - - - - - - - 146 - - - - - 149 - - - - - 151 - - - - - - - - 152 - - - - - 154 - - - - - - - - 155 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{413, 520}, {409, 325}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 156 - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - {9, 8} - {7, 2} - - - diff --git a/cocoa/se/ui/preferences_panel.py b/cocoa/se/ui/preferences_panel.py new file mode 100644 index 00000000..617d6870 --- /dev/null +++ b/cocoa/se/ui/preferences_panel.py @@ -0,0 +1,109 @@ +result = Window(410, 345, "dupeGuru Preferences") +tabView = TabView(result) +basicTab = tabView.addTab("Basic") +advancedTab = tabView.addTab("Advanced") +scanTypePopup = Popup(basicTab.view, ["Filename", "Content", "Folders"]) +scanTypeLabel = Label(basicTab.view, "Scan Type:") +thresholdSlider = Slider(basicTab.view, 1, 100, 80) +# XXX add a number formatter to this +thresholdLabel = Label(basicTab.view, "Filter hardness:") +moreResultsLabel = Label(basicTab.view, "More results") +fewerResultsLabel = Label(basicTab.view, "Fewer results") +thresholdValuelabel = Label(basicTab.view, "") +fontSizeCombo = Combobox(basicTab.view, ["11", "12", "13", "14", "18", "24"]) +fontSizeLabel = Label(basicTab.view, "Font Size:") +wordWeightingBox = Checkbox(basicTab.view, "Word weighting") +matchSimilarWordsBox = Checkbox(basicTab.view, "Match similar words") +mixKindBox = Checkbox(basicTab.view, "Can mix file kind") +removeEmptyFoldersBox = Checkbox(basicTab.view, "Remove empty folders on delete or move") +ignoreSmallFilesBox = Checkbox(basicTab.view, "Ignore files smaller than:") +smallFilesThresholdText = TextField(basicTab.view, "") +smallFilesThresholdSuffixLabel = Label(basicTab.view, "KB") +checkForUpdatesBox = Checkbox(basicTab.view, "Automatically check for updates") + +regexpCheckbox = Checkbox(advancedTab.view, "Use regular expressions when filtering") +ignoreHardlinksBox = Checkbox(advancedTab.view, "Ignore duplicates hardlinking to the same file") +debugModeCheckbox = Checkbox(advancedTab.view, "Debug mode (restart required)") +customCommandLabel = Label(advancedTab.view, "Custom command (arguments: %d for dupe, %r for ref):") +customCommandText = TextField(advancedTab.view, "") +copyMoveLabel = Label(advancedTab.view, "Copy and Move:") +copyMovePopup = Popup(advancedTab.view, ["Right in destination", "Recreate relative path", "Recreate absolute path"]) + +resetToDefaultsButton = Button(result, "Reset To Defaults") + +scanTypePopup.bind('selectedIndex', defaults, 'values.scanType') +thresholdSlider.bind('value', defaults, 'values.minMatchPercentage') +thresholdValuelabel.bind('value', defaults, 'values.minMatchPercentage') +fontSizeCombo.bind('value', defaults, 'values.TableFontSize') +wordWeightingBox.bind('value', defaults, 'values.wordWeighting') +matchSimilarWordsBox.bind('value', defaults, 'values.matchSimilarWords') +mixKindBox.bind('value', defaults, 'values.mixFileKind') +removeEmptyFoldersBox.bind('value', defaults, 'values.removeEmptyFolders') +ignoreSmallFilesBox.bind('value', defaults, 'values.ignoreSmallFiles') +smallFilesThresholdText.bind('value', defaults, 'values.smallFileThreshold') +checkForUpdatesBox.bind('value', defaults, 'values.SUEnableAutomaticChecks') +regexpCheckbox.bind('value', defaults, 'values.useRegexpFilter') +ignoreHardlinksBox.bind('value', defaults, 'values.ignoreHardlinkMatches') +debugModeCheckbox.bind('value', defaults, 'values.DebugMode') +customCommandText.bind('value', defaults, 'values.CustomCommand') +copyMovePopup.bind('selectedIndex', defaults, 'values.recreatePathType') +disableWhenContentScan = [thresholdSlider, wordWeightingBox, matchSimilarWordsBox] +for control in disableWhenContentScan: + control.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsNotContent') + +result.canResize = False +result.canMinimize = False +allLabels = [scanTypeLabel, thresholdValuelabel, moreResultsLabel, fewerResultsLabel, + thresholdLabel, fontSizeLabel, smallFilesThresholdSuffixLabel, customCommandLabel, + copyMoveLabel] +for label in allLabels: + label.controlSize = ControlSize.Small +fewerResultsLabel.alignment = TextAlignment.Right +allCheckboxes = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox, + ignoreSmallFilesBox, checkForUpdatesBox, regexpCheckbox, ignoreHardlinksBox, debugModeCheckbox] +for checkbox in allCheckboxes: + checkbox.font = scanTypeLabel.font +resetToDefaultsButton.action = Action(defaults, 'revertToInitialValues:') + +scanTypeLabel.width = thresholdLabel.width = fontSizeLabel.width = 94 +fontSizeCombo.width = 66 +thresholdValuelabel.width = 25 +resetToDefaultsButton.width = 136 +smallFilesThresholdText.width = 60 +smallFilesThresholdSuffixLabel.width = 40 + +tabView.packToCorner(Pack.UpperLeft) +tabView.fill(Pack.Right) +resetToDefaultsButton.packRelativeTo(tabView, Pack.Below, align=Pack.Right) +tabView.fill(Pack.Below, margin=14) +tabView.setAnchor(Pack.UpperLeft, growX=True, growY=True) +scanTypePopup.packToCorner(Pack.UpperRight) +scanTypeLabel.packRelativeTo(scanTypePopup, Pack.Left) +scanTypePopup.fill(Pack.Left) +thresholdSlider.packRelativeTo(scanTypePopup, Pack.Below) +thresholdValuelabel.packRelativeTo(thresholdSlider, Pack.Right) +thresholdSlider.fill(Pack.Right) +# We want to give the labels as much space as possible, and we only "know" how much is available +# after the slider's fill operation. +moreResultsLabel.width = fewerResultsLabel.width = thresholdSlider.width // 2 +moreResultsLabel.packRelativeTo(thresholdSlider, Pack.Below, align=Pack.Left, margin=6) +fewerResultsLabel.packRelativeTo(thresholdSlider, Pack.Below, align=Pack.Right, margin=6) +thresholdLabel.packRelativeTo(thresholdSlider, Pack.Left) +fontSizeCombo.packRelativeTo(moreResultsLabel, Pack.Below) +fontSizeLabel.packRelativeTo(fontSizeCombo, Pack.Left) + +checkboxLayout = VLayout([wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox, + ignoreSmallFilesBox]) +checkboxLayout.packRelativeTo(fontSizeCombo, Pack.Below) +checkboxLayout.fill(Pack.Left) +checkboxLayout.fill(Pack.Right) + +smallFilesThresholdText.packRelativeTo(ignoreSmallFilesBox, Pack.Below, margin=4) +checkForUpdatesBox.packRelativeTo(smallFilesThresholdText, Pack.Below, margin=4) +checkForUpdatesBox.fill(Pack.Right) +smallFilesThresholdText.x += 20 +smallFilesThresholdSuffixLabel.packRelativeTo(smallFilesThresholdText, Pack.Right) + +advancedLayout = VLayout(advancedTab.view.subviews[:]) +advancedLayout.packToCorner(Pack.UpperLeft) +advancedLayout.fill(Pack.Right) From 6a7af81685ff5a98636ae77bd90f71e75996d468 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Fri, 27 Jul 2012 18:30:34 -0400 Subject: [PATCH 17/33] xibless-ified MainMenu. --HG-- branch : xibless rename : cocoa/base/AppDelegate.h => cocoa/base/AppDelegateBase.h rename : cocoa/base/AppDelegate.m => cocoa/base/AppDelegateBase.m --- build.py | 17 +- .../base/{AppDelegate.h => AppDelegateBase.h} | 33 +- .../base/{AppDelegate.m => AppDelegateBase.m} | 46 +- cocoa/base/DirectoryPanel.m | 4 +- cocoa/base/ResultWindow.h | 1 - cocoa/base/ResultWindow.m | 7 +- cocoa/base/en.lproj/Localizable.strings | 53 + cocoa/base/en.lproj/MainMenu.strings | 180 -- cocoa/base/en.lproj/MainMenu.xib | 2149 ----------------- cocoa/base/main.m | 14 +- cocoa/base/ui/directory_panel.py | 2 +- cocoa/base/ui/main_menu.py | 75 + cocoa/base/ui/result_window.py | 2 +- cocoa/me/AppDelegate.h | 2 +- cocoa/pe/AppDelegate.h | 2 +- cocoa/se/AppDelegate.h | 2 +- cocoa/se/InfoTemplate.plist | 2 - cocoa/se/dupeguru.xcodeproj/project.pbxproj | 56 +- 18 files changed, 217 insertions(+), 2430 deletions(-) rename cocoa/base/{AppDelegate.h => AppDelegateBase.h} (74%) rename cocoa/base/{AppDelegate.m => AppDelegateBase.m} (89%) delete mode 100644 cocoa/base/en.lproj/MainMenu.strings delete mode 100644 cocoa/base/en.lproj/MainMenu.xib create mode 100644 cocoa/base/ui/main_menu.py diff --git a/build.py b/build.py index 2a1fb3ad..291f6390 100644 --- a/build.py +++ b/build.py @@ -18,8 +18,7 @@ from setuptools import setup, Extension from hscommon import sphinxgen from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace, - get_module_version, build_all_cocoa_locs, move_all, copy_sysconfig_files_for_embed, copy_all, - move) + get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move) from hscommon import loc def parse_args(): @@ -60,6 +59,7 @@ def build_xibless(edition): xibless.generate('cocoa/base/ui/directory_panel.py', 'cocoa/autogen/DirectoryPanel_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/prioritize_dialog.py', 'cocoa/autogen/PrioritizeDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/result_window.py', 'cocoa/autogen/ResultWindow_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/main_menu.py', 'cocoa/autogen/MainMenu_UI', localizationTable='Localizable') if edition == 'pe': xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') else: @@ -152,19 +152,16 @@ def build_localizations(ui, edition): if lang == 'en': continue pofile = op.join('locale', lang, 'LC_MESSAGES', 'ui.po') - for edition_folder in ['base', 'se', 'me', 'pe']: - enlproj = op.join('cocoa', edition_folder, 'en.lproj') - dest_lproj = op.join('cocoa', edition_folder, lang + '.lproj') - loc.po2allxibstrings(pofile, enlproj, dest_lproj) - if edition_folder == 'base': - loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings')) + enlproj = op.join('cocoa', 'base', 'en.lproj') + dest_lproj = op.join('cocoa', 'base', lang + '.lproj') + if not op.exists(dest_lproj): + os.makedirs(dest_lproj) + loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings')) pofile = op.join('cocoalib', 'locale', lang, 'LC_MESSAGES', 'cocoalib.po') cocoalib_dest = op.join('cocoalib', lang + '.lproj', 'cocoalib.strings') if not op.exists(op.dirname(cocoalib_dest)): os.makedirs(op.dirname(cocoalib_dest)) loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), cocoalib_dest) - build_all_cocoa_locs(op.join('cocoa', 'base')) - build_all_cocoa_locs(op.join('cocoa', edition)) elif ui == 'qt': loc.compile_all_po(op.join('qtlib', 'locale')) loc.merge_locale_dir(op.join('qtlib', 'locale'), 'locale') diff --git a/cocoa/base/AppDelegate.h b/cocoa/base/AppDelegateBase.h similarity index 74% rename from cocoa/base/AppDelegate.h rename to cocoa/base/AppDelegateBase.h index bb8d8b15..a37ef458 100644 --- a/cocoa/base/AppDelegate.h +++ b/cocoa/base/AppDelegateBase.h @@ -7,6 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license */ #import +#import #import "PyDupeGuru.h" #import "ResultWindow.h" #import "DetailsPanel.h" @@ -17,9 +18,10 @@ http://www.hardcoded.net/licenses/bsd_license @interface AppDelegateBase : NSObject { - IBOutlet NSMenu *recentResultsMenu; - IBOutlet NSMenu *actionsMenu; - IBOutlet NSMenu *columnsMenu; + NSMenu *recentResultsMenu; + NSMenu *actionsMenu; + NSMenu *columnsMenu; + SUUpdater *updater; PyDupeGuru *model; ResultWindowBase *_resultWindow; @@ -31,6 +33,11 @@ http://www.hardcoded.net/licenses/bsd_license HSRecentFiles *_recentResults; } +@property (readwrite, retain) NSMenu *recentResultsMenu; +@property (readwrite, retain) NSMenu *actionsMenu; +@property (readwrite, retain) NSMenu *columnsMenu; +@property (readwrite, retain) SUUpdater *updater; + /* Virtual */ - (PyDupeGuru *)model; - (ResultWindowBase *)createResultWindow; @@ -39,11 +46,11 @@ http://www.hardcoded.net/licenses/bsd_license - (NSString *)homepageURL; /* Public */ +- (void)finalizeInit; - (ResultWindowBase *)resultWindow; - (DirectoryPanel *)directoryPanel; - (DetailsPanel *)detailsPanel; - (HSRecentFiles *)recentResults; -- (NSMenu *)columnsMenu; /* Delegate */ - (void)applicationDidFinishLaunching:(NSNotification *)aNotification; @@ -53,15 +60,15 @@ http://www.hardcoded.net/licenses/bsd_license - (void)recentFileClicked:(NSString *)path; /* Actions */ -- (IBAction)loadResults:(id)sender; -- (IBAction)openWebsite:(id)sender; -- (IBAction)openHelp:(id)sender; -- (IBAction)showAboutBox:(id)sender; -- (IBAction)showDirectoryWindow:(id)sender; -- (IBAction)showPreferencesPanel:(id)sender; -- (IBAction)showResultWindow:(id)sender; -- (IBAction)showIgnoreList:(id)sender; -- (IBAction)startScanning:(id)sender; +- (void)loadResults; +- (void)openWebsite; +- (void)openHelp; +- (void)showAboutBox; +- (void)showDirectoryWindow; +- (void)showPreferencesPanel; +- (void)showResultWindow; +- (void)showIgnoreList; +- (void)startScanning; /* model --> view */ - (void)showMessage:(NSString *)msg; diff --git a/cocoa/base/AppDelegate.m b/cocoa/base/AppDelegateBase.m similarity index 89% rename from cocoa/base/AppDelegate.m rename to cocoa/base/AppDelegateBase.m index fa470998..9fcac96a 100644 --- a/cocoa/base/AppDelegate.m +++ b/cocoa/base/AppDelegateBase.m @@ -6,7 +6,7 @@ which should be included with this package. The terms are also available at http://www.hardcoded.net/licenses/bsd_license */ -#import "AppDelegate.h" +#import "AppDelegateBase.h" #import "ProgressController.h" #import "HSFairwareReminder.h" #import "HSPyUtil.h" @@ -14,19 +14,33 @@ http://www.hardcoded.net/licenses/bsd_license #import "Dialogs.h" #import "ValueTransformers.h" #import "PreferencesPanel_UI.h" -#import @implementation AppDelegateBase + +@synthesize recentResultsMenu; +@synthesize actionsMenu; +@synthesize columnsMenu; +@synthesize updater; + + (void)initialize { HSVTAdd *vt = [[[HSVTAdd alloc] initWithValue:4] autorelease]; [NSValueTransformer setValueTransformer:vt forName:@"vtRowHeightOffset"]; } -- (void)awakeFromNib +- (id)init { + self = [super init]; model = [[PyDupeGuru alloc] init]; [model bindCallback:createCallback(@"DupeGuruView", self)]; + [self setUpdater:[SUUpdater sharedUpdater]]; + return self; +} + +- (void)finalizeInit +{ + // We can only finalize initialization once the main menu has been created, which cannot happen + // before AppDelegate is created. NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; /* Because the pref pane is lazily loaded, we have to manually do the update check if the preference is set. @@ -93,10 +107,8 @@ http://www.hardcoded.net/licenses/bsd_license return _recentResults; } -- (NSMenu *)columnsMenu { return columnsMenu; } - /* Actions */ -- (IBAction)loadResults:(id)sender +- (void)loadResults { NSOpenPanel *op = [NSOpenPanel openPanel]; [op setCanChooseFiles:YES]; @@ -112,12 +124,12 @@ http://www.hardcoded.net/licenses/bsd_license } } -- (IBAction)openWebsite:(id)sender +- (void)openWebsite { [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:[self homepageURL]]]; } -- (IBAction)openHelp:(id)sender +- (void)openHelp { NSBundle *b = [NSBundle mainBundle]; NSString *p = [b pathForResource:@"index" ofType:@"html" inDirectory:@"help"]; @@ -125,40 +137,40 @@ http://www.hardcoded.net/licenses/bsd_license [[NSWorkspace sharedWorkspace] openURL:u]; } -- (IBAction)showAboutBox:(id)sender +- (void)showAboutBox { if (_aboutBox == nil) { _aboutBox = [[HSAboutBox alloc] initWithApp:model]; } - [[_aboutBox window] makeKeyAndOrderFront:sender]; + [[_aboutBox window] makeKeyAndOrderFront:nil]; } -- (IBAction)showDirectoryWindow:(id)sender +- (void)showDirectoryWindow { [[[self directoryPanel] window] makeKeyAndOrderFront:nil]; } -- (IBAction)showPreferencesPanel:(id)sender +- (void)showPreferencesPanel { if (_preferencesPanel == nil) { _preferencesPanel = [[NSWindowController alloc] initWithWindow:createPreferencesPanel_UI(nil)]; } - [_preferencesPanel showWindow:sender]; + [_preferencesPanel showWindow:nil]; } -- (IBAction)showResultWindow:(id)sender +- (void)showResultWindow { [[[self resultWindow] window] makeKeyAndOrderFront:nil]; } -- (IBAction)showIgnoreList:(id)sender +- (void)showIgnoreList { [model showIgnoreList]; } -- (IBAction)startScanning:(id)sender +- (void)startScanning { - [[self resultWindow] startDuplicateScan:sender]; + [[self resultWindow] startDuplicateScan:nil]; } diff --git a/cocoa/base/DirectoryPanel.m b/cocoa/base/DirectoryPanel.m index 5ef3613a..d74a3494 100644 --- a/cocoa/base/DirectoryPanel.m +++ b/cocoa/base/DirectoryPanel.m @@ -116,7 +116,7 @@ http://www.hardcoded.net/licenses/bsd_license while ([m numberOfItems] > 0) { [m removeItemAtIndex:0]; } - NSMenuItem *mi = [m addItemWithTitle:TR(@"Load from file...") action:@selector(loadResults:) keyEquivalent:@""]; + NSMenuItem *mi = [m addItemWithTitle:TR(@"Load from file...") action:@selector(loadResults) keyEquivalent:@""]; [mi setTarget:_app]; [m addItem:[NSMenuItem separatorItem]]; [[_app recentResults] fillMenu:m]; @@ -124,7 +124,7 @@ http://www.hardcoded.net/licenses/bsd_license [[loadRecentButtonPopUp cell] performClickWithFrame:[sender frame] inView:[sender superview]]; } else { - [_app loadResults:nil]; + [_app loadResults]; } } diff --git a/cocoa/base/ResultWindow.h b/cocoa/base/ResultWindow.h index 59772542..3d62d260 100644 --- a/cocoa/base/ResultWindow.h +++ b/cocoa/base/ResultWindow.h @@ -28,7 +28,6 @@ http://www.hardcoded.net/licenses/bsd_license AppDelegateBase *app; PyDupeGuru *model; - NSMenu *columnsMenu; ResultTable *table; StatsLabel *statsLabel; ProblemDialog *problemDialog; diff --git a/cocoa/base/ResultWindow.m b/cocoa/base/ResultWindow.m index 44c6dd13..5e0d3ea0 100644 --- a/cocoa/base/ResultWindow.m +++ b/cocoa/base/ResultWindow.m @@ -30,7 +30,6 @@ http://www.hardcoded.net/licenses/bsd_license model = [app model]; [self setWindow:createResultWindow_UI(self)]; [[self window] setTitle:fmt(@"%@ Results", [model appName])]; - columnsMenu = [app columnsMenu]; /* Put a cute iTunes-like bottom bar */ [[self window] setContentBorderThickness:28 forEdge:NSMinYEdge]; table = [[ResultTable alloc] initWithPyRef:[model resultTable] view:matches]; @@ -73,13 +72,13 @@ http://www.hardcoded.net/licenses/bsd_license NSArray *pair = [menuItems objectAtIndex:i]; NSString *display = [pair objectAtIndex:0]; BOOL marked = n2b([pair objectAtIndex:1]); - NSMenuItem *mi = [columnsMenu addItemWithTitle:display action:@selector(toggleColumn:) keyEquivalent:@""]; + NSMenuItem *mi = [[app columnsMenu] addItemWithTitle:display action:@selector(toggleColumn:) keyEquivalent:@""]; [mi setTarget:self]; [mi setState:marked ? NSOnState : NSOffState]; [mi setTag:i]; } - [columnsMenu addItem:[NSMenuItem separatorItem]]; - NSMenuItem *mi = [columnsMenu addItemWithTitle:TR(@"Reset to Default") + [[app columnsMenu] addItem:[NSMenuItem separatorItem]]; + NSMenuItem *mi = [[app columnsMenu] addItemWithTitle:TR(@"Reset to Default") action:@selector(resetColumnsToDefault:) keyEquivalent:@""]; [mi setTarget:self]; } diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 9e820865..27c6d14e 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -124,3 +124,56 @@ "Folders" = "Folders"; "Font size:" = "Font size:"; +/* Main Menu */ +"Bring All to Front" = "Bring All to Front"; +"Window" = "Window"; +"Minimize" = "Minimize"; +"About dupeGuru" = "About dupeGuru"; +"Help" = "Help"; +"dupeGuru Help" = "dupeGuru Help"; +"Hide dupeGuru" = "Hide dupeGuru"; +"Quit dupeGuru" = "Quit dupeGuru"; +"Hide Others" = "Hide Others"; +"Show All" = "Show All"; +"Zoom" = "Zoom"; +"Details Panel" = "Details Panel"; +"Preferences..." = "Preferences..."; +"Folder Selection Window" = "Folder Selection Window"; +"Actions" = "Actions"; +"Send Marked to Trash..." = "Send Marked to Trash..."; +"Move Marked to..." = "Move Marked to..."; +"Copy Marked to..." = "Copy Marked to..."; +"Make Selected Reference" = "Make Selected Reference"; +"Remove Marked from Results" = "Remove Marked from Results"; +"Remove Selected from Results" = "Remove Selected from Results"; +"Columns" = "Columns"; +"Open Selected with Default Application" = "Open Selected with Default Application"; +"Reveal Selected in Finder" = "Reveal Selected in Finder"; +"Add Selected to Ignore List" = "Add Selected to Ignore List"; +"Close Window" = "Close Window"; +"Start Duplicate Scan" = "Start Duplicate Scan"; +"Rename Selected" = "Rename Selected"; +"Export Results to XHTML" = "Export Results to XHTML"; +"Check for update..." = "Check for update..."; +"Mode" = "Mode"; +"Show Dupes Only" = "Show Dupes Only"; +"Show Delta Values" = "Show Delta Values"; +"Edit" = "Edit"; +"Cut" = "Cut"; +"Copy" = "Copy"; +"Paste" = "Paste"; +"Mark All" = "Mark All"; +"Mark None" = "Mark None"; +"Invert Marking" = "Invert Marking"; +"Mark Selected" = "Mark Selected"; +"dupeGuru Website" = "dupeGuru Website"; +"Invoke Custom Command" = "Invoke Custom Command"; +"File" = "File"; +"Load Results..." = "Load Results..."; +"Save Results..." = "Save Results..."; +"Load Recent Results" = "Load Recent Results"; +"Results Window" = "Results Window"; +"Re-Prioritize Results" = "Re-Prioritize Results"; +"Quick Look" = "Quick Look"; +"Ignore List" = "Ignore List"; +"Filter Results..." = "Filter Results..."; diff --git a/cocoa/base/en.lproj/MainMenu.strings b/cocoa/base/en.lproj/MainMenu.strings deleted file mode 100644 index c0cbabc6..00000000 --- a/cocoa/base/en.lproj/MainMenu.strings +++ /dev/null @@ -1,180 +0,0 @@ - -/* Class = "NSMenuItem"; title = "Bring All to Front"; ObjectID = "5"; */ -"5.title" = "Bring All to Front"; - -/* Class = "NSMenuItem"; title = "Window"; ObjectID = "19"; */ -"19.title" = "Window"; - -/* Class = "NSMenuItem"; title = "Minimize"; ObjectID = "23"; */ -"23.title" = "Minimize"; - -/* Class = "NSMenu"; title = "Window"; ObjectID = "24"; */ -"24.title" = "Window"; - -/* Class = "NSMenuItem"; title = "About dupeGuru"; ObjectID = "58"; */ -"58.title" = "About dupeGuru"; - -/* Class = "NSMenuItem"; title = "Help"; ObjectID = "103"; */ -"103.title" = "Help"; - -/* Class = "NSMenu"; title = "Help"; ObjectID = "106"; */ -"106.title" = "Help"; - -/* Class = "NSMenuItem"; title = "dupeGuru Help"; ObjectID = "111"; */ -"111.title" = "dupeGuru Help"; - -/* Class = "NSMenuItem"; title = "Hide dupeGuru"; ObjectID = "134"; */ -"134.title" = "Hide dupeGuru"; - -/* Class = "NSMenuItem"; title = "Quit dupeGuru"; ObjectID = "136"; */ -"136.title" = "Quit dupeGuru"; - -/* Class = "NSMenuItem"; title = "Hide Others"; ObjectID = "145"; */ -"145.title" = "Hide Others"; - -/* Class = "NSMenuItem"; title = "Show All"; ObjectID = "150"; */ -"150.title" = "Show All"; - -/* Class = "NSMenuItem"; title = "Zoom"; ObjectID = "197"; */ -"197.title" = "Zoom"; - -/* Class = "NSMenuItem"; title = "Details Panel"; ObjectID = "398"; */ -"398.title" = "Details Panel"; - -/* Class = "NSMenuItem"; title = "Preferences..."; ObjectID = "541"; */ -"541.title" = "Preferences..."; - -/* Class = "NSMenuItem"; title = "Folder Selection Window"; ObjectID = "579"; */ -"579.title" = "Folder Selection Window"; - -/* Class = "NSMenuItem"; title = "Actions"; ObjectID = "597"; */ -"597.title" = "Actions"; - -/* Class = "NSMenu"; title = "Actions"; ObjectID = "598"; */ -"598.title" = "Actions"; - -/* Class = "NSMenuItem"; title = "Send Marked to Trash..."; ObjectID = "599"; */ -"599.title" = "Send Marked to Trash..."; - -/* Class = "NSMenuItem"; title = "Move Marked to..."; ObjectID = "600"; */ -"600.title" = "Move Marked to..."; - -/* Class = "NSMenuItem"; title = "Copy Marked to..."; ObjectID = "601"; */ -"601.title" = "Copy Marked to..."; - -/* Class = "NSMenuItem"; title = "Make Selected Reference"; ObjectID = "602"; */ -"602.title" = "Make Selected Reference"; - -/* Class = "NSMenuItem"; title = "Remove Marked from Results"; ObjectID = "603"; */ -"603.title" = "Remove Marked from Results"; - -/* Class = "NSMenuItem"; title = "Remove Selected from Results"; ObjectID = "605"; */ -"605.title" = "Remove Selected from Results"; - -/* Class = "NSMenuItem"; title = "Columns"; ObjectID = "618"; */ -"618.title" = "Columns"; - -/* Class = "NSMenu"; title = "Columns"; ObjectID = "619"; */ -"619.title" = "Columns"; - -/* Class = "NSMenuItem"; title = "Open Selected with Default Application"; ObjectID = "708"; */ -"708.title" = "Open Selected with Default Application"; - -/* Class = "NSMenuItem"; title = "Reveal Selected in Finder"; ObjectID = "710"; */ -"710.title" = "Reveal Selected in Finder"; - -/* Class = "NSMenuItem"; title = "Add Selected to Ignore List"; ObjectID = "922"; */ -"922.title" = "Add Selected to Ignore List"; - -/* Class = "NSMenuItem"; title = "Close Window"; ObjectID = "924"; */ -"924.title" = "Close Window"; - -/* Class = "NSMenuItem"; title = "Start Duplicate Scan"; ObjectID = "926"; */ -"926.title" = "Start Duplicate Scan"; - -/* Class = "NSMenuItem"; title = "Rename Selected"; ObjectID = "933"; */ -"933.title" = "Rename Selected"; - -/* Class = "NSMenuItem"; title = "Export Results to XHTML"; ObjectID = "947"; */ -"947.title" = "Export Results to XHTML"; - -/* Class = "NSMenuItem"; title = "Check for update..."; ObjectID = "950"; */ -"950.title" = "Check for update..."; - -/* Class = "NSMenuItem"; title = "Mode"; ObjectID = "959"; */ -"959.title" = "Mode"; - -/* Class = "NSMenu"; title = "Mode"; ObjectID = "960"; */ -"960.title" = "Mode"; - -/* Class = "NSMenuItem"; title = "Show Dupes Only"; ObjectID = "961"; */ -"961.title" = "Show Dupes Only"; - -/* Class = "NSMenuItem"; title = "Show Delta Values"; ObjectID = "962"; */ -"962.title" = "Show Delta Values"; - -/* Class = "NSMenuItem"; title = "Edit"; ObjectID = "965"; */ -"965.title" = "Edit"; - -/* Class = "NSMenu"; title = "Edit"; ObjectID = "966"; */ -"966.title" = "Edit"; - -/* Class = "NSMenuItem"; title = "Cut"; ObjectID = "985"; */ -"985.title" = "Cut"; - -/* Class = "NSMenuItem"; title = "Copy"; ObjectID = "986"; */ -"986.title" = "Copy"; - -/* Class = "NSMenuItem"; title = "Paste"; ObjectID = "991"; */ -"991.title" = "Paste"; - -/* Class = "NSMenuItem"; title = "Mark All"; ObjectID = "1011"; */ -"1011.title" = "Mark All"; - -/* Class = "NSMenuItem"; title = "Mark None"; ObjectID = "1012"; */ -"1012.title" = "Mark None"; - -/* Class = "NSMenuItem"; title = "Invert Marking"; ObjectID = "1013"; */ -"1013.title" = "Invert Marking"; - -/* Class = "NSMenuItem"; title = "Mark Selected"; ObjectID = "1014"; */ -"1014.title" = "Mark Selected"; - -/* Class = "NSMenuItem"; title = "dupeGuru Website"; ObjectID = "1023"; */ -"1023.title" = "dupeGuru Website"; - -/* Class = "NSMenuItem"; title = "Invoke Custom Command"; ObjectID = "1177"; */ -"1177.title" = "Invoke Custom Command"; - -/* Class = "NSMenuItem"; title = "File"; ObjectID = "1203"; */ -"1203.title" = "File"; - -/* Class = "NSMenu"; title = "File"; ObjectID = "1204"; */ -"1204.title" = "File"; - -/* Class = "NSMenuItem"; title = "Load Results..."; ObjectID = "1205"; */ -"1205.title" = "Load Results..."; - -/* Class = "NSMenuItem"; title = "Save Results..."; ObjectID = "1206"; */ -"1206.title" = "Save Results..."; - -/* Class = "NSMenuItem"; title = "Load Recent Results"; ObjectID = "1239"; */ -"1239.title" = "Load Recent Results"; - -/* Class = "NSMenu"; title = "Load Recent Results"; ObjectID = "1240"; */ -"1240.title" = "Load Recent Results"; - -/* Class = "NSMenuItem"; title = "Results Window"; ObjectID = "1272"; */ -"1272.title" = "Results Window"; - -/* Class = "NSMenuItem"; title = "Re-Prioritize Results"; ObjectID = "1276"; */ -"1276.title" = "Re-Prioritize Results"; - -/* Class = "NSMenuItem"; title = "Quicklook"; ObjectID = "1280"; */ -"1280.title" = "Quick Look"; - -/* Class = "NSMenuItem"; title = "Ignore List"; ObjectID = "1283"; */ -"1283.title" = "Ignore List"; - -/* Class = "NSMenuItem"; title = "Filter Results..."; ObjectID = "1288"; */ -"1288.title" = "Filter Results..."; diff --git a/cocoa/base/en.lproj/MainMenu.xib b/cocoa/base/en.lproj/MainMenu.xib deleted file mode 100644 index 05152b3e..00000000 --- a/cocoa/base/en.lproj/MainMenu.xib +++ /dev/null @@ -1,2149 +0,0 @@ - - - - 1060 - 11E53 - 2182 - 1138.47 - 569.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 2182 - - - NSMenu - NSMenuItem - NSCustomObject - - - com.apple.InterfaceBuilder.CocoaPlugin - - - PluginDependencyRecalculationVersion - - - - - NSApplication - - - FirstResponder - - - NSApplication - - - MainMenu - - - - dupeGuru - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - submenuAction: - - dupeGuru - - - - About dupeGuru - - 2147483647 - - - - - - Check for update... - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences... - , - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide dupeGuru - h - 1048576 - 2147483647 - - - - - - Hide Others - h - 1572864 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit dupeGuru - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 2147483647 - - - submenuAction: - - File - - - - Load Results... - o - 1048576 - 2147483647 - - - - - - Load Recent Results - - 2147483647 - - - submenuAction: - - Load Recent Results - - - - - - Save Results... - s - 1048576 - 2147483647 - - - - - - Export Results to XHTML - E - 1048576 - 2147483647 - - - - - - - - - Edit - - 1048576 - 2147483647 - - - submenuAction: - - - Edit - - - - - Mark All - a - 1048576 - 2147483647 - - - - - - Mark None - A - 1048576 - 2147483647 - - - - - - Invert Marking - a - 1572864 - 2147483647 - - - - - - Mark Selected - a - 1310720 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Filter Results... - f - 1572864 - 2147483647 - - - - - - - - - Actions - - 1048576 - 2147483647 - - - submenuAction: - - Actions - - - - Start Duplicate Scan - d - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Send Marked to Trash... - t - 1048576 - 2147483647 - - - - - - Move Marked to... - m - 1048576 - 2147483647 - - - - - - Copy Marked to... - m - 1572864 - 2147483647 - - - - - - Remove Marked from Results - r - 1048576 - 2147483647 - - - - - - Re-Prioritize Results - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Remove Selected from Results - CA - 1048576 - 2147483647 - - - - - - Add Selected to Ignore List - g - 1048576 - 2147483647 - - - - - - Make Selected Reference -  - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Open Selected with Default Application - DQ - 1048576 - 2147483647 - - - - - - Reveal Selected in Finder - DQ - 1572864 - 2147483647 - - - - - - Invoke Custom Command - C - 262144 - 2147483647 - - - - - - Rename Selected - Aw - 2147483647 - - - - - - - - - Columns - - 1048576 - 2147483647 - - - submenuAction: - - Columns - - - - - - Mode - - 1048576 - 2147483647 - - - submenuAction: - - Mode - - - - Show Dupes Only - 1 - 1048576 - 2147483647 - - - - - - Show Delta Values - 2 - 1048576 - 2147483647 - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - Window - - - - Results Window - - 2147483647 - - - - - - Folder Selection Window - - 2147483647 - - - - - - Ignore List - - 2147483647 - - - - - - Details Panel - i - 1048576 - 2147483647 - - - - - - Quick Look - l - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Minimize - - 2147483647 - - - - - - Zoom - - 1048576 - 2147483647 - - - - - - Close Window - w - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Bring All to Front - - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - - Help - - 1048576 - 2147483647 - - - submenuAction: - - Help - - - - dupeGuru Help - ? - 1048576 - 2147483647 - - - - - - dupeGuru Website - - 1048576 - 2147483647 - - - - - - - - _NSMainMenu - - - AppDelegate - - - SUUpdater - - - - - - - terminate: - - - - 139 - - - - hideOtherApplications: - - - - 146 - - - - hide: - - - - 152 - - - - unhideAllApplications: - - - - 153 - - - - delegate - - - - 207 - - - - performMiniaturize: - - - - 37 - - - - arrangeInFront: - - - - 39 - - - - performZoom: - - - - 198 - - - - performClose: - - - - 925 - - - - cut: - - - - 996 - - - - copy: - - - - 998 - - - - paste: - - - - 1005 - - - - copyMarked: - - - - 1244 - - - - exportToXHTML: - - - - 1246 - - - - ignoreSelected: - - - - 1248 - - - - invokeCustomCommand: - - - - 1249 - - - - loadResults: - - - - 1250 - - - - markAll: - - - - 1251 - - - - markNone: - - - - 1252 - - - - markInvert: - - - - 1253 - - - - markSelected: - - - - 1254 - - - - moveMarked: - - - - 1255 - - - - openSelected: - - - - 1256 - - - - removeSelected: - - - - 1258 - - - - switchSelected: - - - - 1260 - - - - revealSelected: - - - - 1261 - - - - renameSelected: - - - - 1262 - - - - saveResults: - - - - 1263 - - - - toggleDetailsPanel: - - - - 1264 - - - - togglePowerMarker: - - - - 1265 - - - - toggleDelta: - - - - 1266 - - - - reprioritizeResults: - - - - 1278 - - - - removeMarked: - - - - 1279 - - - - toggleQuicklookPanel: - - - - 1282 - - - - trashMarked: - - - - 1286 - - - - focusOnFilterField: - - - - 1289 - - - - delegate - - - - 208 - - - - openWebsite: - - - - 1024 - - - - showAboutBox: - - - - 1232 - - - - openHelp: - - - - 1233 - - - - recentResultsMenu - - - - 1242 - - - - columnsMenu - - - - 1269 - - - - showPreferencesPanel: - - - - 1270 - - - - startScanning: - - - - 1271 - - - - showDirectoryWindow: - - - - 1273 - - - - showResultWindow: - - - - 1274 - - - - actionsMenu - - - - 1275 - - - - showIgnoreList: - - - - 1285 - - - - checkForUpdates: - - - - 951 - - - - delegate - - - - 1175 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 29 - - - - - - - - - - - - - MainMenu - - - 19 - - - - - - - - 24 - - - - - - - - - - - - - - - - - - 5 - - - - - 23 - - - - - 92 - - - - - 197 - - - - - 398 - - - - - 399 - - - - - 579 - - - - - 924 - - - - - 56 - - - - - - - - 57 - - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 136 - - - - - 144 - - - - - 145 - - - - - 149 - - - - - 150 - - - - - 541 - - - - - 542 - - - - - 950 - - - - - 103 - - - - - - - - 106 - - - - - - - - - 111 - - - - - 1023 - - - - - 597 - - - - - - - - 598 - - - - - - - - - - - - - - - - - - - - - - - 599 - - - - - 600 - - - - - 601 - - - - - 602 - - - - - 603 - - - - - 604 - - - - - 707 - - - - - 708 - - - - - 710 - - - - - 922 - - - - - 926 - - - - - 928 - - - - - 933 - - - - - 618 - - - - - - - - 619 - - - - - - 959 - - - - - - - - 960 - - - - - - - - - 961 - - - - - 962 - - - - - 965 - - - - - - - - 966 - - - - - - - - - - - - - - - - - 985 - - - - - 986 - - - - - 991 - - - - - 1011 - - - - - 1012 - - - - - 1013 - - - - - 1014 - - - - - 1018 - - - - - 206 - - - AppDelegate - - - 949 - - - SUUpdater - - - 605 - - - - - 1177 - - - - - 1203 - - - - - - - - 1204 - - - - - - - - - - - 1205 - - - - - 1206 - - - - - 947 - - - - - 1239 - - - - - - - - 1240 - - - - - - 1272 - - - - - 1276 - - - - - 1280 - - - - - 1283 - - - - - 1287 - - - - - 1288 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 1289 - - - - - AppDelegate - AppDelegateBase - - IBProjectSource - ./Classes/AppDelegate.h - - - - AppDelegateBase - NSObject - - id - id - id - id - id - id - id - id - id - - - - loadResults: - id - - - openHelp: - id - - - openWebsite: - id - - - showAboutBox: - id - - - showDirectoryWindow: - id - - - showIgnoreList: - id - - - showPreferencesPanel: - id - - - showResultWindow: - id - - - startScanning: - id - - - - NSMenu - NSMenu - NSMenu - - - - actionsMenu - NSMenu - - - columnsMenu - NSMenu - - - recentResultsMenu - NSMenu - - - - IBProjectSource - ./Classes/AppDelegateBase.h - - - - HSOutlineView - NSOutlineView - - copy: - id - - - copy: - - copy: - id - - - - IBProjectSource - ./Classes/HSOutlineView.h - - - - HSTableView - NSTableView - - IBProjectSource - ./Classes/HSTableView.h - - - - IgnoreListDialog - NSWindowController - - id - id - - - - clear: - id - - - removeSelected: - id - - - - ignoreListTableView - NSTableView - - - ignoreListTableView - - ignoreListTableView - NSTableView - - - - IBProjectSource - ./Classes/IgnoreListDialog.h - - - - PrioritizeDialog - NSWindowController - - id - id - id - id - - - - addSelected: - id - - - cancel: - id - - - ok: - id - - - removeSelected: - id - - - - NSPopUpButton - NSTableView - NSTableView - - - - categoryPopUpView - NSPopUpButton - - - criteriaTableView - NSTableView - - - prioritizationTableView - NSTableView - - - - IBProjectSource - ./Classes/PrioritizeDialog.h - - - - ProblemDialog - NSWindowController - - revealSelected: - id - - - revealSelected: - - revealSelected: - id - - - - problemTableView - NSTableView - - - problemTableView - - problemTableView - NSTableView - - - - IBProjectSource - ./Classes/ProblemDialog.h - - - - ResultWindowBase - NSWindowController - - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - id - - - - changeOptions: - id - - - copyMarked: - id - - - exportToXHTML: - id - - - filter: - id - - - focusOnFilterField: - id - - - ignoreSelected: - id - - - invokeCustomCommand: - id - - - markAll: - id - - - markInvert: - id - - - markNone: - id - - - markSelected: - id - - - moveMarked: - id - - - openClicked: - id - - - openSelected: - id - - - removeMarked: - id - - - removeSelected: - id - - - renameSelected: - id - - - reprioritizeResults: - id - - - resetColumnsToDefault: - id - - - revealSelected: - id - - - saveResults: - id - - - startDuplicateScan: - id - - - switchSelected: - id - - - toggleColumn: - id - - - toggleDelta: - id - - - toggleDetailsPanel: - id - - - togglePowerMarker: - id - - - toggleQuicklookPanel: - id - - - trashMarked: - id - - - - NSSearchField - HSTableView - NSSegmentedControl - NSToolbarItem - NSTextField - - - - filterField - NSSearchField - - - matches - HSTableView - - - optionsSwitch - NSSegmentedControl - - - optionsToolbarItem - NSToolbarItem - - - stats - NSTextField - - - - IBProjectSource - ./Classes/ResultWindowBase.h - - - - SUUpdater - NSObject - - checkForUpdates: - id - - - checkForUpdates: - - checkForUpdates: - id - - - - delegate - id - - - delegate - - delegate - id - - - - IBProjectSource - ./Classes/SUUpdater.h - - - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - YES - 3 - - {11, 11} - {10, 3} - - - diff --git a/cocoa/base/main.m b/cocoa/base/main.m index b6c47d9b..ccdf0d77 100644 --- a/cocoa/base/main.m +++ b/cocoa/base/main.m @@ -10,6 +10,8 @@ http://www.hardcoded.net/licenses/bsd_license #import #import #import +#import "AppDelegate.h" +#import "MainMenu_UI.h" int main(int argc, char *argv[]) { @@ -34,8 +36,14 @@ int main(int argc, char *argv[]) PyThreadState_Swap(NULL); PyEval_ReleaseLock(); } - int result = NSApplicationMain(argc, (const char **) argv); - Py_Finalize(); + + [NSApplication sharedApplication]; + AppDelegate *appDelegate = [[AppDelegate alloc] init]; + [NSApp setDelegate:appDelegate]; + [NSApp setMainMenu:createMainMenu_UI(appDelegate)]; + [appDelegate finalizeInit]; [pool release]; - return result; + [NSApp run]; + Py_Finalize(); + return 0; } diff --git a/cocoa/base/ui/directory_panel.py b/cocoa/base/ui/directory_panel.py index 7652c6d5..78599c2c 100644 --- a/cocoa/base/ui/directory_panel.py +++ b/cocoa/base/ui/directory_panel.py @@ -30,7 +30,7 @@ scanButton.keyEquivalent = '\\r' addButton.action = Action(owner, 'popupAddDirectoryMenu:') removeButton.action = Action(owner, 'removeSelectedDirectory') loadResultsButton.action = Action(owner, 'popupLoadRecentMenu:') -scanButton.action = Action(None, 'startScanning:') +scanButton.action = Action(None, 'startScanning') directoryOutline.font = Font(FontFamily.System, FontSize.SmallSystem) col = directoryOutline.addColumn('name', "Name", 100) diff --git a/cocoa/base/ui/main_menu.py b/cocoa/base/ui/main_menu.py new file mode 100644 index 00000000..8cb658e2 --- /dev/null +++ b/cocoa/base/ui/main_menu.py @@ -0,0 +1,75 @@ +ownerclass = 'AppDelegateBase' +ownerimport = 'AppDelegateBase.h' + +result = Menu("") +appMenu = result.addMenu("dupeGuru") +fileMenu = result.addMenu("File") +editMenu = result.addMenu("Edit") +actionMenu = result.addMenu("Actions") +owner.actionsMenu = actionMenu +owner.columnsMenu = result.addMenu("Columns") +modeMenu = result.addMenu("Mode") +windowMenu = result.addMenu("Window") +helpMenu = result.addMenu("Help") + +appMenu.addItem("About dupeGuru", Action(owner, 'showAboutBox')) +appMenu.addItem("Check for update...", Action(owner.updater, 'checkForUpdates:')) +appMenu.addSeparator() +NSApp.servicesMenu = appMenu.addMenu("Services") +appMenu.addSeparator() +appMenu.addItem("Hide dupeGuru", Action(NSApp, 'hide:'), 'cmd+h') +appMenu.addItem("Hide Others", Action(NSApp, 'hideOtherApplications:'), 'cmd+alt+h') +appMenu.addItem("Show All", Action(NSApp, 'unhideAllApplications:')) +appMenu.addSeparator() +appMenu.addItem("Quit dupeGuru", Action(NSApp, 'terminate:'), 'cmd+q') + +fileMenu.addItem("Load Results...", Action(None, 'loadResults'), 'cmd+o') +owner.recentResultsMenu = fileMenu.addMenu("Load Recent Results") +fileMenu.addItem("Save Results...", Action(None, 'saveResults:'), 'cmd+s') +fileMenu.addItem("Export Results to XHTML", Action(None, 'exportToXHTML:'), 'cmd+shift+e') + +editMenu.addItem("Mark All", Action(None, 'markAll:'), 'cmd+a') +editMenu.addItem("Mark None", Action(None, 'markNone:'), 'cmd+shift+a') +editMenu.addItem("Invert Marking", Action(None, 'markInvert:'), 'cmd+alt+a') +editMenu.addItem("Mark Selected", Action(None, 'markSelected:'), 'ctrl+cmd+a') +editMenu.addSeparator() +editMenu.addItem("Cut", Action(None, 'cut:'), 'cmd+x') +editMenu.addItem("Copy", Action(None, 'copy:'), 'cmd+c') +editMenu.addItem("Paste", Action(None, 'paste:'), 'cmd+v') +editMenu.addSeparator() +editMenu.addItem("Filter Results...", Action(None, 'focusOnFilterField:'), 'cmd+alt+f') + +actionMenu.addItem("Start Duplicate Scan", Action(owner, 'startScanning'), 'cmd+d') +actionMenu.addSeparator() +actionMenu.addItem("Send Marked to Trash...", Action(None, 'trashMarked:'), 'cmd+t') +actionMenu.addItem("Move Marked to...", Action(None, 'moveMarked:'), 'cmd+m') +actionMenu.addItem("Copy Marked to...", Action(None, 'copyMarked:'), 'cmd+alt+m') +actionMenu.addItem("Remove Marked from Results", Action(None, 'removeMarked:'), 'cmd+r') +actionMenu.addItem("Re-Prioritize Results", Action(None, 'reprioritizeResults:')) +actionMenu.addSeparator() +actionMenu.addItem("Remove Selected from Results", Action(None, 'removeSelected:'), 'cmd+backspace') +actionMenu.addItem("Add Selected to Ignore List", Action(None, 'ignoreSelected:'), 'cmd+g') +actionMenu.addItem("Make Selected Reference", Action(None, 'switchSelected:'), 'cmd+arrowup') +actionMenu.addSeparator() +actionMenu.addItem("Open Selected with Default Application", Action(None, 'openSelected:'), 'cmd+return') +actionMenu.addItem("Reveal Selected in Finder", Action(None, 'revealSelected:'), 'cmd+alt+return') +actionMenu.addItem("Invoke Custom Command", Action(None, 'invokeCustomCommand:'), 'cmd+shift+c') +actionMenu.addItem("Rename Selected", Action(None, 'renameSelected:')) + +modeMenu.addItem("Show Dupes Only", Action(None, 'togglePowerMarker:'), 'cmd+1') +modeMenu.addItem("Show Delta Values", Action(None, 'toggleDelta:'), 'cmd+2') + +windowMenu.addItem("Results Window", Action(owner, 'showResultWindow:')) +windowMenu.addItem("Folder Selection Window", Action(owner, 'showDirectoryWindow')) +windowMenu.addItem("Ignore List", Action(owner, 'showIgnoreList')) +windowMenu.addItem("Details Panel", Action(owner, 'toggleDetailsPanel'), 'cmd+i') +windowMenu.addItem("Quick Look", Action(owner, 'toggleQuicklookPanel'), 'cmd+l') +windowMenu.addSeparator() +windowMenu.addItem("Minimize", Action(None, 'performMinimize:')) +windowMenu.addItem("Zoom", Action(None, 'performZoom:')) +windowMenu.addItem("Close Window", Action(None, 'performClose:'), 'cmd+w') +windowMenu.addSeparator() +windowMenu.addItem("Bring All to Front", Action(None, 'arrangeInFront:')) + +helpMenu.addItem("dupeGuru Help", Action(owner, 'openHelp'), 'cmd+?') +helpMenu.addItem("dupeGuru Website", Action(owner, 'openWebsite')) diff --git a/cocoa/base/ui/result_window.py b/cocoa/base/ui/result_window.py index 0e978823..e64bbf92 100644 --- a/cocoa/base/ui/result_window.py +++ b/cocoa/base/ui/result_window.py @@ -50,7 +50,7 @@ optionsToolItem.view = optionsSegments # Popuplate menus actionPopup.menu.addItem("Send Marked to Trash...", action=Action(owner, 'trashMarked:')) actionPopup.menu.addItem("Move Marked to...", action=Action(owner, 'moveMarked:')) -actionPopup.menu.addItem("Copy Marked to...", action=Action(owner, 'moveMarked:')) +actionPopup.menu.addItem("Copy Marked to...", action=Action(owner, 'copyMarked:')) actionPopup.menu.addItem("Remove Marked from Results", action=Action(owner, 'removeMarked:')) actionPopup.menu.addSeparator() for menu in (actionPopup.menu, contextMenu): diff --git a/cocoa/me/AppDelegate.h b/cocoa/me/AppDelegate.h index db2a2c3a..3171034c 100644 --- a/cocoa/me/AppDelegate.h +++ b/cocoa/me/AppDelegate.h @@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license */ #import -#import "../base/AppDelegate.h" +#import "AppDelegateBase.h" #import "ResultWindow.h" #import "PyDupeGuru.h" diff --git a/cocoa/pe/AppDelegate.h b/cocoa/pe/AppDelegate.h index 5664f743..1da75027 100644 --- a/cocoa/pe/AppDelegate.h +++ b/cocoa/pe/AppDelegate.h @@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license */ #import -#import "../base/AppDelegate.h" +#import "AppDelegateBase.h" @interface AppDelegate : AppDelegateBase {} @end diff --git a/cocoa/se/AppDelegate.h b/cocoa/se/AppDelegate.h index f1414df7..b8b8566e 100644 --- a/cocoa/se/AppDelegate.h +++ b/cocoa/se/AppDelegate.h @@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/bsd_license */ #import -#import "../base/AppDelegate.h" +#import "AppDelegateBase.h" #import "PyDupeGuru.h" @interface AppDelegate : AppDelegateBase {} diff --git a/cocoa/se/InfoTemplate.plist b/cocoa/se/InfoTemplate.plist index c57bd836..848ffead 100644 --- a/cocoa/se/InfoTemplate.plist +++ b/cocoa/se/InfoTemplate.plist @@ -26,8 +26,6 @@ {version} CFBundleVersion {version} - NSMainNibFile - MainMenu NSPrincipalClass NSApplication NSHumanReadableCopyright diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj index bc4c20fe..57609f4c 100644 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj @@ -18,6 +18,7 @@ CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; }; CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; }; CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; }; + CE2B169C15C33EEB00F1BE29 /* MainMenu_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */; }; CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */; }; CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */; }; CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; }; @@ -48,7 +49,6 @@ CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDF6111EE561006618EA /* NSEventAdditions.m */; }; CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; }; CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; }; - CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE81134612E5CE4D00A36C80 /* MainMenu.xib */; }; CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; }; CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; }; CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8C25CB15B9FCC100D44175 /* cocoalib.strings */; }; @@ -90,7 +90,7 @@ CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F910FC9517500CD5728 /* ProgressController.m */; }; CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9B0FC9517500CD5728 /* Utils.m */; }; CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */; }; - CEFC7FB90FC951A700CD5728 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB20FC951A700CD5728 /* AppDelegate.m */; }; + CEFC7FB90FC951A700CD5728 /* AppDelegateBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */; }; CEFC7FBA0FC951A700CD5728 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */; }; CEFC7FBB0FC951A700CD5728 /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB80FC951A700CD5728 /* ResultWindow.m */; }; /* End PBXBuildFile section */ @@ -116,10 +116,8 @@ 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; }; 8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; - CE00BBC014910C5E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; - CE0564B614169DB100D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = ""; }; CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = ""; }; @@ -136,6 +134,8 @@ CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = ""; }; CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; }; CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; + CE2B169A15C33EEB00F1BE29 /* MainMenu_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainMenu_UI.h; sourceTree = ""; }; + CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainMenu_UI.m; sourceTree = ""; }; CE2EC62715BD931E00698FF3 /* DeletionOptions_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeletionOptions_UI.h; sourceTree = ""; }; CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeletionOptions_UI.m; sourceTree = ""; }; CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProblemDialog_UI.h; sourceTree = ""; }; @@ -166,7 +166,6 @@ CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = ""; }; CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; - CE5A5CA415A283C200C4E461 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; }; CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; }; CE6DD4E5124CA3070089A48D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; }; @@ -187,9 +186,6 @@ CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; }; CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; - CE7A697A146442160007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; - CE81134712E5CE4D00A36C80 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE81135312E5CE6100A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; CE8113EA12E5CE9A00A36C80 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; CE8113EC12E5CEA800A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; CE89240614239CC30024CE4E /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = ""; }; @@ -227,11 +223,8 @@ CEC3F8FB157668A300B26F0C /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = ""; }; CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; - CECFFF1F13CDF8D0003A4518 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CED638DF14B38CEC00B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; - CED64CFB145EF07700572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox_UI.h; path = ../../cocoalib/autogen/HSAboutBox_UI.h; sourceTree = ""; }; CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox_UI.m; path = ../../cocoalib/autogen/HSAboutBox_UI.m; sourceTree = ""; }; @@ -253,7 +246,6 @@ CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IgnoreListDialog_UI.m; sourceTree = ""; }; CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; - CEECCD1214C6370000A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = ""; }; CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = ""; }; @@ -286,8 +278,8 @@ CEFC7F9B0FC9517500CD5728 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; }; CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; }; CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ValueTransformers.m; path = ../../cocoalib/ValueTransformers.m; sourceTree = SOURCE_ROOT; }; - CEFC7FB10FC951A700CD5728 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ../base/AppDelegate.h; sourceTree = SOURCE_ROOT; }; - CEFC7FB20FC951A700CD5728 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = ../base/AppDelegate.m; sourceTree = SOURCE_ROOT; }; + CEFC7FB10FC951A700CD5728 /* AppDelegateBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegateBase.h; path = ../base/AppDelegateBase.h; sourceTree = SOURCE_ROOT; }; + CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegateBase.m; path = ../base/AppDelegateBase.m; sourceTree = SOURCE_ROOT; }; CEFC7FB30FC951A700CD5728 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; }; CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; @@ -372,7 +364,6 @@ CEA175C91461E8E600776591 /* locale */, CE073F5409CAE1A3005C1D2F /* help */, CEFC294309C89E0000D9F998 /* images */, - CEEFC0CA10943849001F3A39 /* xib */, CEEB135109C837A2004D2330 /* dupeguru.icns */, 8D1107310486CEB800E47090 /* Info.plist */, CE8113E912E5CE9A00A36C80 /* Localizable.strings */, @@ -393,6 +384,8 @@ CE1D091314BE0C6400CA6B8C /* autogen */ = { isa = PBXGroup; children = ( + CE2B169A15C33EEB00F1BE29 /* MainMenu_UI.h */, + CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */, CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */, CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */, CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */, @@ -505,14 +498,6 @@ name = autogen; sourceTree = ""; }; - CEEFC0CA10943849001F3A39 /* xib */ = { - isa = PBXGroup; - children = ( - CE81134612E5CE4D00A36C80 /* MainMenu.xib */, - ); - name = xib; - sourceTree = ""; - }; CEFC294309C89E0000D9F998 /* images */ = { isa = PBXGroup; children = ( @@ -564,8 +549,8 @@ CE91F214113BC22D0010360B /* StatsLabel.m */, CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */, CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */, - CEFC7FB10FC951A700CD5728 /* AppDelegate.h */, - CEFC7FB20FC951A700CD5728 /* AppDelegate.m */, + CEFC7FB10FC951A700CD5728 /* AppDelegateBase.h */, + CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */, CEFC7FB30FC951A700CD5728 /* Consts.h */, CEE7EA110FE675C80004E467 /* DetailsPanel.h */, CEE7EA120FE675C80004E467 /* DetailsPanel.m */, @@ -658,7 +643,6 @@ CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */, CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, - CE81134E12E5CE4D00A36C80 /* MainMenu.xib in Resources */, CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */, CE31819D13D85D9B00B6D649 /* about.xib in Resources */, CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */, @@ -682,7 +666,7 @@ CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */, CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */, CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */, - CEFC7FB90FC951A700CD5728 /* AppDelegate.m in Sources */, + CEFC7FB90FC951A700CD5728 /* AppDelegateBase.m in Sources */, CEFC7FBA0FC951A700CD5728 /* DirectoryPanel.m in Sources */, CEFC7FBB0FC951A700CD5728 /* ResultWindow.m in Sources */, CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */, @@ -743,6 +727,7 @@ CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */, CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */, CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */, + CE2B169C15C33EEB00F1BE29 /* MainMenu_UI.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -773,23 +758,6 @@ path = /Users/hsoft/src/dupeguru/cocoalib/xib; sourceTree = ""; }; - CE81134612E5CE4D00A36C80 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - CE81134712E5CE4D00A36C80 /* en */, - CE81135312E5CE6100A36C80 /* fr */, - CECFFF1F13CDF8D0003A4518 /* de */, - CE0564B614169DB100D3D907 /* zh_CN */, - CED64CFB145EF07700572B00 /* cs */, - CE7A697A146442160007D927 /* it */, - CE00BBC014910C5E006A717C /* hy */, - CED638DF14B38CEC00B88D00 /* ru */, - CEECCD1214C6370000A2F3A0 /* uk */, - CE5A5CA415A283C200C4E461 /* pt_BR */, - ); - name = MainMenu.xib; - sourceTree = SOURCE_ROOT; - }; CE8113E912E5CE9A00A36C80 /* Localizable.strings */ = { isa = PBXVariantGroup; children = ( From 81daef6145ae6e3cbdedb508f2f16b3a31df5486 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 28 Jul 2012 16:22:51 -0400 Subject: [PATCH 18/33] Replaced dupeGuru XCode project with a WAF build script. --HG-- branch : xibless --- .hgignore | 3 +- build.py | 40 +- cocoa/se/InfoTemplate.plist | 4 +- cocoa/se/dupeguru.xcodeproj/project.pbxproj | 875 ------------------ .../contents.xcworkspacedata | 7 - .../xcshareddata/WorkspaceSettings.xcsettings | 8 - cocoa/waf | Bin 0 -> 87674 bytes cocoa/wscript | 69 ++ 8 files changed, 94 insertions(+), 912 deletions(-) delete mode 100644 cocoa/se/dupeguru.xcodeproj/project.pbxproj delete mode 100644 cocoa/se/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 cocoa/se/dupeguru.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100755 cocoa/waf create mode 100644 cocoa/wscript diff --git a/.hgignore b/.hgignore index 70bc8b77..743fd274 100644 --- a/.hgignore +++ b/.hgignore @@ -6,7 +6,8 @@ run.py *.so *.mo *.pyd -.tm_* +*.waf* +.lock-waf* *.xcodeproj/xcuserdata *.xcodeproj/project.xcworkspace/xcuserdata conf.json diff --git a/build.py b/build.py index 291f6390..2cd88d75 100644 --- a/build.py +++ b/build.py @@ -13,12 +13,14 @@ from optparse import OptionParser import shutil import json import importlib +import glob from setuptools import setup, Extension from hscommon import sphinxgen from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace, - get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move) + get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move, copy, + create_osx_app_structure) from hscommon import loc def parse_args(): @@ -69,6 +71,7 @@ def build_xibless(edition): def build_cocoa(edition, dev): + ed = lambda s: s.format(edition) build_xibless(edition) build_cocoa_proxy_module() build_cocoa_bridging_interfaces(edition) @@ -79,7 +82,7 @@ def build_cocoa(edition, dev): os.symlink(get_python_header_folder(), 'build/PythonHeaders') if not op.exists('build/py'): os.mkdir('build/py') - cocoa_project_path = 'cocoa/{0}'.format(edition) + cocoa_project_path = ed('cocoa/{}') shutil.copy(op.join(cocoa_project_path, 'dg_cocoa.py'), 'build') specific_packages = { 'se': ['core_se'], @@ -98,22 +101,24 @@ def build_cocoa(edition, dev): copy_sysconfig_files_for_embed('build/py') os.chdir(cocoa_project_path) print('Generating Info.plist') - app_version = get_module_version('core_{}'.format(edition)) + app_version = get_module_version(ed('core_{}')) filereplace('InfoTemplate.plist', 'Info.plist', version=app_version) - print("Building the XCode project") - args = ['-project dupeguru.xcodeproj'] - if dev: - args.append('-configuration dev') - else: - args.append('-configuration release') - args = ' '.join(args) - os.system('xcodebuild {0}'.format(args)) - os.chdir('../..') + print("Compiling with WAF") + os.chdir('..') + os.system('{0} waf configure && {0} waf'.format(sys.executable)) + os.chdir('..') + print("Creating the .app folder") + image_path = ed('cocoa/{}/dupeguru.icns') + resources = [image_path, 'cocoa/base/dsa_pub.pem', 'build/dg_cocoa.py', + 'build/py', 'build/help'] + glob.glob('cocoa/base/*.lproj') + frameworks = ['build/Python', 'cocoalib/Sparkle.framework'] + create_osx_app_structure('build/dupeGuru.app', 'cocoa/build/dupeGuru', ed('cocoa/{}/Info.plist'), + resources, frameworks, symlink_resources=dev) print("Creating the run.py file") app_path = { - 'se': 'cocoa/se/dupeGuru.app', - 'me': 'cocoa/me/dupeGuru\\ ME.app', - 'pe': 'cocoa/pe/dupeGuru\\ PE.app', + 'se': 'build/dupeGuru.app', + 'me': 'build/dupeGuru\\ ME.app', + 'pe': 'build/dupeGuru\\ PE.app', }[edition] tmpl = open('run_template_cocoa.py', 'rt').read() run_contents = tmpl.replace('{{app_path}}', app_path) @@ -158,10 +163,7 @@ def build_localizations(ui, edition): os.makedirs(dest_lproj) loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings')) pofile = op.join('cocoalib', 'locale', lang, 'LC_MESSAGES', 'cocoalib.po') - cocoalib_dest = op.join('cocoalib', lang + '.lproj', 'cocoalib.strings') - if not op.exists(op.dirname(cocoalib_dest)): - os.makedirs(op.dirname(cocoalib_dest)) - loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), cocoalib_dest) + loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), op.join(dest_lproj, 'cocoalib.strings')) elif ui == 'qt': loc.compile_all_po(op.join('qtlib', 'locale')) loc.merge_locale_dir(op.join('qtlib', 'locale'), 'locale') diff --git a/cocoa/se/InfoTemplate.plist b/cocoa/se/InfoTemplate.plist index 848ffead..cfcd0a10 100644 --- a/cocoa/se/InfoTemplate.plist +++ b/cocoa/se/InfoTemplate.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion English CFBundleExecutable - ${EXECUTABLE_NAME} + dupeGuru CFBundleHelpBookFolder dupeguru_help CFBundleHelpBookName @@ -17,7 +17,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - ${PRODUCT_NAME} + dupeGuru CFBundlePackageType APPL CFBundleSignature diff --git a/cocoa/se/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj deleted file mode 100644 index 57609f4c..00000000 --- a/cocoa/se/dupeguru.xcodeproj/project.pbxproj +++ /dev/null @@ -1,875 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; }; - CE18004D14BDD837001B6329 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; }; - CE18004F14BDD854001B6329 /* Python in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; }; - CE18005114BDD87B001B6329 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE18005014BDD87B001B6329 /* py */; }; - CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091514BE0C6400CA6B8C /* ObjP.m */; }; - CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */; }; - CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */; }; - CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; }; - CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; }; - CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; }; - CE2B169C15C33EEB00F1BE29 /* MainMenu_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */; }; - CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */; }; - CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */; }; - CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; }; - CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; }; - CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; }; - CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; }; - CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */; }; - CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */; }; - CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */; }; - CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C131510ED2E00484122 /* IgnoreListDialog.m */; }; - CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; }; - CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; }; - CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4746D214C09C12001A66DE /* PyProblemDialog.m */; }; - CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5335FB142BBFAF008E5374 /* HSQuicklook.m */; }; - CE533603142BC034008E5374 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE533602142BC034008E5374 /* Quartz.framework */; }; - CE548CC614BF903D00D180CB /* PyPrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */; }; - CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC514BF903D00D180CB /* PyPrioritizeList.m */; }; - CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9814C07BCF004CA031 /* PyOutline.m */; }; - CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9D14C0801F004CA031 /* PySelectableList.m */; }; - CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; }; - CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD4E6124CA3070089A48D /* ResultTable.m */; }; - CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD546124CAF1F0089A48D /* HSTableView.m */; }; - CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */; }; - CE76FDC4111EE37C006618EA /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDBF111EE37C006618EA /* HSOutlineView.m */; }; - CE76FDC5111EE37C006618EA /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */; }; - CE76FDC6111EE37C006618EA /* NSTableViewAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */; }; - CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */; }; - CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDF6111EE561006618EA /* NSEventAdditions.m */; }; - CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; }; - CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; }; - CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; }; - CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; }; - CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8C25CB15B9FCC100D44175 /* cocoalib.strings */; }; - CE91F216113BC22D0010360B /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE91F214113BC22D0010360B /* StatsLabel.m */; }; - CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */; }; - CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22C14C080CF005C31FD /* PyGUIObject.m */; }; - CE9FC23014C08622005C31FD /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22F14C08622005C31FD /* PyTable.m */; }; - CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC23214C0866F005C31FD /* PyResultTable.m */; }; - CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; }; - CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */; }; - CEB2AF5614C49AC800F907A9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB2AF5514C49AC800F907A9 /* main.m */; }; - CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */; }; - CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBCE2D71573FE49000402E1 /* HSPyUtil.m */; }; - CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FB157668A300B26F0C /* DeletionOptions.m */; }; - CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */; }; - CEE49F4015B9F4E1002BD78B /* HSAboutBox_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */; }; - CEE49F4115B9F4E1002BD78B /* HSDemoReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */; }; - CEE49F4215B9F4E1002BD78B /* HSEnterCode_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */; }; - CEE49F4315B9F4E1002BD78B /* HSErrorReportWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */; }; - CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */; }; - CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */; }; - CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */; }; - CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; }; - CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */; }; - CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; - CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */; }; - CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */; }; - CEEF2A1E14C0A8480082545A /* PyFairware.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1C14C0A8480082545A /* PyFairware.m */; }; - CEEF2A3C14C0B9050082545A /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3114C0B9050082545A /* HSColumns.m */; }; - CEEF2A3D14C0B9050082545A /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3314C0B9050082545A /* HSGUIController.m */; }; - CEEF2A3E14C0B9050082545A /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3514C0B9050082545A /* HSOutline.m */; }; - CEEF2A3F14C0B9050082545A /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3714C0B9050082545A /* HSPopUpList.m */; }; - CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3914C0B9050082545A /* HSSelectableList.m */; }; - CEEF2A4114C0B9050082545A /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3B14C0B9050082545A /* HSTable.m */; }; - CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; }; - CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */; }; - CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; }; - CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; }; - CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F910FC9517500CD5728 /* ProgressController.m */; }; - CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9B0FC9517500CD5728 /* Utils.m */; }; - CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */; }; - CEFC7FB90FC951A700CD5728 /* AppDelegateBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */; }; - CEFC7FBA0FC951A700CD5728 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */; }; - CEFC7FBB0FC951A700CD5728 /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB80FC951A700CD5728 /* ResultWindow.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - CECC02B709A36E8200CC0A94 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */, - CE18004F14BDD854001B6329 /* Python in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* 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 = ""; }; - 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; }; - 8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; - CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; - CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; - CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; - CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = ""; }; - CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = ""; }; - CE18005014BDD87B001B6329 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = ""; }; - CE1D091414BE0C6400CA6B8C /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = ""; }; - CE1D091514BE0C6400CA6B8C /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = ""; }; - CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = ""; }; - CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = ""; }; - CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreferencesPanel_UI.h; sourceTree = ""; }; - CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreferencesPanel_UI.m; sourceTree = ""; }; - CE275C5414BF712B00265960 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = ""; }; - CE275C5514BF712B00265960 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = ""; }; - CE275C5814BF71DF00265960 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = ""; }; - CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = ""; }; - CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; }; - CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; - CE2B169A15C33EEB00F1BE29 /* MainMenu_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainMenu_UI.h; sourceTree = ""; }; - CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainMenu_UI.m; sourceTree = ""; }; - CE2EC62715BD931E00698FF3 /* DeletionOptions_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeletionOptions_UI.h; sourceTree = ""; }; - CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeletionOptions_UI.m; sourceTree = ""; }; - CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProblemDialog_UI.h; sourceTree = ""; }; - CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProblemDialog_UI.m; sourceTree = ""; }; - 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; }; - CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailsPanel_UI.h; sourceTree = ""; }; - CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel_UI.m; sourceTree = ""; }; - CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = ""; }; - CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = ""; }; - CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = ""; }; - CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = ""; }; - CE412C121510ED2E00484122 /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = ""; }; - CE412C131510ED2E00484122 /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = ""; }; - CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; sourceTree = SOURCE_ROOT; }; - CE4746D114C09C12001A66DE /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = ""; }; - CE4746D214C09C12001A66DE /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = ""; }; - CE5335FA142BBFAF008E5374 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = ""; }; - CE5335FB142BBFAF008E5374 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = ""; }; - CE533602142BC034008E5374 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; }; - CE548CC214BF903D00D180CB /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeDialog.h; sourceTree = ""; }; - CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeDialog.m; sourceTree = ""; }; - CE548CC414BF903D00D180CB /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeList.h; sourceTree = ""; }; - CE548CC514BF903D00D180CB /* PyPrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeList.m; sourceTree = ""; }; - CE587E9714C07BCF004CA031 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = ""; }; - CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = ""; }; - CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = ""; }; - CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = ""; }; - CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; }; - CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; }; - CE6DD4E5124CA3070089A48D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; }; - CE6DD4E6124CA3070089A48D /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; }; - CE6DD545124CAF1F0089A48D /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; }; - CE6DD546124CAF1F0089A48D /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; }; - CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; }; - CE76FDBE111EE37C006618EA /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = ""; }; - CE76FDBF111EE37C006618EA /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = ""; }; - CE76FDC0111EE37C006618EA /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = ""; }; - CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSIndexPathAdditions.m; sourceTree = ""; }; - CE76FDC2111EE37C006618EA /* NSTableViewAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTableViewAdditions.h; sourceTree = ""; }; - CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = ""; }; - CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryOutline.h; path = ../base/DirectoryOutline.h; sourceTree = SOURCE_ROOT; }; - CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; }; - CE76FDF5111EE561006618EA /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; }; - CE76FDF6111EE561006618EA /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; }; - CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; }; - CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; - CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; - CE8113EA12E5CE9A00A36C80 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - CE8113EC12E5CEA800A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - CE89240614239CC30024CE4E /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = ""; }; - CE89240714239CC30024CE4E /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = ""; }; - CE8C25CC15B9FCC100D44175 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../../cocoalib/en.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25CF15B9FCF300D44175 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../../cocoalib/cs.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25D015B9FCF300D44175 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../../cocoalib/de.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25D115B9FCF300D44175 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../../cocoalib/fr.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25D215B9FCF300D44175 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../../cocoalib/hy.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25D315B9FCF300D44175 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../../cocoalib/it.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25D415B9FCF300D44175 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../../cocoalib/pt_BR.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25D515B9FCF300D44175 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../../cocoalib/ru.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25D615B9FCF300D44175 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../../cocoalib/uk.lproj/cocoalib.strings; sourceTree = ""; }; - CE8C25D715B9FCF300D44175 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../../cocoalib/zh_CN.lproj/cocoalib.strings; sourceTree = ""; }; - CE91F213113BC22D0010360B /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; }; - CE91F214113BC22D0010360B /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; }; - CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = ""; }; - CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = ""; }; - CE9FC22B14C080CF005C31FD /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = ""; }; - CE9FC22C14C080CF005C31FD /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = ""; }; - CE9FC22E14C08622005C31FD /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = ""; }; - CE9FC22F14C08622005C31FD /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = ""; }; - CE9FC23114C0866F005C31FD /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyResultTable.h; sourceTree = ""; }; - CE9FC23214C0866F005C31FD /* PyResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyResultTable.m; sourceTree = ""; }; - CEA175C91461E8E600776591 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = ""; }; - CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = ""; }; - CEB2AF5514C49AC800F907A9 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = ""; }; - CEB57990146ADC5100EDF7D7 /* HSConsts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSConsts.h; path = ../../cocoalib/HSConsts.h; sourceTree = ""; }; - CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrioritizeDialog_UI.h; sourceTree = ""; }; - CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PrioritizeDialog_UI.m; sourceTree = ""; }; - CEBCE2D61573FE49000402E1 /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = ""; }; - CEBCE2D71573FE49000402E1 /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = ""; }; - CEBCE2DA1573FEBF000402E1 /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = ""; }; - CEC3F8FA157668A300B26F0C /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = ""; }; - CEC3F8FB157668A300B26F0C /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = ""; }; - CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; - CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; - CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; - CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; - CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = ""; }; - CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox_UI.h; path = ../../cocoalib/autogen/HSAboutBox_UI.h; sourceTree = ""; }; - CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox_UI.m; path = ../../cocoalib/autogen/HSAboutBox_UI.m; sourceTree = ""; }; - CEE49F3615B9F4E1002BD78B /* HSDemoReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSDemoReminder_UI.h; path = ../../cocoalib/autogen/HSDemoReminder_UI.h; sourceTree = ""; }; - CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSDemoReminder_UI.m; path = ../../cocoalib/autogen/HSDemoReminder_UI.m; sourceTree = ""; }; - CEE49F3815B9F4E1002BD78B /* HSEnterCode_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSEnterCode_UI.h; path = ../../cocoalib/autogen/HSEnterCode_UI.h; sourceTree = ""; }; - CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSEnterCode_UI.m; path = ../../cocoalib/autogen/HSEnterCode_UI.m; sourceTree = ""; }; - CEE49F3A15B9F4E1002BD78B /* HSErrorReportWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow_UI.h; path = ../../cocoalib/autogen/HSErrorReportWindow_UI.h; sourceTree = ""; }; - CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow_UI.m; path = ../../cocoalib/autogen/HSErrorReportWindow_UI.m; sourceTree = ""; }; - CEE49F3C15B9F4E1002BD78B /* HSFairwareReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder_UI.h; path = ../../cocoalib/autogen/HSFairwareReminder_UI.h; sourceTree = ""; }; - CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder_UI.m; path = ../../cocoalib/autogen/HSFairwareReminder_UI.m; sourceTree = ""; }; - CEE49F3E15B9F4E1002BD78B /* ProgressController_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController_UI.h; path = ../../cocoalib/autogen/ProgressController_UI.h; sourceTree = ""; }; - CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController_UI.m; path = ../../cocoalib/autogen/ProgressController_UI.m; sourceTree = ""; }; - CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultWindow_UI.h; sourceTree = ""; }; - CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultWindow_UI.m; sourceTree = ""; }; - CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; }; - CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; - CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IgnoreListDialog_UI.h; sourceTree = ""; }; - CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IgnoreListDialog_UI.m; sourceTree = ""; }; - CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; - CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; - CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = ""; }; - CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = ""; }; - CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = ""; }; - CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuruBase.m; sourceTree = ""; }; - CEEF2A1B14C0A8480082545A /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyFairware.h; sourceTree = ""; }; - CEEF2A1C14C0A8480082545A /* PyFairware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyFairware.m; sourceTree = ""; }; - CEEF2A3014C0B9050082545A /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = ""; }; - CEEF2A3114C0B9050082545A /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = ""; }; - CEEF2A3214C0B9050082545A /* HSGUIController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController.h; sourceTree = ""; }; - CEEF2A3314C0B9050082545A /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = ""; }; - CEEF2A3414C0B9050082545A /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = ""; }; - CEEF2A3514C0B9050082545A /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = ""; }; - CEEF2A3614C0B9050082545A /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = ""; }; - CEEF2A3714C0B9050082545A /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = ""; }; - CEEF2A3814C0B9050082545A /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = ""; }; - CEEF2A3914C0B9050082545A /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = ""; }; - CEEF2A3A14C0B9050082545A /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = ""; }; - CEEF2A3B14C0B9050082545A /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = ""; }; - CEEF2A4214C0BB430082545A /* Worker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Worker.h; path = ../../cocoalib/Worker.h; sourceTree = ""; }; - CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; }; - CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; }; - CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel_UI.h; sourceTree = ""; }; - CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel_UI.m; sourceTree = ""; }; - CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; }; - CEFC7F8A0FC9517500CD5728 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; }; - CEFC7F8B0FC9517500CD5728 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; }; - CEFC7F900FC9517500CD5728 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; }; - CEFC7F910FC9517500CD5728 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; }; - CEFC7F9A0FC9517500CD5728 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; }; - CEFC7F9B0FC9517500CD5728 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; }; - CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; }; - CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ValueTransformers.m; path = ../../cocoalib/ValueTransformers.m; sourceTree = SOURCE_ROOT; }; - CEFC7FB10FC951A700CD5728 /* AppDelegateBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegateBase.h; path = ../base/AppDelegateBase.h; sourceTree = SOURCE_ROOT; }; - CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegateBase.m; path = ../base/AppDelegateBase.m; sourceTree = SOURCE_ROOT; }; - CEFC7FB30FC951A700CD5728 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; }; - CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; - CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; - CEFC7FB70FC951A700CD5728 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; }; - CEFC7FB80FC951A700CD5728 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CE18004D14BDD837001B6329 /* Python in Frameworks */, - CE533603142BC034008E5374 /* Quartz.framework in Frameworks */, - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* DGSE */ = { - isa = PBXGroup; - children = ( - CE381C9509914ACE003581CE /* AppDelegate.h */, - CE381C9409914ACE003581CE /* AppDelegate.m */, - CE381C9B09914ADF003581CE /* ResultWindow.h */, - CE381C9A09914ADF003581CE /* ResultWindow.m */, - ); - name = DGSE; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - CE18004C14BDD837001B6329 /* Python */, - CE45579A0AE3BC2B005A9546 /* Sparkle.framework */, - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - CE533602142BC034008E5374 /* Quartz.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* dupeGuru.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* dupeguru */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* DGSE */, - CEFC7FB00FC9518F00CD5728 /* dgbase */, - CE1D091314BE0C6400CA6B8C /* autogen */, - CEFC7F890FC9513600CD5728 /* cocoalib */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = dupeguru; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */, - CE18005014BDD87B001B6329 /* py */, - CEA175C91461E8E600776591 /* locale */, - CE073F5409CAE1A3005C1D2F /* help */, - CEFC294309C89E0000D9F998 /* images */, - CEEB135109C837A2004D2330 /* dupeguru.icns */, - 8D1107310486CEB800E47090 /* Info.plist */, - CE8113E912E5CE9A00A36C80 /* Localizable.strings */, - CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - CE1D091314BE0C6400CA6B8C /* autogen */ = { - isa = PBXGroup; - children = ( - CE2B169A15C33EEB00F1BE29 /* MainMenu_UI.h */, - CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */, - CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */, - CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */, - CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */, - CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */, - CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */, - CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */, - CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */, - CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */, - CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */, - CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */, - CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */, - CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */, - CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */, - CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */, - CE2EC62715BD931E00698FF3 /* DeletionOptions_UI.h */, - CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */, - CE9FC22B14C080CF005C31FD /* PyGUIObject.h */, - CE9FC22C14C080CF005C31FD /* PyGUIObject.m */, - CE275C5814BF71DF00265960 /* PyColumns.h */, - CE275C5914BF71DF00265960 /* PyColumns.m */, - CE587E9714C07BCF004CA031 /* PyOutline.h */, - CE587E9814C07BCF004CA031 /* PyOutline.m */, - CE587E9C14C0801F004CA031 /* PySelectableList.h */, - CE587E9D14C0801F004CA031 /* PySelectableList.m */, - CE9FC22E14C08622005C31FD /* PyTable.h */, - CE9FC22F14C08622005C31FD /* PyTable.m */, - CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */, - CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */, - CE275C5414BF712B00265960 /* PyDirectoryOutline.h */, - CE275C5514BF712B00265960 /* PyDirectoryOutline.m */, - CE548CC214BF903D00D180CB /* PyPrioritizeDialog.h */, - CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */, - CE548CC414BF903D00D180CB /* PyPrioritizeList.h */, - CE548CC514BF903D00D180CB /* PyPrioritizeList.m */, - CE4746D114C09C12001A66DE /* PyProblemDialog.h */, - CE4746D214C09C12001A66DE /* PyProblemDialog.m */, - CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */, - CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */, - CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */, - CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */, - CE9FC23114C0866F005C31FD /* PyResultTable.h */, - CE9FC23214C0866F005C31FD /* PyResultTable.m */, - CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */, - CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */, - CE1D091414BE0C6400CA6B8C /* ObjP.h */, - CE1D091514BE0C6400CA6B8C /* ObjP.m */, - CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */, - CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */, - CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */, - CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */, - CEEF2A1B14C0A8480082545A /* PyFairware.h */, - CEEF2A1C14C0A8480082545A /* PyFairware.m */, - ); - name = autogen; - path = ../autogen; - sourceTree = ""; - }; - CE76FDBD111EE37C006618EA /* views */ = { - isa = PBXGroup; - children = ( - CE6DD545124CAF1F0089A48D /* HSTableView.h */, - CE6DD546124CAF1F0089A48D /* HSTableView.m */, - CE76FDBE111EE37C006618EA /* HSOutlineView.h */, - CE76FDBF111EE37C006618EA /* HSOutlineView.m */, - CE76FDC0111EE37C006618EA /* NSIndexPathAdditions.h */, - CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */, - CE76FDC2111EE37C006618EA /* NSTableViewAdditions.h */, - CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */, - ); - name = views; - path = ../../cocoalib/views; - sourceTree = SOURCE_ROOT; - }; - CE76FDC7111EE38E006618EA /* controllers */ = { - isa = PBXGroup; - children = ( - CEEF2A3014C0B9050082545A /* HSColumns.h */, - CEEF2A3114C0B9050082545A /* HSColumns.m */, - CEEF2A3214C0B9050082545A /* HSGUIController.h */, - CEEF2A3314C0B9050082545A /* HSGUIController.m */, - CEEF2A3414C0B9050082545A /* HSOutline.h */, - CEEF2A3514C0B9050082545A /* HSOutline.m */, - CEEF2A3614C0B9050082545A /* HSPopUpList.h */, - CEEF2A3714C0B9050082545A /* HSPopUpList.m */, - CEEF2A3814C0B9050082545A /* HSSelectableList.h */, - CEEF2A3914C0B9050082545A /* HSSelectableList.m */, - CEEF2A3A14C0B9050082545A /* HSTable.h */, - CEEF2A3B14C0B9050082545A /* HSTable.m */, - ); - name = controllers; - path = ../../cocoalib/controllers; - sourceTree = SOURCE_ROOT; - }; - CEE49F3315B9F4BA002BD78B /* autogen */ = { - isa = PBXGroup; - children = ( - CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */, - CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */, - CEE49F3615B9F4E1002BD78B /* HSDemoReminder_UI.h */, - CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */, - CEE49F3815B9F4E1002BD78B /* HSEnterCode_UI.h */, - CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */, - CEE49F3A15B9F4E1002BD78B /* HSErrorReportWindow_UI.h */, - CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */, - CEE49F3C15B9F4E1002BD78B /* HSFairwareReminder_UI.h */, - CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */, - CEE49F3E15B9F4E1002BD78B /* ProgressController_UI.h */, - CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */, - ); - name = autogen; - sourceTree = ""; - }; - CEFC294309C89E0000D9F998 /* images */ = { - isa = PBXGroup; - children = ( - CEFC294509C89E3D00D9F998 /* folder32.png */, - ); - name = images; - sourceTree = ""; - }; - CEFC7F890FC9513600CD5728 /* cocoalib */ = { - isa = PBXGroup; - children = ( - CEE49F3315B9F4BA002BD78B /* autogen */, - CE76FDC7111EE38E006618EA /* controllers */, - CE76FDBD111EE37C006618EA /* views */, - CE8C25CB15B9FCC100D44175 /* cocoalib.strings */, - CE76FDF5111EE561006618EA /* NSEventAdditions.h */, - CE76FDF6111EE561006618EA /* NSEventAdditions.m */, - CEB57990146ADC5100EDF7D7 /* HSConsts.h */, - CEFC7F8A0FC9517500CD5728 /* Dialogs.h */, - CEFC7F8B0FC9517500CD5728 /* Dialogs.m */, - CEBCE2DA1573FEBF000402E1 /* HSFairwareProtocol.h */, - CE79638A12536F4E008D405B /* HSFairwareReminder.h */, - CE79638B12536F4E008D405B /* HSFairwareReminder.m */, - CE27D3C212CCA43800859E67 /* HSAboutBox.h */, - CE27D3C312CCA43800859E67 /* HSAboutBox.m */, - CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */, - CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */, - CE5335FA142BBFAF008E5374 /* HSQuicklook.h */, - CE5335FB142BBFAF008E5374 /* HSQuicklook.m */, - CEEF2A4214C0BB430082545A /* Worker.h */, - CEFC7F900FC9517500CD5728 /* ProgressController.h */, - CEFC7F910FC9517500CD5728 /* ProgressController.m */, - CEFC7F9A0FC9517500CD5728 /* Utils.h */, - CEFC7F9B0FC9517500CD5728 /* Utils.m */, - CEBCE2D61573FE49000402E1 /* HSPyUtil.h */, - CEBCE2D71573FE49000402E1 /* HSPyUtil.m */, - CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */, - CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */, - ); - name = cocoalib; - sourceTree = ""; - }; - CEFC7FB00FC9518F00CD5728 /* dgbase */ = { - isa = PBXGroup; - children = ( - CE6DD4E5124CA3070089A48D /* ResultTable.h */, - CE6DD4E6124CA3070089A48D /* ResultTable.m */, - CE91F213113BC22D0010360B /* StatsLabel.h */, - CE91F214113BC22D0010360B /* StatsLabel.m */, - CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */, - CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */, - CEFC7FB10FC951A700CD5728 /* AppDelegateBase.h */, - CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */, - CEFC7FB30FC951A700CD5728 /* Consts.h */, - CEE7EA110FE675C80004E467 /* DetailsPanel.h */, - CEE7EA120FE675C80004E467 /* DetailsPanel.m */, - CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */, - CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */, - CEFC7FB70FC951A700CD5728 /* ResultWindow.h */, - CEFC7FB80FC951A700CD5728 /* ResultWindow.m */, - CE647E541173024A006D28BA /* ProblemDialog.h */, - CE647E551173024A006D28BA /* ProblemDialog.m */, - CE412C121510ED2E00484122 /* IgnoreListDialog.h */, - CE412C131510ED2E00484122 /* IgnoreListDialog.m */, - CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */, - CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */, - CE89240614239CC30024CE4E /* PrioritizeList.h */, - CE89240714239CC30024CE4E /* PrioritizeList.m */, - CEC3F8FA157668A300B26F0C /* DeletionOptions.h */, - CEC3F8FB157668A300B26F0C /* DeletionOptions.m */, - CEB2AF5514C49AC800F907A9 /* main.m */, - ); - name = dgbase; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* dupeguru */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "dupeguru" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - CECC02B709A36E8200CC0A94 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = dupeguru; - productInstallPath = "$(HOME)/Applications"; - productName = dupeguru; - productReference = 8D1107320486CEB800E47090 /* dupeGuru.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = NO; - LastUpgradeCheck = 0440; - }; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - en, - fr, - de, - zh_CN, - cs, - it, - hy, - ru, - uk, - pt_BR, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* dupeguru */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CE073F6309CAE1A3005C1D2F /* help in Resources */, - CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */, - CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, - CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */, - CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, - CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */, - CE31819D13D85D9B00B6D649 /* about.xib in Resources */, - CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */, - CEA175CA1461E8E600776591 /* locale in Resources */, - CE18005114BDD87B001B6329 /* py in Resources */, - CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */, - CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CE381C9609914ACE003581CE /* AppDelegate.m in Sources */, - CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */, - CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */, - CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */, - CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */, - CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */, - CEFC7FB90FC951A700CD5728 /* AppDelegateBase.m in Sources */, - CEFC7FBA0FC951A700CD5728 /* DirectoryPanel.m in Sources */, - CEFC7FBB0FC951A700CD5728 /* ResultWindow.m in Sources */, - CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */, - CE76FDC4111EE37C006618EA /* HSOutlineView.m in Sources */, - CE76FDC5111EE37C006618EA /* NSIndexPathAdditions.m in Sources */, - CE76FDC6111EE37C006618EA /* NSTableViewAdditions.m in Sources */, - CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */, - CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */, - CE91F216113BC22D0010360B /* StatsLabel.m in Sources */, - CE647E571173024A006D28BA /* ProblemDialog.m in Sources */, - CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */, - CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */, - CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */, - CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */, - CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */, - CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */, - CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */, - CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */, - CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */, - CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */, - CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */, - CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */, - CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */, - CE548CC614BF903D00D180CB /* PyPrioritizeDialog.m in Sources */, - CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */, - CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */, - CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */, - CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */, - CE9FC23014C08622005C31FD /* PyTable.m in Sources */, - CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */, - CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */, - CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */, - CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */, - CEEF2A1E14C0A8480082545A /* PyFairware.m in Sources */, - CEEF2A3C14C0B9050082545A /* HSColumns.m in Sources */, - CEEF2A3D14C0B9050082545A /* HSGUIController.m in Sources */, - CEEF2A3E14C0B9050082545A /* HSOutline.m in Sources */, - CEEF2A3F14C0B9050082545A /* HSPopUpList.m in Sources */, - CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */, - CEEF2A4114C0B9050082545A /* HSTable.m in Sources */, - CEB2AF5614C49AC800F907A9 /* main.m in Sources */, - CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */, - CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */, - CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */, - CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */, - CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */, - CEE49F4015B9F4E1002BD78B /* HSAboutBox_UI.m in Sources */, - CEE49F4115B9F4E1002BD78B /* HSDemoReminder_UI.m in Sources */, - CEE49F4215B9F4E1002BD78B /* HSEnterCode_UI.m in Sources */, - CEE49F4315B9F4E1002BD78B /* HSErrorReportWindow_UI.m in Sources */, - CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */, - CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */, - CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */, - CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */, - CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */, - CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */, - CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */, - CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */, - CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */, - CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */, - CE2B169C15C33EEB00F1BE29 /* MainMenu_UI.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - CE31819913D85D9B00B6D649 /* about.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = about.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; - CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = ErrorReportWindow.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; - CE79638412536C94008D405B /* FairwareReminder.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = FairwareReminder.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; - CE8113E912E5CE9A00A36C80 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - CE8113EA12E5CE9A00A36C80 /* en */, - CE8113EC12E5CEA800A36C80 /* fr */, - CED939551406ABB70072C4E8 /* de */, - CE0564B014169D9E00D3D907 /* zh_CN */, - CED64CEB145EF06000572B00 /* cs */, - CE7A6971146442010007D927 /* it */, - CE00BBCE14910C8E006A717C /* hy */, - CED638EC14B38D0900B88D00 /* ru */, - CEECCD0D14C636F100A2F3A0 /* uk */, - CE066CEE15B9D15B007084A6 /* pt_BR */, - ); - name = Localizable.strings; - sourceTree = SOURCE_ROOT; - }; - CE8C25CB15B9FCC100D44175 /* cocoalib.strings */ = { - isa = PBXVariantGroup; - children = ( - CE8C25CC15B9FCC100D44175 /* en */, - CE8C25CF15B9FCF300D44175 /* cs */, - CE8C25D015B9FCF300D44175 /* de */, - CE8C25D115B9FCF300D44175 /* fr */, - CE8C25D215B9FCF300D44175 /* hy */, - CE8C25D315B9FCF300D44175 /* it */, - CE8C25D415B9FCF300D44175 /* pt_BR */, - CE8C25D515B9FCF300D44175 /* ru */, - CE8C25D615B9FCF300D44175 /* uk */, - CE8C25D715B9FCF300D44175 /* zh_CN */, - ); - name = cocoalib.strings; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DEPLOYMENT_POSTPROCESSING = YES; - DSTROOT = /; - GCC_GENERATE_DEBUGGING_SYMBOLS = NO; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(PROJECT_DIR)"; - PRODUCT_NAME = dupeGuru; - WRAPPER_EXTENSION = app; - }; - name = release; - }; - C01FCF5008A954540054247B /* release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; - GCC_C_LANGUAGE_STANDARD = c99; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.7; - }; - name = release; - }; - CE85E84F111AF63D00187B0D /* dev */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(NATIVE_ARCH_ACTUAL)"; - FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; - GCC_C_LANGUAGE_STANDARD = c99; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.7; - }; - name = dev; - }; - CE85E850111AF63D00187B0D /* dev */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DEPLOYMENT_POSTPROCESSING = YES; - DSTROOT = /; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(PROJECT_DIR)"; - PRODUCT_NAME = dupeGuru; - WRAPPER_EXTENSION = app; - }; - name = dev; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "dupeguru" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* release */, - CE85E850111AF63D00187B0D /* dev */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* release */, - CE85E84F111AF63D00187B0D /* dev */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/cocoa/se/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/cocoa/se/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e0000163..00000000 --- a/cocoa/se/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/cocoa/se/dupeguru.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/cocoa/se/dupeguru.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index 54782e32..00000000 --- a/cocoa/se/dupeguru.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded - - - diff --git a/cocoa/waf b/cocoa/waf new file mode 100755 index 0000000000000000000000000000000000000000..e1e34d431afba28d52add07a6094226a1a74374b GIT binary patch literal 87674 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 literal 0 HcmV?d00001 diff --git a/cocoa/wscript b/cocoa/wscript new file mode 100644 index 00000000..54263156 --- /dev/null +++ b/cocoa/wscript @@ -0,0 +1,69 @@ +#!/usr/bin/env python + +import os +import os.path as op + +top = '.' +out = 'build' + +def options(opt): + opt.load('compiler_c python') + +def configure(conf): + # We use clang to compile our app + conf.env.CC = 'clang' + # WAF has a "pyembed" feature allowing us to automatically find Python and compile by linking + # to it. The problem is that because we made a copy of the Python library to mangle with its + # "install name", we don't actually want to link to our installed python, but to our mangled + # Python. The line below tells the "pyembed" WAF feature to look in ../build for Python. + conf.env.LIBPATH_PYEMBED = op.abspath('../build') + # I did a lot of fiddling-around, but I didn't find how to tell WAF the Python library name + # to look for without making the whole compilation process fail, so I just create a symlink + # with the name WAF is looking for. + if not op.exists('../build/libpython3.2.dylib'): + os.symlink('../build/Python', '../build/libpython3.2.dylib') + # The rest is standard WAF code that you can find the the python and macapp demos. + conf.load('compiler_c python') + conf.check_python_version((3,2,0)) + conf.check_python_headers() + conf.env.FRAMEWORK_COCOA = 'Cocoa' + conf.env.ARCH_COCOA = ['i386', 'x86_64'] + # Add cocoalib dir to the framework search path so we can find Sparkle. + conf.env.CFLAGS = ['-F'+op.abspath('../cocoalib')] + conf.env.LINKFLAGS = ['-F'+op.abspath('../cocoalib')] + +def build(ctx): + # What do we compile? + cocoalib_node = ctx.srcnode.find_dir('..').find_dir('cocoalib') + cocoalib_folders = ['autogen', 'controllers', 'views'] + cocoalib_includes = [cocoalib_node] + [cocoalib_node.find_dir(folder) for folder in cocoalib_folders] + cocoalib_uses = ['NSEventAdditions', 'Dialogs', 'HSAboutBox', 'HSFairwareReminder', 'Utils', + 'HSPyUtil', 'ProgressController', 'HSRecentFiles', 'HSQuicklook', 'ValueTransformers', + 'views/HSTableView', 'views/HSOutlineView', 'views/NSIndexPathAdditions', + 'views/NSTableViewAdditions', + 'controllers/HSColumns', 'controllers/HSGUIController', 'controllers/HSTable', + 'controllers/HSOutline', 'controllers/HSPopUpList', 'controllers/HSSelectableList'] + cocoalib_src = [cocoalib_node.find_node(usename + '.m') for usename in cocoalib_uses] + cocoalib_node.ant_glob('autogen/*.m') + project_folders = ['autogen', 'base', 'se'] + project_src = sum([ctx.srcnode.ant_glob('%s/*.m' % folder) for folder in project_folders], []) + + # Compile + ctx.program( + # "pyembed" takes care of the include and linking stuff to compile an app that embed Python. + features = 'c cprogram pyembed', + target = ctx.bldnode.make_node("dupeGuru"), + source = cocoalib_src + project_src, + includes = project_folders + cocoalib_includes, + use = 'COCOA', + # Because our python lib's install name is "@rpath/Python", we need to set the executable's + # rpath. Fortunately, WAF supports it and we just need to supply the "rpath" argument. + rpath = '@executable_path/../Frameworks', + framework = ['Sparkle', 'Quartz'], + ) + +from waflib import TaskGen +@TaskGen.extension('.m') +def m_hook(self, node): + """Alias .m files to be compiled the same as .c files, gcc will do the right thing.""" + return self.create_compiled_task('c', node) + From 79e925151129154246bc77d1647995c2a6968d14 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 28 Jul 2012 16:49:36 -0400 Subject: [PATCH 19/33] Generate cocoalib stuff in the same autogen folder as the rest instead of in its own autogen folder. --HG-- branch : xibless --- build.py | 18 ++++++++---------- cocoa/wscript | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/build.py b/build.py index 2cd88d75..04628490 100644 --- a/build.py +++ b/build.py @@ -45,16 +45,14 @@ def parse_args(): def build_xibless(edition): import xibless - if not op.exists('cocoalib/autogen'): - os.mkdir('cocoalib/autogen') if not op.exists('cocoa/autogen'): os.mkdir('cocoa/autogen') - xibless.generate('cocoalib/ui/progress.py', 'cocoalib/autogen/ProgressController_UI') - xibless.generate('cocoalib/ui/about.py', 'cocoalib/autogen/HSAboutBox_UI', localizationTable='cocoalib') - xibless.generate('cocoalib/ui/fairware_reminder.py', 'cocoalib/autogen/HSFairwareReminder_UI', localizationTable='cocoalib') - xibless.generate('cocoalib/ui/demo_reminder.py', 'cocoalib/autogen/HSDemoReminder_UI', localizationTable='cocoalib') - xibless.generate('cocoalib/ui/enter_code.py', 'cocoalib/autogen/HSEnterCode_UI', localizationTable='cocoalib') - xibless.generate('cocoalib/ui/error_report.py', 'cocoalib/autogen/HSErrorReportWindow_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/progress.py', 'cocoa/autogen/ProgressController_UI') + xibless.generate('cocoalib/ui/about.py', 'cocoa/autogen/HSAboutBox_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/fairware_reminder.py', 'cocoa/autogen/HSFairwareReminder_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/demo_reminder.py', 'cocoa/autogen/HSDemoReminder_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/enter_code.py', 'cocoa/autogen/HSEnterCode_UI', localizationTable='cocoalib') + xibless.generate('cocoalib/ui/error_report.py', 'cocoa/autogen/HSErrorReportWindow_UI', localizationTable='cocoalib') xibless.generate('cocoa/base/ui/ignore_list_dialog.py', 'cocoa/autogen/IgnoreListDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/deletion_options.py', 'cocoa/autogen/DeletionOptions_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/problem_dialog.py', 'cocoa/autogen/ProblemDialog_UI', localizationTable='Localizable') @@ -217,9 +215,9 @@ def build_cocoa_proxy_module(): objp.p2o.generate_python_proxy_code('cocoalib/cocoa/CocoaProxy.h', 'build/CocoaProxy.m') build_cocoa_ext("CocoaProxy", 'cocoalib/cocoa', ['cocoalib/cocoa/CocoaProxy.m', 'build/CocoaProxy.m', 'build/ObjP.m', - 'cocoalib/HSErrorReportWindow.m', 'cocoalib/autogen/HSErrorReportWindow_UI.m'], + 'cocoalib/HSErrorReportWindow.m', 'cocoa/autogen/HSErrorReportWindow_UI.m'], ['AppKit', 'CoreServices'], - ['cocoalib', 'cocoalib/autogen']) + ['cocoalib', 'cocoa/autogen']) def build_cocoa_bridging_interfaces(edition): print("Building Cocoa Bridging Interfaces") diff --git a/cocoa/wscript b/cocoa/wscript index 54263156..bde056a6 100644 --- a/cocoa/wscript +++ b/cocoa/wscript @@ -35,7 +35,7 @@ def configure(conf): def build(ctx): # What do we compile? cocoalib_node = ctx.srcnode.find_dir('..').find_dir('cocoalib') - cocoalib_folders = ['autogen', 'controllers', 'views'] + cocoalib_folders = ['controllers', 'views'] cocoalib_includes = [cocoalib_node] + [cocoalib_node.find_dir(folder) for folder in cocoalib_folders] cocoalib_uses = ['NSEventAdditions', 'Dialogs', 'HSAboutBox', 'HSFairwareReminder', 'Utils', 'HSPyUtil', 'ProgressController', 'HSRecentFiles', 'HSQuicklook', 'ValueTransformers', From 903ecd9eae362b23d4ec754a768d837b91367515 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 28 Jul 2012 18:10:05 -0400 Subject: [PATCH 20/33] Added build support for ME in the new waf script (but I haven't converted ME's pref panel to xibless yet). --HG-- branch : xibless --- build.py | 21 ++++++++++----------- cocoa/me/InfoTemplate.plist | 4 ++-- cocoa/wscript | 7 ++++++- run_template_cocoa.py | 2 +- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/build.py b/build.py index 04628490..352cd001 100644 --- a/build.py +++ b/build.py @@ -19,7 +19,7 @@ from setuptools import setup, Extension from hscommon import sphinxgen from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace, - get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move, copy, + get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move, create_osx_app_structure) from hscommon import loc @@ -66,7 +66,8 @@ def build_xibless(edition): xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') if edition == 'se': xibless.generate('cocoa/se/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI', localizationTable='Localizable') - + if edition == 'me': + xibless.generate('cocoa/se/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI', localizationTable='Localizable') def build_cocoa(edition, dev): ed = lambda s: s.format(edition) @@ -74,10 +75,8 @@ def build_cocoa(edition, dev): build_cocoa_proxy_module() build_cocoa_bridging_interfaces(edition) print("Building the cocoa layer") - from pluginbuilder import copy_embeddable_python_dylib, get_python_header_folder, collect_dependencies + from pluginbuilder import copy_embeddable_python_dylib, collect_dependencies copy_embeddable_python_dylib('build') - if not op.exists('build/PythonHeaders'): - os.symlink(get_python_header_folder(), 'build/PythonHeaders') if not op.exists('build/py'): os.mkdir('build/py') cocoa_project_path = ed('cocoa/{}') @@ -103,21 +102,21 @@ def build_cocoa(edition, dev): filereplace('InfoTemplate.plist', 'Info.plist', version=app_version) print("Compiling with WAF") os.chdir('..') - os.system('{0} waf configure && {0} waf'.format(sys.executable)) + os.system('{0} waf configure --edition {1} && {0} waf'.format(sys.executable, edition)) os.chdir('..') print("Creating the .app folder") image_path = ed('cocoa/{}/dupeguru.icns') resources = [image_path, 'cocoa/base/dsa_pub.pem', 'build/dg_cocoa.py', 'build/py', 'build/help'] + glob.glob('cocoa/base/*.lproj') frameworks = ['build/Python', 'cocoalib/Sparkle.framework'] - create_osx_app_structure('build/dupeGuru.app', 'cocoa/build/dupeGuru', ed('cocoa/{}/Info.plist'), - resources, frameworks, symlink_resources=dev) - print("Creating the run.py file") app_path = { 'se': 'build/dupeGuru.app', - 'me': 'build/dupeGuru\\ ME.app', - 'pe': 'build/dupeGuru\\ PE.app', + 'me': 'build/dupeGuru ME.app', + 'pe': 'build/dupeGuru PE.app', }[edition] + create_osx_app_structure(app_path, 'cocoa/build/dupeGuru', ed('cocoa/{}/Info.plist'), + resources, frameworks, symlink_resources=dev) + print("Creating the run.py file") tmpl = open('run_template_cocoa.py', 'rt').read() run_contents = tmpl.replace('{{app_path}}', app_path) open('run.py', 'wt').write(run_contents) diff --git a/cocoa/me/InfoTemplate.plist b/cocoa/me/InfoTemplate.plist index 0722c39a..0b060cec 100644 --- a/cocoa/me/InfoTemplate.plist +++ b/cocoa/me/InfoTemplate.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion English CFBundleExecutable - ${EXECUTABLE_NAME} + dupeGuru CFBundleHelpBookFolder dupeguru_me_help CFBundleHelpBookName @@ -17,7 +17,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - ${PRODUCT_NAME} + dupeGuru ME CFBundlePackageType APPL CFBundleSignature diff --git a/cocoa/wscript b/cocoa/wscript index bde056a6..c112cb80 100644 --- a/cocoa/wscript +++ b/cocoa/wscript @@ -8,8 +8,13 @@ out = 'build' def options(opt): opt.load('compiler_c python') + opt.add_option('--edition', default='se', help="dupeGuru edition to build (se, me pe)") def configure(conf): + if conf.options.edition not in ('se', 'me', 'pe'): + conf.options.edition = 'se' + print("Building dupeGuru {}".format(conf.options.edition.upper())) + conf.env.DGEDITION = conf.options.edition # We use clang to compile our app conf.env.CC = 'clang' # WAF has a "pyembed" feature allowing us to automatically find Python and compile by linking @@ -44,7 +49,7 @@ def build(ctx): 'controllers/HSColumns', 'controllers/HSGUIController', 'controllers/HSTable', 'controllers/HSOutline', 'controllers/HSPopUpList', 'controllers/HSSelectableList'] cocoalib_src = [cocoalib_node.find_node(usename + '.m') for usename in cocoalib_uses] + cocoalib_node.ant_glob('autogen/*.m') - project_folders = ['autogen', 'base', 'se'] + project_folders = ['autogen', 'base', ctx.env.DGEDITION] project_src = sum([ctx.srcnode.ant_glob('%s/*.m' % folder) for folder in project_folders], []) # Compile diff --git a/run_template_cocoa.py b/run_template_cocoa.py index b9375d8a..840e7107 100644 --- a/run_template_cocoa.py +++ b/run_template_cocoa.py @@ -4,7 +4,7 @@ import sys import os def main(): - return os.system('open {{app_path}}') + return os.system('open "{{app_path}}"') if __name__ == '__main__': sys.exit(main()) \ No newline at end of file From cb35dc78970712cf5d42ea789120e17dfda3a3e8 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sat, 28 Jul 2012 19:07:37 -0400 Subject: [PATCH 21/33] Converted ME's preference panel to xibless and thus completed its transition to waf-based building. --HG-- branch : xibless rename : cocoa/se/ui/preferences_panel.py => cocoa/base/ui/preferences_panel.py --- build.py | 36 +- cocoa/base/en.lproj/Localizable.strings | 13 + cocoa/base/ui/main_menu.py | 2 + cocoa/{se => base}/ui/preferences_panel.py | 108 +- cocoa/me/dupeguru.xcodeproj/project.pbxproj | 1100 -------- .../contents.xcworkspacedata | 7 - cocoa/me/en.lproj/Preferences.strings | 105 - cocoa/me/en.lproj/Preferences.xib | 2386 ----------------- 8 files changed, 124 insertions(+), 3633 deletions(-) rename cocoa/{se => base}/ui/preferences_panel.py (55%) delete mode 100644 cocoa/me/dupeguru.xcodeproj/project.pbxproj delete mode 100644 cocoa/me/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 cocoa/me/en.lproj/Preferences.strings delete mode 100644 cocoa/me/en.lproj/Preferences.xib diff --git a/build.py b/build.py index 352cd001..817eff51 100644 --- a/build.py +++ b/build.py @@ -19,7 +19,7 @@ from setuptools import setup, Extension from hscommon import sphinxgen from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace, - get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move, + get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move, copy, create_osx_app_structure) from hscommon import loc @@ -32,8 +32,8 @@ def parse_args(): help="Build only the help file") parser.add_option('--loc', action='store_true', dest='loc', help="Build only localization") - parser.add_option('--cocoamod', action='store_true', dest='cocoamod', - help="Build only Cocoa modules") + parser.add_option('--cocoa-compile', action='store_true', dest='cocoa_compile', + help="Build only Cocoa modules and executables") parser.add_option('--xibless', action='store_true', dest='xibless', help="Build only xibless UIs") parser.add_option('--updatepot', action='store_true', dest='updatepot', @@ -43,6 +43,16 @@ def parse_args(): (options, args) = parser.parse_args() return options +def cocoa_compile_command(edition): + return '{0} waf configure --edition {1} && {0} waf'.format(sys.executable, edition) + +def cocoa_app_path(edition): + return { + 'se': 'build/dupeGuru.app', + 'me': 'build/dupeGuru ME.app', + 'pe': 'build/dupeGuru PE.app', + }[edition] + def build_xibless(edition): import xibless if not op.exists('cocoa/autogen'): @@ -60,14 +70,12 @@ def build_xibless(edition): xibless.generate('cocoa/base/ui/prioritize_dialog.py', 'cocoa/autogen/PrioritizeDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/result_window.py', 'cocoa/autogen/ResultWindow_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/main_menu.py', 'cocoa/autogen/MainMenu_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI', + localizationTable='Localizable', args={'edition': edition}) if edition == 'pe': xibless.generate('cocoa/pe/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') else: xibless.generate('cocoa/base/ui/details_panel.py', 'cocoa/autogen/DetailsPanel_UI', localizationTable='Localizable') - if edition == 'se': - xibless.generate('cocoa/se/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI', localizationTable='Localizable') - if edition == 'me': - xibless.generate('cocoa/se/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI', localizationTable='Localizable') def build_cocoa(edition, dev): ed = lambda s: s.format(edition) @@ -102,18 +110,14 @@ def build_cocoa(edition, dev): filereplace('InfoTemplate.plist', 'Info.plist', version=app_version) print("Compiling with WAF") os.chdir('..') - os.system('{0} waf configure --edition {1} && {0} waf'.format(sys.executable, edition)) + os.system(cocoa_compile_command(edition)) os.chdir('..') print("Creating the .app folder") image_path = ed('cocoa/{}/dupeguru.icns') resources = [image_path, 'cocoa/base/dsa_pub.pem', 'build/dg_cocoa.py', 'build/py', 'build/help'] + glob.glob('cocoa/base/*.lproj') frameworks = ['build/Python', 'cocoalib/Sparkle.framework'] - app_path = { - 'se': 'build/dupeGuru.app', - 'me': 'build/dupeGuru ME.app', - 'pe': 'build/dupeGuru PE.app', - }[edition] + app_path = cocoa_app_path(edition) create_osx_app_structure(app_path, 'cocoa/build/dupeGuru', ed('cocoa/{}/Info.plist'), resources, frameworks, symlink_resources=dev) print("Creating the run.py file") @@ -308,9 +312,13 @@ def main(): build_updatepot() elif options.mergepot: build_mergepot() - elif options.cocoamod: + elif options.cocoa_compile: build_cocoa_proxy_module() build_cocoa_bridging_interfaces(edition) + os.chdir('cocoa') + os.system(cocoa_compile_command(edition)) + os.chdir('..') + copy('cocoa/build/dupeGuru', op.join(cocoa_app_path(edition), 'Contents/MacOS/dupeGuru')) elif options.xibless: build_xibless(edition) else: diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 27c6d14e..812b3cda 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -124,6 +124,19 @@ "Folders" = "Folders"; "Font size:" = "Font size:"; +"dupeGuru ME Preferences" = "dupeGuru ME Preferences"; +"Filename - Fields" = "Filename - Fields"; +"Tags" = "Tags"; +"Audio Content" = "Audio Content"; +"Filename - Fields (No Order)" = "Filename - Fields (No Order)"; +"Tags to scan:" = "Tags to scan:"; +"Track" = "Track"; +"Artist" = "Artist"; +"Album" = "Album"; +"Title" = "Title"; +"Genre" = "Genre"; +"Year" = "Year"; + /* Main Menu */ "Bring All to Front" = "Bring All to Front"; "Window" = "Window"; diff --git a/cocoa/base/ui/main_menu.py b/cocoa/base/ui/main_menu.py index 8cb658e2..679a52c1 100644 --- a/cocoa/base/ui/main_menu.py +++ b/cocoa/base/ui/main_menu.py @@ -15,6 +15,8 @@ helpMenu = result.addMenu("Help") appMenu.addItem("About dupeGuru", Action(owner, 'showAboutBox')) appMenu.addItem("Check for update...", Action(owner.updater, 'checkForUpdates:')) appMenu.addSeparator() +appMenu.addItem("Preferences...", Action(owner, 'showPreferencesPanel'), 'cmd+,') +appMenu.addSeparator() NSApp.servicesMenu = appMenu.addMenu("Services") appMenu.addSeparator() appMenu.addItem("Hide dupeGuru", Action(NSApp, 'hide:'), 'cmd+h') diff --git a/cocoa/se/ui/preferences_panel.py b/cocoa/base/ui/preferences_panel.py similarity index 55% rename from cocoa/se/ui/preferences_panel.py rename to cocoa/base/ui/preferences_panel.py index 617d6870..0764df4a 100644 --- a/cocoa/se/ui/preferences_panel.py +++ b/cocoa/base/ui/preferences_panel.py @@ -1,8 +1,25 @@ -result = Window(410, 345, "dupeGuru Preferences") +edition = args.get('edition', 'se') +dialogTitles = { + 'se': "dupeGuru Preferences", + 'me': "dupeGuru ME Preferences", + 'pe': "dupeGuru PE Preferences", +} +dialogHeights = { + 'se': 345, + 'me': 365, + 'pe': 270, +} +scanTypeNames = { + 'se': ["Filename", "Content", "Folders"], + 'me': ["Filename", "Filename - Fields", "Filename - Fields (No Order)", "Tags", "Content", "Audio Content"], + 'pe': ["Contents", "EXIF Timestamp"], +} + +result = Window(410, dialogHeights[edition], dialogTitles[edition]) tabView = TabView(result) basicTab = tabView.addTab("Basic") advancedTab = tabView.addTab("Advanced") -scanTypePopup = Popup(basicTab.view, ["Filename", "Content", "Folders"]) +scanTypePopup = Popup(basicTab.view, scanTypeNames[edition]) scanTypeLabel = Label(basicTab.view, "Scan Type:") thresholdSlider = Slider(basicTab.view, 1, 100, 80) # XXX add a number formatter to this @@ -16,10 +33,20 @@ wordWeightingBox = Checkbox(basicTab.view, "Word weighting") matchSimilarWordsBox = Checkbox(basicTab.view, "Match similar words") mixKindBox = Checkbox(basicTab.view, "Can mix file kind") removeEmptyFoldersBox = Checkbox(basicTab.view, "Remove empty folders on delete or move") -ignoreSmallFilesBox = Checkbox(basicTab.view, "Ignore files smaller than:") -smallFilesThresholdText = TextField(basicTab.view, "") -smallFilesThresholdSuffixLabel = Label(basicTab.view, "KB") checkForUpdatesBox = Checkbox(basicTab.view, "Automatically check for updates") +if edition == 'se': + ignoreSmallFilesBox = Checkbox(basicTab.view, "Ignore files smaller than:") + smallFilesThresholdText = TextField(basicTab.view, "") + smallFilesThresholdSuffixLabel = Label(basicTab.view, "KB") +elif edition == 'me': + tagsToScanLabel = Label(basicTab.view, "Tags to scan:") + trackBox = Checkbox(basicTab.view, "Track") + artistBox = Checkbox(basicTab.view, "Artist") + albumBox = Checkbox(basicTab.view, "Album") + titleBox = Checkbox(basicTab.view, "Title") + genreBox = Checkbox(basicTab.view, "Genre") + yearBox = Checkbox(basicTab.view, "Year") + tagBoxes = [trackBox, artistBox, albumBox, titleBox, genreBox, yearBox] regexpCheckbox = Checkbox(advancedTab.view, "Use regular expressions when filtering") ignoreHardlinksBox = Checkbox(advancedTab.view, "Ignore duplicates hardlinking to the same file") @@ -39,8 +66,6 @@ wordWeightingBox.bind('value', defaults, 'values.wordWeighting') matchSimilarWordsBox.bind('value', defaults, 'values.matchSimilarWords') mixKindBox.bind('value', defaults, 'values.mixFileKind') removeEmptyFoldersBox.bind('value', defaults, 'values.removeEmptyFolders') -ignoreSmallFilesBox.bind('value', defaults, 'values.ignoreSmallFiles') -smallFilesThresholdText.bind('value', defaults, 'values.smallFileThreshold') checkForUpdatesBox.bind('value', defaults, 'values.SUEnableAutomaticChecks') regexpCheckbox.bind('value', defaults, 'values.useRegexpFilter') ignoreHardlinksBox.bind('value', defaults, 'values.ignoreHardlinkMatches') @@ -50,17 +75,34 @@ copyMovePopup.bind('selectedIndex', defaults, 'values.recreatePathType') disableWhenContentScan = [thresholdSlider, wordWeightingBox, matchSimilarWordsBox] for control in disableWhenContentScan: control.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsNotContent') +if edition == 'se': + ignoreSmallFilesBox.bind('value', defaults, 'values.ignoreSmallFiles') + smallFilesThresholdText.bind('value', defaults, 'values.smallFileThreshold') +elif edition == 'me': + for box in tagBoxes: + box.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsTag') + trackBox.bind('value', defaults, 'values.scanTagTrack') + artistBox.bind('value', defaults, 'values.scanTagArtist') + albumBox.bind('value', defaults, 'values.scanTagAlbum') + titleBox.bind('value', defaults, 'values.scanTagTitle') + genreBox.bind('value', defaults, 'values.scanTagGenre') + yearBox.bind('value', defaults, 'values.scanTagYear') result.canResize = False result.canMinimize = False allLabels = [scanTypeLabel, thresholdValuelabel, moreResultsLabel, fewerResultsLabel, - thresholdLabel, fontSizeLabel, smallFilesThresholdSuffixLabel, customCommandLabel, - copyMoveLabel] + thresholdLabel, fontSizeLabel, customCommandLabel, copyMoveLabel] +allCheckboxes = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox, + checkForUpdatesBox, regexpCheckbox, ignoreHardlinksBox, debugModeCheckbox] +if edition == 'se': + allLabels += [smallFilesThresholdSuffixLabel] + allCheckboxes += [ignoreSmallFilesBox] +elif edition == 'me': + allLabels += [tagsToScanLabel] + allCheckboxes += tagBoxes for label in allLabels: label.controlSize = ControlSize.Small fewerResultsLabel.alignment = TextAlignment.Right -allCheckboxes = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox, - ignoreSmallFilesBox, checkForUpdatesBox, regexpCheckbox, ignoreHardlinksBox, debugModeCheckbox] for checkbox in allCheckboxes: checkbox.font = scanTypeLabel.font resetToDefaultsButton.action = Action(defaults, 'revertToInitialValues:') @@ -69,8 +111,12 @@ scanTypeLabel.width = thresholdLabel.width = fontSizeLabel.width = 94 fontSizeCombo.width = 66 thresholdValuelabel.width = 25 resetToDefaultsButton.width = 136 -smallFilesThresholdText.width = 60 -smallFilesThresholdSuffixLabel.width = 40 +if edition == 'se': + smallFilesThresholdText.width = 60 + smallFilesThresholdSuffixLabel.width = 40 +elif edition == 'me': + for box in tagBoxes: + box.width = 70 tabView.packToCorner(Pack.UpperLeft) tabView.fill(Pack.Right) @@ -92,17 +138,37 @@ thresholdLabel.packRelativeTo(thresholdSlider, Pack.Left) fontSizeCombo.packRelativeTo(moreResultsLabel, Pack.Below) fontSizeLabel.packRelativeTo(fontSizeCombo, Pack.Left) -checkboxLayout = VLayout([wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox, - ignoreSmallFilesBox]) -checkboxLayout.packRelativeTo(fontSizeCombo, Pack.Below) +if edition == 'me': + tagsToScanLabel.packRelativeTo(fontSizeCombo, Pack.Below) + tagsToScanLabel.fill(Pack.Left) + tagsToScanLabel.fill(Pack.Right) + trackBox.packRelativeTo(tagsToScanLabel, Pack.Below) + trackBox.x += 10 + artistBox.packRelativeTo(trackBox, Pack.Right) + albumBox.packRelativeTo(artistBox, Pack.Right) + titleBox.packRelativeTo(trackBox, Pack.Below) + genreBox.packRelativeTo(titleBox, Pack.Right) + yearBox.packRelativeTo(genreBox, Pack.Right) + viewToPackCheckboxesUnder = titleBox +else: + viewToPackCheckboxesUnder = fontSizeCombo + +checkboxesToLayout = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox] +if edition == 'se': + checkboxesToLayout.append(ignoreSmallFilesBox) +else: + checkboxesToLayout.append(checkForUpdatesBox) +checkboxLayout = VLayout(checkboxesToLayout) +checkboxLayout.packRelativeTo(viewToPackCheckboxesUnder, Pack.Below) checkboxLayout.fill(Pack.Left) checkboxLayout.fill(Pack.Right) -smallFilesThresholdText.packRelativeTo(ignoreSmallFilesBox, Pack.Below, margin=4) -checkForUpdatesBox.packRelativeTo(smallFilesThresholdText, Pack.Below, margin=4) -checkForUpdatesBox.fill(Pack.Right) -smallFilesThresholdText.x += 20 -smallFilesThresholdSuffixLabel.packRelativeTo(smallFilesThresholdText, Pack.Right) +if edition == 'se': + smallFilesThresholdText.packRelativeTo(ignoreSmallFilesBox, Pack.Below, margin=4) + checkForUpdatesBox.packRelativeTo(smallFilesThresholdText, Pack.Below, margin=4) + checkForUpdatesBox.fill(Pack.Right) + smallFilesThresholdText.x += 20 + smallFilesThresholdSuffixLabel.packRelativeTo(smallFilesThresholdText, Pack.Right) advancedLayout = VLayout(advancedTab.view.subviews[:]) advancedLayout.packToCorner(Pack.UpperLeft) diff --git a/cocoa/me/dupeguru.xcodeproj/project.pbxproj b/cocoa/me/dupeguru.xcodeproj/project.pbxproj deleted file mode 100644 index 80b63a0c..00000000 --- a/cocoa/me/dupeguru.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1100 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXAppleScriptBuildPhase section */ - CE6B288A0AFB7FC900508D93 /* AppleScript */ = { - isa = PBXAppleScriptBuildPhase; - buildActionMask = 2147483647; - contextName = ""; - files = ( - ); - isSharedContext = 0; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXAppleScriptBuildPhase section */ - -/* Begin PBXBuildFile section */ - 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 */; }; - 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 */; }; - CE003CCC11242D00004B0AA7 /* NSTableViewAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CC511242D00004B0AA7 /* NSTableViewAdditions.m */; }; - CE003CD011242D2C004B0AA7 /* DirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE003CCE11242D2C004B0AA7 /* DirectoryOutline.m */; }; - CE05331812E5D3ED0029EF25 /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */; }; - CE05331912E5D3ED0029EF25 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331112E5D3ED0029EF25 /* MainMenu.xib */; }; - CE05331A12E5D3ED0029EF25 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */; }; - CE05331B12E5D3ED0029EF25 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05331512E5D3ED0029EF25 /* ResultWindow.xib */; }; - CE05332312E5D4100029EF25 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05332112E5D4100029EF25 /* Preferences.xib */; }; - CE05332F12E5D6100029EF25 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE05332D12E5D6100029EF25 /* Localizable.strings */; }; - CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; }; - CE0A0C001175A1C000DCA3C6 /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */; }; - CE0A0C041175A1DE00DCA3C6 /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */; }; - CE11958F1510FF700063C8AF /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE11958E1510FF700063C8AF /* PyIgnoreListDialog.m */; }; - CE1195931510FF890063C8AF /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1195921510FF890063C8AF /* IgnoreListDialog.m */; }; - CE1195961510FFB20063C8AF /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */; }; - CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; }; - CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE1425880AFB718500BD5167 /* Sparkle.framework */; }; - CE1EAA0A12DF3E81009BA949 /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */; }; - CE2239A2148FFE6600B3DC99 /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2239A1148FFE6600B3DC99 /* HSColumns.m */; }; - CE2E87F9142BC90A00519A68 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2E87F8142BC90A00519A68 /* Quartz.framework */; }; - 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 */; }; - CE4F934912CCA96C0067A3AE /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4F934812CCA96C0067A3AE /* HSAboutBox.m */; }; - CE515DF30FC6C12E00EC695D /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE10FC6C12E00EC695D /* Dialogs.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 */; }; - CE515E1D0FC6C19300EC695D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515E160FC6C19300EC695D /* AppDelegate.m */; }; - CE515E1E0FC6C19300EC695D /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515E190FC6C19300EC695D /* DirectoryPanel.m */; }; - CE515E1F0FC6C19300EC695D /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515E1C0FC6C19300EC695D /* ResultWindow.m */; }; - CE578303124DFC660004769C /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE578302124DFC660004769C /* HSTableView.m */; }; - CE6032C00FE6784C007E33FF /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6032BF0FE6784C007E33FF /* DetailsPanel.m */; }; - CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; }; - 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 */; }; - CE78EEC815B9FEE0005CB26E /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE78EEC615B9FEE0005CB26E /* cocoalib.strings */; }; - 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 */; }; - CE85B9B315B9F9A1003C7302 /* HSAboutBox_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9A815B9F9A1003C7302 /* HSAboutBox_UI.m */; }; - CE85B9B415B9F9A1003C7302 /* HSDemoReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9AA15B9F9A1003C7302 /* HSDemoReminder_UI.m */; }; - CE85B9B515B9F9A1003C7302 /* HSEnterCode_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9AC15B9F9A1003C7302 /* HSEnterCode_UI.m */; }; - CE85B9B615B9F9A1003C7302 /* HSErrorReportWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9AE15B9F9A1003C7302 /* HSErrorReportWindow_UI.m */; }; - CE85B9B715B9F9A1003C7302 /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9B015B9F9A1003C7302 /* HSFairwareReminder_UI.m */; }; - CE85B9B815B9F9A1003C7302 /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE85B9B215B9F9A1003C7302 /* ProgressController_UI.m */; }; - 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 */; }; - 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 */; }; - CEA39FA1157679FB00F294DE /* DeletionOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEA39F97157679FB00F294DE /* DeletionOptions.xib */; }; - CEA39FAD15767A2900F294DE /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA39FAC15767A2900F294DE /* PyDeletionOptions.m */; }; - CEA39FB015767A3A00F294DE /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEA39FAF15767A3A00F294DE /* DeletionOptions.m */; }; - CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; }; - CEDF07A3112493B200EE5BC0 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDF07A2112493B200EE5BC0 /* StatsLabel.m */; }; - CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; - CEF3185913D8660000B8CDCA /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185513D8660000B8CDCA /* about.xib */; }; - CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */; }; - CEF6BCAA1575769C00DACF6F /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF6BCA91575769C00DACF6F /* HSPyUtil.m */; }; - CEF8AB8A15BAECBA00E57AD6 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF8AB8915BAECBA00E57AD6 /* DetailsPanel_UI.m */; }; - CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - CECC02B709A36E8200CC0A94 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - CE14259F0AFB719300BD5167 /* Sparkle.framework in CopyFiles */, - CE9705F914C46EC3007A28F6 /* Python in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* 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 = ""; }; - 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; }; - 8D1107320486CEB800E47090 /* dupeGuru ME.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "dupeGuru ME.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - CE003CB311242D00004B0AA7 /* HSGUIController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController.h; sourceTree = ""; }; - 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 = ""; }; - 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; }; - 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 = ""; }; - CE003CC311242D00004B0AA7 /* NSIndexPathAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSIndexPathAdditions.m; sourceTree = ""; }; - CE003CC411242D00004B0AA7 /* NSTableViewAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTableViewAdditions.h; sourceTree = ""; }; - 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; }; - 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; }; - CE05331412E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; - CE05331612E5D3ED0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE05331D12E5D4010029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; - CE05331E12E5D4010029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE05331F12E5D4010029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; - CE05332012E5D4010029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE05332212E5D4100029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = ""; }; - CE05332912E5D4460029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; - CE05332E12E5D6100029EF25 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - CE05333312E5D6370029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = ""; }; - CE0A0BFE1175A1C000DCA3C6 /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = ""; }; - 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; }; - CE11958D1510FF700063C8AF /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = ""; }; - CE11958E1510FF700063C8AF /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = ""; }; - CE1195911510FF890063C8AF /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = ""; }; - CE1195921510FF890063C8AF /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = ""; }; - CE1195951510FFB20063C8AF /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE119597151100020063C8AF /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE119598151100020063C8AF /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE119599151100020063C8AF /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE11959A151100020063C8AF /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE11959B151100020063C8AF /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE11959C151100020063C8AF /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE11959D151100020063C8AF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE11959E151100020063C8AF /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; sourceTree = SOURCE_ROOT; }; - CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; }; - CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; }; - CE20A79715A2845A00FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; - CE20A79915A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; - CE20A79B15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE20A79C15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE20A79D15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; - CE20A79E15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE20A79F15A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE20A7A015A2847500FAC2BA /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; 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 = ""; }; - CE2E87F8142BC90A00519A68 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; }; - CE2E87FB142BC92C00519A68 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = ""; }; - CE2E87FC142BC92C00519A68 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = ""; }; - CE335AF514B393DC0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; - CE335AF814B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE335AFA14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; - CE335AFB14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE335AFC14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE335AFD14B393EE0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; - CE335B0514B393FB0000AF1A /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; - CE35FCF314C637C8004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; - CE35FCF614C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE35FCF814C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; - CE35FCF914C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE35FCFA14C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE35FCFB14C637DD004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = ""; }; - CE35FD0314C637EC004E4864 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; - 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; }; - CE39D18515B9D1A300AD36C6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; 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; }; - 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; }; - 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; }; - CE515DF20FC6C12E00EC695D /* ValueTransformers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ValueTransformers.m; path = ../../cocoalib/ValueTransformers.m; sourceTree = SOURCE_ROOT; }; - CE515E150FC6C19300EC695D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ../base/AppDelegate.h; sourceTree = SOURCE_ROOT; }; - CE515E160FC6C19300EC695D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = ../base/AppDelegate.m; sourceTree = SOURCE_ROOT; }; - CE515E170FC6C19300EC695D /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; }; - CE515E180FC6C19300EC695D /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; - CE515E190FC6C19300EC695D /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; 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; }; - CE578302124DFC660004769C /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; }; - CE6032BE0FE6784C007E33FF /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; }; - CE6032BF0FE6784C007E33FF /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; - CE68EE6509ABC48000971085 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; - CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; - CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; }; - CE74254414603143002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; - CE74255214603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE74255414603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; - CE74255514603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE74255614603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE74255714603152002F8E3E /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = ""; }; - 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; }; - CE78EEC715B9FEE0005CB26E /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../../cocoalib/en.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EECA15B9FF07005CB26E /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../../cocoalib/cs.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EECB15B9FF07005CB26E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../../cocoalib/de.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EECC15B9FF07005CB26E /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../../cocoalib/fr.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EECD15B9FF07005CB26E /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../../cocoalib/hy.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EECE15B9FF07005CB26E /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../../cocoalib/it.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EECF15B9FF07005CB26E /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../../cocoalib/pt_BR.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EED015B9FF07005CB26E /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../../cocoalib/ru.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EED115B9FF07005CB26E /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../../cocoalib/uk.lproj/cocoalib.strings; sourceTree = ""; }; - CE78EED215B9FF07005CB26E /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../../cocoalib/zh_CN.lproj/cocoalib.strings; sourceTree = ""; }; - CE7A6992146442F80007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; - CE7A6999146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE7A699B146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; - CE7A699C146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE7A699D146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE7A699E146443090007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; - CE7A69A6146443170007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; sourceTree = ""; }; - CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = ""; }; - CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = ""; }; - 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 = ""; }; - 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 = ""; }; - CE85B9A715B9F9A1003C7302 /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSAboutBox_UI.h; sourceTree = ""; }; - CE85B9A815B9F9A1003C7302 /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSAboutBox_UI.m; sourceTree = ""; }; - CE85B9A915B9F9A1003C7302 /* HSDemoReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSDemoReminder_UI.h; sourceTree = ""; }; - CE85B9AA15B9F9A1003C7302 /* HSDemoReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSDemoReminder_UI.m; sourceTree = ""; }; - CE85B9AB15B9F9A1003C7302 /* HSEnterCode_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSEnterCode_UI.h; sourceTree = ""; }; - CE85B9AC15B9F9A1003C7302 /* HSEnterCode_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSEnterCode_UI.m; sourceTree = ""; }; - CE85B9AD15B9F9A1003C7302 /* HSErrorReportWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSErrorReportWindow_UI.h; sourceTree = ""; }; - CE85B9AE15B9F9A1003C7302 /* HSErrorReportWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSErrorReportWindow_UI.m; sourceTree = ""; }; - CE85B9AF15B9F9A1003C7302 /* HSFairwareReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSFairwareReminder_UI.h; sourceTree = ""; }; - CE85B9B015B9F9A1003C7302 /* HSFairwareReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSFairwareReminder_UI.m; sourceTree = ""; }; - CE85B9B115B9F9A1003C7302 /* ProgressController_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProgressController_UI.h; sourceTree = ""; }; - CE85B9B215B9F9A1003C7302 /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProgressController_UI.m; 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 = ""; }; - 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 = ""; }; - CEA39F98157679FB00F294DE /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39F99157679FB00F294DE /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39F9A157679FB00F294DE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39F9B157679FB00F294DE /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39F9C157679FB00F294DE /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39F9D157679FB00F294DE /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39F9E157679FB00F294DE /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39F9F157679FB00F294DE /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39FA0157679FB00F294DE /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DeletionOptions.xib; sourceTree = ""; }; - CEA39FAB15767A2900F294DE /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; - CEA39FAC15767A2900F294DE /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; - CEA39FAE15767A3A00F294DE /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = ""; }; - CEA39FAF15767A3A00F294DE /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = ""; }; - 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; }; - CEC3D37D14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CEC3D37F14911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; - CEC3D38014911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CEC3D38114911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ProblemDialog.xib; sourceTree = ""; }; - CEC3D38214911253006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; - CEC3D38B14911263006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; - CEC3D38D14911274006B1A91 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = ""; }; - CEC8F3111416A0F0004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; - CEC8F3151416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CEC8F3171416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; - CEC8F3181416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ProblemDialog.xib; sourceTree = ""; }; - CEC8F3191416A0FC004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ResultWindow.xib; sourceTree = ""; }; - CEC8F3201416A109004D28F3 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; - 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 = ""; }; - 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 = ""; }; - CEF5770813CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; - CEF5770A13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CEF5770B13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; - CEF5770C13CDFB250083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CEF5770D13CDFB310083CB30 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; - CEF6BCA71575769C00DACF6F /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = ""; }; - CEF6BCA81575769C00DACF6F /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = ""; }; - CEF6BCA91575769C00DACF6F /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = ""; }; - CEF8AB8815BAECBA00E57AD6 /* DetailsPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailsPanel_UI.h; sourceTree = ""; }; - CEF8AB8915BAECBA00E57AD6 /* DetailsPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel_UI.m; sourceTree = ""; }; - CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CE2E87F9142BC90A00519A68 /* Quartz.framework in Frameworks */, - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - CE1425890AFB718500BD5167 /* Sparkle.framework in Frameworks */, - CE9705F814C46EA3007A28F6 /* Python in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* DGME */ = { - isa = PBXGroup; - children = ( - CE381C9509914ACE003581CE /* AppDelegate.h */, - CE381C9409914ACE003581CE /* AppDelegate.m */, - CE848A1809DD85810004CB44 /* Consts.h */, - CE68EE6509ABC48000971085 /* DirectoryPanel.h */, - CE68EE6609ABC48000971085 /* DirectoryPanel.m */, - CE381C9B09914ADF003581CE /* ResultWindow.h */, - CE381C9A09914ADF003581CE /* ResultWindow.m */, - ); - name = DGME; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - CE9705F714C46EA3007A28F6 /* Python */, - CE1425880AFB718500BD5167 /* Sparkle.framework */, - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - CE2E87F8142BC90A00519A68 /* Quartz.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* dupeGuru ME.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* dupeguru */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* DGME */, - CE515E140FC6C17900EC695D /* dgbase */, - CE9705C314C46E7D007A28F6 /* autogen */, - CE515DDD0FC6C09400EC695D /* cocoalib */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = dupeguru; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - CE97060014C46F70007A28F6 /* dg_cocoa.py */, - CE9705FE14C46F60007A28F6 /* py */, - CEA14F421461ED63007F01A5 /* locale */, - CE073F5409CAE1A3005C1D2F /* help */, - CEFC294309C89E0000D9F998 /* images */, - CE05330C12E5D3D70029EF25 /* xib */, - CEEB135109C837A2004D2330 /* dupeguru.icns */, - CE05332D12E5D6100029EF25 /* Localizable.strings */, - 8D1107310486CEB800E47090 /* Info.plist */, - CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - CE003CB211242D00004B0AA7 /* controllers */ = { - isa = PBXGroup; - children = ( - CE2239A0148FFE6600B3DC99 /* HSColumns.h */, - CE2239A1148FFE6600B3DC99 /* HSColumns.m */, - CE003CB311242D00004B0AA7 /* HSGUIController.h */, - CE003CB411242D00004B0AA7 /* HSGUIController.m */, - CE003CB511242D00004B0AA7 /* HSOutline.h */, - CE003CB611242D00004B0AA7 /* HSOutline.m */, - CE0A0BFE1175A1C000DCA3C6 /* HSTable.h */, - CE0A0BFF1175A1C000DCA3C6 /* HSTable.m */, - CE84C9B51423AE410050A6AD /* HSPopUpList.h */, - CE84C9B61423AE410050A6AD /* HSPopUpList.m */, - CE84C9B71423AE410050A6AD /* HSSelectableList.h */, - CE84C9B81423AE410050A6AD /* HSSelectableList.m */, - ); - name = controllers; - path = ../../cocoalib/controllers; - sourceTree = SOURCE_ROOT; - }; - CE003CBF11242D00004B0AA7 /* views */ = { - isa = PBXGroup; - children = ( - CE578301124DFC660004769C /* HSTableView.h */, - CE578302124DFC660004769C /* HSTableView.m */, - CE003CC011242D00004B0AA7 /* HSOutlineView.h */, - CE003CC111242D00004B0AA7 /* HSOutlineView.m */, - CE003CC211242D00004B0AA7 /* NSIndexPathAdditions.h */, - CE003CC311242D00004B0AA7 /* NSIndexPathAdditions.m */, - CE003CC411242D00004B0AA7 /* NSTableViewAdditions.h */, - CE003CC511242D00004B0AA7 /* NSTableViewAdditions.m */, - ); - name = views; - path = ../../cocoalib/views; - sourceTree = SOURCE_ROOT; - }; - CE05330C12E5D3D70029EF25 /* xib */ = { - isa = PBXGroup; - children = ( - CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */, - CE05331112E5D3ED0029EF25 /* MainMenu.xib */, - CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */, - CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */, - CE05331512E5D3ED0029EF25 /* ResultWindow.xib */, - CE05332112E5D4100029EF25 /* Preferences.xib */, - CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */, - CEA39F97157679FB00F294DE /* DeletionOptions.xib */, - ); - name = xib; - sourceTree = ""; - }; - CE515DDD0FC6C09400EC695D /* cocoalib */ = { - isa = PBXGroup; - children = ( - CE85B9A615B9F9A1003C7302 /* autogen */, - CE003CB211242D00004B0AA7 /* controllers */, - CE003CBF11242D00004B0AA7 /* views */, - CE78EEC615B9FEE0005CB26E /* cocoalib.strings */, - CE515DE00FC6C12E00EC695D /* Dialogs.h */, - CE515DE10FC6C12E00EC695D /* Dialogs.m */, - CEF6BCA71575769C00DACF6F /* HSFairwareProtocol.h */, - CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */, - CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */, - CE4F934712CCA96C0067A3AE /* HSAboutBox.h */, - CE4F934812CCA96C0067A3AE /* HSAboutBox.m */, - CE1EAA0812DF3E81009BA949 /* HSRecentFiles.h */, - CE1EAA0912DF3E81009BA949 /* HSRecentFiles.m */, - CE2E87FB142BC92C00519A68 /* HSQuicklook.h */, - CE2E87FC142BC92C00519A68 /* HSQuicklook.m */, - CE003CB911242D00004B0AA7 /* NSEventAdditions.h */, - CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */, - CE515DE60FC6C12E00EC695D /* ProgressController.h */, - CE515DE70FC6C12E00EC695D /* ProgressController.m */, - CE515DEF0FC6C12E00EC695D /* Utils.h */, - CE515DF00FC6C12E00EC695D /* Utils.m */, - CEF6BCA81575769C00DACF6F /* HSPyUtil.h */, - CEF6BCA91575769C00DACF6F /* HSPyUtil.m */, - CE515DF10FC6C12E00EC695D /* ValueTransformers.h */, - CE515DF20FC6C12E00EC695D /* ValueTransformers.m */, - ); - name = cocoalib; - sourceTree = ""; - }; - CE515E140FC6C17900EC695D /* dgbase */ = { - isa = PBXGroup; - children = ( - CEB14D27124DFC2800FA7481 /* ResultTable.h */, - CEB14D28124DFC2800FA7481 /* ResultTable.m */, - CE003CCD11242D2C004B0AA7 /* DirectoryOutline.h */, - CE003CCE11242D2C004B0AA7 /* DirectoryOutline.m */, - CE515E150FC6C19300EC695D /* AppDelegate.h */, - CE515E160FC6C19300EC695D /* AppDelegate.m */, - CE515E170FC6C19300EC695D /* Consts.h */, - CE6032BE0FE6784C007E33FF /* DetailsPanel.h */, - CE6032BF0FE6784C007E33FF /* DetailsPanel.m */, - CE515E180FC6C19300EC695D /* DirectoryPanel.h */, - CE515E190FC6C19300EC695D /* DirectoryPanel.m */, - CE0A0C011175A1DE00DCA3C6 /* ProblemDialog.h */, - CE0A0C021175A1DE00DCA3C6 /* ProblemDialog.m */, - CE515E1B0FC6C19300EC695D /* ResultWindow.h */, - CE515E1C0FC6C19300EC695D /* ResultWindow.m */, - CE1195911510FF890063C8AF /* IgnoreListDialog.h */, - CE1195921510FF890063C8AF /* IgnoreListDialog.m */, - CEDF07A1112493B200EE5BC0 /* StatsLabel.h */, - CEDF07A2112493B200EE5BC0 /* StatsLabel.m */, - CE84C9AC1423ADFB0050A6AD /* PrioritizeDialog.h */, - CE84C9AD1423ADFB0050A6AD /* PrioritizeDialog.m */, - CE84C9AE1423ADFB0050A6AD /* PrioritizeList.h */, - CE84C9AF1423ADFB0050A6AD /* PrioritizeList.m */, - CEA39FAE15767A3A00F294DE /* DeletionOptions.h */, - CEA39FAF15767A3A00F294DE /* DeletionOptions.m */, - CE97060214C471F2007A28F6 /* main.m */, - ); - name = dgbase; - sourceTree = ""; - }; - CE85B9A615B9F9A1003C7302 /* autogen */ = { - isa = PBXGroup; - children = ( - CE85B9A715B9F9A1003C7302 /* HSAboutBox_UI.h */, - CE85B9A815B9F9A1003C7302 /* HSAboutBox_UI.m */, - CE85B9A915B9F9A1003C7302 /* HSDemoReminder_UI.h */, - CE85B9AA15B9F9A1003C7302 /* HSDemoReminder_UI.m */, - CE85B9AB15B9F9A1003C7302 /* HSEnterCode_UI.h */, - CE85B9AC15B9F9A1003C7302 /* HSEnterCode_UI.m */, - CE85B9AD15B9F9A1003C7302 /* HSErrorReportWindow_UI.h */, - CE85B9AE15B9F9A1003C7302 /* HSErrorReportWindow_UI.m */, - CE85B9AF15B9F9A1003C7302 /* HSFairwareReminder_UI.h */, - CE85B9B015B9F9A1003C7302 /* HSFairwareReminder_UI.m */, - CE85B9B115B9F9A1003C7302 /* ProgressController_UI.h */, - CE85B9B215B9F9A1003C7302 /* ProgressController_UI.m */, - ); - name = autogen; - path = ../../cocoalib/autogen; - sourceTree = ""; - }; - CE9705C314C46E7D007A28F6 /* autogen */ = { - isa = PBXGroup; - children = ( - CEF8AB8815BAECBA00E57AD6 /* DetailsPanel_UI.h */, - CEF8AB8915BAECBA00E57AD6 /* DetailsPanel_UI.m */, - 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 */, - 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 */, - CE11958D1510FF700063C8AF /* PyIgnoreListDialog.h */, - CE11958E1510FF700063C8AF /* PyIgnoreListDialog.m */, - CEA39FAB15767A2900F294DE /* PyDeletionOptions.h */, - CEA39FAC15767A2900F294DE /* PyDeletionOptions.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 = ( - CEFC294509C89E3D00D9F998 /* folder32.png */, - ); - name = images; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* dupeguru */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "dupeguru" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - CECC02B709A36E8200CC0A94 /* CopyFiles */, - CE6B288A0AFB7FC900508D93 /* AppleScript */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = dupeguru; - productInstallPath = "$(HOME)/Applications"; - productName = dupeguru; - productReference = 8D1107320486CEB800E47090 /* dupeGuru ME.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0440; - }; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - en, - fr, - de, - zh_CN, - cs, - it, - hy, - ru, - uk, - pt_BR, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* dupeguru */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CE073F6309CAE1A3005C1D2F /* help in Resources */, - CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */, - CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, - CE6E0E9F1054EB97008D9390 /* dsa_pub.pem in Resources */, - CE74A12712537F2E008A8DF0 /* FairwareReminder.xib in Resources */, - CE05331812E5D3ED0029EF25 /* DirectoryPanel.xib in Resources */, - CE05331912E5D3ED0029EF25 /* MainMenu.xib in Resources */, - CE05331A12E5D3ED0029EF25 /* ProblemDialog.xib in Resources */, - CE05331B12E5D3ED0029EF25 /* ResultWindow.xib in Resources */, - CE05332312E5D4100029EF25 /* Preferences.xib in Resources */, - CE05332F12E5D6100029EF25 /* Localizable.strings in Resources */, - CEF3185913D8660000B8CDCA /* about.xib in Resources */, - CEF3185A13D8660000B8CDCA /* ErrorReportWindow.xib in Resources */, - CE84C9BD1423AF200050A6AD /* PrioritizeDialog.xib in Resources */, - CEA14F431461ED63007F01A5 /* locale in Resources */, - CE9705FF14C46F60007A28F6 /* py in Resources */, - CE97060114C46F70007A28F6 /* dg_cocoa.py in Resources */, - CE1195961510FFB20063C8AF /* IgnoreListDialog.xib in Resources */, - CEA39FA1157679FB00F294DE /* DeletionOptions.xib in Resources */, - CE78EEC815B9FEE0005CB26E /* cocoalib.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CE381C9609914ACE003581CE /* AppDelegate.m in Sources */, - CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */, - CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */, - CE515DF30FC6C12E00EC695D /* Dialogs.m in Sources */, - CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */, - CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */, - CE515DFB0FC6C12E00EC695D /* ValueTransformers.m in Sources */, - CE515E1D0FC6C19300EC695D /* AppDelegate.m in Sources */, - CE515E1E0FC6C19300EC695D /* DirectoryPanel.m in Sources */, - CE515E1F0FC6C19300EC695D /* ResultWindow.m in Sources */, - CE6032C00FE6784C007E33FF /* DetailsPanel.m in Sources */, - CE003CC611242D00004B0AA7 /* HSGUIController.m in Sources */, - CE003CC711242D00004B0AA7 /* HSOutline.m in Sources */, - CE003CC911242D00004B0AA7 /* NSEventAdditions.m in Sources */, - CE003CCA11242D00004B0AA7 /* HSOutlineView.m in Sources */, - CE003CCB11242D00004B0AA7 /* NSIndexPathAdditions.m in Sources */, - CE003CCC11242D00004B0AA7 /* NSTableViewAdditions.m in Sources */, - CE003CD011242D2C004B0AA7 /* DirectoryOutline.m in Sources */, - CEDF07A3112493B200EE5BC0 /* StatsLabel.m in Sources */, - CE0A0C001175A1C000DCA3C6 /* HSTable.m in Sources */, - CE0A0C041175A1DE00DCA3C6 /* ProblemDialog.m in Sources */, - CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */, - CE578303124DFC660004769C /* HSTableView.m in Sources */, - CE74A12412537F06008A8DF0 /* HSFairwareReminder.m in Sources */, - CE4F934912CCA96C0067A3AE /* HSAboutBox.m in Sources */, - CE1EAA0A12DF3E81009BA949 /* HSRecentFiles.m in Sources */, - CE84C9B21423ADFB0050A6AD /* PrioritizeDialog.m in Sources */, - CE84C9B31423ADFB0050A6AD /* PrioritizeList.m in Sources */, - CE84C9B91423AE410050A6AD /* HSPopUpList.m in Sources */, - 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 */, - 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 */, - CE11958F1510FF700063C8AF /* PyIgnoreListDialog.m in Sources */, - CE1195931510FF890063C8AF /* IgnoreListDialog.m in Sources */, - CEF6BCAA1575769C00DACF6F /* HSPyUtil.m in Sources */, - CEA39FAD15767A2900F294DE /* PyDeletionOptions.m in Sources */, - CEA39FB015767A3A00F294DE /* DeletionOptions.m in Sources */, - CE85B9B315B9F9A1003C7302 /* HSAboutBox_UI.m in Sources */, - CE85B9B415B9F9A1003C7302 /* HSDemoReminder_UI.m in Sources */, - CE85B9B515B9F9A1003C7302 /* HSEnterCode_UI.m in Sources */, - CE85B9B615B9F9A1003C7302 /* HSErrorReportWindow_UI.m in Sources */, - CE85B9B715B9F9A1003C7302 /* HSFairwareReminder_UI.m in Sources */, - CE85B9B815B9F9A1003C7302 /* ProgressController_UI.m in Sources */, - CEF8AB8A15BAECBA00E57AD6 /* DetailsPanel_UI.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - CE05330F12E5D3ED0029EF25 /* DirectoryPanel.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05331012E5D3ED0029EF25 /* en */, - CE05331D12E5D4010029EF25 /* fr */, - CEF5770813CDFB250083CB30 /* de */, - CEC8F3151416A0FC004D28F3 /* zh_CN */, - CE74255214603152002F8E3E /* cs */, - CE7A6999146443090007D927 /* it */, - CEC3D37D14911253006B1A91 /* hy */, - CE335AF814B393EE0000AF1A /* ru */, - CE35FCF614C637DD004E4864 /* uk */, - CE20A79B15A2847500FAC2BA /* pt_BR */, - ); - name = DirectoryPanel.xib; - sourceTree = SOURCE_ROOT; - }; - CE05331112E5D3ED0029EF25 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05331212E5D3ED0029EF25 /* en */, - CE05331E12E5D4010029EF25 /* fr */, - CEF5770A13CDFB250083CB30 /* de */, - CEC8F3171416A0FC004D28F3 /* zh_CN */, - CE74255414603152002F8E3E /* cs */, - CE7A699B146443090007D927 /* it */, - CEC3D37F14911253006B1A91 /* hy */, - CE335AFA14B393EE0000AF1A /* ru */, - CE35FCF814C637DD004E4864 /* uk */, - CE20A79D15A2847500FAC2BA /* pt_BR */, - ); - name = MainMenu.xib; - sourceTree = SOURCE_ROOT; - }; - CE05331312E5D3ED0029EF25 /* ProblemDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05331412E5D3ED0029EF25 /* en */, - CE05331F12E5D4010029EF25 /* fr */, - CEF5770B13CDFB250083CB30 /* de */, - CEC8F3181416A0FC004D28F3 /* zh_CN */, - CE74255614603152002F8E3E /* cs */, - CE7A699D146443090007D927 /* it */, - CEC3D38114911253006B1A91 /* hy */, - CE335AFC14B393EE0000AF1A /* ru */, - CE35FCFA14C637DD004E4864 /* uk */, - CE20A79F15A2847500FAC2BA /* pt_BR */, - ); - name = ProblemDialog.xib; - sourceTree = SOURCE_ROOT; - }; - CE05331512E5D3ED0029EF25 /* ResultWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05331612E5D3ED0029EF25 /* en */, - CE05332012E5D4010029EF25 /* fr */, - CEF5770C13CDFB250083CB30 /* de */, - CEC8F3191416A0FC004D28F3 /* zh_CN */, - CE74255714603152002F8E3E /* cs */, - CE7A699E146443090007D927 /* it */, - CEC3D38214911253006B1A91 /* hy */, - CE335AFD14B393EE0000AF1A /* ru */, - CE35FCFB14C637DD004E4864 /* uk */, - CE20A7A015A2847500FAC2BA /* pt_BR */, - ); - name = ResultWindow.xib; - sourceTree = SOURCE_ROOT; - }; - CE05332112E5D4100029EF25 /* Preferences.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05332212E5D4100029EF25 /* en */, - CE05332912E5D4460029EF25 /* fr */, - CEF5770D13CDFB310083CB30 /* de */, - CEC8F3201416A109004D28F3 /* zh_CN */, - CE74255F1460318D002F8E3E /* cs */, - CE7A69A6146443170007D927 /* it */, - CEC3D38B14911263006B1A91 /* hy */, - CE335B0514B393FB0000AF1A /* ru */, - CE35FD0314C637EC004E4864 /* uk */, - CE20A79715A2845A00FAC2BA /* pt_BR */, - ); - name = Preferences.xib; - sourceTree = SOURCE_ROOT; - }; - CE05332D12E5D6100029EF25 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - CE05332E12E5D6100029EF25 /* en */, - CE05333312E5D6370029EF25 /* fr */, - CE2B2B5A1406ABDA0038D15A /* de */, - CEC8F3111416A0F0004D28F3 /* zh_CN */, - CE74254414603143002F8E3E /* cs */, - CE7A6992146442F80007D927 /* it */, - CEC3D38D14911274006B1A91 /* hy */, - CE335AF514B393DC0000AF1A /* ru */, - CE35FCF314C637C8004E4864 /* uk */, - CE39D18515B9D1A300AD36C6 /* pt_BR */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - CE1195941510FFB20063C8AF /* IgnoreListDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE1195951510FFB20063C8AF /* en */, - CE119597151100020063C8AF /* cs */, - CE119598151100020063C8AF /* de */, - CE119599151100020063C8AF /* fr */, - CE11959A151100020063C8AF /* hy */, - CE11959B151100020063C8AF /* it */, - CE11959C151100020063C8AF /* ru */, - CE11959D151100020063C8AF /* uk */, - CE11959E151100020063C8AF /* zh_CN */, - CE20A79C15A2847500FAC2BA /* pt_BR */, - ); - name = IgnoreListDialog.xib; - sourceTree = ""; - }; - CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = FairwareReminder.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; - CE78EEC615B9FEE0005CB26E /* cocoalib.strings */ = { - isa = PBXVariantGroup; - children = ( - CE78EEC715B9FEE0005CB26E /* en */, - CE78EECA15B9FF07005CB26E /* cs */, - CE78EECB15B9FF07005CB26E /* de */, - CE78EECC15B9FF07005CB26E /* fr */, - CE78EECD15B9FF07005CB26E /* hy */, - CE78EECE15B9FF07005CB26E /* it */, - CE78EECF15B9FF07005CB26E /* pt_BR */, - CE78EED015B9FF07005CB26E /* ru */, - CE78EED115B9FF07005CB26E /* uk */, - CE78EED215B9FF07005CB26E /* zh_CN */, - ); - name = cocoalib.strings; - sourceTree = ""; - }; - CE84C9BB1423AF200050A6AD /* PrioritizeDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE84C9BC1423AF200050A6AD /* en */, - CECE37A31423EA980005187F /* de */, - CECE37A41423EA980005187F /* fr */, - CECE37A51423EA980005187F /* zh_CN */, - CE74255514603152002F8E3E /* cs */, - CE7A699C146443090007D927 /* it */, - CEC3D38014911253006B1A91 /* hy */, - CE335AFB14B393EE0000AF1A /* ru */, - CE35FCF914C637DD004E4864 /* uk */, - CE20A79E15A2847500FAC2BA /* pt_BR */, - ); - name = PrioritizeDialog.xib; - sourceTree = ""; - }; - CEA39F97157679FB00F294DE /* DeletionOptions.xib */ = { - isa = PBXVariantGroup; - children = ( - CEA39F9A157679FB00F294DE /* en */, - CEA39F98157679FB00F294DE /* cs */, - CEA39F99157679FB00F294DE /* de */, - CEA39F9B157679FB00F294DE /* fr */, - CEA39F9C157679FB00F294DE /* hy */, - CEA39F9D157679FB00F294DE /* it */, - CEA39F9E157679FB00F294DE /* ru */, - CEA39F9F157679FB00F294DE /* uk */, - CEA39FA0157679FB00F294DE /* zh_CN */, - CE20A79915A2847500FAC2BA /* pt_BR */, - ); - name = DeletionOptions.xib; - sourceTree = ""; - }; - CEF3185513D8660000B8CDCA /* about.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = about.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; - CEF3185713D8660000B8CDCA /* ErrorReportWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = ErrorReportWindow.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DEPLOYMENT_POSTPROCESSING = YES; - DSTROOT = /; - 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; - }; - name = release; - }; - C01FCF5008A954540054247B /* release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; - GCC_C_LANGUAGE_STANDARD = c99; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.7; - }; - name = release; - }; - CED596C5111AF56D00C0CF2B /* dev */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(NATIVE_ARCH_ACTUAL)"; - FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; - GCC_C_LANGUAGE_STANDARD = c99; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.7; - }; - name = dev; - }; - CED596C6111AF56D00C0CF2B /* dev */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DEPLOYMENT_POSTPROCESSING = YES; - DSTROOT = /; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(PROJECT_DIR)"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../../build\"", - ); - PRODUCT_NAME = "dupeGuru ME"; - WRAPPER_EXTENSION = app; - }; - name = dev; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "dupeguru" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* release */, - CED596C6111AF56D00C0CF2B /* dev */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* release */, - CED596C5111AF56D00C0CF2B /* dev */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/cocoa/me/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/cocoa/me/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e0000163..00000000 --- a/cocoa/me/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/cocoa/me/en.lproj/Preferences.strings b/cocoa/me/en.lproj/Preferences.strings deleted file mode 100644 index 6866a715..00000000 --- a/cocoa/me/en.lproj/Preferences.strings +++ /dev/null @@ -1,105 +0,0 @@ - -/* Class = "NSWindow"; title = "dupeGuru ME Preferences"; ObjectID = "2"; */ -"2.title" = "dupeGuru ME Preferences"; - -/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "29"; */ -"29.title" = "More results"; - -/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "30"; */ -"30.title" = "Fewer results"; - -/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "31"; */ -"31.title" = "Filter hardness:"; - -/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "32"; */ -"32.title" = "Scan type:"; - -/* Class = "NSMenuItem"; title = "Content"; ObjectID = "35"; */ -"35.title" = "Content"; - -/* Class = "NSMenuItem"; title = "Filename"; ObjectID = "36"; */ -"36.title" = "Filename"; - -/* Class = "NSMenuItem"; title = "Filename - Fields"; ObjectID = "37"; */ -"37.title" = "Filename - Fields"; - -/* Class = "NSMenuItem"; title = "Tags"; ObjectID = "38"; */ -"38.title" = "Tags"; - -/* Class = "NSMenuItem"; title = "Audio Content"; ObjectID = "39"; */ -"39.title" = "Audio Content"; - -/* Class = "NSMenuItem"; title = "Filename - Fields (No Order)"; ObjectID = "40"; */ -"40.title" = "Filename - Fields (No Order)"; - -/* Class = "NSButtonCell"; title = "Word weighting"; ObjectID = "41"; */ -"41.title" = "Word weighting"; - -/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "42"; */ -"42.title" = "Can mix file kind"; - -/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "45"; */ -"45.title" = "Reset to Defaults"; - -/* Class = "NSButtonCell"; title = "Match similar words"; ObjectID = "46"; */ -"46.title" = "Match similar words"; - -/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "54"; */ -"54.title" = "Copy and Move:"; - -/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "57"; */ -"57.title" = "Recreate relative path"; - -/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "58"; */ -"58.title" = "Recreate absolute path"; - -/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "59"; */ -"59.title" = "Right in destination"; - -/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "60"; */ -"60.title" = "Automatically check for updates"; - -/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "61"; */ -"61.title" = "Use regular expressions when filtering"; - -/* Class = "NSButtonCell"; title = "Remove empty folders after delete and move"; ObjectID = "62"; */ -"62.title" = "Remove empty folders after delete and move"; - -/* Class = "NSTextFieldCell"; title = "Tags to scan:"; ObjectID = "63"; */ -"63.title" = "Tags to scan:"; - -/* Class = "NSButtonCell"; title = "Track"; ObjectID = "64"; */ -"64.title" = "Track"; - -/* Class = "NSButtonCell"; title = "Artist"; ObjectID = "65"; */ -"65.title" = "Artist"; - -/* Class = "NSButtonCell"; title = "Album"; ObjectID = "66"; */ -"66.title" = "Album"; - -/* Class = "NSButtonCell"; title = "Title"; ObjectID = "67"; */ -"67.title" = "Title"; - -/* Class = "NSButtonCell"; title = "Genre"; ObjectID = "68"; */ -"68.title" = "Genre"; - -/* Class = "NSButtonCell"; title = "Year"; ObjectID = "69"; */ -"69.title" = "Year"; - -/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "116"; */ -"116.label" = "Basic"; - -/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "117"; */ -"117.label" = "Advanced"; - -/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "121"; */ -"121.title" = "Custom Command (arguments: %d for dupe, %r for ref):"; - -/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "126"; */ -"126.title" = "Ignore duplicates hardlinking to the same file"; - -/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "130"; */ -"130.title" = "Debug mode (restart required)"; - -/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "136"; */ -"136.title" = "Font size:"; diff --git a/cocoa/me/en.lproj/Preferences.xib b/cocoa/me/en.lproj/Preferences.xib deleted file mode 100644 index cdf77c88..00000000 --- a/cocoa/me/en.lproj/Preferences.xib +++ /dev/null @@ -1,2386 +0,0 @@ - - - - 1060 - 11B26 - 1617 - 1138 - 566.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1617 - - - NSPopUpButtonCell - NSComboBoxCell - NSPopUpButton - NSNumberFormatter - NSButton - NSMenu - NSButtonCell - NSTextFieldCell - NSMenuItem - NSComboBox - NSTabView - NSSlider - NSSliderCell - NSCustomObject - NSTabViewItem - NSView - NSWindowTemplate - NSTextField - NSUserDefaultsController - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - NSWindowController - - - FirstResponder - - - NSApplication - - - YES - - - 3 - 2 - {{92, 259}, {406, 362}} - 1886912512 - dupeGuru ME Preferences - - NSWindow - - - View - - - {213, 107} - - - 256 - - - - 256 - {{244, 5}, {148, 32}} - - - - YES - - 67239424 - 134217728 - Reset to Defaults - - LucidaGrande - 13 - 1044 - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 12 - {{13, 33}, {380, 323}} - - - - - - 1 - - - 256 - - - - 292 - {{117, 215}, {190, 21}} - - - - YES - - 67239424 - 0 - - - - - Helvetica - 12 - 16 - - - 100 - 1 - 80 - 0.0 - 0 - 1 - NO - NO - - - - - 292 - {{119, 198}, {80, 13}} - - - - YES - - 67239424 - 272629760 - More results - - LucidaGrande - 10 - 2843 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 289 - {{225, 198}, {80, 13}} - - - - YES - - 67239424 - 71303168 - Fewer results - - - - - - - - - 292 - {{14, 220}, {100, 14}} - - - - YES - - 67239424 - 272629760 - Filter hardness: - - LucidaGrande - 11 - 3100 - - - - - - - - - 292 - {{17, 261}, {85, 13}} - - - - YES - - 67239424 - 272629760 - Scan type: - - - - - - - - - 292 - {{116, 250}, {231, 26}} - - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Tags - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - - - Filename - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Filename - Fields - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Filename - Fields (No Order) - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - Content - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Audio Content - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - 3 - YES - YES - 1 - - - - - 256 - {{15, 85}, {330, 18}} - - - - YES - - 67239424 - 0 - Word weighting - - - 1211912703 - 2 - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{15, 45}, {325, 18}} - - - - YES - - 67239424 - 0 - Can mix file kind - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{313, 220}, {31, 14}} - - - - YES - - 67239424 - -1874853888 - - - - - - - 0 - - - . - - , - -0 - 0 - - - 0 - -0 - - - - - - - - NaN - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - . - , - NO - YES - YES - - - - - - - - - 256 - {{15, 65}, {330, 18}} - - - - YES - - 67239424 - 0 - Match similar words - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 5}, {330, 18}} - - - - YES - - 67239424 - 0 - Automatically check for updates - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 25}, {330, 18}} - - - - YES - - 67239424 - 0 - Remove empty folders after delete and move - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 292 - {{14, 145}, {100, 17}} - - - - YES - - 67239424 - 272629760 - Tags to scan: - - - - - - - - - 256 - {{24, 125}, {66, 18}} - - - - YES - - 67239424 - 0 - Track - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{94, 125}, {66, 18}} - - - - YES - - 67239424 - 0 - Artist - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{164, 125}, {66, 18}} - - - - YES - - 67239424 - 0 - Album - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{24, 105}, {66, 18}} - - - - YES - - 67239424 - 0 - Title - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{94, 105}, {66, 18}} - - - - YES - - 67239424 - 0 - Genre - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{164, 105}, {66, 18}} - - - - YES - - 67239424 - 0 - Year - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 292 - {{14, 170}, {100, 17}} - - - - YES - - 67239424 - 272629760 - Font size: - - - - - - - - - 268 - {{119, 166}, {69, 26}} - - - - YES - - 343014976 - 272630784 - - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - YES - YES - - 11 - 12 - 13 - 14 - 18 - 24 - - - - - 274 - {13, 126} - - - YES - - - 10 - 10 - 1000 - - 75628032 - 0 - - - LucidaGrande - 12 - 16 - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - YES - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 19 - tableViewAction: - -765427712 - - - - 1 - 15 - 0 - YES - 0 - 1 - - - - - {{10, 33}, {360, 277}} - - - - - Basic - - - - - 2 - - - 256 - - - - 256 - {{15, 258}, {340, 18}} - - YES - - 67239424 - 0 - Use regular expressions when filtering - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 292 - {{14, 152}, {332, 13}} - - YES - - 67239424 - 272629760 - Copy and Move: - - - - - - - - - 292 - {{14, 195}, {332, 17}} - - YES - - 67239424 - 272629760 - Custom Command (arguments: %d for dupe, %r for ref): - - - - - - - - - 292 - {{14, 120}, {256, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Right in destination - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Recreate relative path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Recreate absolute path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 266 - {{17, 173}, {326, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - 6 - System - textColor - - - - - - - 256 - {{15, 238}, {340, 18}} - - YES - - 67239424 - 0 - Ignore duplicates hardlinking to the same file - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 218}, {340, 18}} - - YES - - 67239424 - 0 - Debug mode (restart required) - - - 1211912703 - 2 - - - - 200 - 25 - - - - {{10, 33}, {360, 277}} - - Advanced - - - - - - - 0 - YES - YES - - - - - - {406, 362} - - - - - {{0, 0}, {1920, 1058}} - {213, 129} - {10000000000000, 10000000000000} - YES - - - - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 70 - - - - value: values.scanTagTrack - - - - - - value: values.scanTagTrack - value - values.scanTagTrack - 2 - - - 71 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 72 - - - - nextKeyView - - - - 73 - - - - value: values.scanTagYear - - - - - - value: values.scanTagYear - value - values.scanTagYear - 2 - - - 74 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsTag - - 2 - - - 75 - - - - nextKeyView - - - - 76 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 77 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsTag - - 2 - - - 78 - - - - value: values.scanTagTitle - - - - - - value: values.scanTagTitle - value - values.scanTagTitle - 2 - - - 79 - - - - nextKeyView - - - - 80 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsTag - - 2 - - - 81 - - - - nextKeyView - - - - 82 - - - - value: values.matchSimilarWords - - - - - - value: values.matchSimilarWords - value - values.matchSimilarWords - 2 - - - 83 - - - - nextKeyView - - - - 84 - - - - nextKeyView - - - - 86 - - - - value: values.wordWeighting - - - - - - value: values.wordWeighting - value - values.wordWeighting - 2 - - - 87 - - - - nextKeyView - - - - 88 - - - - value: values.scanTagAlbum - - - - - - value: values.scanTagAlbum - value - values.scanTagAlbum - 2 - - - 89 - - - - nextKeyView - - - - 90 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsTag - - 2 - - - 91 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsNotContent - - 2 - - - 92 - - - - value: values.mixFileKind - - - - - - value: values.mixFileKind - value - values.mixFileKind - 2 - - - 93 - - - - value: values.scanTagGenre - - - - - - value: values.scanTagGenre - value - values.scanTagGenre - 2 - - - 94 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsTag - - 2 - - - 95 - - - - selectedIndex: values.scanType - - - - - - selectedIndex: values.scanType - selectedIndex - values.scanType - 2 - - - 96 - - - - value: values.scanTagArtist - - - - - - value: values.scanTagArtist - value - values.scanTagArtist - 2 - - - 97 - - - - selectedIndex: values.recreatePathType - - - - - - selectedIndex: values.recreatePathType - selectedIndex - values.recreatePathType - 2 - - - 98 - - - - nextKeyView - - - - 99 - - - - nextKeyView - - - - 100 - - - - nextKeyView - - - - 101 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 102 - - - - value: values.removeEmptyFolders - - - - - - value: values.removeEmptyFolders - value - values.removeEmptyFolders - 2 - - - 103 - - - - nextKeyView - - - - 104 - - - - initialFirstResponder - - - - 105 - - - - value: values.useRegexpFilter - - - - - - value: values.useRegexpFilter - value - values.useRegexpFilter - 2 - - - 106 - - - - nextKeyView - - - - 107 - - - - nextKeyView - - - - 108 - - - - nextKeyView - - - - 109 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsTag - - 2 - - - 110 - - - - nextKeyView - - - - 111 - - - - window - - - - 112 - - - - revertToInitialValues: - - - - 113 - - - - value: values.SUEnableAutomaticChecks - - - - - - value: values.SUEnableAutomaticChecks - value - values.SUEnableAutomaticChecks - 2 - - - 114 - - - - value: values.CustomCommand - - - - - - value: values.CustomCommand - value - values.CustomCommand - 2 - - - 124 - - - - value: values.ignoreHardlinkMatches - - - - - - value: values.ignoreHardlinkMatches - value - values.ignoreHardlinkMatches - 2 - - - 128 - - - - value: values.DebugMode - - - - - - value: values.DebugMode - value - values.DebugMode - 2 - - - 132 - - - - value: values.TableFontSize - - - - - - value: values.TableFontSize - value - values.TableFontSize - 2 - - - 137 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - Shared Defaults - - - 2 - - - - - - preferences - - - 3 - - - - - - - - - 18 - - - - - - - - 45 - - - - - 115 - - - - - - - - - 116 - - - - - - - - 117 - - - - - - - - 118 - - - - - - - - - - - - - - 119 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 27 - - - - - - - - 28 - - - - - 26 - - - - - - - - 29 - - - - - 25 - - - - - - - - 30 - - - - - 24 - - - - - - - - 31 - - - - - 23 - - - - - - - - 32 - - - - - 22 - - - - - - - - 33 - - - - - - - - 34 - - - - - - - - - - - - - 40 - - - - - 39 - - - - - 38 - - - - - 37 - - - - - 36 - - - - - 35 - - - - - 21 - - - - - - - - 41 - - - - - 20 - - - - - - - - 42 - - - - - 19 - - - - - - - - 43 - - - - - - - - 44 - - - - - 17 - - - - - - - - 46 - - - - - 13 - - - - - - - - 60 - - - - - 11 - - - - - - - - 62 - - - - - 10 - - - - - - - - 63 - - - - - 9 - - - - - - - - 64 - - - - - 8 - - - - - - - - 65 - - - - - 7 - - - - - - - - 66 - - - - - 6 - - - - - - - - 67 - - - - - 5 - - - - - - - - 68 - - - - - 4 - - - - - - - - 69 - - - - - 12 - - - - - - - - 61 - - - - - 15 - - - - - - - - 54 - - - - - 14 - - - - - - - - 55 - - - - - - - - 56 - - - - - - - - - - 59 - - - - - 58 - - - - - 57 - - - - - 120 - - - - - - - - 121 - - - - - 122 - - - - - - - - 123 - - - - - 125 - - - - - - - - 126 - - - - - 129 - - - - - - - - 130 - - - - - 133 - - - - - - - - 134 - - - - - - - - 135 - - - - - 136 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{555, 254}, {406, 343}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 137 - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - {9, 8} - {7, 2} - - - From f08b593acbe117f22ca36d7ac239eeaab86aa690 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 10:38:29 -0400 Subject: [PATCH 22/33] Converted PE's preference panel to xibless and thus completed its transition to waf-based building. --HG-- branch : xibless --- cocoa/base/en.lproj/Localizable.strings | 5 + cocoa/base/ui/preferences_panel.py | 69 +- cocoa/pe/InfoTemplate.plist | 4 +- cocoa/pe/dupeguru.xcodeproj/project.pbxproj | 1105 ----------- .../contents.xcworkspacedata | 7 - cocoa/pe/en.lproj/Preferences.strings | 69 - cocoa/pe/en.lproj/Preferences.xib | 1670 ----------------- 7 files changed, 48 insertions(+), 2881 deletions(-) delete mode 100644 cocoa/pe/dupeguru.xcodeproj/project.pbxproj delete mode 100644 cocoa/pe/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 cocoa/pe/en.lproj/Preferences.strings delete mode 100644 cocoa/pe/en.lproj/Preferences.xib diff --git a/cocoa/base/en.lproj/Localizable.strings b/cocoa/base/en.lproj/Localizable.strings index 812b3cda..88ce0882 100644 --- a/cocoa/base/en.lproj/Localizable.strings +++ b/cocoa/base/en.lproj/Localizable.strings @@ -137,6 +137,11 @@ "Genre" = "Genre"; "Year" = "Year"; +"dupeGuru PE Preferences" = "dupeGuru PE Preferences"; +"Match pictures of different dimensions" = "Match pictures of different dimensions"; +"EXIF Timestamp" = "EXIF Timestamp"; +"Contents" = "Contents"; + /* Main Menu */ "Bring All to Front" = "Bring All to Front"; "Window" = "Window"; diff --git a/cocoa/base/ui/preferences_panel.py b/cocoa/base/ui/preferences_panel.py index 0764df4a..cd50e659 100644 --- a/cocoa/base/ui/preferences_panel.py +++ b/cocoa/base/ui/preferences_panel.py @@ -7,7 +7,7 @@ dialogTitles = { dialogHeights = { 'se': 345, 'me': 365, - 'pe': 270, + 'pe': 275, } scanTypeNames = { 'se': ["Filename", "Content", "Folders"], @@ -29,8 +29,11 @@ fewerResultsLabel = Label(basicTab.view, "Fewer results") thresholdValuelabel = Label(basicTab.view, "") fontSizeCombo = Combobox(basicTab.view, ["11", "12", "13", "14", "18", "24"]) fontSizeLabel = Label(basicTab.view, "Font Size:") -wordWeightingBox = Checkbox(basicTab.view, "Word weighting") -matchSimilarWordsBox = Checkbox(basicTab.view, "Match similar words") +if edition in ('se', 'me'): + wordWeightingBox = Checkbox(basicTab.view, "Word weighting") + matchSimilarWordsBox = Checkbox(basicTab.view, "Match similar words") +elif edition == 'pe': + matchDifferentDimensionsBox = Checkbox(basicTab.view, "Match pictures of different dimensions") mixKindBox = Checkbox(basicTab.view, "Can mix file kind") removeEmptyFoldersBox = Checkbox(basicTab.view, "Remove empty folders on delete or move") checkForUpdatesBox = Checkbox(basicTab.view, "Automatically check for updates") @@ -62,8 +65,6 @@ scanTypePopup.bind('selectedIndex', defaults, 'values.scanType') thresholdSlider.bind('value', defaults, 'values.minMatchPercentage') thresholdValuelabel.bind('value', defaults, 'values.minMatchPercentage') fontSizeCombo.bind('value', defaults, 'values.TableFontSize') -wordWeightingBox.bind('value', defaults, 'values.wordWeighting') -matchSimilarWordsBox.bind('value', defaults, 'values.matchSimilarWords') mixKindBox.bind('value', defaults, 'values.mixFileKind') removeEmptyFoldersBox.bind('value', defaults, 'values.removeEmptyFolders') checkForUpdatesBox.bind('value', defaults, 'values.SUEnableAutomaticChecks') @@ -72,34 +73,42 @@ ignoreHardlinksBox.bind('value', defaults, 'values.ignoreHardlinkMatches') debugModeCheckbox.bind('value', defaults, 'values.DebugMode') customCommandText.bind('value', defaults, 'values.CustomCommand') copyMovePopup.bind('selectedIndex', defaults, 'values.recreatePathType') -disableWhenContentScan = [thresholdSlider, wordWeightingBox, matchSimilarWordsBox] -for control in disableWhenContentScan: - control.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsNotContent') -if edition == 'se': - ignoreSmallFilesBox.bind('value', defaults, 'values.ignoreSmallFiles') - smallFilesThresholdText.bind('value', defaults, 'values.smallFileThreshold') -elif edition == 'me': - for box in tagBoxes: - box.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsTag') - trackBox.bind('value', defaults, 'values.scanTagTrack') - artistBox.bind('value', defaults, 'values.scanTagArtist') - albumBox.bind('value', defaults, 'values.scanTagAlbum') - titleBox.bind('value', defaults, 'values.scanTagTitle') - genreBox.bind('value', defaults, 'values.scanTagGenre') - yearBox.bind('value', defaults, 'values.scanTagYear') +if edition in ('se', 'me'): + wordWeightingBox.bind('value', defaults, 'values.wordWeighting') + matchSimilarWordsBox.bind('value', defaults, 'values.matchSimilarWords') + disableWhenContentScan = [thresholdSlider, wordWeightingBox, matchSimilarWordsBox] + for control in disableWhenContentScan: + control.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsNotContent') + if edition == 'se': + ignoreSmallFilesBox.bind('value', defaults, 'values.ignoreSmallFiles') + smallFilesThresholdText.bind('value', defaults, 'values.smallFileThreshold') + elif edition == 'me': + for box in tagBoxes: + box.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsTag') + trackBox.bind('value', defaults, 'values.scanTagTrack') + artistBox.bind('value', defaults, 'values.scanTagArtist') + albumBox.bind('value', defaults, 'values.scanTagAlbum') + titleBox.bind('value', defaults, 'values.scanTagTitle') + genreBox.bind('value', defaults, 'values.scanTagGenre') + yearBox.bind('value', defaults, 'values.scanTagYear') +elif edition == 'pe': + matchDifferentDimensionsBox.bind('value', defaults, 'values.matchScaled') + thresholdSlider.bind('enabled', defaults, 'values.scanType', valueTransformer='vtScanTypeIsFuzzy') result.canResize = False result.canMinimize = False allLabels = [scanTypeLabel, thresholdValuelabel, moreResultsLabel, fewerResultsLabel, thresholdLabel, fontSizeLabel, customCommandLabel, copyMoveLabel] -allCheckboxes = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox, - checkForUpdatesBox, regexpCheckbox, ignoreHardlinksBox, debugModeCheckbox] +allCheckboxes = [mixKindBox, removeEmptyFoldersBox, checkForUpdatesBox, regexpCheckbox, + ignoreHardlinksBox, debugModeCheckbox] if edition == 'se': allLabels += [smallFilesThresholdSuffixLabel] - allCheckboxes += [ignoreSmallFilesBox] + allCheckboxes += [ignoreSmallFilesBox, wordWeightingBox, matchSimilarWordsBox] elif edition == 'me': allLabels += [tagsToScanLabel] - allCheckboxes += tagBoxes + allCheckboxes += tagBoxes + [wordWeightingBox, matchSimilarWordsBox] +elif edition == 'pe': + allCheckboxes += [matchDifferentDimensionsBox] for label in allLabels: label.controlSize = ControlSize.Small fewerResultsLabel.alignment = TextAlignment.Right @@ -153,11 +162,15 @@ if edition == 'me': else: viewToPackCheckboxesUnder = fontSizeCombo -checkboxesToLayout = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox] if edition == 'se': - checkboxesToLayout.append(ignoreSmallFilesBox) -else: - checkboxesToLayout.append(checkForUpdatesBox) + checkboxesToLayout = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox, + ignoreSmallFilesBox] +elif edition == 'me': + checkboxesToLayout = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox, + checkForUpdatesBox] +elif edition == 'pe': + checkboxesToLayout = [matchDifferentDimensionsBox, mixKindBox, removeEmptyFoldersBox, + checkForUpdatesBox] checkboxLayout = VLayout(checkboxesToLayout) checkboxLayout.packRelativeTo(viewToPackCheckboxesUnder, Pack.Below) checkboxLayout.fill(Pack.Left) diff --git a/cocoa/pe/InfoTemplate.plist b/cocoa/pe/InfoTemplate.plist index 67fa68bc..e627bdd2 100644 --- a/cocoa/pe/InfoTemplate.plist +++ b/cocoa/pe/InfoTemplate.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion English CFBundleExecutable - ${EXECUTABLE_NAME} + dupeGuru CFBundleHelpBookFolder dupeguru_pe_help CFBundleHelpBookName @@ -17,7 +17,7 @@ CFBundleInfoDictionaryVersion 6.0 CFBundleName - ${PRODUCT_NAME} + dupeGuru PE CFBundlePackageType APPL CFBundleSignature diff --git a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj deleted file mode 100644 index 94eeec63..00000000 --- a/cocoa/pe/dupeguru.xcodeproj/project.pbxproj +++ /dev/null @@ -1,1105 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 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 */; }; - CE05339D12E5DA350029EF25 /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339712E5DA350029EF25 /* ProblemDialog.xib */; }; - CE05339E12E5DA350029EF25 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE05339912E5DA350029EF25 /* ResultWindow.xib */; }; - CE0533A812E5DA4D0029EF25 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A512E5DA4D0029EF25 /* Preferences.xib */; }; - CE0533AB12E5DA6A0029EF25 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE0533A912E5DA6A0029EF25 /* Localizable.strings */; }; - CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; }; - CE0C2AB61177011000BC749F /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0C2AB51177011000BC749F /* HSTable.m */; }; - CE0C2ABD1177014200BC749F /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE0C2ABB1177014200BC749F /* ProblemDialog.m */; }; - CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */; }; - CE15C8C00ADEB8D40061D4A5 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */; }; - CE1EB5FE12537F9D0034AABB /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */; }; - CE1EB60112537FB90034AABB /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */; }; - CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; }; - CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; }; - CE3E323515B9FFA2006FF5F1 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE3E323315B9FFA2006FF5F1 /* cocoalib.strings */; }; - 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 */; }; - 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 */; }; - CE7857971511019400174D51 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE7857951511019400174D51 /* IgnoreListDialog.xib */; }; - CE7857AA1511021200174D51 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7857A91511021200174D51 /* PyIgnoreListDialog.m */; }; - CE7857AD1511022A00174D51 /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7857AC1511022A00174D51 /* IgnoreListDialog.m */; }; - CE7D249D1423B0BD002E2297 /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249A1423B0BD002E2297 /* HSPopUpList.m */; }; - CE7D249E1423B0BD002E2297 /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D249C1423B0BD002E2297 /* HSSelectableList.m */; }; - CE7D24A51423B106002E2297 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE7D24A01423B106002E2297 /* PrioritizeDialog.m */; }; - 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 */; }; - 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 */; }; - CE80DB470FC193650086DCA6 /* NSNotificationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB460FC193650086DCA6 /* NSNotificationAdditions.m */; }; - CE80DB4A0FC193770086DCA6 /* NSImageAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB490FC193770086DCA6 /* NSImageAdditions.m */; }; - 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 */; }; - CE9292B415B9FA5200C6D7F6 /* HSAboutBox_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292A915B9FA5200C6D7F6 /* HSAboutBox_UI.m */; }; - CE9292B515B9FA5200C6D7F6 /* HSDemoReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292AB15B9FA5200C6D7F6 /* HSDemoReminder_UI.m */; }; - CE9292B615B9FA5200C6D7F6 /* HSEnterCode_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292AD15B9FA5200C6D7F6 /* HSEnterCode_UI.m */; }; - CE9292B715B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292AF15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m */; }; - CE9292B815B9FA5200C6D7F6 /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292B115B9FA5200C6D7F6 /* HSFairwareReminder_UI.m */; }; - CE9292B915B9FA5200C6D7F6 /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9292B315B9FA5200C6D7F6 /* ProgressController_UI.m */; }; - CE95865F112C516400F95FD2 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE95865D112C516400F95FD2 /* StatsLabel.m */; }; - CE9ACBA015BB3D8D00E94337 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9ACB9F15BB3D8D00E94337 /* DetailsPanel_UI.m */; }; - CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7441122C96C008CD2BC /* HSGUIController.m */; }; - CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7461122C96C008CD2BC /* HSOutline.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 */; }; - CE9EA75C1122C96C008CD2BC /* NSTableViewAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7551122C96C008CD2BC /* NSTableViewAdditions.m */; }; - CE9EA7721122CA0B008CD2BC /* DirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */; }; - 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 */; }; - CECA899D09DB132E00A3D774 /* DetailsPanelPE.m in Sources */ = {isa = PBXBuildFile; fileRef = CECA899B09DB132E00A3D774 /* DetailsPanelPE.m */; }; - CECB2AC513D867AD0081E295 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC113D867AD0081E295 /* about.xib */; }; - CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */; }; - CED3BC1515767AFB0028F3C9 /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */; }; - CED3BC1915767B0E0028F3C9 /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CED3BC1815767B0E0028F3C9 /* DeletionOptions.m */; }; - CED3BC2415767B200028F3C9 /* DeletionOptions.xib in Resources */ = {isa = PBXBuildFile; fileRef = CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */; }; - CEE6D562149113570087CDFC /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE6D561149113570087CDFC /* HSColumns.m */; }; - CEE8D3E2157576FD00E1A1B8 /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE8D3E1157576FD00E1A1B8 /* HSPyUtil.m */; }; - CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; - CEF12A7E124DFD400087B51D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A7D124DFD400087B51D /* HSTableView.m */; }; - CEF12A84124DFD620087B51D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF12A83124DFD620087B51D /* ResultTable.m */; }; - CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - CECC02B709A36E8200CC0A94 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - CE15C8C00ADEB8D40061D4A5 /* Sparkle.framework in CopyFiles */, - CE75017A14C4775B00E2A349 /* Python in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* 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 = ""; }; - 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; }; - 8D1107320486CEB800E47090 /* dupeGuru PE.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "dupeGuru PE.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - CE03DD6714FBD31300E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE03DD6814FBD31300E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/MainMenu.xib; sourceTree = ""; }; - CE03DD6914FBD31300E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE03DD6A14FBD31300E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE03DD6B14FBD31300E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/ResultWindow.xib; sourceTree = ""; }; - CE03DD7314FBD33600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ru.lproj/Preferences.xib; sourceTree = ""; }; - CE03DD7614FBD34600E998AC /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = ""; }; - CE05339412E5DA350029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; - CE05339612E5DA350029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE05339812E5DA350029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; - CE05339A12E5DA350029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE05339F12E5DA420029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; - CE0533A012E5DA420029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE0533A112E5DA420029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; - CE0533A212E5DA420029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE0533A612E5DA4D0029EF25 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Preferences.xib; sourceTree = ""; }; - CE0533AA12E5DA6A0029EF25 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - CE0533AC12E5DA790029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - CE0533AE12E5DAAD0029EF25 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = fr.lproj/Preferences.xib; sourceTree = ""; }; - CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = SOURCE_ROOT; }; - CE09AF4B15A2851100BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = pt_BR.lproj/Preferences.xib; sourceTree = ""; }; - CE09AF4E15A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DeletionOptions.xib; sourceTree = ""; }; - CE09AF4F15A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE09AF5015A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE09AF5115A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/MainMenu.xib; sourceTree = ""; }; - CE09AF5215A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE09AF5315A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE09AF5415A2852600BD431C /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = pt_BR; path = ../base/pt_BR.lproj/ResultWindow.xib; 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; }; - CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; 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; }; - 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 = ""; }; - CE21AFB81423EA6E00DE35BF /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - 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; }; - CE3E323415B9FFA2006FF5F1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../../cocoalib/en.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323715B9FFC7006FF5F1 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../../cocoalib/cs.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323815B9FFC7006FF5F1 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../../cocoalib/de.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323915B9FFC7006FF5F1 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../../cocoalib/fr.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323A15B9FFC7006FF5F1 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../../cocoalib/hy.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323B15B9FFC7006FF5F1 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../../cocoalib/it.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323C15B9FFC7006FF5F1 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../../cocoalib/pt_BR.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323D15B9FFC7006FF5F1 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../../cocoalib/ru.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323E15B9FFC7006FF5F1 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../../cocoalib/uk.lproj/cocoalib.strings; sourceTree = ""; }; - CE3E323F15B9FFC7006FF5F1 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../../cocoalib/zh_CN.lproj/cocoalib.strings; sourceTree = ""; }; - 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; }; - CE6044EB0FE6796200B71262 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; }; - CE63D9D21461EDC000A8CADD /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = ""; }; - CE653CF314169F2C0058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = ""; }; - CE653CF71416A0140058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = zh_CN.lproj/Preferences.xib; sourceTree = ""; }; - CE653CFA1416A0260058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE653CFC1416A0260058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/MainMenu.xib; sourceTree = ""; }; - CE653CFD1416A0260058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE653CFE1416A0260058A022 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/ResultWindow.xib; sourceTree = ""; }; - CE68EE6509ABC48000971085 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; - CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; - CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; }; - 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 = ""; }; - 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 = ""; }; - CE7857961511019400174D51 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE785798151101B000174D51 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE785799151101B000174D51 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE78579A151101B000174D51 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE78579E151101C900174D51 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE78579F151101C900174D51 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE7857A0151101C900174D51 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE7857A4151101DD00174D51 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE7857A5151101DD00174D51 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/IgnoreListDialog.xib; sourceTree = ""; }; - CE7857A81511021200174D51 /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = ""; }; - CE7857A91511021200174D51 /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = ""; }; - CE7857AB1511022A00174D51 /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = ""; }; - CE7857AC1511022A00174D51 /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = ""; }; - CE78759D13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DirectoryPanel.xib; sourceTree = SOURCE_ROOT; }; - CE78759F13CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/MainMenu.xib; sourceTree = SOURCE_ROOT; }; - CE7875A013CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; - CE7875A113CDFA7100F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/ResultWindow.xib; sourceTree = SOURCE_ROOT; }; - CE7875A613CDFAB900F23771 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = de.lproj/Preferences.xib; sourceTree = ""; }; - CE7A69B3146443A00007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = ""; }; - CE7A69B9146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE7A69BB146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/MainMenu.xib; sourceTree = ""; }; - CE7A69BC146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE7A69BD146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE7A69BE146443AD0007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/ResultWindow.xib; sourceTree = ""; }; - CE7A69C6146443B90007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = it.lproj/Preferences.xib; 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 = ""; }; - CE7D249C1423B0BD002E2297 /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = ""; }; - CE7D249F1423B106002E2297 /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = ""; }; - 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 = ""; }; - 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; }; - 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; }; - 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; }; - CE80DB2D0FC192D60086DCA6 /* ValueTransformers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ValueTransformers.m; path = ../../cocoalib/ValueTransformers.m; sourceTree = SOURCE_ROOT; }; - CE80DB450FC193650086DCA6 /* NSNotificationAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSNotificationAdditions.h; path = ../../cocoalib/NSNotificationAdditions.h; sourceTree = SOURCE_ROOT; }; - CE80DB460FC193650086DCA6 /* NSNotificationAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSNotificationAdditions.m; path = ../../cocoalib/NSNotificationAdditions.m; sourceTree = SOURCE_ROOT; }; - CE80DB480FC193770086DCA6 /* NSImageAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSImageAdditions.h; path = ../../cocoalib/NSImageAdditions.h; sourceTree = SOURCE_ROOT; }; - CE80DB490FC193770086DCA6 /* NSImageAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSImageAdditions.m; path = ../../cocoalib/NSImageAdditions.m; sourceTree = SOURCE_ROOT; }; - CE80DB820FC1951C0086DCA6 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = ../base/AppDelegate.h; sourceTree = SOURCE_ROOT; }; - CE80DB830FC1951C0086DCA6 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = ../base/AppDelegate.m; sourceTree = SOURCE_ROOT; }; - CE80DB840FC1951C0086DCA6 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; }; - CE80DB850FC1951C0086DCA6 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; - CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; 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 = ""; }; - CE905DE814C6388E00C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = ""; }; - CE905DEA14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CE905DEC14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/MainMenu.xib; sourceTree = ""; }; - CE905DED14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CE905DEE14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ProblemDialog.xib; sourceTree = ""; }; - CE905DEF14C638A500C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/ResultWindow.xib; sourceTree = ""; }; - CE905DF714C638B000C0ECEF /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = uk.lproj/Preferences.xib; sourceTree = ""; }; - CE9292A815B9FA5200C6D7F6 /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSAboutBox_UI.h; sourceTree = ""; }; - CE9292A915B9FA5200C6D7F6 /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSAboutBox_UI.m; sourceTree = ""; }; - CE9292AA15B9FA5200C6D7F6 /* HSDemoReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSDemoReminder_UI.h; sourceTree = ""; }; - CE9292AB15B9FA5200C6D7F6 /* HSDemoReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSDemoReminder_UI.m; sourceTree = ""; }; - CE9292AC15B9FA5200C6D7F6 /* HSEnterCode_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSEnterCode_UI.h; sourceTree = ""; }; - CE9292AD15B9FA5200C6D7F6 /* HSEnterCode_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSEnterCode_UI.m; sourceTree = ""; }; - CE9292AE15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSErrorReportWindow_UI.h; sourceTree = ""; }; - CE9292AF15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSErrorReportWindow_UI.m; sourceTree = ""; }; - CE9292B015B9FA5200C6D7F6 /* HSFairwareReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSFairwareReminder_UI.h; sourceTree = ""; }; - CE9292B115B9FA5200C6D7F6 /* HSFairwareReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSFairwareReminder_UI.m; sourceTree = ""; }; - CE9292B215B9FA5200C6D7F6 /* ProgressController_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProgressController_UI.h; sourceTree = ""; }; - CE9292B315B9FA5200C6D7F6 /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProgressController_UI.m; sourceTree = ""; }; - 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; }; - CE9ACB9E15BB3D8D00E94337 /* DetailsPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailsPanel_UI.h; sourceTree = ""; }; - CE9ACB9F15BB3D8D00E94337 /* DetailsPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel_UI.m; sourceTree = ""; }; - 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 = ""; }; - 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; }; - 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 = ""; }; - CE9EA7531122C96C008CD2BC /* NSIndexPathAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSIndexPathAdditions.m; sourceTree = ""; }; - CE9EA7541122C96C008CD2BC /* NSTableViewAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTableViewAdditions.h; sourceTree = ""; }; - 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; }; - 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 = ""; }; - CEC9DB4A12CCAA7D003102F0 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; }; - CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; }; - CECA899A09DB132E00A3D774 /* DetailsPanelPE.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DetailsPanelPE.h; sourceTree = ""; }; - CECA899B09DB132E00A3D774 /* DetailsPanelPE.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DetailsPanelPE.m; sourceTree = ""; }; - CED3BC1315767AFB0028F3C9 /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = ""; }; - CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = ""; }; - CED3BC1715767B0E0028F3C9 /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = ""; }; - CED3BC1815767B0E0028F3C9 /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = ""; }; - CED3BC1B15767B200028F3C9 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3BC1C15767B200028F3C9 /* de */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = de; path = ../base/de.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3BC1D15767B200028F3C9 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../base/en.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3BC1E15767B200028F3C9 /* fr */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = fr; path = ../base/fr.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3BC1F15767B200028F3C9 /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3BC2015767B200028F3C9 /* it */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = it; path = ../base/it.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3BC2115767B200028F3C9 /* ru */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ru; path = ../base/ru.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3BC2215767B200028F3C9 /* uk */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = uk; path = ../base/uk.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3BC2315767B200028F3C9 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = zh_CN; path = ../base/zh_CN.lproj/DeletionOptions.xib; sourceTree = ""; }; - CED3EA4F15B9D1DF00557437 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = ""; }; - CEE6D5461491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CEE6D5481491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/MainMenu.xib; sourceTree = ""; }; - CEE6D5491491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CEE6D54A1491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ProblemDialog.xib; sourceTree = ""; }; - CEE6D54B1491130D0087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = ../base/hy.lproj/ResultWindow.xib; sourceTree = ""; }; - CEE6D554149113190087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = hy; path = hy.lproj/Preferences.xib; sourceTree = ""; }; - CEE6D557149113250087CDFC /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; 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 = ""; }; - CEE8D3DF157576FD00E1A1B8 /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = ""; }; - CEE8D3E0157576FD00E1A1B8 /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = ""; }; - CEE8D3E1157576FD00E1A1B8 /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = ""; }; - CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; }; - CEEE15771460327300783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = ""; }; - CEEE15841460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/DirectoryPanel.xib; sourceTree = ""; }; - CEEE15861460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/MainMenu.xib; sourceTree = ""; }; - CEEE15871460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/PrioritizeDialog.xib; sourceTree = ""; }; - CEEE15881460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ProblemDialog.xib; sourceTree = ""; }; - CEEE15891460328400783E91 /* cs */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = cs; path = ../base/cs.lproj/ResultWindow.xib; sourceTree = ""; }; - 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; }; - 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; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - CEA8F336142BC9AB00A6DFAC /* Quartz.framework in Frameworks */, - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */, - CE75017914C4774900E2A349 /* Python in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* DGPE */ = { - isa = PBXGroup; - children = ( - CE381C9509914ACE003581CE /* AppDelegate.h */, - CE381C9409914ACE003581CE /* AppDelegate.m */, - CE848A1809DD85810004CB44 /* Consts.h */, - CECA899A09DB132E00A3D774 /* DetailsPanelPE.h */, - CECA899B09DB132E00A3D774 /* DetailsPanelPE.m */, - CE68EE6509ABC48000971085 /* DirectoryPanel.h */, - CE68EE6609ABC48000971085 /* DirectoryPanel.m */, - CE381C9B09914ADF003581CE /* ResultWindow.h */, - CE381C9A09914ADF003581CE /* ResultWindow.m */, - ); - name = DGPE; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - CE75017814C4774900E2A349 /* Python */, - CEA8F335142BC9AB00A6DFAC /* Quartz.framework */, - CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */, - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* dupeGuru PE.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* dupeguru */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* DGPE */, - CE80DB1A0FC192AB0086DCA6 /* cocoalib */, - CE80DB810FC194BD0086DCA6 /* dgbase */, - CE75017B14C477B100E2A349 /* autogen */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = dupeguru; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - CE75017614C4772100E2A349 /* dg_cocoa.py */, - CE75017414C4771800E2A349 /* py */, - CE63D9D21461EDC000A8CADD /* locale */, - CE073F5409CAE1A3005C1D2F /* help */, - CEFC294309C89E0000D9F998 /* images */, - CE05339212E5DA1D0029EF25 /* xib */, - CEEB135109C837A2004D2330 /* dupeguru.icns */, - 8D1107310486CEB800E47090 /* Info.plist */, - CE0533A912E5DA6A0029EF25 /* Localizable.strings */, - CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - CE05339212E5DA1D0029EF25 /* xib */ = { - isa = PBXGroup; - children = ( - CE05339312E5DA350029EF25 /* DirectoryPanel.xib */, - CE05339512E5DA350029EF25 /* MainMenu.xib */, - CE05339712E5DA350029EF25 /* ProblemDialog.xib */, - CE7857951511019400174D51 /* IgnoreListDialog.xib */, - CE05339912E5DA350029EF25 /* ResultWindow.xib */, - CE0533A512E5DA4D0029EF25 /* Preferences.xib */, - CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */, - CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */, - ); - name = xib; - sourceTree = ""; - }; - CE75017B14C477B100E2A349 /* autogen */ = { - isa = PBXGroup; - children = ( - CE9ACB9E15BB3D8D00E94337 /* DetailsPanel_UI.h */, - CE9ACB9F15BB3D8D00E94337 /* DetailsPanel_UI.m */, - 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 */, - 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 */, - CE7857A81511021200174D51 /* PyIgnoreListDialog.h */, - CE7857A91511021200174D51 /* PyIgnoreListDialog.m */, - CE75019514C477B100E2A349 /* PyProblemDialog.m */, - CED3BC1315767AFB0028F3C9 /* PyDeletionOptions.h */, - CED3BC1415767AFB0028F3C9 /* PyDeletionOptions.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 = ""; - }; - CE80DB1A0FC192AB0086DCA6 /* cocoalib */ = { - isa = PBXGroup; - children = ( - CE9292A715B9FA5200C6D7F6 /* autogen */, - CE9EA7421122C96C008CD2BC /* controllers */, - CE9EA74F1122C96C008CD2BC /* views */, - CE3E323315B9FFA2006FF5F1 /* cocoalib.strings */, - CE80DB480FC193770086DCA6 /* NSImageAdditions.h */, - CE80DB490FC193770086DCA6 /* NSImageAdditions.m */, - CE80DB450FC193650086DCA6 /* NSNotificationAdditions.h */, - CE80DB460FC193650086DCA6 /* NSNotificationAdditions.m */, - CE9EA7491122C96C008CD2BC /* NSEventAdditions.h */, - CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */, - CE80DB1B0FC192D60086DCA6 /* Dialogs.h */, - CE80DB1C0FC192D60086DCA6 /* Dialogs.m */, - CEE8D3DF157576FD00E1A1B8 /* HSFairwareProtocol.h */, - CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */, - CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */, - CEC9DB4A12CCAA7D003102F0 /* HSAboutBox.h */, - CEC9DB4B12CCAA7D003102F0 /* HSAboutBox.m */, - CE60180612DF3EA900236FDC /* HSRecentFiles.h */, - CE60180712DF3EA900236FDC /* HSRecentFiles.m */, - CEA8F338142BC9D400A6DFAC /* HSQuicklook.h */, - CEA8F339142BC9D400A6DFAC /* HSQuicklook.m */, - CE80DB210FC192D60086DCA6 /* ProgressController.h */, - CE80DB220FC192D60086DCA6 /* ProgressController.m */, - CE80DB2A0FC192D60086DCA6 /* Utils.h */, - CE80DB2B0FC192D60086DCA6 /* Utils.m */, - CEE8D3E0157576FD00E1A1B8 /* HSPyUtil.h */, - CEE8D3E1157576FD00E1A1B8 /* HSPyUtil.m */, - CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */, - CE80DB2D0FC192D60086DCA6 /* ValueTransformers.m */, - ); - name = cocoalib; - sourceTree = ""; - }; - CE80DB810FC194BD0086DCA6 /* dgbase */ = { - isa = PBXGroup; - children = ( - CEF12A82124DFD620087B51D /* ResultTable.h */, - CEF12A83124DFD620087B51D /* ResultTable.m */, - CE80DB820FC1951C0086DCA6 /* AppDelegate.h */, - CE80DB830FC1951C0086DCA6 /* AppDelegate.m */, - CE80DB840FC1951C0086DCA6 /* Consts.h */, - CE6044EA0FE6796200B71262 /* DetailsPanel.h */, - CE6044EB0FE6796200B71262 /* DetailsPanel.m */, - CE80DB850FC1951C0086DCA6 /* DirectoryPanel.h */, - CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */, - CE9EA76F1122CA0B008CD2BC /* DirectoryOutline.h */, - CE9EA7701122CA0B008CD2BC /* DirectoryOutline.m */, - CE0C2ABA1177014200BC749F /* ProblemDialog.h */, - CE0C2ABB1177014200BC749F /* ProblemDialog.m */, - CE7857AB1511022A00174D51 /* IgnoreListDialog.h */, - CE7857AC1511022A00174D51 /* IgnoreListDialog.m */, - CE80DB880FC1951C0086DCA6 /* ResultWindow.h */, - CE80DB890FC1951C0086DCA6 /* ResultWindow.m */, - CE95865C112C516400F95FD2 /* StatsLabel.h */, - CE95865D112C516400F95FD2 /* StatsLabel.m */, - CE7D249F1423B106002E2297 /* PrioritizeDialog.h */, - CE7D24A01423B106002E2297 /* PrioritizeDialog.m */, - CE7D24A11423B106002E2297 /* PrioritizeList.h */, - CE7D24A21423B106002E2297 /* PrioritizeList.m */, - CED3BC1715767B0E0028F3C9 /* DeletionOptions.h */, - CED3BC1815767B0E0028F3C9 /* DeletionOptions.m */, - CE75017214C4770500E2A349 /* main.m */, - ); - name = dgbase; - sourceTree = ""; - }; - CE9292A715B9FA5200C6D7F6 /* autogen */ = { - isa = PBXGroup; - children = ( - CE9292A815B9FA5200C6D7F6 /* HSAboutBox_UI.h */, - CE9292A915B9FA5200C6D7F6 /* HSAboutBox_UI.m */, - CE9292AA15B9FA5200C6D7F6 /* HSDemoReminder_UI.h */, - CE9292AB15B9FA5200C6D7F6 /* HSDemoReminder_UI.m */, - CE9292AC15B9FA5200C6D7F6 /* HSEnterCode_UI.h */, - CE9292AD15B9FA5200C6D7F6 /* HSEnterCode_UI.m */, - CE9292AE15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.h */, - CE9292AF15B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m */, - CE9292B015B9FA5200C6D7F6 /* HSFairwareReminder_UI.h */, - CE9292B115B9FA5200C6D7F6 /* HSFairwareReminder_UI.m */, - CE9292B215B9FA5200C6D7F6 /* ProgressController_UI.h */, - CE9292B315B9FA5200C6D7F6 /* ProgressController_UI.m */, - ); - name = autogen; - path = ../../cocoalib/autogen; - sourceTree = ""; - }; - CE9EA7421122C96C008CD2BC /* controllers */ = { - isa = PBXGroup; - children = ( - CEE6D560149113570087CDFC /* HSColumns.h */, - CEE6D561149113570087CDFC /* HSColumns.m */, - CE9EA7431122C96C008CD2BC /* HSGUIController.h */, - CE9EA7441122C96C008CD2BC /* HSGUIController.m */, - CE9EA7451122C96C008CD2BC /* HSOutline.h */, - CE9EA7461122C96C008CD2BC /* HSOutline.m */, - CE0C2AB41177011000BC749F /* HSTable.h */, - CE0C2AB51177011000BC749F /* HSTable.m */, - CE7D24991423B0BD002E2297 /* HSPopUpList.h */, - CE7D249A1423B0BD002E2297 /* HSPopUpList.m */, - CE7D249B1423B0BD002E2297 /* HSSelectableList.h */, - CE7D249C1423B0BD002E2297 /* HSSelectableList.m */, - ); - name = controllers; - path = ../../cocoalib/controllers; - sourceTree = SOURCE_ROOT; - }; - CE9EA74F1122C96C008CD2BC /* views */ = { - isa = PBXGroup; - children = ( - CEF12A7C124DFD400087B51D /* HSTableView.h */, - CEF12A7D124DFD400087B51D /* HSTableView.m */, - CE9EA7501122C96C008CD2BC /* HSOutlineView.h */, - CE9EA7511122C96C008CD2BC /* HSOutlineView.m */, - CE9EA7521122C96C008CD2BC /* NSIndexPathAdditions.h */, - CE9EA7531122C96C008CD2BC /* NSIndexPathAdditions.m */, - CE9EA7541122C96C008CD2BC /* NSTableViewAdditions.h */, - CE9EA7551122C96C008CD2BC /* NSTableViewAdditions.m */, - ); - name = views; - path = ../../cocoalib/views; - sourceTree = SOURCE_ROOT; - }; - CEFC294309C89E0000D9F998 /* images */ = { - isa = PBXGroup; - children = ( - CEFC294509C89E3D00D9F998 /* folder32.png */, - ); - name = images; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* dupeguru */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "dupeguru" */; - buildPhases = ( - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - CECC02B709A36E8200CC0A94 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = dupeguru; - productInstallPath = "$(HOME)/Applications"; - productName = dupeguru; - productReference = 8D1107320486CEB800E47090 /* dupeGuru PE.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0440; - }; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 1; - knownRegions = ( - English, - Japanese, - French, - German, - en, - fr, - de, - zh_CN, - cs, - it, - hy, - uk, - ru, - pt_BR, - ); - mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* dupeguru */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CE073F6309CAE1A3005C1D2F /* help in Resources */, - CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */, - CEFC294609C89E3D00D9F998 /* folder32.png in Resources */, - CE6E0F3D1054EC62008D9390 /* dsa_pub.pem in Resources */, - CE1EB60112537FB90034AABB /* FairwareReminder.xib in Resources */, - CE05339B12E5DA350029EF25 /* DirectoryPanel.xib in Resources */, - CE05339C12E5DA350029EF25 /* MainMenu.xib in Resources */, - CE05339D12E5DA350029EF25 /* ProblemDialog.xib in Resources */, - CE05339E12E5DA350029EF25 /* ResultWindow.xib in Resources */, - CE0533A812E5DA4D0029EF25 /* Preferences.xib in Resources */, - CE0533AB12E5DA6A0029EF25 /* Localizable.strings in Resources */, - CECB2AC513D867AD0081E295 /* about.xib in Resources */, - CECB2AC613D867AD0081E295 /* ErrorReportWindow.xib in Resources */, - CE7D24A91423B123002E2297 /* PrioritizeDialog.xib in Resources */, - CE63D9D31461EDC000A8CADD /* locale in Resources */, - CE75017514C4771800E2A349 /* py in Resources */, - CE75017714C4772100E2A349 /* dg_cocoa.py in Resources */, - CE7857971511019400174D51 /* IgnoreListDialog.xib in Resources */, - CED3BC2415767B200028F3C9 /* DeletionOptions.xib in Resources */, - CE3E323515B9FFA2006FF5F1 /* cocoalib.strings in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - CE381C9609914ACE003581CE /* AppDelegate.m in Sources */, - CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */, - CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */, - CECA899D09DB132E00A3D774 /* DetailsPanelPE.m in Sources */, - CE80DB2E0FC192D60086DCA6 /* Dialogs.m in Sources */, - CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */, - CE80DB350FC192D60086DCA6 /* Utils.m in Sources */, - CE80DB360FC192D60086DCA6 /* ValueTransformers.m in Sources */, - CE80DB470FC193650086DCA6 /* NSNotificationAdditions.m in Sources */, - CE80DB4A0FC193770086DCA6 /* NSImageAdditions.m in Sources */, - CE80DB8A0FC1951C0086DCA6 /* AppDelegate.m in Sources */, - CE80DB8B0FC1951C0086DCA6 /* DirectoryPanel.m in Sources */, - CE80DB8C0FC1951C0086DCA6 /* ResultWindow.m in Sources */, - CE6044EC0FE6796200B71262 /* DetailsPanel.m in Sources */, - CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */, - CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */, - CE9EA7591122C96C008CD2BC /* NSEventAdditions.m in Sources */, - CE9EA75A1122C96C008CD2BC /* HSOutlineView.m in Sources */, - CE9EA75B1122C96C008CD2BC /* NSIndexPathAdditions.m in Sources */, - CE9EA75C1122C96C008CD2BC /* NSTableViewAdditions.m in Sources */, - CE9EA7721122CA0B008CD2BC /* DirectoryOutline.m in Sources */, - CE95865F112C516400F95FD2 /* StatsLabel.m in Sources */, - CE0C2AB61177011000BC749F /* HSTable.m in Sources */, - CE0C2ABD1177014200BC749F /* ProblemDialog.m in Sources */, - CEF12A7E124DFD400087B51D /* HSTableView.m in Sources */, - CEF12A84124DFD620087B51D /* ResultTable.m in Sources */, - CE1EB5FE12537F9D0034AABB /* HSFairwareReminder.m in Sources */, - CEC9DB4C12CCAA7D003102F0 /* HSAboutBox.m in Sources */, - CE60180812DF3EA900236FDC /* HSRecentFiles.m in Sources */, - CE7D249D1423B0BD002E2297 /* HSPopUpList.m in Sources */, - CE7D249E1423B0BD002E2297 /* HSSelectableList.m in Sources */, - CE7D24A51423B106002E2297 /* PrioritizeDialog.m in Sources */, - 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 */, - 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 */, - CE7857AA1511021200174D51 /* PyIgnoreListDialog.m in Sources */, - CE7857AD1511022A00174D51 /* IgnoreListDialog.m in Sources */, - CEE8D3E2157576FD00E1A1B8 /* HSPyUtil.m in Sources */, - CED3BC1515767AFB0028F3C9 /* PyDeletionOptions.m in Sources */, - CED3BC1915767B0E0028F3C9 /* DeletionOptions.m in Sources */, - CE9292B415B9FA5200C6D7F6 /* HSAboutBox_UI.m in Sources */, - CE9292B515B9FA5200C6D7F6 /* HSDemoReminder_UI.m in Sources */, - CE9292B615B9FA5200C6D7F6 /* HSEnterCode_UI.m in Sources */, - CE9292B715B9FA5200C6D7F6 /* HSErrorReportWindow_UI.m in Sources */, - CE9292B815B9FA5200C6D7F6 /* HSFairwareReminder_UI.m in Sources */, - CE9292B915B9FA5200C6D7F6 /* ProgressController_UI.m in Sources */, - CE9ACBA015BB3D8D00E94337 /* DetailsPanel_UI.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - CE05339312E5DA350029EF25 /* DirectoryPanel.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05339412E5DA350029EF25 /* en */, - CE05339F12E5DA420029EF25 /* fr */, - CE78759D13CDFA7100F23771 /* de */, - CE653CFA1416A0260058A022 /* zh_CN */, - CEEE15841460328400783E91 /* cs */, - CE7A69B9146443AD0007D927 /* it */, - CEE6D5461491130D0087CDFC /* hy */, - CE905DEA14C638A500C0ECEF /* uk */, - CE03DD6714FBD31300E998AC /* ru */, - CE09AF4F15A2852600BD431C /* pt_BR */, - ); - name = DirectoryPanel.xib; - sourceTree = SOURCE_ROOT; - }; - CE05339512E5DA350029EF25 /* MainMenu.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05339612E5DA350029EF25 /* en */, - CE0533A012E5DA420029EF25 /* fr */, - CE78759F13CDFA7100F23771 /* de */, - CE653CFC1416A0260058A022 /* zh_CN */, - CEEE15861460328400783E91 /* cs */, - CE7A69BB146443AD0007D927 /* it */, - CEE6D5481491130D0087CDFC /* hy */, - CE905DEC14C638A500C0ECEF /* uk */, - CE03DD6814FBD31300E998AC /* ru */, - CE09AF5115A2852600BD431C /* pt_BR */, - ); - name = MainMenu.xib; - sourceTree = SOURCE_ROOT; - }; - CE05339712E5DA350029EF25 /* ProblemDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05339812E5DA350029EF25 /* en */, - CE0533A112E5DA420029EF25 /* fr */, - CE7875A013CDFA7100F23771 /* de */, - CE653CFD1416A0260058A022 /* zh_CN */, - CEEE15881460328400783E91 /* cs */, - CE7A69BD146443AD0007D927 /* it */, - CEE6D54A1491130D0087CDFC /* hy */, - CE905DEE14C638A500C0ECEF /* uk */, - CE03DD6A14FBD31300E998AC /* ru */, - CE09AF5315A2852600BD431C /* pt_BR */, - ); - name = ProblemDialog.xib; - sourceTree = SOURCE_ROOT; - }; - CE05339912E5DA350029EF25 /* ResultWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - CE05339A12E5DA350029EF25 /* en */, - CE0533A212E5DA420029EF25 /* fr */, - CE7875A113CDFA7100F23771 /* de */, - CE653CFE1416A0260058A022 /* zh_CN */, - CEEE15891460328400783E91 /* cs */, - CE7A69BE146443AD0007D927 /* it */, - CEE6D54B1491130D0087CDFC /* hy */, - CE905DEF14C638A500C0ECEF /* uk */, - CE03DD6B14FBD31300E998AC /* ru */, - CE09AF5415A2852600BD431C /* pt_BR */, - ); - name = ResultWindow.xib; - sourceTree = SOURCE_ROOT; - }; - CE0533A512E5DA4D0029EF25 /* Preferences.xib */ = { - isa = PBXVariantGroup; - children = ( - CE0533A612E5DA4D0029EF25 /* en */, - CE0533AE12E5DAAD0029EF25 /* fr */, - CE7875A613CDFAB900F23771 /* de */, - CE653CF71416A0140058A022 /* zh_CN */, - CEEE15911460329000783E91 /* cs */, - CE7A69C6146443B90007D927 /* it */, - CEE6D554149113190087CDFC /* hy */, - CE905DF714C638B000C0ECEF /* uk */, - CE03DD7314FBD33600E998AC /* ru */, - CE09AF4B15A2851100BD431C /* pt_BR */, - ); - name = Preferences.xib; - sourceTree = SOURCE_ROOT; - }; - CE0533A912E5DA6A0029EF25 /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - CE0533AA12E5DA6A0029EF25 /* en */, - CE0533AC12E5DA790029EF25 /* fr */, - CE7358071406ABF700F3F6DA /* de */, - CE653CF314169F2C0058A022 /* zh_CN */, - CEEE15771460327300783E91 /* cs */, - CE7A69B3146443A00007D927 /* it */, - CEE6D557149113250087CDFC /* hy */, - CE905DE814C6388E00C0ECEF /* uk */, - CE03DD7614FBD34600E998AC /* ru */, - CED3EA4F15B9D1DF00557437 /* pt_BR */, - ); - name = Localizable.strings; - sourceTree = SOURCE_ROOT; - }; - CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = FairwareReminder.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; - CE3E323315B9FFA2006FF5F1 /* cocoalib.strings */ = { - isa = PBXVariantGroup; - children = ( - CE3E323415B9FFA2006FF5F1 /* en */, - CE3E323715B9FFC7006FF5F1 /* cs */, - CE3E323815B9FFC7006FF5F1 /* de */, - CE3E323915B9FFC7006FF5F1 /* fr */, - CE3E323A15B9FFC7006FF5F1 /* hy */, - CE3E323B15B9FFC7006FF5F1 /* it */, - CE3E323C15B9FFC7006FF5F1 /* pt_BR */, - CE3E323D15B9FFC7006FF5F1 /* ru */, - CE3E323E15B9FFC7006FF5F1 /* uk */, - CE3E323F15B9FFC7006FF5F1 /* zh_CN */, - ); - name = cocoalib.strings; - sourceTree = ""; - }; - CE7857951511019400174D51 /* IgnoreListDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE7857961511019400174D51 /* en */, - CE785798151101B000174D51 /* cs */, - CE785799151101B000174D51 /* de */, - CE78579A151101B000174D51 /* fr */, - CE78579E151101C900174D51 /* hy */, - CE78579F151101C900174D51 /* it */, - CE7857A0151101C900174D51 /* ru */, - CE7857A4151101DD00174D51 /* uk */, - CE7857A5151101DD00174D51 /* zh_CN */, - CE09AF5015A2852600BD431C /* pt_BR */, - ); - name = IgnoreListDialog.xib; - sourceTree = ""; - }; - CE7D24A71423B123002E2297 /* PrioritizeDialog.xib */ = { - isa = PBXVariantGroup; - children = ( - CE7D24A81423B123002E2297 /* en */, - CE21AFB61423EA6E00DE35BF /* de */, - CE21AFB71423EA6E00DE35BF /* fr */, - CE21AFB81423EA6E00DE35BF /* zh_CN */, - CEEE15871460328400783E91 /* cs */, - CE7A69BC146443AD0007D927 /* it */, - CEE6D5491491130D0087CDFC /* hy */, - CE905DED14C638A500C0ECEF /* uk */, - CE03DD6914FBD31300E998AC /* ru */, - CE09AF5215A2852600BD431C /* pt_BR */, - ); - name = PrioritizeDialog.xib; - sourceTree = ""; - }; - CECB2AC113D867AD0081E295 /* about.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = about.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; - CECB2AC313D867AD0081E295 /* ErrorReportWindow.xib */ = { - isa = PBXVariantGroup; - children = ( - ); - name = ErrorReportWindow.xib; - path = /Users/hsoft/src/dupeguru/cocoalib/xib; - sourceTree = ""; - }; - CED3BC1A15767B200028F3C9 /* DeletionOptions.xib */ = { - isa = PBXVariantGroup; - children = ( - CED3BC1D15767B200028F3C9 /* en */, - CED3BC1B15767B200028F3C9 /* cs */, - CED3BC1C15767B200028F3C9 /* de */, - CED3BC1E15767B200028F3C9 /* fr */, - CED3BC1F15767B200028F3C9 /* hy */, - CED3BC2015767B200028F3C9 /* it */, - CED3BC2115767B200028F3C9 /* ru */, - CED3BC2215767B200028F3C9 /* uk */, - CED3BC2315767B200028F3C9 /* zh_CN */, - CE09AF4E15A2852600BD431C /* pt_BR */, - ); - name = DeletionOptions.xib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4C08A954540054247B /* release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DEPLOYMENT_POSTPROCESSING = YES; - DSTROOT = /; - 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; - }; - name = release; - }; - C01FCF5008A954540054247B /* release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(ARCHS_STANDARD_32_64_BIT)"; - FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; - GCC_C_LANGUAGE_STANDARD = c99; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.7; - }; - name = release; - }; - CEE00FF0111AF37400BC1A77 /* dev */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = "$(NATIVE_ARCH_ACTUAL)"; - FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\""; - GCC_C_LANGUAGE_STANDARD = c99; - HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\""; - LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.6; - SDKROOT = macosx10.7; - }; - name = dev; - }; - CEE00FF1111AF37400BC1A77 /* dev */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEPLOYMENT_LOCATION = YES; - DEPLOYMENT_POSTPROCESSING = YES; - DSTROOT = /; - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(PROJECT_DIR)"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/../../build\"", - ); - PRODUCT_NAME = "dupeGuru PE"; - WRAPPER_EXTENSION = app; - }; - name = dev; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "dupeguru" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4C08A954540054247B /* release */, - CEE00FF1111AF37400BC1A77 /* dev */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF5008A954540054247B /* release */, - CEE00FF0111AF37400BC1A77 /* dev */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/cocoa/pe/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/cocoa/pe/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e0000163..00000000 --- a/cocoa/pe/dupeguru.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/cocoa/pe/en.lproj/Preferences.strings b/cocoa/pe/en.lproj/Preferences.strings deleted file mode 100644 index 3e53cb06..00000000 --- a/cocoa/pe/en.lproj/Preferences.strings +++ /dev/null @@ -1,69 +0,0 @@ - -/* Class = "NSWindow"; title = "dupeGuru PE Preferences"; ObjectID = "2"; */ -"2.title" = "dupeGuru PE Preferences"; - -/* Class = "NSTextFieldCell"; title = "More results"; ObjectID = "18"; */ -"18.title" = "More results"; - -/* Class = "NSTextFieldCell"; title = "Fewer results"; ObjectID = "19"; */ -"19.title" = "Fewer results"; - -/* Class = "NSTextFieldCell"; title = "Filter hardness:"; ObjectID = "20"; */ -"20.title" = "Filter hardness:"; - -/* Class = "NSButtonCell"; title = "Can mix file kind"; ObjectID = "21"; */ -"21.title" = "Can mix file kind"; - -/* Class = "NSButtonCell"; title = "Reset to Defaults"; ObjectID = "24"; */ -"24.title" = "Reset to Defaults"; - -/* Class = "NSTextFieldCell"; title = "Copy and Move:"; ObjectID = "25"; */ -"25.title" = "Copy and Move:"; - -/* Class = "NSMenuItem"; title = "Recreate relative path"; ObjectID = "28"; */ -"28.title" = "Recreate relative path"; - -/* Class = "NSMenuItem"; title = "Recreate absolute path"; ObjectID = "29"; */ -"29.title" = "Recreate absolute path"; - -/* Class = "NSMenuItem"; title = "Right in destination"; ObjectID = "30"; */ -"30.title" = "Right in destination"; - -/* Class = "NSButtonCell"; title = "Match pictures of different dimensions"; ObjectID = "31"; */ -"31.title" = "Match pictures of different dimensions"; - -/* Class = "NSButtonCell"; title = "Automatically check for updates"; ObjectID = "32"; */ -"32.title" = "Automatically check for updates"; - -/* Class = "NSButtonCell"; title = "Remove empty folders on delete or move"; ObjectID = "33"; */ -"33.title" = "Remove empty folders on delete or move"; - -/* Class = "NSButtonCell"; title = "Use regular expressions when filtering"; ObjectID = "34"; */ -"34.title" = "Use regular expressions when filtering"; - -/* Class = "NSTabViewItem"; label = "Basic"; ObjectID = "60"; */ -"60.label" = "Basic"; - -/* Class = "NSTabViewItem"; label = "Advanced"; ObjectID = "61"; */ -"61.label" = "Advanced"; - -/* Class = "NSTextFieldCell"; title = "Custom Command (arguments: %d for dupe, %r for ref):"; ObjectID = "65"; */ -"65.title" = "Custom Command (arguments: %d for dupe, %r for ref):"; - -/* Class = "NSButtonCell"; title = "Ignore duplicates hardlinking to the same file"; ObjectID = "70"; */ -"70.title" = "Ignore duplicates hardlinking to the same file"; - -/* Class = "NSButtonCell"; title = "Debug mode (restart required)"; ObjectID = "75"; */ -"75.title" = "Debug mode (restart required)"; - -/* Class = "NSMenuItem"; title = "EXIF Timestamp"; ObjectID = "92"; */ -"92.title" = "EXIF Timestamp"; - -/* Class = "NSMenuItem"; title = "Contents"; ObjectID = "93"; */ -"93.title" = "Contents"; - -/* Class = "NSTextFieldCell"; title = "Scan type:"; ObjectID = "94"; */ -"94.title" = "Scan type:"; - -/* Class = "NSTextFieldCell"; title = "Font size:"; ObjectID = "104"; */ -"104.title" = "Font size:"; diff --git a/cocoa/pe/en.lproj/Preferences.xib b/cocoa/pe/en.lproj/Preferences.xib deleted file mode 100644 index be6db99e..00000000 --- a/cocoa/pe/en.lproj/Preferences.xib +++ /dev/null @@ -1,1670 +0,0 @@ - - - - 1060 - 11B26 - 1617 - 1138 - 566.00 - - com.apple.InterfaceBuilder.CocoaPlugin - 1617 - - - NSPopUpButtonCell - NSComboBoxCell - NSNumberFormatter - NSPopUpButton - NSButton - NSMenu - NSButtonCell - NSTextFieldCell - NSMenuItem - NSComboBox - NSTabView - NSSlider - NSSliderCell - NSCustomObject - NSTabViewItem - NSView - NSWindowTemplate - NSTextField - NSUserDefaultsController - - - com.apple.InterfaceBuilder.CocoaPlugin - - - - - NSWindowController - - - FirstResponder - - - NSApplication - - - YES - - - 3 - 2 - {{92, 348}, {392, 269}} - 1886912512 - dupeGuru PE Preferences - - NSWindow - - - View - - - {213, 107} - - - 256 - - - - 256 - {{230, 3}, {148, 32}} - - - - YES - - 67239424 - 134217728 - Reset to Defaults - - LucidaGrande - 13 - 1044 - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 12 - {{13, 31}, {366, 232}} - - - - - - 1 - - - 256 - - - - 292 - {{117, 131}, {181, 21}} - - - - YES - - 67239424 - 0 - - - - - Helvetica - 12 - 16 - - - 100 - 1 - 80 - 0.0 - 0 - 1 - NO - NO - - - - - 292 - {{119, 114}, {80, 13}} - - - - YES - - 67239424 - 272629760 - More results - - LucidaGrande - 10 - 2843 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2NjY3AA - - - - 6 - System - controlTextColor - - 3 - MAA - - - - - - - 289 - {{216, 114}, {80, 13}} - - - - YES - - 67239424 - 71303168 - Fewer results - - - - - - - - - 292 - {{14, 136}, {100, 14}} - - - - YES - - 67239424 - 272629760 - Filter hardness: - - LucidaGrande - 11 - 3100 - - - - - - - - - 256 - {{15, 42}, {316, 18}} - - - - YES - - 67239424 - 0 - Can mix file kind - - - 1211912703 - 2 - - NSSwitch - - - - 200 - 25 - - - - - 256 - {{15, 62}, {316, 18}} - - - - YES - - 67239424 - 0 - Match pictures of different dimensions - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 2}, {316, 18}} - - - - YES - - 67239424 - 0 - Automatically check for updates - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 22}, {316, 18}} - - - - YES - - 67239424 - 0 - Remove empty folders on delete or move - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{301, 136}, {31, 14}} - - - - YES - - 67239424 - -1874853888 - - - - - - - 0 - - - . - - , - -0 - 0 - - - 0 - -0 - - - - - - - - NaN - - - - 0 - 0 - YES - NO - 1 - AAAAAAAAAAAAAAAAAAAAAA - - - - . - , - NO - YES - YES - - - - - - - - - 292 - {{14, 169}, {85, 13}} - - - - YES - - 67239424 - 272629760 - Scan type: - - - - - - - - - 292 - {{116, 159}, {219, 26}} - - - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Contents - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - EXIF Timestamp - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 292 - {{14, 86}, {100, 17}} - - - - YES - - 67239424 - 272629760 - Font size: - - - - - - - - - 268 - {{119, 82}, {69, 26}} - - - - YES - - 343014976 - 272630784 - - - - YES - - 6 - System - textBackgroundColor - - 3 - MQA - - - - 6 - YES - YES - - 11 - 12 - 13 - 14 - 18 - 24 - - - - - 274 - {13, 126} - - - YES - - - 10 - 10 - 1000 - - 75628032 - 0 - - - LucidaGrande - 12 - 16 - - - 3 - MC4zMzMzMzI5OQA - - - - - 338820672 - 1024 - - - YES - - 6 - System - controlBackgroundColor - - - - - 3 - YES - - - - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - - - 19 - tableViewAction: - -765427712 - - - - 1 - 15 - 0 - YES - 0 - 1 - - - - - {{10, 33}, {346, 186}} - - - - - Basic - - - - - 2 - - - 256 - - - - 256 - {{15, 167}, {316, 18}} - - YES - - 67239424 - 0 - Use regular expressions when filtering - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 147}, {316, 18}} - - YES - - 67239424 - 0 - Ignore duplicates hardlinking to the same file - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 256 - {{15, 127}, {316, 18}} - - YES - - 67239424 - 0 - Debug mode (restart required) - - - 1211912703 - 2 - - - - 200 - 25 - - - - - 292 - {{14, 61}, {318, 13}} - - YES - - 67239424 - 272629760 - Copy and Move: - - - - - - - - - 292 - {{14, 104}, {318, 17}} - - YES - - 67239424 - 272629760 - Custom Command (arguments: %d for dupe, %r for ref): - - - - - - - - - 292 - {{14, 29}, {216, 26}} - - YES - - -2076049856 - 2048 - - - 109199615 - 1 - - - - - - 400 - 75 - - - Right in destination - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - - - - Recreate relative path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Recreate absolute path - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 266 - {{17, 82}, {312, 22}} - - YES - - -1804468671 - 272630784 - - - - YES - - - 6 - System - textColor - - - - - - {{10, 33}, {346, 186}} - - Advanced - - - - - - - 0 - YES - YES - - - - - - {392, 269} - - - - - {{0, 0}, {1440, 878}} - {213, 129} - {10000000000000, 10000000000000} - YES - - - - - - - value: values.matchScaled - - - - - - value: values.matchScaled - value - values.matchScaled - 2 - - - 35 - - - - nextKeyView - - - - 36 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 37 - - - - value: values.mixFileKind - - - - - - value: values.mixFileKind - value - values.mixFileKind - 2 - - - 38 - - - - nextKeyView - - - - 39 - - - - revertToInitialValues: - - - - 41 - - - - value: values.useRegexpFilter - - - - - - value: values.useRegexpFilter - value - values.useRegexpFilter - 2 - - - 42 - - - - nextKeyView - - - - 43 - - - - nextKeyView - - - - 44 - - - - value: values.removeEmptyFolders - - - - - - value: values.removeEmptyFolders - value - values.removeEmptyFolders - 2 - - - 45 - - - - selectedIndex: values.recreatePathType - - - - - - selectedIndex: values.recreatePathType - selectedIndex - values.recreatePathType - 2 - - - 46 - - - - nextKeyView - - - - 47 - - - - nextKeyView - - - - 48 - - - - value: values.minMatchPercentage - - - - - - value: values.minMatchPercentage - value - values.minMatchPercentage - 2 - - - 49 - - - - nextKeyView - - - - 50 - - - - window - - - - 51 - - - - value: values.SUEnableAutomaticChecks - - - - - - value: values.SUEnableAutomaticChecks - value - values.SUEnableAutomaticChecks - 2 - - - 58 - - - - value: values.CustomCommand - - - - - - value: values.CustomCommand - value - values.CustomCommand - 2 - - - 68 - - - - nextKeyView - - - - 72 - - - - value: values.ignoreHardlinkMatches - - - - - - value: values.ignoreHardlinkMatches - value - values.ignoreHardlinkMatches - 2 - - - 73 - - - - nextKeyView - - - - 77 - - - - value: values.DebugMode - - - - - - value: values.DebugMode - value - values.DebugMode - 2 - - - 78 - - - - selectedIndex: values.scanType - - - - - - selectedIndex: values.scanType - selectedIndex - values.scanType - 2 - - - 96 - - - - enabled: values.scanType - - - - - - enabled: values.scanType - enabled - values.scanType - - NSValueTransformerName - vtScanTypeIsFuzzy - - 2 - - - 98 - - - - value: values.TableFontSize - - - - - - value: values.TableFontSize - value - values.TableFontSize - 2 - - - 105 - - - - - - 0 - - - - - - -2 - - - File's Owner - - - -1 - - - First Responder - - - -3 - - - Application - - - 1 - - - Shared Defaults - - - 2 - - - - - - preferences - - - 3 - - - - - - - - - 10 - - - - - - - - 24 - - - - - 59 - - - - - - - - - 60 - - - - - - - - 61 - - - - - - - - 62 - - - - - - - - - - - - - - 63 - - - - - - - - - - - - - - - - - - - - 16 - - - - - - - - 17 - - - - - 15 - - - - - - - - 18 - - - - - 14 - - - - - - - - 19 - - - - - 13 - - - - - - - - 20 - - - - - 12 - - - - - - - - 21 - - - - - 7 - - - - - - - - 31 - - - - - 6 - - - - - - - - 32 - - - - - 5 - - - - - - - - 33 - - - - - 11 - - - - - - - - 22 - - - - - - - - 23 - - - - - 4 - - - - - - - - 34 - - - - - 9 - - - - - - - - 25 - - - - - 8 - - - - - - - - 26 - - - - - - - - 27 - - - - - - - - - - 30 - - - - - 29 - - - - - 28 - - - - - 64 - - - - - - - - 65 - - - - - 66 - - - - - - - - 67 - - - - - 69 - - - - - - - - 70 - - - - - 74 - - - - - - - - 75 - - - - - 87 - - - - - - - - 88 - - - - - - - - 89 - - - - - - - - 90 - - - - - - - - - 92 - - - - - 93 - - - - - 94 - - - - - 101 - - - - - - - - 102 - - - - - - - - 103 - - - - - 104 - - - - - - - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - {{413, 591}, {392, 254}} - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - com.apple.InterfaceBuilder.CocoaPlugin - - - - - - 105 - - - 0 - IBCocoaFramework - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.macosx - - - - com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3 - - - YES - 3 - - {9, 8} - {7, 2} - - - From a2d73b216cda8e721aa2128784cdad800dba0722 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 11:01:28 -0400 Subject: [PATCH 23/33] Added missing (for PE) cocoalib units in waf script. --HG-- branch : xibless --- cocoa/wscript | 1 + 1 file changed, 1 insertion(+) diff --git a/cocoa/wscript b/cocoa/wscript index c112cb80..be897eac 100644 --- a/cocoa/wscript +++ b/cocoa/wscript @@ -44,6 +44,7 @@ def build(ctx): cocoalib_includes = [cocoalib_node] + [cocoalib_node.find_dir(folder) for folder in cocoalib_folders] cocoalib_uses = ['NSEventAdditions', 'Dialogs', 'HSAboutBox', 'HSFairwareReminder', 'Utils', 'HSPyUtil', 'ProgressController', 'HSRecentFiles', 'HSQuicklook', 'ValueTransformers', + 'NSImageAdditions', 'NSNotificationAdditions', 'views/HSTableView', 'views/HSOutlineView', 'views/NSIndexPathAdditions', 'views/NSTableViewAdditions', 'controllers/HSColumns', 'controllers/HSGUIController', 'controllers/HSTable', From abe9041a67efd81a32831b00f94b676e4059444e Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 11:16:04 -0400 Subject: [PATCH 24/33] De-IBAction-ified actions in ResultsWindow and fixed a few mis-connections in the main menu. --HG-- branch : xibless --- cocoa/base/AppDelegateBase.m | 2 +- cocoa/base/ResultWindow.h | 58 ++++++++++++++--------------- cocoa/base/ResultWindow.m | 68 +++++++++++++++++----------------- cocoa/base/ui/main_menu.py | 48 ++++++++++++------------ cocoa/base/ui/result_window.py | 26 ++++++------- 5 files changed, 101 insertions(+), 101 deletions(-) diff --git a/cocoa/base/AppDelegateBase.m b/cocoa/base/AppDelegateBase.m index 9fcac96a..6322ad61 100644 --- a/cocoa/base/AppDelegateBase.m +++ b/cocoa/base/AppDelegateBase.m @@ -170,7 +170,7 @@ http://www.hardcoded.net/licenses/bsd_license - (void)startScanning { - [[self resultWindow] startDuplicateScan:nil]; + [[self resultWindow] startDuplicateScan]; } diff --git a/cocoa/base/ResultWindow.h b/cocoa/base/ResultWindow.h index 3d62d260..912ab6d9 100644 --- a/cocoa/base/ResultWindow.h +++ b/cocoa/base/ResultWindow.h @@ -54,33 +54,33 @@ http://www.hardcoded.net/licenses/bsd_license - (void)adjustUIToLocalization; /* Actions */ -- (IBAction)changeOptions:(id)sender; -- (IBAction)copyMarked:(id)sender; -- (IBAction)trashMarked:(id)sender; -- (IBAction)exportToXHTML:(id)sender; -- (IBAction)filter:(id)sender; -- (IBAction)focusOnFilterField:(id)sender; -- (IBAction)ignoreSelected:(id)sender; -- (IBAction)invokeCustomCommand:(id)sender; -- (IBAction)markAll:(id)sender; -- (IBAction)markInvert:(id)sender; -- (IBAction)markNone:(id)sender; -- (IBAction)markSelected:(id)sender; -- (IBAction)moveMarked:(id)sender; -- (IBAction)openClicked:(id)sender; -- (IBAction)openSelected:(id)sender; -- (IBAction)removeMarked:(id)sender; -- (IBAction)removeSelected:(id)sender; -- (IBAction)renameSelected:(id)sender; -- (IBAction)reprioritizeResults:(id)sender; -- (IBAction)resetColumnsToDefault:(id)sender; -- (IBAction)revealSelected:(id)sender; -- (IBAction)saveResults:(id)sender; -- (IBAction)startDuplicateScan:(id)sender; -- (IBAction)switchSelected:(id)sender; -- (IBAction)toggleColumn:(id)sender; -- (IBAction)toggleDelta:(id)sender; -- (IBAction)toggleDetailsPanel:(id)sender; -- (IBAction)togglePowerMarker:(id)sender; -- (IBAction)toggleQuicklookPanel:(id)sender; +- (void)changeOptions; +- (void)copyMarked; +- (void)trashMarked; +- (void)exportToXHTML; +- (void)filter; +- (void)focusOnFilterField; +- (void)ignoreSelected; +- (void)invokeCustomCommand; +- (void)markAll; +- (void)markInvert; +- (void)markNone; +- (void)markSelected; +- (void)moveMarked; +- (void)openClicked; +- (void)openSelected; +- (void)removeMarked; +- (void)removeSelected; +- (void)renameSelected; +- (void)reprioritizeResults; +- (void)resetColumnsToDefault; +- (void)revealSelected; +- (void)saveResults; +- (void)startDuplicateScan; +- (void)switchSelected; +- (void)toggleColumn:(id)sender; +- (void)toggleDelta; +- (void)toggleDetailsPanel; +- (void)togglePowerMarker; +- (void)toggleQuicklookPanel; @end diff --git a/cocoa/base/ResultWindow.m b/cocoa/base/ResultWindow.m index 5e0d3ea0..de342c93 100644 --- a/cocoa/base/ResultWindow.m +++ b/cocoa/base/ResultWindow.m @@ -39,7 +39,7 @@ http://www.hardcoded.net/licenses/bsd_license [self initResultColumns]; [self fillColumnsMenu]; [matches setTarget:self]; - [matches setDoubleAction:@selector(openClicked:)]; + [matches setDoubleAction:@selector(openClicked)]; [self adjustUIToLocalization]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobStarted:) name:JobStarted object:nil]; @@ -79,7 +79,7 @@ http://www.hardcoded.net/licenses/bsd_license } [[app columnsMenu] addItem:[NSMenuItem separatorItem]]; NSMenuItem *mi = [[app columnsMenu] addItemWithTitle:TR(@"Reset to Default") - action:@selector(resetColumnsToDefault:) keyEquivalent:@""]; + action:@selector(resetColumnsToDefault) keyEquivalent:@""]; [mi setTarget:self]; } @@ -120,21 +120,21 @@ http://www.hardcoded.net/licenses/bsd_license } /* Actions */ -- (IBAction)changeOptions:(id)sender +- (void)changeOptions { NSInteger seg = [optionsSwitch selectedSegment]; if (seg == 0) { - [self toggleDetailsPanel:sender]; + [self toggleDetailsPanel]; } else if (seg == 1) { - [self togglePowerMarker:sender]; + [self togglePowerMarker]; } else if (seg == 2) { - [self toggleDelta:sender]; + [self toggleDelta]; } } -- (IBAction)copyMarked:(id)sender +- (void)copyMarked { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; @@ -142,62 +142,62 @@ http://www.hardcoded.net/licenses/bsd_license [model copyMarked]; } -- (IBAction)trashMarked:(id)sender +- (void)trashMarked { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; [model deleteMarked]; } -- (IBAction)exportToXHTML:(id)sender +- (void)exportToXHTML { NSString *exported = [model exportToXHTML]; [[NSWorkspace sharedWorkspace] openFile:exported]; } -- (IBAction)filter:(id)sender +- (void)filter { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; [model setEscapeFilterRegexp:!n2b([ud objectForKey:@"useRegexpFilter"])]; [model applyFilter:[filterField stringValue]]; } -- (IBAction)focusOnFilterField:(id)sender +- (void)focusOnFilterField { [[self window] makeFirstResponder:filterField]; } -- (IBAction)ignoreSelected:(id)sender +- (void)ignoreSelected { [model addSelectedToIgnoreList]; } -- (IBAction)invokeCustomCommand:(id)sender +- (void)invokeCustomCommand { [model invokeCustomCommand]; } -- (IBAction)markAll:(id)sender +- (void)markAll { [model markAll]; } -- (IBAction)markInvert:(id)sender +- (void)markInvert { [model markInvert]; } -- (IBAction)markNone:(id)sender +- (void)markNone { [model markNone]; } -- (IBAction)markSelected:(id)sender +- (void)markSelected { [model toggleSelectedMark]; } -- (IBAction)moveMarked:(id)sender +- (void)moveMarked { NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; [model setRemoveEmptyFolders:n2b([ud objectForKey:@"removeEmptyFolders"])]; @@ -205,7 +205,7 @@ http://www.hardcoded.net/licenses/bsd_license [model moveMarked]; } -- (IBAction)openClicked:(id)sender +- (void)openClicked { if ([matches clickedRow] < 0) { return; @@ -214,29 +214,29 @@ http://www.hardcoded.net/licenses/bsd_license [model openSelected]; } -- (IBAction)openSelected:(id)sender +- (void)openSelected { [model openSelected]; } -- (IBAction)removeMarked:(id)sender +- (void)removeMarked { [model removeMarked]; } -- (IBAction)removeSelected:(id)sender +- (void)removeSelected { [model removeSelected]; } -- (IBAction)renameSelected:(id)sender +- (void)renameSelected { NSInteger col = [matches columnWithIdentifier:@"0"]; NSInteger row = [matches selectedRow]; [matches editColumn:col row:row withEvent:[NSApp currentEvent] select:YES]; } -- (IBAction)reprioritizeResults:(id)sender +- (void)reprioritizeResults { PrioritizeDialog *dlg = [[PrioritizeDialog alloc] initWithApp:model]; NSInteger result = [NSApp runModalForWindow:[dlg window]]; @@ -247,17 +247,17 @@ http://www.hardcoded.net/licenses/bsd_license [[self window] makeKeyAndOrderFront:nil]; } -- (IBAction)resetColumnsToDefault:(id)sender +- (void)resetColumnsToDefault { [[[table columns] model] resetToDefaults]; } -- (IBAction)revealSelected:(id)sender +- (void)revealSelected { [model revealSelected]; } -- (IBAction)saveResults:(id)sender +- (void)saveResults { NSSavePanel *sp = [NSSavePanel savePanel]; [sp setCanCreateDirectories:YES]; @@ -269,7 +269,7 @@ http://www.hardcoded.net/licenses/bsd_license } } -- (IBAction)startDuplicateScan:(id)sender +- (void)startDuplicateScan { if ([model resultsAreModified]) { if ([Dialogs askYesNo:TR(@"You have unsaved results, do you really want to continue?")] == NSAlertSecondButtonReturn) // NO @@ -279,37 +279,37 @@ http://www.hardcoded.net/licenses/bsd_license [model doScan]; } -- (IBAction)switchSelected:(id)sender +- (void)switchSelected { [model makeSelectedReference]; } -- (IBAction)toggleColumn:(id)sender +- (void)toggleColumn:(id)sender { NSMenuItem *mi = sender; BOOL checked = [[[table columns] model] toggleMenuItem:[mi tag]]; [mi setState:checked ? NSOnState : NSOffState]; } -- (IBAction)toggleDetailsPanel:(id)sender +- (void)toggleDetailsPanel { [[app detailsPanel] toggleVisibility]; [self updateOptionSegments]; } -- (IBAction)toggleDelta:(id)sender +- (void)toggleDelta { [table setDeltaValuesMode:![table deltaValuesMode]]; [self updateOptionSegments]; } -- (IBAction)togglePowerMarker:(id)sender +- (void)togglePowerMarker { [table setPowerMarkerMode:![table powerMarkerMode]]; [self updateOptionSegments]; } -- (IBAction)toggleQuicklookPanel:(id)sender +- (void)toggleQuicklookPanel { if ([QLPreviewPanel sharedPreviewPanelExists] && [[QLPreviewPanel sharedPreviewPanel] isVisible]) { [[QLPreviewPanel sharedPreviewPanel] orderOut:nil]; diff --git a/cocoa/base/ui/main_menu.py b/cocoa/base/ui/main_menu.py index 679a52c1..d56fa2cf 100644 --- a/cocoa/base/ui/main_menu.py +++ b/cocoa/base/ui/main_menu.py @@ -27,45 +27,45 @@ appMenu.addItem("Quit dupeGuru", Action(NSApp, 'terminate:'), 'cmd+q') fileMenu.addItem("Load Results...", Action(None, 'loadResults'), 'cmd+o') owner.recentResultsMenu = fileMenu.addMenu("Load Recent Results") -fileMenu.addItem("Save Results...", Action(None, 'saveResults:'), 'cmd+s') -fileMenu.addItem("Export Results to XHTML", Action(None, 'exportToXHTML:'), 'cmd+shift+e') +fileMenu.addItem("Save Results...", Action(None, 'saveResults'), 'cmd+s') +fileMenu.addItem("Export Results to XHTML", Action(None, 'exportToXHTML'), 'cmd+shift+e') -editMenu.addItem("Mark All", Action(None, 'markAll:'), 'cmd+a') -editMenu.addItem("Mark None", Action(None, 'markNone:'), 'cmd+shift+a') -editMenu.addItem("Invert Marking", Action(None, 'markInvert:'), 'cmd+alt+a') -editMenu.addItem("Mark Selected", Action(None, 'markSelected:'), 'ctrl+cmd+a') +editMenu.addItem("Mark All", Action(None, 'markAll'), 'cmd+a') +editMenu.addItem("Mark None", Action(None, 'markNone'), 'cmd+shift+a') +editMenu.addItem("Invert Marking", Action(None, 'markInvert'), 'cmd+alt+a') +editMenu.addItem("Mark Selected", Action(None, 'markSelected'), 'ctrl+cmd+a') editMenu.addSeparator() editMenu.addItem("Cut", Action(None, 'cut:'), 'cmd+x') editMenu.addItem("Copy", Action(None, 'copy:'), 'cmd+c') editMenu.addItem("Paste", Action(None, 'paste:'), 'cmd+v') editMenu.addSeparator() -editMenu.addItem("Filter Results...", Action(None, 'focusOnFilterField:'), 'cmd+alt+f') +editMenu.addItem("Filter Results...", Action(None, 'focusOnFilterField'), 'cmd+alt+f') actionMenu.addItem("Start Duplicate Scan", Action(owner, 'startScanning'), 'cmd+d') actionMenu.addSeparator() -actionMenu.addItem("Send Marked to Trash...", Action(None, 'trashMarked:'), 'cmd+t') -actionMenu.addItem("Move Marked to...", Action(None, 'moveMarked:'), 'cmd+m') -actionMenu.addItem("Copy Marked to...", Action(None, 'copyMarked:'), 'cmd+alt+m') -actionMenu.addItem("Remove Marked from Results", Action(None, 'removeMarked:'), 'cmd+r') -actionMenu.addItem("Re-Prioritize Results", Action(None, 'reprioritizeResults:')) +actionMenu.addItem("Send Marked to Trash...", Action(None, 'trashMarked'), 'cmd+t') +actionMenu.addItem("Move Marked to...", Action(None, 'moveMarked'), 'cmd+m') +actionMenu.addItem("Copy Marked to...", Action(None, 'copyMarked'), 'cmd+alt+m') +actionMenu.addItem("Remove Marked from Results", Action(None, 'removeMarked'), 'cmd+r') +actionMenu.addItem("Re-Prioritize Results", Action(None, 'reprioritizeResults')) actionMenu.addSeparator() -actionMenu.addItem("Remove Selected from Results", Action(None, 'removeSelected:'), 'cmd+backspace') -actionMenu.addItem("Add Selected to Ignore List", Action(None, 'ignoreSelected:'), 'cmd+g') -actionMenu.addItem("Make Selected Reference", Action(None, 'switchSelected:'), 'cmd+arrowup') +actionMenu.addItem("Remove Selected from Results", Action(None, 'removeSelected'), 'cmd+backspace') +actionMenu.addItem("Add Selected to Ignore List", Action(None, 'ignoreSelected'), 'cmd+g') +actionMenu.addItem("Make Selected Reference", Action(None, 'switchSelected'), 'cmd+arrowup') actionMenu.addSeparator() -actionMenu.addItem("Open Selected with Default Application", Action(None, 'openSelected:'), 'cmd+return') -actionMenu.addItem("Reveal Selected in Finder", Action(None, 'revealSelected:'), 'cmd+alt+return') -actionMenu.addItem("Invoke Custom Command", Action(None, 'invokeCustomCommand:'), 'cmd+shift+c') -actionMenu.addItem("Rename Selected", Action(None, 'renameSelected:')) +actionMenu.addItem("Open Selected with Default Application", Action(None, 'openSelected'), 'cmd+return') +actionMenu.addItem("Reveal Selected in Finder", Action(None, 'revealSelected'), 'cmd+alt+return') +actionMenu.addItem("Invoke Custom Command", Action(None, 'invokeCustomCommand'), 'cmd+shift+c') +actionMenu.addItem("Rename Selected", Action(None, 'renameSelected')) -modeMenu.addItem("Show Dupes Only", Action(None, 'togglePowerMarker:'), 'cmd+1') -modeMenu.addItem("Show Delta Values", Action(None, 'toggleDelta:'), 'cmd+2') +modeMenu.addItem("Show Dupes Only", Action(None, 'togglePowerMarker'), 'cmd+1') +modeMenu.addItem("Show Delta Values", Action(None, 'toggleDelta'), 'cmd+2') -windowMenu.addItem("Results Window", Action(owner, 'showResultWindow:')) +windowMenu.addItem("Results Window", Action(owner, 'showResultWindow')) windowMenu.addItem("Folder Selection Window", Action(owner, 'showDirectoryWindow')) windowMenu.addItem("Ignore List", Action(owner, 'showIgnoreList')) -windowMenu.addItem("Details Panel", Action(owner, 'toggleDetailsPanel'), 'cmd+i') -windowMenu.addItem("Quick Look", Action(owner, 'toggleQuicklookPanel'), 'cmd+l') +windowMenu.addItem("Details Panel", Action(None, 'toggleDetailsPanel'), 'cmd+i') +windowMenu.addItem("Quick Look", Action(None, 'toggleQuicklookPanel'), 'cmd+l') windowMenu.addSeparator() windowMenu.addItem("Minimize", Action(None, 'performMinimize:')) windowMenu.addItem("Zoom", Action(None, 'performZoom:')) diff --git a/cocoa/base/ui/result_window.py b/cocoa/base/ui/result_window.py index e64bbf92..31eb06d9 100644 --- a/cocoa/base/ui/result_window.py +++ b/cocoa/base/ui/result_window.py @@ -26,7 +26,7 @@ item.image = 'NSActionTemplate' actionPopup.width = 44 actionToolItem.view = actionPopup filterField = SearchField(None, "Filter") -filterField.action = Action(owner, 'filter:') +filterField.action = Action(owner, 'filter') filterField.sendsWholeSearchString = True filterToolItem.view = filterField filterToolItem.minSize = Size(80, 22) @@ -35,7 +35,7 @@ quickLookButton = Button(None, "") quickLookButton.bezelStyle = const.NSTexturedRoundedBezelStyle quickLookButton.image = 'NSQuickLookTemplate' quickLookButton.width = 44 -quickLookButton.action = Action(owner, 'toggleQuicklookPanel:') +quickLookButton.action = Action(owner, 'toggleQuicklookPanel') quicklookToolItem.view = quickLookButton optionsSegments = SegmentedControl(None) optionsSegments.segmentStyle = const.NSSegmentStyleCapsule @@ -44,23 +44,23 @@ optionsSegments.font = Font(FontFamily.System, 11) optionsSegments.addSegment("Details", 57) optionsSegments.addSegment("Dupes Only", 82) optionsSegments.addSegment("Delta", 48) -optionsSegments.action = Action(owner, 'changeOptions:') +optionsSegments.action = Action(owner, 'changeOptions') optionsToolItem.view = optionsSegments # Popuplate menus -actionPopup.menu.addItem("Send Marked to Trash...", action=Action(owner, 'trashMarked:')) -actionPopup.menu.addItem("Move Marked to...", action=Action(owner, 'moveMarked:')) -actionPopup.menu.addItem("Copy Marked to...", action=Action(owner, 'copyMarked:')) -actionPopup.menu.addItem("Remove Marked from Results", action=Action(owner, 'removeMarked:')) +actionPopup.menu.addItem("Send Marked to Trash...", action=Action(owner, 'trashMarked')) +actionPopup.menu.addItem("Move Marked to...", action=Action(owner, 'moveMarked')) +actionPopup.menu.addItem("Copy Marked to...", action=Action(owner, 'copyMarked')) +actionPopup.menu.addItem("Remove Marked from Results", action=Action(owner, 'removeMarked')) actionPopup.menu.addSeparator() for menu in (actionPopup.menu, contextMenu): - menu.addItem("Remove Selected from Results", action=Action(owner, 'removeSelected:')) - menu.addItem("Add Selected to Ignore List", action=Action(owner, 'ignoreSelected:')) - menu.addItem("Make Selected Reference", action=Action(owner, 'switchSelected:')) + menu.addItem("Remove Selected from Results", action=Action(owner, 'removeSelected')) + menu.addItem("Add Selected to Ignore List", action=Action(owner, 'ignoreSelected')) + menu.addItem("Make Selected Reference", action=Action(owner, 'switchSelected')) menu.addSeparator() - menu.addItem("Open Selected with Default Application", action=Action(owner, 'openSelected:')) - menu.addItem("Reveal Selected in Finder", action=Action(owner, 'revealSelected:')) - menu.addItem("Rename Selected", action=Action(owner, 'renameSelected:')) + menu.addItem("Open Selected with Default Application", action=Action(owner, 'openSelected')) + menu.addItem("Reveal Selected in Finder", action=Action(owner, 'revealSelected')) + menu.addItem("Rename Selected", action=Action(owner, 'renameSelected')) # Doing connections owner.filterField = filterField From 244af5b652808c9ac6ebc649a10820142465e012 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 11:28:39 -0400 Subject: [PATCH 25/33] Instead of "manually" added a "Clear Picture Cache" menu item in the objc code, added an "edition" argument to main_menu UI script and conditionally add it there. --HG-- branch : xibless --- build.py | 3 ++- cocoa/base/ui/main_menu.py | 3 +++ cocoa/pe/AppDelegate.h | 1 + cocoa/pe/AppDelegate.m | 10 ++-------- cocoa/pe/ResultWindow.h | 2 +- cocoa/pe/ResultWindow.m | 2 +- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/build.py b/build.py index 817eff51..e5c77476 100644 --- a/build.py +++ b/build.py @@ -69,7 +69,8 @@ def build_xibless(edition): xibless.generate('cocoa/base/ui/directory_panel.py', 'cocoa/autogen/DirectoryPanel_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/prioritize_dialog.py', 'cocoa/autogen/PrioritizeDialog_UI', localizationTable='Localizable') xibless.generate('cocoa/base/ui/result_window.py', 'cocoa/autogen/ResultWindow_UI', localizationTable='Localizable') - xibless.generate('cocoa/base/ui/main_menu.py', 'cocoa/autogen/MainMenu_UI', localizationTable='Localizable') + xibless.generate('cocoa/base/ui/main_menu.py', 'cocoa/autogen/MainMenu_UI', + localizationTable='Localizable', args={'edition': edition}) xibless.generate('cocoa/base/ui/preferences_panel.py', 'cocoa/autogen/PreferencesPanel_UI', localizationTable='Localizable', args={'edition': edition}) if edition == 'pe': diff --git a/cocoa/base/ui/main_menu.py b/cocoa/base/ui/main_menu.py index d56fa2cf..cd40cdba 100644 --- a/cocoa/base/ui/main_menu.py +++ b/cocoa/base/ui/main_menu.py @@ -1,5 +1,6 @@ ownerclass = 'AppDelegateBase' ownerimport = 'AppDelegateBase.h' +edition = args.get('edition', 'se') result = Menu("") appMenu = result.addMenu("dupeGuru") @@ -29,6 +30,8 @@ fileMenu.addItem("Load Results...", Action(None, 'loadResults'), 'cmd+o') owner.recentResultsMenu = fileMenu.addMenu("Load Recent Results") fileMenu.addItem("Save Results...", Action(None, 'saveResults'), 'cmd+s') fileMenu.addItem("Export Results to XHTML", Action(None, 'exportToXHTML'), 'cmd+shift+e') +if edition == 'pe': + fileMenu.addItem("Clear Picture Cache", Action(owner, 'clearPictureCache'), 'cmd+shift+p') editMenu.addItem("Mark All", Action(None, 'markAll'), 'cmd+a') editMenu.addItem("Mark None", Action(None, 'markNone'), 'cmd+shift+a') diff --git a/cocoa/pe/AppDelegate.h b/cocoa/pe/AppDelegate.h index 1da75027..b528eeef 100644 --- a/cocoa/pe/AppDelegate.h +++ b/cocoa/pe/AppDelegate.h @@ -10,4 +10,5 @@ http://www.hardcoded.net/licenses/bsd_license #import "AppDelegateBase.h" @interface AppDelegate : AppDelegateBase {} +- (void)clearPictureCache; @end diff --git a/cocoa/pe/AppDelegate.m b/cocoa/pe/AppDelegate.m index f67cb9eb..42626b43 100644 --- a/cocoa/pe/AppDelegate.m +++ b/cocoa/pe/AppDelegate.m @@ -67,14 +67,8 @@ http://www.hardcoded.net/licenses/bsd_license return [[DetailsPanelPE alloc] initWithApp:model]; } -//Delegate -- (void)applicationDidFinishLaunching:(NSNotification *)aNotification +- (void)clearPictureCache { - // index 2 is just after "Clear Ingore List" - NSMenuItem *mi = [actionsMenu insertItemWithTitle:TR(@"Clear Picture Cache") - action:@selector(clearPictureCache:) keyEquivalent:@"P" atIndex:2]; - [mi setTarget:[self resultWindow]]; - [mi setKeyEquivalentModifierMask:NSCommandKeyMask|NSShiftKeyMask]; - [super applicationDidFinishLaunching:aNotification]; + [(ResultWindow *)[self resultWindow] clearPictureCache]; } @end diff --git a/cocoa/pe/ResultWindow.h b/cocoa/pe/ResultWindow.h index 25edc81c..a3015c4e 100644 --- a/cocoa/pe/ResultWindow.h +++ b/cocoa/pe/ResultWindow.h @@ -10,5 +10,5 @@ http://www.hardcoded.net/licenses/bsd_license #import "../base/ResultWindow.h" @interface ResultWindow : ResultWindowBase {} -- (IBAction)clearPictureCache:(id)sender; +- (void)clearPictureCache; @end diff --git a/cocoa/pe/ResultWindow.m b/cocoa/pe/ResultWindow.m index 36567324..c7bca078 100644 --- a/cocoa/pe/ResultWindow.m +++ b/cocoa/pe/ResultWindow.m @@ -48,7 +48,7 @@ http://www.hardcoded.net/licenses/bsd_license } /* Actions */ -- (IBAction)clearPictureCache:(id)sender +- (void)clearPictureCache { NSString *msg = TR(@"Do you really want to remove all your cached picture analysis?"); if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO From 1fe42f673f478b04326b463be1a4388150d949fe Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 11:57:46 -0400 Subject: [PATCH 26/33] Fixed warning during the compilation of PE's cocoa UI unit. --HG-- branch : xibless rename : cocoa/base/DetailsPanel.h => cocoa/base/DetailsPanelBase.h rename : cocoa/base/DetailsPanel.m => cocoa/base/DetailsPanelBase.m rename : cocoa/pe/DetailsPanelPE.h => cocoa/pe/DetailsPanel.h rename : cocoa/pe/DetailsPanelPE.m => cocoa/pe/DetailsPanel.m --- .../base/{DetailsPanel.h => DetailsPanelBase.h} | 3 ++- .../base/{DetailsPanel.m => DetailsPanelBase.m} | 12 ++++++++---- cocoa/me/DetailsPanel.h | 13 +++++++++++++ cocoa/me/DetailsPanel.m | 17 +++++++++++++++++ cocoa/pe/AppDelegate.m | 4 ++-- cocoa/pe/{DetailsPanelPE.h => DetailsPanel.h} | 4 ++-- cocoa/pe/{DetailsPanelPE.m => DetailsPanel.m} | 10 ++++++++-- cocoa/pe/ui/details_panel.py | 4 ++-- cocoa/se/DetailsPanel.h | 13 +++++++++++++ cocoa/se/DetailsPanel.m | 17 +++++++++++++++++ 10 files changed, 84 insertions(+), 13 deletions(-) rename cocoa/base/{DetailsPanel.h => DetailsPanelBase.h} (85%) rename cocoa/base/{DetailsPanel.m => DetailsPanelBase.m} (90%) create mode 100644 cocoa/me/DetailsPanel.h create mode 100644 cocoa/me/DetailsPanel.m rename cocoa/pe/{DetailsPanelPE.h => DetailsPanel.h} (92%) rename cocoa/pe/{DetailsPanelPE.m => DetailsPanel.m} (94%) create mode 100644 cocoa/se/DetailsPanel.h create mode 100644 cocoa/se/DetailsPanel.m diff --git a/cocoa/base/DetailsPanel.h b/cocoa/base/DetailsPanelBase.h similarity index 85% rename from cocoa/base/DetailsPanel.h rename to cocoa/base/DetailsPanelBase.h index 05a7f3f4..722ae53a 100644 --- a/cocoa/base/DetailsPanel.h +++ b/cocoa/base/DetailsPanelBase.h @@ -10,7 +10,7 @@ http://www.hardcoded.net/licenses/bsd_license #import #import "PyDetailsPanel.h" -@interface DetailsPanel : NSWindowController +@interface DetailsPanelBase : NSWindowController { NSTableView *detailsTable; @@ -22,6 +22,7 @@ http://www.hardcoded.net/licenses/bsd_license - (id)initWithPyRef:(PyObject *)aPyRef; - (PyDetailsPanel *)model; +- (NSWindow *)createWindow; - (BOOL)isVisible; - (void)toggleVisibility; diff --git a/cocoa/base/DetailsPanel.m b/cocoa/base/DetailsPanelBase.m similarity index 90% rename from cocoa/base/DetailsPanel.m rename to cocoa/base/DetailsPanelBase.m index df2ee2c0..ea630e26 100644 --- a/cocoa/base/DetailsPanel.m +++ b/cocoa/base/DetailsPanelBase.m @@ -6,18 +6,17 @@ which should be included with this package. The terms are also available at http://www.hardcoded.net/licenses/bsd_license */ -#import "DetailsPanel.h" -#import "DetailsPanel_UI.h" +#import "DetailsPanelBase.h" #import "HSPyUtil.h" -@implementation DetailsPanel +@implementation DetailsPanelBase @synthesize detailsTable; - (id)initWithPyRef:(PyObject *)aPyRef { self = [super initWithWindow:nil]; - [self setWindow:createDetailsPanel_UI(self)]; + [self setWindow:[self createWindow]]; model = [[PyDetailsPanel alloc] initWithModel:aPyRef]; [model bindCallback:createCallback(@"DetailsPanelView", self)]; return self; @@ -34,6 +33,11 @@ http://www.hardcoded.net/licenses/bsd_license return (PyDetailsPanel *)model; } +- (NSWindow *)createWindow +{ + return nil; // Virtual +} + - (void)refreshDetails { [detailsTable reloadData]; diff --git a/cocoa/me/DetailsPanel.h b/cocoa/me/DetailsPanel.h new file mode 100644 index 00000000..41a0fc30 --- /dev/null +++ b/cocoa/me/DetailsPanel.h @@ -0,0 +1,13 @@ +/* +Copyright 2012 Hardcoded Software (http://www.hardcoded.net) + +This software is licensed under the "BSD" License as described in the "LICENSE" file, +which should be included with this package. The terms are also available at +http://www.hardcoded.net/licenses/bsd_license +*/ + +#import +#import "DetailsPanelBase.h" + +@interface DetailsPanel : DetailsPanelBase +@end \ No newline at end of file diff --git a/cocoa/me/DetailsPanel.m b/cocoa/me/DetailsPanel.m new file mode 100644 index 00000000..25ff167a --- /dev/null +++ b/cocoa/me/DetailsPanel.m @@ -0,0 +1,17 @@ +/* +Copyright 2012 Hardcoded Software (http://www.hardcoded.net) + +This software is licensed under the "BSD" License as described in the "LICENSE" file, +which should be included with this package. The terms are also available at +http://www.hardcoded.net/licenses/bsd_license +*/ + +#import "DetailsPanel.h" +#import "DetailsPanel_UI.h" + +@implementation DetailsPanel +- (NSWindow *)createWindow +{ + return createDetailsPanel_UI(self); +} +@end diff --git a/cocoa/pe/AppDelegate.m b/cocoa/pe/AppDelegate.m index 42626b43..e3f3eba8 100644 --- a/cocoa/pe/AppDelegate.m +++ b/cocoa/pe/AppDelegate.m @@ -11,7 +11,7 @@ http://www.hardcoded.net/licenses/bsd_license #import "Utils.h" #import "ValueTransformers.h" #import "Consts.h" -#import "DetailsPanelPE.h" +#import "DetailsPanel.h" #import "DirectoryPanel.h" #import "ResultWindow.h" @@ -64,7 +64,7 @@ http://www.hardcoded.net/licenses/bsd_license - (DetailsPanel *)createDetailsPanel { - return [[DetailsPanelPE alloc] initWithApp:model]; + return [[DetailsPanel alloc] initWithApp:model]; } - (void)clearPictureCache diff --git a/cocoa/pe/DetailsPanelPE.h b/cocoa/pe/DetailsPanel.h similarity index 92% rename from cocoa/pe/DetailsPanelPE.h rename to cocoa/pe/DetailsPanel.h index 3a68f60b..9bb8b0d2 100644 --- a/cocoa/pe/DetailsPanelPE.h +++ b/cocoa/pe/DetailsPanel.h @@ -7,10 +7,10 @@ http://www.hardcoded.net/licenses/bsd_license */ #import -#import "DetailsPanel.h" +#import "DetailsPanelBase.h" #import "PyDupeGuru.h" -@interface DetailsPanelPE : DetailsPanel +@interface DetailsPanel : DetailsPanelBase { NSImageView *dupeImage; NSProgressIndicator *dupeProgressIndicator; diff --git a/cocoa/pe/DetailsPanelPE.m b/cocoa/pe/DetailsPanel.m similarity index 94% rename from cocoa/pe/DetailsPanelPE.m rename to cocoa/pe/DetailsPanel.m index e0ed66c1..0a1135d1 100644 --- a/cocoa/pe/DetailsPanelPE.m +++ b/cocoa/pe/DetailsPanel.m @@ -10,10 +10,11 @@ http://www.hardcoded.net/licenses/bsd_license #import "NSNotificationAdditions.h" #import "NSImageAdditions.h" #import "PyDupeGuru.h" -#import "DetailsPanelPE.h" +#import "DetailsPanel.h" #import "Consts.h" +#import "DetailsPanel_UI.h" -@implementation DetailsPanelPE +@implementation DetailsPanel @synthesize dupeImage; @synthesize dupeProgressIndicator; @@ -29,6 +30,11 @@ http://www.hardcoded.net/licenses/bsd_license return self; } +- (NSWindow *)createWindow +{ + return createDetailsPanel_UI(self); +} + - (void)loadImageAsync:(NSString *)imagePath { NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; diff --git a/cocoa/pe/ui/details_panel.py b/cocoa/pe/ui/details_panel.py index 86da0fd6..1a1efbd8 100644 --- a/cocoa/pe/ui/details_panel.py +++ b/cocoa/pe/ui/details_panel.py @@ -1,5 +1,5 @@ -ownerclass = 'DetailsPanelPE' -ownerimport = 'DetailsPanelPE.h' +ownerclass = 'DetailsPanel' +ownerimport = 'DetailsPanel.h' result = Panel(593, 398, "Details of Selected File") table = TableView(result) diff --git a/cocoa/se/DetailsPanel.h b/cocoa/se/DetailsPanel.h new file mode 100644 index 00000000..41a0fc30 --- /dev/null +++ b/cocoa/se/DetailsPanel.h @@ -0,0 +1,13 @@ +/* +Copyright 2012 Hardcoded Software (http://www.hardcoded.net) + +This software is licensed under the "BSD" License as described in the "LICENSE" file, +which should be included with this package. The terms are also available at +http://www.hardcoded.net/licenses/bsd_license +*/ + +#import +#import "DetailsPanelBase.h" + +@interface DetailsPanel : DetailsPanelBase +@end \ No newline at end of file diff --git a/cocoa/se/DetailsPanel.m b/cocoa/se/DetailsPanel.m new file mode 100644 index 00000000..25ff167a --- /dev/null +++ b/cocoa/se/DetailsPanel.m @@ -0,0 +1,17 @@ +/* +Copyright 2012 Hardcoded Software (http://www.hardcoded.net) + +This software is licensed under the "BSD" License as described in the "LICENSE" file, +which should be included with this package. The terms are also available at +http://www.hardcoded.net/licenses/bsd_license +*/ + +#import "DetailsPanel.h" +#import "DetailsPanel_UI.h" + +@implementation DetailsPanel +- (NSWindow *)createWindow +{ + return createDetailsPanel_UI(self); +} +@end From 292d993dce7c44afd35e8c0762e12cd13239ece6 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 12:59:39 -0400 Subject: [PATCH 27/33] Fixed cocoa packaging. --HG-- branch : xibless --- package.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.py b/package.py index 3d60118f..cc14b8d8 100644 --- a/package.py +++ b/package.py @@ -27,9 +27,9 @@ def parse_args(): def package_cocoa(edition, args): app_path = { - 'se': 'cocoa/se/dupeGuru.app', - 'me': 'cocoa/me/dupeGuru ME.app', - 'pe': 'cocoa/pe/dupeGuru PE.app', + 'se': 'build/dupeGuru.app', + 'me': 'build/dupeGuru ME.app', + 'pe': 'build/dupeGuru PE.app', }[edition] package_cocoa_app_in_dmg(app_path, '.', args) From ad5c4a954c726ceec27ece88b7ea1981d1b11905 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 13:42:41 -0400 Subject: [PATCH 28/33] Fixed action menu arrow which was misplaced under os x 10.6. --HG-- branch : xibless --- cocoa/base/ui/result_window.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cocoa/base/ui/result_window.py b/cocoa/base/ui/result_window.py index 31eb06d9..fdd8d75d 100644 --- a/cocoa/base/ui/result_window.py +++ b/cocoa/base/ui/result_window.py @@ -20,6 +20,7 @@ toolbar.defaultItems = [actionToolItem, optionsToolItem, quicklookToolItem, dire actionPopup = Popup(None) actionPopup.pullsdown = True actionPopup.bezelStyle = const.NSTexturedRoundedBezelStyle +actionPopup.arrowPosition = const.NSPopUpArrowAtBottom item = actionPopup.menu.addItem("") # First item is invisible item.hidden = True item.image = 'NSActionTemplate' From b0f9a94375ee8d3a5f9323251a9e4a799a2b6b1c Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 16:07:17 -0400 Subject: [PATCH 29/33] Add the ME-specific "Remove Dead Tracks" menu item in the UI script instead of in the objc code. --HG-- branch : xibless --- cocoa/base/AppDelegateBase.h | 2 -- cocoa/base/AppDelegateBase.m | 1 - cocoa/base/ui/main_menu.py | 3 ++- cocoa/me/AppDelegate.h | 1 + cocoa/me/AppDelegate.m | 9 ++------- cocoa/me/ResultWindow.h | 2 +- cocoa/me/ResultWindow.m | 2 +- 7 files changed, 7 insertions(+), 13 deletions(-) diff --git a/cocoa/base/AppDelegateBase.h b/cocoa/base/AppDelegateBase.h index a37ef458..ab0d98bc 100644 --- a/cocoa/base/AppDelegateBase.h +++ b/cocoa/base/AppDelegateBase.h @@ -19,7 +19,6 @@ http://www.hardcoded.net/licenses/bsd_license @interface AppDelegateBase : NSObject { NSMenu *recentResultsMenu; - NSMenu *actionsMenu; NSMenu *columnsMenu; SUUpdater *updater; @@ -34,7 +33,6 @@ http://www.hardcoded.net/licenses/bsd_license } @property (readwrite, retain) NSMenu *recentResultsMenu; -@property (readwrite, retain) NSMenu *actionsMenu; @property (readwrite, retain) NSMenu *columnsMenu; @property (readwrite, retain) SUUpdater *updater; diff --git a/cocoa/base/AppDelegateBase.m b/cocoa/base/AppDelegateBase.m index 6322ad61..19e2e2bb 100644 --- a/cocoa/base/AppDelegateBase.m +++ b/cocoa/base/AppDelegateBase.m @@ -18,7 +18,6 @@ http://www.hardcoded.net/licenses/bsd_license @implementation AppDelegateBase @synthesize recentResultsMenu; -@synthesize actionsMenu; @synthesize columnsMenu; @synthesize updater; diff --git a/cocoa/base/ui/main_menu.py b/cocoa/base/ui/main_menu.py index cd40cdba..ce3a955a 100644 --- a/cocoa/base/ui/main_menu.py +++ b/cocoa/base/ui/main_menu.py @@ -7,7 +7,6 @@ appMenu = result.addMenu("dupeGuru") fileMenu = result.addMenu("File") editMenu = result.addMenu("Edit") actionMenu = result.addMenu("Actions") -owner.actionsMenu = actionMenu owner.columnsMenu = result.addMenu("Columns") modeMenu = result.addMenu("Mode") windowMenu = result.addMenu("Window") @@ -32,6 +31,8 @@ fileMenu.addItem("Save Results...", Action(None, 'saveResults'), 'cmd+s') fileMenu.addItem("Export Results to XHTML", Action(None, 'exportToXHTML'), 'cmd+shift+e') if edition == 'pe': fileMenu.addItem("Clear Picture Cache", Action(owner, 'clearPictureCache'), 'cmd+shift+p') +elif edition == 'me': + fileMenu.addItem("Remove Dead Tracks in iTunes", Action(owner, 'removeDeadTracks')) editMenu.addItem("Mark All", Action(None, 'markAll'), 'cmd+a') editMenu.addItem("Mark None", Action(None, 'markNone'), 'cmd+shift+a') diff --git a/cocoa/me/AppDelegate.h b/cocoa/me/AppDelegate.h index 3171034c..0bac67a2 100644 --- a/cocoa/me/AppDelegate.h +++ b/cocoa/me/AppDelegate.h @@ -12,4 +12,5 @@ http://www.hardcoded.net/licenses/bsd_license #import "PyDupeGuru.h" @interface AppDelegate : AppDelegateBase {} +- (void)removeDeadTracks; @end diff --git a/cocoa/me/AppDelegate.m b/cocoa/me/AppDelegate.m index a401e3be..98f6347d 100644 --- a/cocoa/me/AppDelegate.m +++ b/cocoa/me/AppDelegate.m @@ -74,13 +74,8 @@ http://www.hardcoded.net/licenses/bsd_license return [[DirectoryPanelME alloc] initWithParentApp:self]; } -//Delegate -- (void)applicationDidFinishLaunching:(NSNotification *)aNotification +- (void)removeDeadTracks { - // index 3 is just after "Export Results to XHTML" - NSMenuItem *mi = [actionsMenu insertItemWithTitle:TR(@"Remove Dead Tracks in iTunes") - action:@selector(removeDeadTracks:) keyEquivalent:@"" atIndex:3]; - [mi setTarget:[self resultWindow]]; - [super applicationDidFinishLaunching:aNotification]; + [(ResultWindow *)[self resultWindow] removeDeadTracks]; } @end diff --git a/cocoa/me/ResultWindow.h b/cocoa/me/ResultWindow.h index 44718223..92aaea84 100644 --- a/cocoa/me/ResultWindow.h +++ b/cocoa/me/ResultWindow.h @@ -10,5 +10,5 @@ http://www.hardcoded.net/licenses/bsd_license #import "../base/ResultWindow.h" @interface ResultWindow : ResultWindowBase {} -- (IBAction)removeDeadTracks:(id)sender; +- (void)removeDeadTracks; @end diff --git a/cocoa/me/ResultWindow.m b/cocoa/me/ResultWindow.m index c70510db..f6f7c14f 100644 --- a/cocoa/me/ResultWindow.m +++ b/cocoa/me/ResultWindow.m @@ -70,7 +70,7 @@ http://www.hardcoded.net/licenses/bsd_license } /* Actions */ -- (IBAction)removeDeadTracks:(id)sender +- (void)removeDeadTracks { [model scanDeadTracks]; } From 5a3b6883fa6d5636c4f3e098ab78918f65e6a066 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 16:57:27 -0400 Subject: [PATCH 30/33] Fixed bezel style of + and - buttons in the Folder Selection Dialog. --HG-- branch : xibless --- cocoa/base/ui/directory_panel.py | 1 + 1 file changed, 1 insertion(+) diff --git a/cocoa/base/ui/directory_panel.py b/cocoa/base/ui/directory_panel.py index 78599c2c..f7a106c7 100644 --- a/cocoa/base/ui/directory_panel.py +++ b/cocoa/base/ui/directory_panel.py @@ -21,6 +21,7 @@ owner.loadRecentButtonPopUp = loadRecentPopup result.autosaveName = 'DirectoryPanel' result.canMinimize = False result.minSize = Size(370, 270) +addButton.bezelStyle = removeButton.bezelStyle = const.NSTexturedRoundedBezelStyle addButton.image = 'NSAddTemplate' removeButton.image = 'NSRemoveTemplate' for button in (addButton, removeButton): From a67f7e2c9e6451ed86b1e1f490101c068e712776 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Sun, 29 Jul 2012 17:42:47 -0400 Subject: [PATCH 31/33] Added a formatter to the slider value indicator in Cocoa's pref panel. --HG-- branch : xibless --- cocoa/base/ui/preferences_panel.py | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cocoa/base/ui/preferences_panel.py b/cocoa/base/ui/preferences_panel.py index cd50e659..df7bf585 100644 --- a/cocoa/base/ui/preferences_panel.py +++ b/cocoa/base/ui/preferences_panel.py @@ -22,11 +22,10 @@ advancedTab = tabView.addTab("Advanced") scanTypePopup = Popup(basicTab.view, scanTypeNames[edition]) scanTypeLabel = Label(basicTab.view, "Scan Type:") thresholdSlider = Slider(basicTab.view, 1, 100, 80) -# XXX add a number formatter to this thresholdLabel = Label(basicTab.view, "Filter hardness:") moreResultsLabel = Label(basicTab.view, "More results") fewerResultsLabel = Label(basicTab.view, "Fewer results") -thresholdValuelabel = Label(basicTab.view, "") +thresholdValueLabel = Label(basicTab.view, "") fontSizeCombo = Combobox(basicTab.view, ["11", "12", "13", "14", "18", "24"]) fontSizeLabel = Label(basicTab.view, "Font Size:") if edition in ('se', 'me'): @@ -63,7 +62,7 @@ resetToDefaultsButton = Button(result, "Reset To Defaults") scanTypePopup.bind('selectedIndex', defaults, 'values.scanType') thresholdSlider.bind('value', defaults, 'values.minMatchPercentage') -thresholdValuelabel.bind('value', defaults, 'values.minMatchPercentage') +thresholdValueLabel.bind('value', defaults, 'values.minMatchPercentage') fontSizeCombo.bind('value', defaults, 'values.TableFontSize') mixKindBox.bind('value', defaults, 'values.mixFileKind') removeEmptyFoldersBox.bind('value', defaults, 'values.removeEmptyFolders') @@ -97,7 +96,9 @@ elif edition == 'pe': result.canResize = False result.canMinimize = False -allLabels = [scanTypeLabel, thresholdValuelabel, moreResultsLabel, fewerResultsLabel, +thresholdValueLabel.formatter = NumberFormatter(NumberStyle.Decimal) +thresholdValueLabel.formatter.maximumFractionDigits = 0 +allLabels = [scanTypeLabel, thresholdValueLabel, moreResultsLabel, fewerResultsLabel, thresholdLabel, fontSizeLabel, customCommandLabel, copyMoveLabel] allCheckboxes = [mixKindBox, removeEmptyFoldersBox, checkForUpdatesBox, regexpCheckbox, ignoreHardlinksBox, debugModeCheckbox] @@ -118,7 +119,7 @@ resetToDefaultsButton.action = Action(defaults, 'revertToInitialValues:') scanTypeLabel.width = thresholdLabel.width = fontSizeLabel.width = 94 fontSizeCombo.width = 66 -thresholdValuelabel.width = 25 +thresholdValueLabel.width = 25 resetToDefaultsButton.width = 136 if edition == 'se': smallFilesThresholdText.width = 60 @@ -136,7 +137,7 @@ scanTypePopup.packToCorner(Pack.UpperRight) scanTypeLabel.packRelativeTo(scanTypePopup, Pack.Left) scanTypePopup.fill(Pack.Left) thresholdSlider.packRelativeTo(scanTypePopup, Pack.Below) -thresholdValuelabel.packRelativeTo(thresholdSlider, Pack.Right) +thresholdValueLabel.packRelativeTo(thresholdSlider, Pack.Right) thresholdSlider.fill(Pack.Right) # We want to give the labels as much space as possible, and we only "know" how much is available # after the slider's fill operation. From 0cf6987083858c2e1c98cf4d91630a6f2f20794d Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 30 Jul 2012 13:13:27 -0400 Subject: [PATCH 32/33] Set shortcut for the "Rename Selected" menu item in Cocoa's main menu. --HG-- branch : xibless --- cocoa/base/ui/main_menu.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cocoa/base/ui/main_menu.py b/cocoa/base/ui/main_menu.py index ce3a955a..0d13d33e 100644 --- a/cocoa/base/ui/main_menu.py +++ b/cocoa/base/ui/main_menu.py @@ -60,7 +60,7 @@ actionMenu.addSeparator() actionMenu.addItem("Open Selected with Default Application", Action(None, 'openSelected'), 'cmd+return') actionMenu.addItem("Reveal Selected in Finder", Action(None, 'revealSelected'), 'cmd+alt+return') actionMenu.addItem("Invoke Custom Command", Action(None, 'invokeCustomCommand'), 'cmd+shift+c') -actionMenu.addItem("Rename Selected", Action(None, 'renameSelected')) +actionMenu.addItem("Rename Selected", Action(None, 'renameSelected'), 'enter') modeMenu.addItem("Show Dupes Only", Action(None, 'togglePowerMarker'), 'cmd+1') modeMenu.addItem("Show Delta Values", Action(None, 'toggleDelta'), 'cmd+2') From 3cd44705f864a6d7bb1f32062d7ec35eeab5c371 Mon Sep 17 00:00:00 2001 From: Virgil Dupras Date: Mon, 30 Jul 2012 14:14:10 -0400 Subject: [PATCH 33/33] Updated README and pip requirements to include xibless (and remove Sparkle, which is now included in cocoalib). --HG-- branch : xibless --- README | 4 ++-- requirements-osx.txt | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README b/README index 4d82e402..ff7dd4ea 100644 --- a/README +++ b/README @@ -37,11 +37,11 @@ General dependencies OS X prerequisites ------------------ -- XCode 4.1 -- Sparkle (http://sparkle.andymatuschak.org/) +- XCode's command line tools - objp 1.1.0 (http://bitbucket.org/hsoft/objp) - pluginbuilder 1.1.0 (http://bitbucket.org/hsoft/pluginbuilder) - appscript 1.0.0 for ME and PE (http://appscript.sourceforge.net/) +- xibless 0.4.0 (https://bitbucket.org/hsoft/xibless) Windows prerequisites --------------------- diff --git a/requirements-osx.txt b/requirements-osx.txt index b8257d1a..bc500c6e 100644 --- a/requirements-osx.txt +++ b/requirements-osx.txt @@ -2,3 +2,4 @@ objp>=1.2.0 pluginbuilder>=1.1.0 appscript>=1.0.0 +xibless>=0.4.0