diff --git a/base/cocoa/LICENSE b/LICENSE
similarity index 100%
rename from base/cocoa/LICENSE
rename to LICENSE
diff --git a/README b/README
new file mode 100644
index 00000000..4f9c540d
--- /dev/null
+++ b/README
@@ -0,0 +1,68 @@
+Contents
+=====
+
+This package contains the source for dupeGuru. To learns how to build it, refer to the "Build dupeGuru" section. Below is the description of the various subfolders:
+
+- core: Contains the core logic code for dupeGuru. It's Python code written in TDD style.
+- core_*: Edition-specific-cross-toolkit code written in Python.
+- cocoa: UI code for the Cocoa toolkit. It's Objective-C code.
+- qt: UI code for the Qt toolkit. It's written in Python and uses PyQt. Before redistributing changes in this part of the code, read the "qt/WARNING" file.
+- images: Images used by the different UI codebases.
+
+There are also other sub-folder that comes from external repositories (automatically checked out
+with svn:externals):
+
+- hsutil: A collection of helpers used across HS applications.
+- hsdocgen: An ad-hoc document generation used across HS project (used for help files)
+- hsmedia: A library to read audio file metadata, used in dupeGuru ME.
+- cocoalib: A collection of helpers used across Cocoa UI codebases of HS applications.
+- qtlib: A collection of helpers used across Qt UI codebases of HS applications.
+
+dupeGuru Dependencies
+=====
+
+Before being able to build dupeGuru, a few dependencies have to be installed:
+
+General dependencies
+-----
+
+- Python 2.6 (http://www.python.org)
+- Mako, to generate help files. (http://www.makotemplates.org/)
+- PyYaml, for help files and the build system. (http://pyyaml.org/)
+- Nose, to run unit tests. (http://somethingaboutorange.com/mrl/projects/nose/)
+- Cython to compile a few optimized bottlenecks. (http://www.cython.org/)
+- Python Imaging Library for dupeGuru PE. (http://www.pythonware.com/products/pil/)
+
+OS X prerequisites
+-----
+
+- XCode 3.1 (http://developer.apple.com/TOOLS/xcode/)
+- Sparkle (http://sparkle.andymatuschak.org/)
+- PyObjC. Although Tiger support has been dropped with dupeGuru 1.7, I still use PyObjC 1.4 because funky stuff happens with newer releases. However, it's mostly related to packaging with py2app. (http://pyobjc.sourceforge.net/)
+- py2app (http://svn.pythonmac.org/py2app/py2app/trunk/doc/index.html)
+
+Windows prerequisites
+---
+
+- Visual Studio 2008 (Express is enough) is needed to build the Cython extensions. (http://www.microsoft.com/Express/)
+- PyQt 4.6 (http://www.riverbankcomputing.co.uk/news)
+- PyInstaller, if you want to build a exe. You don't need it if you just want to run dupeGuru. (http://www.pyinstaller.org/)
+- Advanced Installer, if you want to build the installer file. (http://www.advancedinstaller.com/)
+
+Building dupeGuru
+=====
+
+First, make sure you meet the dependencies listed in the section above. Then you need to configure your build with:
+
+ python configure.py
+
+If you want, you can specify a UI to use with the `--ui` option. So, if you want to build dupeGuru with Qt on OS X, then you have to type `python configure.py --ui=qt`. You can also use the `--dev` flag to indicate a dev build (it will build `mg_cocoa.plugin` in alias mode).
+
+Then, just build the thing and then run it with:
+
+ python build.py
+ python run.py
+
+If you want to create ready-to-upload package, run:
+
+ python package.py
diff --git a/base/qt/dg.qrc b/base/qt/dg.qrc
deleted file mode 100644
index bd8d0a26..00000000
--- a/base/qt/dg.qrc
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- images/details32.png
- images/dgpe_logo_32.png
- images/dgpe_logo_128.png
- images/dgme_logo_32.png
- images/dgme_logo_128.png
- images/dgse_logo_32.png
- images/dgse_logo_128.png
- images/folderwin32.png
- images/preferences32.png
- images/actions32.png
- images/delta32.png
- images/power_marker32.png
-
-
\ No newline at end of file
diff --git a/build.py b/build.py
new file mode 100644
index 00000000..4ab1e047
--- /dev/null
+++ b/build.py
@@ -0,0 +1,62 @@
+# -*- coding: utf-8 -*-
+# Created By: Virgil Dupras
+# Created On: 2009-12-30
+# $Id$
+# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
+#
+# This software is licensed under the "HS" 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/hs_license
+
+import sys
+import os
+import os.path as op
+
+import yaml
+
+from hsutil.build import move_testdata_out, put_testdata_back, add_to_pythonpath
+
+def main():
+ conf = yaml.load(open('conf.yaml'))
+ edition = conf['edition']
+ ui = conf['ui']
+ dev = conf['dev']
+ print "Building dupeGuru {0} with UI {1}".format(edition.upper(), ui)
+ add_to_pythonpath('.')
+ if dev:
+ print "Building in Dev mode"
+ print "Generating Help"
+ windows = sys.platform=='win32'
+ if edition == 'se':
+ import help_se.gen
+ help_se.gen.generate(windows=windows, force_render=not dev)
+ elif edition == 'me':
+ import help_me.gen
+ help_me.gen.generate(windows=windows, force_render=not dev)
+ elif edition == 'pe':
+ import help_pe.gen
+ help_pe.gen.generate(windows=windows, force_render=not dev)
+
+ print "Building dupeGuru"
+ if edition == 'pe':
+ os.chdir('core_pe')
+ os.system('python gen.py')
+ os.chdir('..')
+ if ui == 'cocoa':
+ move_log = move_testdata_out()
+ try:
+ os.chdir(op.join('cocoa', edition))
+ if dev:
+ os.system('python gen.py --dev')
+ else:
+ os.system('python gen.py')
+ os.chdir(op.join('..', '..'))
+ finally:
+ put_testdata_back(move_log)
+ elif ui == 'qt':
+ os.chdir(op.join('qt', edition))
+ os.system('python gen.py')
+ os.chdir(op.join('..', '..'))
+
+if __name__ == '__main__':
+ main()
diff --git a/base/cocoa/AppDelegate.h b/cocoa/base/AppDelegate.h
similarity index 100%
rename from base/cocoa/AppDelegate.h
rename to cocoa/base/AppDelegate.h
diff --git a/base/cocoa/AppDelegate.m b/cocoa/base/AppDelegate.m
similarity index 100%
rename from base/cocoa/AppDelegate.m
rename to cocoa/base/AppDelegate.m
diff --git a/base/cocoa/Consts.h b/cocoa/base/Consts.h
similarity index 100%
rename from base/cocoa/Consts.h
rename to cocoa/base/Consts.h
diff --git a/base/cocoa/DetailsPanel.h b/cocoa/base/DetailsPanel.h
similarity index 100%
rename from base/cocoa/DetailsPanel.h
rename to cocoa/base/DetailsPanel.h
diff --git a/base/cocoa/DetailsPanel.m b/cocoa/base/DetailsPanel.m
similarity index 100%
rename from base/cocoa/DetailsPanel.m
rename to cocoa/base/DetailsPanel.m
diff --git a/base/cocoa/DirectoryPanel.h b/cocoa/base/DirectoryPanel.h
similarity index 100%
rename from base/cocoa/DirectoryPanel.h
rename to cocoa/base/DirectoryPanel.h
diff --git a/base/cocoa/DirectoryPanel.m b/cocoa/base/DirectoryPanel.m
similarity index 100%
rename from base/cocoa/DirectoryPanel.m
rename to cocoa/base/DirectoryPanel.m
diff --git a/base/cocoa/PyDupeGuru.h b/cocoa/base/PyDupeGuru.h
similarity index 100%
rename from base/cocoa/PyDupeGuru.h
rename to cocoa/base/PyDupeGuru.h
diff --git a/base/cocoa/ResultWindow.h b/cocoa/base/ResultWindow.h
similarity index 100%
rename from base/cocoa/ResultWindow.h
rename to cocoa/base/ResultWindow.h
diff --git a/base/cocoa/ResultWindow.m b/cocoa/base/ResultWindow.m
similarity index 100%
rename from base/cocoa/ResultWindow.m
rename to cocoa/base/ResultWindow.m
diff --git a/base/cocoa/dsa_pub.pem b/cocoa/base/dsa_pub.pem
similarity index 100%
rename from base/cocoa/dsa_pub.pem
rename to cocoa/base/dsa_pub.pem
diff --git a/base/cocoa/xib/DetailsPanel.xib b/cocoa/base/xib/DetailsPanel.xib
similarity index 100%
rename from base/cocoa/xib/DetailsPanel.xib
rename to cocoa/base/xib/DetailsPanel.xib
diff --git a/base/cocoa/xib/DirectoryPanel.xib b/cocoa/base/xib/DirectoryPanel.xib
similarity index 100%
rename from base/cocoa/xib/DirectoryPanel.xib
rename to cocoa/base/xib/DirectoryPanel.xib
diff --git a/base/cocoa/xib/MainMenu.xib b/cocoa/base/xib/MainMenu.xib
similarity index 100%
rename from base/cocoa/xib/MainMenu.xib
rename to cocoa/base/xib/MainMenu.xib
diff --git a/me/cocoa/AppDelegate.h b/cocoa/me/AppDelegate.h
similarity index 94%
rename from me/cocoa/AppDelegate.h
rename to cocoa/me/AppDelegate.h
index 8bdeac69..fee028ed 100644
--- a/me/cocoa/AppDelegate.h
+++ b/cocoa/me/AppDelegate.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/AppDelegate.h"
+#import "../base/AppDelegate.h"
#import "ResultWindow.h"
#import "DirectoryPanel.h"
#import "PyDupeGuru.h"
diff --git a/me/cocoa/AppDelegate.m b/cocoa/me/AppDelegate.m
similarity index 94%
rename from me/cocoa/AppDelegate.m
rename to cocoa/me/AppDelegate.m
index a91cb290..d618300d 100644
--- a/me/cocoa/AppDelegate.m
+++ b/cocoa/me/AppDelegate.m
@@ -7,11 +7,11 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import "AppDelegate.h"
-#import "cocoalib/ProgressController.h"
-#import "cocoalib/RegistrationInterface.h"
-#import "cocoalib/Utils.h"
-#import "cocoalib/ValueTransformers.h"
-#import "cocoalib/Dialogs.h"
+#import "../../cocoalib/ProgressController.h"
+#import "../../cocoalib/RegistrationInterface.h"
+#import "../../cocoalib/Utils.h"
+#import "../../cocoalib/ValueTransformers.h"
+#import "../../cocoalib/Dialogs.h"
#import "DetailsPanel.h"
#import "Consts.h"
diff --git a/me/cocoa/Consts.h b/cocoa/me/Consts.h
similarity index 80%
rename from me/cocoa/Consts.h
rename to cocoa/me/Consts.h
index ebc7c1f3..489f17a9 100644
--- a/me/cocoa/Consts.h
+++ b/cocoa/me/Consts.h
@@ -6,7 +6,7 @@ which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/hs_license
*/
-#import "dgbase/Consts.h"
+#import "../base/Consts.h"
#define APPNAME @"dupeGuru ME"
diff --git a/me/cocoa/DetailsPanel.h b/cocoa/me/DetailsPanel.h
similarity index 90%
rename from me/cocoa/DetailsPanel.h
rename to cocoa/me/DetailsPanel.h
index eca22c12..4c1b5cca 100644
--- a/me/cocoa/DetailsPanel.h
+++ b/cocoa/me/DetailsPanel.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/DetailsPanel.h"
+#import "../base/DetailsPanel.h"
@interface DetailsPanel : DetailsPanelBase
diff --git a/me/cocoa/DetailsPanel.m b/cocoa/me/DetailsPanel.m
similarity index 100%
rename from me/cocoa/DetailsPanel.m
rename to cocoa/me/DetailsPanel.m
diff --git a/me/cocoa/DirectoryPanel.h b/cocoa/me/DirectoryPanel.h
similarity index 91%
rename from me/cocoa/DirectoryPanel.h
rename to cocoa/me/DirectoryPanel.h
index 536258af..23d05199 100644
--- a/me/cocoa/DirectoryPanel.h
+++ b/cocoa/me/DirectoryPanel.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/DirectoryPanel.h"
+#import "../base/DirectoryPanel.h"
@interface DirectoryPanel : DirectoryPanelBase
{
diff --git a/me/cocoa/DirectoryPanel.m b/cocoa/me/DirectoryPanel.m
similarity index 100%
rename from me/cocoa/DirectoryPanel.m
rename to cocoa/me/DirectoryPanel.m
diff --git a/me/cocoa/Info.plist b/cocoa/me/Info.plist
similarity index 100%
rename from me/cocoa/Info.plist
rename to cocoa/me/Info.plist
diff --git a/me/cocoa/PyDupeGuru.h b/cocoa/me/PyDupeGuru.h
similarity index 96%
rename from me/cocoa/PyDupeGuru.h
rename to cocoa/me/PyDupeGuru.h
index 1d45ad3a..b7631a27 100644
--- a/me/cocoa/PyDupeGuru.h
+++ b/cocoa/me/PyDupeGuru.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/PyDupeGuru.h"
+#import "../base/PyDupeGuru.h"
@interface PyDupeGuru : PyDupeGuruBase
//Scanning options
diff --git a/me/cocoa/ResultWindow.h b/cocoa/me/ResultWindow.h
similarity index 94%
rename from me/cocoa/ResultWindow.h
rename to cocoa/me/ResultWindow.h
index e175a4c9..c918ca32 100644
--- a/me/cocoa/ResultWindow.h
+++ b/cocoa/me/ResultWindow.h
@@ -7,8 +7,8 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "cocoalib/Outline.h"
-#import "dgbase/ResultWindow.h"
+#import "../../cocoalib/Outline.h"
+#import "../base/ResultWindow.h"
#import "DirectoryPanel.h"
@interface ResultWindow : ResultWindowBase
diff --git a/me/cocoa/ResultWindow.m b/cocoa/me/ResultWindow.m
similarity index 98%
rename from me/cocoa/ResultWindow.m
rename to cocoa/me/ResultWindow.m
index 0ad98ca4..67fd2917 100644
--- a/me/cocoa/ResultWindow.m
+++ b/cocoa/me/ResultWindow.m
@@ -7,10 +7,10 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import "ResultWindow.h"
-#import "cocoalib/Dialogs.h"
-#import "cocoalib/ProgressController.h"
-#import "cocoalib/RegistrationInterface.h"
-#import "cocoalib/Utils.h"
+#import "../../cocoalib/Dialogs.h"
+#import "../../cocoalib/ProgressController.h"
+#import "../../cocoalib/RegistrationInterface.h"
+#import "../../cocoalib/Utils.h"
#import "AppDelegate.h"
#import "Consts.h"
diff --git a/me/cocoa/dupeguru.icns b/cocoa/me/dupeguru.icns
similarity index 100%
rename from me/cocoa/dupeguru.icns
rename to cocoa/me/dupeguru.icns
diff --git a/me/cocoa/dupeguru.xcodeproj/project.pbxproj b/cocoa/me/dupeguru.xcodeproj/project.pbxproj
similarity index 86%
rename from me/cocoa/dupeguru.xcodeproj/project.pbxproj
rename to cocoa/me/dupeguru.xcodeproj/project.pbxproj
index 09fa0eb0..556e626e 100644
--- a/me/cocoa/dupeguru.xcodeproj/project.pbxproj
+++ b/cocoa/me/dupeguru.xcodeproj/project.pbxproj
@@ -82,61 +82,61 @@
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; };
- CE073F5409CAE1A3005C1D2F /* dupeguru_me_help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dupeguru_me_help; path = help/dupeguru_me_help; sourceTree = ""; };
+ CE073F5409CAE1A3005C1D2F /* dupeguru_me_help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dupeguru_me_help; path = ../../help_me/dupeguru_me_help; sourceTree = ""; };
CE1425880AFB718500BD5167 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; 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; };
CE381CF509915304003581CE /* dg_cocoa.plugin */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dg_cocoa.plugin; path = py/dist/dg_cocoa.plugin; sourceTree = SOURCE_ROOT; };
- CE3FBDD11094637800B72D77 /* DetailsPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DetailsPanel.xib; sourceTree = ""; };
- CE3FBDD21094637800B72D77 /* DirectoryPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DirectoryPanel.xib; sourceTree = ""; };
- CE49DEF20FDFEB810098617B /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; };
- CE49DEF30FDFEB810098617B /* BRSingleLineFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BRSingleLineFormatter.m; path = cocoalib/brsinglelineformatter/BRSingleLineFormatter.m; sourceTree = SOURCE_ROOT; };
- CE515DE00FC6C12E00EC695D /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
- CE515DE10FC6C12E00EC695D /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
- CE515DE20FC6C12E00EC695D /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
- CE515DE30FC6C12E00EC695D /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
- CE515DE40FC6C12E00EC695D /* Outline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Outline.h; path = cocoalib/Outline.h; sourceTree = SOURCE_ROOT; };
- CE515DE50FC6C12E00EC695D /* Outline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Outline.m; path = cocoalib/Outline.m; sourceTree = SOURCE_ROOT; };
- CE515DE60FC6C12E00EC695D /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
- CE515DE70FC6C12E00EC695D /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
- CE515DE80FC6C12E00EC695D /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
- CE515DE90FC6C12E00EC695D /* RecentDirectories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecentDirectories.h; path = cocoalib/RecentDirectories.h; sourceTree = SOURCE_ROOT; };
- CE515DEA0FC6C12E00EC695D /* RecentDirectories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RecentDirectories.m; path = cocoalib/RecentDirectories.m; sourceTree = SOURCE_ROOT; };
- CE515DEB0FC6C12E00EC695D /* RegistrationInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegistrationInterface.h; path = cocoalib/RegistrationInterface.h; sourceTree = SOURCE_ROOT; };
- CE515DEC0FC6C12E00EC695D /* RegistrationInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RegistrationInterface.m; path = cocoalib/RegistrationInterface.m; sourceTree = SOURCE_ROOT; };
- CE515DED0FC6C12E00EC695D /* Table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Table.h; path = cocoalib/Table.h; sourceTree = SOURCE_ROOT; };
- CE515DEE0FC6C12E00EC695D /* Table.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Table.m; path = cocoalib/Table.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; };
- CE515DFD0FC6C13E00EC695D /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = cocoalib/English.lproj/ErrorReportWindow.xib; sourceTree = ""; };
- CE515DFF0FC6C13E00EC695D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = cocoalib/English.lproj/progress.nib; sourceTree = ""; };
- CE515E010FC6C13E00EC695D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = cocoalib/English.lproj/registration.nib; sourceTree = ""; };
- CE515E150FC6C19300EC695D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = dgbase/AppDelegate.h; sourceTree = SOURCE_ROOT; };
- CE515E160FC6C19300EC695D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = dgbase/AppDelegate.m; sourceTree = SOURCE_ROOT; };
- CE515E170FC6C19300EC695D /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = dgbase/Consts.h; sourceTree = SOURCE_ROOT; };
- CE515E180FC6C19300EC695D /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = dgbase/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
- CE515E190FC6C19300EC695D /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = dgbase/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
- CE515E1A0FC6C19300EC695D /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = dgbase/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
- CE515E1B0FC6C19300EC695D /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = dgbase/ResultWindow.h; sourceTree = SOURCE_ROOT; };
- CE515E1C0FC6C19300EC695D /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = dgbase/ResultWindow.m; sourceTree = SOURCE_ROOT; };
- CE6032BE0FE6784C007E33FF /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = dgbase/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
- CE6032BF0FE6784C007E33FF /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = dgbase/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
+ CE3FBDD11094637800B72D77 /* DetailsPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DetailsPanel.xib; path = ../../base/xib/DetailsPanel.xib; sourceTree = ""; };
+ CE3FBDD21094637800B72D77 /* DirectoryPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DirectoryPanel.xib; path = ../../base/xib/DirectoryPanel.xib; sourceTree = ""; };
+ CE49DEF20FDFEB810098617B /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; };
+ CE49DEF30FDFEB810098617B /* BRSingleLineFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BRSingleLineFormatter.m; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.m; sourceTree = SOURCE_ROOT; };
+ CE515DE00FC6C12E00EC695D /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
+ CE515DE10FC6C12E00EC695D /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
+ CE515DE20FC6C12E00EC695D /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = ../../cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
+ CE515DE30FC6C12E00EC695D /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = ../../cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
+ CE515DE40FC6C12E00EC695D /* Outline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Outline.h; path = ../../cocoalib/Outline.h; sourceTree = SOURCE_ROOT; };
+ CE515DE50FC6C12E00EC695D /* Outline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Outline.m; path = ../../cocoalib/Outline.m; sourceTree = SOURCE_ROOT; };
+ CE515DE60FC6C12E00EC695D /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
+ CE515DE70FC6C12E00EC695D /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
+ CE515DE80FC6C12E00EC695D /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = ../../cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
+ CE515DE90FC6C12E00EC695D /* RecentDirectories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecentDirectories.h; path = ../../cocoalib/RecentDirectories.h; sourceTree = SOURCE_ROOT; };
+ CE515DEA0FC6C12E00EC695D /* RecentDirectories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RecentDirectories.m; path = ../../cocoalib/RecentDirectories.m; sourceTree = SOURCE_ROOT; };
+ CE515DEB0FC6C12E00EC695D /* RegistrationInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegistrationInterface.h; path = ../../cocoalib/RegistrationInterface.h; sourceTree = SOURCE_ROOT; };
+ CE515DEC0FC6C12E00EC695D /* RegistrationInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RegistrationInterface.m; path = ../../cocoalib/RegistrationInterface.m; sourceTree = SOURCE_ROOT; };
+ CE515DED0FC6C12E00EC695D /* Table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Table.h; path = ../../cocoalib/Table.h; sourceTree = SOURCE_ROOT; };
+ CE515DEE0FC6C12E00EC695D /* Table.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Table.m; path = ../../cocoalib/Table.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; };
+ CE515DFD0FC6C13E00EC695D /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = ../../cocoalib/English.lproj/ErrorReportWindow.xib; sourceTree = ""; };
+ CE515DFF0FC6C13E00EC695D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = ../../cocoalib/English.lproj/progress.nib; sourceTree = ""; };
+ CE515E010FC6C13E00EC695D /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = ../../cocoalib/English.lproj/registration.nib; sourceTree = ""; };
+ 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; };
+ CE515E1A0FC6C19300EC695D /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = ../base/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
+ CE515E1B0FC6C19300EC695D /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
+ CE515E1C0FC6C19300EC695D /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
+ 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 = dgbase/dsa_pub.pem; sourceTree = ""; };
+ CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; };
CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = ""; };
- CE900AD1109B238600754048 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Preferences.xib; path = ../../xib/Preferences.xib; sourceTree = ""; };
- CE900AD6109B2A9B00754048 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = ""; };
+ CE900AD1109B238600754048 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Preferences.xib; sourceTree = ""; };
+ CE900AD6109B2A9B00754048 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = ../../base/xib/MainMenu.xib; sourceTree = ""; };
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 = ""; };
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; };
- CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = images/folder32.png; sourceTree = SOURCE_ROOT; };
- CEFC295309C89FF200D9F998 /* details32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = details32.png; path = images/details32.png; sourceTree = SOURCE_ROOT; };
- CEFC295409C89FF200D9F998 /* preferences32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = preferences32.png; path = images/preferences32.png; sourceTree = SOURCE_ROOT; };
+ CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; };
+ CEFC295309C89FF200D9F998 /* details32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = details32.png; path = ../../images/details32.png; sourceTree = SOURCE_ROOT; };
+ CEFC295409C89FF200D9F998 /* preferences32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = preferences32.png; path = ../../images/preferences32.png; sourceTree = SOURCE_ROOT; };
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
@@ -250,8 +250,7 @@
CE3FBDD21094637800B72D77 /* DirectoryPanel.xib */,
CE900AD1109B238600754048 /* Preferences.xib */,
);
- name = xib;
- path = dgbase/xib;
+ path = xib;
sourceTree = "";
};
CE49DEF10FDFEB810098617B /* brsinglelineformatter */ = {
@@ -261,7 +260,7 @@
CE49DEF30FDFEB810098617B /* BRSingleLineFormatter.m */,
);
name = brsinglelineformatter;
- path = cocoalib/brsinglelineformatter;
+ path = ../../cocoalib/brsinglelineformatter;
sourceTree = SOURCE_ROOT;
};
CE515DDD0FC6C09400EC695D /* cocoalib */ = {
@@ -445,11 +444,6 @@
C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
- FRAMEWORK_SEARCH_PATHS = (
- "$(FRAMEWORK_SEARCH_PATHS)",
- "$(SRCROOT)/../../../cocoalib/build/Release",
- "\"$(SRCROOT)/../../base/cocoa/build/Release\"",
- );
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = G5;
INFOPLIST_FILE = Info.plist;
diff --git a/cocoa/me/gen.py b/cocoa/me/gen.py
new file mode 100644
index 00000000..bd69f84e
--- /dev/null
+++ b/cocoa/me/gen.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
+#
+# This software is licensed under the "HS" 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/hs_license
+
+import os.path as op
+import os
+import shutil
+from optparse import OptionParser
+
+def main(dev):
+ if not dev:
+ print "Building help index"
+ help_path = op.abspath('../../help_me/dupeguru_me_help')
+ os.system('open /Developer/Applications/Utilities/Help\\ Indexer.app --args {0}'.format(help_path))
+
+ print "Building dg_cocoa.plugin"
+ if op.exists('py/build'):
+ shutil.rmtree('py/build')
+ if op.exists('py/dist'):
+ shutil.rmtree('py/dist')
+
+ os.chdir('py')
+ if dev:
+ os.system('python -u setup.py py2app -A')
+ else:
+ os.system('python -u setup.py py2app')
+ os.chdir('..')
+
+ print "Building the XCode project"
+ os.system('xcodebuild')
+
+if __name__ == '__main__':
+ usage = "usage: %prog [options]"
+ parser = OptionParser(usage=usage)
+ parser.add_option('--dev', action='store_true', dest='dev', default=False,
+ help="If this flag is set, will configure for dev builds.")
+ (options, args) = parser.parse_args()
+ main(options.dev)
\ No newline at end of file
diff --git a/me/cocoa/main.m b/cocoa/me/main.m
similarity index 100%
rename from me/cocoa/main.m
rename to cocoa/me/main.m
diff --git a/me/cocoa/py/dg_cocoa.py b/cocoa/me/py/dg_cocoa.py
similarity index 100%
rename from me/cocoa/py/dg_cocoa.py
rename to cocoa/me/py/dg_cocoa.py
diff --git a/me/cocoa/py/setup.py b/cocoa/me/py/setup.py
similarity index 63%
rename from me/cocoa/py/setup.py
rename to cocoa/me/py/setup.py
index c589447a..d6bd60b9 100644
--- a/me/cocoa/py/setup.py
+++ b/cocoa/me/py/setup.py
@@ -4,15 +4,13 @@
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/hs_license
+import os.path as op
+import sys
+sys.path.insert(0, op.abspath('../../..')) # for all cross-toolkit modules
+
from distutils.core import setup
import py2app
-from hsutil.build import move_testdata_out, put_testdata_back
-
-move_log = move_testdata_out()
-try:
- setup(
- plugin = ['dg_cocoa.py'],
- )
-finally:
- put_testdata_back(move_log)
+setup(
+ plugin = ['dg_cocoa.py'],
+)
diff --git a/me/cocoa/xib/Preferences.xib b/cocoa/me/xib/Preferences.xib
similarity index 100%
rename from me/cocoa/xib/Preferences.xib
rename to cocoa/me/xib/Preferences.xib
diff --git a/se/cocoa/AppDelegate.h b/cocoa/pe/AppDelegate.h
similarity index 94%
rename from se/cocoa/AppDelegate.h
rename to cocoa/pe/AppDelegate.h
index 602b6038..cf95800b 100644
--- a/se/cocoa/AppDelegate.h
+++ b/cocoa/pe/AppDelegate.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/AppDelegate.h"
+#import "../base/AppDelegate.h"
#import "DirectoryPanel.h"
#import "PyDupeGuru.h"
diff --git a/pe/cocoa/AppDelegate.m b/cocoa/pe/AppDelegate.m
similarity index 100%
rename from pe/cocoa/AppDelegate.m
rename to cocoa/pe/AppDelegate.m
diff --git a/pe/cocoa/Consts.h b/cocoa/pe/Consts.h
similarity index 93%
rename from pe/cocoa/Consts.h
rename to cocoa/pe/Consts.h
index badc3600..fdeba4d1 100644
--- a/pe/cocoa/Consts.h
+++ b/cocoa/pe/Consts.h
@@ -6,7 +6,7 @@ which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/hs_license
*/
-#import "dgbase/Consts.h"
+#import "../base/Consts.h"
#define APPNAME @"dupeGuru PE"
#define ImageLoadedNotification @"ImageLoadedNotification"
diff --git a/pe/cocoa/DetailsPanel.h b/cocoa/pe/DetailsPanel.h
similarity index 94%
rename from pe/cocoa/DetailsPanel.h
rename to cocoa/pe/DetailsPanel.h
index 7f43535f..81109c75 100644
--- a/pe/cocoa/DetailsPanel.h
+++ b/cocoa/pe/DetailsPanel.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/DetailsPanel.h"
+#import "../base/DetailsPanel.h"
@interface DetailsPanel : DetailsPanelBase
{
diff --git a/pe/cocoa/DetailsPanel.m b/cocoa/pe/DetailsPanel.m
similarity index 100%
rename from pe/cocoa/DetailsPanel.m
rename to cocoa/pe/DetailsPanel.m
diff --git a/pe/cocoa/DirectoryPanel.h b/cocoa/pe/DirectoryPanel.h
similarity index 91%
rename from pe/cocoa/DirectoryPanel.h
rename to cocoa/pe/DirectoryPanel.h
index c57b8140..90a7b7df 100644
--- a/pe/cocoa/DirectoryPanel.h
+++ b/cocoa/pe/DirectoryPanel.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/DirectoryPanel.h"
+#import "../base/DirectoryPanel.h"
@interface DirectoryPanel : DirectoryPanelBase
{
diff --git a/pe/cocoa/DirectoryPanel.m b/cocoa/pe/DirectoryPanel.m
similarity index 100%
rename from pe/cocoa/DirectoryPanel.m
rename to cocoa/pe/DirectoryPanel.m
diff --git a/pe/cocoa/Info.plist b/cocoa/pe/Info.plist
similarity index 100%
rename from pe/cocoa/Info.plist
rename to cocoa/pe/Info.plist
diff --git a/pe/cocoa/PictureBlocks.h b/cocoa/pe/PictureBlocks.h
similarity index 100%
rename from pe/cocoa/PictureBlocks.h
rename to cocoa/pe/PictureBlocks.h
diff --git a/pe/cocoa/PictureBlocks.m b/cocoa/pe/PictureBlocks.m
similarity index 100%
rename from pe/cocoa/PictureBlocks.m
rename to cocoa/pe/PictureBlocks.m
diff --git a/pe/cocoa/PyDupeGuru.h b/cocoa/pe/PyDupeGuru.h
similarity index 94%
rename from pe/cocoa/PyDupeGuru.h
rename to cocoa/pe/PyDupeGuru.h
index 89191538..180875d4 100644
--- a/pe/cocoa/PyDupeGuru.h
+++ b/cocoa/pe/PyDupeGuru.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/PyDupeGuru.h"
+#import "../base/PyDupeGuru.h"
@interface PyDupeGuru : PyDupeGuruBase
- (void)clearPictureCache;
diff --git a/pe/cocoa/ResultWindow.h b/cocoa/pe/ResultWindow.h
similarity index 97%
rename from pe/cocoa/ResultWindow.h
rename to cocoa/pe/ResultWindow.h
index 06769641..f93b2cc9 100644
--- a/pe/cocoa/ResultWindow.h
+++ b/cocoa/pe/ResultWindow.h
@@ -8,7 +8,7 @@ http://www.hardcoded.net/licenses/hs_license
#import
#import "Outline.h"
-#import "dgbase/ResultWindow.h"
+#import "../base/ResultWindow.h"
@interface ResultWindow : ResultWindowBase
{
diff --git a/pe/cocoa/ResultWindow.m b/cocoa/pe/ResultWindow.m
similarity index 100%
rename from pe/cocoa/ResultWindow.m
rename to cocoa/pe/ResultWindow.m
diff --git a/pe/cocoa/dupeguru.icns b/cocoa/pe/dupeguru.icns
similarity index 100%
rename from pe/cocoa/dupeguru.icns
rename to cocoa/pe/dupeguru.icns
diff --git a/pe/cocoa/dupeguru.xcodeproj/project.pbxproj b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj
similarity index 86%
rename from pe/cocoa/dupeguru.xcodeproj/project.pbxproj
rename to cocoa/pe/dupeguru.xcodeproj/project.pbxproj
index b3f8cf4a..2c7ea589 100644
--- a/pe/cocoa/dupeguru.xcodeproj/project.pbxproj
+++ b/cocoa/pe/dupeguru.xcodeproj/project.pbxproj
@@ -74,9 +74,9 @@
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; };
- CE031750109B340A00517EE6 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Preferences.xib; path = ../../xib/Preferences.xib; sourceTree = ""; };
- CE031753109B345200517EE6 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = ""; };
- CE073F5409CAE1A3005C1D2F /* dupeguru_pe_help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dupeguru_pe_help; path = help/dupeguru_pe_help; sourceTree = SOURCE_ROOT; };
+ CE031750109B340A00517EE6 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Preferences.xib; sourceTree = ""; };
+ CE031753109B345200517EE6 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = ../../base/xib/MainMenu.xib; sourceTree = ""; };
+ CE073F5409CAE1A3005C1D2F /* dupeguru_pe_help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dupeguru_pe_help; path = ../../help_pe/dupeguru_pe_help; sourceTree = SOURCE_ROOT; };
CE0C46A80FA0647E000BE99B /* PictureBlocks.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PictureBlocks.h; sourceTree = ""; };
CE0C46A90FA0647E000BE99B /* PictureBlocks.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PictureBlocks.m; sourceTree = ""; };
CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = ""; };
@@ -85,57 +85,57 @@
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
CE381CF509915304003581CE /* dg_cocoa.plugin */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dg_cocoa.plugin; path = py/dist/dg_cocoa.plugin; sourceTree = SOURCE_ROOT; };
- CE6044EA0FE6796200B71262 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = dgbase/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
- CE6044EB0FE6796200B71262 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = dgbase/DetailsPanel.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; };
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 = dgbase/dsa_pub.pem; sourceTree = ""; };
- CE77C89C10946C6D0078B0DB /* DirectoryPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DirectoryPanel.xib; sourceTree = ""; };
- CE77C8A710946CE20078B0DB /* DetailsPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DetailsPanel.xib; path = ../../xib/DetailsPanel.xib; sourceTree = ""; };
- CE80DB1B0FC192D60086DCA6 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
- CE80DB1C0FC192D60086DCA6 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
- CE80DB1D0FC192D60086DCA6 /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
- CE80DB1E0FC192D60086DCA6 /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
- CE80DB1F0FC192D60086DCA6 /* Outline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Outline.h; path = cocoalib/Outline.h; sourceTree = SOURCE_ROOT; };
- CE80DB200FC192D60086DCA6 /* Outline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Outline.m; path = cocoalib/Outline.m; sourceTree = SOURCE_ROOT; };
- CE80DB210FC192D60086DCA6 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
- CE80DB220FC192D60086DCA6 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
- CE80DB230FC192D60086DCA6 /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
- CE80DB240FC192D60086DCA6 /* RecentDirectories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecentDirectories.h; path = cocoalib/RecentDirectories.h; sourceTree = SOURCE_ROOT; };
- CE80DB250FC192D60086DCA6 /* RecentDirectories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RecentDirectories.m; path = cocoalib/RecentDirectories.m; sourceTree = SOURCE_ROOT; };
- CE80DB260FC192D60086DCA6 /* RegistrationInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegistrationInterface.h; path = cocoalib/RegistrationInterface.h; sourceTree = SOURCE_ROOT; };
- CE80DB270FC192D60086DCA6 /* RegistrationInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RegistrationInterface.m; path = cocoalib/RegistrationInterface.m; sourceTree = SOURCE_ROOT; };
- CE80DB280FC192D60086DCA6 /* Table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Table.h; path = cocoalib/Table.h; sourceTree = SOURCE_ROOT; };
- CE80DB290FC192D60086DCA6 /* Table.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Table.m; path = cocoalib/Table.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; };
- CE80DB710FC194760086DCA6 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = cocoalib/English.lproj/ErrorReportWindow.xib; sourceTree = SOURCE_ROOT; };
- CE80DB730FC194760086DCA6 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = cocoalib/English.lproj/progress.nib; sourceTree = SOURCE_ROOT; };
- CE80DB750FC194760086DCA6 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = cocoalib/English.lproj/registration.nib; sourceTree = SOURCE_ROOT; };
- CE80DB820FC1951C0086DCA6 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = dgbase/AppDelegate.h; sourceTree = SOURCE_ROOT; };
- CE80DB830FC1951C0086DCA6 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = dgbase/AppDelegate.m; sourceTree = SOURCE_ROOT; };
- CE80DB840FC1951C0086DCA6 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = dgbase/Consts.h; sourceTree = SOURCE_ROOT; };
- CE80DB850FC1951C0086DCA6 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = dgbase/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
- CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = dgbase/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
- CE80DB870FC1951C0086DCA6 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = dgbase/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
- CE80DB880FC1951C0086DCA6 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = dgbase/ResultWindow.h; sourceTree = SOURCE_ROOT; };
- CE80DB890FC1951C0086DCA6 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = dgbase/ResultWindow.m; sourceTree = SOURCE_ROOT; };
+ CE6E0F3C1054EC62008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; };
+ CE77C89C10946C6D0078B0DB /* DirectoryPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DirectoryPanel.xib; path = ../../base/xib/DirectoryPanel.xib; sourceTree = ""; };
+ CE77C8A710946CE20078B0DB /* DetailsPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = DetailsPanel.xib; sourceTree = ""; };
+ CE80DB1B0FC192D60086DCA6 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
+ CE80DB1C0FC192D60086DCA6 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
+ CE80DB1D0FC192D60086DCA6 /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = ../../cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
+ CE80DB1E0FC192D60086DCA6 /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = ../../cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
+ CE80DB1F0FC192D60086DCA6 /* Outline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Outline.h; path = ../../cocoalib/Outline.h; sourceTree = SOURCE_ROOT; };
+ CE80DB200FC192D60086DCA6 /* Outline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Outline.m; path = ../../cocoalib/Outline.m; sourceTree = SOURCE_ROOT; };
+ CE80DB210FC192D60086DCA6 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
+ CE80DB220FC192D60086DCA6 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
+ CE80DB230FC192D60086DCA6 /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = ../../cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
+ CE80DB240FC192D60086DCA6 /* RecentDirectories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecentDirectories.h; path = ../../cocoalib/RecentDirectories.h; sourceTree = SOURCE_ROOT; };
+ CE80DB250FC192D60086DCA6 /* RecentDirectories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RecentDirectories.m; path = ../../cocoalib/RecentDirectories.m; sourceTree = SOURCE_ROOT; };
+ CE80DB260FC192D60086DCA6 /* RegistrationInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegistrationInterface.h; path = ../../cocoalib/RegistrationInterface.h; sourceTree = SOURCE_ROOT; };
+ CE80DB270FC192D60086DCA6 /* RegistrationInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RegistrationInterface.m; path = ../../cocoalib/RegistrationInterface.m; sourceTree = SOURCE_ROOT; };
+ CE80DB280FC192D60086DCA6 /* Table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Table.h; path = ../../cocoalib/Table.h; sourceTree = SOURCE_ROOT; };
+ CE80DB290FC192D60086DCA6 /* Table.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Table.m; path = ../../cocoalib/Table.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; };
+ CE80DB710FC194760086DCA6 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = ../../cocoalib/English.lproj/ErrorReportWindow.xib; sourceTree = SOURCE_ROOT; };
+ CE80DB730FC194760086DCA6 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = ../../cocoalib/English.lproj/progress.nib; sourceTree = SOURCE_ROOT; };
+ CE80DB750FC194760086DCA6 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = ../../cocoalib/English.lproj/registration.nib; 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; };
+ CE80DB870FC1951C0086DCA6 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = ../base/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
+ CE80DB880FC1951C0086DCA6 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
+ CE80DB890FC1951C0086DCA6 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = ""; };
- CEBAE4230FDA97E000B7887D /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; };
- CEBAE4240FDA97E000B7887D /* BRSingleLineFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BRSingleLineFormatter.m; path = cocoalib/brsinglelineformatter/BRSingleLineFormatter.m; sourceTree = SOURCE_ROOT; };
+ CEBAE4230FDA97E000B7887D /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; };
+ CEBAE4240FDA97E000B7887D /* BRSingleLineFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BRSingleLineFormatter.m; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.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 = ""; };
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; };
- CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = images/folder32.png; sourceTree = SOURCE_ROOT; };
- CEFC295309C89FF200D9F998 /* details32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = details32.png; path = images/details32.png; sourceTree = SOURCE_ROOT; };
- CEFC295409C89FF200D9F998 /* preferences32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = preferences32.png; path = images/preferences32.png; sourceTree = SOURCE_ROOT; };
- CEFCDE2C0AB0418600C33A93 /* dgpe_logo_32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dgpe_logo_32.png; path = images/dgpe_logo_32.png; sourceTree = SOURCE_ROOT; };
+ CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; };
+ CEFC295309C89FF200D9F998 /* details32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = details32.png; path = ../../images/details32.png; sourceTree = SOURCE_ROOT; };
+ CEFC295409C89FF200D9F998 /* preferences32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = preferences32.png; path = ../../images/preferences32.png; sourceTree = SOURCE_ROOT; };
+ CEFCDE2C0AB0418600C33A93 /* dgpe_logo_32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = dgpe_logo_32.png; path = ../../images/dgpe_logo_32.png; sourceTree = SOURCE_ROOT; };
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
@@ -251,8 +251,7 @@
CE77C89C10946C6D0078B0DB /* DirectoryPanel.xib */,
CE031750109B340A00517EE6 /* Preferences.xib */,
);
- name = xib;
- path = dgbase/xib;
+ path = xib;
sourceTree = "";
};
CE80DB1A0FC192AB0086DCA6 /* cocoalib */ = {
@@ -313,7 +312,7 @@
CEBAE4240FDA97E000B7887D /* BRSingleLineFormatter.m */,
);
name = brsinglelineformatter;
- path = cocoalib/brsinglelineformatter;
+ path = ../../cocoalib/brsinglelineformatter;
sourceTree = SOURCE_ROOT;
};
CEFC294309C89E0000D9F998 /* images */ = {
diff --git a/cocoa/pe/gen.py b/cocoa/pe/gen.py
new file mode 100644
index 00000000..4176197d
--- /dev/null
+++ b/cocoa/pe/gen.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
+#
+# This software is licensed under the "HS" 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/hs_license
+
+import os.path as op
+import os
+import shutil
+from optparse import OptionParser
+
+def main(dev):
+ if not dev:
+ print "Building help index"
+ help_path = op.abspath('../../help_pe/dupeguru_pe_help')
+ os.system('open /Developer/Applications/Utilities/Help\\ Indexer.app --args {0}'.format(help_path))
+
+ print "Building dg_cocoa.plugin"
+ if op.exists('py/build'):
+ shutil.rmtree('py/build')
+ if op.exists('py/dist'):
+ shutil.rmtree('py/dist')
+
+ os.chdir('py')
+ if dev:
+ os.system('python -u setup.py py2app -A')
+ else:
+ os.system('python -u setup.py py2app')
+ os.chdir('..')
+
+ print "Building the XCode project"
+ os.system('xcodebuild')
+
+if __name__ == '__main__':
+ usage = "usage: %prog [options]"
+ parser = OptionParser(usage=usage)
+ parser.add_option('--dev', action='store_true', dest='dev', default=False,
+ help="If this flag is set, will configure for dev builds.")
+ (options, args) = parser.parse_args()
+ main(options.dev)
\ No newline at end of file
diff --git a/pe/cocoa/main.m b/cocoa/pe/main.m
similarity index 100%
rename from pe/cocoa/main.m
rename to cocoa/pe/main.m
diff --git a/pe/cocoa/py/dg_cocoa.py b/cocoa/pe/py/dg_cocoa.py
similarity index 100%
rename from pe/cocoa/py/dg_cocoa.py
rename to cocoa/pe/py/dg_cocoa.py
diff --git a/pe/cocoa/py/setup.py b/cocoa/pe/py/setup.py
similarity index 63%
rename from pe/cocoa/py/setup.py
rename to cocoa/pe/py/setup.py
index c589447a..06434ffb 100644
--- a/pe/cocoa/py/setup.py
+++ b/cocoa/pe/py/setup.py
@@ -7,12 +7,6 @@
from distutils.core import setup
import py2app
-from hsutil.build import move_testdata_out, put_testdata_back
-
-move_log = move_testdata_out()
-try:
- setup(
- plugin = ['dg_cocoa.py'],
- )
-finally:
- put_testdata_back(move_log)
+setup(
+ plugin = ['dg_cocoa.py'],
+)
\ No newline at end of file
diff --git a/pe/cocoa/xib/DetailsPanel.xib b/cocoa/pe/xib/DetailsPanel.xib
similarity index 100%
rename from pe/cocoa/xib/DetailsPanel.xib
rename to cocoa/pe/xib/DetailsPanel.xib
diff --git a/pe/cocoa/xib/Preferences.xib b/cocoa/pe/xib/Preferences.xib
similarity index 100%
rename from pe/cocoa/xib/Preferences.xib
rename to cocoa/pe/xib/Preferences.xib
diff --git a/pe/cocoa/AppDelegate.h b/cocoa/se/AppDelegate.h
similarity index 94%
rename from pe/cocoa/AppDelegate.h
rename to cocoa/se/AppDelegate.h
index 602b6038..cf95800b 100644
--- a/pe/cocoa/AppDelegate.h
+++ b/cocoa/se/AppDelegate.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/AppDelegate.h"
+#import "../base/AppDelegate.h"
#import "DirectoryPanel.h"
#import "PyDupeGuru.h"
diff --git a/se/cocoa/AppDelegate.m b/cocoa/se/AppDelegate.m
similarity index 95%
rename from se/cocoa/AppDelegate.m
rename to cocoa/se/AppDelegate.m
index d3ecb58e..7ddcdd89 100644
--- a/se/cocoa/AppDelegate.m
+++ b/cocoa/se/AppDelegate.m
@@ -7,10 +7,10 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import "AppDelegate.h"
-#import "cocoalib/ProgressController.h"
-#import "cocoalib/RegistrationInterface.h"
-#import "cocoalib/Utils.h"
-#import "cocoalib/ValueTransformers.h"
+#import "../../cocoalib/ProgressController.h"
+#import "../../cocoalib/RegistrationInterface.h"
+#import "../../cocoalib/Utils.h"
+#import "../../cocoalib/ValueTransformers.h"
#import "DetailsPanel.h"
#import "Consts.h"
diff --git a/se/cocoa/Consts.h b/cocoa/se/Consts.h
similarity index 83%
rename from se/cocoa/Consts.h
rename to cocoa/se/Consts.h
index aaff95ae..b5048810 100644
--- a/se/cocoa/Consts.h
+++ b/cocoa/se/Consts.h
@@ -6,6 +6,6 @@ which should be included with this package. The terms are also available at
http://www.hardcoded.net/licenses/hs_license
*/
-#import "dgbase/Consts.h"
+#import "../base/Consts.h"
#define APPNAME @"dupeGuru"
\ No newline at end of file
diff --git a/se/cocoa/DetailsPanel.h b/cocoa/se/DetailsPanel.h
similarity index 90%
rename from se/cocoa/DetailsPanel.h
rename to cocoa/se/DetailsPanel.h
index 9fad6e39..f7c26c86 100644
--- a/se/cocoa/DetailsPanel.h
+++ b/cocoa/se/DetailsPanel.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/DetailsPanel.h"
+#import "../base/DetailsPanel.h"
@interface DetailsPanel : DetailsPanelBase
@end
\ No newline at end of file
diff --git a/se/cocoa/DetailsPanel.m b/cocoa/se/DetailsPanel.m
similarity index 100%
rename from se/cocoa/DetailsPanel.m
rename to cocoa/se/DetailsPanel.m
diff --git a/se/cocoa/DirectoryPanel.h b/cocoa/se/DirectoryPanel.h
similarity index 91%
rename from se/cocoa/DirectoryPanel.h
rename to cocoa/se/DirectoryPanel.h
index dafdec92..f9f44d38 100644
--- a/se/cocoa/DirectoryPanel.h
+++ b/cocoa/se/DirectoryPanel.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/DirectoryPanel.h"
+#import "../base/DirectoryPanel.h"
@interface DirectoryPanel : DirectoryPanelBase
{
diff --git a/se/cocoa/DirectoryPanel.m b/cocoa/se/DirectoryPanel.m
similarity index 100%
rename from se/cocoa/DirectoryPanel.m
rename to cocoa/se/DirectoryPanel.m
diff --git a/se/cocoa/Info.plist b/cocoa/se/Info.plist
similarity index 100%
rename from se/cocoa/Info.plist
rename to cocoa/se/Info.plist
diff --git a/se/cocoa/PyDupeGuru.h b/cocoa/se/PyDupeGuru.h
similarity index 94%
rename from se/cocoa/PyDupeGuru.h
rename to cocoa/se/PyDupeGuru.h
index d5cc454c..ac911aae 100644
--- a/se/cocoa/PyDupeGuru.h
+++ b/cocoa/se/PyDupeGuru.h
@@ -7,7 +7,7 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "dgbase/PyDupeGuru.h"
+#import "../base/PyDupeGuru.h"
@interface PyDupeGuru : PyDupeGuruBase
//Scanning options
diff --git a/se/cocoa/ResultWindow.h b/cocoa/se/ResultWindow.h
similarity index 94%
rename from se/cocoa/ResultWindow.h
rename to cocoa/se/ResultWindow.h
index 86ec8305..7e6e7dfb 100644
--- a/se/cocoa/ResultWindow.h
+++ b/cocoa/se/ResultWindow.h
@@ -7,8 +7,8 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import
-#import "cocoalib/Outline.h"
-#import "dgbase/ResultWindow.h"
+#import "../../cocoalib/Outline.h"
+#import "../base/ResultWindow.h"
#import "DirectoryPanel.h"
@interface ResultWindow : ResultWindowBase
diff --git a/se/cocoa/ResultWindow.m b/cocoa/se/ResultWindow.m
similarity index 98%
rename from se/cocoa/ResultWindow.m
rename to cocoa/se/ResultWindow.m
index 942f4291..41e2779d 100644
--- a/se/cocoa/ResultWindow.m
+++ b/cocoa/se/ResultWindow.m
@@ -7,9 +7,9 @@ http://www.hardcoded.net/licenses/hs_license
*/
#import "ResultWindow.h"
-#import "cocoalib/Dialogs.h"
-#import "cocoalib/ProgressController.h"
-#import "cocoalib/Utils.h"
+#import "../../cocoalib/Dialogs.h"
+#import "../../cocoalib/ProgressController.h"
+#import "../../cocoalib/Utils.h"
#import "AppDelegate.h"
#import "Consts.h"
diff --git a/se/cocoa/dupeguru.icns b/cocoa/se/dupeguru.icns
similarity index 100%
rename from se/cocoa/dupeguru.icns
rename to cocoa/se/dupeguru.icns
diff --git a/se/cocoa/dupeguru.xcodeproj/project.pbxproj b/cocoa/se/dupeguru.xcodeproj/project.pbxproj
similarity index 87%
rename from se/cocoa/dupeguru.xcodeproj/project.pbxproj
rename to cocoa/se/dupeguru.xcodeproj/project.pbxproj
index de0d842d..63b20181 100644
--- a/se/cocoa/dupeguru.xcodeproj/project.pbxproj
+++ b/cocoa/se/dupeguru.xcodeproj/project.pbxproj
@@ -70,62 +70,62 @@
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; };
- CE073F5409CAE1A3005C1D2F /* dupeguru_help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dupeguru_help; path = help/dupeguru_help; sourceTree = ""; };
+ CE073F5409CAE1A3005C1D2F /* dupeguru_help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dupeguru_help; path = ../../help_se/dupeguru_help; 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; };
CE381CF509915304003581CE /* dg_cocoa.plugin */ = {isa = PBXFileReference; lastKnownFileType = folder; name = dg_cocoa.plugin; path = py/dist/dg_cocoa.plugin; sourceTree = SOURCE_ROOT; };
- CE3A46F9109B212E002ABFD5 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = dgbase/xib/MainMenu.xib; sourceTree = ""; };
+ CE3A46F9109B212E002ABFD5 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = ../base/xib/MainMenu.xib; sourceTree = ""; };
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; 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; };
- CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = dgbase/dsa_pub.pem; sourceTree = ""; };
+ CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = ""; };
CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = ""; };
CEAC6810109B0B7E00B43C85 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Preferences.xib; path = xib/Preferences.xib; sourceTree = ""; };
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 = ""; };
- CEDD92D60FDD01640031C7B7 /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; };
- CEDD92D70FDD01640031C7B7 /* BRSingleLineFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BRSingleLineFormatter.m; path = cocoalib/brsinglelineformatter/BRSingleLineFormatter.m; sourceTree = SOURCE_ROOT; };
- CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = dgbase/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
- CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = dgbase/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
+ CEDD92D60FDD01640031C7B7 /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; };
+ CEDD92D70FDD01640031C7B7 /* BRSingleLineFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BRSingleLineFormatter.m; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.m; sourceTree = SOURCE_ROOT; };
+ CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
+ CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = ""; };
- CEEFC0F710945D9F001F3A39 /* DirectoryPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DirectoryPanel.xib; path = dgbase/xib/DirectoryPanel.xib; sourceTree = ""; };
- CEEFC0FA10945E37001F3A39 /* DetailsPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DetailsPanel.xib; path = dgbase/xib/DetailsPanel.xib; sourceTree = ""; };
- CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = images/folder32.png; sourceTree = SOURCE_ROOT; };
- CEFC295309C89FF200D9F998 /* details32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = details32.png; path = images/details32.png; sourceTree = SOURCE_ROOT; };
- CEFC295409C89FF200D9F998 /* preferences32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = preferences32.png; path = images/preferences32.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; };
- CEFC7F8C0FC9517500CD5728 /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
- CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
- CEFC7F8E0FC9517500CD5728 /* Outline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Outline.h; path = cocoalib/Outline.h; sourceTree = SOURCE_ROOT; };
- CEFC7F8F0FC9517500CD5728 /* Outline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Outline.m; path = cocoalib/Outline.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; };
- CEFC7F920FC9517500CD5728 /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
- CEFC7F930FC9517500CD5728 /* PyRegistrable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyRegistrable.h; path = cocoalib/PyRegistrable.h; sourceTree = SOURCE_ROOT; };
- CEFC7F940FC9517500CD5728 /* RecentDirectories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecentDirectories.h; path = cocoalib/RecentDirectories.h; sourceTree = SOURCE_ROOT; };
- CEFC7F950FC9517500CD5728 /* RecentDirectories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RecentDirectories.m; path = cocoalib/RecentDirectories.m; sourceTree = SOURCE_ROOT; };
- CEFC7F960FC9517500CD5728 /* RegistrationInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegistrationInterface.h; path = cocoalib/RegistrationInterface.h; sourceTree = SOURCE_ROOT; };
- CEFC7F970FC9517500CD5728 /* RegistrationInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RegistrationInterface.m; path = cocoalib/RegistrationInterface.m; sourceTree = SOURCE_ROOT; };
- CEFC7F980FC9517500CD5728 /* Table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Table.h; path = cocoalib/Table.h; sourceTree = SOURCE_ROOT; };
- CEFC7F990FC9517500CD5728 /* Table.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Table.m; path = cocoalib/Table.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; };
- CEFC7FA80FC9518A00CD5728 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = cocoalib/English.lproj/ErrorReportWindow.xib; sourceTree = ""; };
- CEFC7FAA0FC9518A00CD5728 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = cocoalib/English.lproj/progress.nib; sourceTree = ""; };
- CEFC7FAC0FC9518A00CD5728 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = cocoalib/English.lproj/registration.nib; sourceTree = ""; };
- CEFC7FB10FC951A700CD5728 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegate.h; path = dgbase/AppDelegate.h; sourceTree = SOURCE_ROOT; };
- CEFC7FB20FC951A700CD5728 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegate.m; path = dgbase/AppDelegate.m; sourceTree = SOURCE_ROOT; };
- CEFC7FB30FC951A700CD5728 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = dgbase/Consts.h; sourceTree = SOURCE_ROOT; };
- CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = dgbase/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
- CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = dgbase/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
- CEFC7FB60FC951A700CD5728 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = dgbase/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
- CEFC7FB70FC951A700CD5728 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = dgbase/ResultWindow.h; sourceTree = SOURCE_ROOT; };
- CEFC7FB80FC951A700CD5728 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = dgbase/ResultWindow.m; sourceTree = SOURCE_ROOT; };
+ CEEFC0F710945D9F001F3A39 /* DirectoryPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DirectoryPanel.xib; path = ../base/xib/DirectoryPanel.xib; sourceTree = ""; };
+ CEEFC0FA10945E37001F3A39 /* DetailsPanel.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = DetailsPanel.xib; path = ../base/xib/DetailsPanel.xib; sourceTree = ""; };
+ CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; };
+ CEFC295309C89FF200D9F998 /* details32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = details32.png; path = ../../images/details32.png; sourceTree = SOURCE_ROOT; };
+ CEFC295409C89FF200D9F998 /* preferences32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = preferences32.png; path = ../../images/preferences32.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; };
+ CEFC7F8C0FC9517500CD5728 /* HSErrorReportWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow.h; path = ../../cocoalib/HSErrorReportWindow.h; sourceTree = SOURCE_ROOT; };
+ CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow.m; path = ../../cocoalib/HSErrorReportWindow.m; sourceTree = SOURCE_ROOT; };
+ CEFC7F8E0FC9517500CD5728 /* Outline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Outline.h; path = ../../cocoalib/Outline.h; sourceTree = SOURCE_ROOT; };
+ CEFC7F8F0FC9517500CD5728 /* Outline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Outline.m; path = ../../cocoalib/Outline.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; };
+ CEFC7F920FC9517500CD5728 /* PyApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyApp.h; path = ../../cocoalib/PyApp.h; sourceTree = SOURCE_ROOT; };
+ CEFC7F930FC9517500CD5728 /* PyRegistrable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyRegistrable.h; path = ../../cocoalib/PyRegistrable.h; sourceTree = SOURCE_ROOT; };
+ CEFC7F940FC9517500CD5728 /* RecentDirectories.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecentDirectories.h; path = ../../cocoalib/RecentDirectories.h; sourceTree = SOURCE_ROOT; };
+ CEFC7F950FC9517500CD5728 /* RecentDirectories.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RecentDirectories.m; path = ../../cocoalib/RecentDirectories.m; sourceTree = SOURCE_ROOT; };
+ CEFC7F960FC9517500CD5728 /* RegistrationInterface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RegistrationInterface.h; path = ../../cocoalib/RegistrationInterface.h; sourceTree = SOURCE_ROOT; };
+ CEFC7F970FC9517500CD5728 /* RegistrationInterface.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RegistrationInterface.m; path = ../../cocoalib/RegistrationInterface.m; sourceTree = SOURCE_ROOT; };
+ CEFC7F980FC9517500CD5728 /* Table.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Table.h; path = ../../cocoalib/Table.h; sourceTree = SOURCE_ROOT; };
+ CEFC7F990FC9517500CD5728 /* Table.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Table.m; path = ../../cocoalib/Table.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; };
+ CEFC7FA80FC9518A00CD5728 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = ../../cocoalib/English.lproj/ErrorReportWindow.xib; sourceTree = ""; };
+ CEFC7FAA0FC9518A00CD5728 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = ../../cocoalib/English.lproj/progress.nib; sourceTree = ""; };
+ CEFC7FAC0FC9518A00CD5728 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = ../../cocoalib/English.lproj/registration.nib; sourceTree = ""; };
+ 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; };
+ 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; };
+ CEFC7FB60FC951A700CD5728 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDupeGuru.h; path = ../base/PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
+ CEFC7FB70FC951A700CD5728 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
+ CEFC7FB80FC951A700CD5728 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
CEFF18A009A4D387005E6321 /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
@@ -230,7 +230,7 @@
CEDD92D70FDD01640031C7B7 /* BRSingleLineFormatter.m */,
);
name = brsinglelineformatter;
- path = cocoalib/brsinglelineformatter;
+ path = ../../cocoalib/brsinglelineformatter;
sourceTree = SOURCE_ROOT;
};
CEEFC0CA10943849001F3A39 /* xib */ = {
@@ -432,11 +432,6 @@
ppc,
i386,
);
- FRAMEWORK_SEARCH_PATHS = (
- "$(FRAMEWORK_SEARCH_PATHS)",
- "$(SRCROOT)/../../../cocoalib/build/Release",
- "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
- );
FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../base/cocoa/build/Release\"";
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
GCC_MODEL_TUNING = G5;
diff --git a/cocoa/se/gen.py b/cocoa/se/gen.py
new file mode 100644
index 00000000..d147b7ec
--- /dev/null
+++ b/cocoa/se/gen.py
@@ -0,0 +1,41 @@
+#!/usr/bin/env python
+# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
+#
+# This software is licensed under the "HS" 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/hs_license
+
+import os.path as op
+import os
+import shutil
+from optparse import OptionParser
+
+def main(dev):
+ if not dev:
+ print "Building help index"
+ help_path = op.abspath('../../help_se/dupeguru_help')
+ os.system('open /Developer/Applications/Utilities/Help\\ Indexer.app --args {0}'.format(help_path))
+
+ print "Building dg_cocoa.plugin"
+ if op.exists('py/build'):
+ shutil.rmtree('py/build')
+ if op.exists('py/dist'):
+ shutil.rmtree('py/dist')
+
+ os.chdir('py')
+ if dev:
+ os.system('python -u setup.py py2app -A')
+ else:
+ os.system('python -u setup.py py2app')
+ os.chdir('..')
+
+ print "Building the XCode project"
+ os.system('xcodebuild')
+
+if __name__ == '__main__':
+ usage = "usage: %prog [options]"
+ parser = OptionParser(usage=usage)
+ parser.add_option('--dev', action='store_true', dest='dev', default=False,
+ help="If this flag is set, will configure for dev builds.")
+ (options, args) = parser.parse_args()
+ main(options.dev)
\ No newline at end of file
diff --git a/se/cocoa/main.m b/cocoa/se/main.m
similarity index 100%
rename from se/cocoa/main.m
rename to cocoa/se/main.m
diff --git a/se/cocoa/py/dg_cocoa.py b/cocoa/se/py/dg_cocoa.py
similarity index 100%
rename from se/cocoa/py/dg_cocoa.py
rename to cocoa/se/py/dg_cocoa.py
diff --git a/se/cocoa/py/setup.py b/cocoa/se/py/setup.py
similarity index 100%
rename from se/cocoa/py/setup.py
rename to cocoa/se/py/setup.py
diff --git a/se/cocoa/xib/Preferences.xib b/cocoa/se/xib/Preferences.xib
similarity index 100%
rename from se/cocoa/xib/Preferences.xib
rename to cocoa/se/xib/Preferences.xib
diff --git a/configure.py b/configure.py
new file mode 100644
index 00000000..a9b0d381
--- /dev/null
+++ b/configure.py
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+# Created By: Virgil Dupras
+# Created On: 2009-12-30
+# $Id$
+# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
+#
+# This software is licensed under the "HS" 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/hs_license
+
+import sys
+from optparse import OptionParser
+
+import yaml
+
+def main(edition, ui, dev):
+ if edition not in ('se', 'me', 'pe'):
+ edition = 'se'
+ if ui not in ('cocoa', 'qt'):
+ ui = 'cocoa' if sys.platform == 'darwin' else 'qt'
+ build_type = 'Dev' if dev else 'Release'
+ print "Configuring dupeGuru {0} for UI {1} ({2})".format(edition.upper(), ui, build_type)
+ conf = {
+ 'edition': edition,
+ 'ui': ui,
+ 'dev': dev,
+ }
+ yaml.dump(conf, open('conf.yaml', 'w'))
+
+if __name__ == '__main__':
+ usage = "usage: %prog [options]"
+ parser = OptionParser(usage=usage)
+ parser.add_option('--edition', dest='edition',
+ help="dupeGuru edition to build (se, me or pe). Default is se.")
+ parser.add_option('--ui', dest='ui',
+ help="Type of UI to build. 'qt' or 'cocoa'. Default is determined by your system.")
+ parser.add_option('--dev', action='store_true', dest='dev', default=False,
+ help="If this flag is set, will configure for dev builds.")
+ (options, args) = parser.parse_args()
+ main(options.edition, options.ui, options.dev)
diff --git a/base/core/LICENSE b/core/LICENSE
similarity index 100%
rename from base/core/LICENSE
rename to core/LICENSE
diff --git a/base/core/__init__.py b/core/__init__.py
similarity index 100%
rename from base/core/__init__.py
rename to core/__init__.py
diff --git a/base/core/app.py b/core/app.py
similarity index 100%
rename from base/core/app.py
rename to core/app.py
diff --git a/base/core/app_cocoa.py b/core/app_cocoa.py
similarity index 100%
rename from base/core/app_cocoa.py
rename to core/app_cocoa.py
diff --git a/base/core/data.py b/core/data.py
similarity index 100%
rename from base/core/data.py
rename to core/data.py
diff --git a/base/core/directories.py b/core/directories.py
similarity index 100%
rename from base/core/directories.py
rename to core/directories.py
diff --git a/base/core/engine.py b/core/engine.py
similarity index 100%
rename from base/core/engine.py
rename to core/engine.py
diff --git a/base/core/export.py b/core/export.py
similarity index 100%
rename from base/core/export.py
rename to core/export.py
diff --git a/base/core/fs.py b/core/fs.py
similarity index 100%
rename from base/core/fs.py
rename to core/fs.py
diff --git a/base/core/ignore.py b/core/ignore.py
similarity index 100%
rename from base/core/ignore.py
rename to core/ignore.py
diff --git a/base/core/results.py b/core/results.py
similarity index 100%
rename from base/core/results.py
rename to core/results.py
diff --git a/base/core/scanner.py b/core/scanner.py
similarity index 100%
rename from base/core/scanner.py
rename to core/scanner.py
diff --git a/base/core/tests/__init__.py b/core/tests/__init__.py
similarity index 100%
rename from base/core/tests/__init__.py
rename to core/tests/__init__.py
diff --git a/base/core/tests/app_cocoa_test.py b/core/tests/app_cocoa_test.py
similarity index 100%
rename from base/core/tests/app_cocoa_test.py
rename to core/tests/app_cocoa_test.py
diff --git a/base/core/tests/app_test.py b/core/tests/app_test.py
similarity index 100%
rename from base/core/tests/app_test.py
rename to core/tests/app_test.py
diff --git a/base/core/tests/data.py b/core/tests/data.py
similarity index 100%
rename from base/core/tests/data.py
rename to core/tests/data.py
diff --git a/base/core/tests/directories_test.py b/core/tests/directories_test.py
similarity index 100%
rename from base/core/tests/directories_test.py
rename to core/tests/directories_test.py
diff --git a/base/core/tests/engine_test.py b/core/tests/engine_test.py
similarity index 100%
rename from base/core/tests/engine_test.py
rename to core/tests/engine_test.py
diff --git a/base/core/tests/ignore_test.py b/core/tests/ignore_test.py
similarity index 100%
rename from base/core/tests/ignore_test.py
rename to core/tests/ignore_test.py
diff --git a/base/core/tests/results_test.py b/core/tests/results_test.py
similarity index 100%
rename from base/core/tests/results_test.py
rename to core/tests/results_test.py
diff --git a/base/core/tests/scanner_test.py b/core/tests/scanner_test.py
similarity index 100%
rename from base/core/tests/scanner_test.py
rename to core/tests/scanner_test.py
diff --git a/base/qt/__init__.py b/core_me/__init__.py
similarity index 100%
rename from base/qt/__init__.py
rename to core_me/__init__.py
diff --git a/me/core/app_cocoa.py b/core_me/app_cocoa.py
similarity index 100%
rename from me/core/app_cocoa.py
rename to core_me/app_cocoa.py
diff --git a/me/core/data.py b/core_me/data.py
similarity index 100%
rename from me/core/data.py
rename to core_me/data.py
diff --git a/me/core/fs.py b/core_me/fs.py
similarity index 100%
rename from me/core/fs.py
rename to core_me/fs.py
diff --git a/me/core/scanner.py b/core_me/scanner.py
similarity index 100%
rename from me/core/scanner.py
rename to core_me/scanner.py
diff --git a/me/core/__init__.py b/core_me/tests/__init__.py
similarity index 100%
rename from me/core/__init__.py
rename to core_me/tests/__init__.py
diff --git a/me/core/tests/scanner_test.py b/core_me/tests/scanner_test.py
similarity index 100%
rename from me/core/tests/scanner_test.py
rename to core_me/tests/scanner_test.py
diff --git a/base/qt/LICENSE b/core_pe/LICENSE
similarity index 100%
rename from base/qt/LICENSE
rename to core_pe/LICENSE
diff --git a/me/core/tests/__init__.py b/core_pe/__init__.py
similarity index 100%
rename from me/core/tests/__init__.py
rename to core_pe/__init__.py
diff --git a/pe/core/app_cocoa.py b/core_pe/app_cocoa.py
similarity index 100%
rename from pe/core/app_cocoa.py
rename to core_pe/app_cocoa.py
diff --git a/pe/core/block.py b/core_pe/block.py
similarity index 100%
rename from pe/core/block.py
rename to core_pe/block.py
diff --git a/pe/core/cache.py b/core_pe/cache.py
similarity index 100%
rename from pe/core/cache.py
rename to core_pe/cache.py
diff --git a/pe/core/data.py b/core_pe/data.py
similarity index 100%
rename from pe/core/data.py
rename to core_pe/data.py
diff --git a/pe/core/gen.py b/core_pe/gen.py
similarity index 100%
rename from pe/core/gen.py
rename to core_pe/gen.py
diff --git a/pe/core/matchbase.py b/core_pe/matchbase.py
similarity index 100%
rename from pe/core/matchbase.py
rename to core_pe/matchbase.py
diff --git a/pe/core/modules/block/block.pyx b/core_pe/modules/block/block.pyx
similarity index 100%
rename from pe/core/modules/block/block.pyx
rename to core_pe/modules/block/block.pyx
diff --git a/pe/core/modules/block/setup.py b/core_pe/modules/block/setup.py
similarity index 100%
rename from pe/core/modules/block/setup.py
rename to core_pe/modules/block/setup.py
diff --git a/pe/core/modules/cache/cache.pyx b/core_pe/modules/cache/cache.pyx
similarity index 100%
rename from pe/core/modules/cache/cache.pyx
rename to core_pe/modules/cache/cache.pyx
diff --git a/pe/core/modules/cache/setup.py b/core_pe/modules/cache/setup.py
similarity index 100%
rename from pe/core/modules/cache/setup.py
rename to core_pe/modules/cache/setup.py
diff --git a/pe/core/scanner.py b/core_pe/scanner.py
similarity index 100%
rename from pe/core/scanner.py
rename to core_pe/scanner.py
diff --git a/me/help/__init__.py b/core_pe/tests/__init__.py
similarity index 100%
rename from me/help/__init__.py
rename to core_pe/tests/__init__.py
diff --git a/pe/core/tests/block_test.py b/core_pe/tests/block_test.py
similarity index 100%
rename from pe/core/tests/block_test.py
rename to core_pe/tests/block_test.py
diff --git a/pe/core/tests/cache_test.py b/core_pe/tests/cache_test.py
similarity index 100%
rename from pe/core/tests/cache_test.py
rename to core_pe/tests/cache_test.py
diff --git a/me/cocoa/LICENSE b/core_se/LICENSE
similarity index 100%
rename from me/cocoa/LICENSE
rename to core_se/LICENSE
diff --git a/se/core/__init__.py b/core_se/__init__.py
similarity index 100%
rename from se/core/__init__.py
rename to core_se/__init__.py
diff --git a/se/core/app_cocoa.py b/core_se/app_cocoa.py
similarity index 100%
rename from se/core/app_cocoa.py
rename to core_se/app_cocoa.py
diff --git a/se/core/data.py b/core_se/data.py
similarity index 100%
rename from se/core/data.py
rename to core_se/data.py
diff --git a/se/core/fs.py b/core_se/fs.py
similarity index 100%
rename from se/core/fs.py
rename to core_se/fs.py
diff --git a/pe/core/__init__.py b/core_se/tests/__init__.py
similarity index 100%
rename from pe/core/__init__.py
rename to core_se/tests/__init__.py
diff --git a/se/core/tests/fs_test.py b/core_se/tests/fs_test.py
similarity index 100%
rename from se/core/tests/fs_test.py
rename to core_se/tests/fs_test.py
diff --git a/me/help/LICENSE b/help_me/LICENSE
similarity index 100%
rename from me/help/LICENSE
rename to help_me/LICENSE
diff --git a/pe/core/tests/__init__.py b/help_me/__init__.py
similarity index 100%
rename from pe/core/tests/__init__.py
rename to help_me/__init__.py
diff --git a/me/help/changelog.yaml b/help_me/changelog.yaml
similarity index 100%
rename from me/help/changelog.yaml
rename to help_me/changelog.yaml
diff --git a/me/help/gen.py b/help_me/gen.py
similarity index 83%
rename from me/help/gen.py
rename to help_me/gen.py
index d3b4da24..2c83a6e4 100644
--- a/me/help/gen.py
+++ b/help_me/gen.py
@@ -8,7 +8,7 @@
import os.path as op
from hsdocgen import generate_help, filters
-def generate(windows=False):
+def generate(windows=False, force_render=True):
tix = filters.tixgen("https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}")
basepath = op.dirname(__file__)
- generate_help.main(basepath, op.join(basepath, 'dupeguru_me_help'), force_render=True, tix=tix, windows=windows)
+ generate_help.main(basepath, op.join(basepath, 'dupeguru_me_help'), force_render=force_render, tix=tix, windows=windows)
diff --git a/me/help/skeleton/hardcoded.css b/help_me/skeleton/hardcoded.css
similarity index 100%
rename from me/help/skeleton/hardcoded.css
rename to help_me/skeleton/hardcoded.css
diff --git a/me/help/skeleton/images/hs_title.png b/help_me/skeleton/images/hs_title.png
similarity index 100%
rename from me/help/skeleton/images/hs_title.png
rename to help_me/skeleton/images/hs_title.png
diff --git a/me/help/templates/base_dg.mako b/help_me/templates/base_dg.mako
similarity index 100%
rename from me/help/templates/base_dg.mako
rename to help_me/templates/base_dg.mako
diff --git a/me/help/templates/credits.mako b/help_me/templates/credits.mako
similarity index 100%
rename from me/help/templates/credits.mako
rename to help_me/templates/credits.mako
diff --git a/me/help/templates/directories.mako b/help_me/templates/directories.mako
similarity index 100%
rename from me/help/templates/directories.mako
rename to help_me/templates/directories.mako
diff --git a/me/help/templates/faq.mako b/help_me/templates/faq.mako
similarity index 100%
rename from me/help/templates/faq.mako
rename to help_me/templates/faq.mako
diff --git a/me/help/templates/intro.mako b/help_me/templates/intro.mako
similarity index 100%
rename from me/help/templates/intro.mako
rename to help_me/templates/intro.mako
diff --git a/me/help/templates/power_marker.mako b/help_me/templates/power_marker.mako
similarity index 100%
rename from me/help/templates/power_marker.mako
rename to help_me/templates/power_marker.mako
diff --git a/me/help/templates/preferences.mako b/help_me/templates/preferences.mako
similarity index 100%
rename from me/help/templates/preferences.mako
rename to help_me/templates/preferences.mako
diff --git a/me/help/templates/quick_start.mako b/help_me/templates/quick_start.mako
similarity index 100%
rename from me/help/templates/quick_start.mako
rename to help_me/templates/quick_start.mako
diff --git a/me/help/templates/results.mako b/help_me/templates/results.mako
similarity index 100%
rename from me/help/templates/results.mako
rename to help_me/templates/results.mako
diff --git a/me/help/templates/versions.mako b/help_me/templates/versions.mako
similarity index 100%
rename from me/help/templates/versions.mako
rename to help_me/templates/versions.mako
diff --git a/me/qt/LICENSE b/help_pe/LICENSE
similarity index 100%
rename from me/qt/LICENSE
rename to help_pe/LICENSE
diff --git a/pe/help/__init__.py b/help_pe/__init__.py
similarity index 100%
rename from pe/help/__init__.py
rename to help_pe/__init__.py
diff --git a/pe/help/changelog.yaml b/help_pe/changelog.yaml
similarity index 100%
rename from pe/help/changelog.yaml
rename to help_pe/changelog.yaml
diff --git a/pe/help/gen.py b/help_pe/gen.py
similarity index 83%
rename from pe/help/gen.py
rename to help_pe/gen.py
index f5d78df2..7f01fe19 100644
--- a/pe/help/gen.py
+++ b/help_pe/gen.py
@@ -8,7 +8,7 @@
import os.path as op
from hsdocgen import generate_help, filters
-def generate(windows=False):
+def generate(windows=False, force_render=True):
tix = filters.tixgen("https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}")
basepath = op.dirname(__file__)
- generate_help.main(basepath, op.join(basepath, 'dupeguru_pe_help'), force_render=True, tix=tix, windows=windows)
+ generate_help.main(basepath, op.join(basepath, 'dupeguru_pe_help'), force_render=force_render, tix=tix, windows=windows)
diff --git a/pe/help/skeleton/hardcoded.css b/help_pe/skeleton/hardcoded.css
similarity index 100%
rename from pe/help/skeleton/hardcoded.css
rename to help_pe/skeleton/hardcoded.css
diff --git a/pe/help/skeleton/images/hs_title.png b/help_pe/skeleton/images/hs_title.png
similarity index 100%
rename from pe/help/skeleton/images/hs_title.png
rename to help_pe/skeleton/images/hs_title.png
diff --git a/pe/help/templates/base_dg.mako b/help_pe/templates/base_dg.mako
similarity index 100%
rename from pe/help/templates/base_dg.mako
rename to help_pe/templates/base_dg.mako
diff --git a/pe/help/templates/credits.mako b/help_pe/templates/credits.mako
similarity index 100%
rename from pe/help/templates/credits.mako
rename to help_pe/templates/credits.mako
diff --git a/pe/help/templates/directories.mako b/help_pe/templates/directories.mako
similarity index 100%
rename from pe/help/templates/directories.mako
rename to help_pe/templates/directories.mako
diff --git a/pe/help/templates/faq.mako b/help_pe/templates/faq.mako
similarity index 100%
rename from pe/help/templates/faq.mako
rename to help_pe/templates/faq.mako
diff --git a/pe/help/templates/intro.mako b/help_pe/templates/intro.mako
similarity index 100%
rename from pe/help/templates/intro.mako
rename to help_pe/templates/intro.mako
diff --git a/pe/help/templates/power_marker.mako b/help_pe/templates/power_marker.mako
similarity index 100%
rename from pe/help/templates/power_marker.mako
rename to help_pe/templates/power_marker.mako
diff --git a/pe/help/templates/preferences.mako b/help_pe/templates/preferences.mako
similarity index 100%
rename from pe/help/templates/preferences.mako
rename to help_pe/templates/preferences.mako
diff --git a/pe/help/templates/quick_start.mako b/help_pe/templates/quick_start.mako
similarity index 100%
rename from pe/help/templates/quick_start.mako
rename to help_pe/templates/quick_start.mako
diff --git a/pe/help/templates/results.mako b/help_pe/templates/results.mako
similarity index 100%
rename from pe/help/templates/results.mako
rename to help_pe/templates/results.mako
diff --git a/pe/help/templates/versions.mako b/help_pe/templates/versions.mako
similarity index 100%
rename from pe/help/templates/versions.mako
rename to help_pe/templates/versions.mako
diff --git a/pe/cocoa/LICENSE b/help_se/LICENSE
similarity index 100%
rename from pe/cocoa/LICENSE
rename to help_se/LICENSE
diff --git a/se/core/tests/__init__.py b/help_se/__init__.py
similarity index 100%
rename from se/core/tests/__init__.py
rename to help_se/__init__.py
diff --git a/se/help/changelog.yaml b/help_se/changelog.yaml
similarity index 100%
rename from se/help/changelog.yaml
rename to help_se/changelog.yaml
diff --git a/se/help/gen.py b/help_se/gen.py
similarity index 51%
rename from se/help/gen.py
rename to help_se/gen.py
index 375aaee8..eb02c162 100644
--- a/se/help/gen.py
+++ b/help_se/gen.py
@@ -5,10 +5,11 @@
# which should be included with this package. The terms are also available at
# http://www.hardcoded.net/licenses/hs_license
-import os
-
+import os.path as op
from hsdocgen import generate_help, filters
-tix = filters.tixgen("https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}")
+def generate(windows=False, force_render=True):
+ tix = filters.tixgen("https://hardcoded.lighthouseapp.com/projects/31699-dupeguru/tickets/{0}")
+ basepath = op.dirname(__file__)
+ generate_help.main(basepath, op.join(basepath, 'dupeguru_help'), force_render=force_render, tix=tix, windows=windows)
-generate_help.main('.', 'dupeguru_help', force_render=True, tix=tix)
diff --git a/se/help/skeleton/hardcoded.css b/help_se/skeleton/hardcoded.css
similarity index 100%
rename from se/help/skeleton/hardcoded.css
rename to help_se/skeleton/hardcoded.css
diff --git a/se/help/skeleton/images/hs_title.png b/help_se/skeleton/images/hs_title.png
similarity index 100%
rename from se/help/skeleton/images/hs_title.png
rename to help_se/skeleton/images/hs_title.png
diff --git a/se/help/templates/base_dg.mako b/help_se/templates/base_dg.mako
similarity index 100%
rename from se/help/templates/base_dg.mako
rename to help_se/templates/base_dg.mako
diff --git a/se/help/templates/credits.mako b/help_se/templates/credits.mako
similarity index 100%
rename from se/help/templates/credits.mako
rename to help_se/templates/credits.mako
diff --git a/se/help/templates/directories.mako b/help_se/templates/directories.mako
similarity index 100%
rename from se/help/templates/directories.mako
rename to help_se/templates/directories.mako
diff --git a/se/help/templates/faq.mako b/help_se/templates/faq.mako
similarity index 100%
rename from se/help/templates/faq.mako
rename to help_se/templates/faq.mako
diff --git a/se/help/templates/intro.mako b/help_se/templates/intro.mako
similarity index 100%
rename from se/help/templates/intro.mako
rename to help_se/templates/intro.mako
diff --git a/se/help/templates/power_marker.mako b/help_se/templates/power_marker.mako
similarity index 100%
rename from se/help/templates/power_marker.mako
rename to help_se/templates/power_marker.mako
diff --git a/se/help/templates/preferences.mako b/help_se/templates/preferences.mako
similarity index 100%
rename from se/help/templates/preferences.mako
rename to help_se/templates/preferences.mako
diff --git a/se/help/templates/quick_start.mako b/help_se/templates/quick_start.mako
similarity index 100%
rename from se/help/templates/quick_start.mako
rename to help_se/templates/quick_start.mako
diff --git a/se/help/templates/results.mako b/help_se/templates/results.mako
similarity index 100%
rename from se/help/templates/results.mako
rename to help_se/templates/results.mako
diff --git a/se/help/templates/versions.mako b/help_se/templates/versions.mako
similarity index 100%
rename from se/help/templates/versions.mako
rename to help_se/templates/versions.mako
diff --git a/me/cocoa/gen.py b/me/cocoa/gen.py
deleted file mode 100644
index ea248ae7..00000000
--- a/me/cocoa/gen.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
-#
-# This software is licensed under the "HS" 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/hs_license
-
-import sys
-sys.path.insert(0, 'py') # for hsutil and hsdocgen
-import os
-
-from help import gen
-
-print "Generating help"
-gen.generate()
-os.system('/Developer/Applications/Utilities/Help\\ Indexer.app/Contents/MacOS/Help\\ Indexer help/dupeguru_me_help')
-
-print "Generating py plugin"
-os.chdir('py')
-os.system('python -u gen.py')
-os.chdir('..')
\ No newline at end of file
diff --git a/me/cocoa/py/gen.py b/me/cocoa/py/gen.py
deleted file mode 100644
index f8bc07c4..00000000
--- a/me/cocoa/py/gen.py
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
-#
-# This software is licensed under the "HS" 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/hs_license
-
-import os
-import os.path as op
-import shutil
-
-from hsutil.build import print_and_do
-
-if op.exists('build'):
- shutil.rmtree('build')
-if op.exists('dist'):
- shutil.rmtree('dist')
-
-os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.5'
-print_and_do('python -u setup.py py2app')
\ No newline at end of file
diff --git a/me/qt/WARNING b/me/qt/WARNING
deleted file mode 100644
index 729666cc..00000000
--- a/me/qt/WARNING
+++ /dev/null
@@ -1,11 +0,0 @@
-WARNING ABOUT THE HS LICENSE AND PyQt
-
-Although Qt is now LGPL licensed, PyQt still is dual licensed. Until Nokia buys Riverbank and
-releases PyQt as LGPL, users of this part of the code (The PyQt-based GUI code) have to use the
-GPL version of PyQt, unless they possess a commercial license to it.
-
-There is no problem to this AS LONG AS YOU DON'T REDISTRIBUTE HS LICENSED CODE. The GPL license, from the point of view of the user, is very permissive. You can do WHATEVER you want with the GPLed version of PyQt, as long as you don't redistribute any of the code, or code dependent on it. When you do, the code you distribute has to be GPL compliant. The HS license is NOT, I repeat, NOT compliant with the GPL.
-
-So, what does it all mean? You have no restriction on the usage of the PyQt-dependent-HS-licensed code, but unless you possess a commercial PyQt license, Hardcoded Software (or anyone) cannot accept any contribution from you for this part of the code.
-
-Note that this only affects the PyQt dependent code, and not any other part of HS licensed code (if it has "import PyQt4" in it, it's PyQt dependent code). For the rest of the code, the only restrictions that apply are the ones from the HS license.
\ No newline at end of file
diff --git a/package.py b/package.py
new file mode 100644
index 00000000..5e4042ad
--- /dev/null
+++ b/package.py
@@ -0,0 +1,45 @@
+# -*- coding: utf-8 -*-
+# Created By: Virgil Dupras
+# Created On: 2009-12-30
+# $Id$
+# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
+#
+# This software is licensed under the "HS" 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/hs_license
+
+import sys
+import os
+import os.path as op
+
+import yaml
+
+from hsutil.build import build_dmg, add_to_pythonpath
+
+def main():
+ conf = yaml.load(open('conf.yaml'))
+ edition = conf['edition']
+ ui = conf['ui']
+ dev = conf['dev']
+ if dev:
+ print "You can't package in dev mode"
+ return
+ print "Packaging dupeGuru {0} with UI {1}".format(edition.upper(), ui)
+ if ui == 'cocoa':
+ app_path = {
+ 'se': 'cocoa/se/build/Release/dupeGuru.app',
+ 'me': 'cocoa/me/build/Release/dupeGuru ME.app',
+ 'pe': 'cocoa/pe/build/Release/dupeGuru PE.app',
+ }[edition]
+ build_dmg(app_path, '.')
+ elif ui == 'qt':
+ if sys.platform != "win32":
+ print "Qt packaging only works under Windows."
+ return
+ add_to_pythonpath('.')
+ os.chdir('qt')
+ os.system('python build.py')
+ os.chdir('..')
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/pe/cocoa/gen.py b/pe/cocoa/gen.py
deleted file mode 100644
index 60cabb4e..00000000
--- a/pe/cocoa/gen.py
+++ /dev/null
@@ -1,21 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
-#
-# This software is licensed under the "HS" 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/hs_license
-
-import sys
-sys.path.insert(0, 'py') # for hsutil and hsdocgen
-import os
-
-from help import gen
-
-print "Generating help"
-gen.generate()
-os.system('/Developer/Applications/Utilities/Help\\ Indexer.app/Contents/MacOS/Help\\ Indexer help/dupeguru_pe_help')
-
-print "Generating py plugin"
-os.chdir('py')
-os.system('python -u gen.py')
-os.chdir('..')
\ No newline at end of file
diff --git a/pe/cocoa/py/gen.py b/pe/cocoa/py/gen.py
deleted file mode 100644
index 4b9f73d6..00000000
--- a/pe/cocoa/py/gen.py
+++ /dev/null
@@ -1,23 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
-#
-# This software is licensed under the "HS" 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/hs_license
-
-import os
-import os.path as op
-import shutil
-
-from hsutil.build import print_and_do
-
-os.chdir('core_pe')
-print_and_do('python gen.py')
-os.chdir('..')
-
-if op.exists('build'):
- shutil.rmtree('build')
-if op.exists('dist'):
- shutil.rmtree('dist')
-
-print_and_do('python -u setup.py py2app')
\ No newline at end of file
diff --git a/pe/core/LICENSE b/pe/core/LICENSE
deleted file mode 100644
index f8818048..00000000
--- a/pe/core/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2009 Hardcoded Software Inc. (http://www.hardcoded.net)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- * If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/pe/help/LICENSE b/pe/help/LICENSE
deleted file mode 100644
index f8818048..00000000
--- a/pe/help/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2009 Hardcoded Software Inc. (http://www.hardcoded.net)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- * If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/pe/qt/LICENSE b/pe/qt/LICENSE
deleted file mode 100644
index f8818048..00000000
--- a/pe/qt/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2009 Hardcoded Software Inc. (http://www.hardcoded.net)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- * If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/pe/qt/WARNING b/pe/qt/WARNING
deleted file mode 100644
index 729666cc..00000000
--- a/pe/qt/WARNING
+++ /dev/null
@@ -1,11 +0,0 @@
-WARNING ABOUT THE HS LICENSE AND PyQt
-
-Although Qt is now LGPL licensed, PyQt still is dual licensed. Until Nokia buys Riverbank and
-releases PyQt as LGPL, users of this part of the code (The PyQt-based GUI code) have to use the
-GPL version of PyQt, unless they possess a commercial license to it.
-
-There is no problem to this AS LONG AS YOU DON'T REDISTRIBUTE HS LICENSED CODE. The GPL license, from the point of view of the user, is very permissive. You can do WHATEVER you want with the GPLed version of PyQt, as long as you don't redistribute any of the code, or code dependent on it. When you do, the code you distribute has to be GPL compliant. The HS license is NOT, I repeat, NOT compliant with the GPL.
-
-So, what does it all mean? You have no restriction on the usage of the PyQt-dependent-HS-licensed code, but unless you possess a commercial PyQt license, Hardcoded Software (or anyone) cannot accept any contribution from you for this part of the code.
-
-Note that this only affects the PyQt dependent code, and not any other part of HS licensed code (if it has "import PyQt4" in it, it's PyQt dependent code). For the rest of the code, the only restrictions that apply are the ones from the HS license.
\ No newline at end of file
diff --git a/base/qt/WARNING b/qt/WARNING
similarity index 100%
rename from base/qt/WARNING
rename to qt/WARNING
diff --git a/qt/base/__init__.py b/qt/base/__init__.py
new file mode 100644
index 00000000..e69de29b
diff --git a/base/qt/app.py b/qt/base/app.py
similarity index 100%
rename from base/qt/app.py
rename to qt/base/app.py
diff --git a/base/qt/details_table.py b/qt/base/details_table.py
similarity index 100%
rename from base/qt/details_table.py
rename to qt/base/details_table.py
diff --git a/qt/base/dg.qrc b/qt/base/dg.qrc
new file mode 100644
index 00000000..5c689656
--- /dev/null
+++ b/qt/base/dg.qrc
@@ -0,0 +1,16 @@
+
+
+ ../../images/details32.png
+ ../../images/dgpe_logo_32.png
+ ../../images/dgpe_logo_128.png
+ ../../images/dgme_logo_32.png
+ ../../images/dgme_logo_128.png
+ ../../images/dgse_logo_32.png
+ ../../images/dgse_logo_128.png
+ ../../images/folderwin32.png
+ ../../images/preferences32.png
+ ../../images/actions32.png
+ ../../images/delta32.png
+ ../../images/power_marker32.png
+
+
\ No newline at end of file
diff --git a/base/qt/directories_dialog.py b/qt/base/directories_dialog.py
similarity index 100%
rename from base/qt/directories_dialog.py
rename to qt/base/directories_dialog.py
diff --git a/base/qt/directories_dialog.ui b/qt/base/directories_dialog.ui
similarity index 100%
rename from base/qt/directories_dialog.ui
rename to qt/base/directories_dialog.ui
diff --git a/base/qt/directories_model.py b/qt/base/directories_model.py
similarity index 100%
rename from base/qt/directories_model.py
rename to qt/base/directories_model.py
diff --git a/base/qt/main_window.py b/qt/base/main_window.py
similarity index 100%
rename from base/qt/main_window.py
rename to qt/base/main_window.py
diff --git a/base/qt/main_window.ui b/qt/base/main_window.ui
similarity index 100%
rename from base/qt/main_window.ui
rename to qt/base/main_window.ui
diff --git a/base/qt/platform.py b/qt/base/platform.py
similarity index 100%
rename from base/qt/platform.py
rename to qt/base/platform.py
diff --git a/base/qt/platform_osx.py b/qt/base/platform_osx.py
similarity index 100%
rename from base/qt/platform_osx.py
rename to qt/base/platform_osx.py
diff --git a/base/qt/platform_win.py b/qt/base/platform_win.py
similarity index 100%
rename from base/qt/platform_win.py
rename to qt/base/platform_win.py
diff --git a/base/qt/preferences.py b/qt/base/preferences.py
similarity index 100%
rename from base/qt/preferences.py
rename to qt/base/preferences.py
diff --git a/base/qt/results_model.py b/qt/base/results_model.py
similarity index 100%
rename from base/qt/results_model.py
rename to qt/base/results_model.py
diff --git a/me/qt/app.py b/qt/me/app.py
similarity index 100%
rename from me/qt/app.py
rename to qt/me/app.py
diff --git a/me/qt/build.py b/qt/me/build.py
similarity index 100%
rename from me/qt/build.py
rename to qt/me/build.py
diff --git a/me/qt/details_dialog.py b/qt/me/details_dialog.py
similarity index 100%
rename from me/qt/details_dialog.py
rename to qt/me/details_dialog.py
diff --git a/me/qt/details_dialog.ui b/qt/me/details_dialog.ui
similarity index 100%
rename from me/qt/details_dialog.ui
rename to qt/me/details_dialog.ui
diff --git a/me/qt/dgme.spec b/qt/me/dgme.spec
similarity index 78%
rename from me/qt/dgme.spec
rename to qt/me/dgme.spec
index 4d47e350..ab510aaa 100644
--- a/me/qt/dgme.spec
+++ b/qt/me/dgme.spec
@@ -1,6 +1,6 @@
# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'start.py'],
- pathex=['C:\\src\\dupeguru\\me\\qt'])
+ pathex=[])
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
@@ -9,7 +9,7 @@ exe = EXE(pyz,
debug=False,
strip=False,
upx=True,
- console=False , icon='base\\images\\dgme_logo.ico', version='verinfo_tmp')
+ console=False , icon='..\\base\\images\\dgme_logo.ico', version='verinfo_tmp')
coll = COLLECT( exe,
a.binaries,
a.zipfiles,
diff --git a/me/qt/gen.py b/qt/me/gen.py
similarity index 70%
rename from me/qt/gen.py
rename to qt/me/gen.py
index f71e4f81..f77c4af8 100644
--- a/me/qt/gen.py
+++ b/qt/me/gen.py
@@ -13,13 +13,7 @@ import os.path as op
from hsutil.build import print_and_do, build_all_qt_ui
-from help import gen
-
-build_all_qt_ui(op.join('qtlib', 'ui'))
-build_all_qt_ui('base')
+build_all_qt_ui(op.join('..', '..', 'qtlib', 'ui'))
+build_all_qt_ui(op.join('..', 'base'))
build_all_qt_ui('.')
-os.chdir('base')
-print_and_do("pyrcc4 dg.qrc > dg_rc.py")
-os.chdir('..')
-
-gen.generate(windows=True)
+print_and_do("pyrcc4 {0} > {1}".format(op.join('..', 'base', 'dg.qrc'), op.join('..', 'base', 'dg_rc.py')))
\ No newline at end of file
diff --git a/me/qt/installer.aip b/qt/me/installer.aip
similarity index 100%
rename from me/qt/installer.aip
rename to qt/me/installer.aip
diff --git a/me/qt/preferences.py b/qt/me/preferences.py
similarity index 100%
rename from me/qt/preferences.py
rename to qt/me/preferences.py
diff --git a/me/qt/preferences_dialog.py b/qt/me/preferences_dialog.py
similarity index 100%
rename from me/qt/preferences_dialog.py
rename to qt/me/preferences_dialog.py
diff --git a/me/qt/preferences_dialog.ui b/qt/me/preferences_dialog.ui
similarity index 100%
rename from me/qt/preferences_dialog.ui
rename to qt/me/preferences_dialog.ui
diff --git a/me/qt/profile.py b/qt/me/profile.py
similarity index 100%
rename from me/qt/profile.py
rename to qt/me/profile.py
diff --git a/me/qt/start.py b/qt/me/start.py
similarity index 100%
rename from me/qt/start.py
rename to qt/me/start.py
diff --git a/me/qt/verinfo b/qt/me/verinfo
similarity index 100%
rename from me/qt/verinfo
rename to qt/me/verinfo
diff --git a/pe/qt/app.py b/qt/pe/app.py
similarity index 100%
rename from pe/qt/app.py
rename to qt/pe/app.py
diff --git a/pe/qt/block.py b/qt/pe/block.py
similarity index 100%
rename from pe/qt/block.py
rename to qt/pe/block.py
diff --git a/pe/qt/build.py b/qt/pe/build.py
similarity index 100%
rename from pe/qt/build.py
rename to qt/pe/build.py
diff --git a/pe/qt/details_dialog.py b/qt/pe/details_dialog.py
similarity index 100%
rename from pe/qt/details_dialog.py
rename to qt/pe/details_dialog.py
diff --git a/pe/qt/details_dialog.ui b/qt/pe/details_dialog.ui
similarity index 100%
rename from pe/qt/details_dialog.ui
rename to qt/pe/details_dialog.ui
diff --git a/pe/qt/dgpe.spec b/qt/pe/dgpe.spec
similarity index 84%
rename from pe/qt/dgpe.spec
rename to qt/pe/dgpe.spec
index 673d9039..55405804 100644
--- a/pe/qt/dgpe.spec
+++ b/qt/pe/dgpe.spec
@@ -9,7 +9,7 @@ exe = EXE(pyz,
debug=False,
strip=False,
upx=True,
- console=False , icon='base\\images\\dgpe_logo.ico', version='verinfo_tmp')
+ console=False , icon='..\\base\\images\\dgpe_logo.ico', version='verinfo_tmp')
coll = COLLECT( exe,
a.binaries,
a.zipfiles,
diff --git a/pe/qt/gen.py b/qt/pe/gen.py
similarity index 77%
rename from pe/qt/gen.py
rename to qt/pe/gen.py
index 83c4875a..12ec8463 100644
--- a/pe/qt/gen.py
+++ b/qt/pe/gen.py
@@ -13,14 +13,10 @@ import os.path as op
from hsutil.build import print_and_do, build_all_qt_ui
-from help import gen
-
-build_all_qt_ui(op.join('qtlib', 'ui'))
-build_all_qt_ui('base')
+build_all_qt_ui(op.join('..', '..', 'qtlib', 'ui'))
+build_all_qt_ui(op.join('..', 'base'))
build_all_qt_ui('.')
-os.chdir('base')
-print_and_do("pyrcc4 dg.qrc > dg_rc.py")
-os.chdir('..')
+print_and_do("pyrcc4 {0} > {1}".format(op.join('..', 'base', 'dg.qrc'), op.join('..', 'base', 'dg_rc.py')))
def move(src, dst):
if not op.exists(src):
@@ -30,18 +26,10 @@ def move(src, dst):
print 'Moving %s --> %s' % (src, dst)
os.rename(src, dst)
-os.chdir('core_pe')
-print_and_do('python gen.py')
-os.chdir('..')
-
# The CC=gcc-4.0 thing is because, in Snow Leopard, gcc-4.2 can't compile these units.
os.environ['CC'] = 'gcc-4.0'
os.chdir(op.join('modules', 'block'))
os.system('python setup.py build_ext --inplace')
os.chdir(op.join('..', '..'))
move(op.join('modules', 'block', '_block.so'), op.join('.', '_block.so'))
-move(op.join('modules', 'block', '_block.pyd'), op.join('.', '_block.pyd'))
-
-os.chdir('help')
-gen.generate(windows=True)
-os.chdir('..')
\ No newline at end of file
+move(op.join('modules', 'block', '_block.pyd'), op.join('.', '_block.pyd'))
\ No newline at end of file
diff --git a/pe/qt/installer.aip b/qt/pe/installer.aip
similarity index 100%
rename from pe/qt/installer.aip
rename to qt/pe/installer.aip
diff --git a/pe/qt/main_window.py b/qt/pe/main_window.py
similarity index 100%
rename from pe/qt/main_window.py
rename to qt/pe/main_window.py
diff --git a/pe/qt/modules/block/block.pyx b/qt/pe/modules/block/block.pyx
similarity index 100%
rename from pe/qt/modules/block/block.pyx
rename to qt/pe/modules/block/block.pyx
diff --git a/pe/qt/modules/block/setup.py b/qt/pe/modules/block/setup.py
similarity index 100%
rename from pe/qt/modules/block/setup.py
rename to qt/pe/modules/block/setup.py
diff --git a/pe/qt/preferences.py b/qt/pe/preferences.py
similarity index 100%
rename from pe/qt/preferences.py
rename to qt/pe/preferences.py
diff --git a/pe/qt/preferences_dialog.py b/qt/pe/preferences_dialog.py
similarity index 100%
rename from pe/qt/preferences_dialog.py
rename to qt/pe/preferences_dialog.py
diff --git a/pe/qt/preferences_dialog.ui b/qt/pe/preferences_dialog.ui
similarity index 100%
rename from pe/qt/preferences_dialog.ui
rename to qt/pe/preferences_dialog.ui
diff --git a/pe/qt/profile.py b/qt/pe/profile.py
similarity index 100%
rename from pe/qt/profile.py
rename to qt/pe/profile.py
diff --git a/pe/qt/start.py b/qt/pe/start.py
similarity index 100%
rename from pe/qt/start.py
rename to qt/pe/start.py
diff --git a/pe/qt/verinfo b/qt/pe/verinfo
similarity index 100%
rename from pe/qt/verinfo
rename to qt/pe/verinfo
diff --git a/se/qt/app.py b/qt/se/app.py
similarity index 100%
rename from se/qt/app.py
rename to qt/se/app.py
diff --git a/se/qt/build.py b/qt/se/build.py
similarity index 100%
rename from se/qt/build.py
rename to qt/se/build.py
diff --git a/se/qt/details_dialog.py b/qt/se/details_dialog.py
similarity index 100%
rename from se/qt/details_dialog.py
rename to qt/se/details_dialog.py
diff --git a/se/qt/details_dialog.ui b/qt/se/details_dialog.ui
similarity index 100%
rename from se/qt/details_dialog.ui
rename to qt/se/details_dialog.ui
diff --git a/se/qt/dgse.spec b/qt/se/dgse.spec
similarity index 84%
rename from se/qt/dgse.spec
rename to qt/se/dgse.spec
index 124cf273..5b2d3470 100644
--- a/se/qt/dgse.spec
+++ b/qt/se/dgse.spec
@@ -1,6 +1,6 @@
# -*- mode: python -*-
a = Analysis([os.path.join(HOMEPATH,'support\\_mountzlib.py'), os.path.join(HOMEPATH,'support\\useUnicode.py'), 'start.py'],
- pathex=['C:\\src\\dupeguru\\se'])
+ pathex=[])
pyz = PYZ(a.pure)
exe = EXE(pyz,
a.scripts,
@@ -10,7 +10,7 @@ exe = EXE(pyz,
strip=False,
upx=True,
console=False,
- icon='base\\images\\dgse_logo.ico',
+ icon='..\\base\\images\\dgse_logo.ico',
version='verinfo_tmp')
coll = COLLECT( exe,
a.binaries,
diff --git a/se/qt/gen.py b/qt/se/gen.py
similarity index 67%
rename from se/qt/gen.py
rename to qt/se/gen.py
index 88b8e4a9..d36494a4 100644
--- a/se/qt/gen.py
+++ b/qt/se/gen.py
@@ -13,11 +13,7 @@ import os.path as op
from hsutil.build import print_and_do, build_all_qt_ui
-build_all_qt_ui(op.join('qtlib', 'ui'))
-build_all_qt_ui('base')
+build_all_qt_ui(op.join('..', '..', 'qtlib', 'ui'))
+build_all_qt_ui(op.join('..', 'base'))
build_all_qt_ui('.')
-print_and_do("pyrcc4 {0} > {1}".format(op.join('base', 'dg.qrc'), op.join('base', 'dg_rc.py')))
-
-os.chdir('help')
-print_and_do('python gen.py')
-os.chdir('..')
+print_and_do("pyrcc4 {0} > {1}".format(op.join('..', 'base', 'dg.qrc'), op.join('..', 'base', 'dg_rc.py')))
diff --git a/se/qt/installer.aip b/qt/se/installer.aip
similarity index 100%
rename from se/qt/installer.aip
rename to qt/se/installer.aip
diff --git a/se/qt/preferences.py b/qt/se/preferences.py
similarity index 100%
rename from se/qt/preferences.py
rename to qt/se/preferences.py
diff --git a/se/qt/preferences_dialog.py b/qt/se/preferences_dialog.py
similarity index 100%
rename from se/qt/preferences_dialog.py
rename to qt/se/preferences_dialog.py
diff --git a/se/qt/preferences_dialog.ui b/qt/se/preferences_dialog.ui
similarity index 100%
rename from se/qt/preferences_dialog.ui
rename to qt/se/preferences_dialog.ui
diff --git a/se/qt/profile.py b/qt/se/profile.py
similarity index 100%
rename from se/qt/profile.py
rename to qt/se/profile.py
diff --git a/se/qt/start.py b/qt/se/start.py
similarity index 100%
rename from se/qt/start.py
rename to qt/se/start.py
diff --git a/se/qt/verinfo b/qt/se/verinfo
similarity index 100%
rename from se/qt/verinfo
rename to qt/se/verinfo
diff --git a/run.py b/run.py
new file mode 100644
index 00000000..232cddff
--- /dev/null
+++ b/run.py
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+# Created By: Virgil Dupras
+# Created On: 2009-12-30
+# $Id$
+# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
+#
+# This software is licensed under the "HS" 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/hs_license
+
+import sys
+import os
+import os.path as op
+
+import yaml
+
+from hsutil.build import add_to_pythonpath
+
+def main():
+ conf = yaml.load(open('conf.yaml'))
+ edition = conf['edition']
+ ui = conf['ui']
+ print "Running dupeGuru {0} with UI {1}".format(edition.upper(), ui)
+ if ui == 'cocoa':
+ app_path = {
+ 'se': 'cocoa/se/build/Release/dupeGuru.app',
+ 'me': 'cocoa/me/build/Release/dupeGuru\\ ME.app',
+ 'pe': 'cocoa/pe/build/Release/dupeGuru\\ PE.app',
+ }[edition]
+ os.system('open {0}'.format(app_path))
+ elif ui == 'qt':
+ add_to_pythonpath('.')
+ add_to_pythonpath('qt')
+ os.chdir(op.join('qt', edition))
+ os.system('python start.py')
+ os.chdir('..')
+
+if __name__ == '__main__':
+ main()
\ No newline at end of file
diff --git a/se/cocoa/LICENSE b/se/cocoa/LICENSE
deleted file mode 100644
index f8818048..00000000
--- a/se/cocoa/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2009 Hardcoded Software Inc. (http://www.hardcoded.net)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- * If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/se/cocoa/gen.py b/se/cocoa/gen.py
deleted file mode 100644
index 7f6bc18e..00000000
--- a/se/cocoa/gen.py
+++ /dev/null
@@ -1,19 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
-#
-# This software is licensed under the "HS" 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/hs_license
-
-import os
-
-print "Generating help"
-os.chdir('help')
-os.system('python -u gen.py')
-os.system('/Developer/Applications/Utilities/Help\\ Indexer.app/Contents/MacOS/Help\\ Indexer dupeguru_help')
-os.chdir('..')
-
-print "Generating py plugin"
-os.chdir('py')
-os.system('python -u gen.py')
-os.chdir('..')
\ No newline at end of file
diff --git a/se/cocoa/py/gen.py b/se/cocoa/py/gen.py
deleted file mode 100644
index f8bc07c4..00000000
--- a/se/cocoa/py/gen.py
+++ /dev/null
@@ -1,20 +0,0 @@
-#!/usr/bin/env python
-# Copyright 2009 Hardcoded Software (http://www.hardcoded.net)
-#
-# This software is licensed under the "HS" 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/hs_license
-
-import os
-import os.path as op
-import shutil
-
-from hsutil.build import print_and_do
-
-if op.exists('build'):
- shutil.rmtree('build')
-if op.exists('dist'):
- shutil.rmtree('dist')
-
-os.environ['MACOSX_DEPLOYMENT_TARGET'] = '10.5'
-print_and_do('python -u setup.py py2app')
\ No newline at end of file
diff --git a/se/core/LICENSE b/se/core/LICENSE
deleted file mode 100644
index f8818048..00000000
--- a/se/core/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2009 Hardcoded Software Inc. (http://www.hardcoded.net)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- * If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/se/help/LICENSE b/se/help/LICENSE
deleted file mode 100644
index f8818048..00000000
--- a/se/help/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2009 Hardcoded Software Inc. (http://www.hardcoded.net)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- * If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/se/qt/LICENSE b/se/qt/LICENSE
deleted file mode 100644
index f8818048..00000000
--- a/se/qt/LICENSE
+++ /dev/null
@@ -1,11 +0,0 @@
-Copyright 2009 Hardcoded Software Inc. (http://www.hardcoded.net)
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * Neither the name of Hardcoded Software Inc. nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
- * If the source code has been published less than two years ago, any redistribution, in whole or in part, must retain full licensing functionality, without any attempt to change, obscure or in other ways circumvent its intent.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
diff --git a/se/qt/WARNING b/se/qt/WARNING
deleted file mode 100644
index 729666cc..00000000
--- a/se/qt/WARNING
+++ /dev/null
@@ -1,11 +0,0 @@
-WARNING ABOUT THE HS LICENSE AND PyQt
-
-Although Qt is now LGPL licensed, PyQt still is dual licensed. Until Nokia buys Riverbank and
-releases PyQt as LGPL, users of this part of the code (The PyQt-based GUI code) have to use the
-GPL version of PyQt, unless they possess a commercial license to it.
-
-There is no problem to this AS LONG AS YOU DON'T REDISTRIBUTE HS LICENSED CODE. The GPL license, from the point of view of the user, is very permissive. You can do WHATEVER you want with the GPLed version of PyQt, as long as you don't redistribute any of the code, or code dependent on it. When you do, the code you distribute has to be GPL compliant. The HS license is NOT, I repeat, NOT compliant with the GPL.
-
-So, what does it all mean? You have no restriction on the usage of the PyQt-dependent-HS-licensed code, but unless you possess a commercial PyQt license, Hardcoded Software (or anyone) cannot accept any contribution from you for this part of the code.
-
-Note that this only affects the PyQt dependent code, and not any other part of HS licensed code (if it has "import PyQt4" in it, it's PyQt dependent code). For the rest of the code, the only restrictions that apply are the ones from the HS license.
\ No newline at end of file