mirror of
				https://github.com/arsenetar/dupeguru.git
				synced 2025-09-11 17:58:17 +00:00 
			
		
		
		
	Converted registration system to Fairware.
This commit is contained in:
		
							parent
							
								
									491279b7a8
								
							
						
					
					
						commit
						7360f57beb
					
				| @ -17,15 +17,12 @@ http://www.hardcoded.net/licenses/hs_license | ||||
| { | ||||
|     IBOutlet PyDupeGuruBase *py; | ||||
|     IBOutlet RecentDirectories *recentDirectories; | ||||
|     IBOutlet NSMenuItem *unlockMenuItem; | ||||
|     IBOutlet ResultWindowBase *result; | ||||
|      | ||||
|     DirectoryPanel *_directoryPanel; | ||||
|     DetailsPanel *_detailsPanel; | ||||
|     BOOL _savedResults; | ||||
| } | ||||
| - (IBAction)unlockApp:(id)sender; | ||||
| 
 | ||||
| - (PyDupeGuruBase *)py; | ||||
| - (RecentDirectories *)recentDirectories; | ||||
| - (DirectoryPanel *)directoryPanel; | ||||
|  | ||||
| @ -8,25 +8,12 @@ http://www.hardcoded.net/licenses/hs_license | ||||
| 
 | ||||
| #import "AppDelegate.h" | ||||
| #import "ProgressController.h" | ||||
| #import "RegistrationInterface.h" | ||||
| #import "HSFairwareReminder.h" | ||||
| #import "Utils.h" | ||||
| #import "Consts.h" | ||||
| #import <Sparkle/SUUpdater.h> | ||||
| 
 | ||||
| @implementation AppDelegateBase | ||||
| - (IBAction)unlockApp:(id)sender | ||||
| { | ||||
|     if ([[self py] isRegistered]) | ||||
|         return; | ||||
|     RegistrationInterface *ri = [[RegistrationInterface alloc] initWithApp:[self py]]; | ||||
|     if ([ri enterCode] == NSOKButton) | ||||
|     { | ||||
|         NSString *menuTitle = [NSString stringWithFormat:@"Thanks for buying %@!",[py appName]]; | ||||
|         [unlockMenuItem setTitle:menuTitle]; | ||||
|     } | ||||
|     [ri release]; | ||||
| } | ||||
| 
 | ||||
| - (PyDupeGuruBase *)py { return py; } | ||||
| - (RecentDirectories *)recentDirectories { return recentDirectories; } | ||||
| - (DirectoryPanel *)directoryPanel | ||||
| @ -65,9 +52,7 @@ http://www.hardcoded.net/licenses/hs_license | ||||
|         [result restoreColumnsPosition:columnsOrder widths:columnsWidth]; | ||||
|     else | ||||
|         [result resetColumnsToDefault:nil]; | ||||
|     //Reg stuff | ||||
|     if ([RegistrationInterface showNagWithApp:[self py]]) | ||||
|         [unlockMenuItem setTitle:[NSString stringWithFormat:@"Thanks for buying %@!",[py appName]]]; | ||||
|     [HSFairwareReminder showNagWithApp:[self py]]; | ||||
|     //Restore results | ||||
|     [py loadIgnoreList]; | ||||
|     [py loadResults]; | ||||
|  | ||||
| @ -8,7 +8,6 @@ http://www.hardcoded.net/licenses/hs_license | ||||
| 
 | ||||
| #import <Cocoa/Cocoa.h> | ||||
| 
 | ||||
| #define RegistrationRequired @"RegistrationRequired" | ||||
| #define JobStarted @"JobStarted" | ||||
| #define JobInProgress @"JobInProgress" | ||||
| 
 | ||||
|  | ||||
| @ -10,7 +10,6 @@ http://www.hardcoded.net/licenses/hs_license | ||||
| #import "Dialogs.h" | ||||
| #import "ProgressController.h" | ||||
| #import "Utils.h" | ||||
| #import "RegistrationInterface.h" | ||||
| #import "AppDelegate.h" | ||||
| #import "Consts.h" | ||||
| 
 | ||||
| @ -31,7 +30,6 @@ http://www.hardcoded.net/licenses/hs_license | ||||
|     [matches setTarget:self]; | ||||
|     [matches setDoubleAction:@selector(openClicked:)]; | ||||
|      | ||||
|     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(registrationRequired:) name:RegistrationRequired object:nil]; | ||||
|     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobCompleted:) name:JobCompletedNotification object:nil]; | ||||
|     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobStarted:) name:JobStarted object:nil]; | ||||
|     [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(jobInProgress:) name:JobInProgress object:nil]; | ||||
| @ -464,12 +462,6 @@ http://www.hardcoded.net/licenses/hs_license | ||||
|     [[ProgressController mainProgressController] showSheetForParent:[self window]]; | ||||
| } | ||||
| 
 | ||||
| - (void)registrationRequired:(NSNotification *)aNotification | ||||
| { | ||||
|     NSString *msg = @"This is a demo version, which only allows you 10 delete/copy/move actions per session. You cannot continue."; | ||||
|     [Dialogs showMessage:msg]; | ||||
| } | ||||
| 
 | ||||
| - (BOOL)validateToolbarItem:(NSToolbarItem *)theItem | ||||
| { | ||||
|     return ![[ProgressController mainProgressController] isShown]; | ||||
|  | ||||
| @ -12,8 +12,8 @@ | ||||
| 		</object> | ||||
| 		<object class="NSMutableArray" key="IBDocument.EditedObjectIDs"> | ||||
| 			<bool key="EncodedWithXMLCoder">YES</bool> | ||||
| 			<integer value="1147"/> | ||||
| 			<integer value="598"/> | ||||
| 			<integer value="21"/> | ||||
| 			<integer value="57"/> | ||||
| 		</object> | ||||
| 		<object class="NSArray" key="IBDocument.PluginDependencies"> | ||||
| 			<bool key="EncodedWithXMLCoder">YES</bool> | ||||
| @ -87,6 +87,7 @@ | ||||
| 									<int key="NSvFlags">256</int> | ||||
| 									<string key="NSFrame">{{7, 14}, {67, 25}}</string> | ||||
| 									<reference key="NSSuperview"/> | ||||
| 									<reference key="NSWindow"/> | ||||
| 									<bool key="NSEnabled">YES</bool> | ||||
| 									<object class="NSSegmentedCell" key="NSCell" id="431579725"> | ||||
| 										<int key="NSCellFlags">67239424</int> | ||||
| @ -182,6 +183,7 @@ | ||||
| 									<int key="NSvFlags">258</int> | ||||
| 									<string key="NSFrame">{{0, 14}, {81, 22}}</string> | ||||
| 									<reference key="NSSuperview"/> | ||||
| 									<reference key="NSWindow"/> | ||||
| 									<bool key="NSEnabled">YES</bool> | ||||
| 									<object class="NSSearchFieldCell" key="NSCell" id="484816507"> | ||||
| 										<int key="NSCellFlags">343014976</int> | ||||
| @ -327,6 +329,7 @@ | ||||
| 									<int key="NSvFlags">256</int> | ||||
| 									<string key="NSFrame">{{1, 14}, {40, 25}}</string> | ||||
| 									<reference key="NSSuperview"/> | ||||
| 									<reference key="NSWindow"/> | ||||
| 									<bool key="NSEnabled">YES</bool> | ||||
| 									<object class="NSPopUpButtonCell" key="NSCell" id="436420677"> | ||||
| 										<int key="NSCellFlags">-2076049856</int> | ||||
| @ -512,7 +515,6 @@ | ||||
| 												</object> | ||||
| 											</object> | ||||
| 										</object> | ||||
| 										<int key="NSSelectedIndex">2</int> | ||||
| 										<bool key="NSPullDown">YES</bool> | ||||
| 										<int key="NSPreferredEdge">3</int> | ||||
| 										<bool key="NSUsesItemFromMenu">YES</bool> | ||||
| @ -543,6 +545,7 @@ | ||||
| 									<int key="NSvFlags">256</int> | ||||
| 									<string key="NSFrame">{{4, 14}, {67, 25}}</string> | ||||
| 									<reference key="NSSuperview"/> | ||||
| 									<reference key="NSWindow"/> | ||||
| 									<bool key="NSEnabled">YES</bool> | ||||
| 									<object class="NSSegmentedCell" key="NSCell" id="211272396"> | ||||
| 										<int key="NSCellFlags">67239424</int> | ||||
| @ -948,15 +951,6 @@ | ||||
| 									<reference key="NSOnImage" ref="852972005"/> | ||||
| 									<reference key="NSMixedImage" ref="218295580"/> | ||||
| 								</object> | ||||
| 								<object class="NSMenuItem" id="29406775"> | ||||
| 									<reference key="NSMenu" ref="7402560"/> | ||||
| 									<string key="NSTitle">Unlock dupeGuru</string> | ||||
| 									<string key="NSKeyEquiv"/> | ||||
| 									<int key="NSKeyEquivModMask">1048576</int> | ||||
| 									<int key="NSMnemonicLoc">2147483647</int> | ||||
| 									<reference key="NSOnImage" ref="852972005"/> | ||||
| 									<reference key="NSMixedImage" ref="218295580"/> | ||||
| 								</object> | ||||
| 								<object class="NSMenuItem" id="688262014"> | ||||
| 									<reference key="NSMenu" ref="7402560"/> | ||||
| 									<string key="NSTitle">Check for update...</string> | ||||
| @ -1938,22 +1932,6 @@ | ||||
| 					</object> | ||||
| 					<int key="connectionID">748</int> | ||||
| 				</object> | ||||
| 				<object class="IBConnectionRecord"> | ||||
| 					<object class="IBActionConnection" key="connection"> | ||||
| 						<string key="label">unlockApp:</string> | ||||
| 						<reference key="source" ref="91622651"/> | ||||
| 						<reference key="destination" ref="29406775"/> | ||||
| 					</object> | ||||
| 					<int key="connectionID">755</int> | ||||
| 				</object> | ||||
| 				<object class="IBConnectionRecord"> | ||||
| 					<object class="IBOutletConnection" key="connection"> | ||||
| 						<string key="label">unlockMenuItem</string> | ||||
| 						<reference key="source" ref="91622651"/> | ||||
| 						<reference key="destination" ref="29406775"/> | ||||
| 					</object> | ||||
| 					<int key="connectionID">756</int> | ||||
| 				</object> | ||||
| 				<object class="IBConnectionRecord"> | ||||
| 					<object class="IBOutletConnection" key="connection"> | ||||
| 						<string key="label">app</string> | ||||
| @ -2469,7 +2447,6 @@ | ||||
| 							<reference ref="873971427"/> | ||||
| 							<reference ref="941940359"/> | ||||
| 							<reference ref="234345427"/> | ||||
| 							<reference ref="29406775"/> | ||||
| 							<reference ref="688262014"/> | ||||
| 						</object> | ||||
| 						<reference key="parent" ref="162097048"/> | ||||
| @ -2519,11 +2496,6 @@ | ||||
| 						<reference key="object" ref="234345427"/> | ||||
| 						<reference key="parent" ref="7402560"/> | ||||
| 					</object> | ||||
| 					<object class="IBObjectRecord"> | ||||
| 						<int key="objectID">754</int> | ||||
| 						<reference key="object" ref="29406775"/> | ||||
| 						<reference key="parent" ref="7402560"/> | ||||
| 					</object> | ||||
| 					<object class="IBObjectRecord"> | ||||
| 						<int key="objectID">950</int> | ||||
| 						<reference key="object" ref="688262014"/> | ||||
| @ -3404,8 +3376,6 @@ | ||||
| 					<string>739.ImportedFromIB2</string> | ||||
| 					<string>740.IBPluginDependency</string> | ||||
| 					<string>740.ImportedFromIB2</string> | ||||
| 					<string>754.IBPluginDependency</string> | ||||
| 					<string>754.ImportedFromIB2</string> | ||||
| 					<string>872.IBPluginDependency</string> | ||||
| 					<string>872.ImportedFromIB2</string> | ||||
| 					<string>880.IBPluginDependency</string> | ||||
| @ -3492,7 +3462,7 @@ | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<string>{{294, 462}, {617, 227}}</string> | ||||
| 					<string>{{294, 689}, {617, 0}}</string> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| @ -3572,7 +3542,7 @@ | ||||
| 					<boolean value="YES"/> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<boolean value="YES"/> | ||||
| 					<string>{{152, 575}, {221, 193}}</string> | ||||
| 					<string>{{152, 595}, {221, 173}}</string> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<boolean value="YES"/> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| @ -3676,8 +3646,6 @@ | ||||
| 					<boolean value="YES"/> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<boolean value="YES"/> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<boolean value="YES"/> | ||||
| 					<boolean value="YES"/> | ||||
| 					<string>com.apple.InterfaceBuilder.CocoaPlugin</string> | ||||
| 					<boolean value="YES"/> | ||||
| @ -3827,17 +3795,6 @@ | ||||
| 				<object class="IBPartialClassDescription"> | ||||
| 					<string key="className">AppDelegateBase</string> | ||||
| 					<string key="superclassName">NSObject</string> | ||||
| 					<object class="NSMutableDictionary" key="actions"> | ||||
| 						<string key="NS.key.0">unlockApp:</string> | ||||
| 						<string key="NS.object.0">id</string> | ||||
| 					</object> | ||||
| 					<object class="NSMutableDictionary" key="actionInfosByName"> | ||||
| 						<string key="NS.key.0">unlockApp:</string> | ||||
| 						<object class="IBActionInfo" key="NS.object.0"> | ||||
| 							<string key="name">unlockApp:</string> | ||||
| 							<string key="candidateClassName">id</string> | ||||
| 						</object> | ||||
| 					</object> | ||||
| 					<object class="NSMutableDictionary" key="outlets"> | ||||
| 						<bool key="EncodedWithXMLCoder">YES</bool> | ||||
| 						<object class="NSArray" key="dict.sortedKeys"> | ||||
| @ -3845,14 +3802,12 @@ | ||||
| 							<string>py</string> | ||||
| 							<string>recentDirectories</string> | ||||
| 							<string>result</string> | ||||
| 							<string>unlockMenuItem</string> | ||||
| 						</object> | ||||
| 						<object class="NSMutableArray" key="dict.values"> | ||||
| 							<bool key="EncodedWithXMLCoder">YES</bool> | ||||
| 							<string>PyDupeGuruBase</string> | ||||
| 							<string>RecentDirectories</string> | ||||
| 							<string>ResultWindowBase</string> | ||||
| 							<string>NSMenuItem</string> | ||||
| 						</object> | ||||
| 					</object> | ||||
| 					<object class="NSMutableDictionary" key="toOneOutletInfosByName"> | ||||
| @ -3862,7 +3817,6 @@ | ||||
| 							<string>py</string> | ||||
| 							<string>recentDirectories</string> | ||||
| 							<string>result</string> | ||||
| 							<string>unlockMenuItem</string> | ||||
| 						</object> | ||||
| 						<object class="NSMutableArray" key="dict.values"> | ||||
| 							<bool key="EncodedWithXMLCoder">YES</bool> | ||||
| @ -3878,10 +3832,6 @@ | ||||
| 								<string key="name">result</string> | ||||
| 								<string key="candidateClassName">ResultWindowBase</string> | ||||
| 							</object> | ||||
| 							<object class="IBToOneOutletInfo"> | ||||
| 								<string key="name">unlockMenuItem</string> | ||||
| 								<string key="candidateClassName">NSMenuItem</string> | ||||
| 							</object> | ||||
| 						</object> | ||||
| 					</object> | ||||
| 					<object class="IBClassDescriptionSource" key="sourceIdentifier"> | ||||
| @ -3975,14 +3925,6 @@ | ||||
| 						<string key="minorKey">../base/PyDupeGuru.h</string> | ||||
| 					</object> | ||||
| 				</object> | ||||
| 				<object class="IBPartialClassDescription"> | ||||
| 					<string key="className">PyRegistrable</string> | ||||
| 					<string key="superclassName">NSObject</string> | ||||
| 					<object class="IBClassDescriptionSource" key="sourceIdentifier"> | ||||
| 						<string key="majorKey">IBProjectSource</string> | ||||
| 						<string key="minorKey">../PyRegistrable.h</string> | ||||
| 					</object> | ||||
| 				</object> | ||||
| 				<object class="IBPartialClassDescription"> | ||||
| 					<string key="className">RecentDirectories</string> | ||||
| 					<string key="superclassName">NSObject</string> | ||||
|  | ||||
| @ -8,7 +8,6 @@ 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" | ||||
|  | ||||
| @ -9,7 +9,6 @@ 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 "AppDelegate.h" | ||||
| #import "Consts.h" | ||||
|  | ||||
| @ -47,7 +47,6 @@ | ||||
| 		CE515DF40FC6C12E00EC695D /* HSErrorReportWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE30FC6C12E00EC695D /* HSErrorReportWindow.m */; }; | ||||
| 		CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DE70FC6C12E00EC695D /* ProgressController.m */; }; | ||||
| 		CE515DF70FC6C12E00EC695D /* RecentDirectories.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DEA0FC6C12E00EC695D /* RecentDirectories.m */; }; | ||||
| 		CE515DF80FC6C12E00EC695D /* RegistrationInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DEC0FC6C12E00EC695D /* RegistrationInterface.m */; }; | ||||
| 		CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DF00FC6C12E00EC695D /* Utils.m */; }; | ||||
| 		CE515DFB0FC6C12E00EC695D /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515DF20FC6C12E00EC695D /* ValueTransformers.m */; }; | ||||
| 		CE515E1D0FC6C19300EC695D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE515E160FC6C19300EC695D /* AppDelegate.m */; }; | ||||
| @ -57,11 +56,12 @@ | ||||
| 		CE6032C00FE6784C007E33FF /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6032BF0FE6784C007E33FF /* DetailsPanel.m */; }; | ||||
| 		CE68EE6809ABC48000971085 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE68EE6609ABC48000971085 /* DirectoryPanel.m */; }; | ||||
| 		CE6E0E9F1054EB97008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */; }; | ||||
| 		CE74A12412537F06008A8DF0 /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */; }; | ||||
| 		CE74A12712537F2E008A8DF0 /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */; }; | ||||
| 		CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE848A1809DD85810004CB44 /* Consts.h */; }; | ||||
| 		CE900AD2109B238600754048 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE900AD1109B238600754048 /* Preferences.xib */; }; | ||||
| 		CE900AD7109B2A9B00754048 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE900AD6109B2A9B00754048 /* MainMenu.xib */; }; | ||||
| 		CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB14D28124DFC2800FA7481 /* ResultTable.m */; }; | ||||
| 		CECC563B12144A9000ABF262 /* registration.xib in Resources */ = {isa = PBXBuildFile; fileRef = CECC563912144A9000ABF262 /* registration.xib */; }; | ||||
| 		CEDF07A3112493B200EE5BC0 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDF07A2112493B200EE5BC0 /* StatsLabel.m */; }; | ||||
| 		CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; }; | ||||
| 		CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; }; | ||||
| @ -101,7 +101,6 @@ | ||||
| 		CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE003CBC11242D00004B0AA7 /* PyGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUI.h; sourceTree = "<group>"; }; | ||||
| 		CE003CBD11242D00004B0AA7 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; }; | ||||
| 		CE003CBE11242D00004B0AA7 /* PyRegistrable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyRegistrable.h; path = ../../cocoalib/PyRegistrable.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE003CC011242D00004B0AA7 /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; }; | ||||
| 		CE003CC111242D00004B0AA7 /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; }; | ||||
| 		CE003CC211242D00004B0AA7 /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; }; | ||||
| @ -140,8 +139,6 @@ | ||||
| 		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; }; | ||||
| 		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; }; | ||||
| @ -161,13 +158,16 @@ | ||||
| 		CE68EE6509ABC48000971085 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE68EE6609ABC48000971085 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE6E0E9E1054EB97008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = "<group>"; }; | ||||
| 		CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE74A12312537F06008A8DF0 /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyFairware.h; path = ../../cocoalib/PyFairware.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE74A12612537F2E008A8DF0 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = "<group>"; }; | ||||
| 		CE900AD1109B238600754048 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Preferences.xib; sourceTree = "<group>"; }; | ||||
| 		CE900AD6109B2A9B00754048 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = MainMenu.xib; path = ../../base/xib/MainMenu.xib; sourceTree = "<group>"; }; | ||||
| 		CEB14D26124DFC2800FA7481 /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyResultTable.h; path = ../base/PyResultTable.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CEB14D27124DFC2800FA7481 /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CEB14D28124DFC2800FA7481 /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CECC563A12144A9000ABF262 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/registration.xib; sourceTree = SOURCE_ROOT; }; | ||||
| 		CED0A591111C9FD10020AD7D /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDetailsPanel.h; path = ../base/PyDetailsPanel.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CEDF07A0112493B200EE5BC0 /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyStatsLabel.h; path = ../base/PyStatsLabel.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CEDF07A1112493B200EE5BC0 /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; }; | ||||
| @ -347,7 +347,7 @@ | ||||
| 		CE4B59C41119919700C06C9E /* xib */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				CECC563912144A9000ABF262 /* registration.xib */, | ||||
| 				CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */, | ||||
| 				CE4B59C51119919700C06C9E /* ErrorReportWindow.xib */, | ||||
| 				CE4B59C61119919700C06C9E /* progress.xib */, | ||||
| 			); | ||||
| @ -367,16 +367,16 @@ | ||||
| 				CE515DE10FC6C12E00EC695D /* Dialogs.m */, | ||||
| 				CE515DE20FC6C12E00EC695D /* HSErrorReportWindow.h */, | ||||
| 				CE515DE30FC6C12E00EC695D /* HSErrorReportWindow.m */, | ||||
| 				CE74A12112537F06008A8DF0 /* HSFairwareReminder.h */, | ||||
| 				CE74A12212537F06008A8DF0 /* HSFairwareReminder.m */, | ||||
| 				CE74A12312537F06008A8DF0 /* PyFairware.h */, | ||||
| 				CE003CB911242D00004B0AA7 /* NSEventAdditions.h */, | ||||
| 				CE003CBA11242D00004B0AA7 /* NSEventAdditions.m */, | ||||
| 				CE515DE60FC6C12E00EC695D /* ProgressController.h */, | ||||
| 				CE515DE70FC6C12E00EC695D /* ProgressController.m */, | ||||
| 				CE515DE80FC6C12E00EC695D /* PyApp.h */, | ||||
| 				CE003CBE11242D00004B0AA7 /* PyRegistrable.h */, | ||||
| 				CE515DE90FC6C12E00EC695D /* RecentDirectories.h */, | ||||
| 				CE515DEA0FC6C12E00EC695D /* RecentDirectories.m */, | ||||
| 				CE515DEB0FC6C12E00EC695D /* RegistrationInterface.h */, | ||||
| 				CE515DEC0FC6C12E00EC695D /* RegistrationInterface.m */, | ||||
| 				CE515DEF0FC6C12E00EC695D /* Utils.h */, | ||||
| 				CE515DF00FC6C12E00EC695D /* Utils.m */, | ||||
| 				CE515DF10FC6C12E00EC695D /* ValueTransformers.h */, | ||||
| @ -491,7 +491,7 @@ | ||||
| 				CE4B59C81119919700C06C9E /* ErrorReportWindow.xib in Resources */, | ||||
| 				CE4B59C91119919700C06C9E /* progress.xib in Resources */, | ||||
| 				CE0A0C061175A24800DCA3C6 /* ProblemDialog.xib in Resources */, | ||||
| 				CECC563B12144A9000ABF262 /* registration.xib in Resources */, | ||||
| 				CE74A12712537F2E008A8DF0 /* FairwareReminder.xib in Resources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| @ -510,7 +510,6 @@ | ||||
| 				CE515DF40FC6C12E00EC695D /* HSErrorReportWindow.m in Sources */, | ||||
| 				CE515DF60FC6C12E00EC695D /* ProgressController.m in Sources */, | ||||
| 				CE515DF70FC6C12E00EC695D /* RecentDirectories.m in Sources */, | ||||
| 				CE515DF80FC6C12E00EC695D /* RegistrationInterface.m in Sources */, | ||||
| 				CE515DFA0FC6C12E00EC695D /* Utils.m in Sources */, | ||||
| 				CE515DFB0FC6C12E00EC695D /* ValueTransformers.m in Sources */, | ||||
| 				CE515E1D0FC6C19300EC695D /* AppDelegate.m in Sources */, | ||||
| @ -531,18 +530,19 @@ | ||||
| 				CE0A0C041175A1DE00DCA3C6 /* ProblemDialog.m in Sources */, | ||||
| 				CEB14D29124DFC2800FA7481 /* ResultTable.m in Sources */, | ||||
| 				CE578303124DFC660004769C /* HSTableView.m in Sources */, | ||||
| 				CE74A12412537F06008A8DF0 /* HSFairwareReminder.m in Sources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| /* End PBXSourcesBuildPhase section */ | ||||
| 
 | ||||
| /* Begin PBXVariantGroup section */ | ||||
| 		CECC563912144A9000ABF262 /* registration.xib */ = { | ||||
| 		CE74A12512537F2E008A8DF0 /* FairwareReminder.xib */ = { | ||||
| 			isa = PBXVariantGroup; | ||||
| 			children = ( | ||||
| 				CECC563A12144A9000ABF262 /* en */, | ||||
| 				CE74A12612537F2E008A8DF0 /* en */, | ||||
| 			); | ||||
| 			name = registration.xib; | ||||
| 			name = FairwareReminder.xib; | ||||
| 			path = ../../cocoalib/xib; | ||||
| 			sourceTree = SOURCE_ROOT; | ||||
| 		}; | ||||
|  | ||||
| @ -8,7 +8,6 @@ http://www.hardcoded.net/licenses/hs_license | ||||
| 
 | ||||
| #import "AppDelegate.h" | ||||
| #import "ProgressController.h" | ||||
| #import "RegistrationInterface.h" | ||||
| #import "Utils.h" | ||||
| #import "ValueTransformers.h" | ||||
| #import "Consts.h" | ||||
|  | ||||
| @ -9,7 +9,6 @@ http://www.hardcoded.net/licenses/hs_license | ||||
| #import "ResultWindow.h" | ||||
| #import "Dialogs.h" | ||||
| #import "ProgressController.h" | ||||
| #import "RegistrationInterface.h" | ||||
| #import "Utils.h" | ||||
| #import "AppDelegate.h" | ||||
| #import "Consts.h" | ||||
|  | ||||
| @ -17,6 +17,8 @@ | ||||
| 		CE0C2AC81177021600BC749F /* ProblemDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0C2AC71177021600BC749F /* ProblemDialog.xib */; }; | ||||
| 		CE15C8A80ADEB8B50061D4A5 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */; }; | ||||
| 		CE15C8C00ADEB8D40061D4A5 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */; }; | ||||
| 		CE1EB5FE12537F9D0034AABB /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */; }; | ||||
| 		CE1EB60112537FB90034AABB /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */; }; | ||||
| 		CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; }; | ||||
| 		CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; }; | ||||
| 		CE381D0509915304003581CE /* dg_cocoa.plugin in Resources */ = {isa = PBXBuildFile; fileRef = CE381CF509915304003581CE /* dg_cocoa.plugin */; }; | ||||
| @ -31,7 +33,6 @@ | ||||
| 		CE80DB2F0FC192D60086DCA6 /* HSErrorReportWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB1E0FC192D60086DCA6 /* HSErrorReportWindow.m */; }; | ||||
| 		CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB220FC192D60086DCA6 /* ProgressController.m */; }; | ||||
| 		CE80DB320FC192D60086DCA6 /* RecentDirectories.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB250FC192D60086DCA6 /* RecentDirectories.m */; }; | ||||
| 		CE80DB330FC192D60086DCA6 /* RegistrationInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB270FC192D60086DCA6 /* RegistrationInterface.m */; }; | ||||
| 		CE80DB350FC192D60086DCA6 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB2B0FC192D60086DCA6 /* Utils.m */; }; | ||||
| 		CE80DB360FC192D60086DCA6 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB2D0FC192D60086DCA6 /* ValueTransformers.m */; }; | ||||
| 		CE80DB470FC193650086DCA6 /* NSNotificationAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB460FC193650086DCA6 /* NSNotificationAdditions.m */; }; | ||||
| @ -40,7 +41,6 @@ | ||||
| 		CE80DB8B0FC1951C0086DCA6 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB860FC1951C0086DCA6 /* DirectoryPanel.m */; }; | ||||
| 		CE80DB8C0FC1951C0086DCA6 /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE80DB890FC1951C0086DCA6 /* ResultWindow.m */; }; | ||||
| 		CE848A1909DD85810004CB44 /* Consts.h in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE848A1809DD85810004CB44 /* Consts.h */; }; | ||||
| 		CE895D7B12144A7800E74705 /* registration.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE895D7912144A7800E74705 /* registration.xib */; }; | ||||
| 		CE95865F112C516400F95FD2 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE95865D112C516400F95FD2 /* StatsLabel.m */; }; | ||||
| 		CE9EA7561122C96C008CD2BC /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7441122C96C008CD2BC /* HSGUIController.m */; }; | ||||
| 		CE9EA7571122C96C008CD2BC /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9EA7461122C96C008CD2BC /* HSOutline.m */; }; | ||||
| @ -97,6 +97,10 @@ | ||||
| 		CE0C2AC71177021600BC749F /* ProblemDialog.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = ProblemDialog.xib; path = ../base/xib/ProblemDialog.xib; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE15C8A70ADEB8B50061D4A5 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = /Library/Frameworks/Sparkle.framework; sourceTree = "<absolute>"; }; | ||||
| 		CE18126F111C9D5100E49FCE /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyDetailsPanel.h; path = ../base/PyDetailsPanel.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE1EB5FD12537F9D0034AABB /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyFairware.h; path = ../../cocoalib/PyFairware.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE1EB60012537FB90034AABB /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; }; | ||||
| 		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; }; | ||||
| @ -120,8 +124,6 @@ | ||||
| 		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; }; | ||||
| 		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; }; | ||||
| @ -139,7 +141,6 @@ | ||||
| 		CE80DB880FC1951C0086DCA6 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE80DB890FC1951C0086DCA6 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE848A1809DD85810004CB44 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Consts.h; sourceTree = "<group>"; }; | ||||
| 		CE895D7A12144A7800E74705 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/registration.xib; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE958659112C516400F95FD2 /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyStatsLabel.h; path = ../base/PyStatsLabel.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE95865C112C516400F95FD2 /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE95865D112C516400F95FD2 /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; }; | ||||
| @ -153,7 +154,6 @@ | ||||
| 		CE9EA74A1122C96C008CD2BC /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE9EA74C1122C96C008CD2BC /* PyGUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUI.h; sourceTree = "<group>"; }; | ||||
| 		CE9EA74D1122C96C008CD2BC /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; }; | ||||
| 		CE9EA74E1122C96C008CD2BC /* PyRegistrable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyRegistrable.h; path = ../../cocoalib/PyRegistrable.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE9EA7501122C96C008CD2BC /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; }; | ||||
| 		CE9EA7511122C96C008CD2BC /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; }; | ||||
| 		CE9EA7521122C96C008CD2BC /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; }; | ||||
| @ -297,7 +297,7 @@ | ||||
| 		CE7AC9141119911200D02F6C /* xib */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				CE895D7912144A7800E74705 /* registration.xib */, | ||||
| 				CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */, | ||||
| 				CE7AC9151119911200D02F6C /* ErrorReportWindow.xib */, | ||||
| 				CE7AC9161119911200D02F6C /* progress.xib */, | ||||
| 			); | ||||
| @ -323,14 +323,14 @@ | ||||
| 				CE80DB1C0FC192D60086DCA6 /* Dialogs.m */, | ||||
| 				CE80DB1D0FC192D60086DCA6 /* HSErrorReportWindow.h */, | ||||
| 				CE80DB1E0FC192D60086DCA6 /* HSErrorReportWindow.m */, | ||||
| 				CE1EB5FB12537F9D0034AABB /* HSFairwareReminder.h */, | ||||
| 				CE1EB5FC12537F9D0034AABB /* HSFairwareReminder.m */, | ||||
| 				CE1EB5FD12537F9D0034AABB /* PyFairware.h */, | ||||
| 				CE80DB210FC192D60086DCA6 /* ProgressController.h */, | ||||
| 				CE80DB220FC192D60086DCA6 /* ProgressController.m */, | ||||
| 				CE80DB230FC192D60086DCA6 /* PyApp.h */, | ||||
| 				CE9EA74E1122C96C008CD2BC /* PyRegistrable.h */, | ||||
| 				CE80DB240FC192D60086DCA6 /* RecentDirectories.h */, | ||||
| 				CE80DB250FC192D60086DCA6 /* RecentDirectories.m */, | ||||
| 				CE80DB260FC192D60086DCA6 /* RegistrationInterface.h */, | ||||
| 				CE80DB270FC192D60086DCA6 /* RegistrationInterface.m */, | ||||
| 				CE80DB2A0FC192D60086DCA6 /* Utils.h */, | ||||
| 				CE80DB2B0FC192D60086DCA6 /* Utils.m */, | ||||
| 				CE80DB2C0FC192D60086DCA6 /* ValueTransformers.h */, | ||||
| @ -499,7 +499,7 @@ | ||||
| 				CE7AC9181119911200D02F6C /* ErrorReportWindow.xib in Resources */, | ||||
| 				CE7AC9191119911200D02F6C /* progress.xib in Resources */, | ||||
| 				CE0C2AC81177021600BC749F /* ProblemDialog.xib in Resources */, | ||||
| 				CE895D7B12144A7800E74705 /* registration.xib in Resources */, | ||||
| 				CE1EB60112537FB90034AABB /* FairwareReminder.xib in Resources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| @ -519,7 +519,6 @@ | ||||
| 				CE80DB2F0FC192D60086DCA6 /* HSErrorReportWindow.m in Sources */, | ||||
| 				CE80DB310FC192D60086DCA6 /* ProgressController.m in Sources */, | ||||
| 				CE80DB320FC192D60086DCA6 /* RecentDirectories.m in Sources */, | ||||
| 				CE80DB330FC192D60086DCA6 /* RegistrationInterface.m in Sources */, | ||||
| 				CE80DB350FC192D60086DCA6 /* Utils.m in Sources */, | ||||
| 				CE80DB360FC192D60086DCA6 /* ValueTransformers.m in Sources */, | ||||
| 				CE80DB470FC193650086DCA6 /* NSNotificationAdditions.m in Sources */, | ||||
| @ -542,18 +541,19 @@ | ||||
| 				CE0C2ABD1177014200BC749F /* ProblemDialog.m in Sources */, | ||||
| 				CEF12A7E124DFD400087B51D /* HSTableView.m in Sources */, | ||||
| 				CEF12A84124DFD620087B51D /* ResultTable.m in Sources */, | ||||
| 				CE1EB5FE12537F9D0034AABB /* HSFairwareReminder.m in Sources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| /* End PBXSourcesBuildPhase section */ | ||||
| 
 | ||||
| /* Begin PBXVariantGroup section */ | ||||
| 		CE895D7912144A7800E74705 /* registration.xib */ = { | ||||
| 		CE1EB5FF12537FB90034AABB /* FairwareReminder.xib */ = { | ||||
| 			isa = PBXVariantGroup; | ||||
| 			children = ( | ||||
| 				CE895D7A12144A7800E74705 /* en */, | ||||
| 				CE1EB60012537FB90034AABB /* en */, | ||||
| 			); | ||||
| 			name = registration.xib; | ||||
| 			name = FairwareReminder.xib; | ||||
| 			path = ../../cocoalib/xib; | ||||
| 			sourceTree = SOURCE_ROOT; | ||||
| 		}; | ||||
|  | ||||
| @ -8,7 +8,6 @@ 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 "DetailsPanel.h" | ||||
|  | ||||
| @ -30,10 +30,11 @@ | ||||
| 		CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */; }; | ||||
| 		CE76FDDF111EE42F006618EA /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDDE111EE42F006618EA /* HSOutline.m */; }; | ||||
| 		CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDF6111EE561006618EA /* NSEventAdditions.m */; }; | ||||
| 		CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; }; | ||||
| 		CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; }; | ||||
| 		CE8C53BC117324CE0011B41F /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE8C53BB117324CE0011B41F /* HSTable.m */; }; | ||||
| 		CE91F216113BC22D0010360B /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE91F214113BC22D0010360B /* StatsLabel.m */; }; | ||||
| 		CEAC6811109B0B7E00B43C85 /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEAC6810109B0B7E00B43C85 /* Preferences.xib */; }; | ||||
| 		CEBC6C3912144A4B007B43AE /* registration.xib in Resources */ = {isa = PBXBuildFile; fileRef = CEBC6C3712144A4B007B43AE /* registration.xib */; }; | ||||
| 		CEBE4D74111F0EE1009AAC6D /* HSWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */; }; | ||||
| 		CEDD92DA0FDD01640031C7B7 /* BRSingleLineFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = CEDD92D70FDD01640031C7B7 /* BRSingleLineFormatter.m */; }; | ||||
| 		CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; }; | ||||
| @ -47,7 +48,6 @@ | ||||
| 		CEFC7F9F0FC9517500CD5728 /* HSErrorReportWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */; }; | ||||
| 		CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F910FC9517500CD5728 /* ProgressController.m */; }; | ||||
| 		CEFC7FA20FC9517500CD5728 /* RecentDirectories.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F950FC9517500CD5728 /* RecentDirectories.m */; }; | ||||
| 		CEFC7FA30FC9517500CD5728 /* RegistrationInterface.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F970FC9517500CD5728 /* RegistrationInterface.m */; }; | ||||
| 		CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9B0FC9517500CD5728 /* Utils.m */; }; | ||||
| 		CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */; }; | ||||
| 		CEFC7FB90FC951A700CD5728 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB20FC951A700CD5728 /* AppDelegate.m */; }; | ||||
| @ -114,13 +114,16 @@ | ||||
| 		CE76FDDE111EE42F006618EA /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; }; | ||||
| 		CE76FDF5111EE561006618EA /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE76FDF6111EE561006618EA /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE79638212536C6E008D405B /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyFairware.h; path = ../../cocoalib/PyFairware.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE79638512536C94008D405B /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/FairwareReminder.xib; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE8C53B61173248F0011B41F /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; }; | ||||
| 		CE8C53BB117324CE0011B41F /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; }; | ||||
| 		CE91F210113BC22D0010360B /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyStatsLabel.h; path = ../base/PyStatsLabel.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE91F213113BC22D0010360B /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; }; | ||||
| 		CE91F214113BC22D0010360B /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; }; | ||||
| 		CEAC6810109B0B7E00B43C85 /* Preferences.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Preferences.xib; path = xib/Preferences.xib; sourceTree = "<group>"; }; | ||||
| 		CEBC6C3812144A4B007B43AE /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = ../../cocoalib/en.lproj/registration.xib; sourceTree = SOURCE_ROOT; }; | ||||
| 		CEBE4D72111F0EE1009AAC6D /* HSWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSWindowController.h; sourceTree = "<group>"; }; | ||||
| 		CEBE4D73111F0EE1009AAC6D /* HSWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSWindowController.m; sourceTree = "<group>"; }; | ||||
| 		CEDD92D60FDD01640031C7B7 /* BRSingleLineFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BRSingleLineFormatter.h; path = ../../cocoalib/brsinglelineformatter/BRSingleLineFormatter.h; sourceTree = SOURCE_ROOT; }; | ||||
| @ -140,11 +143,8 @@ | ||||
| 		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; }; | ||||
| 		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; }; | ||||
| @ -252,7 +252,7 @@ | ||||
| 		CE19BC5F11199231007CCEB0 /* xib */ = { | ||||
| 			isa = PBXGroup; | ||||
| 			children = ( | ||||
| 				CEBC6C3712144A4B007B43AE /* registration.xib */, | ||||
| 				CE79638412536C94008D405B /* FairwareReminder.xib */, | ||||
| 				CE19BC6011199231007CCEB0 /* ErrorReportWindow.xib */, | ||||
| 				CE19BC6111199231007CCEB0 /* progress.xib */, | ||||
| 			); | ||||
| @ -348,14 +348,14 @@ | ||||
| 				CEFC7F8B0FC9517500CD5728 /* Dialogs.m */, | ||||
| 				CEFC7F8C0FC9517500CD5728 /* HSErrorReportWindow.h */, | ||||
| 				CEFC7F8D0FC9517500CD5728 /* HSErrorReportWindow.m */, | ||||
| 				CE79638A12536F4E008D405B /* HSFairwareReminder.h */, | ||||
| 				CE79638B12536F4E008D405B /* HSFairwareReminder.m */, | ||||
| 				CE79638212536C6E008D405B /* PyFairware.h */, | ||||
| 				CEFC7F900FC9517500CD5728 /* ProgressController.h */, | ||||
| 				CEFC7F910FC9517500CD5728 /* ProgressController.m */, | ||||
| 				CEFC7F920FC9517500CD5728 /* PyApp.h */, | ||||
| 				CEFC7F930FC9517500CD5728 /* PyRegistrable.h */, | ||||
| 				CEFC7F940FC9517500CD5728 /* RecentDirectories.h */, | ||||
| 				CEFC7F950FC9517500CD5728 /* RecentDirectories.m */, | ||||
| 				CEFC7F960FC9517500CD5728 /* RegistrationInterface.h */, | ||||
| 				CEFC7F970FC9517500CD5728 /* RegistrationInterface.m */, | ||||
| 				CEFC7F9A0FC9517500CD5728 /* Utils.h */, | ||||
| 				CEFC7F9B0FC9517500CD5728 /* Utils.m */, | ||||
| 				CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */, | ||||
| @ -462,7 +462,7 @@ | ||||
| 				CE19BC6311199231007CCEB0 /* ErrorReportWindow.xib in Resources */, | ||||
| 				CE19BC6411199231007CCEB0 /* progress.xib in Resources */, | ||||
| 				CE647E591173026F006D28BA /* ProblemDialog.xib in Resources */, | ||||
| 				CEBC6C3912144A4B007B43AE /* registration.xib in Resources */, | ||||
| 				CE79638612536C94008D405B /* FairwareReminder.xib in Resources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| @ -480,7 +480,6 @@ | ||||
| 				CEFC7F9F0FC9517500CD5728 /* HSErrorReportWindow.m in Sources */, | ||||
| 				CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */, | ||||
| 				CEFC7FA20FC9517500CD5728 /* RecentDirectories.m in Sources */, | ||||
| 				CEFC7FA30FC9517500CD5728 /* RegistrationInterface.m in Sources */, | ||||
| 				CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */, | ||||
| 				CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */, | ||||
| 				CEFC7FB90FC951A700CD5728 /* AppDelegate.m in Sources */, | ||||
| @ -501,18 +500,19 @@ | ||||
| 				CE8C53BC117324CE0011B41F /* HSTable.m in Sources */, | ||||
| 				CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */, | ||||
| 				CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */, | ||||
| 				CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */, | ||||
| 			); | ||||
| 			runOnlyForDeploymentPostprocessing = 0; | ||||
| 		}; | ||||
| /* End PBXSourcesBuildPhase section */ | ||||
| 
 | ||||
| /* Begin PBXVariantGroup section */ | ||||
| 		CEBC6C3712144A4B007B43AE /* registration.xib */ = { | ||||
| 		CE79638412536C94008D405B /* FairwareReminder.xib */ = { | ||||
| 			isa = PBXVariantGroup; | ||||
| 			children = ( | ||||
| 				CEBC6C3812144A4B007B43AE /* en */, | ||||
| 				CE79638512536C94008D405B /* en */, | ||||
| 			); | ||||
| 			name = registration.xib; | ||||
| 			name = FairwareReminder.xib; | ||||
| 			path = ../../cocoalib/xib; | ||||
| 			sourceTree = SOURCE_ROOT; | ||||
| 		}; | ||||
|  | ||||
							
								
								
									
										20
									
								
								core/app.py
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								core/app.py
									
									
									
									
									
								
							| @ -13,7 +13,7 @@ import subprocess | ||||
| import re | ||||
| 
 | ||||
| from send2trash import send2trash | ||||
| from hscommon.reg import RegistrableApplication, RegistrationRequired | ||||
| from hscommon.reg import RegistrableApplication | ||||
| from hscommon.notify import Broadcaster | ||||
| from hsutil import io, files | ||||
| from hsutil.path import Path | ||||
| @ -32,10 +32,8 @@ class NoScannableFileError(Exception): | ||||
|     pass | ||||
| 
 | ||||
| class DupeGuru(RegistrableApplication, Broadcaster): | ||||
|     DEMO_LIMIT_DESC = "In the demo version, only 10 duplicates per session can be sent to the recycle bin, moved or copied." | ||||
|      | ||||
|     def __init__(self, data_module, appdata, appid): | ||||
|         RegistrableApplication.__init__(self, appid) | ||||
|     def __init__(self, data_module, appdata): | ||||
|         RegistrableApplication.__init__(self, appid=1) | ||||
|         Broadcaster.__init__(self) | ||||
|         self.appdata = appdata | ||||
|         if not op.exists(self.appdata): | ||||
| @ -44,7 +42,6 @@ class DupeGuru(RegistrableApplication, Broadcaster): | ||||
|         self.directories = directories.Directories() | ||||
|         self.results = results.Results(data_module) | ||||
|         self.scanner = scanner.Scanner() | ||||
|         self.action_count = 0 | ||||
|         self.options = { | ||||
|             'escape_filter_regexp': True, | ||||
|             'clean_empty_dirs': False, | ||||
| @ -52,15 +49,6 @@ class DupeGuru(RegistrableApplication, Broadcaster): | ||||
|         } | ||||
|         self.selected_dupes = [] | ||||
|      | ||||
|     def _demo_check(self): | ||||
|         if self.registered: | ||||
|             return | ||||
|         count = self.results.mark_count | ||||
|         if count + self.action_count > 10: | ||||
|             raise RegistrationRequired() | ||||
|         else: | ||||
|             self.action_count += count | ||||
|      | ||||
|     def _do_delete(self, j, replace_with_hardlinks): | ||||
|         def op(dupe): | ||||
|             j.add_progress() | ||||
| @ -206,12 +194,10 @@ class DupeGuru(RegistrableApplication, Broadcaster): | ||||
|             j.start_job(self.results.mark_count) | ||||
|             self.results.perform_on_marked(op, not copy) | ||||
|          | ||||
|         self._demo_check() | ||||
|         jobid = JOB_COPY if copy else JOB_MOVE | ||||
|         self._start_job(jobid, do) | ||||
|      | ||||
|     def delete_marked(self, replace_with_hardlinks=False): | ||||
|         self._demo_check() | ||||
|         self._start_job(JOB_DELETE, self._do_delete, replace_with_hardlinks) | ||||
|      | ||||
|     def export_to_xhtml(self, column_ids): | ||||
|  | ||||
| @ -14,7 +14,6 @@ from hscommon.cocoa import install_exception_hook | ||||
| from hscommon.cocoa.objcmin import (NSNotificationCenter, NSUserDefaults, | ||||
|     NSSearchPathForDirectoriesInDomains, NSApplicationSupportDirectory, NSUserDomainMask, | ||||
|     NSWorkspace) | ||||
| from hscommon.reg import RegistrationRequired | ||||
| 
 | ||||
| from . import app | ||||
| 
 | ||||
| @ -26,24 +25,15 @@ JOBID2TITLE = { | ||||
|     app.JOB_DELETE: "Sending to Trash", | ||||
| } | ||||
| 
 | ||||
| def demo_method(method): | ||||
|     def wrapper(self, *args, **kwargs): | ||||
|         try: | ||||
|             return method(self, *args, **kwargs) | ||||
|         except RegistrationRequired: | ||||
|             NSNotificationCenter.defaultCenter().postNotificationName_object_('RegistrationRequired', self) | ||||
|      | ||||
|     return wrapper | ||||
| 
 | ||||
| class DupeGuru(app.DupeGuru): | ||||
|     def __init__(self, data_module, appdata_subdir, appid): | ||||
|     def __init__(self, data_module, appdata_subdir): | ||||
|         LOGGING_LEVEL = logging.DEBUG if NSUserDefaults.standardUserDefaults().boolForKey_('debug') else logging.WARNING | ||||
|         logging.basicConfig(level=LOGGING_LEVEL, format='%(levelname)s %(message)s') | ||||
|         logging.debug('started in debug mode') | ||||
|         install_exception_hook() | ||||
|         appsupport = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, True)[0] | ||||
|         appdata = op.join(appsupport, appdata_subdir) | ||||
|         app.DupeGuru.__init__(self, data_module, appdata, appid) | ||||
|         app.DupeGuru.__init__(self, data_module, appdata) | ||||
|         self.progress = cocoa.ThreadedJobPerformer() | ||||
|      | ||||
|     #--- Override | ||||
| @ -67,9 +57,6 @@ class DupeGuru(app.DupeGuru): | ||||
|             NSNotificationCenter.defaultCenter().postNotificationName_object_userInfo_('JobStarted', self, ud) | ||||
|      | ||||
|     #---Public | ||||
|     copy_or_move_marked = demo_method(app.DupeGuru.copy_or_move_marked) | ||||
|     delete_marked = demo_method(app.DupeGuru.delete_marked) | ||||
|      | ||||
|     def start_scanning(self): | ||||
|         self._select_dupes([]) | ||||
|         try: | ||||
|  | ||||
| @ -9,7 +9,7 @@ | ||||
| 
 | ||||
