Add two new toolbar buttons

Added buttons to remove duplicates and remove dead items, in case anyone
finds themselves needing these options often enough to want to put them
in their toolbar instead of using the menu.

Fixes #225

Signed-off-by: Christopher Snowhill <kode54@gmail.com>
CQTexperiment
Christopher Snowhill 2022-02-09 23:12:17 -08:00
parent 60a7052868
commit 086367f388
4 changed files with 79 additions and 5 deletions

View File

@ -210,7 +210,7 @@
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/> <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews> <prototypeCellViews>
<tableCellView id="gpC-Oe-Rog"> <tableCellView id="gpC-Oe-Rog">
<rect key="frame" x="235" y="3" width="149" height="18"/> <rect key="frame" x="234.5" y="3" width="149" height="18"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1WK-qN-Mgj"> <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1WK-qN-Mgj">
@ -289,7 +289,7 @@
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/> <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews> <prototypeCellViews>
<tableCellView id="hhB-nv-e78"> <tableCellView id="hhB-nv-e78">
<rect key="frame" x="541" y="3" width="95" height="18"/> <rect key="frame" x="540.5" y="3" width="95" height="18"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tHy-sM-HDB"> <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tHy-sM-HDB">
@ -366,7 +366,7 @@
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/> <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews> <prototypeCellViews>
<tableCellView id="rRl-p9-Awr"> <tableCellView id="rRl-p9-Awr">
<rect key="frame" x="736" y="3" width="144" height="18"/> <rect key="frame" x="735.5" y="3" width="144" height="18"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yW6-2w-6mN"> <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yW6-2w-6mN">
@ -402,7 +402,7 @@
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/> <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
<prototypeCellViews> <prototypeCellViews>
<tableCellView id="hgh-VE-5kl"> <tableCellView id="hgh-VE-5kl">
<rect key="frame" x="883" y="3" width="38" height="18"/> <rect key="frame" x="882.5" y="3" width="38" height="18"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yEY-MI-d3o"> <textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yEY-MI-d3o">
@ -844,6 +844,38 @@
<size key="minSize" width="70" height="25"/> <size key="minSize" width="70" height="25"/>
<size key="maxSize" width="70" height="25"/> <size key="maxSize" width="70" height="25"/>
</toolbarItem> </toolbarItem>
<toolbarItem implicitItemIdentifier="9824C59B-F192-42FE-963F-6B8526B82EDB" label="Remove Duplicate Items" paletteLabel="Remove Duplicate Items" image="duplicateItemsTemplate" bordered="YES" navigational="YES" id="rEg-qk-MbN">
<nil key="toolTip"/>
<size key="minSize" width="28" height="23"/>
<size key="maxSize" width="32" height="32"/>
<button key="view" verticalHuggingPriority="750" id="tZ2-xZ-vNQ">
<rect key="frame" x="53" y="14" width="28" height="23"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="duplicateItemsTemplate" imagePosition="only" alignment="center" borderStyle="border" id="q9i-5M-4gr">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="removeDuplicates:" target="218" id="Ulv-Kg-y6i"/>
</connections>
</button>
</toolbarItem>
<toolbarItem implicitItemIdentifier="7AA82F92-BD5B-4F3B-AD99-806D95A471C3" label="Remove Dead Items" paletteLabel="Remove Dead Items" image="deadItemsTemplate" bordered="YES" navigational="YES" id="knJ-aI-sFa">
<nil key="toolTip"/>
<size key="minSize" width="28" height="23"/>
<size key="maxSize" width="32" height="32"/>
<button key="view" verticalHuggingPriority="750" id="sRS-xA-LC2">
<rect key="frame" x="42" y="14" width="28" height="23"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="deadItemsTemplate" imagePosition="only" alignment="center" borderStyle="border" id="UR2-Bz-PyJ">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="removeDeadItems:" target="218" id="AjJ-ni-aTW"/>
</connections>
</button>
</toolbarItem>
</allowedToolbarItems> </allowedToolbarItems>
<defaultToolbarItems> <defaultToolbarItems>
<toolbarItem reference="ZH9-ZU-skw"/> <toolbarItem reference="ZH9-ZU-skw"/>
@ -1043,7 +1075,7 @@
<toolbarItem implicitItemIdentifier="1A6385ED-7F2D-4752-8113-C8693E5DDC1C" label="Show Equalizer" paletteLabel="Show Equalizer" image="equalizerTemplate" bordered="YES" sizingBehavior="auto" id="ZOn-sB-FR3"> <toolbarItem implicitItemIdentifier="1A6385ED-7F2D-4752-8113-C8693E5DDC1C" label="Show Equalizer" paletteLabel="Show Equalizer" image="equalizerTemplate" bordered="YES" sizingBehavior="auto" id="ZOn-sB-FR3">
<nil key="toolTip"/> <nil key="toolTip"/>
<button key="view" verticalHuggingPriority="750" id="pbi-yj-rqU"> <button key="view" verticalHuggingPriority="750" id="pbi-yj-rqU">
<rect key="frame" x="31" y="14" width="26" height="26"/> <rect key="frame" x="32" y="14" width="24" height="19"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="equalizerTemplate" imagePosition="only" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="SX9-eB-f6f"> <buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="equalizerTemplate" imagePosition="only" alignment="center" controlSize="small" borderStyle="border" imageScaling="proportionallyUpOrDown" inset="2" id="SX9-eB-f6f">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/> <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
@ -1058,6 +1090,38 @@
<size key="minSize" width="70" height="25"/> <size key="minSize" width="70" height="25"/>
<size key="maxSize" width="70" height="25"/> <size key="maxSize" width="70" height="25"/>
</toolbarItem> </toolbarItem>
<toolbarItem implicitItemIdentifier="E56B804D-0A4D-415C-B34A-56D9102046D1" label="Remove Duplicate Items" paletteLabel="Remove Duplicate Items" image="duplicateItemsTemplate" bordered="YES" navigational="YES" id="4pg-Lq-O8K">
<nil key="toolTip"/>
<size key="minSize" width="28" height="23"/>
<size key="maxSize" width="32" height="32"/>
<button key="view" verticalHuggingPriority="750" id="0XX-i8-gc0">
<rect key="frame" x="53" y="14" width="28" height="23"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="duplicateItemsTemplate" imagePosition="only" alignment="center" borderStyle="border" id="6yJ-BU-Bgg">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="removeDuplicates:" target="218" id="wcV-BG-yxf"/>
</connections>
</button>
</toolbarItem>
<toolbarItem implicitItemIdentifier="56A027C2-B330-46E5-8C3C-AADF8DF7F2EE" label="Remove Dead Items" paletteLabel="Remove Dead Items" image="deadItemsTemplate" bordered="YES" navigational="YES" id="WKt-lM-Bv1">
<nil key="toolTip"/>
<size key="minSize" width="28" height="23"/>
<size key="maxSize" width="32" height="32"/>
<button key="view" verticalHuggingPriority="750" id="SBg-uC-koX">
<rect key="frame" x="42" y="14" width="28" height="23"/>
<autoresizingMask key="autoresizingMask"/>
<buttonCell key="cell" type="roundTextured" bezelStyle="texturedRounded" image="deadItemsTemplate" imagePosition="only" alignment="center" borderStyle="border" id="CEJ-na-l45">
<behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
<connections>
<action selector="removeDeadItems:" target="218" id="D9p-Bs-v9x"/>
</connections>
</button>
</toolbarItem>
</allowedToolbarItems> </allowedToolbarItems>
<defaultToolbarItems> <defaultToolbarItems>
<toolbarItem reference="qfu-F9-bOZ"/> <toolbarItem reference="qfu-F9-bOZ"/>
@ -2177,6 +2241,8 @@ Gw
</customObject> </customObject>
</objects> </objects>
<resources> <resources>
<image name="deadItemsTemplate" width="20" height="20"/>
<image name="duplicateItemsTemplate" width="20" height="20"/>
<image name="equalizerTemplate" width="20" height="20"/> <image name="equalizerTemplate" width="20" height="20"/>
<image name="hdcdLogoTemplate" width="656" height="225"/> <image name="hdcdLogoTemplate" width="656" height="225"/>
<image name="imageCell:1801:image" width="17" height="17"> <image name="imageCell:1801:image" width="17" height="17">

View File

@ -102,6 +102,8 @@
83293070277886250010C07E /* OpenMPTOld.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8329306D277885790010C07E /* OpenMPTOld.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 83293070277886250010C07E /* OpenMPTOld.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8329306D277885790010C07E /* OpenMPTOld.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
832C1253180BD1E2005507C1 /* Cog.help in Resources */ = {isa = PBXBuildFile; fileRef = 832C1252180BD1E2005507C1 /* Cog.help */; }; 832C1253180BD1E2005507C1 /* Cog.help in Resources */ = {isa = PBXBuildFile; fileRef = 832C1252180BD1E2005507C1 /* Cog.help */; };
83489C6B2782F78700BDCEA2 /* libvgmPlayer.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83489C542782F2DF00BDCEA2 /* libvgmPlayer.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 83489C6B2782F78700BDCEA2 /* libvgmPlayer.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 83489C542782F2DF00BDCEA2 /* libvgmPlayer.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
8349270C27B4EFFC0009AB2B /* duplicateItemsTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8349270127B4EFFC0009AB2B /* duplicateItemsTemplate.pdf */; };
8349270D27B4EFFC0009AB2B /* deadItemsTemplate.pdf in Resources */ = {isa = PBXBuildFile; fileRef = 8349270B27B4EFFC0009AB2B /* deadItemsTemplate.pdf */; };
834D793F20E4EFEA00C4A5CC /* OpusPlugin.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 830B62B320E4EF89004A74B2 /* OpusPlugin.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 834D793F20E4EFEA00C4A5CC /* OpusPlugin.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 830B62B320E4EF89004A74B2 /* OpusPlugin.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
834D794020E4EFEF00C4A5CC /* VorbisPlugin.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8301F94520E4EEF70017B2DC /* VorbisPlugin.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 834D794020E4EFEF00C4A5CC /* VorbisPlugin.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8301F94520E4EEF70017B2DC /* VorbisPlugin.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
834F7F4320E4E4ED00228DAB /* AdPlug.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8303A30920E4E3D000951EF8 /* AdPlug.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 834F7F4320E4E4ED00228DAB /* AdPlug.bundle in CopyFiles */ = {isa = PBXBuildFile; fileRef = 8303A30920E4E3D000951EF8 /* AdPlug.bundle */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
@ -917,6 +919,8 @@
833F681F1CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; }; 833F681F1CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
833F68251CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = es; path = es.lproj/Credits.html; sourceTree = "<group>"; }; 833F68251CDBCAA800AFB9F0 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.html; name = es; path = es.lproj/Credits.html; sourceTree = "<group>"; };
83489C4E2782F2DF00BDCEA2 /* libvgmPlayer.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libvgmPlayer.xcodeproj; path = Plugins/libvgmPlayer/libvgmPlayer.xcodeproj; sourceTree = "<group>"; }; 83489C4E2782F2DF00BDCEA2 /* libvgmPlayer.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libvgmPlayer.xcodeproj; path = Plugins/libvgmPlayer/libvgmPlayer.xcodeproj; sourceTree = "<group>"; };
8349270127B4EFFC0009AB2B /* duplicateItemsTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = duplicateItemsTemplate.pdf; path = Images/duplicateItemsTemplate.pdf; sourceTree = "<group>"; };
8349270B27B4EFFC0009AB2B /* deadItemsTemplate.pdf */ = {isa = PBXFileReference; lastKnownFileType = image.pdf; name = deadItemsTemplate.pdf; path = Images/deadItemsTemplate.pdf; sourceTree = "<group>"; };
8355D6B4180612F300D05687 /* NSData+MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MD5.h"; sourceTree = "<group>"; }; 8355D6B4180612F300D05687 /* NSData+MD5.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSData+MD5.h"; sourceTree = "<group>"; };
8355D6B5180612F300D05687 /* NSData+MD5.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+MD5.m"; sourceTree = "<group>"; }; 8355D6B5180612F300D05687 /* NSData+MD5.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSData+MD5.m"; sourceTree = "<group>"; };
8355D6B7180613FB00D05687 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; }; 8355D6B7180613FB00D05687 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
@ -1196,6 +1200,8 @@
177EC02D0B8BC2E60000BC8C /* Images */ = { 177EC02D0B8BC2E60000BC8C /* Images */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
8349270B27B4EFFC0009AB2B /* deadItemsTemplate.pdf */,
8349270127B4EFFC0009AB2B /* duplicateItemsTemplate.pdf */,
8314A46527A28C28000EBE7E /* equalizerTemplate.pdf */, 8314A46527A28C28000EBE7E /* equalizerTemplate.pdf */,
83ED3AC7279A91C000904199 /* hdcdLogoTemplate.pdf */, 83ED3AC7279A91C000904199 /* hdcdLogoTemplate.pdf */,
83E5E54A18087CA5001F3284 /* miniModeOffTemplate.pdf */, 83E5E54A18087CA5001F3284 /* miniModeOffTemplate.pdf */,
@ -2347,8 +2353,10 @@
83BC5ABF20E4CE7A00631CD4 /* InfoInspector.xib in Resources */, 83BC5ABF20E4CE7A00631CD4 /* InfoInspector.xib in Resources */,
8384915B18083EAB00E7332D /* navigatorTemplate.pdf in Resources */, 8384915B18083EAB00E7332D /* navigatorTemplate.pdf in Resources */,
832C1253180BD1E2005507C1 /* Cog.help in Resources */, 832C1253180BD1E2005507C1 /* Cog.help in Resources */,
8349270C27B4EFFC0009AB2B /* duplicateItemsTemplate.pdf in Resources */,
8384916218083EAB00E7332D /* randomizeTemplate.pdf in Resources */, 8384916218083EAB00E7332D /* randomizeTemplate.pdf in Resources */,
8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
8349270D27B4EFFC0009AB2B /* deadItemsTemplate.pdf in Resources */,
17E41E070C130DFF00AC744D /* Credits.html in Resources */, 17E41E070C130DFF00AC744D /* Credits.html in Resources */,
8314A46F27A28C29000EBE7E /* equalizerTemplate.pdf in Resources */, 8314A46F27A28C29000EBE7E /* equalizerTemplate.pdf in Resources */,
8384916618083EAB00E7332D /* repeatModeOneTemplate.pdf in Resources */, 8384916618083EAB00E7332D /* repeatModeOneTemplate.pdf in Resources */,

Binary file not shown.

Binary file not shown.