parent
4c0a66379b
commit
a007ccb1ec
@ -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>
|
@ -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>
|
@ -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)
|