| # Common interface for all editions' dg_cocoa unit. | ||||
| 
 | ||||
| from hscommon.cocoa.inter import signature, PyTable, PyOutline, PyGUIObject, PyRegistrable | ||||
| from hscommon.cocoa.inter import signature, PyTable, PyOutline, PyGUIObject, PyFairware | ||||
| 
 | ||||
| from .gui.details_panel import DetailsPanel | ||||
| from .gui.directory_tree import DirectoryTree | ||||
| @ -22,7 +22,7 @@ from .gui.stats_label import StatsLabel | ||||
| from core import app, app_cocoa, data, directories, engine, export, ignore, results, fs, scanner | ||||
| from hsutil import conflict | ||||
| 
 | ||||
| class PyDupeGuruBase(PyRegistrable): | ||||
| class PyDupeGuruBase(PyFairware): | ||||
|     #---Directories | ||||
|     def addDirectory_(self, directory): | ||||
|         return self.py.add_directory(directory) | ||||
|  | ||||
| @ -26,7 +26,7 @@ JOBID2TITLE.update({ | ||||
| 
 | ||||
| class DupeGuruME(DupeGuruBase): | ||||
|     def __init__(self): | ||||
|         DupeGuruBase.__init__(self, data, 'dupeGuru Music Edition', appid=1) | ||||
|         DupeGuruBase.__init__(self, data, 'dupeGuru Music Edition') | ||||
|         self.scanner = scanner.ScannerME() | ||||
|         self.directories.fileclasses = [fs.Mp3File, fs.Mp4File, fs.WmaFile, fs.OggFile, fs.FlacFile, fs.AiffFile] | ||||
|         self.dead_tracks = [] | ||||
|  | ||||
| @ -134,7 +134,7 @@ class Directories(directories.Directories): | ||||
| 
 | ||||
| class DupeGuruPE(app_cocoa.DupeGuru): | ||||
|     def __init__(self): | ||||
|         app_cocoa.DupeGuru.__init__(self, data, 'dupeGuru Picture Edition', appid=5) | ||||
|         app_cocoa.DupeGuru.__init__(self, data, 'dupeGuru Picture Edition') | ||||
|         self.scanner = ScannerPE() | ||||
|         self.directories = Directories() | ||||
|         self.scanner.cache_path = op.join(self.appdata, 'cached_pictures.db') | ||||
|  | ||||
| @ -51,6 +51,6 @@ class Directories(DirectoriesBase): | ||||
| 
 | ||||
| class DupeGuru(DupeGuruBase): | ||||
|     def __init__(self): | ||||
|         DupeGuruBase.__init__(self, data, 'dupeGuru', appid=4) | ||||
|         DupeGuruBase.__init__(self, data, 'dupeGuru') | ||||
|         self.directories = Directories() | ||||
|      | ||||
|  | ||||
| @ -16,7 +16,6 @@ from PyQt4.QtCore import QTimer, QObject, QCoreApplication, QUrl, SIGNAL, pyqtSi | ||||
| from PyQt4.QtGui import QDesktopServices, QFileDialog, QDialog, QMessageBox | ||||
| 
 | ||||
| from hscommon import job | ||||
| from hscommon.reg import RegistrationRequired | ||||
| 
 | ||||
| from core.app import DupeGuru as DupeGuruBase, JOB_SCAN, JOB_LOAD, JOB_MOVE, JOB_COPY, JOB_DELETE | ||||
|      | ||||
| @ -38,28 +37,18 @@ JOBID2TITLE = { | ||||
|     JOB_DELETE: "Sending files to the recycle bin", | ||||
| } | ||||
| 
 | ||||
| def demo_method(method): | ||||
|     def wrapper(self, *args, **kwargs): | ||||
|         try: | ||||
|             return method(self, *args, **kwargs) | ||||
|         except RegistrationRequired: | ||||
|             msg = "The demo version of dupeGuru only allows 10 actions (delete/move/copy) per session." | ||||
|             QMessageBox.information(self.main_window, 'Demo', msg) | ||||
|      | ||||
|     return wrapper | ||||
| 
 | ||||
| class DupeGuru(DupeGuruBase, QObject): | ||||
|     LOGO_NAME = '<replace this>' | ||||
|     NAME = '<replace this>' | ||||
|     DELTA_COLUMNS = frozenset() | ||||
|      | ||||
|     def __init__(self, data_module, appid): | ||||
|     def __init__(self, data_module): | ||||
|         appdata = str(QDesktopServices.storageLocation(QDesktopServices.DataLocation)) | ||||
|         if not op.exists(appdata): | ||||
|             os.makedirs(appdata) | ||||
|         # For basicConfig() to work, we have to be sure that no logging has taken place before this call. | ||||
|         logging.basicConfig(filename=op.join(appdata, 'debug.log'), level=logging.WARNING) | ||||
|         DupeGuruBase.__init__(self, data_module, appdata, appid) | ||||
|         DupeGuruBase.__init__(self, data_module, appdata) | ||||
|         QObject.__init__(self) | ||||
|         self._setup() | ||||
|      | ||||
| @ -78,7 +67,7 @@ class DupeGuru(DupeGuruBase, QObject): | ||||
|          | ||||
|         self.reg = Registration(self) | ||||
|         self.set_registration(self.prefs.registration_code, self.prefs.registration_email) | ||||
|         if not self.registered: | ||||
|         if not self.registered and self.unpaid_hours >= 1: | ||||
|             # The timer scheme is because if the nag is not shown before the application is  | ||||
|             # completely initialized, the nag will be shown before the app shows up in the task bar | ||||
|             # In some circumstances, the nag is hidden by other window, which may make the user think | ||||
| @ -150,7 +139,6 @@ class DupeGuru(DupeGuruBase, QObject): | ||||
|         if self.main_window._confirm(title, msg): | ||||
|             DupeGuruBase.add_selected_to_ignore_list(self) | ||||
|      | ||||
|     @demo_method | ||||
|     def copy_or_move_marked(self, copy): | ||||
|         opname = 'copy' if copy else 'move' | ||||
|         title = "Select a directory to {0} marked files to".format(opname) | ||||
| @ -161,8 +149,6 @@ class DupeGuru(DupeGuruBase, QObject): | ||||
|         recreate_path = self.prefs.destination_type | ||||
|         DupeGuruBase.copy_or_move_marked(self, copy, destination, recreate_path) | ||||
|      | ||||
|     delete_marked = demo_method(DupeGuruBase.delete_marked) | ||||
|      | ||||
|     def remove_selected(self): | ||||
|         dupes = self.without_ref(self.selected_dupes) | ||||
|         if not dupes: | ||||
|  | ||||
| @ -21,7 +21,7 @@ class DupeGuru(DupeGuruBase): | ||||
|     DELTA_COLUMNS = frozenset([2, 3, 4, 5, 7]) | ||||
|      | ||||
|     def __init__(self): | ||||
|         DupeGuruBase.__init__(self, data, appid=1) | ||||
|         DupeGuruBase.__init__(self, data) | ||||
|      | ||||
|     def _setup(self): | ||||
|         self.scanner = scanner.ScannerME() | ||||
|  | ||||
| @ -64,7 +64,7 @@ class DupeGuru(DupeGuruBase): | ||||
|     DELTA_COLUMNS = frozenset([2, 5]) | ||||
|      | ||||
|     def __init__(self): | ||||
|         DupeGuruBase.__init__(self, data_pe, appid=5) | ||||
|         DupeGuruBase.__init__(self, data_pe) | ||||
|      | ||||
|     def _setup(self): | ||||
|         self.scanner = ScannerPE() | ||||
|  | ||||
| @ -31,7 +31,7 @@ class DupeGuru(DupeGuruBase): | ||||
|     DELTA_COLUMNS = frozenset([2, 4]) | ||||
|      | ||||
|     def __init__(self): | ||||
|         DupeGuruBase.__init__(self, data, appid=4) | ||||
|         DupeGuruBase.__init__(self, data) | ||||
|      | ||||
|     def _setup(self): | ||||
|         self.directories = Directories() | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user