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'),
|
||||
('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];
|
||||
|
|
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 <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 */
|
||||
|
|
Loading…
Reference in New Issue