@@ -84,7 +84,6 @@ def build_xibless(dest='cocoa/autogen'): | |||
('problem_dialog.py', 'ProblemDialog_UI'), | |||
('directory_panel.py', 'DirectoryPanel_UI'), | |||
('prioritize_dialog.py', 'PrioritizeDialog_UI'), | |||
('main_menu.py', 'MainMenu_UI'), | |||
('details_panel.py', 'DetailsPanel_UI'), | |||
('details_panel_picture.py', 'DetailsPanelPicture_UI'), | |||
] | |||
@@ -21,8 +21,8 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
@interface AppDelegate : NSObject <NSFileManagerDelegate> | |||
{ | |||
NSMenu *recentResultsMenu; | |||
NSMenu *columnsMenu; | |||
IBOutlet NSMenu *recentResultsMenu; | |||
IBOutlet NSMenu *columnsMenu; | |||
PyDupeGuru *model; | |||
ResultWindow *_resultWindow; | |||
@@ -47,7 +47,6 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
- (void)setScanOptions; | |||
/* Public */ | |||
- (void)finalizeInit; | |||
- (ResultWindow *)resultWindow; | |||
- (DirectoryPanel *)directoryPanel; | |||
- (DetailsPanel *)detailsPanel; | |||
@@ -63,16 +62,16 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
- (void)recentFileClicked:(NSString *)path; | |||
/* Actions */ | |||
- (void)clearPictureCache; | |||
- (void)loadResults; | |||
- (void)openWebsite; | |||
- (void)openHelp; | |||
- (void)showAboutBox; | |||
- (void)showDirectoryWindow; | |||
- (void)showPreferencesPanel; | |||
- (void)showResultWindow; | |||
- (void)showIgnoreList; | |||
- (void)startScanning; | |||
- (IBAction)clearPictureCache:(id)sender; | |||
- (IBAction)loadResults:(id)sender; | |||
- (IBAction)openWebsite:(id)sender; | |||
- (IBAction)openHelp:(id)sender; | |||
- (IBAction)showAboutBox:(id)sender; | |||
- (IBAction)showDirectoryWindow:(id)sender; | |||
- (IBAction)showPreferencesPanel:(id)sender; | |||
- (IBAction)showResultWindow:(id)sender; | |||
- (IBAction)showIgnoreList:(id)sender; | |||
- (IBAction)startScanning:(id)sender; | |||
/* model --> view */ | |||
- (void)showMessage:(NSString *)msg; | |||
@@ -64,9 +64,8 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
[[NSUserDefaults standardUserDefaults] registerDefaults:d]; | |||
} | |||
- (id)init | |||
- (void)awakeFromNib | |||
{ | |||
self = [super init]; | |||
model = [[PyDupeGuru alloc] init]; | |||
[model bindCallback:createCallback(@"DupeGuruView", self)]; | |||
NSMutableIndexSet *contentsIndexes = [NSMutableIndexSet indexSet]; | |||
@@ -82,14 +81,6 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
[NSValueTransformer setValueTransformer:vtScanTypeIsNotContent forName:@"vtScanTypeMusicIsNotContent"]; | |||
VTIsIntIn *vtScanTypeIsTag = [[[VTIsIntIn alloc] initWithValues:[NSIndexSet indexSetWithIndex:3] reverse:NO] autorelease]; | |||
[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 setDelegate: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 setIgnoreHardlinkMatches:n2b([ud objectForKey:@"ignoreHardlinkMatches"])]; | |||
[model setMatchSimilarWords:n2b([ud objectForKey:@"matchSimilarWords"])]; | |||
int smallFileThreshold = [ud integerForKey:@"smallFileThreshold"]; // In KB | |||
int sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes | |||
NSInteger smallFileThreshold = [ud integerForKey:@"smallFileThreshold"]; // In KB | |||
NSInteger sizeThreshold = [ud boolForKey:@"ignoreSmallFiles"] ? smallFileThreshold * 1024 : 0; // The py side wants bytes | |||
[model setSizeThreshold:sizeThreshold]; | |||
[model enable:n2b([ud objectForKey:@"scanTagTrack"]) scanForTag:@"track"]; | |||
[model enable:n2b([ud objectForKey:@"scanTagArtist"]) scanForTag:@"artist"]; | |||
@@ -192,7 +183,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
} | |||
/* Actions */ | |||
- (void)clearPictureCache | |||
- (IBAction)clearPictureCache:(id)sender | |||
{ | |||
NSString *msg = NSLocalizedString(@"Do you really want to remove all your cached picture analysis?", @""); | |||
if ([Dialogs askYesNo:msg] == NSAlertSecondButtonReturn) // NO | |||
@@ -200,7 +191,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
[model clearPictureCache]; | |||
} | |||
- (void)loadResults | |||
- (IBAction)loadResults:(id)sender | |||
{ | |||
NSOpenPanel *op = [NSOpenPanel openPanel]; | |||
[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]; | |||
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]; | |||
} | |||
- (void)showAboutBox | |||
- (IBAction)showAboutBox:(id)sender | |||
{ | |||
if (_aboutBox == nil) { | |||
_aboutBox = [[HSAboutBox alloc] initWithApp:model]; | |||
@@ -237,12 +228,12 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
[[_aboutBox window] makeKeyAndOrderFront:nil]; | |||
} | |||
- (void)showDirectoryWindow | |||
- (IBAction)showDirectoryWindow:(id)sender | |||
{ | |||
[[[self directoryPanel] window] makeKeyAndOrderFront:nil]; | |||
} | |||
- (void)showPreferencesPanel | |||
- (IBAction)showPreferencesPanel:(id)sender | |||
{ | |||
if (_preferencesPanel == nil) { | |||
NSWindow *window; | |||
@@ -261,17 +252,17 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
[_preferencesPanel showWindow:nil]; | |||
} | |||
- (void)showResultWindow | |||
- (IBAction)showResultWindow:(id)sender | |||
{ | |||
[[[self resultWindow] window] makeKeyAndOrderFront:nil]; | |||
} | |||
- (void)showIgnoreList | |||
- (IBAction)showIgnoreList:(id)sender | |||
{ | |||
[model showIgnoreList]; | |||
} | |||
- (void)startScanning | |||
- (IBAction)startScanning:(id)sender | |||
{ | |||
[[self directoryPanel] startDuplicateScan]; | |||
} | |||
@@ -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> | |||
</customObject> | |||
<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"> | |||
<items> | |||
<menuItem title="Remove Selected from Results" id="71"> | |||
@@ -30,7 +30,7 @@ | |||
<action selector="ignoreSelected:" target="-2" id="77"/> | |||
</connections> | |||
</menuItem> | |||
<menuItem title="Make Selected Reference" id="72"> | |||
<menuItem title="Make Selected into Reference" id="72"> | |||
<connections> | |||
<action selector="switchSelected:" target="-2" id="78"/> | |||
</connections> | |||
@@ -103,7 +103,7 @@ | |||
<rect key="frame" x="1" y="119" width="223" height="15"/> | |||
<autoresizingMask key="autoresizingMask"/> | |||
</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"/> | |||
<autoresizingMask key="autoresizingMask"/> | |||
</scroller> | |||
@@ -127,7 +127,7 @@ | |||
<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"> | |||
<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"> | |||
<items> | |||
<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) { | |||
[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]; | |||
[m addItem:[NSMenuItem separatorItem]]; | |||
[[_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]]; | |||
} | |||
else { | |||
[_app loadResults]; | |||
[_app loadResults:sender]; | |||
} | |||
} | |||
@@ -28,6 +28,8 @@ | |||
<string>{version}</string> | |||
<key>NSPrincipalClass</key> | |||
<string>NSApplication</string> | |||
<key>NSMainNibFile</key> | |||
<string>MainMenu</string> | |||
<key>NSHumanReadableCopyright</key> | |||
<string>© Hardcoded Software, 2016</string> | |||
<key>SUFeedURL</key> | |||
@@ -49,6 +49,8 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
- (IBAction)changeOptions:(id)sender; | |||
- (IBAction)copyMarked:(id)sender; | |||
- (IBAction)trashMarked:(id)sender; | |||
- (IBAction)exportToXHTML:(id)sender; | |||
- (IBAction)exportToCSV:(id)sender; | |||
- (IBAction)filter:(id)sender; | |||
- (IBAction)focusOnFilterField:(id)sender; | |||
- (IBAction)ignoreSelected:(id)sender; | |||
@@ -36,7 +36,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
[[table columns] setColumnsAsReadOnly]; | |||
[self fillColumnsMenu]; | |||
[matches setTarget:self]; | |||
[matches setDoubleAction:@selector(openClicked)]; | |||
[matches setDoubleAction:@selector(openClicked:)]; | |||
[self adjustUIToLocalization]; | |||
return self; | |||
} | |||
@@ -64,7 +64,7 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
} | |||
[[app columnsMenu] addItem:[NSMenuItem separatorItem]]; | |||
NSMenuItem *mi = [[app columnsMenu] addItemWithTitle:NSLocalizedString(@"Reset to Default", @"") | |||
action:@selector(resetColumnsToDefault) keyEquivalent:@""]; | |||
action:@selector(resetColumnsToDefault:) keyEquivalent:@""]; | |||
[mi setTarget:self]; | |||
} | |||
@@ -210,6 +210,16 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
[model deleteMarked]; | |||
} | |||
- (IBAction)exportToXHTML:(id)sender | |||
{ | |||
[model exportToXHTML]; | |||
} | |||
- (IBAction)exportToCSV:(id)sender | |||
{ | |||
[model exportToCSV]; | |||
} | |||
- (IBAction)filter:(id)sender | |||
{ | |||
NSUserDefaults *ud = [NSUserDefaults standardUserDefaults]; | |||
@@ -10,12 +10,9 @@ http://www.gnu.org/licenses/gpl-3.0.html | |||
#import <Python.h> | |||
#import <wchar.h> | |||
#import <locale.h> | |||
#import "AppDelegate.h" | |||
#import "MainMenu_UI.h" | |||
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 */ | |||
setlocale(LC_ALL, "en_US.UTF-8"); | |||
NSString *respath = [[NSBundle mainBundle] resourcePath]; | |||
@@ -36,14 +33,7 @@ int main(int argc, char *argv[]) | |||
PyThreadState_Swap(NULL); | |||
PyEval_ReleaseLock(); | |||
} | |||
[NSApplication sharedApplication]; | |||
AppDelegate *appDelegate = [[AppDelegate alloc] init]; | |||
[NSApp setDelegate:appDelegate]; | |||
[NSApp setMainMenu:createMainMenu_UI(appDelegate)]; | |||
[appDelegate finalizeInit]; | |||
[pool release]; | |||
[NSApp run]; | |||
int result = NSApplicationMain(argc, (const char **) argv); | |||
Py_Finalize(); | |||
return 0; | |||
return result; | |||
} |
@@ -40,7 +40,7 @@ appModeSelector.action = Action(owner, 'changeAppMode:') | |||
addButton.action = Action(owner, 'popupAddDirectoryMenu:') | |||
removeButton.action = Action(owner, 'removeSelectedDirectory') | |||
loadResultsButton.action = Action(owner, 'popupLoadRecentMenu:') | |||
scanButton.action = Action(None, 'startScanning') | |||
scanButton.action = Action(None, 'startScanning:') | |||
directoryOutline.font = Font(FontFamily.System, FontSize.SmallSystem) | |||
col = directoryOutline.addColumn('name', "Name", 100) | |||
@@ -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 */; }; | |||
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 */; }; | |||
CE9721441E74E41D00A598C9 /* MainMenu_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721061E74E41C00A598C9 /* MainMenu_UI.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 */; }; | |||
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 */; }; | |||
CE97215D1E74E41D00A598C9 /* PyTextField.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721381E74E41D00A598C9 /* PyTextField.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 */; }; | |||
CEFC8A251E74F23000965F37 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEFC8A231E74F23000965F37 /* dg_cocoa.py */; }; | |||
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>"; }; | |||
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>"; }; | |||
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>"; }; | |||
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>"; }; | |||
@@ -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>"; }; | |||
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; }; | |||
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>"; }; | |||
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>"; }; | |||
@@ -377,6 +391,7 @@ | |||
CE1891011E75D5A6008CE1AE /* xib */ = { | |||
isa = PBXGroup; | |||
children = ( | |||
CE9EF6DD1E9345100089CA20 /* MainMenu.xib */, | |||
CE549CDA1E933C7600C75A05 /* ResultWindow.xib */, | |||
CE0559851E762105008EB4F8 /* IgnoreListDialog.xib */, | |||
); | |||
@@ -520,8 +535,6 @@ | |||
CE9720FC1E74E41C00A598C9 /* DetailsPanelPicture_UI.m */, | |||
CE9720FD1E74E41C00A598C9 /* DirectoryPanel_UI.h */, | |||
CE9720FE1E74E41C00A598C9 /* DirectoryPanel_UI.m */, | |||
CE9721051E74E41C00A598C9 /* MainMenu_UI.h */, | |||
CE9721061E74E41C00A598C9 /* MainMenu_UI.m */, | |||
CE9721071E74E41C00A598C9 /* ObjP.h */, | |||
CE9721081E74E41C00A598C9 /* ObjP.m */, | |||
CE9721091E74E41C00A598C9 /* PreferencesPanelMusic_UI.h */, | |||
@@ -695,6 +708,7 @@ | |||
CE0559871E762105008EB4F8 /* IgnoreListDialog.xib in Resources */, | |||
CEFC8A261E74F23000965F37 /* dupeguru.icns in Resources */, | |||
CE65D0CC1E7781640092126E /* progress.xib in Resources */, | |||
CE9EF6DF1E9345100089CA20 /* MainMenu.xib in Resources */, | |||
CEFC8A281E74F28100965F37 /* help in Resources */, | |||
); | |||
runOnlyForDeploymentPostprocessing = 0; | |||
@@ -713,7 +727,6 @@ | |||
CE6F7E081E74EA12004C0518 /* HSProgressWindow.m in Sources */, | |||
CE97215F1E74E41D00A598C9 /* XiblessSupport.m in Sources */, | |||
CE9721511E74E41D00A598C9 /* PyDupeGuru.m in Sources */, | |||
CE9721441E74E41D00A598C9 /* MainMenu_UI.m in Sources */, | |||
CE9721401E74E41D00A598C9 /* DirectoryPanel_UI.m in Sources */, | |||
CE9720EC1E74E40300A598C9 /* DirectoryOutline.m in Sources */, | |||
CE97213D1E74E41D00A598C9 /* DeletionOptions_UI.m in Sources */, | |||
@@ -940,6 +953,29 @@ | |||
name = cocoalib.strings; | |||
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 */ | |||
/* Begin XCBuildConfiguration section */ | |||