mirror of
https://github.com/arsenetar/dupeguru-cocoa.git
synced 2024-10-29 23:15:56 +00:00
Un-xibless-ified Preferences
Goodbye xibless
This commit is contained in:
parent
4c0a66379b
commit
a007ccb1ec
20
build.py
20
build.py
@ -53,10 +53,6 @@ def parse_args():
|
||||
'--cocoa-compile', action='store_true', dest='cocoa_compile',
|
||||
help="Build only Cocoa executable"
|
||||
)
|
||||
parser.add_option(
|
||||
'--xibless', action='store_true', dest='xibless',
|
||||
help="Build only xibless UIs"
|
||||
)
|
||||
parser.add_option(
|
||||
'--updatepot', action='store_true', dest='updatepot',
|
||||
help="Generate .pot files from source code."
|
||||
@ -76,21 +72,8 @@ def cocoa_app():
|
||||
app_path = 'build/dupeGuru.app'
|
||||
return OSXAppStructure(app_path)
|
||||
|
||||
def build_xibless(dest='cocoa/autogen'):
|
||||
import xibless
|
||||
ensure_folder(dest)
|
||||
for appmode in ('standard', 'music', 'picture'):
|
||||
xibless.generate(
|
||||
op.join('cocoa', 'ui', 'preferences_panel.py'),
|
||||
op.join(dest, 'PreferencesPanel%s_UI' % appmode.capitalize()),
|
||||
localizationTable='Localizable',
|
||||
args={'appmode': appmode},
|
||||
)
|
||||
|
||||
def build_cocoa(dev):
|
||||
|
||||
build_localizations()
|
||||
build_xibless()
|
||||
build_cocoa_proxy_module()
|
||||
build_cocoa_bridging_interfaces()
|
||||
|
||||
@ -155,7 +138,6 @@ def build_localizations():
|
||||
def build_updatepot():
|
||||
print("Updating Cocoa strings file.")
|
||||
loc.generate_cocoa_strings_from_code('cocoalib', 'cocoalib/en.lproj')
|
||||
build_xibless()
|
||||
loc.generate_cocoa_strings_from_code('cocoa', 'cocoa/en.lproj')
|
||||
|
||||
def build_mergepot():
|
||||
@ -280,8 +262,6 @@ def main():
|
||||
print_and_do('{0} waf configure && {0} waf'.format(sys.executable))
|
||||
os.chdir('..')
|
||||
cocoa_app().copy_executable('cocoa/build/dupeGuru')
|
||||
elif options.xibless:
|
||||
build_xibless()
|
||||
else:
|
||||
build_normal(options.dev)
|
||||
|
||||
|
@ -14,9 +14,6 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
||||
#import "Utils.h"
|
||||
#import "ValueTransformers.h"
|
||||
#import "DetailsPanelPicture.h"
|
||||
#import "PreferencesPanelStandard_UI.h"
|
||||
#import "PreferencesPanelMusic_UI.h"
|
||||
#import "PreferencesPanelPicture_UI.h"
|
||||
|
||||
@implementation AppDelegate
|
||||
|
||||
@ -236,18 +233,15 @@ http://www.gnu.org/licenses/gpl-3.0.html
|
||||
- (IBAction)showPreferencesPanel:(id)sender
|
||||
{
|
||||
if (_preferencesPanel == nil) {
|
||||
NSWindow *window;
|
||||
NSString *nibName = @"Preferences";
|
||||
NSInteger appMode = [model getAppMode];
|
||||
if (appMode == AppModePicture) {
|
||||
window = createPreferencesPanelPicture_UI(nil);
|
||||
nibName = @"PreferencesPicture";
|
||||
}
|
||||
else if (appMode == AppModeMusic) {
|
||||
window = createPreferencesPanelMusic_UI(nil);
|
||||
nibName = @"PreferencesMusic";
|
||||
}
|
||||
else {
|
||||
window = createPreferencesPanelStandard_UI(nil);
|
||||
}
|
||||
_preferencesPanel = [[NSWindowController alloc] initWithWindow:window];
|
||||
_preferencesPanel = [[NSWindowController alloc] initWithWindowNibName:nibName];
|
||||
}
|
||||
[_preferencesPanel showWindow:nil];
|
||||
}
|
||||
|
334
cocoa/Base.lproj/Preferences.xib
Normal file
334
cocoa/Base.lproj/Preferences.xib
Normal file
@ -0,0 +1,334 @@
|
||||
<?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="NSWindowController">
|
||||
<connections>
|
||||
<outlet property="window" destination="52" id="118"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application"/>
|
||||
<userDefaultsController representsSharedInstance="YES" id="51" userLabel="Shared Defaults"/>
|
||||
<window title="dupeGuru Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="52" userLabel="preferences">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="92" y="277" width="409" height="297"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
|
||||
<value key="minSize" type="size" width="213" height="107"/>
|
||||
<view key="contentView" misplaced="YES" id="53">
|
||||
<rect key="frame" x="0.0" y="0.0" width="409" height="297"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<tabView misplaced="YES" id="123">
|
||||
<rect key="frame" x="13" y="40" width="383" height="251"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="Basic" identifier="1" id="124">
|
||||
<view key="view" id="127">
|
||||
<rect key="frame" x="10" y="33" width="363" height="205"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<slider verticalHuggingPriority="750" misplaced="YES" id="72">
|
||||
<rect key="frame" x="118" y="183" width="198" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<sliderCell key="cell" alignment="left" minValue="1" maxValue="100" doubleValue="80" tickMarkPosition="above" sliderType="linear" id="73">
|
||||
<font key="font" size="12" name="Helvetica"/>
|
||||
</sliderCell>
|
||||
<connections>
|
||||
<binding destination="51" name="enabled" keyPath="values.scanTypeStandard" id="JEc-U3-tIR">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsNotContent</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="51" name="value" keyPath="values.minMatchPercentage" id="103"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="71">
|
||||
<rect key="frame" x="120" y="166" width="80" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="More results" id="74">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="69">
|
||||
<rect key="frame" x="15" y="188" width="100" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Filter hardness:" id="76">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="154">
|
||||
<rect key="frame" x="15" y="138" width="100" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Font size:" id="155">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="66">
|
||||
<rect key="frame" x="16" y="114" width="333" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Word weighting" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="82">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="enabled" keyPath="values.scanTypeStandard" id="i5x-g7-oqn">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsNotContent</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="51" name="value" keyPath="values.wordWeighting" id="108"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="65">
|
||||
<rect key="frame" x="16" y="74" width="333" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Can mix file kind" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="83">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.mixFileKind" id="109"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="62">
|
||||
<rect key="frame" x="16" y="94" width="333" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Match similar words" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="87">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="enabled" keyPath="values.scanTypeStandard" id="oNf-97-T9c">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsNotContent</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="51" name="value" keyPath="values.matchSimilarWords" id="102"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="57">
|
||||
<rect key="frame" x="16" y="54" width="333" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Remove empty folders on delete or move" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="96">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.removeEmptyFolders" id="113"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="56">
|
||||
<rect key="frame" x="16" y="32" width="333" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Ignore files smaller than:" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="97">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.ignoreSmallFiles" id="110"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="55">
|
||||
<rect key="frame" x="41" y="10" width="59" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="98">
|
||||
<numberFormatter key="formatter" formatterBehavior="custom10_4" positiveFormat="#0" numberStyle="decimal" allowsFloats="NO" usesGroupingSeparator="NO" groupingSize="0" minimumIntegerDigits="1" maximumIntegerDigits="2000000000" id="99">
|
||||
<nil key="negativeInfinitySymbol"/>
|
||||
<nil key="positiveInfinitySymbol"/>
|
||||
</numberFormatter>
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.smallFileThreshold" id="121">
|
||||
<dictionary key="options">
|
||||
<integer key="NSContinuouslyUpdatesValue" value="1"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="54">
|
||||
<rect key="frame" x="105" y="9" width="30" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="KB" id="100">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<comboBox verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" textCompletion="NO" id="151">
|
||||
<rect key="frame" x="120" y="134" width="69" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" numberOfVisibleItems="6" id="152">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<objectValues>
|
||||
<string>11</string>
|
||||
<string>12</string>
|
||||
<string>13</string>
|
||||
<string>14</string>
|
||||
<string>18</string>
|
||||
<string>24</string>
|
||||
</objectValues>
|
||||
</comboBoxCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.TableFontSize" id="156"/>
|
||||
</connections>
|
||||
</comboBox>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="70">
|
||||
<rect key="frame" x="236" y="166" width="80" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Fewer results" id="75">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="64">
|
||||
<rect key="frame" x="320" y="214" width="31" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" id="84">
|
||||
<numberFormatter key="formatter" formatterBehavior="10_0" positiveFormat="0" negativeFormat="-0" hasThousandSeparators="NO" thousandSeparator="," id="85">
|
||||
<attributedString key="attributedStringForZero">
|
||||
<fragment content="0"/>
|
||||
</attributedString>
|
||||
<decimal key="minimum" value="NaN"/>
|
||||
<decimal key="maximum" value="NaN"/>
|
||||
</numberFormatter>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.minMatchPercentage" id="107"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Advanced" identifier="2" id="125">
|
||||
<view key="view" id="126">
|
||||
<rect key="frame" x="10" y="33" width="363" height="205"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button imageHugsTitle="YES" id="128">
|
||||
<rect key="frame" x="15" y="186" width="346" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Use regular expressions when filtering" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="129">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.useRegexpFilter" id="130"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button imageHugsTitle="YES" id="141">
|
||||
<rect key="frame" x="15" y="166" width="346" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Ignore duplicates hardlinking to the same file" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="142">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.ignoreHardlinkMatches" id="144"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button imageHugsTitle="YES" id="145">
|
||||
<rect key="frame" x="15" y="146" width="346" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Debug mode (restart required)" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="146">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.DebugMode" id="148"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="133">
|
||||
<rect key="frame" x="14" y="123" width="348" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Custom command (arguments: %d for dupe, %r for ref):" id="134">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="138">
|
||||
<rect key="frame" x="17" y="93" width="329" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="139">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="51" name="value" keyPath="values.CustomCommand" id="140"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="61">
|
||||
<rect key="frame" x="14" y="72" width="348" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Copy and Move:" id="88">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" imageHugsTitle="YES" id="60">
|
||||
<rect key="frame" x="14" y="40" width="234" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Right in destination" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="93" id="89">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<menu key="menu" title="OtherViews" id="90">
|
||||
<items>
|
||||
<menuItem title="Right in destination" state="on" id="93"/>
|
||||
<menuItem title="Recreate relative path" id="91"/>
|
||||
<menuItem title="Recreate absolute path" id="92"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<binding destination="51" name="selectedIndex" keyPath="values.recreatePathType" id="116"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
</tabViewItems>
|
||||
</tabView>
|
||||
<button verticalHuggingPriority="750" misplaced="YES" imageHugsTitle="YES" id="63">
|
||||
<rect key="frame" x="247" y="13" width="148" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<buttonCell key="cell" type="push" title="Reset to Defaults" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="86">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="revertToInitialValues:" target="51" id="101"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="nextKeyView" destination="62" id="106"/>
|
||||
</connections>
|
||||
</view>
|
||||
<point key="canvasLocation" x="131.5" y="137.5"/>
|
||||
</window>
|
||||
</objects>
|
||||
</document>
|
408
cocoa/Base.lproj/PreferencesMusic.xib
Normal file
408
cocoa/Base.lproj/PreferencesMusic.xib
Normal file
@ -0,0 +1,408 @@
|
||||
<?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="NSWindowController">
|
||||
<connections>
|
||||
<outlet property="window" destination="2" id="112"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application"/>
|
||||
<userDefaultsController representsSharedInstance="YES" id="1" userLabel="Shared Defaults"/>
|
||||
<window title="dupeGuru Preferences (Music)" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="2" userLabel="preferences">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="92" y="259" width="406" height="306"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1058"/>
|
||||
<value key="minSize" type="size" width="213" height="107"/>
|
||||
<view key="contentView" misplaced="YES" id="3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="406" height="306"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" imageHugsTitle="YES" id="18">
|
||||
<rect key="frame" x="244" y="5" width="148" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<buttonCell key="cell" type="push" title="Reset to Defaults" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="45">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="revertToInitialValues:" target="1" id="113"/>
|
||||
</connections>
|
||||
</button>
|
||||
<tabView misplaced="YES" id="115">
|
||||
<rect key="frame" x="13" y="31" width="380" height="269"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="Basic" identifier="1" id="116">
|
||||
<view key="view" id="119">
|
||||
<rect key="frame" x="10" y="33" width="360" height="223"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<slider verticalHuggingPriority="750" misplaced="YES" id="27">
|
||||
<rect key="frame" x="118" y="201" width="190" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<sliderCell key="cell" alignment="left" minValue="1" maxValue="100" doubleValue="80" tickMarkPosition="above" sliderType="linear" id="28">
|
||||
<font key="font" size="12" name="Helvetica"/>
|
||||
</sliderCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="IEC-EW-O84">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeMusicIsNotContent</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.minMatchPercentage" id="72"/>
|
||||
<outlet property="nextKeyView" destination="9" id="82"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="26">
|
||||
<rect key="frame" x="120" y="184" width="80" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="More results" id="29">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="25">
|
||||
<rect key="frame" x="226" y="184" width="80" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Fewer results" id="30">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="24">
|
||||
<rect key="frame" x="15" y="206" width="100" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Filter hardness:" id="31">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="21">
|
||||
<rect key="frame" x="16" y="71" width="330" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Word weighting" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="41">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="mEk-iv-joX">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeMusicIsNotContent</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.wordWeighting" id="87"/>
|
||||
<outlet property="nextKeyView" destination="17" id="73"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="20">
|
||||
<rect key="frame" x="16" y="31" width="325" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Can mix file kind" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="42">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.mixFileKind" id="93"/>
|
||||
<outlet property="nextKeyView" destination="12" id="109"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="19">
|
||||
<rect key="frame" x="314" y="206" width="31" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" id="43">
|
||||
<numberFormatter key="formatter" formatterBehavior="10_0" positiveFormat="0" negativeFormat="-0" hasThousandSeparators="NO" thousandSeparator="," id="44">
|
||||
<attributedString key="attributedStringForZero">
|
||||
<fragment content="0"/>
|
||||
</attributedString>
|
||||
<decimal key="minimum" value="NaN"/>
|
||||
<decimal key="maximum" value="NaN"/>
|
||||
</numberFormatter>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.minMatchPercentage" id="102"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="17">
|
||||
<rect key="frame" x="16" y="51" width="330" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Match similar words" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="46">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="D1J-Cd-t9h">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeMusicIsNotContent</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.matchSimilarWords" id="83"/>
|
||||
<outlet property="nextKeyView" destination="20" id="111"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="11">
|
||||
<rect key="frame" x="16" y="11" width="330" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Remove empty folders after delete and move" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="62">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.removeEmptyFolders" id="103"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="10">
|
||||
<rect key="frame" x="15" y="131" width="100" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Tags to scan:" id="63">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="9">
|
||||
<rect key="frame" x="25" y="111" width="66" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Track" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="64">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="v2y-u6-gpL">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsTag</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.scanTagTrack" id="71"/>
|
||||
<outlet property="nextKeyView" destination="8" id="84"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="8">
|
||||
<rect key="frame" x="95" y="111" width="66" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Artist" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="65">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="N1M-yd-Fei">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsTag</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.scanTagArtist" id="97"/>
|
||||
<outlet property="nextKeyView" destination="7" id="99"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="7">
|
||||
<rect key="frame" x="165" y="111" width="66" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Album" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="66">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="Drg-pN-BWb">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsTag</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.scanTagAlbum" id="89"/>
|
||||
<outlet property="nextKeyView" destination="6" id="88"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="6">
|
||||
<rect key="frame" x="25" y="91" width="66" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Title" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="67">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="lrt-ME-8Kt">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsTag</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.scanTagTitle" id="79"/>
|
||||
<outlet property="nextKeyView" destination="5" id="90"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="5">
|
||||
<rect key="frame" x="95" y="91" width="66" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Genre" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="68">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="1V1-MS-Wg5">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsTag</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.scanTagGenre" id="94"/>
|
||||
<outlet property="nextKeyView" destination="4" id="107"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="4">
|
||||
<rect key="frame" x="165" y="91" width="66" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Year" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="69">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypeMusic" id="dkK-l1-CQf">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsTag</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.scanTagYear" id="74"/>
|
||||
<outlet property="nextKeyView" destination="21" id="108"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="133">
|
||||
<rect key="frame" x="15" y="156" width="100" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Font size:" id="136">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<comboBox verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" textCompletion="NO" id="134">
|
||||
<rect key="frame" x="120" y="152" width="69" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" numberOfVisibleItems="6" id="135">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<objectValues>
|
||||
<string>11</string>
|
||||
<string>12</string>
|
||||
<string>13</string>
|
||||
<string>14</string>
|
||||
<string>18</string>
|
||||
<string>24</string>
|
||||
</objectValues>
|
||||
</comboBoxCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.TableFontSize" id="137"/>
|
||||
</connections>
|
||||
</comboBox>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Advanced" identifier="2" id="117">
|
||||
<view key="view" id="118">
|
||||
<rect key="frame" x="10" y="33" width="360" height="223"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button imageHugsTitle="YES" id="12">
|
||||
<rect key="frame" x="15" y="204" width="340" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Use regular expressions when filtering" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="61">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.useRegexpFilter" id="106"/>
|
||||
<outlet property="nextKeyView" destination="11" id="104"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="15">
|
||||
<rect key="frame" x="14" y="98" width="332" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Copy and Move:" id="54">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="120">
|
||||
<rect key="frame" x="14" y="141" width="332" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Custom Command (arguments: %d for dupe, %r for ref):" id="121">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" imageHugsTitle="YES" id="14">
|
||||
<rect key="frame" x="14" y="66" width="256" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Right in destination" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="59" id="55">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<menu key="menu" title="OtherViews" id="56">
|
||||
<items>
|
||||
<menuItem title="Right in destination" state="on" id="59"/>
|
||||
<menuItem title="Recreate relative path" id="57"/>
|
||||
<menuItem title="Recreate absolute path" id="58"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="selectedIndex" keyPath="values.recreatePathType" id="98"/>
|
||||
<outlet property="nextKeyView" destination="18" id="86"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="122">
|
||||
<rect key="frame" x="17" y="119" width="326" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="123">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.CustomCommand" id="124"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<button imageHugsTitle="YES" id="125">
|
||||
<rect key="frame" x="15" y="184" width="340" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Ignore duplicates hardlinking to the same file" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="126">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.ignoreHardlinkMatches" id="128"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button imageHugsTitle="YES" id="129">
|
||||
<rect key="frame" x="15" y="164" width="340" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Debug mode (restart required)" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="130">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.DebugMode" id="132"/>
|
||||
</connections>
|
||||
</button>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
</tabViewItems>
|
||||
</tabView>
|
||||
</subviews>
|
||||
</view>
|
||||
<point key="canvasLocation" x="132" y="133"/>
|
||||
</window>
|
||||
</objects>
|
||||
</document>
|
277
cocoa/Base.lproj/PreferencesPicture.xib
Normal file
277
cocoa/Base.lproj/PreferencesPicture.xib
Normal file
@ -0,0 +1,277 @@
|
||||
<?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="NSWindowController">
|
||||
<connections>
|
||||
<outlet property="window" destination="2" id="51"/>
|
||||
</connections>
|
||||
</customObject>
|
||||
<customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
|
||||
<customObject id="-3" userLabel="Application"/>
|
||||
<userDefaultsController representsSharedInstance="YES" id="1" userLabel="Shared Defaults"/>
|
||||
<window title="dupeGuru PE Preferences" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" animationBehavior="default" id="2" userLabel="preferences">
|
||||
<windowStyleMask key="styleMask" titled="YES" closable="YES"/>
|
||||
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
|
||||
<rect key="contentRect" x="92" y="348" width="392" height="239"/>
|
||||
<rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
|
||||
<value key="minSize" type="size" width="213" height="107"/>
|
||||
<view key="contentView" misplaced="YES" id="3">
|
||||
<rect key="frame" x="0.0" y="0.0" width="392" height="239"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<button verticalHuggingPriority="750" imageHugsTitle="YES" id="10">
|
||||
<rect key="frame" x="230" y="3" width="148" height="32"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<buttonCell key="cell" type="push" title="Reset to Defaults" bezelStyle="rounded" alignment="center" borderStyle="border" inset="2" id="24">
|
||||
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<action selector="revertToInitialValues:" target="1" id="41"/>
|
||||
</connections>
|
||||
</button>
|
||||
<tabView misplaced="YES" id="59">
|
||||
<rect key="frame" x="13" y="28" width="366" height="205"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<tabViewItems>
|
||||
<tabViewItem label="Basic" identifier="1" id="60">
|
||||
<view key="view" id="63">
|
||||
<rect key="frame" x="10" y="33" width="346" height="159"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<slider verticalHuggingPriority="750" misplaced="YES" id="16">
|
||||
<rect key="frame" x="118" y="137" width="181" height="21"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<sliderCell key="cell" alignment="left" minValue="1" maxValue="100" doubleValue="80" tickMarkPosition="above" sliderType="linear" id="17">
|
||||
<font key="font" size="12" name="Helvetica"/>
|
||||
</sliderCell>
|
||||
<connections>
|
||||
<binding destination="1" name="enabled" keyPath="values.scanTypePicture" id="nGV-Zy-bzJ">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">vtScanTypeIsFuzzy</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1" name="value" keyPath="values.minMatchPercentage" id="49"/>
|
||||
<outlet property="nextKeyView" destination="7" id="50"/>
|
||||
</connections>
|
||||
</slider>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="15">
|
||||
<rect key="frame" x="120" y="120" width="80" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="More results" id="18">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="14">
|
||||
<rect key="frame" x="217" y="120" width="80" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" alignment="right" title="Fewer results" id="19">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="13">
|
||||
<rect key="frame" x="15" y="142" width="100" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Filter hardness:" id="20">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="12">
|
||||
<rect key="frame" x="16" y="48" width="316" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Can mix file kind" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="21">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.mixFileKind" id="38"/>
|
||||
<outlet property="nextKeyView" destination="4" id="43"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="7">
|
||||
<rect key="frame" x="16" y="68" width="316" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Match pictures of different dimensions" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="31">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.matchScaled" id="35"/>
|
||||
<outlet property="nextKeyView" destination="12" id="47"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button misplaced="YES" imageHugsTitle="YES" id="5">
|
||||
<rect key="frame" x="16" y="28" width="316" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Remove empty folders on delete or move" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="33">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.removeEmptyFolders" id="45"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="11">
|
||||
<rect key="frame" x="302" y="142" width="31" height="14"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" id="22">
|
||||
<numberFormatter key="formatter" formatterBehavior="10_0" positiveFormat="0" negativeFormat="-0" hasThousandSeparators="NO" thousandSeparator="," id="23">
|
||||
<attributedString key="attributedStringForZero">
|
||||
<fragment content="0"/>
|
||||
</attributedString>
|
||||
<decimal key="minimum" value="NaN"/>
|
||||
<decimal key="maximum" value="NaN"/>
|
||||
</numberFormatter>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.minMatchPercentage" id="37"/>
|
||||
</connections>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" id="101">
|
||||
<rect key="frame" x="15" y="92" width="100" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Font size:" id="104">
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<comboBox verticalHuggingPriority="750" misplaced="YES" allowsCharacterPickerTouchBarItem="NO" textCompletion="NO" id="102">
|
||||
<rect key="frame" x="120" y="88" width="69" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" numberOfVisibleItems="6" id="103">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
<objectValues>
|
||||
<string>11</string>
|
||||
<string>12</string>
|
||||
<string>13</string>
|
||||
<string>14</string>
|
||||
<string>18</string>
|
||||
<string>24</string>
|
||||
</objectValues>
|
||||
</comboBoxCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.TableFontSize" id="105"/>
|
||||
</connections>
|
||||
</comboBox>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
<tabViewItem label="Advanced" identifier="2" id="61">
|
||||
<view key="view" id="62">
|
||||
<rect key="frame" x="10" y="33" width="346" height="159"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<button imageHugsTitle="YES" id="4">
|
||||
<rect key="frame" x="15" y="140" width="316" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Use regular expressions when filtering" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="34">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.useRegexpFilter" id="42"/>
|
||||
<outlet property="nextKeyView" destination="5" id="39"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button imageHugsTitle="YES" id="69">
|
||||
<rect key="frame" x="15" y="120" width="316" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Ignore duplicates hardlinking to the same file" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="70">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.ignoreHardlinkMatches" id="73"/>
|
||||
<outlet property="nextKeyView" destination="5" id="72"/>
|
||||
</connections>
|
||||
</button>
|
||||
<button imageHugsTitle="YES" id="74">
|
||||
<rect key="frame" x="15" y="100" width="316" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<buttonCell key="cell" type="check" title="Debug mode (restart required)" bezelStyle="regularSquare" imagePosition="leading" alignment="left" inset="2" id="75">
|
||||
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
|
||||
<font key="font" metaFont="smallSystem"/>
|
||||
</buttonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.DebugMode" id="78"/>
|
||||
<outlet property="nextKeyView" destination="5" id="77"/>
|
||||
</connections>
|
||||
</button>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="9">
|
||||
<rect key="frame" x="14" y="34" width="318" height="13"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Copy and Move:" id="25">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="64">
|
||||
<rect key="frame" x="14" y="77" width="318" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" sendsActionOnEndEditing="YES" title="Custom Command (arguments: %d for dupe, %r for ref):" id="65">
|
||||
<font key="font" metaFont="label"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
<popUpButton verticalHuggingPriority="750" imageHugsTitle="YES" id="8">
|
||||
<rect key="frame" x="14" y="2" width="216" height="26"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<popUpButtonCell key="cell" type="push" title="Right in destination" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="30" id="26">
|
||||
<behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
|
||||
<font key="font" metaFont="system"/>
|
||||
<menu key="menu" title="OtherViews" id="27">
|
||||
<items>
|
||||
<menuItem title="Right in destination" state="on" id="30"/>
|
||||
<menuItem title="Recreate relative path" id="28"/>
|
||||
<menuItem title="Recreate absolute path" id="29"/>
|
||||
</items>
|
||||
</menu>
|
||||
</popUpButtonCell>
|
||||
<connections>
|
||||
<binding destination="1" name="selectedIndex" keyPath="values.recreatePathType" id="46"/>
|
||||
<outlet property="nextKeyView" destination="10" id="44"/>
|
||||
</connections>
|
||||
</popUpButton>
|
||||
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="66">
|
||||
<rect key="frame" x="17" y="55" width="312" height="22"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="67">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<connections>
|
||||
<binding destination="1" name="value" keyPath="values.CustomCommand" id="68"/>
|
||||
</connections>
|
||||
</textField>
|
||||
</subviews>
|
||||
</view>
|
||||
</tabViewItem>
|
||||
</tabViewItems>
|
||||
</tabView>
|
||||
</subviews>
|
||||
</view>
|
||||
<point key="canvasLocation" x="132" y="146.5"/>
|
||||
</window>
|
||||
</objects>
|
||||
</document>
|
@ -1,173 +0,0 @@
|
||||
appmode = args.get('appmode', 'standard')
|
||||
dialogHeights = {
|
||||
'standard': 325,
|
||||
'music': 345,
|
||||
'picture': 255,
|
||||
}
|
||||
|
||||
result = Window(410, dialogHeights[appmode], "dupeGuru Preferences")
|
||||
tabView = TabView(result)
|
||||
basicTab = tabView.addTab("Basic")
|
||||
advancedTab = tabView.addTab("Advanced")
|
||||
thresholdSlider = Slider(basicTab.view, 1, 100, 80)
|
||||
thresholdLabel = Label(basicTab.view, "Filter hardness:")
|
||||
moreResultsLabel = Label(basicTab.view, "More results")
|
||||
fewerResultsLabel = Label(basicTab.view, "Fewer results")
|
||||
thresholdValueLabel = Label(basicTab.view, "")
|
||||
fontSizeCombo = Combobox(basicTab.view, ["11", "12", "13", "14", "18", "24"])
|
||||
fontSizeLabel = Label(basicTab.view, "Font Size:")
|
||||
if appmode in ('standard', 'music'):
|
||||
wordWeightingBox = Checkbox(basicTab.view, "Word weighting")
|
||||
matchSimilarWordsBox = Checkbox(basicTab.view, "Match similar words")
|
||||
elif appmode == 'picture':
|
||||
matchDifferentDimensionsBox = Checkbox(basicTab.view, "Match pictures of different dimensions")
|
||||
mixKindBox = Checkbox(basicTab.view, "Can mix file kind")
|
||||
removeEmptyFoldersBox = Checkbox(basicTab.view, "Remove empty folders on delete or move")
|
||||
checkForUpdatesBox = Checkbox(basicTab.view, "Automatically check for updates")
|
||||
if appmode == 'standard':
|
||||
ignoreSmallFilesBox = Checkbox(basicTab.view, "Ignore files smaller than:")
|
||||
smallFilesThresholdText = TextField(basicTab.view, "")
|
||||
smallFilesThresholdSuffixLabel = Label(basicTab.view, "KB")
|
||||
elif appmode == 'music':
|
||||
tagsToScanLabel = Label(basicTab.view, "Tags to scan:")
|
||||
trackBox = Checkbox(basicTab.view, "Track")
|
||||
artistBox = Checkbox(basicTab.view, "Artist")
|
||||
albumBox = Checkbox(basicTab.view, "Album")
|
||||
titleBox = Checkbox(basicTab.view, "Title")
|
||||
genreBox = Checkbox(basicTab.view, "Genre")
|
||||
yearBox = Checkbox(basicTab.view, "Year")
|
||||
tagBoxes = [trackBox, artistBox, albumBox, titleBox, genreBox, yearBox]
|
||||
|
||||
regexpCheckbox = Checkbox(advancedTab.view, "Use regular expressions when filtering")
|
||||
ignoreHardlinksBox = Checkbox(advancedTab.view, "Ignore duplicates hardlinking to the same file")
|
||||
debugModeCheckbox = Checkbox(advancedTab.view, "Debug mode (restart required)")
|
||||
customCommandLabel = Label(advancedTab.view, "Custom command (arguments: %d for dupe, %r for ref):")
|
||||
customCommandText = TextField(advancedTab.view, "")
|
||||
copyMoveLabel = Label(advancedTab.view, "Copy and Move:")
|
||||
copyMovePopup = Popup(advancedTab.view, ["Right in destination", "Recreate relative path", "Recreate absolute path"])
|
||||
|
||||
resetToDefaultsButton = Button(result, "Reset To Defaults")
|
||||
thresholdSlider.bind('value', defaults, 'values.minMatchPercentage')
|
||||
thresholdValueLabel.bind('value', defaults, 'values.minMatchPercentage')
|
||||
fontSizeCombo.bind('value', defaults, 'values.TableFontSize')
|
||||
mixKindBox.bind('value', defaults, 'values.mixFileKind')
|
||||
removeEmptyFoldersBox.bind('value', defaults, 'values.removeEmptyFolders')
|
||||
checkForUpdatesBox.bind('value', defaults, 'values.SUEnableAutomaticChecks')
|
||||
regexpCheckbox.bind('value', defaults, 'values.useRegexpFilter')
|
||||
ignoreHardlinksBox.bind('value', defaults, 'values.ignoreHardlinkMatches')
|
||||
debugModeCheckbox.bind('value', defaults, 'values.DebugMode')
|
||||
customCommandText.bind('value', defaults, 'values.CustomCommand')
|
||||
copyMovePopup.bind('selectedIndex', defaults, 'values.recreatePathType')
|
||||
if appmode in ('standard', 'music'):
|
||||
wordWeightingBox.bind('value', defaults, 'values.wordWeighting')
|
||||
matchSimilarWordsBox.bind('value', defaults, 'values.matchSimilarWords')
|
||||
disableWhenContentScan = [thresholdSlider, wordWeightingBox, matchSimilarWordsBox]
|
||||
for control in disableWhenContentScan:
|
||||
vtname = 'vtScanTypeMusicIsNotContent' if appmode == 'music' else 'vtScanTypeIsNotContent'
|
||||
prefname = 'values.scanTypeMusic' if appmode == 'music' else 'values.scanTypeStandard'
|
||||
control.bind('enabled', defaults, prefname, valueTransformer=vtname)
|
||||
if appmode == 'standard':
|
||||
ignoreSmallFilesBox.bind('value', defaults, 'values.ignoreSmallFiles')
|
||||
smallFilesThresholdText.bind('value', defaults, 'values.smallFileThreshold')
|
||||
elif appmode == 'music':
|
||||
for box in tagBoxes:
|
||||
box.bind('enabled', defaults, 'values.scanTypeMusic', valueTransformer='vtScanTypeIsTag')
|
||||
trackBox.bind('value', defaults, 'values.scanTagTrack')
|
||||
artistBox.bind('value', defaults, 'values.scanTagArtist')
|
||||
albumBox.bind('value', defaults, 'values.scanTagAlbum')
|
||||
titleBox.bind('value', defaults, 'values.scanTagTitle')
|
||||
genreBox.bind('value', defaults, 'values.scanTagGenre')
|
||||
yearBox.bind('value', defaults, 'values.scanTagYear')
|
||||
elif appmode == 'picture':
|
||||
matchDifferentDimensionsBox.bind('value', defaults, 'values.matchScaled')
|
||||
thresholdSlider.bind('enabled', defaults, 'values.scanTypePicture', valueTransformer='vtScanTypeIsFuzzy')
|
||||
|
||||
result.canResize = False
|
||||
result.canMinimize = False
|
||||
thresholdValueLabel.formatter = NumberFormatter(NumberStyle.Decimal)
|
||||
thresholdValueLabel.formatter.maximumFractionDigits = 0
|
||||
allLabels = [thresholdValueLabel, moreResultsLabel, fewerResultsLabel,
|
||||
thresholdLabel, fontSizeLabel, customCommandLabel, copyMoveLabel]
|
||||
allCheckboxes = [mixKindBox, removeEmptyFoldersBox, checkForUpdatesBox, regexpCheckbox,
|
||||
ignoreHardlinksBox, debugModeCheckbox]
|
||||
if appmode == 'standard':
|
||||
allLabels += [smallFilesThresholdSuffixLabel]
|
||||
allCheckboxes += [ignoreSmallFilesBox, wordWeightingBox, matchSimilarWordsBox]
|
||||
elif appmode == 'music':
|
||||
allLabels += [tagsToScanLabel]
|
||||
allCheckboxes += tagBoxes + [wordWeightingBox, matchSimilarWordsBox]
|
||||
elif appmode == 'picture':
|
||||
allCheckboxes += [matchDifferentDimensionsBox]
|
||||
for label in allLabels:
|
||||
label.controlSize = ControlSize.Small
|
||||
fewerResultsLabel.alignment = TextAlignment.Right
|
||||
for checkbox in allCheckboxes:
|
||||
checkbox.font = thresholdValueLabel.font
|
||||
resetToDefaultsButton.action = Action(defaults, 'revertToInitialValues:')
|
||||
|
||||
thresholdLabel.width = fontSizeLabel.width = 94
|
||||
fontSizeCombo.width = 66
|
||||
thresholdValueLabel.width = 25
|
||||
resetToDefaultsButton.width = 136
|
||||
if appmode == 'standard':
|
||||
smallFilesThresholdText.width = 60
|
||||
smallFilesThresholdSuffixLabel.width = 40
|
||||
elif appmode == 'music':
|
||||
for box in tagBoxes:
|
||||
box.width = 70
|
||||
|
||||
tabView.packToCorner(Pack.UpperLeft)
|
||||
tabView.fill(Pack.Right)
|
||||
resetToDefaultsButton.packRelativeTo(tabView, Pack.Below, align=Pack.Right)
|
||||
tabView.fill(Pack.Below, margin=14)
|
||||
tabView.setAnchor(Pack.UpperLeft, growX=True, growY=True)
|
||||
thresholdLayout = HLayout([thresholdLabel, thresholdSlider, thresholdValueLabel], filler=thresholdSlider)
|
||||
thresholdLayout.packToCorner(Pack.UpperLeft)
|
||||
thresholdLayout.fill(Pack.Right)
|
||||
# We want to give the labels as much space as possible, and we only "know" how much is available
|
||||
# after the slider's fill operation.
|
||||
moreResultsLabel.width = fewerResultsLabel.width = thresholdSlider.width // 2
|
||||
moreResultsLabel.packRelativeTo(thresholdSlider, Pack.Below, align=Pack.Left, margin=6)
|
||||
fewerResultsLabel.packRelativeTo(thresholdSlider, Pack.Below, align=Pack.Right, margin=6)
|
||||
fontSizeCombo.packRelativeTo(moreResultsLabel, Pack.Below)
|
||||
fontSizeLabel.packRelativeTo(fontSizeCombo, Pack.Left)
|
||||
|
||||
if appmode == 'music':
|
||||
tagsToScanLabel.packRelativeTo(fontSizeCombo, Pack.Below)
|
||||
tagsToScanLabel.fill(Pack.Left)
|
||||
tagsToScanLabel.fill(Pack.Right)
|
||||
trackBox.packRelativeTo(tagsToScanLabel, Pack.Below)
|
||||
trackBox.x += 10
|
||||
artistBox.packRelativeTo(trackBox, Pack.Right)
|
||||
albumBox.packRelativeTo(artistBox, Pack.Right)
|
||||
titleBox.packRelativeTo(trackBox, Pack.Below)
|
||||
genreBox.packRelativeTo(titleBox, Pack.Right)
|
||||
yearBox.packRelativeTo(genreBox, Pack.Right)
|
||||
viewToPackCheckboxesUnder = titleBox
|
||||
else:
|
||||
viewToPackCheckboxesUnder = fontSizeCombo
|
||||
|
||||
if appmode == 'standard':
|
||||
checkboxesToLayout = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox,
|
||||
ignoreSmallFilesBox]
|
||||
elif appmode == 'music':
|
||||
checkboxesToLayout = [wordWeightingBox, matchSimilarWordsBox, mixKindBox, removeEmptyFoldersBox,
|
||||
checkForUpdatesBox]
|
||||
elif appmode == 'picture':
|
||||
checkboxesToLayout = [matchDifferentDimensionsBox, mixKindBox, removeEmptyFoldersBox,
|
||||
checkForUpdatesBox]
|
||||
checkboxLayout = VLayout(checkboxesToLayout)
|
||||
checkboxLayout.packRelativeTo(viewToPackCheckboxesUnder, Pack.Below)
|
||||
checkboxLayout.fill(Pack.Left)
|
||||
checkboxLayout.fill(Pack.Right)
|
||||
|
||||
if appmode == 'standard':
|
||||
smallFilesThresholdText.packRelativeTo(ignoreSmallFilesBox, Pack.Below, margin=4)
|
||||
checkForUpdatesBox.packRelativeTo(smallFilesThresholdText, Pack.Below, margin=4)
|
||||
checkForUpdatesBox.fill(Pack.Right)
|
||||
smallFilesThresholdText.x += 20
|
||||
smallFilesThresholdSuffixLabel.packRelativeTo(smallFilesThresholdText, Pack.Right)
|
||||
|
||||
advancedLayout = VLayout(advancedTab.view.subviews[:])
|
||||
advancedLayout.packToCorner(Pack.UpperLeft)
|
||||
advancedLayout.fill(Pack.Right)
|
@ -10,6 +10,9 @@
|
||||
CE0559871E762105008EB4F8 /* IgnoreListDialog.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE0559851E762105008EB4F8 /* IgnoreListDialog.xib */; };
|
||||
CE05598E1E76217C008EB4F8 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE05598C1E76217C008EB4F8 /* Localizable.strings */; };
|
||||
CE0559921E7626E7008EB4F8 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CE0559911E7626E7008EB4F8 /* locale */; };
|
||||
CE41E6BD1E95D4B600D9F8FF /* Preferences.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE41E6B71E95D4B600D9F8FF /* Preferences.xib */; };
|
||||
CE41E6BE1E95D4B600D9F8FF /* PreferencesMusic.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE41E6B91E95D4B600D9F8FF /* PreferencesMusic.xib */; };
|
||||
CE41E6BF1E95D4B600D9F8FF /* PreferencesPicture.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE41E6BB1E95D4B600D9F8FF /* PreferencesPicture.xib */; };
|
||||
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 */; };
|
||||
@ -55,9 +58,6 @@
|
||||
CE9720F41E74E40300A598C9 /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720E51E74E40300A598C9 /* ResultWindow.m */; };
|
||||
CE9720F51E74E40300A598C9 /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9720E71E74E40300A598C9 /* StatsLabel.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 */; };
|
||||
CE9721481E74E41D00A598C9 /* PreferencesPanelStandard_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97210E1E74E41C00A598C9 /* PreferencesPanelStandard_UI.m */; };
|
||||
CE97214C1E74E41D00A598C9 /* PyBaseApp.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721161E74E41D00A598C9 /* PyBaseApp.m */; };
|
||||
CE97214D1E74E41D00A598C9 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9721181E74E41D00A598C9 /* PyColumns.m */; };
|
||||
CE97214E1E74E41D00A598C9 /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE97211A1E74E41D00A598C9 /* PyDeletionOptions.m */; };
|
||||
@ -137,6 +137,54 @@
|
||||
CE0559CD1E762A94008EB4F8 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "cocoa/zh-Hans.lproj/Localizable.strings"; sourceTree = "<group>"; };
|
||||
CE0559CE1E762A9A008EB4F8 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = cocoa/vi.lproj/IgnoreListDialog.strings; sourceTree = "<group>"; };
|
||||
CE0559D01E762A9A008EB4F8 /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = cocoa/vi.lproj/Localizable.strings; sourceTree = "<group>"; };
|
||||
CE41E6B81E95D4B600D9F8FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = cocoa/Base.lproj/Preferences.xib; sourceTree = "<group>"; };
|
||||
CE41E6BA1E95D4B600D9F8FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = cocoa/Base.lproj/PreferencesMusic.xib; sourceTree = "<group>"; };
|
||||
CE41E6BC1E95D4B600D9F8FF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = cocoa/Base.lproj/PreferencesPicture.xib; sourceTree = "<group>"; };
|
||||
CE41E6C11E95D50200D9F8FF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = cocoa/fr.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6C31E95D50300D9F8FF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = cocoa/de.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6C51E95D50500D9F8FF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cocoa/cs.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6C71E95D50600D9F8FF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = cocoa/es.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6C91E95D50800D9F8FF /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = cocoa/el.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6CB1E95D50900D9F8FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = cocoa/it.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6CD1E95D50A00D9F8FF /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = cocoa/nl.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6CF1E95D50C00D9F8FF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = cocoa/pl.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6D11E95D50D00D9F8FF /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = cocoa/ko.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6D31E95D50F00D9F8FF /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = cocoa/hy.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6D51E95D51100D9F8FF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "cocoa/pt-BR.lproj/Preferences.strings"; sourceTree = "<group>"; };
|
||||
CE41E6D71E95D51200D9F8FF /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = cocoa/ru.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6D91E95D51400D9F8FF /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = cocoa/uk.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6DB1E95D51500D9F8FF /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "cocoa/zh-Hans.lproj/Preferences.strings"; sourceTree = "<group>"; };
|
||||
CE41E6DD1E95D51800D9F8FF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = cocoa/vi.lproj/Preferences.strings; sourceTree = "<group>"; };
|
||||
CE41E6DF1E95D76800D9F8FF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = cocoa/fr.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6E11E95D76A00D9F8FF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = cocoa/de.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6E31E95D76B00D9F8FF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cocoa/cs.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6E51E95D76C00D9F8FF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = cocoa/es.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6E71E95D76E00D9F8FF /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = cocoa/el.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6E91E95D76F00D9F8FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = cocoa/it.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6EB1E95D77100D9F8FF /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = cocoa/nl.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6ED1E95D77200D9F8FF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = cocoa/pl.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6EF1E95D77300D9F8FF /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = cocoa/ko.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6F11E95D77600D9F8FF /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = cocoa/hy.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6F31E95D77700D9F8FF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "cocoa/pt-BR.lproj/PreferencesMusic.strings"; sourceTree = "<group>"; };
|
||||
CE41E6F51E95D77800D9F8FF /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = cocoa/ru.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6F71E95D77A00D9F8FF /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = cocoa/uk.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6F91E95D77B00D9F8FF /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "cocoa/zh-Hans.lproj/PreferencesMusic.strings"; sourceTree = "<group>"; };
|
||||
CE41E6FB1E95D77C00D9F8FF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = cocoa/vi.lproj/PreferencesMusic.strings; sourceTree = "<group>"; };
|
||||
CE41E6FD1E95D7F500D9F8FF /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = cocoa/fr.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E6FF1E95D7F700D9F8FF /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = cocoa/de.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E7011E95D7F800D9F8FF /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = cocoa/cs.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E7031E95D7F900D9F8FF /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = cocoa/es.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E7051E95D7FA00D9F8FF /* el */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = el; path = cocoa/el.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E7071E95D7FC00D9F8FF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = cocoa/it.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E7091E95D7FD00D9F8FF /* nl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = nl; path = cocoa/nl.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E70B1E95D7FF00D9F8FF /* pl */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pl; path = cocoa/pl.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E70D1E95D80100D9F8FF /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = cocoa/ko.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E70F1E95D80200D9F8FF /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = cocoa/hy.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E7111E95D80300D9F8FF /* pt-BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "pt-BR"; path = "cocoa/pt-BR.lproj/PreferencesPicture.strings"; sourceTree = "<group>"; };
|
||||
CE41E7131E95D80500D9F8FF /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = cocoa/ru.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E7151E95D80700D9F8FF /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = cocoa/uk.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE41E7171E95D80900D9F8FF /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "cocoa/zh-Hans.lproj/PreferencesPicture.strings"; sourceTree = "<group>"; };
|
||||
CE41E7191E95D80A00D9F8FF /* vi */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = vi; path = cocoa/vi.lproj/PreferencesPicture.strings; sourceTree = "<group>"; };
|
||||
CE549CDB1E933C7600C75A05 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = cocoa/Base.lproj/ResultWindow.xib; sourceTree = "<group>"; };
|
||||
CE549CDE1E933D4A00C75A05 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = cocoa/fr.lproj/ResultWindow.strings; sourceTree = "<group>"; };
|
||||
CE549CE01E933D4C00C75A05 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = cocoa/de.lproj/ResultWindow.strings; sourceTree = "<group>"; };
|
||||
@ -313,12 +361,6 @@
|
||||
CE9720E71E74E40300A598C9 /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = cocoa/StatsLabel.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>"; };
|
||||
CE97210A1E74E41C00A598C9 /* PreferencesPanelMusic_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PreferencesPanelMusic_UI.m; path = cocoa/autogen/PreferencesPanelMusic_UI.m; sourceTree = "<group>"; };
|
||||
CE97210B1E74E41C00A598C9 /* PreferencesPanelPicture_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PreferencesPanelPicture_UI.h; path = cocoa/autogen/PreferencesPanelPicture_UI.h; sourceTree = "<group>"; };
|
||||
CE97210C1E74E41C00A598C9 /* PreferencesPanelPicture_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PreferencesPanelPicture_UI.m; path = cocoa/autogen/PreferencesPanelPicture_UI.m; sourceTree = "<group>"; };
|
||||
CE97210D1E74E41C00A598C9 /* PreferencesPanelStandard_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PreferencesPanelStandard_UI.h; path = cocoa/autogen/PreferencesPanelStandard_UI.h; sourceTree = "<group>"; };
|
||||
CE97210E1E74E41C00A598C9 /* PreferencesPanelStandard_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PreferencesPanelStandard_UI.m; path = cocoa/autogen/PreferencesPanelStandard_UI.m; sourceTree = "<group>"; };
|
||||
CE9721151E74E41D00A598C9 /* PyBaseApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyBaseApp.h; path = cocoa/autogen/PyBaseApp.h; sourceTree = "<group>"; };
|
||||
CE9721161E74E41D00A598C9 /* PyBaseApp.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PyBaseApp.m; path = cocoa/autogen/PyBaseApp.m; sourceTree = "<group>"; };
|
||||
CE9721171E74E41D00A598C9 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PyColumns.h; path = cocoa/autogen/PyColumns.h; sourceTree = "<group>"; };
|
||||
@ -484,6 +526,9 @@
|
||||
CEF0941E1E947AF700CD0BF3 /* DetailsPanelPicture.xib */,
|
||||
CEF0943F1E947CAB00CD0BF3 /* PrioritizeDialog.xib */,
|
||||
CEF094601E94828600CD0BF3 /* ProblemDialog.xib */,
|
||||
CE41E6B71E95D4B600D9F8FF /* Preferences.xib */,
|
||||
CE41E6B91E95D4B600D9F8FF /* PreferencesMusic.xib */,
|
||||
CE41E6BB1E95D4B600D9F8FF /* PreferencesPicture.xib */,
|
||||
);
|
||||
name = xib;
|
||||
sourceTree = "<group>";
|
||||
@ -619,12 +664,6 @@
|
||||
children = (
|
||||
CE9721071E74E41C00A598C9 /* ObjP.h */,
|
||||
CE9721081E74E41C00A598C9 /* ObjP.m */,
|
||||
CE9721091E74E41C00A598C9 /* PreferencesPanelMusic_UI.h */,
|
||||
CE97210A1E74E41C00A598C9 /* PreferencesPanelMusic_UI.m */,
|
||||
CE97210B1E74E41C00A598C9 /* PreferencesPanelPicture_UI.h */,
|
||||
CE97210C1E74E41C00A598C9 /* PreferencesPanelPicture_UI.m */,
|
||||
CE97210D1E74E41C00A598C9 /* PreferencesPanelStandard_UI.h */,
|
||||
CE97210E1E74E41C00A598C9 /* PreferencesPanelStandard_UI.m */,
|
||||
CE9721151E74E41D00A598C9 /* PyBaseApp.h */,
|
||||
CE9721161E74E41D00A598C9 /* PyBaseApp.m */,
|
||||
CE9721171E74E41D00A598C9 /* PyColumns.h */,
|
||||
@ -780,6 +819,7 @@
|
||||
CE05598E1E76217C008EB4F8 /* Localizable.strings in Resources */,
|
||||
CE65D0ED1E7783C40092126E /* ErrorReportWindow.xib in Resources */,
|
||||
CE549CDC1E933C7600C75A05 /* ResultWindow.xib in Resources */,
|
||||
CE41E6BF1E95D4B600D9F8FF /* PreferencesPicture.xib in Resources */,
|
||||
CEF094411E947CAB00CD0BF3 /* PrioritizeDialog.xib in Resources */,
|
||||
CEFC8A251E74F23000965F37 /* dg_cocoa.py in Resources */,
|
||||
CEF093DE1E9474F700CD0BF3 /* DeletionOptions.xib in Resources */,
|
||||
@ -789,6 +829,8 @@
|
||||
CE0559871E762105008EB4F8 /* IgnoreListDialog.xib in Resources */,
|
||||
CEF094621E94828600CD0BF3 /* ProblemDialog.xib in Resources */,
|
||||
CEF094201E947AF700CD0BF3 /* DetailsPanelPicture.xib in Resources */,
|
||||
CE41E6BE1E95D4B600D9F8FF /* PreferencesMusic.xib in Resources */,
|
||||
CE41E6BD1E95D4B600D9F8FF /* Preferences.xib in Resources */,
|
||||
CEFC8A261E74F23000965F37 /* dupeguru.icns in Resources */,
|
||||
CE65D0CC1E7781640092126E /* progress.xib in Resources */,
|
||||
CE9EF6DF1E9345100089CA20 /* MainMenu.xib in Resources */,
|
||||
@ -827,7 +869,6 @@
|
||||
CE9720F51E74E40300A598C9 /* StatsLabel.m in Sources */,
|
||||
CE6F7DEA1E74E9E4004C0518 /* HSQuicklook.m in Sources */,
|
||||
CE97214C1E74E41D00A598C9 /* PyBaseApp.m in Sources */,
|
||||
CE9721461E74E41D00A598C9 /* PreferencesPanelMusic_UI.m in Sources */,
|
||||
CE6F7DF11E74E9E4004C0518 /* ValueTransformers.m in Sources */,
|
||||
CE9720E91E74E40300A598C9 /* DeletionOptions.m in Sources */,
|
||||
CE6F7E061E74EA12004C0518 /* HSOutline.m in Sources */,
|
||||
@ -836,7 +877,6 @@
|
||||
CE6F7DE71E74E9E4004C0518 /* HSAboutBox.m in Sources */,
|
||||
CE9720EF1E74E40300A598C9 /* main.m in Sources */,
|
||||
CE9721591E74E41D00A598C9 /* PyResultTable.m in Sources */,
|
||||
CE9721481E74E41D00A598C9 /* PreferencesPanelStandard_UI.m in Sources */,
|
||||
CE9720E81E74E40300A598C9 /* AppDelegate.m in Sources */,
|
||||
CE9721561E74E41D00A598C9 /* PyPrioritizeList.m in Sources */,
|
||||
CE6F7DEF1E74E9E4004C0518 /* ProgressController.m in Sources */,
|
||||
@ -858,7 +898,6 @@
|
||||
CE6F7E141E74EA26004C0518 /* HSOutlineView.m in Sources */,
|
||||
CE97214F1E74E41D00A598C9 /* PyDetailsPanel.m in Sources */,
|
||||
CE6F7E171E74EA26004C0518 /* NSTableViewAdditions.m in Sources */,
|
||||
CE9721471E74E41D00A598C9 /* PreferencesPanelPicture_UI.m in Sources */,
|
||||
CE97215C1E74E41D00A598C9 /* PyTable.m in Sources */,
|
||||
CE9721581E74E41D00A598C9 /* PyProgressWindow.m in Sources */,
|
||||
CE6F7DEC1E74E9E4004C0518 /* NSEventAdditions.m in Sources */,
|
||||
@ -916,6 +955,75 @@
|
||||
name = Localizable.strings;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE41E6B71E95D4B600D9F8FF /* Preferences.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
CE41E6B81E95D4B600D9F8FF /* Base */,
|
||||
CE41E6C11E95D50200D9F8FF /* fr */,
|
||||
CE41E6C31E95D50300D9F8FF /* de */,
|
||||
CE41E6C51E95D50500D9F8FF /* cs */,
|
||||
CE41E6C71E95D50600D9F8FF /* es */,
|
||||
CE41E6C91E95D50800D9F8FF /* el */,
|
||||
CE41E6CB1E95D50900D9F8FF /* it */,
|
||||
CE41E6CD1E95D50A00D9F8FF /* nl */,
|
||||
CE41E6CF1E95D50C00D9F8FF /* pl */,
|
||||
CE41E6D11E95D50D00D9F8FF /* ko */,
|
||||
CE41E6D31E95D50F00D9F8FF /* hy */,
|
||||
CE41E6D51E95D51100D9F8FF /* pt-BR */,
|
||||
CE41E6D71E95D51200D9F8FF /* ru */,
|
||||
CE41E6D91E95D51400D9F8FF /* uk */,
|
||||
CE41E6DB1E95D51500D9F8FF /* zh-Hans */,
|
||||
CE41E6DD1E95D51800D9F8FF /* vi */,
|
||||
);
|
||||
name = Preferences.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE41E6B91E95D4B600D9F8FF /* PreferencesMusic.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
CE41E6BA1E95D4B600D9F8FF /* Base */,
|
||||
CE41E6DF1E95D76800D9F8FF /* fr */,
|
||||
CE41E6E11E95D76A00D9F8FF /* de */,
|
||||
CE41E6E31E95D76B00D9F8FF /* cs */,
|
||||
CE41E6E51E95D76C00D9F8FF /* es */,
|
||||
CE41E6E71E95D76E00D9F8FF /* el */,
|
||||
CE41E6E91E95D76F00D9F8FF /* it */,
|
||||
CE41E6EB1E95D77100D9F8FF /* nl */,
|
||||
CE41E6ED1E95D77200D9F8FF /* pl */,
|
||||
CE41E6EF1E95D77300D9F8FF /* ko */,
|
||||
CE41E6F11E95D77600D9F8FF /* hy */,
|
||||
CE41E6F31E95D77700D9F8FF /* pt-BR */,
|
||||
CE41E6F51E95D77800D9F8FF /* ru */,
|
||||
CE41E6F71E95D77A00D9F8FF /* uk */,
|
||||
CE41E6F91E95D77B00D9F8FF /* zh-Hans */,
|
||||
CE41E6FB1E95D77C00D9F8FF /* vi */,
|
||||
);
|
||||
name = PreferencesMusic.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE41E6BB1E95D4B600D9F8FF /* PreferencesPicture.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
CE41E6BC1E95D4B600D9F8FF /* Base */,
|
||||
CE41E6FD1E95D7F500D9F8FF /* fr */,
|
||||
CE41E6FF1E95D7F700D9F8FF /* de */,
|
||||
CE41E7011E95D7F800D9F8FF /* cs */,
|
||||
CE41E7031E95D7F900D9F8FF /* es */,
|
||||
CE41E7051E95D7FA00D9F8FF /* el */,
|
||||
CE41E7071E95D7FC00D9F8FF /* it */,
|
||||
CE41E7091E95D7FD00D9F8FF /* nl */,
|
||||
CE41E70B1E95D7FF00D9F8FF /* pl */,
|
||||
CE41E70D1E95D80100D9F8FF /* ko */,
|
||||
CE41E70F1E95D80200D9F8FF /* hy */,
|
||||
CE41E7111E95D80300D9F8FF /* pt-BR */,
|
||||
CE41E7131E95D80500D9F8FF /* ru */,
|
||||
CE41E7151E95D80700D9F8FF /* uk */,
|
||||
CE41E7171E95D80900D9F8FF /* zh-Hans */,
|
||||
CE41E7191E95D80A00D9F8FF /* vi */,
|
||||
);
|
||||
name = PreferencesPicture.xib;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
CE549CDA1E933C7600C75A05 /* ResultWindow.xib */ = {
|
||||
isa = PBXVariantGroup;
|
||||
children = (
|
||||
|
@ -1,4 +1,3 @@
|
||||
-r dupeguru/requirements.txt
|
||||
objp>=1.3.1
|
||||
xibless>=0.4.1
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user