mirror of
				https://github.com/arsenetar/dupeguru-cocoa.git
				synced 2025-09-11 17:58:17 +00:00 
			
		
		
		
	Un-xibless-ified MainMenu
This commit is contained in:
		
							parent
							
								
									b0dcf86e05
								
							
						
					
					
						commit
						8495402a3b
					
				
							
								
								
									
										1
									
								
								build.py
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								build.py
									
									
									
									
									
								
							| @ -84,7 +84,6 @@ def build_xibless(dest='cocoa/autogen'): | |||||||
|         ('problem_dialog.py', 'ProblemDialog_UI'), |         ('problem_dialog.py', 'ProblemDialog_UI'), | ||||||
|         ('directory_panel.py', 'DirectoryPanel_UI'), |         ('directory_panel.py', 'DirectoryPanel_UI'), | ||||||
|         ('prioritize_dialog.py', 'PrioritizeDialog_UI'), |         ('prioritize_dialog.py', 'PrioritizeDialog_UI'), | ||||||
|         ('main_menu.py', 'MainMenu_UI'), |  | ||||||
|         ('details_panel.py', 'DetailsPanel_UI'), |         ('details_panel.py', 'DetailsPanel_UI'), | ||||||
|         ('details_panel_picture.py', 'DetailsPanelPicture_UI'), |         ('details_panel_picture.py', 'DetailsPanelPicture_UI'), | ||||||
|     ] |     ] | ||||||
|  | |||||||
| @ -21,8 +21,8 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
| 
 | 
 | ||||||
| @interface AppDelegate : NSObject <NSFileManagerDelegate> | @interface AppDelegate : NSObject <NSFileManagerDelegate> | ||||||
| { | { | ||||||
|     NSMenu *recentResultsMenu; |     IBOutlet NSMenu *recentResultsMenu; | ||||||
|     NSMenu *columnsMenu; |     IBOutlet NSMenu *columnsMenu; | ||||||
|      |      | ||||||
|     PyDupeGuru *model; |     PyDupeGuru *model; | ||||||
|     ResultWindow *_resultWindow; |     ResultWindow *_resultWindow; | ||||||
| @ -47,7 +47,6 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
| - (void)setScanOptions; | - (void)setScanOptions; | ||||||
| 
 | 
 | ||||||
| /* Public */ | /* Public */ | ||||||
| - (void)finalizeInit; |  | ||||||
| - (ResultWindow *)resultWindow; | - (ResultWindow *)resultWindow; | ||||||
| - (DirectoryPanel *)directoryPanel; | - (DirectoryPanel *)directoryPanel; | ||||||
| - (DetailsPanel *)detailsPanel; | - (DetailsPanel *)detailsPanel; | ||||||
| @ -63,16 +62,16 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
| - (void)recentFileClicked:(NSString *)path; | - (void)recentFileClicked:(NSString *)path; | ||||||
| 
 | 
 | ||||||
| /* Actions */ | /* Actions */ | ||||||
| - (void)clearPictureCache; | - (IBAction)clearPictureCache:(id)sender; | ||||||
| - (void)loadResults; | - (IBAction)loadResults:(id)sender; | ||||||
| - (void)openWebsite; | - (IBAction)openWebsite:(id)sender; | ||||||
| - (void)openHelp; | - (IBAction)openHelp:(id)sender; | ||||||
| - (void)showAboutBox; | - (IBAction)showAboutBox:(id)sender; | ||||||
| - (void)showDirectoryWindow; | - (IBAction)showDirectoryWindow:(id)sender; | ||||||
| - (void)showPreferencesPanel; | - (IBAction)showPreferencesPanel:(id)sender; | ||||||
| - (void)showResultWindow; | - (IBAction)showResultWindow:(id)sender; | ||||||
| - (void)showIgnoreList; | - (IBAction)showIgnoreList:(id)sender; | ||||||
| - (void)startScanning; | - (IBAction)startScanning:(id)sender; | ||||||
| 
 | 
 | ||||||
| /* model --> view */ | /* model --> view */ | ||||||
| - (void)showMessage:(NSString *)msg; | - (void)showMessage:(NSString *)msg; | ||||||
|  | |||||||
| @ -64,9 +64,8 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [[NSUserDefaults standardUserDefaults] registerDefaults:d]; |     [[NSUserDefaults standardUserDefaults] registerDefaults:d]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (id)init | - (void)awakeFromNib | ||||||
| { | { | ||||||
|     self = [super init]; |  | ||||||
|     model = [[PyDupeGuru alloc] init]; |     model = [[PyDupeGuru alloc] init]; | ||||||
|     [model bindCallback:createCallback(@"DupeGuruView", self)]; |     [model bindCallback:createCallback(@"DupeGuruView", self)]; | ||||||
|     NSMutableIndexSet *contentsIndexes = [NSMutableIndexSet indexSet]; |     NSMutableIndexSet *contentsIndexes = [NSMutableIndexSet indexSet]; | ||||||
| @ -82,14 +81,6 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [NSValueTransformer setValueTransformer:vtScanTypeIsNotContent forName:@"vtScanTypeMusicIsNotContent"]; |     [NSValueTransformer setValueTransformer:vtScanTypeIsNotContent forName:@"vtScanTypeMusicIsNotContent"]; | ||||||
|     VTIsIntIn *vtScanTypeIsTag = [[[VTIsIntIn alloc] initWithValues:[NSIndexSet indexSetWithIndex:3] reverse:NO] autorelease]; |     VTIsIntIn *vtScanTypeIsTag = [[[VTIsIntIn alloc] initWithValues:[NSIndexSet indexSetWithIndex:3] reverse:NO] autorelease]; | ||||||
|     [NSValueTransformer setValueTransformer:vtScanTypeIsTag forName:@"vtScanTypeIsTag"]; |     [NSValueTransformer setValueTransformer:vtScanTypeIsTag forName:@"vtScanTypeIsTag"]; | ||||||
|     return self; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| - (void)finalizeInit |  | ||||||
| { |  | ||||||
|     // We can only finalize initialization once the main menu has been created, which cannot happen |  | ||||||
|     // before AppDelegate is created. |  | ||||||
|     NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; |  | ||||||
|     _recentResults = [[HSRecentFiles alloc] initWithName:@"recentResults" menu:recentResultsMenu]; |     _recentResults = [[HSRecentFiles alloc] initWithName:@"recentResults" menu:recentResultsMenu]; | ||||||
|     [_recentResults setDelegate:self]; |     [_recentResults setDelegate:self]; | ||||||
|     _directoryPanel = [[DirectoryPanel alloc] initWithParentApp:self]; |     _directoryPanel = [[DirectoryPanel alloc] initWithParentApp:self]; | ||||||
| @ -144,8 +135,8 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])]; |     [model setMixFileKind:n2b([ud objectForKey:@"mixFileKind"])]; | ||||||
|     [model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])]; |     [model setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])]; | ||||||
|     [model setMatchSimilarWords:n2b([ud objectForKey:@"matchSimilarWords"])]; |     [model setMatchSimilarWords:n2b([ud objectForKey:@"matchSimilarWords"])]; | ||||||
|     int smallFileThreshold = [ud integerForKey:@"smallFileThreshold"]; // In KB |     NSInteger smallFileThreshold = [ud integerForKey:@"smallFileThreshold"]; // In KB | ||||||
|     int sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes |     NSInteger sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes | ||||||
|     [model setSizeThreshold:sizeThreshold]; |     [model setSizeThreshold:sizeThreshold]; | ||||||
|     [model enable:n2b([ud objectForKey:@"scanTagTrack"]) scanForTag:@"track"]; |     [model enable:n2b([ud objectForKey:@"scanTagTrack"]) scanForTag:@"track"]; | ||||||
|     [model enable:n2b([ud objectForKey:@"scanTagArtist"]) scanForTag:@"artist"]; |     [model enable:n2b([ud objectForKey:@"scanTagArtist"]) scanForTag:@"artist"]; | ||||||
| @ -192,7 +183,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
| } | } | ||||||
| 
 | 
 | ||||||
| /* Actions */ | /* Actions */ | ||||||
| - (void)clearPictureCache | - (IBAction)clearPictureCache:(id)sender | ||||||
| { | { | ||||||
|     NSString *msg = NSLocalizedString(@"Do you really want to remove all your cached picture analysis?", @""); |     NSString *msg = NSLocalizedString(@"Do you really want to remove all your cached picture analysis?", @""); | ||||||
|     if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO |     if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO | ||||||
| @ -200,7 +191,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [model clearPictureCache]; |     [model clearPictureCache]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)loadResults | - (IBAction)loadResults:(id)sender | ||||||
| { | { | ||||||
|     NSOpenPanel *op = [NSOpenPanel openPanel]; |     NSOpenPanel *op = [NSOpenPanel openPanel]; | ||||||
|     [op setCanChooseFiles:YES]; |     [op setCanChooseFiles:YES]; | ||||||
| @ -216,12 +207,12 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)openWebsite | - (IBAction)openWebsite:(id)sender | ||||||
| { | { | ||||||
|     [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://www.hardcoded.net/dupeguru/"]]; |     [[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"https://www.hardcoded.net/dupeguru/"]]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)openHelp | - (IBAction)openHelp:(id)sender | ||||||
| { | { | ||||||
|     NSBundle *b = [NSBundle mainBundle]; |     NSBundle *b = [NSBundle mainBundle]; | ||||||
|     NSString *p = [b pathForResource:@"index" ofType:@"html" inDirectory:@"help"]; |     NSString *p = [b pathForResource:@"index" ofType:@"html" inDirectory:@"help"]; | ||||||
| @ -229,7 +220,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [[NSWorkspace sharedWorkspace] openURL:u]; |     [[NSWorkspace sharedWorkspace] openURL:u]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)showAboutBox | - (IBAction)showAboutBox:(id)sender | ||||||
| { | { | ||||||
|     if (_aboutBox == nil) { |     if (_aboutBox == nil) { | ||||||
|         _aboutBox = [[HSAboutBox alloc] initWithApp:model]; |         _aboutBox = [[HSAboutBox alloc] initWithApp:model]; | ||||||
| @ -237,12 +228,12 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [[_aboutBox window] makeKeyAndOrderFront:nil]; |     [[_aboutBox window] makeKeyAndOrderFront:nil]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)showDirectoryWindow | - (IBAction)showDirectoryWindow:(id)sender | ||||||
| { | { | ||||||
|     [[[self directoryPanel] window] makeKeyAndOrderFront:nil]; |     [[[self directoryPanel] window] makeKeyAndOrderFront:nil]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)showPreferencesPanel | - (IBAction)showPreferencesPanel:(id)sender | ||||||
| { | { | ||||||
|     if (_preferencesPanel == nil) { |     if (_preferencesPanel == nil) { | ||||||
|         NSWindow *window; |         NSWindow *window; | ||||||
| @ -261,17 +252,17 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [_preferencesPanel showWindow:nil]; |     [_preferencesPanel showWindow:nil]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)showResultWindow | - (IBAction)showResultWindow:(id)sender | ||||||
| { | { | ||||||
|     [[[self resultWindow] window] makeKeyAndOrderFront:nil]; |     [[[self resultWindow] window] makeKeyAndOrderFront:nil]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)showIgnoreList | - (IBAction)showIgnoreList:(id)sender | ||||||
| { | { | ||||||
|     [model showIgnoreList]; |     [model showIgnoreList]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| - (void)startScanning | - (IBAction)startScanning:(id)sender | ||||||
| { | { | ||||||
|     [[self directoryPanel] startDuplicateScan]; |     [[self directoryPanel] startDuplicateScan]; | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										362
									
								
								cocoa/Base.lproj/MainMenu.xib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										362
									
								
								cocoa/Base.lproj/MainMenu.xib
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,362 @@ | |||||||
|  | <?xml version="1.0" encoding="UTF-8"?> | ||||||
|  | <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12118" systemVersion="16E195" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> | ||||||
|  |     <dependencies> | ||||||
|  |         <deployment identifier="macosx"/> | ||||||
|  |         <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12118"/> | ||||||
|  |     </dependencies> | ||||||
|  |     <objects> | ||||||
|  |         <customObject id="-2" userLabel="File's Owner" customClass="NSApplication"> | ||||||
|  |             <connections> | ||||||
|  |                 <outlet property="delegate" destination="206" id="207"/> | ||||||
|  |             </connections> | ||||||
|  |         </customObject> | ||||||
|  |         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/> | ||||||
|  |         <customObject id="-3" userLabel="Application"/> | ||||||
|  |         <menu title="MainMenu" systemMenu="main" id="29" userLabel="MainMenu"> | ||||||
|  |             <items> | ||||||
|  |                 <menuItem title="dupeGuru" id="56"> | ||||||
|  |                     <menu key="submenu" title="dupeGuru" systemMenu="apple" id="57"> | ||||||
|  |                         <items> | ||||||
|  |                             <menuItem title="About dupeGuru" id="58"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="showAboutBox:" target="206" id="1232"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Check for update..." id="950"/> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="144"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Preferences..." keyEquivalent="," id="541"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="showPreferencesPanel:" target="206" id="1270"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="542"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Hide dupeGuru" keyEquivalent="h" id="134"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="hide:" target="-2" id="152"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Hide Others" keyEquivalent="h" id="145"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="hideOtherApplications:" target="-2" id="146"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Show All" id="150"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="unhideAllApplications:" target="-2" id="153"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="149"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Quit dupeGuru" keyEquivalent="q" id="136"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="terminate:" target="-2" id="139"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                         </items> | ||||||
|  |                     </menu> | ||||||
|  |                 </menuItem> | ||||||
|  |                 <menuItem title="File" id="1203"> | ||||||
|  |                     <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                     <menu key="submenu" title="File" id="1204"> | ||||||
|  |                         <items> | ||||||
|  |                             <menuItem title="Load Results..." keyEquivalent="o" id="1205"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="loadResults:" target="-1" id="1250"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Load Recent Results" id="1239"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <menu key="submenu" title="Load Recent Results" id="1240"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Save Results..." keyEquivalent="s" id="1206"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="saveResults:" target="-1" id="1263"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Export Results to XHTML" keyEquivalent="E" id="947"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="exportToXHTML:" target="-1" id="1246"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Export Results to CSV" id="B9L-71-D4W"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="exportToCSV:" target="-1" id="F0h-4p-YK5"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Clear Picture Cache" keyEquivalent="P" id="Fdk-Tj-cSw"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="clearPictureCache:" target="-1" id="beF-fH-ymG"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                         </items> | ||||||
|  |                     </menu> | ||||||
|  |                 </menuItem> | ||||||
|  |                 <menuItem title="Edit" id="965"> | ||||||
|  |                     <menu key="submenu" title="Edit" id="966"> | ||||||
|  |                         <items> | ||||||
|  |                             <menuItem title="Mark All" keyEquivalent="a" id="1011"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="markAll:" target="-1" id="1251"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Mark None" keyEquivalent="A" id="1012"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="markNone:" target="-1" id="1252"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Invert Marking" keyEquivalent="a" id="1013"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="markInvert:" target="-1" id="1253"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Mark Selected" keyEquivalent="a" id="1014"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="markSelected:" target="-1" id="1254"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="1018"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Cut" keyEquivalent="x" id="985"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="cut:" target="-1" id="996"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Copy" keyEquivalent="c" id="986"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="copy:" target="-1" id="998"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Paste" keyEquivalent="v" id="991"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="paste:" target="-1" id="1005"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="1287"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Filter Results..." keyEquivalent="f" id="1288"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="focusOnFilterField:" target="-1" id="1289"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                         </items> | ||||||
|  |                     </menu> | ||||||
|  |                 </menuItem> | ||||||
|  |                 <menuItem title="Actions" id="597"> | ||||||
|  |                     <menu key="submenu" title="Actions" id="598"> | ||||||
|  |                         <items> | ||||||
|  |                             <menuItem title="Start Duplicate Scan" keyEquivalent="d" id="926"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="startScanning:" target="206" id="1271"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="928"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Send Marked to Trash..." keyEquivalent="t" id="599"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="trashMarked:" target="-1" id="1286"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Move Marked to..." keyEquivalent="m" id="600"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="moveMarked:" target="-1" id="1255"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Copy Marked to..." keyEquivalent="m" id="601"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="copyMarked:" target="-1" id="1244"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Remove Marked from Results" keyEquivalent="r" id="603"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="removeMarked:" target="-1" id="1279"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Re-Prioritize Results..." id="1276"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="reprioritizeResults:" target="-1" id="1278"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="604"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Remove Selected from Results" id="605"> | ||||||
|  |                                 <string key="keyEquivalent" base64-UTF8="YES"> | ||||||
|  | CA | ||||||
|  | </string> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="removeSelected:" target="-1" id="1258"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Add Selected to Ignore List" keyEquivalent="g" id="922"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="ignoreSelected:" target="-1" id="1248"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Make Selected into Reference" keyEquivalent="" id="602"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="switchSelected:" target="-1" id="1260"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="707"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Open Selected with Default Application" id="708"> | ||||||
|  |                                 <string key="keyEquivalent" base64-UTF8="YES"> | ||||||
|  | DQ | ||||||
|  | </string> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="openSelected:" target="-1" id="1256"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Reveal Selected in Finder" id="710"> | ||||||
|  |                                 <string key="keyEquivalent" base64-UTF8="YES"> | ||||||
|  | DQ | ||||||
|  | </string> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="revealSelected:" target="-1" id="1261"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Invoke Custom Command" keyEquivalent="C" id="1177"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" control="YES"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="invokeCustomCommand:" target="-1" id="1249"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Rename Selected" id="933"> | ||||||
|  |                                 <string key="keyEquivalent" base64-UTF8="YES"> | ||||||
|  | Aw | ||||||
|  | </string> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="renameSelected:" target="-1" id="1262"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                         </items> | ||||||
|  |                     </menu> | ||||||
|  |                 </menuItem> | ||||||
|  |                 <menuItem title="Columns" id="618"> | ||||||
|  |                     <menu key="submenu" title="Columns" id="619"/> | ||||||
|  |                 </menuItem> | ||||||
|  |                 <menuItem title="Mode" id="959"> | ||||||
|  |                     <menu key="submenu" title="Mode" id="960"> | ||||||
|  |                         <items> | ||||||
|  |                             <menuItem title="Show Dupes Only" keyEquivalent="1" id="961"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="togglePowerMarker:" target="-1" id="1265"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Show Delta Values" keyEquivalent="2" id="962"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="toggleDelta:" target="-1" id="1266"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                         </items> | ||||||
|  |                     </menu> | ||||||
|  |                 </menuItem> | ||||||
|  |                 <menuItem title="Window" id="19"> | ||||||
|  |                     <menu key="submenu" title="Window" systemMenu="window" id="24"> | ||||||
|  |                         <items> | ||||||
|  |                             <menuItem title="Results Window" id="1272"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="showResultWindow:" target="206" id="1274"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Folder Selection Window" id="579"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="showDirectoryWindow:" target="206" id="1273"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Ignore List" id="1283"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="showIgnoreList:" target="206" id="1285"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Details Panel" keyEquivalent="i" id="398"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="toggleDetailsPanel:" target="-1" id="1264"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Quick Look" keyEquivalent="l" id="1280"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="toggleQuicklookPanel:" target="-1" id="1282"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="399"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Minimize" id="23"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask"/> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="performMiniaturize:" target="-1" id="37"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Zoom" id="197"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="performZoom:" target="-1" id="198"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Close Window" keyEquivalent="w" id="924"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="performClose:" target="-1" id="925"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem isSeparatorItem="YES" id="92"> | ||||||
|  |                                 <modifierMask key="keyEquivalentModifierMask" command="YES"/> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="Bring All to Front" id="5"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="arrangeInFront:" target="-1" id="39"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                         </items> | ||||||
|  |                     </menu> | ||||||
|  |                 </menuItem> | ||||||
|  |                 <menuItem title="Help" id="103"> | ||||||
|  |                     <menu key="submenu" title="Help" id="106"> | ||||||
|  |                         <items> | ||||||
|  |                             <menuItem title="dupeGuru Help" keyEquivalent="?" id="111"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="openHelp:" target="206" id="1233"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                             <menuItem title="dupeGuru Website" id="1023"> | ||||||
|  |                                 <connections> | ||||||
|  |                                     <action selector="openWebsite:" target="206" id="1024"/> | ||||||
|  |                                 </connections> | ||||||
|  |                             </menuItem> | ||||||
|  |                         </items> | ||||||
|  |                     </menu> | ||||||
|  |                 </menuItem> | ||||||
|  |             </items> | ||||||
|  |             <connections> | ||||||
|  |                 <outlet property="delegate" destination="206" id="208"/> | ||||||
|  |             </connections> | ||||||
|  |         </menu> | ||||||
|  |         <customObject id="206" userLabel="AppDelegate" customClass="AppDelegate"> | ||||||
|  |             <connections> | ||||||
|  |                 <outlet property="columnsMenu" destination="619" id="1269"/> | ||||||
|  |                 <outlet property="recentResultsMenu" destination="1240" id="1242"/> | ||||||
|  |             </connections> | ||||||
|  |         </customObject> | ||||||
|  |     </objects> | ||||||
|  | </document> | ||||||
| @ -17,7 +17,7 @@ | |||||||
|             </connections> |             </connections> | ||||||
|         </customObject> |         </customObject> | ||||||
|         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/> |         <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/> | ||||||
|         <customObject id="-3" userLabel="Application"/> |         <customObject id="-3" userLabel="Application" customClass="NSObject"/> | ||||||
|         <menu title="Menu" id="67" userLabel="matches_context"> |         <menu title="Menu" id="67" userLabel="matches_context"> | ||||||
|             <items> |             <items> | ||||||
|                 <menuItem title="Remove Selected from Results" id="71"> |                 <menuItem title="Remove Selected from Results" id="71"> | ||||||
| @ -30,7 +30,7 @@ | |||||||
|                         <action selector="ignoreSelected:" target="-2" id="77"/> |                         <action selector="ignoreSelected:" target="-2" id="77"/> | ||||||
|                     </connections> |                     </connections> | ||||||
|                 </menuItem> |                 </menuItem> | ||||||
|                 <menuItem title="Make Selected Reference" id="72"> |                 <menuItem title="Make Selected into Reference" id="72"> | ||||||
|                     <connections> |                     <connections> | ||||||
|                         <action selector="switchSelected:" target="-2" id="78"/> |                         <action selector="switchSelected:" target="-2" id="78"/> | ||||||
|                     </connections> |                     </connections> | ||||||
| @ -103,7 +103,7 @@ | |||||||
|                             <rect key="frame" x="1" y="119" width="223" height="15"/> |                             <rect key="frame" x="1" y="119" width="223" height="15"/> | ||||||
|                             <autoresizingMask key="autoresizingMask"/> |                             <autoresizingMask key="autoresizingMask"/> | ||||||
|                         </scroller> |                         </scroller> | ||||||
|                         <scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="37" horizontal="NO" id="10"> |                         <scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="10"> | ||||||
|                             <rect key="frame" x="224" y="17" width="15" height="102"/> |                             <rect key="frame" x="224" y="17" width="15" height="102"/> | ||||||
|                             <autoresizingMask key="autoresizingMask"/> |                             <autoresizingMask key="autoresizingMask"/> | ||||||
|                         </scroller> |                         </scroller> | ||||||
| @ -127,7 +127,7 @@ | |||||||
|                             <autoresizingMask key="autoresizingMask"/> |                             <autoresizingMask key="autoresizingMask"/> | ||||||
|                             <popUpButtonCell key="cell" type="roundTextured" title=" " bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" inset="2" pullsDown="YES" preferredEdge="maxY" selectedItem="28" id="25"> |                             <popUpButtonCell key="cell" type="roundTextured" title=" " bezelStyle="texturedRounded" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" inset="2" pullsDown="YES" preferredEdge="maxY" selectedItem="28" id="25"> | ||||||
|                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> |                                 <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> | ||||||
|                                 <font key="font" metaFont="system"/> |                                 <font key="font" metaFont="menu"/> | ||||||
|                                 <menu key="menu" title="OtherViews" id="26"> |                                 <menu key="menu" title="OtherViews" id="26"> | ||||||
|                                     <items> |                                     <items> | ||||||
|                                         <menuItem title=" " state="on" image="NSActionTemplate" hidden="YES" id="28"/> |                                         <menuItem title=" " state="on" image="NSActionTemplate" hidden="YES" id="28"/> | ||||||
|  | |||||||
| @ -156,7 +156,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|         while ([m numberOfItems] > 0) { |         while ([m numberOfItems] > 0) { | ||||||
|             [m removeItemAtIndex:0]; |             [m removeItemAtIndex:0]; | ||||||
|         } |         } | ||||||
|         NSMenuItem *mi = [m addItemWithTitle:NSLocalizedString(@"Load from file...", @"") action:@selector(loadResults) keyEquivalent:@""]; |         NSMenuItem *mi = [m addItemWithTitle:NSLocalizedString(@"Load from file...", @"") action:@selector(loadResults:) keyEquivalent:@""]; | ||||||
|         [mi setTarget:_app]; |         [mi setTarget:_app]; | ||||||
|         [m addItem:[NSMenuItem separatorItem]]; |         [m addItem:[NSMenuItem separatorItem]]; | ||||||
|         [[_app recentResults] fillMenu:m]; |         [[_app recentResults] fillMenu:m]; | ||||||
| @ -164,7 +164,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|         [[loadRecentButtonPopUp cell] performClickWithFrame:[sender frame] inView:[sender superview]]; |         [[loadRecentButtonPopUp cell] performClickWithFrame:[sender frame] inView:[sender superview]]; | ||||||
|     } |     } | ||||||
|     else { |     else { | ||||||
|         [_app loadResults]; |         [_app loadResults:sender]; | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -28,6 +28,8 @@ | |||||||
| 	<string>{version}</string> | 	<string>{version}</string> | ||||||
| 	<key>NSPrincipalClass</key> | 	<key>NSPrincipalClass</key> | ||||||
| 	<string>NSApplication</string> | 	<string>NSApplication</string> | ||||||
|  | 	<key>NSMainNibFile</key> | ||||||
|  | 	<string>MainMenu</string> | ||||||
| 	<key>NSHumanReadableCopyright</key> | 	<key>NSHumanReadableCopyright</key> | ||||||
| 	<string>© Hardcoded Software, 2016</string> | 	<string>© Hardcoded Software, 2016</string> | ||||||
| 	<key>SUFeedURL</key> | 	<key>SUFeedURL</key> | ||||||
|  | |||||||
| @ -49,6 +49,8 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
| - (IBAction)changeOptions:(id)sender; | - (IBAction)changeOptions:(id)sender; | ||||||
| - (IBAction)copyMarked:(id)sender; | - (IBAction)copyMarked:(id)sender; | ||||||
| - (IBAction)trashMarked:(id)sender; | - (IBAction)trashMarked:(id)sender; | ||||||
|  | - (IBAction)exportToXHTML:(id)sender; | ||||||
|  | - (IBAction)exportToCSV:(id)sender; | ||||||
| - (IBAction)filter:(id)sender; | - (IBAction)filter:(id)sender; | ||||||
| - (IBAction)focusOnFilterField:(id)sender; | - (IBAction)focusOnFilterField:(id)sender; | ||||||
| - (IBAction)ignoreSelected:(id)sender; | - (IBAction)ignoreSelected:(id)sender; | ||||||
|  | |||||||
| @ -36,7 +36,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [[table columns] setColumnsAsReadOnly]; |     [[table columns] setColumnsAsReadOnly]; | ||||||
|     [self fillColumnsMenu]; |     [self fillColumnsMenu]; | ||||||
|     [matches setTarget:self]; |     [matches setTarget:self]; | ||||||
|     [matches setDoubleAction:@selector(openClicked)]; |     [matches setDoubleAction:@selector(openClicked:)]; | ||||||
|     [self adjustUIToLocalization]; |     [self adjustUIToLocalization]; | ||||||
|     return self; |     return self; | ||||||
| } | } | ||||||
| @ -64,7 +64,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     } |     } | ||||||
|     [[app columnsMenu] addItem:[NSMenuItem separatorItem]]; |     [[app columnsMenu] addItem:[NSMenuItem separatorItem]]; | ||||||
|     NSMenuItem *mi = [[app columnsMenu] addItemWithTitle:NSLocalizedString(@"Reset to Default", @"") |     NSMenuItem *mi = [[app columnsMenu] addItemWithTitle:NSLocalizedString(@"Reset to Default", @"") | ||||||
|         action:@selector(resetColumnsToDefault) keyEquivalent:@""]; |                                                   action:@selector(resetColumnsToDefault:) keyEquivalent:@""]; | ||||||
|     [mi setTarget:self]; |     [mi setTarget:self]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -210,6 +210,16 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
|     [model deleteMarked]; |     [model deleteMarked]; | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | - (IBAction)exportToXHTML:(id)sender | ||||||
|  | { | ||||||
|  |     [model exportToXHTML]; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | - (IBAction)exportToCSV:(id)sender | ||||||
|  | { | ||||||
|  |     [model exportToCSV]; | ||||||
|  | } | ||||||
|  | 
 | ||||||
| - (IBAction)filter:(id)sender | - (IBAction)filter:(id)sender | ||||||
| { | { | ||||||
|     NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; |     NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								cocoa/main.m
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								cocoa/main.m
									
									
									
									
									
								
							| @ -10,12 +10,9 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||||||
| #import <Python.h> | #import <Python.h> | ||||||
| #import <wchar.h> | #import <wchar.h> | ||||||
| #import <locale.h> | #import <locale.h> | ||||||
| #import "AppDelegate.h" |  | ||||||
| #import "MainMenu_UI.h" |  | ||||||
| 
 | 
 | ||||||
| int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||||||
| { | { | ||||||
|     NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; |  | ||||||
|     /* We have to set the locate to UTF8 for mbstowcs() to correctly convert non-ascii chars in paths */ |     /* We have to set the locate to UTF8 for mbstowcs() to correctly convert non-ascii chars in paths */ | ||||||
|     setlocale(LC_ALL, "en_US.UTF-8"); |     setlocale(LC_ALL, "en_US.UTF-8"); | ||||||
|     NSString *respath = [[NSBundle mainBundle] resourcePath]; |     NSString *respath = [[NSBundle mainBundle] resourcePath]; | ||||||
| @ -36,14 +33,7 @@ int main(int argc, char *argv[]) | |||||||
|         PyThreadState_Swap(NULL); |         PyThreadState_Swap(NULL); | ||||||
|         PyEval_ReleaseLock(); |         PyEval_ReleaseLock(); | ||||||
|     } |     } | ||||||
|      |     int result = NSApplicationMain(argc,  (const char **) argv); | ||||||
|     [NSApplication sharedApplication]; |  | ||||||
|     AppDelegate *appDelegate = [[AppDelegate alloc] init]; |  | ||||||
|     [NSApp setDelegate:appDelegate]; |  | ||||||
|     [NSApp setMainMenu:createMainMenu_UI(appDelegate)]; |  | ||||||
|     [appDelegate finalizeInit]; |  | ||||||
|     [pool release]; |  | ||||||
|     [NSApp run]; |  | ||||||
|     Py_Finalize(); |     Py_Finalize(); | ||||||
|     return 0; |     return result; | ||||||
| } | } | ||||||
|  | |||||||
| @ -40,7 +40,7 @@ appModeSelector.action = Action(owner, 'changeAppMode:') | |||||||
| addButton.action = Action(owner, 'popupAddDirectoryMenu:') | addButton.action = Action(owner, 'popupAddDirectoryMenu:') | ||||||
| removeButton.action = Action(owner, 'removeSelectedDirectory') | removeButton.action = Action(owner, 'removeSelectedDirectory') | ||||||
| loadResultsButton.action = Action(owner, 'popupLoadRecentMenu:') | loadResultsButton.action = Action(owner, 'popupLoadRecentMenu:') | ||||||
| scanButton.action = Action(None, 'startScanning') | scanButton.action = Action(None, 'startScanning:') | ||||||
| 
 | 
 | ||||||
| directoryOutline.font = Font(FontFamily.System, FontSize.SmallSystem) | directoryOutline.font = Font(FontFamily.System, FontSize.SmallSystem) | ||||||
| col = directoryOutline.addColumn('name', "Name", 100) | col = directoryOutline.addColumn('name', "Name", 100) | ||||||
|  | |||||||
| @ -1,77 +0,0 @@ | |||||||
| ownerclass = 'AppDelegate' |  | ||||||
| ownerimport = 'AppDelegate.h' |  | ||||||
| 
 |  | ||||||
| result = Menu("") |  | ||||||
| appMenu = result.addMenu("dupeGuru") |  | ||||||
| fileMenu = result.addMenu("File") |  | ||||||
| editMenu = result.addMenu("Edit") |  | ||||||
| actionMenu = result.addMenu("Actions") |  | ||||||
| owner.columnsMenu = result.addMenu("Columns") |  | ||||||
| modeMenu = result.addMenu("Mode") |  | ||||||
| windowMenu = result.addMenu("Window") |  | ||||||
| helpMenu = result.addMenu("Help") |  | ||||||
| 
 |  | ||||||
| appMenu.addItem("About dupeGuru", Action(owner, 'showAboutBox')) |  | ||||||
| appMenu.addSeparator() |  | ||||||
| appMenu.addItem("Preferences...", Action(owner, 'showPreferencesPanel'), 'cmd+,') |  | ||||||
| appMenu.addSeparator() |  | ||||||
| NSApp.servicesMenu = appMenu.addMenu("Services") |  | ||||||
| appMenu.addSeparator() |  | ||||||
| appMenu.addItem("Hide dupeGuru", Action(NSApp, 'hide:'), 'cmd+h') |  | ||||||
| appMenu.addItem("Hide Others", Action(NSApp, 'hideOtherApplications:'), 'cmd+alt+h') |  | ||||||
| appMenu.addItem("Show All", Action(NSApp, 'unhideAllApplications:')) |  | ||||||
| appMenu.addSeparator() |  | ||||||
| appMenu.addItem("Quit dupeGuru", Action(NSApp, 'terminate:'), 'cmd+q') |  | ||||||
| 
 |  | ||||||
| fileMenu.addItem("Load Results...", Action(None, 'loadResults'), 'cmd+o') |  | ||||||
| owner.recentResultsMenu = fileMenu.addMenu("Load Recent Results") |  | ||||||
| fileMenu.addItem("Save Results...", Action(None, 'saveResults:'), 'cmd+s') |  | ||||||
| fileMenu.addItem("Export Results to XHTML", Action(owner.model, 'exportToXHTML'), 'cmd+shift+e') |  | ||||||
| fileMenu.addItem("Export Results to CSV", Action(owner.model, 'exportToCSV')) |  | ||||||
| fileMenu.addItem("Clear Picture Cache", Action(owner, 'clearPictureCache'), 'cmd+shift+p') |  | ||||||
| 
 |  | ||||||
| editMenu.addItem("Mark All", Action(None, 'markAll'), 'cmd+a') |  | ||||||
| editMenu.addItem("Mark None", Action(None, 'markNone'), 'cmd+shift+a') |  | ||||||
| editMenu.addItem("Invert Marking", Action(None, 'markInvert'), 'cmd+alt+a') |  | ||||||
| editMenu.addItem("Mark Selected", Action(None, 'markSelected'), 'ctrl+cmd+a') |  | ||||||
| editMenu.addSeparator() |  | ||||||
| editMenu.addItem("Cut", Action(None, 'cut:'), 'cmd+x') |  | ||||||
| editMenu.addItem("Copy", Action(None, 'copy:'), 'cmd+c') |  | ||||||
| editMenu.addItem("Paste", Action(None, 'paste:'), 'cmd+v') |  | ||||||
| editMenu.addSeparator() |  | ||||||
| editMenu.addItem("Filter Results...", Action(None, 'focusOnFilterField:'), 'cmd+alt+f') |  | ||||||
| 
 |  | ||||||
| actionMenu.addItem("Start Duplicate Scan", Action(owner, 'startScanning'), 'cmd+d') |  | ||||||
| actionMenu.addSeparator() |  | ||||||
| actionMenu.addItem("Send Marked to Trash...", Action(None, 'trashMarked:'), 'cmd+t') |  | ||||||
| actionMenu.addItem("Move Marked to...", Action(None, 'moveMarked:'), 'cmd+m') |  | ||||||
| actionMenu.addItem("Copy Marked to...", Action(None, 'copyMarked:'), 'cmd+alt+m') |  | ||||||
| actionMenu.addItem("Remove Marked from Results", Action(None, 'removeMarked:'), 'cmd+r') |  | ||||||
| actionMenu.addItem("Re-Prioritize Results...", Action(None, 'reprioritizeResults:')) |  | ||||||
| actionMenu.addSeparator() |  | ||||||
| actionMenu.addItem("Remove Selected from Results", Action(None, 'removeSelected:'), 'cmd+backspace') |  | ||||||
| actionMenu.addItem("Add Selected to Ignore List", Action(None, 'ignoreSelected:'), 'cmd+g') |  | ||||||
| actionMenu.addItem("Make Selected into Reference", Action(None, 'switchSelected:'), 'cmd+arrowup') |  | ||||||
| actionMenu.addSeparator() |  | ||||||
| actionMenu.addItem("Open Selected with Default Application", Action(None, 'openSelected:'), 'cmd+return') |  | ||||||
| actionMenu.addItem("Reveal Selected in Finder", Action(None, 'revealSelected:'), 'cmd+alt+return') |  | ||||||
| actionMenu.addItem("Invoke Custom Command", Action(None, 'invokeCustomCommand:'), 'cmd+shift+c') |  | ||||||
| actionMenu.addItem("Rename Selected", Action(None, 'renameSelected:'), 'enter') |  | ||||||
| 
 |  | ||||||
| modeMenu.addItem("Show Dupes Only", Action(None, 'togglePowerMarker:'), 'cmd+1') |  | ||||||
| modeMenu.addItem("Show Delta Values", Action(None, 'toggleDelta:'), 'cmd+2') |  | ||||||
| 
 |  | ||||||
| windowMenu.addItem("Results Window", Action(owner, 'showResultWindow')) |  | ||||||
| windowMenu.addItem("Folder Selection Window", Action(owner, 'showDirectoryWindow')) |  | ||||||
| windowMenu.addItem("Ignore List", Action(owner, 'showIgnoreList')) |  | ||||||
| windowMenu.addItem("Details Panel", Action(None, 'toggleDetailsPanel:'), 'cmd+i') |  | ||||||
| windowMenu.addItem("Quick Look", Action(None, 'toggleQuicklookPanel:'), 'cmd+l') |  | ||||||
| windowMenu.addSeparator() |  | ||||||
| windowMenu.addItem("Minimize", Action(None, 'performMiniaturize:')) |  | ||||||
| windowMenu.addItem("Zoom", Action(None, 'performZoom:')) |  | ||||||
| windowMenu.addItem("Close Window", Action(None, 'performClose:'), 'cmd+w') |  | ||||||
| windowMenu.addSeparator() |  | ||||||
| windowMenu.addItem("Bring All to Front", Action(None, 'arrangeInFront:')) |  | ||||||
| 
 |  | ||||||
| helpMenu.addItem("dupeGuru Help", Action(owner, 'openHelp'), 'cmd+?') |  | ||||||
| helpMenu.addItem("dupeGuru Website", Action(owner, 'openWebsite')) |  | ||||||
| @ -57,7 +57,6 @@ | |||||||
| 		CE97213E1E74E41D00A598C9 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720FA1E74E41C00A598C9 /* DetailsPanel_UI.m */; }; | 		CE97213E1E74E41D00A598C9 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720FA1E74E41C00A598C9 /* DetailsPanel_UI.m */; }; | ||||||
| 		CE97213F1E74E41D00A598C9 /* DetailsPanelPicture_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720FC1E74E41C00A598C9 /* DetailsPanelPicture_UI.m */; }; | 		CE97213F1E74E41D00A598C9 /* DetailsPanelPicture_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720FC1E74E41C00A598C9 /* DetailsPanelPicture_UI.m */; }; | ||||||
| 		CE9721401E74E41D00A598C9 /* DirectoryPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720FE1E74E41C00A598C9 /* DirectoryPanel_UI.m */; }; | 		CE9721401E74E41D00A598C9 /* DirectoryPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720FE1E74E41C00A598C9 /* DirectoryPanel_UI.m */; }; | ||||||
| 		CE9721441E74E41D00A598C9 /* MainMenu_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721061E74E41C00A598C9 /* MainMenu_UI.m */; }; |  | ||||||
| 		CE9721451E74E41D00A598C9 /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721081E74E41C00A598C9 /* ObjP.m */; }; | 		CE9721451E74E41D00A598C9 /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721081E74E41C00A598C9 /* ObjP.m */; }; | ||||||
| 		CE9721461E74E41D00A598C9 /* PreferencesPanelMusic_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97210A1E74E41C00A598C9 /* PreferencesPanelMusic_UI.m */; }; | 		CE9721461E74E41D00A598C9 /* PreferencesPanelMusic_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97210A1E74E41C00A598C9 /* PreferencesPanelMusic_UI.m */; }; | ||||||
| 		CE9721471E74E41D00A598C9 /* PreferencesPanelPicture_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97210C1E74E41C00A598C9 /* PreferencesPanelPicture_UI.m */; }; | 		CE9721471E74E41D00A598C9 /* PreferencesPanelPicture_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97210C1E74E41C00A598C9 /* PreferencesPanelPicture_UI.m */; }; | ||||||
| @ -83,6 +82,7 @@ | |||||||
| 		CE97215C1E74E41D00A598C9 /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721361E74E41D00A598C9 /* PyTable.m */; }; | 		CE97215C1E74E41D00A598C9 /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721361E74E41D00A598C9 /* PyTable.m */; }; | ||||||
| 		CE97215D1E74E41D00A598C9 /* PyTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721381E74E41D00A598C9 /* PyTextField.m */; }; | 		CE97215D1E74E41D00A598C9 /* PyTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721381E74E41D00A598C9 /* PyTextField.m */; }; | ||||||
| 		CE97215F1E74E41D00A598C9 /* XiblessSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97213C1E74E41D00A598C9 /* XiblessSupport.m */; }; | 		CE97215F1E74E41D00A598C9 /* XiblessSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97213C1E74E41D00A598C9 /* XiblessSupport.m */; }; | ||||||
|  | 		CE9EF6DF1E9345100089CA20 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE9EF6DD1E9345100089CA20 /* MainMenu.xib */; }; | ||||||
| 		CED88C1F1E763F2700C9B98C /* py in Resources */ = {isa = PBXBuildFile; fileRef = CED88C1E1E763F2700C9B98C /* py */; }; | 		CED88C1F1E763F2700C9B98C /* py in Resources */ = {isa = PBXBuildFile; fileRef = CED88C1E1E763F2700C9B98C /* py */; }; | ||||||
| 		CEFC8A251E74F23000965F37 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEFC8A231E74F23000965F37 /* dg_cocoa.py */; }; | 		CEFC8A251E74F23000965F37 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEFC8A231E74F23000965F37 /* dg_cocoa.py */; }; | ||||||
| 		CEFC8A261E74F23000965F37 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEFC8A241E74F23000965F37 /* dupeguru.icns */; }; | 		CEFC8A261E74F23000965F37 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEFC8A241E74F23000965F37 /* dupeguru.icns */; }; | ||||||
| @ -303,8 +303,6 @@ | |||||||
| 		CE9720FC1E74E41C00A598C9 /* DetailsPanelPicture_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanelPicture_UI.m; path = cocoa/autogen/DetailsPanelPicture_UI.m; sourceTree = "<group>"; }; | 		CE9720FC1E74E41C00A598C9 /* DetailsPanelPicture_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanelPicture_UI.m; path = cocoa/autogen/DetailsPanelPicture_UI.m; sourceTree = "<group>"; }; | ||||||
| 		CE9720FD1E74E41C00A598C9 /* DirectoryPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel_UI.h; path = cocoa/autogen/DirectoryPanel_UI.h; sourceTree = "<group>"; }; | 		CE9720FD1E74E41C00A598C9 /* DirectoryPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel_UI.h; path = cocoa/autogen/DirectoryPanel_UI.h; sourceTree = "<group>"; }; | ||||||
| 		CE9720FE1E74E41C00A598C9 /* DirectoryPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel_UI.m; path = cocoa/autogen/DirectoryPanel_UI.m; sourceTree = "<group>"; }; | 		CE9720FE1E74E41C00A598C9 /* DirectoryPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel_UI.m; path = cocoa/autogen/DirectoryPanel_UI.m; sourceTree = "<group>"; }; | ||||||
| 		CE9721051E74E41C00A598C9 /* MainMenu_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainMenu_UI.h; path = cocoa/autogen/MainMenu_UI.h; sourceTree = "<group>"; }; |  | ||||||
| 		CE9721061E74E41C00A598C9 /* MainMenu_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MainMenu_UI.m; path = cocoa/autogen/MainMenu_UI.m; sourceTree = "<group>"; }; |  | ||||||
| 		CE9721071E74E41C00A598C9 /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ObjP.h; path = cocoa/autogen/ObjP.h; sourceTree = "<group>"; }; | 		CE9721071E74E41C00A598C9 /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ObjP.h; path = cocoa/autogen/ObjP.h; sourceTree = "<group>"; }; | ||||||
| 		CE9721081E74E41C00A598C9 /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ObjP.m; path = cocoa/autogen/ObjP.m; sourceTree = "<group>"; }; | 		CE9721081E74E41C00A598C9 /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ObjP.m; path = cocoa/autogen/ObjP.m; sourceTree = "<group>"; }; | ||||||
| 		CE9721091E74E41C00A598C9 /* PreferencesPanelMusic_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PreferencesPanelMusic_UI.h; path = cocoa/autogen/PreferencesPanelMusic_UI.h; sourceTree = "<group>"; }; | 		CE9721091E74E41C00A598C9 /* PreferencesPanelMusic_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PreferencesPanelMusic_UI.h; path = cocoa/autogen/PreferencesPanelMusic_UI.h; sourceTree = "<group>"; }; | ||||||
| @ -356,6 +354,22 @@ | |||||||
| 		CE97213B1E74E41D00A598C9 /* XiblessSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = XiblessSupport.h; path = cocoa/autogen/XiblessSupport.h; sourceTree = "<group>"; }; | 		CE97213B1E74E41D00A598C9 /* XiblessSupport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = XiblessSupport.h; path = cocoa/autogen/XiblessSupport.h; sourceTree = "<group>"; }; | ||||||
| 		CE97213C1E74E41D00A598C9 /* XiblessSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = XiblessSupport.m; path = cocoa/autogen/XiblessSupport.m; sourceTree = "<group>"; }; | 		CE97213C1E74E41D00A598C9 /* XiblessSupport.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = XiblessSupport.m; path = cocoa/autogen/XiblessSupport.m; sourceTree = "<group>"; }; | ||||||
| 		CE9C2E9D1E74E1640099B9FB /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; | 		CE9C2E9D1E74E1640099B9FB /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; }; | ||||||
|  | 		CE9EF6DE1E9345100089CA20 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = cocoa/Base.lproj/MainMenu.xib; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6E11E9345490089CA20 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = cocoa/fr.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6E31E93454A0089CA20 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = cocoa/de.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6E51E93454C0089CA20 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cocoa/cs.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6E71E93454D0089CA20 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = cocoa/es.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6E91E93454E0089CA20 /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = cocoa/el.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6EB1E9345500089CA20 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = cocoa/it.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6ED1E9345510089CA20 /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = cocoa/nl.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6EF1E9345520089CA20 /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = cocoa/pl.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6F11E9345530089CA20 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = cocoa/ko.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6F31E9345550089CA20 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = cocoa/hy.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6F51E9345570089CA20 /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "cocoa/pt-BR.lproj/MainMenu.strings"; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6F71E9345580089CA20 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = cocoa/ru.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6F91E93455B0089CA20 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = cocoa/uk.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6FB1E93455C0089CA20 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "cocoa/zh-Hans.lproj/MainMenu.strings"; sourceTree = "<group>"; }; | ||||||
|  | 		CE9EF6FD1E93455D0089CA20 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = cocoa/vi.lproj/MainMenu.strings; sourceTree = "<group>"; }; | ||||||
| 		CED88C1E1E763F2700C9B98C /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = build/py; sourceTree = "<group>"; }; | 		CED88C1E1E763F2700C9B98C /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = build/py; sourceTree = "<group>"; }; | ||||||
| 		CEFC8A231E74F23000965F37 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = cocoa/dg_cocoa.py; sourceTree = "<group>"; }; | 		CEFC8A231E74F23000965F37 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = cocoa/dg_cocoa.py; sourceTree = "<group>"; }; | ||||||
| 		CEFC8A241E74F23000965F37 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = dupeguru.icns; path = cocoa/dupeguru.icns; sourceTree = "<group>"; }; | 		CEFC8A241E74F23000965F37 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = dupeguru.icns; path = cocoa/dupeguru.icns; sourceTree = "<group>"; }; | ||||||
| @ -377,6 +391,7 @@ | |||||||
| 		CE1891011E75D5A6008CE1AE /* xib */ = { | 		CE1891011E75D5A6008CE1AE /* xib */ = { | ||||||
| 			isa = PBXGroup; | 			isa = PBXGroup; | ||||||
| 			children = ( | 			children = ( | ||||||
|  | 				CE9EF6DD1E9345100089CA20 /* MainMenu.xib */, | ||||||
| 				CE549CDA1E933C7600C75A05 /* ResultWindow.xib */, | 				CE549CDA1E933C7600C75A05 /* ResultWindow.xib */, | ||||||
| 				CE0559851E762105008EB4F8 /* IgnoreListDialog.xib */, | 				CE0559851E762105008EB4F8 /* IgnoreListDialog.xib */, | ||||||
| 			); | 			); | ||||||
| @ -520,8 +535,6 @@ | |||||||
| 				CE9720FC1E74E41C00A598C9 /* DetailsPanelPicture_UI.m */, | 				CE9720FC1E74E41C00A598C9 /* DetailsPanelPicture_UI.m */, | ||||||
| 				CE9720FD1E74E41C00A598C9 /* DirectoryPanel_UI.h */, | 				CE9720FD1E74E41C00A598C9 /* DirectoryPanel_UI.h */, | ||||||
| 				CE9720FE1E74E41C00A598C9 /* DirectoryPanel_UI.m */, | 				CE9720FE1E74E41C00A598C9 /* DirectoryPanel_UI.m */, | ||||||
| 				CE9721051E74E41C00A598C9 /* MainMenu_UI.h */, |  | ||||||
| 				CE9721061E74E41C00A598C9 /* MainMenu_UI.m */, |  | ||||||
| 				CE9721071E74E41C00A598C9 /* ObjP.h */, | 				CE9721071E74E41C00A598C9 /* ObjP.h */, | ||||||
| 				CE9721081E74E41C00A598C9 /* ObjP.m */, | 				CE9721081E74E41C00A598C9 /* ObjP.m */, | ||||||
| 				CE9721091E74E41C00A598C9 /* PreferencesPanelMusic_UI.h */, | 				CE9721091E74E41C00A598C9 /* PreferencesPanelMusic_UI.h */, | ||||||
| @ -695,6 +708,7 @@ | |||||||
| 				CE0559871E762105008EB4F8 /* IgnoreListDialog.xib in Resources */, | 				CE0559871E762105008EB4F8 /* IgnoreListDialog.xib in Resources */, | ||||||
| 				CEFC8A261E74F23000965F37 /* dupeguru.icns in Resources */, | 				CEFC8A261E74F23000965F37 /* dupeguru.icns in Resources */, | ||||||
| 				CE65D0CC1E7781640092126E /* progress.xib in Resources */, | 				CE65D0CC1E7781640092126E /* progress.xib in Resources */, | ||||||
|  | 				CE9EF6DF1E9345100089CA20 /* MainMenu.xib in Resources */, | ||||||
| 				CEFC8A281E74F28100965F37 /* help in Resources */, | 				CEFC8A281E74F28100965F37 /* help in Resources */, | ||||||
| 			); | 			); | ||||||
| 			runOnlyForDeploymentPostprocessing = 0; | 			runOnlyForDeploymentPostprocessing = 0; | ||||||
| @ -713,7 +727,6 @@ | |||||||
| 				CE6F7E081E74EA12004C0518 /* HSProgressWindow.m in Sources */, | 				CE6F7E081E74EA12004C0518 /* HSProgressWindow.m in Sources */, | ||||||
| 				CE97215F1E74E41D00A598C9 /* XiblessSupport.m in Sources */, | 				CE97215F1E74E41D00A598C9 /* XiblessSupport.m in Sources */, | ||||||
| 				CE9721511E74E41D00A598C9 /* PyDupeGuru.m in Sources */, | 				CE9721511E74E41D00A598C9 /* PyDupeGuru.m in Sources */, | ||||||
| 				CE9721441E74E41D00A598C9 /* MainMenu_UI.m in Sources */, |  | ||||||
| 				CE9721401E74E41D00A598C9 /* DirectoryPanel_UI.m in Sources */, | 				CE9721401E74E41D00A598C9 /* DirectoryPanel_UI.m in Sources */, | ||||||
| 				CE9720EC1E74E40300A598C9 /* DirectoryOutline.m in Sources */, | 				CE9720EC1E74E40300A598C9 /* DirectoryOutline.m in Sources */, | ||||||
| 				CE97213D1E74E41D00A598C9 /* DeletionOptions_UI.m in Sources */, | 				CE97213D1E74E41D00A598C9 /* DeletionOptions_UI.m in Sources */, | ||||||
| @ -940,6 +953,29 @@ | |||||||
| 			name = cocoalib.strings; | 			name = cocoalib.strings; | ||||||
| 			sourceTree = "<group>"; | 			sourceTree = "<group>"; | ||||||
| 		}; | 		}; | ||||||
|  | 		CE9EF6DD1E9345100089CA20 /* MainMenu.xib */ = { | ||||||
|  | 			isa = PBXVariantGroup; | ||||||
|  | 			children = ( | ||||||
|  | 				CE9EF6DE1E9345100089CA20 /* Base */, | ||||||
|  | 				CE9EF6E11E9345490089CA20 /* fr */, | ||||||
|  | 				CE9EF6E31E93454A0089CA20 /* de */, | ||||||
|  | 				CE9EF6E51E93454C0089CA20 /* cs */, | ||||||
|  | 				CE9EF6E71E93454D0089CA20 /* es */, | ||||||
|  | 				CE9EF6E91E93454E0089CA20 /* el */, | ||||||
|  | 				CE9EF6EB1E9345500089CA20 /* it */, | ||||||
|  | 				CE9EF6ED1E9345510089CA20 /* nl */, | ||||||
|  | 				CE9EF6EF1E9345520089CA20 /* pl */, | ||||||
|  | 				CE9EF6F11E9345530089CA20 /* ko */, | ||||||
|  | 				CE9EF6F31E9345550089CA20 /* hy */, | ||||||
|  | 				CE9EF6F51E9345570089CA20 /* pt-BR */, | ||||||
|  | 				CE9EF6F71E9345580089CA20 /* ru */, | ||||||
|  | 				CE9EF6F91E93455B0089CA20 /* uk */, | ||||||
|  | 				CE9EF6FB1E93455C0089CA20 /* zh-Hans */, | ||||||
|  | 				CE9EF6FD1E93455D0089CA20 /* vi */, | ||||||
|  | 			); | ||||||
|  | 			name = MainMenu.xib; | ||||||
|  | 			sourceTree = "<group>"; | ||||||
|  | 		}; | ||||||
| /* End PBXVariantGroup section */ | /* End PBXVariantGroup section */ | ||||||
| 
 | 
 | ||||||
| /* Begin XCBuildConfiguration section */ | /* Begin XCBuildConfiguration section */ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user