Un-xibless-ified DirectoryPanel
This was a tricky one because the XIB couldn't be read by a modern Xcode. I had to go back to 10.8's Xcode to read it properly, save it, and then read it on 10.12. And even then, there we tons of little weird values here and there.
This commit is contained in:
parent
171c9cefed
commit
4c0a66379b
9
build.py
9
build.py
|
@ -79,15 +79,6 @@ def cocoa_app():
|
|||
def build_xibless(dest='cocoa/autogen'):
|
||||
import xibless
|
||||
ensure_folder(dest)
|
||||
FNPAIRS = [
|
||||
('problem_dialog.py', 'ProblemDialog_UI'),
|
||||
('directory_panel.py', 'DirectoryPanel_UI'),
|
||||
]
|
||||
for srcname, dstname in FNPAIRS:
|
||||
xibless.generate(
|
||||
op.join('cocoa', 'ui', srcname), op.join(dest, dstname),
|
||||
localizationTable='Localizable'
|
||||
)
|
||||
for appmode in ('standard', 'music', 'picture'):
|
||||
xibless.generate(
|
||||
op.join('cocoa', 'ui', 'preferences_panel.py'),
|
||||
|
|
|
@ -264,7 +264,7 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
|
||||
- (IBAction)startScanning:(id)sender
|
||||
{
|
||||
[[self directoryPanel] startDuplicateScan];
|
||||
[[self directoryPanel] startDuplicateScan:sender];
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -9,7 +9,6 @@
|
|||
<customObject id="-2" userLabel="File's Owner" customClass="DeletionOptions">
|
||||
<connections>
|
||||
<outlet property="directButton" destination="35" id="47"/>
|
||||
<outlet property="hardlinkButton" destination="3" id="46"/>
|
||||
<outlet property="linkButton" destination="3" id="dBw-fr-16j"/>
|
||||
<outlet property="linkTypeRadio" destination="WGF-jA-3aM" id="Wz8-lZ-4Rx"/>
|
||||
<outlet property="messageTextField" destination="43" id="45"/>
|
||||
|
@ -17,7 +16,7 @@
|
|||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="Deletion Options" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" restorable="NO" oneShot="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="1">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
|
||||
<rect key="contentRect" x="196" y="240" width="449" height="244"/>
|
||||
|
|
|
@ -0,0 +1,230 @@
|
|||
<?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"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
</dependencies>
|
||||
<objects>
|
||||
<customObject id="-2" userLabel="File's Owner" customClass="DirectoryPanel">
|
||||
<connections>
|
||||
<outlet property="addButtonPopUp" destination="7" id="26"/>
|
||||
<outlet property="appModeSelector" destination="pOT-yD-Vzf" id="gVz-b0-daQ"/>
|
||||
<outlet property="loadRecentButtonPopUp" destination="74" id="77"/>
|
||||
<outlet property="loadResultsButton" destination="72" id="79"/>
|
||||
<outlet property="outlineView" destination="11" id="54"/>
|
||||
<outlet property="removeButton" destination="65" id="69"/>
|
||||
<outlet property="scanTypePopup" destination="nID-iJ-c06" id="3Jt-dt-g8l"/>
|
||||
<outlet property="window" destination="5" id="25"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application" customClass="NSObject"/>
|
||||
<window title="dupeGuru" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" showsToolbarButton="NO" visibleAtLaunch="NO" frameAutosaveName="DirectoryPanel" animationBehavior="default" id="5" userLabel="directories">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES" resizable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="387" y="265" width="402" height="294"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
|
||||
<value key="minSize" type="size" width="369" height="269"/>
|
||||
<view key="contentView" misplaced="YES" id="6">
|
||||
<rect key="frame" x="0.0" y="0.0" width="402" height="294"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<scrollView misplaced="YES" autohidesScrollers="YES" horizontalLineScroll="16" horizontalPageScroll="10" verticalLineScroll="16" verticalPageScroll="10" usesPredominantAxisScrolling="NO" id="10">
|
||||
<rect key="frame" x="18" y="47" width="364" height="144"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" id="oS9-pA-kFS">
|
||||
<rect key="frame" x="1" y="0.0" width="362" height="143"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<outlineView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnReordering="NO" autosaveColumns="NO" rowHeight="14" headerView="53" indentationPerLevel="16" autoresizesOutlineColumn="YES" outlineTableColumn="15" id="11" customClass="HSOutlineView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="362" height="126"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<size key="intercellSpacing" width="3" height="2"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
|
||||
<tableColumns>
|
||||
<tableColumn identifier="name" editable="NO" width="271" minWidth="16" maxWidth="1000" id="15">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Name">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" white="0.33333299" alpha="1" colorSpace="calibratedWhite"/>
|
||||
</tableHeaderCell>
|
||||
<textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="49">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="state" width="85.35595703125" minWidth="30.35595703125" maxWidth="1000" id="13">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="State">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
|
||||
</tableHeaderCell>
|
||||
<popUpButtonCell key="dataCell" type="bevel" title="Normal" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="bezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" autoenablesItems="NO" selectedItem="55" id="14">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<menu key="menu" title="Normal" showsStateColumn="NO" autoenablesItems="NO" id="50">
|
||||
<items>
|
||||
<menuItem title="Normal" state="on" id="55">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Reference" id="56">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
<menuItem title="Excluded" id="57">
|
||||
<modifierMask key="keyEquivalentModifierMask"/>
|
||||
</menuItem>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<tableColumnResizingMask key="resizingMask" userResizable="YES"/>
|
||||
</tableColumn>
|
||||
</tableColumns>
|
||||
</outlineView>
|
||||
</subviews>
|
||||
</clipView>
|
||||
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="52">
|
||||
<rect key="frame" x="1" y="-30" width="312" height="15"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="51">
|
||||
<rect key="frame" x="-30" y="17" width="15" height="150"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<tableHeaderView key="headerView" id="53">
|
||||
<rect key="frame" x="0.0" y="0.0" width="362" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</tableHeaderView>
|
||||
</scrollView>
|
||||
<popUpButton hidden="YES" verticalHuggingPriority="750" id="7">
|
||||
<rect key="frame" x="89" y="16" width="46" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" id="45">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" title="OtherViews" id="8"/>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<popUpButton hidden="YES" verticalHuggingPriority="750" id="74">
|
||||
<rect key="frame" x="89" y="6" width="46" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" id="75">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" title="OtherViews" id="76"/>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<button verticalHuggingPriority="750" misplaced="YES" id="31">
|
||||
<rect key="frame" x="258" y="13" width="130" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="Scan" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="48">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<string key="keyEquivalent" base64-UTF8="YES">
|
||||
DQ
|
||||
</string>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="startDuplicateScan:" target="-2" id="35y-8d-7O8"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" id="63">
|
||||
<rect key="frame" x="20" y="16" width="28" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="NSAddTemplate" imagePosition="only" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="64">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="popupAddDirectoryMenu:" target="-2" id="68"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button verticalHuggingPriority="750" id="65">
|
||||
<rect key="frame" x="56" y="16" width="28" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="NSRemoveTemplate" imagePosition="only" alignment="center" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="66">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="removeSelectedDirectory:" target="-2" id="67"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="70">
|
||||
<rect key="frame" x="16" y="199" width="368" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Select folders to scan and press "Scan"." id="71">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="RqV-hA-fY8">
|
||||
<rect key="frame" x="16" y="257" width="114" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Application Mode:" id="jRV-fW-ws7">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="qne-J2-F4p">
|
||||
<rect key="frame" x="57" y="226" width="71" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Scan Type:" id="jf9-eU-jVS">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<segmentedControl verticalHuggingPriority="750" misplaced="YES" id="pOT-yD-Vzf">
|
||||
<rect key="frame" x="134" y="250" width="248" height="25"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<segmentedCell key="cell" borderStyle="border" alignment="left" style="automatic" trackingMode="selectOne" id="Fiz-IE-RGK">
|
||||
<font key="font" metaFont="system"/>
|
||||
<segments>
|
||||
<segment label="Standard" width="80" selected="YES"/>
|
||||
<segment label="Music" width="80" tag="1"/>
|
||||
<segment label="Picture" width="80"/>
|
||||
</segments>
|
||||
</segmentedCell>
|
||||
<connections>
|
||||
<action selector="changeAppMode:" target="-2" id="oOb-Nj-TQ0"/>
|
||||
</connections>
|
||||
</segmentedControl>
|
||||
<popUpButton verticalHuggingPriority="750" misplaced="YES" id="nID-iJ-c06">
|
||||
<rect key="frame" x="132" y="221" width="253" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" borderStyle="borderAndBezel" imageScaling="proportionallyDown" inset="2" id="3M9-dD-gs7">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="menu"/>
|
||||
<menu key="menu" id="Xhs-UR-nlf"/>
|
||||
</popUpButtonCell>
|
||||
</popUpButton>
|
||||
<button verticalHuggingPriority="750" misplaced="YES" id="72">
|
||||
<rect key="frame" x="128" y="13" width="130" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
|
||||
<buttonCell key="cell" type="push" title="Load Results" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="73">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="popupLoadRecentMenu:" target="-2" id="78"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
<connections>
|
||||
<outlet property="initialFirstResponder" destination="11" id="19"/>
|
||||
</connections>
|
||||
<point key="canvasLocation" x="122" y="161"/>
|
||||
</window>
|
||||
</objects>
|
||||
<resources>
|
||||
<image name="NSAddTemplate" width="11" height="11"/>
|
||||
<image name="NSRemoveTemplate" width="11" height="11"/>
|
||||
</resources>
|
||||
</document>
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2015 Hardcoded Software (http://www.hardcoded.net)
|
||||
Copyright 2017 Virgil Dupras
|
||||
|
||||
This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
||||
which should be included with this package. The terms are also available at
|
||||
|
@ -21,13 +21,13 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
HSRecentFiles *_recentDirectories;
|
||||
DirectoryOutline *outline;
|
||||
BOOL _alwaysShowPopUp;
|
||||
NSSegmentedControl *appModeSelector;
|
||||
NSPopUpButton *scanTypePopup;
|
||||
NSPopUpButton *addButtonPopUp;
|
||||
NSPopUpButton *loadRecentButtonPopUp;
|
||||
HSOutlineView *outlineView;
|
||||
NSButton *removeButton;
|
||||
NSButton *loadResultsButton;
|
||||
IBOutlet NSSegmentedControl *appModeSelector;
|
||||
IBOutlet NSPopUpButton *scanTypePopup;
|
||||
IBOutlet NSPopUpButton *addButtonPopUp;
|
||||
IBOutlet NSPopUpButton *loadRecentButtonPopUp;
|
||||
IBOutlet HSOutlineView *outlineView;
|
||||
IBOutlet NSButton *removeButton;
|
||||
IBOutlet NSButton *loadResultsButton;
|
||||
}
|
||||
|
||||
@property (readwrite, retain) NSSegmentedControl *appModeSelector;
|
||||
|
@ -45,10 +45,11 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
- (void)adjustUIToLocalization;
|
||||
|
||||
- (void)askForDirectory;
|
||||
- (void)popupAddDirectoryMenu:(id)sender;
|
||||
- (void)popupLoadRecentMenu:(id)sender;
|
||||
- (void)removeSelectedDirectory;
|
||||
- (void)startDuplicateScan;
|
||||
- (IBAction)changeAppMode:(id)sender;
|
||||
- (IBAction)popupAddDirectoryMenu:(id)sender;
|
||||
- (IBAction)popupLoadRecentMenu:(id)sender;
|
||||
- (IBAction)removeSelectedDirectory:(id)sender;
|
||||
- (IBAction)startDuplicateScan:(id)sender;
|
||||
|
||||
- (void)addDirectory:(NSString *)directory;
|
||||
- (void)refreshRemoveButtonText;
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2015 Hardcoded Software (http://www.hardcoded.net)
|
||||
Copyright 2017 Virgil Dupras
|
||||
|
||||
This software is licensed under the "GPLv3" License as described in the "LICENSE" file,
|
||||
which should be included with this package. The terms are also available at
|
||||
|
@ -7,7 +7,6 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
*/
|
||||
|
||||
#import "DirectoryPanel.h"
|
||||
#import "DirectoryPanel_UI.h"
|
||||
#import "Dialogs.h"
|
||||
#import "Utils.h"
|
||||
#import "AppDelegate.h"
|
||||
|
@ -25,8 +24,8 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
|
||||
- (id)initWithParentApp:(AppDelegate *)aParentApp
|
||||
{
|
||||
self = [super initWithWindow:nil];
|
||||
[self setWindow:createDirectoryPanel_UI(self)];
|
||||
self = [super initWithWindowNibName:@"DirectoryPanel"];
|
||||
[self window];
|
||||
_app = aParentApp;
|
||||
model = [_app model];
|
||||
[[self window] setTitle:[model appName]];
|
||||
|
@ -121,7 +120,7 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
}
|
||||
}
|
||||
|
||||
- (void)changeAppMode:(id)sender
|
||||
- (IBAction)changeAppMode:(id)sender
|
||||
{
|
||||
NSInteger appMode;
|
||||
NSUInteger selectedSegment = self.appModeSelector.selectedSegment;
|
||||
|
@ -138,7 +137,7 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
[self fillScanTypeMenu];
|
||||
}
|
||||
|
||||
- (void)popupAddDirectoryMenu:(id)sender
|
||||
- (IBAction)popupAddDirectoryMenu:(id)sender
|
||||
{
|
||||
if ((!_alwaysShowPopUp) && ([[_recentDirectories filepaths] count] == 0)) {
|
||||
[self askForDirectory];
|
||||
|
@ -149,7 +148,7 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
}
|
||||
}
|
||||
|
||||
- (void)popupLoadRecentMenu:(id)sender
|
||||
- (IBAction)popupLoadRecentMenu:(id)sender
|
||||
{
|
||||
if ([[[_app recentResults] filepaths] count] > 0) {
|
||||
NSMenu *m = [loadRecentButtonPopUp menu];
|
||||
|
@ -168,14 +167,14 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
|||
}
|
||||
}
|
||||
|
||||
- (void)removeSelectedDirectory
|
||||
- (IBAction)removeSelectedDirectory:(id)sender
|
||||
{
|
||||
[[self window] makeKeyAndOrderFront:nil];
|
||||
[[outline model] removeSelectedDirectory];
|
||||
[self refreshRemoveButtonText];
|
||||
}
|
||||
|
||||
- (void)startDuplicateScan
|
||||
- (IBAction)startDuplicateScan:(id)sender
|
||||
{
|
||||
if ([model resultsAreModified]) {
|
||||
if ([Dialogs askYesNo:NSLocalizedString(@"You have unsaved results, do you really want to continue?", @"")] == NSAlertSecondButtonReturn) // NO
|
||||
|
|
|
@ -1,76 +0,0 @@
|
|||
ownerclass = 'DirectoryPanel'
|
||||
ownerimport = 'DirectoryPanel.h'
|
||||
|
||||
result = Window(425, 300, "dupeGuru")
|
||||
promptLabel = Label(result, "Select folders to scan and press \"Scan\".")
|
||||
directoryOutline = OutlineView(result)
|
||||
directoryOutline.OBJC_CLASS = 'HSOutlineView'
|
||||
appModeSelector = SegmentedControl(result)
|
||||
appModeLabel = Label(result, "Application Mode:")
|
||||
scanTypePopup = Popup(result)
|
||||
scanTypeLabel = Label(result, "Scan Type:")
|
||||
addButton = Button(result, "")
|
||||
removeButton = Button(result, "")
|
||||
loadResultsButton = Button(result, "Load Results")
|
||||
scanButton = Button(result, "Scan")
|
||||
addPopup = Popup(None)
|
||||
loadRecentPopup = Popup(None)
|
||||
|
||||
owner.outlineView = directoryOutline
|
||||
owner.appModeSelector = appModeSelector
|
||||
owner.scanTypePopup = scanTypePopup
|
||||
owner.removeButton = removeButton
|
||||
owner.loadResultsButton = loadResultsButton
|
||||
owner.addButtonPopUp = addPopup
|
||||
owner.loadRecentButtonPopUp = loadRecentPopup
|
||||
|
||||
result.autosaveName = 'DirectoryPanel'
|
||||
result.canMinimize = False
|
||||
result.minSize = Size(400, 270)
|
||||
for label in ["Standard", "Music", "Picture"]:
|
||||
appModeSelector.addSegment(label, 80)
|
||||
addButton.bezelStyle = removeButton.bezelStyle = const.NSTexturedRoundedBezelStyle
|
||||
addButton.image = 'NSAddTemplate'
|
||||
removeButton.image = 'NSRemoveTemplate'
|
||||
for button in (addButton, removeButton):
|
||||
button.style = const.NSTexturedRoundedBezelStyle
|
||||
button.imagePosition = const.NSImageOnly
|
||||
scanButton.keyEquivalent = '\\r'
|
||||
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:')
|
||||
|
||||
directoryOutline.font = Font(FontFamily.System, FontSize.SmallSystem)
|
||||
col = directoryOutline.addColumn('name', "Name", 100)
|
||||
col.editable = False
|
||||
col.autoResizable = True
|
||||
col = directoryOutline.addColumn('state', "State", 85)
|
||||
col.editable = True
|
||||
col.autoResizable = False
|
||||
col.dataCell = Popup(None, ["Normal", "Reference", "Excluded"])
|
||||
col.dataCell.controlSize = const.NSSmallControlSize
|
||||
directoryOutline.allowsColumnReordering = False
|
||||
directoryOutline.allowsColumnSelection = False
|
||||
directoryOutline.allowsMultipleSelection = True
|
||||
|
||||
appModeLabel.width = scanTypeLabel.width = 110
|
||||
scanTypePopup.width = 248
|
||||
appModeLayout = HLayout([appModeLabel, appModeSelector])
|
||||
scanTypeLayout = HLayout([scanTypeLabel, scanTypePopup])
|
||||
|
||||
for button in (addButton, removeButton):
|
||||
button.width = 28
|
||||
for button in (loadResultsButton, scanButton):
|
||||
button.width = 118
|
||||
|
||||
buttonLayout = HLayout([addButton, removeButton, None, loadResultsButton, scanButton])
|
||||
mainLayout = VLayout([appModeLayout, scanTypeLayout, promptLabel, directoryOutline, buttonLayout], filler=directoryOutline)
|
||||
mainLayout.packToCorner(Pack.UpperLeft)
|
||||
mainLayout.fill(Pack.LowerRight)
|
||||
directoryOutline.packRelativeTo(promptLabel, Pack.Below)
|
||||
|
||||
promptLabel.setAnchor(Pack.UpperLeft, growX=True)
|
||||
directoryOutline.setAnchor(Pack.UpperLeft, growX=True, growY=True)
|
||||
buttonLayout.setAnchor(Pack.Below)
|
|
@ -11,6 +11,7 @@
|
|||
CE05598E1E76217C008EB4F8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE05598C1E76217C008EB4F8 /* Localizable.strings */; };
|
||||
CE0559921E7626E7008EB4F8 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CE0559911E7626E7008EB4F8 /* locale */; };
|
||||
CE549CDC1E933C7600C75A05 /* ResultWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE549CDA1E933C7600C75A05 /* ResultWindow.xib */; };
|
||||
CE54FEBE1E9487D600BE559F /* DirectoryPanel.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE54FEBC1E9487D600BE559F /* DirectoryPanel.xib */; };
|
||||
CE65D0CC1E7781640092126E /* progress.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE65D0CA1E7781640092126E /* progress.xib */; };
|
||||
CE65D0ED1E7783C40092126E /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE65D0EB1E7783C40092126E /* ErrorReportWindow.xib */; };
|
||||
CE6F7D8D1E74E71C004C0518 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE6F7D8C1E74E71C004C0518 /* Python */; settings = {ATTRIBUTES = (Required, ); }; };
|
||||
|
@ -53,7 +54,6 @@
|
|||
CE9720F31E74E40300A598C9 /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720E31E74E40300A598C9 /* ResultTable.m */; };
|
||||
CE9720F41E74E40300A598C9 /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720E51E74E40300A598C9 /* ResultWindow.m */; };
|
||||
CE9720F51E74E40300A598C9 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720E71E74E40300A598C9 /* StatsLabel.m */; };
|
||||
CE9721401E74E41D00A598C9 /* DirectoryPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720FE1E74E41C00A598C9 /* DirectoryPanel_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 */; };
|
||||
|
@ -153,6 +153,22 @@
|
|||
CE549CF61E933D5D00C75A05 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = cocoa/uk.lproj/ResultWindow.strings; sourceTree = "<group>"; };
|
||||
CE549CF81E933D5F00C75A05 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "cocoa/zh-Hans.lproj/ResultWindow.strings"; sourceTree = "<group>"; };
|
||||
CE549CFA1E933D6000C75A05 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = cocoa/vi.lproj/ResultWindow.strings; sourceTree = "<group>"; };
|
||||
CE54FEBD1E9487D600BE559F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = cocoa/Base.lproj/DirectoryPanel.xib; sourceTree = "<group>"; };
|
||||
CE54FEC01E948DC700BE559F /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = cocoa/fr.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FEC21E948DC900BE559F /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = cocoa/de.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FEC41E948DCC00BE559F /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cocoa/cs.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FEC61E948DCF00BE559F /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = cocoa/es.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FEC81E948DD100BE559F /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = cocoa/el.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FECA1E948DD400BE559F /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = cocoa/it.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FECC1E948DD600BE559F /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = cocoa/nl.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FECE1E948DD900BE559F /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = cocoa/pl.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FED01E948DDD00BE559F /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = cocoa/ko.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FED21E948DE000BE559F /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = cocoa/hy.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FED41E948DE300BE559F /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "cocoa/pt-BR.lproj/DirectoryPanel.strings"; sourceTree = "<group>"; };
|
||||
CE54FED61E948DE600BE559F /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = cocoa/ru.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FED81E948DEA00BE559F /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = cocoa/uk.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE54FEDA1E948DEC00BE559F /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "cocoa/zh-Hans.lproj/DirectoryPanel.strings"; sourceTree = "<group>"; };
|
||||
CE54FEDC1E948DEF00BE559F /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = cocoa/vi.lproj/DirectoryPanel.strings; sourceTree = "<group>"; };
|
||||
CE65D0CB1E7781640092126E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = cocoalib/Base.lproj/progress.xib; sourceTree = "<group>"; };
|
||||
CE65D0CE1E7781730092126E /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = cocoalib/fr.lproj/progress.strings; sourceTree = "<group>"; };
|
||||
CE65D0D01E7781740092126E /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = cocoalib/de.lproj/progress.strings; sourceTree = "<group>"; };
|
||||
|
@ -295,8 +311,6 @@
|
|||
CE9720E51E74E40300A598C9 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = cocoa/ResultWindow.m; sourceTree = "<group>"; };
|
||||
CE9720E61E74E40300A598C9 /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = cocoa/StatsLabel.h; sourceTree = "<group>"; };
|
||||
CE9720E71E74E40300A598C9 /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = cocoa/StatsLabel.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>"; };
|
||||
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>"; };
|
||||
|
@ -462,6 +476,7 @@
|
|||
isa = PBXGroup;
|
||||
children = (
|
||||
CE9EF6DD1E9345100089CA20 /* MainMenu.xib */,
|
||||
CE54FEBC1E9487D600BE559F /* DirectoryPanel.xib */,
|
||||
CE549CDA1E933C7600C75A05 /* ResultWindow.xib */,
|
||||
CE0559851E762105008EB4F8 /* IgnoreListDialog.xib */,
|
||||
CEF093DC1E9474F700CD0BF3 /* DeletionOptions.xib */,
|
||||
|
@ -602,8 +617,6 @@
|
|||
CE9720F61E74E40E00A598C9 /* autogen */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CE9720FD1E74E41C00A598C9 /* DirectoryPanel_UI.h */,
|
||||
CE9720FE1E74E41C00A598C9 /* DirectoryPanel_UI.m */,
|
||||
CE9721071E74E41C00A598C9 /* ObjP.h */,
|
||||
CE9721081E74E41C00A598C9 /* ObjP.m */,
|
||||
CE9721091E74E41C00A598C9 /* PreferencesPanelMusic_UI.h */,
|
||||
|
@ -771,6 +784,7 @@
|
|||
CEFC8A251E74F23000965F37 /* dg_cocoa.py in Resources */,
|
||||
CEF093DE1E9474F700CD0BF3 /* DeletionOptions.xib in Resources */,
|
||||
CE7CA6061E76337700874874 /* about.xib in Resources */,
|
||||
CE54FEBE1E9487D600BE559F /* DirectoryPanel.xib in Resources */,
|
||||
CE7CA6071E76337700874874 /* cocoalib.strings in Resources */,
|
||||
CE0559871E762105008EB4F8 /* IgnoreListDialog.xib in Resources */,
|
||||
CEF094621E94828600CD0BF3 /* ProblemDialog.xib in Resources */,
|
||||
|
@ -796,7 +810,6 @@
|
|||
CE6F7E081E74EA12004C0518 /* HSProgressWindow.m in Sources */,
|
||||
CE97215F1E74E41D00A598C9 /* XiblessSupport.m in Sources */,
|
||||
CE9721511E74E41D00A598C9 /* PyDupeGuru.m in Sources */,
|
||||
CE9721401E74E41D00A598C9 /* DirectoryPanel_UI.m in Sources */,
|
||||
CE9720EC1E74E40300A598C9 /* DirectoryOutline.m in Sources */,
|
||||
CE9720EE1E74E40300A598C9 /* IgnoreListDialog.m in Sources */,
|
||||
CE9721501E74E41D00A598C9 /* PyDirectoryOutline.m in Sources */,
|
||||
|
@ -926,6 +939,29 @@
|
|||
name = ResultWindow.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE54FEBC1E9487D600BE559F /* DirectoryPanel.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
CE54FEBD1E9487D600BE559F /* Base */,
|
||||
CE54FEC01E948DC700BE559F /* fr */,
|
||||
CE54FEC21E948DC900BE559F /* de */,
|
||||
CE54FEC41E948DCC00BE559F /* cs */,
|
||||
CE54FEC61E948DCF00BE559F /* es */,
|
||||
CE54FEC81E948DD100BE559F /* el */,
|
||||
CE54FECA1E948DD400BE559F /* it */,
|
||||
CE54FECC1E948DD600BE559F /* nl */,
|
||||
CE54FECE1E948DD900BE559F /* pl */,
|
||||
CE54FED01E948DDD00BE559F /* ko */,
|
||||
CE54FED21E948DE000BE559F /* hy */,
|
||||
CE54FED41E948DE300BE559F /* pt-BR */,
|
||||
CE54FED61E948DE600BE559F /* ru */,
|
||||
CE54FED81E948DEA00BE559F /* uk */,
|
||||
CE54FEDA1E948DEC00BE559F /* zh-Hans */,
|
||||
CE54FEDC1E948DEF00BE559F /* vi */,
|
||||
);
|
||||
name = DirectoryPanel.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE65D0CA1E7781640092126E /* progress.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
|
Loading…
Reference in New Issue