Playlist View: Replace Cell-based table with View-based table. It needs some work still, though.
parent
e8f4e5ece7
commit
2b4de1033d
|
@ -32,9 +32,9 @@
|
|||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<clipView key="contentView" drawsBackground="NO" copiesOnScroll="NO" id="KWC-Ti-8KY">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="378"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" alternatingRowBackgroundColors="YES" autosaveName="Playlist" rowHeight="18" headerView="1517" id="207" customClass="PlaylistView">
|
||||
<tableView focusRingType="none" verticalHuggingPriority="750" allowsExpansionToolTips="YES" alternatingRowBackgroundColors="YES" autosaveName="Playlist" rowHeight="18" rowSizeStyle="automatic" headerView="1517" viewBased="YES" id="207" customClass="PlaylistView">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="361"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<size key="intercellSpacing" width="3" height="6"/>
|
||||
|
@ -52,13 +52,32 @@
|
|||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="5N3-SP-Y8z">
|
||||
<rect key="frame" x="11" y="3" width="69" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="w5u-JQ-3Hf">
|
||||
<rect key="frame" x="0.0" y="1" width="69" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="FMU-QZ-NdQ">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="w5u-JQ-3Hf" id="uqw-tc-LMI"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.index" id="1356">
|
||||
<dictionary key="options">
|
||||
<integer key="NSConditionallySetsEditable" value="1"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1913"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="status" editable="NO" width="20" minWidth="20" maxWidth="20" id="1798">
|
||||
|
@ -70,14 +89,32 @@
|
|||
<font key="font" metaFont="system"/>
|
||||
</imageCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.status" id="1805">
|
||||
<dictionary key="options">
|
||||
<integer key="NSAllowsEditingMultipleValuesSelection" value="0"/>
|
||||
<string key="NSValueTransformerName">StatusImageTransformer</string>
|
||||
</dictionary>
|
||||
</binding>
|
||||
</connections>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="Vw5-xt-0vG">
|
||||
<rect key="frame" x="83" y="3" width="20" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ERj-i9-caa">
|
||||
<rect key="frame" x="0.0" y="3" width="17" height="11"/>
|
||||
<autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
|
||||
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageAlignment="top" imageScaling="proportionallyDown" id="8rO-fU-Njw"/>
|
||||
</imageView>
|
||||
<textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" allowsExpansionToolTips="YES" translatesAutoresizingMaskIntoConstraints="NO" id="5cp-JI-ogI">
|
||||
<rect key="frame" x="23" y="0.0" width="4" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="wky-z8-Cj5">
|
||||
<font key="font" metaFont="system"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="imageView" destination="ERj-i9-caa" id="TmP-fQ-D5k"/>
|
||||
<outlet property="textField" destination="5cp-JI-ogI" id="OpS-BY-UJn"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="title" editable="NO" width="125.5" minWidth="96" maxWidth="1024" id="208">
|
||||
<tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left" title="Title">
|
||||
|
@ -91,13 +128,32 @@
|
|||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="caseInsensitiveCompare:" sortKey="title"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="ZCP-Dx-UBV">
|
||||
<rect key="frame" x="106" y="3" width="126" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="exY-Bg-Mjm">
|
||||
<rect key="frame" x="0.0" y="1" width="126" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="sdo-Sm-KPH">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="exY-Bg-Mjm" id="LVE-SN-zln"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.title" id="814">
|
||||
<dictionary key="options">
|
||||
<integer key="NSConditionallySetsEditable" value="1"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1914"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="albumartist" editable="NO" width="150" minWidth="96" maxWidth="1024" hidden="YES" id="yGV-gP-Wl6">
|
||||
|
@ -111,6 +167,26 @@
|
|||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="x12-5b-Mmv">
|
||||
<rect key="frame" x="1" y="3" width="0.0" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="ZWb-jm-i9i">
|
||||
<rect key="frame" x="0.0" y="1" width="4" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="3QN-Ok-QPu">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="ZWb-jm-i9i" id="EaM-6d-0Ni"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.albumartist" id="OFk-g8-Jbd">
|
||||
<dictionary key="options">
|
||||
|
@ -132,13 +208,32 @@
|
|||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="caseInsensitiveCompare:" sortKey="artist"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="gpC-Oe-Rog">
|
||||
<rect key="frame" x="234.5" y="3" width="149" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="1WK-qN-Mgj">
|
||||
<rect key="frame" x="0.0" y="1" width="149" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="71l-3L-S3g">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="1WK-qN-Mgj" id="RoA-Ff-UMU"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.artist" id="815">
|
||||
<dictionary key="options">
|
||||
<integer key="NSConditionallySetsEditable" value="1"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1916"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="album" editable="NO" width="150.5" minWidth="96" maxWidth="1024" id="806">
|
||||
|
@ -153,13 +248,32 @@
|
|||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="caseInsensitiveCompare:" sortKey="album"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="1ed-gX-bct">
|
||||
<rect key="frame" x="387" y="3" width="151" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="nEt-s5-vRX">
|
||||
<rect key="frame" x="0.0" y="1" width="151" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="moV-3G-GpB">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="nEt-s5-vRX" id="pMp-oO-lhp"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.album" id="816">
|
||||
<dictionary key="options">
|
||||
<integer key="NSConditionallySetsEditable" value="1"/>
|
||||
</dictionary>
|
||||
</binding>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1917"/>
|
||||
</connections>
|
||||
</tableColumn>
|
||||
<tableColumn identifier="length" editable="NO" width="95.5" minWidth="43.62012" maxWidth="96" id="807">
|
||||
|
@ -173,6 +287,26 @@
|
|||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="hhB-nv-e78">
|
||||
<rect key="frame" x="540.5" y="3" width="95" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="tHy-sM-HDB">
|
||||
<rect key="frame" x="0.0" y="1" width="95" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="Igo-5f-yim">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="tHy-sM-HDB" id="Hae-Kh-oLV"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.length" id="1658">
|
||||
<dictionary key="options">
|
||||
|
@ -193,6 +327,26 @@
|
|||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="q93-oh-i5T">
|
||||
<rect key="frame" x="639" y="3" width="94" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bOi-LI-TDx">
|
||||
<rect key="frame" x="0.0" y="1" width="94" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="C2Q-qG-dwX">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="bOi-LI-TDx" id="N91-MC-aPF"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.year" id="851"/>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1921"/>
|
||||
|
@ -210,6 +364,26 @@
|
|||
</textFieldCell>
|
||||
<sortDescriptor key="sortDescriptorPrototype" selector="caseInsensitiveCompare:" sortKey="genre"/>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="rRl-p9-Awr">
|
||||
<rect key="frame" x="735.5" y="3" width="144" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yW6-2w-6mN">
|
||||
<rect key="frame" x="0.0" y="1" width="144" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="js2-sT-U4M">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="yW6-2w-6mN" id="G7S-Se-0cY"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.genre" id="852"/>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1922"/>
|
||||
|
@ -226,6 +400,26 @@
|
|||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="hgh-VE-5kl">
|
||||
<rect key="frame" x="882.5" y="3" width="38" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="yEY-MI-d3o">
|
||||
<rect key="frame" x="0.0" y="1" width="38" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="tus-lr-RhS">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="yEY-MI-d3o" id="EwM-K6-z6F"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.track" id="853"/>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="1923"/>
|
||||
|
@ -242,6 +436,26 @@
|
|||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="d01-Wn-4bd">
|
||||
<rect key="frame" x="1" y="3" width="0.0" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="QFJ-4l-2O6">
|
||||
<rect key="frame" x="0.0" y="1" width="4" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="gKK-cS-RP5">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="QFJ-4l-2O6" id="ATk-8F-J0f"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.path" id="1788">
|
||||
<dictionary key="options">
|
||||
|
@ -262,6 +476,26 @@
|
|||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="ICT-dh-UfT">
|
||||
<rect key="frame" x="1" y="3" width="0.0" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Qvd-sk-vRc">
|
||||
<rect key="frame" x="0.0" y="1" width="4" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="YwT-z9-2d2">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="Qvd-sk-vRc" id="wzs-Gd-GjV"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.filename" id="1787">
|
||||
<dictionary key="options">
|
||||
|
@ -282,6 +516,26 @@
|
|||
<color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
<tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
|
||||
<prototypeCellViews>
|
||||
<tableCellView id="PuO-Ss-1Vs">
|
||||
<rect key="frame" x="1" y="3" width="0.0" height="18"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="gXW-DX-EsQ">
|
||||
<rect key="frame" x="0.0" y="1" width="4" height="16"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
|
||||
<textFieldCell key="cell" lineBreakMode="truncatingTail" sendsActionOnEndEditing="YES" title="Table View Cell" id="vaJ-Bc-ebE">
|
||||
<font key="font" usesAppearanceFont="YES"/>
|
||||
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
|
||||
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
|
||||
</textFieldCell>
|
||||
</textField>
|
||||
</subviews>
|
||||
<connections>
|
||||
<outlet property="textField" destination="gXW-DX-EsQ" id="kM6-6c-0sa"/>
|
||||
</connections>
|
||||
</tableCellView>
|
||||
</prototypeCellViews>
|
||||
<connections>
|
||||
<binding destination="218" name="value" keyPath="arrangedObjects.codec" id="hO0-YW-E7w">
|
||||
<dictionary key="options">
|
||||
|
@ -293,6 +547,7 @@
|
|||
</tableColumn>
|
||||
</tableColumns>
|
||||
<connections>
|
||||
<binding destination="1689" name="fontSize" keyPath="values.fontSize" id="IWY-vf-qDN"/>
|
||||
<binding destination="1689" name="rowHeight" keyPath="values.fontSize" id="1927">
|
||||
<dictionary key="options">
|
||||
<string key="NSValueTransformerName">FontSizetoLineHeightTransformer</string>
|
||||
|
@ -317,7 +572,7 @@
|
|||
<rect key="frame" x="85" y="17" width="15" height="68"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</scroller>
|
||||
<tableHeaderView key="headerView" wantsLayer="YES" id="1517" customClass="PlaylistHeaderView">
|
||||
<tableHeaderView key="headerView" wantsLayer="YES" id="1517">
|
||||
<rect key="frame" x="0.0" y="0.0" width="1000" height="17"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
</tableHeaderView>
|
||||
|
|
|
@ -176,7 +176,6 @@
|
|||
8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
|
||||
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
|
||||
8E07AB790AAC930B00A4B32F /* PreferencesController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E07AB770AAC930B00A4B32F /* PreferencesController.m */; };
|
||||
8E1296DB0A2BA9CE00443124 /* PlaylistHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E1296D90A2BA9CE00443124 /* PlaylistHeaderView.m */; };
|
||||
8E6889240AAA403C00AD3950 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8E6889230AAA403C00AD3950 /* Carbon.framework */; };
|
||||
8E75757109F31D5A0080F1EE /* DNDArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E75752C09F31D5A0080F1EE /* DNDArrayController.m */; };
|
||||
8E75757209F31D5A0080F1EE /* PlaylistController.m in Sources */ = {isa = PBXBuildFile; fileRef = 8E75752E09F31D5A0080F1EE /* PlaylistController.m */; };
|
||||
|
@ -1013,8 +1012,6 @@
|
|||
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
|
||||
8E07AB760AAC930B00A4B32F /* PreferencesController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = PreferencesController.h; path = Preferences/PreferencesController.h; sourceTree = "<group>"; };
|
||||
8E07AB770AAC930B00A4B32F /* PreferencesController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; name = PreferencesController.m; path = Preferences/PreferencesController.m; sourceTree = "<group>"; };
|
||||
8E1296D80A2BA9CE00443124 /* PlaylistHeaderView.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = PlaylistHeaderView.h; sourceTree = "<group>"; };
|
||||
8E1296D90A2BA9CE00443124 /* PlaylistHeaderView.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = PlaylistHeaderView.m; sourceTree = "<group>"; };
|
||||
8E6889230AAA403C00AD3950 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
|
||||
8E75752B09F31D5A0080F1EE /* DNDArrayController.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; path = DNDArrayController.h; sourceTree = "<group>"; };
|
||||
8E75752C09F31D5A0080F1EE /* DNDArrayController.m */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.objc; path = DNDArrayController.m; sourceTree = "<group>"; };
|
||||
|
@ -1760,8 +1757,6 @@
|
|||
8E75752E09F31D5A0080F1EE /* PlaylistController.m */,
|
||||
8E75753109F31D5A0080F1EE /* PlaylistView.h */,
|
||||
8E75753209F31D5A0080F1EE /* PlaylistView.m */,
|
||||
8E1296D80A2BA9CE00443124 /* PlaylistHeaderView.h */,
|
||||
8E1296D90A2BA9CE00443124 /* PlaylistHeaderView.m */,
|
||||
1755E1F60BA0D2B600CA3560 /* PlaylistLoader.h */,
|
||||
1755E1F70BA0D2B600CA3560 /* PlaylistLoader.m */,
|
||||
8E75752B09F31D5A0080F1EE /* DNDArrayController.h */,
|
||||
|
@ -2442,7 +2437,6 @@
|
|||
8E75757309F31D5A0080F1EE /* PlaylistEntry.m in Sources */,
|
||||
8E75757409F31D5A0080F1EE /* PlaylistView.m in Sources */,
|
||||
8E75757509F31D5A0080F1EE /* Shuffle.m in Sources */,
|
||||
8E1296DB0A2BA9CE00443124 /* PlaylistHeaderView.m in Sources */,
|
||||
8E07AB790AAC930B00A4B32F /* PreferencesController.m in Sources */,
|
||||
177EBFA70B8BC2A70000BC8C /* ImageTextCell.m in Sources */,
|
||||
177EC0270B8BC2CF0000BC8C /* TrackingCell.m in Sources */,
|
||||
|
|
|
@ -37,6 +37,8 @@ typedef NS_ENUM(NSInteger, URLOrigin) {
|
|||
IBOutlet PlaylistLoader *playlistLoader;
|
||||
IBOutlet SpotlightWindowController *spotlightWindowController;
|
||||
IBOutlet PlaybackController *playbackController;
|
||||
|
||||
NSValueTransformer * statusImageTransformer;
|
||||
|
||||
NSMutableArray *shuffleList;
|
||||
NSMutableArray *queueList;
|
||||
|
@ -48,45 +50,45 @@ typedef NS_ENUM(NSInteger, URLOrigin) {
|
|||
NSUndoManager *undoManager;
|
||||
}
|
||||
|
||||
@property(nonatomic, retain) PlaylistEntry *currentEntry;
|
||||
@property(retain) NSString *totalTime;
|
||||
@property(nonatomic, retain) PlaylistEntry * _Nullable currentEntry;
|
||||
@property(retain) NSString * _Nullable totalTime;
|
||||
|
||||
// Private Methods
|
||||
- (void)updateTotalTime;
|
||||
- (void)updatePlaylistIndexes;
|
||||
- (IBAction)stopAfterCurrent:(id)sender;
|
||||
- (IBAction)stopAfterCurrent:(id _Nullable )sender;
|
||||
|
||||
// PUBLIC METHODS
|
||||
- (void)setShuffle:(ShuffleMode)s;
|
||||
- (ShuffleMode)shuffle;
|
||||
- (void)setRepeat:(RepeatMode)r;
|
||||
- (RepeatMode)repeat;
|
||||
- (NSArray *)filterPlaylistOnAlbum:(NSString *)album;
|
||||
- (NSArray * _Nullable)filterPlaylistOnAlbum:(NSString * _Nullable)album;
|
||||
|
||||
- (PlaylistEntry *)getNextEntry:(PlaylistEntry *)pe;
|
||||
- (PlaylistEntry *)getPrevEntry:(PlaylistEntry *)pe;
|
||||
- (PlaylistEntry * _Nullable)getNextEntry:(PlaylistEntry * _Nullable)pe;
|
||||
- (PlaylistEntry * _Nullable)getPrevEntry:(PlaylistEntry * _Nullable)pe;
|
||||
|
||||
/* Methods for undoing various actions */
|
||||
- (NSUndoManager *)undoManager;
|
||||
- (NSUndoManager * _Nullable)undoManager;
|
||||
|
||||
- (IBAction)toggleShuffle:(id)sender;
|
||||
- (IBAction)toggleShuffle:(id _Nullable)sender;
|
||||
|
||||
- (IBAction)toggleRepeat:(id)sender;
|
||||
- (IBAction)toggleRepeat:(id _Nullable)sender;
|
||||
|
||||
- (IBAction)randomizeList:(id)sender;
|
||||
- (IBAction)randomizeList:(id _Nullable)sender;
|
||||
|
||||
- (IBAction)removeDuplicates:(id)sender;
|
||||
- (IBAction)removeDeadItems:(id)sender;
|
||||
- (IBAction)removeDuplicates:(id _Nullable)sender;
|
||||
- (IBAction)removeDeadItems:(id _Nullable)sender;
|
||||
|
||||
- (IBAction)showEntryInFinder:(id)sender;
|
||||
- (IBAction)clearFilterPredicate:(id)sender;
|
||||
- (IBAction)clear:(id)sender;
|
||||
- (IBAction)showEntryInFinder:(id _Nullable)sender;
|
||||
- (IBAction)clearFilterPredicate:(id _Nullable)sender;
|
||||
- (IBAction)clear:(id _Nullable)sender;
|
||||
|
||||
//- (IBAction)showTagEditor:(id)sender;
|
||||
|
||||
// Spotlight
|
||||
- (IBAction)searchByArtist:(id)sender;
|
||||
- (IBAction)searchByAlbum:(id)sender;
|
||||
- (IBAction)searchByArtist:(id _Nullable)sender;
|
||||
- (IBAction)searchByAlbum:(id _Nullable)sender;
|
||||
|
||||
// FUN PLAYLIST MANAGEMENT STUFF!
|
||||
- (BOOL)next;
|
||||
|
@ -96,25 +98,25 @@ typedef NS_ENUM(NSInteger, URLOrigin) {
|
|||
- (void)addShuffledListToFront;
|
||||
- (void)resetShuffleList;
|
||||
|
||||
- (PlaylistEntry *)shuffledEntryAtIndex:(NSInteger)i;
|
||||
- (PlaylistEntry *)entryAtIndex:(NSInteger)i;
|
||||
- (PlaylistEntry * _Nullable)shuffledEntryAtIndex:(NSInteger)i;
|
||||
- (PlaylistEntry * _Nullable)entryAtIndex:(NSInteger)i;
|
||||
|
||||
// Event inlets:
|
||||
- (void)willInsertURLs:(NSArray *)urls origin:(URLOrigin)origin;
|
||||
- (void)didInsertURLs:(NSArray *)urls origin:(URLOrigin)origin;
|
||||
- (void)willInsertURLs:(NSArray * _Nullable)urls origin:(URLOrigin)origin;
|
||||
- (void)didInsertURLs:(NSArray * _Nullable)urls origin:(URLOrigin)origin;
|
||||
|
||||
// queue methods
|
||||
- (IBAction)toggleQueued:(id)sender;
|
||||
- (IBAction)emptyQueueList:(id)sender;
|
||||
- (IBAction)toggleQueued:(id _Nullable)sender;
|
||||
- (IBAction)emptyQueueList:(id _Nullable)sender;
|
||||
- (void)emptyQueueListUnsynced;
|
||||
- (NSMutableArray *)queueList;
|
||||
- (NSMutableArray * _Nullable)queueList;
|
||||
|
||||
// reload metadata of selection
|
||||
- (IBAction)reloadTags:(id)sender;
|
||||
- (IBAction)reloadTags:(id _Nullable)sender;
|
||||
|
||||
- (void)moveObjectsInArrangedObjectsFromIndexes:(NSIndexSet *)indexSet
|
||||
- (void)moveObjectsInArrangedObjectsFromIndexes:(NSIndexSet * _Nullable)indexSet
|
||||
toIndex:(NSUInteger)insertIndex;
|
||||
|
||||
- (void)insertObjectsUnsynced:(NSArray *)objects atArrangedObjectIndexes:(NSIndexSet *)indexes;
|
||||
- (void)insertObjectsUnsynced:(NSArray * _Nullable)objects atArrangedObjectIndexes:(NSIndexSet * _Nullable)indexes;
|
||||
|
||||
@end
|
||||
|
|
|
@ -27,7 +27,13 @@
|
|||
@synthesize currentEntry;
|
||||
@synthesize totalTime;
|
||||
|
||||
static NSArray * cellIdentifiers = nil;
|
||||
|
||||
+ (void)initialize {
|
||||
cellIdentifiers = @[@"index", @"status", @"title", @"albumartist", @"artist",
|
||||
@"album", @"length", @"year", @"genre", @"track", @"path",
|
||||
@"filename", @"codec"];
|
||||
|
||||
NSValueTransformer *repeatNoneTransformer =
|
||||
[[RepeatModeTransformer alloc] initWithMode:RepeatModeNoRepeat];
|
||||
[NSValueTransformer setValueTransformer:repeatNoneTransformer forName:@"RepeatNoneTransformer"];
|
||||
|
@ -100,11 +106,14 @@
|
|||
|
||||
- (void)awakeFromNib {
|
||||
[super awakeFromNib];
|
||||
|
||||
|
||||
statusImageTransformer = [NSValueTransformer valueTransformerForName:@"StatusImageTransformer"];
|
||||
|
||||
[self addObserver:self
|
||||
forKeyPath:@"arrangedObjects"
|
||||
options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld)
|
||||
context:nil];
|
||||
[[NSUserDefaultsController sharedUserDefaultsController] addObserver:self forKeyPath:@"values.fontSize" options:(NSKeyValueObservingOptionNew | NSKeyValueObservingOptionInitial) context:nil];
|
||||
}
|
||||
|
||||
- (void)observeValueForKeyPath:(NSString *)keyPath
|
||||
|
@ -115,6 +124,9 @@
|
|||
[self updatePlaylistIndexes];
|
||||
[self updateTotalTime];
|
||||
}
|
||||
else if ([keyPath isEqualToString:@"values.fontSize"]) {
|
||||
[self updateRowSize];
|
||||
}
|
||||
}
|
||||
|
||||
static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_block_t block) {
|
||||
|
@ -215,19 +227,109 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
}
|
||||
}
|
||||
|
||||
- (void)tableView:(NSTableView *)tableView didClickTableColumn:(NSTableColumn *)tableColumn {
|
||||
if ([self shuffle] != ShuffleOff) [self resetShuffleList];
|
||||
- (NSView * _Nullable)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn * _Nullable)tableColumn row:(NSInteger)row {
|
||||
NSImage * cellImage = nil;
|
||||
NSString * cellText = @"";
|
||||
NSString * cellIdentifier = @"";
|
||||
NSTextAlignment cellTextAlignment = NSTextAlignmentLeft;
|
||||
|
||||
PlaylistEntry * pe = [[self arrangedObjects] objectAtIndex:row];
|
||||
|
||||
float fontSize = [[[NSUserDefaultsController sharedUserDefaultsController] defaults] floatForKey:@"fontSize"];
|
||||
|
||||
if (pe) {
|
||||
cellIdentifier = [tableColumn identifier];
|
||||
NSUInteger index = [cellIdentifiers indexOfObject:cellIdentifier];
|
||||
|
||||
switch (index) {
|
||||
case 0:
|
||||
cellText = [NSString stringWithFormat:@"%ld", [pe index] + 1];
|
||||
cellTextAlignment = NSTextAlignmentRight;
|
||||
break;
|
||||
|
||||
case 1:
|
||||
cellImage = [statusImageTransformer transformedValue:[pe status]];
|
||||
break;
|
||||
|
||||
case 2:
|
||||
if ([pe title]) cellText = [pe title];
|
||||
break;
|
||||
|
||||
case 3:
|
||||
if ([pe albumartist]) cellText = [pe albumartist];
|
||||
break;
|
||||
|
||||
case 4:
|
||||
if ([pe artist]) cellText = [pe artist];
|
||||
break;
|
||||
|
||||
case 5:
|
||||
if ([pe album]) cellText = [pe album];
|
||||
break;
|
||||
|
||||
case 6:
|
||||
cellText = [pe lengthText];
|
||||
cellTextAlignment = NSTextAlignmentRight;
|
||||
break;
|
||||
|
||||
case 7:
|
||||
if ([pe year]) cellText = [NSString stringWithFormat:@"%@", [pe year]];
|
||||
cellTextAlignment = NSTextAlignmentRight;
|
||||
break;
|
||||
|
||||
case 8:
|
||||
if ([pe genre]) cellText = [pe genre];
|
||||
break;
|
||||
|
||||
case 9:
|
||||
if ([pe track]) cellText = [NSString stringWithFormat:@"%@", [pe track]];
|
||||
cellTextAlignment = NSTextAlignmentRight;
|
||||
break;
|
||||
|
||||
case 10:
|
||||
if ([pe path]) cellText = [pe path];
|
||||
break;
|
||||
|
||||
case 11:
|
||||
if ([pe filename]) cellText = [pe filename];
|
||||
break;
|
||||
|
||||
case 12:
|
||||
if ([pe codec]) cellText = [pe codec];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
NSView * view = [tableView makeViewWithIdentifier:cellIdentifier owner:nil];
|
||||
if (view) {
|
||||
NSTableCellView * cellView = (NSTableCellView *) view;
|
||||
if (cellView.textField) {
|
||||
NSFont * font = [NSFont systemFontOfSize:fontSize];
|
||||
|
||||
cellView.textField.font = font;
|
||||
cellView.textField.stringValue = cellText;
|
||||
cellView.textField.alignment = cellTextAlignment;
|
||||
|
||||
if (cellView.textField.intrinsicContentSize.width > cellView.textField.frame.size.width - 8)
|
||||
cellView.textField.toolTip = cellText;
|
||||
else
|
||||
cellView.textField.toolTip = [pe status];
|
||||
}
|
||||
if (cellView.imageView) {
|
||||
cellView.imageView.image = cellImage;
|
||||
}
|
||||
cellView.rowSizeStyle = NSTableViewRowSizeStyleCustom;
|
||||
}
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
- (NSString *)tableView:(NSTableView *)tv
|
||||
toolTipForCell:(NSCell *)cell
|
||||
rect:(NSRectPointer)rect
|
||||
tableColumn:(NSTableColumn *)tc
|
||||
row:(NSInteger)row
|
||||
mouseLocation:(NSPoint)mouseLocation {
|
||||
DLog(@"GETTING STATUS FOR ROW: %li: %@!", row,
|
||||
[[[self arrangedObjects] objectAtIndex:row] statusMessage]);
|
||||
return [[[self arrangedObjects] objectAtIndex:row] statusMessage];
|
||||
- (void)updateRowSize {
|
||||
[self.tableView reloadData];
|
||||
}
|
||||
|
||||
- (void)tableView:(NSTableView *)tableView didClickTableColumn:(NSTableColumn *)tableColumn {
|
||||
if ([self shuffle] != ShuffleOff) [self resetShuffleList];
|
||||
}
|
||||
|
||||
- (void)moveObjectsInArrangedObjectsFromIndexes:(NSIndexSet *)indexSet
|
||||
|
@ -865,6 +967,13 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
|
||||
pe.current = YES;
|
||||
|
||||
NSMutableIndexSet * refreshSet = [[NSMutableIndexSet alloc] init];
|
||||
|
||||
if (currentEntry != nil) [refreshSet addIndex:currentEntry.index];
|
||||
if (pe != nil) [refreshSet addIndex:pe.index];
|
||||
|
||||
[self.tableView reloadDataForRowIndexes:refreshSet columnIndexes:[NSIndexSet indexSetWithIndex:1]];
|
||||
|
||||
if (pe != nil) [self.tableView scrollRowToVisible:pe.index];
|
||||
|
||||
currentEntry = pe;
|
||||
|
@ -957,6 +1066,8 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
- (IBAction)toggleQueued:(id)sender {
|
||||
SQLiteStore *store = [SQLiteStore sharedStore];
|
||||
|
||||
NSMutableIndexSet * refreshSet = [[NSMutableIndexSet alloc] init];
|
||||
|
||||
for (PlaylistEntry *queueItem in [self selectedObjects]) {
|
||||
if (queueItem.queued) {
|
||||
queueItem.queued = NO;
|
||||
|
@ -964,7 +1075,7 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
|
||||
[queueList removeObject:queueItem];
|
||||
|
||||
[store queueRemovePlaylistItems:@[queueItem]];
|
||||
[store queueRemovePlaylistItems:@[[NSNumber numberWithInteger:[queueItem index]]]];
|
||||
} else {
|
||||
queueItem.queued = YES;
|
||||
queueItem.queuePosition = (int) [queueList count];
|
||||
|
@ -974,9 +1085,13 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
[store queueAddItem:[queueItem index]];
|
||||
}
|
||||
|
||||
[refreshSet addIndex:[queueItem index]];
|
||||
|
||||
DLog(@"TOGGLE QUEUED: %i", queueItem.queued);
|
||||
}
|
||||
|
||||
[self.tableView reloadDataForRowIndexes:refreshSet columnIndexes:[NSIndexSet indexSetWithIndex:1]];
|
||||
|
||||
int i = 0;
|
||||
for (PlaylistEntry *cur in queueList) {
|
||||
cur.queuePosition = i++;
|
||||
|
@ -986,14 +1101,20 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
- (IBAction)removeFromQueue:(id)sender {
|
||||
SQLiteStore *store = [SQLiteStore sharedStore];
|
||||
|
||||
NSMutableIndexSet * refreshSet = [[NSMutableIndexSet alloc] init];
|
||||
|
||||
for (PlaylistEntry *queueItem in [self selectedObjects]) {
|
||||
queueItem.queued = NO;
|
||||
queueItem.queuePosition = -1;
|
||||
|
||||
[queueList removeObject:queueItem];
|
||||
[store queueRemovePlaylistItems:@[queueItem]];
|
||||
|
||||
[refreshSet addIndex:[queueItem index]];
|
||||
}
|
||||
|
||||
[self.tableView reloadDataForRowIndexes:refreshSet columnIndexes:[NSIndexSet indexSetWithIndex:1]];
|
||||
|
||||
int i = 0;
|
||||
for (PlaylistEntry *cur in queueList) {
|
||||
cur.queuePosition = i++;
|
||||
|
@ -1002,6 +1123,8 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
|
||||
- (IBAction)addToQueue:(id)sender {
|
||||
SQLiteStore *store = [SQLiteStore sharedStore];
|
||||
|
||||
NSMutableIndexSet * refreshSet = [[NSMutableIndexSet alloc] init];
|
||||
|
||||
for (PlaylistEntry *queueItem in [self selectedObjects]) {
|
||||
queueItem.queued = YES;
|
||||
|
@ -1009,8 +1132,12 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
|
||||
[queueList addObject:queueItem];
|
||||
[store queueAddItem:[queueItem index]];
|
||||
|
||||
[refreshSet addIndex:[queueItem index]];
|
||||
}
|
||||
|
||||
[self.tableView reloadDataForRowIndexes:refreshSet columnIndexes:[NSIndexSet indexSetWithIndex:1]];
|
||||
|
||||
int i = 0;
|
||||
for (PlaylistEntry *cur in queueList) {
|
||||
cur.queuePosition = i++;
|
||||
|
@ -1019,6 +1146,10 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
|
||||
- (IBAction)stopAfterCurrent:(id)sender {
|
||||
currentEntry.stopAfter = !currentEntry.stopAfter;
|
||||
|
||||
NSIndexSet * refreshSet = [NSIndexSet indexSetWithIndex:[currentEntry index]];
|
||||
|
||||
[self.tableView reloadDataForRowIndexes:refreshSet columnIndexes:[NSIndexSet indexSetWithIndex:1]];
|
||||
}
|
||||
|
||||
- (BOOL)validateMenuItem:(NSMenuItem *)menuItem {
|
||||
|
|
|
@ -762,6 +762,8 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
|
||||
if (count)
|
||||
{
|
||||
NSMutableIndexSet * refreshSet = [[NSMutableIndexSet alloc] init];
|
||||
|
||||
[playlistController emptyQueueListUnsynced];
|
||||
|
||||
for (i = 0; i < count; ++i)
|
||||
|
@ -772,7 +774,11 @@ static inline void dispatch_sync_reentrant(dispatch_queue_t queue, dispatch_bloc
|
|||
pe.queued = YES;
|
||||
|
||||
[[playlistController queueList] addObject:pe];
|
||||
|
||||
[refreshSet addIndex:[pe index]];
|
||||
}
|
||||
|
||||
[playlistView.documentView reloadDataForRowIndexes:refreshSet columnIndexes:[NSIndexSet indexSetWithIndex:1]];
|
||||
}
|
||||
|
||||
//Clear the selection
|
||||
|
|
|
@ -17,8 +17,8 @@
|
|||
// Convert from font size to height in playlist view
|
||||
- (id)transformedValue:(id)value {
|
||||
NSFont *font = [NSFont systemFontOfSize:[(NSNumber *)value floatValue]];
|
||||
NSLayoutManager *layoutManager = [[NSLayoutManager alloc]init];
|
||||
float fRowSize = [layoutManager defaultLineHeightForFont:font];
|
||||
NSLayoutManager *layoutManager = [[NSLayoutManager alloc] init];
|
||||
float fRowSize = [layoutManager defaultLineHeightForFont:font] * 1.2;
|
||||
return [NSNumber numberWithFloat: fRowSize];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue