Commit 68827bcd authored by Felix Paul Kühne's avatar Felix Paul Kühne

macosx: split playlist object from MainWindow.xib

parent 2f854ae3
This source diff could not be displayed because it is too large. You can view the blob instead.
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00"> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="8152.3" systemVersion="14F6a" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<data> <dependencies>
<int key="IBDocument.SystemTarget">1060</int> <deployment version="1070" identifier="macosx"/>
<string key="IBDocument.SystemVersion">14B25</string> <development version="5100" identifier="xcode"/>
<string key="IBDocument.InterfaceBuilderVersion">6254</string> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="8152.3"/>
<string key="IBDocument.AppKitVersion">1343.16</string> </dependencies>
<string key="IBDocument.HIToolboxVersion">755.00</string> <objects>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <customObject id="-2" userLabel="File's Owner" customClass="VLCMainMenu">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> <connections>
<string key="NS.object.0">6254</string> <outlet property="playlistSaveAccessoryPopup" destination="3" id="Yp7-Fa-6HX"/>
</object> <outlet property="playlistSaveAccessoryText" destination="2" id="D67-6A-IXs"/>
<array key="IBDocument.IntegratedClassDependencies"> <outlet property="playlistSaveAccessoryView" destination="1" id="hQm-ev-onG"/>
<string>NSCustomObject</string> </connections>
<string>NSCustomView</string> </customObject>
<string>NSMenu</string> <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
<string>NSMenuItem</string> <customObject id="-3" userLabel="Application"/>
<string>NSPopUpButton</string> <customView id="1" userLabel="SaveAccessoryView">
<string>NSPopUpButtonCell</string> <rect key="frame" x="0.0" y="0.0" width="488" height="40"/>
<string>NSTextField</string> <autoresizingMask key="autoresizingMask"/>
<string>NSTextFieldCell</string> <subviews>
</array> <textField verticalHuggingPriority="750" id="2">
<array key="IBDocument.PluginDependencies"> <rect key="frame" x="13" y="13" width="213" height="17"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <autoresizingMask key="autoresizingMask" widthSizable="YES"/>
</array> <textFieldCell key="cell" sendsActionOnEndEditing="YES" title="File Format:" id="9">
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/> <font key="font" metaFont="system"/>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<object class="NSCustomObject" id="1001"> <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
<string key="NSClassName">VLCPlaylist</string> </textFieldCell>
</object> </textField>
<object class="NSCustomObject" id="1003"> <popUpButton verticalHuggingPriority="750" id="3">
<string key="NSClassName">FirstResponder</string> <rect key="frame" x="233" y="7" width="244" height="26"/>
</object> <autoresizingMask key="autoresizingMask" widthSizable="YES"/>
<object class="NSCustomObject" id="1004"> <popUpButtonCell key="cell" type="push" title="Extended M3U" bezelStyle="rounded" alignment="left" lineBreakMode="truncatingTail" state="on" borderStyle="borderAndBezel" inset="2" arrowPosition="arrowAtCenter" preferredEdge="maxY" selectedItem="7" id="4">
<string key="NSClassName">NSApplication</string> <behavior key="behavior" lightByBackground="YES" lightByGray="YES"/>
</object> <font key="font" metaFont="system"/>
<object class="NSCustomView" id="17079784"> <menu key="menu" title="OtherViews" id="5">
<reference key="NSNextResponder"/> <items>
<int key="NSvFlags">256</int> <menuItem title="Extended M3U" state="on" id="7"/>
<array class="NSMutableArray" key="NSSubviews"> <menuItem title="XML Shareable Playlist Format (XSPF)" id="6"/>
<object class="NSPopUpButton" id="540281127"> <menuItem title="HTML Playlist" id="8"/>
<reference key="NSNextResponder" ref="17079784"/> </items>
<int key="NSvFlags">258</int> </menu>
<string key="NSFrame">{{233, 7}, {244, 26}}</string> </popUpButtonCell>
<reference key="NSSuperview" ref="17079784"/> </popUpButton>
<reference key="NSWindow"/> </subviews>
<bool key="NSEnabled">YES</bool> </customView>
<object class="NSPopUpButtonCell" key="NSCell" id="833308240"> </objects>
<int key="NSCellFlags">-2076180416</int> </document>
<int key="NSCellFlags2">2048</int>
<object class="NSFont" key="NSSupport" id="545575564">
<bool key="IBIsSystemFont">YES</bool>
<double key="NSSize">13</double>
<int key="NSfFlags">1044</int>
</object>
<reference key="NSControlView" ref="540281127"/>
<int key="NSButtonFlags">109199360</int>
<int key="NSButtonFlags2">1</int>
<reference key="NSAlternateImage" ref="545575564"/>
<string key="NSAlternateContents"/>
<object class="NSMutableString" key="NSKeyEquivalent">
<characters key="NS.bytes"/>
</object>
<int key="NSPeriodicDelay">400</int>
<int key="NSPeriodicInterval">75</int>
<object class="NSMenuItem" key="NSMenuItem" id="418039630">
<reference key="NSMenu" ref="1072556898"/>
<string key="NSTitle">Extended M3U</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<int key="NSState">1</int>
<object class="NSCustomResource" key="NSOnImage" id="674003660">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuCheckmark</string>
</object>
<object class="NSCustomResource" key="NSMixedImage" id="150431102">
<string key="NSClassName">NSImage</string>
<string key="NSResourceName">NSMenuMixedState</string>
</object>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="833308240"/>
</object>
<bool key="NSMenuItemRespectAlignment">YES</bool>
<object class="NSMenu" key="NSMenu" id="1072556898">
<object class="NSMutableString" key="NSTitle">
<characters key="NS.bytes">OtherViews</characters>
</object>
<array class="NSMutableArray" key="NSMenuItems">
<reference ref="418039630"/>
<object class="NSMenuItem" id="937238634">
<reference key="NSMenu" ref="1072556898"/>
<string key="NSTitle">XML Shareable Playlist Format (XSPF)</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="674003660"/>
<reference key="NSMixedImage" ref="150431102"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="833308240"/>
</object>
<object class="NSMenuItem" id="611178100">
<reference key="NSMenu" ref="1072556898"/>
<string key="NSTitle">HTML Playlist</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="674003660"/>
<reference key="NSMixedImage" ref="150431102"/>
<string key="NSAction">_popUpItemAction:</string>
<reference key="NSTarget" ref="833308240"/>
</object>
</array>
</object>
<int key="NSPreferredEdge">3</int>
<bool key="NSUsesItemFromMenu">YES</bool>
<bool key="NSAltersState">YES</bool>
<int key="NSArrowPosition">1</int>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
</object>
<object class="NSTextField" id="220495678">
<reference key="NSNextResponder" ref="17079784"/>
<int key="NSvFlags">258</int>
<string key="NSFrame">{{13, 13}, {213, 17}}</string>
<reference key="NSSuperview" ref="17079784"/>
<reference key="NSWindow"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="232386871">
<int key="NSCellFlags">67108864</int>
<int key="NSCellFlags2">272629760</int>
<string key="NSContents">File Format:</string>
<reference key="NSSupport" ref="545575564"/>
<reference key="NSControlView" ref="220495678"/>
<object class="NSColor" key="NSBackgroundColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
</object>
</object>
<object class="NSColor" key="NSTextColor">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
<string key="NSColorName">controlTextColor</string>
<object class="NSColor" key="NSColor">
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MAA</bytes>
</object>
</object>
</object>
<bool key="NSAllowsLogicalLayoutDirection">NO</bool>
<int key="NSTextFieldAlignmentRectInsetsVersion">1</int>
</object>
</array>
<string key="NSFrameSize">{488, 40}</string>
<reference key="NSSuperview"/>
<reference key="NSWindow"/>
<object class="NSMutableString" key="NSClassName">
<characters key="NS.bytes">NSView</characters>
</object>
<string key="NSExtension">NSResponder</string>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_save_accessory_popup</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="540281127"/>
</object>
<int key="connectionID">11</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_save_accessory_text</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="220495678"/>
</object>
<int key="connectionID">12</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_save_accessory_view</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="17079784"/>
</object>
<int key="connectionID">13</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="1001"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="17079784"/>
<array class="NSMutableArray" key="children">
<reference ref="220495678"/>
<reference ref="540281127"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">SaveAccessoryView</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="220495678"/>
<array class="NSMutableArray" key="children">
<reference ref="232386871"/>
</array>
<reference key="parent" ref="17079784"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="540281127"/>
<array class="NSMutableArray" key="children">
<reference ref="833308240"/>
</array>
<reference key="parent" ref="17079784"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="833308240"/>
<array class="NSMutableArray" key="children">
<reference ref="1072556898"/>
</array>
<reference key="parent" ref="540281127"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="1072556898"/>
<array class="NSMutableArray" key="children">
<reference ref="937238634"/>
<reference ref="418039630"/>
<reference ref="611178100"/>
</array>
<reference key="parent" ref="833308240"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="937238634"/>
<reference key="parent" ref="1072556898"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="418039630"/>
<reference key="parent" ref="1072556898"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="611178100"/>
<reference key="parent" ref="1072556898"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="232386871"/>
<reference key="parent" ref="220495678"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">13</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">VLCPlaylist</string>
<string key="superclassName">NSObject</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="deleteItem:">id</string>
<string key="downloadCoverArt:">id</string>
<string key="playItem:">id</string>
<string key="preparseItem:">id</string>
<string key="recursiveExpandNode:">id</string>
<string key="revealItemInFinder:">id</string>
<string key="savePlaylist:">id</string>
<string key="searchItem:">id</string>
<string key="selectAll:">id</string>
<string key="showInfoPanel:">id</string>
<string key="sortNodeByAuthor:">id</string>
<string key="sortNodeByName:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="deleteItem:">
<string key="name">deleteItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="downloadCoverArt:">
<string key="name">downloadCoverArt:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="playItem:">
<string key="name">playItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="preparseItem:">
<string key="name">preparseItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="recursiveExpandNode:">
<string key="name">recursiveExpandNode:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="revealItemInFinder:">
<string key="name">revealItemInFinder:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="savePlaylist:">
<string key="name">savePlaylist:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="searchItem:">
<string key="name">searchItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="selectAll:">
<string key="name">selectAll:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="showInfoPanel:">
<string key="name">showInfoPanel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sortNodeByAuthor:">
<string key="name">sortNodeByAuthor:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sortNodeByName:">
<string key="name">sortNodeByName:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="o_btn_playlist">id</string>
<string key="o_controller">id</string>
<string key="o_ctx_menu">id</string>
<string key="o_mi_delete">id</string>
<string key="o_mi_dl_cover_art">id</string>
<string key="o_mi_info">id</string>
<string key="o_mi_play">id</string>
<string key="o_mi_preparse">id</string>
<string key="o_mi_recursive_expand">id</string>
<string key="o_mi_revealInFinder">id</string>
<string key="o_mi_save_playlist">id</string>
<string key="o_mi_selectall">id</string>
<string key="o_mi_sort_author">id</string>
<string key="o_mi_sort_name">id</string>
<string key="o_outline_view">VLCPlaylistView</string>
<string key="o_playlist_header">id</string>
<string key="o_playlist_view">id</string>
<string key="o_playlist_wizard">id</string>
<string key="o_save_accessory_popup">id</string>
<string key="o_save_accessory_text">id</string>
<string key="o_save_accessory_view">id</string>
<string key="o_search_field">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="o_btn_playlist">
<string key="name">o_btn_playlist</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_controller">
<string key="name">o_controller</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_ctx_menu">
<string key="name">o_ctx_menu</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_delete">
<string key="name">o_mi_delete</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_dl_cover_art">
<string key="name">o_mi_dl_cover_art</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_info">
<string key="name">o_mi_info</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_play">
<string key="name">o_mi_play</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_preparse">
<string key="name">o_mi_preparse</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_recursive_expand">
<string key="name">o_mi_recursive_expand</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_revealInFinder">
<string key="name">o_mi_revealInFinder</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_save_playlist">
<string key="name">o_mi_save_playlist</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_selectall">
<string key="name">o_mi_selectall</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_sort_author">
<string key="name">o_mi_sort_author</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_sort_name">
<string key="name">o_mi_sort_name</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_outline_view">
<string key="name">o_outline_view</string>
<string key="candidateClassName">VLCPlaylistView</string>
</object>
<object class="IBToOneOutletInfo" key="o_playlist_header">
<string key="name">o_playlist_header</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_playlist_view">
<string key="name">o_playlist_view</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_playlist_wizard">
<string key="name">o_playlist_wizard</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_save_accessory_popup">
<string key="name">o_save_accessory_popup</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_save_accessory_text">
<string key="name">o_save_accessory_text</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_save_accessory_view">
<string key="name">o_save_accessory_view</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_search_field">
<string key="name">o_search_field</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="770708439">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../../../modules/gui/macosx/playlist.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">VLCPlaylist</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="deleteItem:">id</string>
<string key="downloadCoverArt:">id</string>
<string key="playItem:">id</string>
<string key="preparseItem:">id</string>
<string key="recursiveExpandNode:">id</string>
<string key="revealItemInFinder:">id</string>
<string key="savePlaylist:">id</string>
<string key="searchItem:">id</string>
<string key="selectAll:">id</string>
<string key="showInfoPanel:">id</string>
<string key="sortNodeByAuthor:">id</string>
<string key="sortNodeByName:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="deleteItem:">
<string key="name">deleteItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="downloadCoverArt:">
<string key="name">downloadCoverArt:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="playItem:">
<string key="name">playItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="preparseItem:">
<string key="name">preparseItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="recursiveExpandNode:">
<string key="name">recursiveExpandNode:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="revealItemInFinder:">
<string key="name">revealItemInFinder:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="savePlaylist:">
<string key="name">savePlaylist:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="searchItem:">
<string key="name">searchItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="selectAll:">
<string key="name">selectAll:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="showInfoPanel:">
<string key="name">showInfoPanel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sortNodeByAuthor:">
<string key="name">sortNodeByAuthor:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sortNodeByName:">
<string key="name">sortNodeByName:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="629843681">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../../../modules/gui/macosx/playlist.m</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">VLCPlaylistView</string>
<string key="superclassName">NSOutlineView</string>
<reference key="sourceIdentifier" ref="770708439"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">VLCPlaylistView</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">delete:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">delete:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">delete:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<reference key="sourceIdentifier" ref="629843681"/>
</object>
</array>
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
<object class="IBPartialClassDescription">
<string key="className">NSActionCell</string>
<string key="superclassName">NSCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSActionCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSApplication</string>
<string key="superclassName">NSResponder</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSButton</string>
<string key="superclassName">NSControl</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSButtonCell</string>
<string key="superclassName">NSActionCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSButtonCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSCell</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSControl</string>
<string key="superclassName">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSFormatter</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenu</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenuItem</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenuItemCell</string>
<string key="superclassName">NSButtonCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMenuItemCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSOutlineView</string>
<string key="superclassName">NSTableView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSPopUpButton</string>
<string key="superclassName">NSButton</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSPopUpButton.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSPopUpButtonCell</string>
<string key="superclassName">NSMenuItemCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSPopUpButtonCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSResponder</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSTableView</string>
<string key="superclassName">NSControl</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSTextField</string>
<string key="superclassName">NSControl</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSTextField.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSTextFieldCell</string>
<string key="superclassName">NSActionCell</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSTextFieldCell.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSView</string>
<string key="superclassName">NSResponder</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSView.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<integer value="4600" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NSMenuCheckmark">{12, 12}</string>
<string key="NSMenuMixedState">{10, 2}</string>
</dictionary>
</data>
</archive>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="8.00"> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="8152.3" systemVersion="14F6a" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
<data> <dependencies>
<int key="IBDocument.SystemTarget">1060</int> <deployment version="1070" identifier="macosx"/>
<string key="IBDocument.SystemVersion">14B25</string> <development version="5100" identifier="xcode"/>
<string key="IBDocument.InterfaceBuilderVersion">6254</string> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="8152.3"/>
<string key="IBDocument.AppKitVersion">1343.16</string> </dependencies>
<string key="IBDocument.HIToolboxVersion">755.00</string> <objects>
<object class="NSMutableDictionary" key="IBDocument.PluginVersions"> <customObject id="-2" userLabel="File's Owner" customClass="VLCPlaylist">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string> <connections>
<string key="NS.object.0">6254</string> <outlet property="deletePlaylistMenuItem" destination="13" id="Qwn-a7-On0"/>
</object> <outlet property="downloadCoverArtPlaylistMenuItem" destination="2" id="z0y-0U-uRz"/>
<array key="IBDocument.IntegratedClassDependencies"> <outlet property="infoPlaylistMenuItem" destination="9" id="uIr-Np-fpB"/>
<string>NSCustomObject</string> <outlet property="playPlaylistMenuItem" destination="12" id="Dv9-jX-Q4W"/>
<string>NSMenu</string> <outlet property="playlistMenu" destination="1" id="i0k-dj-ZpJ"/>
<string>NSMenuItem</string> <outlet property="preparsePlaylistMenuItem" destination="4" id="KRL-o9-2sq"/>
</array> <outlet property="recursiveExpandPlaylistMenuItem" destination="5" id="vFK-br-qmx"/>
<array key="IBDocument.PluginDependencies"> <outlet property="revealInFinderPlaylistMenuItem" destination="3" id="IrJ-gR-Zqp"/>
<string>com.apple.InterfaceBuilder.CocoaPlugin</string> <outlet property="selectAllPlaylistMenuItem" destination="14" id="drx-ij-QhT"/>
</array> <outlet property="sortAuthorPlaylistMenuItem" destination="6" id="eGn-tO-OZO"/>
<dictionary class="NSMutableDictionary" key="IBDocument.Metadata"/> <outlet property="sortNamePlaylistMenuItem" destination="7" id="JwP-cR-9ZW"/>
<array class="NSMutableArray" key="IBDocument.RootObjects" id="1000"> </connections>
<object class="NSCustomObject" id="1001"> </customObject>
<string key="NSClassName">VLCPlaylist</string> <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
</object> <customObject id="-3" userLabel="Application"/>
<object class="NSCustomObject" id="1003"> <menu title="Menu" autoenablesItems="NO" id="1" userLabel="PlaylistMenu">
<string key="NSClassName">FirstResponder</string> <items>
</object> <menuItem title="Play" id="12">
<object class="NSCustomObject" id="1004"> <connections>
<string key="NSClassName">NSApplication</string> <action selector="playItem:" target="-2" id="26"/>
</object> </connections>
<object class="NSMenu" id="537614450"> </menuItem>
<string key="NSTitle">Menu</string> <menuItem title="Delete" id="13">
<array class="NSMutableArray" key="NSMenuItems"> <connections>
<object class="NSMenuItem" id="95651051"> <action selector="deleteItem:" target="-2" id="27"/>
<reference key="NSMenu" ref="537614450"/> </connections>
<string key="NSTitle">Play</string> </menuItem>
<string key="NSKeyEquiv"/> <menuItem isSeparatorItem="YES" id="11">
<int key="NSKeyEquivModMask">1048576</int> <modifierMask key="keyEquivalentModifierMask" command="YES"/>
<int key="NSMnemonicLoc">2147483647</int> </menuItem>
<object class="NSCustomResource" key="NSOnImage" id="549133455"> <menuItem title="Select All" id="14">
<string key="NSClassName">NSImage</string> <connections>
<string key="NSResourceName">NSMenuCheckmark</string> <action selector="selectAll:" target="-2" id="28"/>
</object> </connections>
<object class="NSCustomResource" key="NSMixedImage" id="257917014"> </menuItem>
<string key="NSClassName">NSImage</string> <menuItem isSeparatorItem="YES" id="8">
<string key="NSResourceName">NSMenuMixedState</string> <modifierMask key="keyEquivalentModifierMask" command="YES"/>
</object> </menuItem>
</object> <menuItem title="Expand Node" id="5">
<object class="NSMenuItem" id="342844318"> <connections>
<reference key="NSMenu" ref="537614450"/> <action selector="recursiveExpandNode:" target="-2" id="29"/>
<string key="NSTitle">Delete</string> </connections>
<string key="NSKeyEquiv"/> </menuItem>
<int key="NSKeyEquivModMask">1048576</int> <menuItem title="Sort Node by Name" id="7">
<int key="NSMnemonicLoc">2147483647</int> <connections>
<reference key="NSOnImage" ref="549133455"/> <action selector="sortNodeByName:" target="-2" id="31"/>
<reference key="NSMixedImage" ref="257917014"/> </connections>
</object> </menuItem>
<object class="NSMenuItem" id="356560501"> <menuItem title="Sort Node by Author" id="6">
<reference key="NSMenu" ref="537614450"/> <connections>
<bool key="NSIsDisabled">YES</bool> <action selector="sortNodeByAuthor:" target="-2" id="32"/>
<bool key="NSIsSeparator">YES</bool> </connections>
<string key="NSTitle"/> </menuItem>
<string key="NSKeyEquiv"/> <menuItem isSeparatorItem="YES" id="10">
<int key="NSKeyEquivModMask">1048576</int> <modifierMask key="keyEquivalentModifierMask" command="YES"/>
<int key="NSMnemonicLoc">2147483647</int> </menuItem>
<reference key="NSOnImage" ref="549133455"/> <menuItem title="Media Information..." id="9">
<reference key="NSMixedImage" ref="257917014"/> <connections>
</object> <action selector="showInfoPanel:" target="-2" id="36"/>
<object class="NSMenuItem" id="977074465"> </connections>
<reference key="NSMenu" ref="537614450"/> </menuItem>
<string key="NSTitle">Select All</string> <menuItem title="Preparse" id="4">
<string key="NSKeyEquiv"/> <connections>
<int key="NSKeyEquivModMask">1048576</int> <action selector="preparseItem:" target="-2" id="33"/>
<int key="NSMnemonicLoc">2147483647</int> </connections>
<reference key="NSOnImage" ref="549133455"/> </menuItem>
<reference key="NSMixedImage" ref="257917014"/> <menuItem title="Download Cover Art" id="2">
</object> <connections>
<object class="NSMenuItem" id="830112311"> <action selector="downloadCoverArt:" target="-2" id="34"/>
<reference key="NSMenu" ref="537614450"/> </connections>
<bool key="NSIsDisabled">YES</bool> </menuItem>
<bool key="NSIsSeparator">YES</bool> <menuItem title="Reveal in Finder" id="3">
<string key="NSTitle"/> <connections>
<string key="NSKeyEquiv"/> <action selector="revealItemInFinder:" target="-2" id="35"/>
<int key="NSKeyEquivModMask">1048576</int> </connections>
<int key="NSMnemonicLoc">2147483647</int> </menuItem>
<reference key="NSOnImage" ref="549133455"/> </items>
<reference key="NSMixedImage" ref="257917014"/> </menu>
</object> </objects>
<object class="NSMenuItem" id="1039698537"> </document>
<reference key="NSMenu" ref="537614450"/>
<string key="NSTitle">Expand Node</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="549133455"/>
<reference key="NSMixedImage" ref="257917014"/>
</object>
<object class="NSMenuItem" id="922790560">
<reference key="NSMenu" ref="537614450"/>
<string key="NSTitle">Sort Node by Name</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="549133455"/>
<reference key="NSMixedImage" ref="257917014"/>
</object>
<object class="NSMenuItem" id="912150775">
<reference key="NSMenu" ref="537614450"/>
<string key="NSTitle">Sort Node by Author</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="549133455"/>
<reference key="NSMixedImage" ref="257917014"/>
</object>
<object class="NSMenuItem" id="78349211">
<reference key="NSMenu" ref="537614450"/>
<bool key="NSIsDisabled">YES</bool>
<bool key="NSIsSeparator">YES</bool>
<string key="NSTitle"/>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="549133455"/>
<reference key="NSMixedImage" ref="257917014"/>
</object>
<object class="NSMenuItem" id="622765054">
<reference key="NSMenu" ref="537614450"/>
<string key="NSTitle">Media Information...</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="549133455"/>
<reference key="NSMixedImage" ref="257917014"/>
</object>
<object class="NSMenuItem" id="335927004">
<reference key="NSMenu" ref="537614450"/>
<string key="NSTitle">Preparse</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="549133455"/>
<reference key="NSMixedImage" ref="257917014"/>
</object>
<object class="NSMenuItem" id="72995398">
<reference key="NSMenu" ref="537614450"/>
<string key="NSTitle">Download Cover Art</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="549133455"/>
<reference key="NSMixedImage" ref="257917014"/>
</object>
<object class="NSMenuItem" id="906944543">
<reference key="NSMenu" ref="537614450"/>
<string key="NSTitle">Reveal in Finder</string>
<string key="NSKeyEquiv"/>
<int key="NSKeyEquivModMask">1048576</int>
<int key="NSMnemonicLoc">2147483647</int>
<reference key="NSOnImage" ref="549133455"/>
<reference key="NSMixedImage" ref="257917014"/>
</object>
</array>
<string key="NSName"/>
<bool key="NSNoAutoenable">YES</bool>
</object>
</array>
<object class="IBObjectContainer" key="IBDocument.Objects">
<array key="connectionRecords">
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_play</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="95651051"/>
</object>
<int key="connectionID">16</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_delete</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="342844318"/>
</object>
<int key="connectionID">17</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_dl_cover_art</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="72995398"/>
</object>
<int key="connectionID">18</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_info</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="622765054"/>
</object>
<int key="connectionID">19</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_preparse</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="335927004"/>
</object>
<int key="connectionID">20</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_recursive_expand</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1039698537"/>
</object>
<int key="connectionID">21</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_revealInFinder</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="906944543"/>
</object>
<int key="connectionID">22</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_sort_name</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="922790560"/>
</object>
<int key="connectionID">23</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_sort_author</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="912150775"/>
</object>
<int key="connectionID">24</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_mi_selectall</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="977074465"/>
</object>
<int key="connectionID">25</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">playItem:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="95651051"/>
</object>
<int key="connectionID">26</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">deleteItem:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="342844318"/>
</object>
<int key="connectionID">27</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">selectAll:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="977074465"/>
</object>
<int key="connectionID">28</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">recursiveExpandNode:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="1039698537"/>
</object>
<int key="connectionID">29</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">sortNodeByName:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="922790560"/>
</object>
<int key="connectionID">31</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">sortNodeByAuthor:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="912150775"/>
</object>
<int key="connectionID">32</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">preparseItem:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="335927004"/>
</object>
<int key="connectionID">33</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">downloadCoverArt:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="72995398"/>
</object>
<int key="connectionID">34</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">revealItemInFinder:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="906944543"/>
</object>
<int key="connectionID">35</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">showInfoPanel:</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="622765054"/>
</object>
<int key="connectionID">36</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
<string key="label">o_ctx_menu</string>
<reference key="source" ref="1001"/>
<reference key="destination" ref="537614450"/>
</object>
<int key="connectionID">37</int>
</object>
</array>
<object class="IBMutableOrderedSet" key="objectRecords">
<array key="orderedObjects">
<object class="IBObjectRecord">
<int key="objectID">0</int>
<array key="object" id="0"/>
<reference key="children" ref="1000"/>
<nil key="parent"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">-2</int>
<reference key="object" ref="1001"/>
<reference key="parent" ref="0"/>
<string key="objectName">File's Owner</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-1</int>
<reference key="object" ref="1003"/>
<reference key="parent" ref="0"/>
<string key="objectName">First Responder</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">-3</int>
<reference key="object" ref="1004"/>
<reference key="parent" ref="0"/>
<string key="objectName">Application</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">1</int>
<reference key="object" ref="537614450"/>
<array class="NSMutableArray" key="children">
<reference ref="72995398"/>
<reference ref="906944543"/>
<reference ref="335927004"/>
<reference ref="1039698537"/>
<reference ref="912150775"/>
<reference ref="922790560"/>
<reference ref="830112311"/>
<reference ref="622765054"/>
<reference ref="78349211"/>
<reference ref="356560501"/>
<reference ref="95651051"/>
<reference ref="342844318"/>
<reference ref="977074465"/>
</array>
<reference key="parent" ref="0"/>
<string key="objectName">PlaylistMenu</string>
</object>
<object class="IBObjectRecord">
<int key="objectID">2</int>
<reference key="object" ref="72995398"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">3</int>
<reference key="object" ref="906944543"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">4</int>
<reference key="object" ref="335927004"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">5</int>
<reference key="object" ref="1039698537"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">6</int>
<reference key="object" ref="912150775"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">7</int>
<reference key="object" ref="922790560"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">8</int>
<reference key="object" ref="830112311"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">9</int>
<reference key="object" ref="622765054"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">10</int>
<reference key="object" ref="78349211"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">11</int>
<reference key="object" ref="356560501"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">12</int>
<reference key="object" ref="95651051"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">13</int>
<reference key="object" ref="342844318"/>
<reference key="parent" ref="537614450"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">14</int>
<reference key="object" ref="977074465"/>
<reference key="parent" ref="537614450"/>
</object>
</array>
</object>
<dictionary class="NSMutableDictionary" key="flattenedProperties">
<string key="-1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="-3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="1.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="10.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="11.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="12.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="13.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="14.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="2.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="3.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="4.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="5.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="6.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="7.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="8.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
<string key="9.IBPluginDependency">com.apple.InterfaceBuilder.CocoaPlugin</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="unlocalizedProperties"/>
<nil key="activeLocalization"/>
<dictionary class="NSMutableDictionary" key="localizations"/>
<nil key="sourceID"/>
<int key="maxID">37</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<array class="NSMutableArray" key="referencedPartialClassDescriptions">
<object class="IBPartialClassDescription">
<string key="className">VLCPlaylist</string>
<string key="superclassName">NSObject</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="deleteItem:">id</string>
<string key="downloadCoverArt:">id</string>
<string key="playItem:">id</string>
<string key="preparseItem:">id</string>
<string key="recursiveExpandNode:">id</string>
<string key="revealItemInFinder:">id</string>
<string key="savePlaylist:">id</string>
<string key="searchItem:">id</string>
<string key="selectAll:">id</string>
<string key="showInfoPanel:">id</string>
<string key="sortNodeByAuthor:">id</string>
<string key="sortNodeByName:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="deleteItem:">
<string key="name">deleteItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="downloadCoverArt:">
<string key="name">downloadCoverArt:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="playItem:">
<string key="name">playItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="preparseItem:">
<string key="name">preparseItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="recursiveExpandNode:">
<string key="name">recursiveExpandNode:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="revealItemInFinder:">
<string key="name">revealItemInFinder:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="savePlaylist:">
<string key="name">savePlaylist:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="searchItem:">
<string key="name">searchItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="selectAll:">
<string key="name">selectAll:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="showInfoPanel:">
<string key="name">showInfoPanel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sortNodeByAuthor:">
<string key="name">sortNodeByAuthor:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sortNodeByName:">
<string key="name">sortNodeByName:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<dictionary class="NSMutableDictionary" key="outlets">
<string key="o_btn_playlist">id</string>
<string key="o_controller">id</string>
<string key="o_ctx_menu">id</string>
<string key="o_mi_delete">id</string>
<string key="o_mi_dl_cover_art">id</string>
<string key="o_mi_info">id</string>
<string key="o_mi_play">id</string>
<string key="o_mi_preparse">id</string>
<string key="o_mi_recursive_expand">id</string>
<string key="o_mi_revealInFinder">id</string>
<string key="o_mi_save_playlist">id</string>
<string key="o_mi_selectall">id</string>
<string key="o_mi_sort_author">id</string>
<string key="o_mi_sort_name">id</string>
<string key="o_outline_view">VLCPlaylistView</string>
<string key="o_playlist_header">id</string>
<string key="o_playlist_view">id</string>
<string key="o_playlist_wizard">id</string>
<string key="o_save_accessory_popup">id</string>
<string key="o_save_accessory_text">id</string>
<string key="o_save_accessory_view">id</string>
<string key="o_search_field">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="toOneOutletInfosByName">
<object class="IBToOneOutletInfo" key="o_btn_playlist">
<string key="name">o_btn_playlist</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_controller">
<string key="name">o_controller</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_ctx_menu">
<string key="name">o_ctx_menu</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_delete">
<string key="name">o_mi_delete</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_dl_cover_art">
<string key="name">o_mi_dl_cover_art</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_info">
<string key="name">o_mi_info</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_play">
<string key="name">o_mi_play</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_preparse">
<string key="name">o_mi_preparse</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_recursive_expand">
<string key="name">o_mi_recursive_expand</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_revealInFinder">
<string key="name">o_mi_revealInFinder</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_save_playlist">
<string key="name">o_mi_save_playlist</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_selectall">
<string key="name">o_mi_selectall</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_sort_author">
<string key="name">o_mi_sort_author</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_mi_sort_name">
<string key="name">o_mi_sort_name</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_outline_view">
<string key="name">o_outline_view</string>
<string key="candidateClassName">VLCPlaylistView</string>
</object>
<object class="IBToOneOutletInfo" key="o_playlist_header">
<string key="name">o_playlist_header</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_playlist_view">
<string key="name">o_playlist_view</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_playlist_wizard">
<string key="name">o_playlist_wizard</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_save_accessory_popup">
<string key="name">o_save_accessory_popup</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_save_accessory_text">
<string key="name">o_save_accessory_text</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_save_accessory_view">
<string key="name">o_save_accessory_view</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBToOneOutletInfo" key="o_search_field">
<string key="name">o_search_field</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="758137455">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../../../modules/gui/macosx/playlist.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">VLCPlaylist</string>
<dictionary class="NSMutableDictionary" key="actions">
<string key="deleteItem:">id</string>
<string key="downloadCoverArt:">id</string>
<string key="playItem:">id</string>
<string key="preparseItem:">id</string>
<string key="recursiveExpandNode:">id</string>
<string key="revealItemInFinder:">id</string>
<string key="savePlaylist:">id</string>
<string key="searchItem:">id</string>
<string key="selectAll:">id</string>
<string key="showInfoPanel:">id</string>
<string key="sortNodeByAuthor:">id</string>
<string key="sortNodeByName:">id</string>
</dictionary>
<dictionary class="NSMutableDictionary" key="actionInfosByName">
<object class="IBActionInfo" key="deleteItem:">
<string key="name">deleteItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="downloadCoverArt:">
<string key="name">downloadCoverArt:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="playItem:">
<string key="name">playItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="preparseItem:">
<string key="name">preparseItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="recursiveExpandNode:">
<string key="name">recursiveExpandNode:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="revealItemInFinder:">
<string key="name">revealItemInFinder:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="savePlaylist:">
<string key="name">savePlaylist:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="searchItem:">
<string key="name">searchItem:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="selectAll:">
<string key="name">selectAll:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="showInfoPanel:">
<string key="name">showInfoPanel:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sortNodeByAuthor:">
<string key="name">sortNodeByAuthor:</string>
<string key="candidateClassName">id</string>
</object>
<object class="IBActionInfo" key="sortNodeByName:">
<string key="name">sortNodeByName:</string>
<string key="candidateClassName">id</string>
</object>
</dictionary>
<object class="IBClassDescriptionSource" key="sourceIdentifier" id="760709577">
<string key="majorKey">IBProjectSource</string>
<string key="minorKey">../../../../modules/gui/macosx/playlist.m</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">VLCPlaylistView</string>
<string key="superclassName">NSOutlineView</string>
<reference key="sourceIdentifier" ref="758137455"/>
</object>
<object class="IBPartialClassDescription">
<string key="className">VLCPlaylistView</string>
<object class="NSMutableDictionary" key="actions">
<string key="NS.key.0">delete:</string>
<string key="NS.object.0">id</string>
</object>
<object class="NSMutableDictionary" key="actionInfosByName">
<string key="NS.key.0">delete:</string>
<object class="IBActionInfo" key="NS.object.0">
<string key="name">delete:</string>
<string key="candidateClassName">id</string>
</object>
</object>
<reference key="sourceIdentifier" ref="760709577"/>
</object>
</array>
<array class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
<object class="IBPartialClassDescription">
<string key="className">NSApplication</string>
<string key="superclassName">NSResponder</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSApplication.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSControl</string>
<string key="superclassName">NSView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSControl.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSFormatter</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">Foundation.framework/Headers/NSFormatter.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenu</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMenu.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSMenuItem</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSMenuItem.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSOutlineView</string>
<string key="superclassName">NSTableView</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSOutlineView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSResponder</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSResponder.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSTableView</string>
<string key="superclassName">NSControl</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSTableView.h</string>
</object>
</object>
<object class="IBPartialClassDescription">
<string key="className">NSView</string>
<string key="superclassName">NSResponder</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBFrameworkSource</string>
<string key="minorKey">AppKit.framework/Headers/NSView.h</string>
</object>
</object>
</array>
</object>
<int key="IBDocument.localizationMode">0</int>
<string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
<bool key="IBDocument.previouslyAttemptedUpgradeToXcode5">NO</bool>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
<integer value="1060" key="NS.object.0"/>
</object>
<object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
<string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
<integer value="4600" key="NS.object.0"/>
</object>
<bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
<int key="IBDocument.defaultPropertyAccessControl">3</int>
<dictionary class="NSMutableDictionary" key="IBDocument.LastKnownImageSizes">
<string key="NSMenuCheckmark">{12, 12}</string>
<string key="NSMenuMixedState">{10, 2}</string>
</dictionary>
</data>
</archive>
...@@ -211,6 +211,10 @@ ...@@ -211,6 +211,10 @@
@property (readwrite, weak) IBOutlet NSStepper *specificTime_stepper; @property (readwrite, weak) IBOutlet NSStepper *specificTime_stepper;
@property (nonatomic) int jumpTimeValue; @property (nonatomic) int jumpTimeValue;
@property (readwrite, weak) IBOutlet NSView *playlistSaveAccessoryView;
@property (readwrite, weak) IBOutlet NSPopUpButton *playlistSaveAccessoryPopup;
@property (readwrite, weak) IBOutlet NSTextField *playlistSaveAccessoryText;
- (void)releaseRepresentedObjects:(NSMenu *)the_menu; - (void)releaseRepresentedObjects:(NSMenu *)the_menu;
- (void)setupMenus; - (void)setupMenus;
......
...@@ -1212,7 +1212,70 @@ ...@@ -1212,7 +1212,70 @@
- (IBAction)savePlaylist:(id)sender - (IBAction)savePlaylist:(id)sender
{ {
[[[VLCMain sharedInstance] playlist] savePlaylist:sender]; playlist_t *p_playlist = pl_Get(VLCIntf);
NSSavePanel *savePanel = [NSSavePanel savePanel];
NSString * name = [NSString stringWithFormat: @"%@", _NS("Untitled")];
[NSBundle loadNibNamed:@"PlaylistAccessoryView" owner:self];
[_playlistSaveAccessoryText setStringValue: _NS("File Format:")];
[[_playlistSaveAccessoryPopup itemAtIndex:0] setTitle: _NS("Extended M3U")];
[[_playlistSaveAccessoryPopup itemAtIndex:1] setTitle: _NS("XML Shareable Playlist Format (XSPF)")];
[[_playlistSaveAccessoryPopup itemAtIndex:2] setTitle: _NS("HTML playlist")];
[savePanel setTitle: _NS("Save Playlist")];
[savePanel setPrompt: _NS("Save")];
[savePanel setAccessoryView: _playlistSaveAccessoryView];
[savePanel setNameFieldStringValue: name];
if ([savePanel runModal] == NSFileHandlingPanelOKButton) {
NSString *filename = [[savePanel URL] path];
if ([_playlistSaveAccessoryPopup indexOfSelectedItem] == 0) {
NSString *actualFilename;
NSRange range;
range.location = [filename length] - [@".m3u" length];
range.length = [@".m3u" length];
if ([filename compare:@".m3u" options: NSCaseInsensitiveSearch range: range] != NSOrderedSame)
actualFilename = [NSString stringWithFormat: @"%@.m3u", filename];
else
actualFilename = filename;
playlist_Export(p_playlist,
[actualFilename fileSystemRepresentation],
p_playlist->p_local_category, "export-m3u");
} else if ([_playlistSaveAccessoryPopup indexOfSelectedItem] == 1) {
NSString *actualFilename;
NSRange range;
range.location = [filename length] - [@".xspf" length];
range.length = [@".xspf" length];
if ([filename compare:@".xspf" options: NSCaseInsensitiveSearch range: range] != NSOrderedSame)
actualFilename = [NSString stringWithFormat: @"%@.xspf", filename];
else
actualFilename = filename;
playlist_Export(p_playlist,
[actualFilename fileSystemRepresentation],
p_playlist->p_local_category, "export-xspf");
} else {
NSString *actualFilename;
NSRange range;
range.location = [filename length] - [@".html" length];
range.length = [@".html" length];
if ([filename compare:@".html" options: NSCaseInsensitiveSearch range: range] != NSOrderedSame)
actualFilename = [NSString stringWithFormat: @"%@.html", filename];
else
actualFilename = filename;
playlist_Export(p_playlist,
[actualFilename fileSystemRepresentation],
p_playlist->p_local_category, "export-html");
}
}
} }
- (IBAction)revealItemInFinder:(id)sender - (IBAction)revealItemInFinder:(id)sender
......
...@@ -53,6 +53,7 @@ typedef enum { ...@@ -53,6 +53,7 @@ typedef enum {
IBOutlet id o_search_fld; IBOutlet id o_search_fld;
IBOutlet id o_playlist_table; IBOutlet id o_playlist_table;
IBOutlet id o_outline_view;
IBOutlet id o_split_view; IBOutlet id o_split_view;
IBOutlet id o_left_split_view; IBOutlet id o_left_split_view;
IBOutlet id o_right_split_view; IBOutlet id o_right_split_view;
...@@ -97,6 +98,8 @@ typedef enum { ...@@ -97,6 +98,8 @@ typedef enum {
- (IBAction)removePodcast:(id)sender; - (IBAction)removePodcast:(id)sender;
- (IBAction)removePodcastWindowAction:(id)sender; - (IBAction)removePodcastWindowAction:(id)sender;
- (IBAction)searchItem:(id)sender;
- (void)windowResizedOrMoved:(NSNotification *)notification; - (void)windowResizedOrMoved:(NSNotification *)notification;
- (void)reloadSidebar; - (void)reloadSidebar;
......
...@@ -99,8 +99,6 @@ static VLCMainWindow *sharedInstance = nil; ...@@ -99,8 +99,6 @@ static VLCMainWindow *sharedInstance = nil;
defer:flag]; defer:flag];
}); });
[[[VLCMain sharedInstance] playlist] updateTogglePlaylistState];
return sharedInstance; return sharedInstance;
} }
...@@ -171,6 +169,13 @@ static VLCMainWindow *sharedInstance = nil; ...@@ -171,6 +169,13 @@ static VLCMainWindow *sharedInstance = nil;
[[o_search_fld cell] setPlaceholderString: _NS("Search")]; [[o_search_fld cell] setPlaceholderString: _NS("Search")];
[[o_search_fld cell] accessibilitySetOverrideValue:_NS("Enter a term to search the playlist. Results will be selected in the table.") forAttribute:NSAccessibilityDescriptionAttribute]; [[o_search_fld cell] accessibilitySetOverrideValue:_NS("Enter a term to search the playlist. Results will be selected in the table.") forAttribute:NSAccessibilityDescriptionAttribute];
[o_search_fld setToolTip: _NS("Search in Playlist")];
VLCPlaylist *playlist = [[VLCMain sharedInstance] playlist];
playlist.outlineView = o_outline_view;
playlist.playlistHeaderView = [o_outline_view headerView];
[o_outline_view setDelegate:playlist];
[o_outline_view setDataSource:playlist];
[o_dropzone_btn setTitle: _NS("Open media...")]; [o_dropzone_btn setTitle: _NS("Open media...")];
[[o_dropzone_btn cell] accessibilitySetOverrideValue:_NS("Click to open an advanced dialog to select the media to play. You can also drop files here to play.") forAttribute:NSAccessibilityDescriptionAttribute]; [[o_dropzone_btn cell] accessibilitySetOverrideValue:_NS("Click to open an advanced dialog to select the media to play. You can also drop files here to play.") forAttribute:NSAccessibilityDescriptionAttribute];
...@@ -973,6 +978,11 @@ static VLCMainWindow *sharedInstance = nil; ...@@ -973,6 +978,11 @@ static VLCMainWindow *sharedInstance = nil;
return [NSString stringWithFormat:@" — %@",[formatter stringFromDate:date]]; return [NSString stringWithFormat:@" — %@",[formatter stringFromDate:date]];
} }
- (IBAction)searchItem:(id)sender
{
[[[[VLCMain sharedInstance] playlist] model] searchUpdate:[o_search_fld stringValue]];
}
#pragma mark - #pragma mark -
#pragma mark Side Bar Data handling #pragma mark Side Bar Data handling
/* taken under BSD-new from the PXSourceList sample project, adapted for VLC */ /* taken under BSD-new from the PXSourceList sample project, adapted for VLC */
......
...@@ -68,7 +68,6 @@ static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification"; ...@@ -68,7 +68,6 @@ static NSString * VLCInputChangedNotification = @"VLCInputChangedNotification";
@interface VLCMain : NSObject <NSWindowDelegate, NSApplicationDelegate> @interface VLCMain : NSObject <NSWindowDelegate, NSApplicationDelegate>
{ {
IBOutlet VLCMainWindow *o_mainwindow; /* VLCMainWindow */ IBOutlet VLCMainWindow *o_mainwindow; /* VLCMainWindow */
IBOutlet VLCPlaylist * o_playlist; /* VLCPlaylist */
} }
@property (readonly) VLCVoutWindowController* voutController; @property (readonly) VLCVoutWindowController* voutController;
......
...@@ -80,9 +80,10 @@ int OpenIntf (vlc_object_t *p_this) ...@@ -80,9 +80,10 @@ int OpenIntf (vlc_object_t *p_this)
msg_Dbg(p_intf, "Starting macosx interface"); msg_Dbg(p_intf, "Starting macosx interface");
[VLCApplication sharedApplication]; [VLCApplication sharedApplication];
[[VLCMain sharedInstance] setIntf: p_intf]; [[VLCMain sharedInstance] setIntf: p_intf];
[NSBundle loadNibNamed:@"MainMenu" owner:[[VLCMain sharedInstance] mainMenu]];
[VLCVoutWindowController sharedInstance]; [VLCVoutWindowController sharedInstance];
return VLC_SUCCESS; return VLC_SUCCESS;
...@@ -155,6 +156,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable, ...@@ -155,6 +156,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
VLCCoreInteraction *_coreinteraction; VLCCoreInteraction *_coreinteraction;
ResumeDialogController *_resume_dialog; ResumeDialogController *_resume_dialog;
VLCInputManager *_input_manager; VLCInputManager *_input_manager;
VLCPlaylist *_playlist;
bool b_intf_terminating; /* Makes sure applicationWillTerminate will be called only once */ bool b_intf_terminating; /* Makes sure applicationWillTerminate will be called only once */
} }
...@@ -218,14 +220,11 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable, ...@@ -218,14 +220,11 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
- (void)applicationWillFinishLaunching:(NSNotification *)aNotification - (void)applicationWillFinishLaunching:(NSNotification *)aNotification
{ {
_playlist = [[VLCPlaylist alloc] init];
[NSBundle loadNibNamed:@"MainWindow" owner:self];
[[self mainWindow] makeKeyAndOrderFront:nil];
_open = [[VLCOpen alloc] init]; _open = [[VLCOpen alloc] init];
_mainmenu = [[VLCMainMenu alloc] init]; _mainmenu = [[VLCMainMenu alloc] init];
[NSBundle loadNibNamed:@"MainMenu" owner:_mainmenu];
[NSBundle loadNibNamed:@"MainWindow" owner:[VLCMain sharedInstance]];
[[[VLCMain sharedInstance] mainWindow] makeKeyAndOrderFront:nil];
_coreinteraction = [VLCCoreInteraction sharedInstance]; _coreinteraction = [VLCCoreInteraction sharedInstance];
playlist_t * p_playlist = pl_Get(VLCIntf); playlist_t * p_playlist = pl_Get(VLCIntf);
...@@ -314,7 +313,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable, ...@@ -314,7 +313,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
* the callbacks are registered. * the callbacks are registered.
*/ */
[_input_manager inputThreadChanged]; [_input_manager inputThreadChanged];
[o_playlist playbackModeUpdated]; [_playlist playbackModeUpdated];
// respect playlist-autostart // respect playlist-autostart
// note that PLAYLIST_PLAY will not stop any playback if already started // note that PLAYLIST_PLAY will not stop any playback if already started
...@@ -567,7 +566,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable, ...@@ -567,7 +566,7 @@ static int ShowController(vlc_object_t *p_this, const char *psz_variable,
- (VLCPlaylist *)playlist - (VLCPlaylist *)playlist
{ {
return o_playlist; return _playlist;
} }
- (VLCCoreDialogProvider *)coreDialogProvider - (VLCCoreDialogProvider *)coreDialogProvider
......
/***************************************************************************** /*****************************************************************************
* playlist.h: MacOS X interface module * playlist.h: MacOS X interface module
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2012 VLC authors and VideoLAN * Copyright (C) 2002-2015 VLC authors and VideoLAN
* $Id$ * $Id$
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
...@@ -37,34 +37,21 @@ ...@@ -37,34 +37,21 @@
* VLCPlaylist interface * VLCPlaylist interface
*****************************************************************************/ *****************************************************************************/
@interface VLCPlaylist : NSObject<NSOutlineViewDataSource, NSOutlineViewDelegate> @interface VLCPlaylist : NSObject<NSOutlineViewDataSource, NSOutlineViewDelegate>
{
IBOutlet VLCPlaylistView* o_outline_view; @property (readwrite, weak) IBOutlet NSMenu *playlistMenu;
@property (readwrite, weak) IBOutlet NSMenuItem *playPlaylistMenuItem;
IBOutlet id o_controller; @property (readwrite, weak) IBOutlet NSMenuItem *deletePlaylistMenuItem;
@property (readwrite, weak) IBOutlet NSMenuItem *infoPlaylistMenuItem;
IBOutlet id o_btn_playlist; @property (readwrite, weak) IBOutlet NSMenuItem *preparsePlaylistMenuItem;
IBOutlet id o_playlist_view; @property (readwrite, weak) IBOutlet NSMenuItem *revealInFinderPlaylistMenuItem;
IBOutlet id o_search_field; @property (readwrite, weak) IBOutlet NSMenuItem *downloadCoverArtPlaylistMenuItem;
IBOutlet id o_mi_save_playlist; @property (readwrite, weak) IBOutlet NSMenuItem *selectAllPlaylistMenuItem;
IBOutlet id o_ctx_menu; @property (readwrite, weak) IBOutlet NSMenuItem *sortNamePlaylistMenuItem;
@property (readwrite, weak) IBOutlet NSMenuItem *sortAuthorPlaylistMenuItem;
IBOutlet id o_mi_play; @property (readwrite, weak) IBOutlet NSMenuItem *recursiveExpandPlaylistMenuItem;
IBOutlet id o_mi_delete;
IBOutlet id o_mi_info; @property (nonatomic, readwrite, weak) VLCPlaylistView *outlineView;
IBOutlet id o_mi_preparse; @property (nonatomic, readwrite, weak) NSTableHeaderView *playlistHeaderView;
IBOutlet id o_mi_revealInFinder;
IBOutlet id o_mi_dl_cover_art;
IBOutlet id o_mi_selectall;
IBOutlet id o_mi_sort_name;
IBOutlet id o_mi_sort_author;
IBOutlet id o_mi_recursive_expand;
IBOutlet id o_save_accessory_view;
IBOutlet id o_save_accessory_popup;
IBOutlet id o_save_accessory_text;
IBOutlet id o_playlist_header;
}
- (PLModel *)model; - (PLModel *)model;
...@@ -72,8 +59,6 @@ ...@@ -72,8 +59,6 @@
- (NSMenu *)menuForEvent:(NSEvent *)o_event; - (NSMenu *)menuForEvent:(NSEvent *)o_event;
- (IBAction)searchItem:(id)sender;
- (void)playlistUpdated; - (void)playlistUpdated;
- (void)playbackModeUpdated; - (void)playbackModeUpdated;
- (void)updateTogglePlaylistState; - (void)updateTogglePlaylistState;
...@@ -91,7 +76,6 @@ ...@@ -91,7 +76,6 @@
- (IBAction)revealItemInFinder:(id)sender; - (IBAction)revealItemInFinder:(id)sender;
- (IBAction)preparseItem:(id)sender; - (IBAction)preparseItem:(id)sender;
- (IBAction)downloadCoverArt:(id)sender; - (IBAction)downloadCoverArt:(id)sender;
- (IBAction)savePlaylist:(id)sender;
- (IBAction)deleteItem:(id)sender; - (IBAction)deleteItem:(id)sender;
- (IBAction)selectAll:(id)sender; - (IBAction)selectAll:(id)sender;
- (IBAction)sortNodeByName:(id)sender; - (IBAction)sortNodeByName:(id)sender;
......
/***************************************************************************** /*****************************************************************************
* playlist.m: MacOS X interface module * playlist.m: MacOS X interface module
***************************************************************************** *****************************************************************************
* Copyright (C) 2002-2014 VLC authors and VideoLAN * Copyright (C) 2002-2015 VLC authors and VideoLAN
* $Id$ * $Id$
* *
* Authors: Jon Lech Johansen <jon-vl@nanocrew.net> * Authors: Jon Lech Johansen <jon-vl@nanocrew.net>
...@@ -221,13 +221,13 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -221,13 +221,13 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
+ (void)initialize + (void)initialize
{ {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSMutableArray *o_columnArray = [[NSMutableArray alloc] init]; NSMutableArray *columnArray = [[NSMutableArray alloc] init];
[o_columnArray addObject: [NSArray arrayWithObjects:TITLE_COLUMN, [NSNumber numberWithFloat:190.], nil]]; [columnArray addObject: [NSArray arrayWithObjects:TITLE_COLUMN, [NSNumber numberWithFloat:190.], nil]];
[o_columnArray addObject: [NSArray arrayWithObjects:ARTIST_COLUMN, [NSNumber numberWithFloat:95.], nil]]; [columnArray addObject: [NSArray arrayWithObjects:ARTIST_COLUMN, [NSNumber numberWithFloat:95.], nil]];
[o_columnArray addObject: [NSArray arrayWithObjects:DURATION_COLUMN, [NSNumber numberWithFloat:95.], nil]]; [columnArray addObject: [NSArray arrayWithObjects:DURATION_COLUMN, [NSNumber numberWithFloat:95.], nil]];
NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys: NSDictionary *appDefaults = [NSDictionary dictionaryWithObjectsAndKeys:
[NSArray arrayWithArray:o_columnArray], @"PlaylistColumnSelection", [NSArray arrayWithArray:columnArray], @"PlaylistColumnSelection",
[NSArray array], @"recentlyPlayedMediaList", [NSArray array], @"recentlyPlayedMediaList",
[NSDictionary dictionary], @"recentlyPlayedMedia", nil]; [NSDictionary dictionary], @"recentlyPlayedMedia", nil];
...@@ -281,11 +281,11 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -281,11 +281,11 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
rowHeight = 16.; rowHeight = 16.;
} }
NSArray *columns = [o_outline_view tableColumns]; NSArray *columns = [_outlineView tableColumns];
NSUInteger count = columns.count; NSUInteger count = columns.count;
for (NSUInteger x = 0; x < count; x++) for (NSUInteger x = 0; x < count; x++)
[[[columns objectAtIndex:x] dataCell] setFont:fontToUse]; [[[columns objectAtIndex:x] dataCell] setFont:fontToUse];
[o_outline_view setRowHeight:rowHeight]; [_outlineView setRowHeight:rowHeight];
} }
- (void)awakeFromNib - (void)awakeFromNib
...@@ -298,16 +298,16 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -298,16 +298,16 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
[self reloadStyles]; [self reloadStyles];
[self initStrings]; [self initStrings];
o_model = [[PLModel alloc] initWithOutlineView:o_outline_view playlist:p_playlist rootItem:p_playlist->p_playing playlistObject:self]; o_model = [[PLModel alloc] initWithOutlineView:_outlineView playlist:p_playlist rootItem:p_playlist->p_playing playlistObject:self];
[o_outline_view setDataSource:o_model]; [_outlineView setDataSource:o_model];
[o_outline_view reloadData]; [_outlineView reloadData];
[o_outline_view setTarget: self]; [_outlineView setTarget: self];
[o_outline_view setDoubleAction: @selector(playItem:)]; [_outlineView setDoubleAction: @selector(playItem:)];
[o_outline_view setAllowsEmptySelection: NO]; [_outlineView setAllowsEmptySelection: NO];
[o_outline_view registerForDraggedTypes: [NSArray arrayWithObjects:NSFilenamesPboardType, @"VLCPlaylistItemPboardType", nil]]; [_outlineView registerForDraggedTypes: [NSArray arrayWithObjects:NSFilenamesPboardType, @"VLCPlaylistItemPboardType", nil]];
[o_outline_view setIntercellSpacing: NSMakeSize (0.0, 1.0)]; [_outlineView setIntercellSpacing: NSMakeSize (0.0, 1.0)];
/* This uses a private API, but works fine on all current OSX releases. /* This uses a private API, but works fine on all current OSX releases.
* Radar ID 11739459 request a public API for this. However, it is probably * Radar ID 11739459 request a public API for this. However, it is probably
...@@ -317,29 +317,32 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -317,29 +317,32 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
o_tc_sortColumn = nil; o_tc_sortColumn = nil;
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(applicationWillTerminate:) name: NSApplicationWillTerminateNotification object: nil];
b_view_setup = YES;
}
- (void)setPlaylistHeaderView:(NSTableHeaderView * __nullable)playlistHeaderView
{
VLCMainMenu *mainMenu = [[VLCMain sharedInstance] mainMenu];
_playlistHeaderView = playlistHeaderView;
NSMenu *contextMenu = [mainMenu setupPlaylistTableColumnsMenu];
[_playlistHeaderView setMenu: contextMenu];
NSArray * o_columnArray = [[NSUserDefaults standardUserDefaults] arrayForKey:@"PlaylistColumnSelection"]; NSArray * o_columnArray = [[NSUserDefaults standardUserDefaults] arrayForKey:@"PlaylistColumnSelection"];
NSUInteger count = [o_columnArray count]; NSUInteger count = [o_columnArray count];
id o_menu = [[VLCMain sharedInstance] mainMenu];
NSString * o_column; NSString * o_column;
NSMenu *o_context_menu = [o_menu setupPlaylistTableColumnsMenu];
[o_playlist_header setMenu: o_context_menu];
for (NSUInteger i = 0; i < count; i++) { for (NSUInteger i = 0; i < count; i++) {
o_column = [[o_columnArray objectAtIndex:i] firstObject]; o_column = [[o_columnArray objectAtIndex:i] firstObject];
if ([o_column isEqualToString:@"status"]) if ([o_column isEqualToString:@"status"])
continue; continue;
if(![o_menu setPlaylistColumnTableState: NSOnState forColumn: o_column]) if(![mainMenu setPlaylistColumnTableState: NSOnState forColumn: o_column])
continue; continue;
[[o_outline_view tableColumnWithIdentifier: o_column] setWidth: [[[o_columnArray objectAtIndex:i] objectAtIndex:1] floatValue]]; [[_outlineView tableColumnWithIdentifier: o_column] setWidth: [[[o_columnArray objectAtIndex:i] objectAtIndex:1] floatValue]];
} }
[[NSNotificationCenter defaultCenter] addObserver: self selector: @selector(applicationWillTerminate:) name: NSApplicationWillTerminateNotification object: nil];
b_view_setup = YES;
} }
- (void)applicationWillTerminate:(NSNotification *)notification - (void)applicationWillTerminate:(NSNotification *)notification
...@@ -350,23 +353,21 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -350,23 +353,21 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
- (void)initStrings - (void)initStrings
{ {
[o_mi_play setTitle: _NS("Play")]; [_playPlaylistMenuItem setTitle: _NS("Play")];
[o_mi_delete setTitle: _NS("Delete")]; [_deletePlaylistMenuItem setTitle: _NS("Delete")];
[o_mi_recursive_expand setTitle: _NS("Expand Node")]; [_recursiveExpandPlaylistMenuItem setTitle: _NS("Expand Node")];
[o_mi_selectall setTitle: _NS("Select All")]; [_selectAllPlaylistMenuItem setTitle: _NS("Select All")];
[o_mi_info setTitle: _NS("Media Information...")]; [_infoPlaylistMenuItem setTitle: _NS("Media Information...")];
[o_mi_dl_cover_art setTitle: _NS("Download Cover Art")]; [_downloadCoverArtPlaylistMenuItem setTitle: _NS("Download Cover Art")];
[o_mi_preparse setTitle: _NS("Fetch Meta Data")]; [_preparsePlaylistMenuItem setTitle: _NS("Fetch Meta Data")];
[o_mi_revealInFinder setTitle: _NS("Reveal in Finder")]; [_revealInFinderPlaylistMenuItem setTitle: _NS("Reveal in Finder")];
[o_mi_sort_name setTitle: _NS("Sort Node by Name")]; [_sortNamePlaylistMenuItem setTitle: _NS("Sort Node by Name")];
[o_mi_sort_author setTitle: _NS("Sort Node by Author")]; [_sortAuthorPlaylistMenuItem setTitle: _NS("Sort Node by Author")];
[o_search_field setToolTip: _NS("Search in Playlist")];
} }
- (void)playlistUpdated - (void)playlistUpdated
{ {
[o_outline_view reloadData]; [_outlineView reloadData];
} }
- (void)plItemAppended:(NSArray *)o_val - (void)plItemAppended:(NSArray *)o_val
...@@ -439,7 +440,7 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -439,7 +440,7 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
- (void)outlineViewSelectionDidChange:(NSNotification *)notification - (void)outlineViewSelectionDidChange:(NSNotification *)notification
{ {
// // FIXME: unsafe // // FIXME: unsafe
// playlist_item_t * p_item = [[o_outline_view itemAtRow:[o_outline_view selectedRow]] pointerValue]; // playlist_item_t * p_item = [[_outlineView itemAtRow:[_outlineView selectedRow]] pointerValue];
// //
// if (p_item) { // if (p_item) {
// /* update the state of our Reveal-in-Finder menu items */ // /* update the state of our Reveal-in-Finder menu items */
...@@ -470,7 +471,7 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -470,7 +471,7 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
- (BOOL)isSelectionEmpty - (BOOL)isSelectionEmpty
{ {
return [o_outline_view selectedRow] == -1; return [_outlineView selectedRow] == -1;
} }
- (void)currentlyPlayingItemChanged - (void)currentlyPlayingItemChanged
...@@ -480,95 +481,27 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -480,95 +481,27 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
return; return;
// select item // select item
NSInteger itemIndex = [o_outline_view rowForItem:item]; NSInteger itemIndex = [_outlineView rowForItem:item];
if (itemIndex < 0) { if (itemIndex < 0) {
// expand if needed // expand if needed
while (item != nil) { while (item != nil) {
PLItem *parent = [item parent]; PLItem *parent = [item parent];
if (![o_outline_view isExpandable: parent]) if (![_outlineView isExpandable: parent])
break; break;
if (![o_outline_view isItemExpanded: parent]) if (![_outlineView isItemExpanded: parent])
[o_outline_view expandItem: parent]; [_outlineView expandItem: parent];
item = parent; item = parent;
} }
// search for row again // search for row again
itemIndex = [o_outline_view rowForItem:item]; itemIndex = [_outlineView rowForItem:item];
if (itemIndex < 0) { if (itemIndex < 0) {
return; return;
} }
} }
[o_outline_view selectRowIndexes: [NSIndexSet indexSetWithIndex: itemIndex] byExtendingSelection: NO]; [_outlineView selectRowIndexes: [NSIndexSet indexSetWithIndex: itemIndex] byExtendingSelection: NO];
}
- (IBAction)savePlaylist:(id)sender
{
playlist_t * p_playlist = pl_Get(VLCIntf);
NSSavePanel *o_save_panel = [NSSavePanel savePanel];
NSString * o_name = [NSString stringWithFormat: @"%@", _NS("Untitled")];
[NSBundle loadNibNamed:@"PlaylistAccessoryView" owner:self];
[o_save_accessory_text setStringValue: _NS("File Format:")];
[[o_save_accessory_popup itemAtIndex:0] setTitle: _NS("Extended M3U")];
[[o_save_accessory_popup itemAtIndex:1] setTitle: _NS("XML Shareable Playlist Format (XSPF)")];
[[o_save_accessory_popup itemAtIndex:2] setTitle: _NS("HTML playlist")];
[o_save_panel setTitle: _NS("Save Playlist")];
[o_save_panel setPrompt: _NS("Save")];
[o_save_panel setAccessoryView: o_save_accessory_view];
[o_save_panel setNameFieldStringValue: o_name];
if ([o_save_panel runModal] == NSFileHandlingPanelOKButton) {
NSString *o_filename = [[o_save_panel URL] path];
if ([o_save_accessory_popup indexOfSelectedItem] == 0) {
NSString * o_real_filename;
NSRange range;
range.location = [o_filename length] - [@".m3u" length];
range.length = [@".m3u" length];
if ([o_filename compare:@".m3u" options: NSCaseInsensitiveSearch range: range] != NSOrderedSame)
o_real_filename = [NSString stringWithFormat: @"%@.m3u", o_filename];
else
o_real_filename = o_filename;
playlist_Export(p_playlist,
[o_real_filename fileSystemRepresentation],
p_playlist->p_local_category, "export-m3u");
} else if ([o_save_accessory_popup indexOfSelectedItem] == 1) {
NSString * o_real_filename;
NSRange range;
range.location = [o_filename length] - [@".xspf" length];
range.length = [@".xspf" length];
if ([o_filename compare:@".xspf" options: NSCaseInsensitiveSearch range: range] != NSOrderedSame)
o_real_filename = [NSString stringWithFormat: @"%@.xspf", o_filename];
else
o_real_filename = o_filename;
playlist_Export(p_playlist,
[o_real_filename fileSystemRepresentation],
p_playlist->p_local_category, "export-xspf");
} else {
NSString * o_real_filename;
NSRange range;
range.location = [o_filename length] - [@".html" length];
range.length = [@".html" length];
if ([o_filename compare:@".html" options: NSCaseInsensitiveSearch range: range] != NSOrderedSame)
o_real_filename = [NSString stringWithFormat: @"%@.html", o_filename];
else
o_real_filename = o_filename;
playlist_Export(p_playlist,
[o_real_filename fileSystemRepresentation],
p_playlist->p_local_category, "export-html");
}
}
} }
/* When called retrieves the selected outlineview row and plays that node or item */ /* When called retrieves the selected outlineview row and plays that node or item */
...@@ -577,10 +510,10 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -577,10 +510,10 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
playlist_t *p_playlist = pl_Get(VLCIntf); playlist_t *p_playlist = pl_Get(VLCIntf);
// ignore clicks on column header when handling double action // ignore clicks on column header when handling double action
if (sender == o_outline_view && [o_outline_view clickedRow] == -1) if (sender == _outlineView && [_outlineView clickedRow] == -1)
return; return;
PLItem *o_item = [o_outline_view itemAtRow:[o_outline_view selectedRow]]; PLItem *o_item = [_outlineView itemAtRow:[_outlineView selectedRow]];
if (!o_item) if (!o_item)
return; return;
...@@ -596,10 +529,10 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -596,10 +529,10 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
- (IBAction)revealItemInFinder:(id)sender - (IBAction)revealItemInFinder:(id)sender
{ {
NSIndexSet *selectedRows = [o_outline_view selectedRowIndexes]; NSIndexSet *selectedRows = [_outlineView selectedRowIndexes];
[selectedRows enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) { [selectedRows enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
PLItem *o_item = [o_outline_view itemAtRow:idx]; PLItem *o_item = [_outlineView itemAtRow:idx];
/* perform some checks whether it is a file and if it is local at all... */ /* perform some checks whether it is a file and if it is local at all... */
char *psz_url = input_item_GetURI([o_item input]); char *psz_url = input_item_GetURI([o_item input]);
...@@ -625,14 +558,14 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -625,14 +558,14 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
playlist_t * p_playlist = pl_Get(p_intf); playlist_t * p_playlist = pl_Get(p_intf);
playlist_item_t *p_item = NULL; playlist_item_t *p_item = NULL;
o_selected_indexes = [o_outline_view selectedRowIndexes]; o_selected_indexes = [_outlineView selectedRowIndexes];
i_count = [o_selected_indexes count]; i_count = [o_selected_indexes count];
NSUInteger indexes[i_count]; NSUInteger indexes[i_count];
[o_selected_indexes getIndexes:indexes maxCount:i_count inIndexRange:nil]; [o_selected_indexes getIndexes:indexes maxCount:i_count inIndexRange:nil];
for (int i = 0; i < i_count; i++) { for (int i = 0; i < i_count; i++) {
PLItem *o_item = [o_outline_view itemAtRow:indexes[i]]; PLItem *o_item = [_outlineView itemAtRow:indexes[i]];
[o_outline_view deselectRow: indexes[i]]; [_outlineView deselectRow: indexes[i]];
if (![o_item isLeaf]) { if (![o_item isLeaf]) {
msg_Dbg(p_intf, "preparsing nodes not implemented"); msg_Dbg(p_intf, "preparsing nodes not implemented");
...@@ -653,13 +586,13 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -653,13 +586,13 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
playlist_t * p_playlist = pl_Get(p_intf); playlist_t * p_playlist = pl_Get(p_intf);
playlist_item_t *p_item = NULL; playlist_item_t *p_item = NULL;
o_selected_indexes = [o_outline_view selectedRowIndexes]; o_selected_indexes = [_outlineView selectedRowIndexes];
i_count = [o_selected_indexes count]; i_count = [o_selected_indexes count];
NSUInteger indexes[i_count]; NSUInteger indexes[i_count];
[o_selected_indexes getIndexes:indexes maxCount:i_count inIndexRange:nil]; [o_selected_indexes getIndexes:indexes maxCount:i_count inIndexRange:nil];
for (int i = 0; i < i_count; i++) { for (int i = 0; i < i_count; i++) {
PLItem *o_item = [o_outline_view itemAtRow: indexes[i]]; PLItem *o_item = [_outlineView itemAtRow: indexes[i]];
if (![o_item isLeaf]) if (![o_item isLeaf])
continue; continue;
...@@ -671,7 +604,7 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -671,7 +604,7 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
- (IBAction)selectAll:(id)sender - (IBAction)selectAll:(id)sender
{ {
[o_outline_view selectAll: nil]; [_outlineView selectAll: nil];
} }
- (IBAction)showInfoPanel:(id)sender - (IBAction)showInfoPanel:(id)sender
...@@ -682,7 +615,7 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -682,7 +615,7 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
- (void)deletionCompleted - (void)deletionCompleted
{ {
// retain selection before deletion // retain selection before deletion
[o_outline_view selectRowIndexes:[NSIndexSet indexSetWithIndex:retainedRowSelection] byExtendingSelection:NO]; [_outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:retainedRowSelection] byExtendingSelection:NO];
} }
- (IBAction)deleteItem:(id)sender - (IBAction)deleteItem:(id)sender
...@@ -693,13 +626,13 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -693,13 +626,13 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
if (![[self model] editAllowed]) if (![[self model] editAllowed])
return; return;
NSIndexSet *o_selected_indexes = [o_outline_view selectedRowIndexes]; NSIndexSet *o_selected_indexes = [_outlineView selectedRowIndexes];
retainedRowSelection = [o_selected_indexes firstIndex]; retainedRowSelection = [o_selected_indexes firstIndex];
if (retainedRowSelection == NSNotFound) if (retainedRowSelection == NSNotFound)
retainedRowSelection = 0; retainedRowSelection = 0;
[o_selected_indexes enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) { [o_selected_indexes enumerateIndexesUsingBlock:^(NSUInteger idx, BOOL *stop) {
PLItem *o_item = [o_outline_view itemAtRow: idx]; PLItem *o_item = [_outlineView itemAtRow: idx];
if (!o_item) if (!o_item)
return; return;
...@@ -725,8 +658,8 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -725,8 +658,8 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
// TODO why do we need this kind of sort? It looks crap and confusing... // TODO why do we need this kind of sort? It looks crap and confusing...
// if ([o_outline_view selectedRow] > -1) { // if ([_outlineView selectedRow] > -1) {
// p_item = [[o_outline_view itemAtRow: [o_outline_view selectedRow]] pointerValue]; // p_item = [[_outlineView itemAtRow: [_outlineView selectedRow]] pointerValue];
// if (!p_item) // if (!p_item)
// return; // return;
// } else // } else
...@@ -857,15 +790,9 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -857,15 +790,9 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
PL_UNLOCK; PL_UNLOCK;
} }
- (IBAction)searchItem:(id)sender
{
[[self model] searchUpdate:[o_search_field stringValue]];
}
- (IBAction)recursiveExpandNode:(id)sender - (IBAction)recursiveExpandNode:(id)sender
{ {
NSIndexSet * selectedRows = [o_outline_view selectedRowIndexes]; NSIndexSet * selectedRows = [_outlineView selectedRowIndexes];
NSUInteger count = [selectedRows count]; NSUInteger count = [selectedRows count];
NSUInteger indexes[count]; NSUInteger indexes[count];
[selectedRows getIndexes:indexes maxCount:count inIndexRange:nil]; [selectedRows getIndexes:indexes maxCount:count inIndexRange:nil];
...@@ -873,16 +800,16 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -873,16 +800,16 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
id o_item; id o_item;
playlist_item_t *p_item; playlist_item_t *p_item;
for (NSUInteger i = 0; i < count; i++) { for (NSUInteger i = 0; i < count; i++) {
o_item = [o_outline_view itemAtRow: indexes[i]]; o_item = [_outlineView itemAtRow: indexes[i]];
/* We need to collapse the node first, since OSX refuses to recursively /* We need to collapse the node first, since OSX refuses to recursively
expand an already expanded node, even if children nodes are collapsed. */ expand an already expanded node, even if children nodes are collapsed. */
if ([o_outline_view isExpandable:o_item]) { if ([_outlineView isExpandable:o_item]) {
[o_outline_view collapseItem: o_item collapseChildren: YES]; [_outlineView collapseItem: o_item collapseChildren: YES];
[o_outline_view expandItem: o_item expandChildren: YES]; [_outlineView expandItem: o_item expandChildren: YES];
} }
selectedRows = [o_outline_view selectedRowIndexes]; selectedRows = [_outlineView selectedRowIndexes];
[selectedRows getIndexes:indexes maxCount:count inIndexRange:nil]; [selectedRows getIndexes:indexes maxCount:count inIndexRange:nil];
} }
} }
...@@ -896,28 +823,28 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -896,28 +823,28 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
bool b_rows; bool b_rows;
bool b_item_sel; bool b_item_sel;
pt = [o_outline_view convertPoint: [o_event locationInWindow] fromView: nil]; pt = [_outlineView convertPoint: [o_event locationInWindow] fromView: nil];
int row = [o_outline_view rowAtPoint:pt]; int row = [_outlineView rowAtPoint:pt];
if (row != -1 && ![[o_outline_view selectedRowIndexes] containsIndex: row]) if (row != -1 && ![[_outlineView selectedRowIndexes] containsIndex: row])
[o_outline_view selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO]; [_outlineView selectRowIndexes:[NSIndexSet indexSetWithIndex:row] byExtendingSelection:NO];
b_item_sel = (row != -1 && [o_outline_view selectedRow] != -1); b_item_sel = (row != -1 && [_outlineView selectedRow] != -1);
b_rows = [o_outline_view numberOfRows] != 0; b_rows = [_outlineView numberOfRows] != 0;
playlist_t *p_playlist = pl_Get(VLCIntf); playlist_t *p_playlist = pl_Get(VLCIntf);
bool b_del_allowed = [[self model] editAllowed]; bool b_del_allowed = [[self model] editAllowed];
[o_mi_play setEnabled: b_item_sel]; [_playPlaylistMenuItem setEnabled: b_item_sel];
[o_mi_delete setEnabled: b_item_sel && b_del_allowed]; [_deletePlaylistMenuItem setEnabled: b_item_sel && b_del_allowed];
[o_mi_selectall setEnabled: b_rows]; [_selectAllPlaylistMenuItem setEnabled: b_rows];
[o_mi_info setEnabled: b_item_sel]; [_infoPlaylistMenuItem setEnabled: b_item_sel];
[o_mi_preparse setEnabled: b_item_sel]; [_preparsePlaylistMenuItem setEnabled: b_item_sel];
[o_mi_recursive_expand setEnabled: b_item_sel]; [_recursiveExpandPlaylistMenuItem setEnabled: b_item_sel];
[o_mi_sort_name setEnabled: b_item_sel]; [_sortNamePlaylistMenuItem setEnabled: b_item_sel];
[o_mi_sort_author setEnabled: b_item_sel]; [_sortAuthorPlaylistMenuItem setEnabled: b_item_sel];
[o_mi_dl_cover_art setEnabled: b_item_sel]; [_downloadCoverArtPlaylistMenuItem setEnabled: b_item_sel];
return o_ctx_menu; return _playlistMenu;
} }
- (void)outlineView: (NSOutlineView *)o_tv didClickTableColumn:(NSTableColumn *)o_tc - (void)outlineView: (NSOutlineView *)o_tv didClickTableColumn:(NSTableColumn *)o_tc
...@@ -944,21 +871,20 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -944,21 +871,20 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
// [self playlistUpdated]; // [self playlistUpdated];
/* Clear indications of any existing column sorting */ /* Clear indications of any existing column sorting */
NSUInteger count = [[o_outline_view tableColumns] count]; NSUInteger count = [[_outlineView tableColumns] count];
for (NSUInteger i = 0 ; i < count ; i++) for (NSUInteger i = 0 ; i < count ; i++)
[o_outline_view setIndicatorImage:nil inTableColumn: [[o_outline_view tableColumns] objectAtIndex:i]]; [_outlineView setIndicatorImage:nil inTableColumn: [[_outlineView tableColumns] objectAtIndex:i]];
[o_outline_view setHighlightedTableColumn:nil]; [_outlineView setHighlightedTableColumn:nil];
o_tc_sortColumn = nil; o_tc_sortColumn = nil;
o_tc_sortColumn = o_tc; o_tc_sortColumn = o_tc;
[o_outline_view setHighlightedTableColumn:o_tc]; [_outlineView setHighlightedTableColumn:o_tc];
if (b_isSortDescending) if (b_isSortDescending)
[o_outline_view setIndicatorImage:o_descendingSortingImage inTableColumn:o_tc]; [_outlineView setIndicatorImage:o_descendingSortingImage inTableColumn:o_tc];
else else
[o_outline_view setIndicatorImage:o_ascendingSortingImage inTableColumn:o_tc]; [_outlineView setIndicatorImage:o_ascendingSortingImage inTableColumn:o_tc];
} }
...@@ -1026,20 +952,20 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var, ...@@ -1026,20 +952,20 @@ static int VolumeUpdated(vlc_object_t *p_this, const char *psz_var,
[[o_work_tc headerCell] setStringValue: @"#"]; [[o_work_tc headerCell] setStringValue: @"#"];
} }
[o_outline_view addTableColumn: o_work_tc]; [_outlineView addTableColumn: o_work_tc];
[o_outline_view reloadData]; [_outlineView reloadData];
[o_outline_view setNeedsDisplay: YES]; [_outlineView setNeedsDisplay: YES];
} }
else else
[o_outline_view removeTableColumn: [o_outline_view tableColumnWithIdentifier: o_column]]; [_outlineView removeTableColumn: [_outlineView tableColumnWithIdentifier: o_column]];
[o_outline_view setOutlineTableColumn: [o_outline_view tableColumnWithIdentifier:TITLE_COLUMN]]; [_outlineView setOutlineTableColumn: [_outlineView tableColumnWithIdentifier:TITLE_COLUMN]];
} }
- (void)saveTableColumns - (void)saveTableColumns
{ {
NSMutableArray * o_arrayToSave = [[NSMutableArray alloc] init]; NSMutableArray * o_arrayToSave = [[NSMutableArray alloc] init];
NSArray * o_columns = [[NSArray alloc] initWithArray:[o_outline_view tableColumns]]; NSArray * o_columns = [[NSArray alloc] initWithArray:[_outlineView tableColumns]];
NSUInteger count = [o_columns count]; NSUInteger count = [o_columns count];
NSTableColumn * o_currentColumn; NSTableColumn * o_currentColumn;
for (NSUInteger i = 0; i < count; i++) { for (NSUInteger i = 0; i < count; i++) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment