]> code.delx.au - notipod/commitdiff
More stuff works!
authorJames Bunton <jamesbunton@fastmail.fm>
Sun, 2 Jan 2011 06:38:16 +0000 (17:38 +1100)
committerJames Bunton <jamesbunton@fastmail.fm>
Sun, 2 Jan 2011 06:38:16 +0000 (17:38 +1100)
English.lproj/InfoPlist.strings
English.lproj/NotiPod.xib
Info.plist
NotiPod.py
libsyncitunes.py

index 534be772d5fb9d014e9f1139a122642ec1ce0e4d..2a0067ab3ca5eddedfdef01298d8f2ca686828e0 100644 (file)
Binary files a/English.lproj/InfoPlist.strings and b/English.lproj/InfoPlist.strings differ
index 4ef5559d60e2264426d307bbe5590c8c96727695..b8f55cd136ad285e1379f5fb25972a669642e27c 100644 (file)
                                                                <reference key="NSTextColor" ref="888276067"/>
                                                        </object>
                                                </object>
-                                               <object class="NSScrollView" id="779802593">
+                                               <object class="NSScrollView" id="351141068">
                                                        <reference key="NSNextResponder" ref="439893737"/>
                                                        <int key="NSvFlags">268</int>
                                                        <object class="NSMutableArray" key="NSSubviews">
                                                                <bool key="EncodedWithXMLCoder">YES</bool>
-                                                               <object class="NSClipView" id="860102363">
-                                                                       <reference key="NSNextResponder" ref="779802593"/>
+                                                               <object class="NSClipView" id="571230317">
+                                                                       <reference key="NSNextResponder" ref="351141068"/>
                                                                        <int key="NSvFlags">2304</int>
                                                                        <object class="NSMutableArray" key="NSSubviews">
                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
-                                                                               <object class="NSTableView" id="105029809">
-                                                                                       <reference key="NSNextResponder" ref="860102363"/>
+                                                                               <object class="NSOutlineView" id="371935982">
+                                                                                       <reference key="NSNextResponder" ref="571230317"/>
                                                                                        <int key="NSvFlags">256</int>
-                                                                                       <string key="NSFrameSize">{312, 304}</string>
-                                                                                       <reference key="NSSuperview" ref="860102363"/>
+                                                                                       <string key="NSFrameSize">{327, 338}</string>
+                                                                                       <reference key="NSSuperview" ref="571230317"/>
                                                                                        <bool key="NSEnabled">YES</bool>
-                                                                                       <object class="NSTableHeaderView" key="NSHeaderView" id="800483137">
-                                                                                               <reference key="NSNextResponder" ref="784098487"/>
-                                                                                               <int key="NSvFlags">256</int>
-                                                                                               <string key="NSFrameSize">{312, 17}</string>
-                                                                                               <reference key="NSSuperview" ref="784098487"/>
-                                                                                               <reference key="NSTableView" ref="105029809"/>
-                                                                                       </object>
-                                                                                       <object class="_NSCornerView" key="NSCornerView" id="510111226">
-                                                                                               <reference key="NSNextResponder" ref="779802593"/>
-                                                                                               <int key="NSvFlags">256</int>
+                                                                                       <object class="_NSCornerView" key="NSCornerView">
+                                                                                               <nil key="NSNextResponder"/>
+                                                                                               <int key="NSvFlags">-2147483392</int>
                                                                                                <string key="NSFrame">{{313, 0}, {16, 17}}</string>
-                                                                                               <reference key="NSSuperview" ref="779802593"/>
                                                                                        </object>
                                                                                        <object class="NSMutableArray" key="NSTableColumns">
                                                                                                <bool key="EncodedWithXMLCoder">YES</bool>
-                                                                                               <object class="NSTableColumn" id="819126432">
-                                                                                                       <double key="NSWidth">6.400000e+01</double>
-                                                                                                       <double key="NSMinWidth">1.000000e+01</double>
-                                                                                                       <double key="NSMaxWidth">3.402823e+38</double>
+                                                                                               <object class="NSTableColumn" id="50298789">
+                                                                                                       <string key="NSIdentifier">selected</string>
+                                                                                                       <double key="NSWidth">4.000000e+01</double>
+                                                                                                       <double key="NSMinWidth">1.600000e+01</double>
+                                                                                                       <double key="NSMaxWidth">1.000000e+03</double>
                                                                                                        <object class="NSTableHeaderCell" key="NSHeaderCell">
                                                                                                                <int key="NSCellFlags">75628032</int>
                                                                                                                <int key="NSCellFlags2">0</int>
-                                                                                                               <string key="NSContents">Playlist</string>
-                                                                                                               <object class="NSFont" key="NSSupport">
+                                                                                                               <string key="NSContents"/>
+                                                                                                               <object class="NSFont" key="NSSupport" id="26">
                                                                                                                        <string key="NSName">LucidaGrande</string>
                                                                                                                        <double key="NSSize">1.100000e+01</double>
                                                                                                                        <int key="NSfFlags">3100</int>
                                                                                                                </object>
+                                                                                                               <object class="NSColor" key="NSBackgroundColor">
+                                                                                                                       <int key="NSColorSpace">3</int>
+                                                                                                                       <bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
+                                                                                                               </object>
+                                                                                                               <object class="NSColor" key="NSTextColor" id="204738612">
+                                                                                                                       <int key="NSColorSpace">6</int>
+                                                                                                                       <string key="NSCatalogName">System</string>
+                                                                                                                       <string key="NSColorName">headerTextColor</string>
+                                                                                                                       <reference key="NSColor" ref="495955423"/>
+                                                                                                               </object>
+                                                                                                       </object>
+                                                                                                       <object class="NSButtonCell" key="NSDataCell" id="811465044">
+                                                                                                               <int key="NSCellFlags">67239424</int>
+                                                                                                               <int key="NSCellFlags2">131072</int>
+                                                                                                               <string key="NSContents"/>
+                                                                                                               <reference key="NSSupport" ref="26"/>
+                                                                                                               <reference key="NSControlView" ref="371935982"/>
+                                                                                                               <int key="NSButtonFlags">1211912703</int>
+                                                                                                               <int key="NSButtonFlags2">130</int>
+                                                                                                               <object class="NSCustomResource" key="NSNormalImage">
+                                                                                                                       <string key="NSClassName">NSImage</string>
+                                                                                                                       <string key="NSResourceName">NSSwitch</string>
+                                                                                                               </object>
+                                                                                                               <object class="NSButtonImageSource" key="NSAlternateImage">
+                                                                                                                       <string key="NSImageName">NSSwitch</string>
+                                                                                                               </object>
+                                                                                                               <string key="NSAlternateContents"/>
+                                                                                                               <string key="NSKeyEquivalent"/>
+                                                                                                               <int key="NSPeriodicDelay">200</int>
+                                                                                                               <int key="NSPeriodicInterval">25</int>
+                                                                                                       </object>
+                                                                                                       <int key="NSResizingMask">1</int>
+                                                                                                       <bool key="NSIsResizeable">YES</bool>
+                                                                                                       <bool key="NSIsEditable">YES</bool>
+                                                                                                       <reference key="NSTableView" ref="371935982"/>
+                                                                                               </object>
+                                                                                               <object class="NSTableColumn" id="296871537">
+                                                                                                       <string key="NSIdentifier">playlist</string>
+                                                                                                       <double key="NSWidth">2.710000e+02</double>
+                                                                                                       <double key="NSMinWidth">1.000000e+01</double>
+                                                                                                       <double key="NSMaxWidth">3.402823e+38</double>
+                                                                                                       <object class="NSTableHeaderCell" key="NSHeaderCell">
+                                                                                                               <int key="NSCellFlags">75628032</int>
+                                                                                                               <int key="NSCellFlags2">0</int>
+                                                                                                               <string key="NSContents"/>
+                                                                                                               <reference key="NSSupport" ref="26"/>
                                                                                                                <object class="NSColor" key="NSBackgroundColor">
                                                                                                                        <int key="NSColorSpace">6</int>
                                                                                                                        <string key="NSCatalogName">System</string>
                                                                                                                                <bytes key="NSWhite">MQA</bytes>
                                                                                                                        </object>
                                                                                                                </object>
-                                                                                                               <object class="NSColor" key="NSTextColor">
-                                                                                                                       <int key="NSColorSpace">6</int>
-                                                                                                                       <string key="NSCatalogName">System</string>
-                                                                                                                       <string key="NSColorName">headerTextColor</string>
-                                                                                                                       <reference key="NSColor" ref="495955423"/>
-                                                                                                               </object>
+                                                                                                               <reference key="NSTextColor" ref="204738612"/>
                                                                                                        </object>
-                                                                                                       <object class="NSTextFieldCell" key="NSDataCell" id="64849697">
+                                                                                                       <object class="NSTextFieldCell" key="NSDataCell" id="286239095">
                                                                                                                <int key="NSCellFlags">337772096</int>
                                                                                                                <int key="NSCellFlags2">2048</int>
-                                                                                                               <string key="NSContents">Text Cell</string>
+                                                                                                               <string key="NSContents"/>
                                                                                                                <reference key="NSSupport" ref="822023840"/>
-                                                                                                               <reference key="NSControlView" ref="105029809"/>
+                                                                                                               <reference key="NSControlView" ref="371935982"/>
                                                                                                                <object class="NSColor" key="NSBackgroundColor" id="928689894">
                                                                                                                        <int key="NSColorSpace">6</int>
                                                                                                                        <string key="NSCatalogName">System</string>
                                                                                                                </object>
                                                                                                                <reference key="NSTextColor" ref="888276067"/>
                                                                                                        </object>
-                                                                                                       <int key="NSResizingMask">3</int>
+                                                                                                       <int key="NSResizingMask">1</int>
                                                                                                        <bool key="NSIsResizeable">YES</bool>
-                                                                                                       <bool key="NSIsEditable">YES</bool>
-                                                                                                       <reference key="NSTableView" ref="105029809"/>
+                                                                                                       <reference key="NSTableView" ref="371935982"/>
                                                                                                </object>
                                                                                        </object>
                                                                                        <double key="NSIntercellSpacingWidth">3.000000e+00</double>
                                                                                                </object>
                                                                                        </object>
                                                                                        <double key="NSRowHeight">1.700000e+01</double>
-                                                                                       <int key="NSTvFlags">-700448768</int>
+                                                                                       <int key="NSTvFlags">-759169024</int>
                                                                                        <int key="NSColumnAutoresizingStyle">4</int>
                                                                                        <int key="NSDraggingSourceMaskForLocal">15</int>
                                                                                        <int key="NSDraggingSourceMaskForNonLocal">0</int>
                                                                                        <int key="NSTableViewDraggingDestinationStyle">1</int>
                                                                                </object>
                                                                        </object>
-                                                                       <string key="NSFrame">{{1, 17}, {312, 304}}</string>
-                                                                       <reference key="NSSuperview" ref="779802593"/>
-                                                                       <reference key="NSNextKeyView" ref="105029809"/>
-                                                                       <reference key="NSDocView" ref="105029809"/>
+                                                                       <string key="NSFrame">{{1, 1}, {327, 338}}</string>
+                                                                       <reference key="NSSuperview" ref="351141068"/>
+                                                                       <reference key="NSNextKeyView" ref="371935982"/>
+                                                                       <reference key="NSDocView" ref="371935982"/>
                                                                        <reference key="NSBGColor" ref="928689894"/>
                                                                        <int key="NScvFlags">4</int>
                                                                </object>
-                                                               <object class="NSScroller" id="133059945">
-                                                                       <reference key="NSNextResponder" ref="779802593"/>
-                                                                       <int key="NSvFlags">256</int>
-                                                                       <string key="NSFrame">{{313, 17}, {15, 304}}</string>
-                                                                       <reference key="NSSuperview" ref="779802593"/>
-                                                                       <reference key="NSTarget" ref="779802593"/>
+                                                               <object class="NSScroller" id="174881734">
+                                                                       <reference key="NSNextResponder" ref="351141068"/>
+                                                                       <int key="NSvFlags">-2147483392</int>
+                                                                       <string key="NSFrame">{{313, 1}, {15, 323}}</string>
+                                                                       <reference key="NSSuperview" ref="351141068"/>
+                                                                       <reference key="NSTarget" ref="351141068"/>
                                                                        <string key="NSAction">_doScroller:</string>
-                                                                       <double key="NSPercent">4.742590e-01</double>
+                                                                       <double key="NSPercent">9.556213e-01</double>
                                                                </object>
-                                                               <object class="NSScroller" id="1071968096">
-                                                                       <reference key="NSNextResponder" ref="779802593"/>
-                                                                       <int key="NSvFlags">256</int>
-                                                                       <string key="NSFrame">{{1, 321}, {312, 15}}</string>
-                                                                       <reference key="NSSuperview" ref="779802593"/>
+                                                               <object class="NSScroller" id="9933412">
+                                                                       <reference key="NSNextResponder" ref="351141068"/>
+                                                                       <int key="NSvFlags">-2147483392</int>
+                                                                       <string key="NSFrame">{{1, 324}, {327, 15}}</string>
+                                                                       <reference key="NSSuperview" ref="351141068"/>
                                                                        <int key="NSsFlags">1</int>
-                                                                       <reference key="NSTarget" ref="779802593"/>
+                                                                       <reference key="NSTarget" ref="351141068"/>
                                                                        <string key="NSAction">_doScroller:</string>
-                                                                       <double key="NSPercent">5.714286e-01</double>
-                                                               </object>
-                                                               <object class="NSClipView" id="784098487">
-                                                                       <reference key="NSNextResponder" ref="779802593"/>
-                                                                       <int key="NSvFlags">2304</int>
-                                                                       <object class="NSMutableArray" key="NSSubviews">
-                                                                               <bool key="EncodedWithXMLCoder">YES</bool>
-                                                                               <reference ref="800483137"/>
-                                                                       </object>
-                                                                       <string key="NSFrame">{{1, 0}, {312, 17}}</string>
-                                                                       <reference key="NSSuperview" ref="779802593"/>
-                                                                       <reference key="NSNextKeyView" ref="800483137"/>
-                                                                       <reference key="NSDocView" ref="800483137"/>
-                                                                       <reference key="NSBGColor" ref="928689894"/>
-                                                                       <int key="NScvFlags">4</int>
+                                                                       <double key="NSPercent">9.159664e-01</double>
                                                                </object>
-                                                               <reference ref="510111226"/>
                                                        </object>
-                                                       <string key="NSFrame">{{32, 163}, {329, 337}}</string>
+                                                       <string key="NSFrame">{{32, 160}, {329, 340}}</string>
                                                        <reference key="NSSuperview" ref="439893737"/>
-                                                       <reference key="NSNextKeyView" ref="860102363"/>
-                                                       <int key="NSsFlags">50</int>
-                                                       <reference key="NSVScroller" ref="133059945"/>
-                                                       <reference key="NSHScroller" ref="1071968096"/>
-                                                       <reference key="NSContentView" ref="860102363"/>
-                                                       <reference key="NSHeaderClipView" ref="784098487"/>
-                                                       <reference key="NSCornerView" ref="510111226"/>
+                                                       <reference key="NSNextKeyView" ref="571230317"/>
+                                                       <int key="NSsFlags">562</int>
+                                                       <reference key="NSVScroller" ref="174881734"/>
+                                                       <reference key="NSHScroller" ref="9933412"/>
+                                                       <reference key="NSContentView" ref="571230317"/>
                                                        <bytes key="NSScrollAmts">QSAAAEEgAABBmAAAQZgAAA</bytes>
                                                </object>
                                        </object>
                                <string key="NSScreenRect">{{0, 0}, {1024, 746}}</string>
                                <string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
                        </object>
-                       <object class="NSCustomObject" id="251429857">
-                               <string key="NSClassName">PlaylistTableModel</string>
+                       <object class="NSCustomObject" id="354550651">
+                               <string key="NSClassName">PlaylistModel</string>
                        </object>
                </object>
                <object class="IBObjectContainer" key="IBDocument.Objects">
                                </object>
                                <object class="IBConnectionRecord">
                                        <object class="IBOutletConnection" key="connection">
-                                               <string key="label">playlistView</string>
-                                               <reference key="source" ref="567503449"/>
-                                               <reference key="destination" ref="105029809"/>
+                                               <string key="label">outlineView</string>
+                                               <reference key="source" ref="354550651"/>
+                                               <reference key="destination" ref="371935982"/>
                                        </object>
-                                       <int key="connectionID">461</int>
+                                       <int key="connectionID">478</int>
                                </object>
                                <object class="IBConnectionRecord">
                                        <object class="IBOutletConnection" key="connection">
                                                <string key="label">playlistModel</string>
                                                <reference key="source" ref="567503449"/>
-                                               <reference key="destination" ref="251429857"/>
-                                       </object>
-                                       <int key="connectionID">463</int>
-                               </object>
-                               <object class="IBConnectionRecord">
-                                       <object class="IBOutletConnection" key="connection">
-                                               <string key="label">tableView</string>
-                                               <reference key="source" ref="251429857"/>
-                                               <reference key="destination" ref="105029809"/>
+                                               <reference key="destination" ref="354550651"/>
                                        </object>
-                                       <int key="connectionID">464</int>
+                                       <int key="connectionID">479</int>
                                </object>
                        </object>
                        <object class="IBMutableOrderedSet" key="objectRecords">
                                                        <reference ref="524945726"/>
                                                        <reference ref="997567970"/>
                                                        <reference ref="323617138"/>
-                                                       <reference ref="779802593"/>
                                                        <reference ref="703636579"/>
+                                                       <reference ref="351141068"/>
                                                </object>
                                                <reference key="parent" ref="972006081"/>
                                        </object>
                                                <reference key="parent" ref="323617138"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">452</int>
-                                               <reference key="object" ref="779802593"/>
+                                               <int key="objectID">467</int>
+                                               <reference key="object" ref="351141068"/>
                                                <object class="NSMutableArray" key="children">
                                                        <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <reference ref="133059945"/>
-                                                       <reference ref="1071968096"/>
-                                                       <reference ref="105029809"/>
-                                                       <reference ref="800483137"/>
+                                                       <reference ref="174881734"/>
+                                                       <reference ref="9933412"/>
+                                                       <reference ref="371935982"/>
                                                </object>
                                                <reference key="parent" ref="439893737"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">453</int>
-                                               <reference key="object" ref="133059945"/>
-                                               <reference key="parent" ref="779802593"/>
+                                               <int key="objectID">468</int>
+                                               <reference key="object" ref="174881734"/>
+                                               <reference key="parent" ref="351141068"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">454</int>
-                                               <reference key="object" ref="1071968096"/>
-                                               <reference key="parent" ref="779802593"/>
+                                               <int key="objectID">469</int>
+                                               <reference key="object" ref="9933412"/>
+                                               <reference key="parent" ref="351141068"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">455</int>
-                                               <reference key="object" ref="105029809"/>
+                                               <int key="objectID">470</int>
+                                               <reference key="object" ref="371935982"/>
                                                <object class="NSMutableArray" key="children">
                                                        <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <reference ref="819126432"/>
+                                                       <reference ref="50298789"/>
+                                                       <reference ref="296871537"/>
                                                </object>
-                                               <reference key="parent" ref="779802593"/>
+                                               <reference key="parent" ref="351141068"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">456</int>
-                                               <reference key="object" ref="800483137"/>
-                                               <reference key="parent" ref="779802593"/>
+                                               <int key="objectID">472</int>
+                                               <reference key="object" ref="50298789"/>
+                                               <object class="NSMutableArray" key="children">
+                                                       <bool key="EncodedWithXMLCoder">YES</bool>
+                                                       <reference ref="811465044"/>
+                                               </object>
+                                               <reference key="parent" ref="371935982"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">462</int>
-                                               <reference key="object" ref="251429857"/>
+                                               <int key="objectID">477</int>
+                                               <reference key="object" ref="354550651"/>
                                                <reference key="parent" ref="0"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">465</int>
-                                               <reference key="object" ref="819126432"/>
+                                               <int key="objectID">484</int>
+                                               <reference key="object" ref="811465044"/>
+                                               <reference key="parent" ref="50298789"/>
+                                       </object>
+                                       <object class="IBObjectRecord">
+                                               <int key="objectID">485</int>
+                                               <reference key="object" ref="296871537"/>
                                                <object class="NSMutableArray" key="children">
                                                        <bool key="EncodedWithXMLCoder">YES</bool>
-                                                       <reference ref="64849697"/>
+                                                       <reference ref="286239095"/>
                                                </object>
-                                               <reference key="parent" ref="105029809"/>
+                                               <reference key="parent" ref="371935982"/>
                                        </object>
                                        <object class="IBObjectRecord">
-                                               <int key="objectID">466</int>
-                                               <reference key="object" ref="64849697"/>
-                                               <reference key="parent" ref="819126432"/>
+                                               <int key="objectID">486</int>
+                                               <reference key="object" ref="286239095"/>
+                                               <reference key="parent" ref="296871537"/>
                                        </object>
                                </object>
                        </object>
                                        <string>436.IBPluginDependency</string>
                                        <string>437.IBPluginDependency</string>
                                        <string>438.IBPluginDependency</string>
-                                       <string>452.IBPluginDependency</string>
-                                       <string>453.IBPluginDependency</string>
-                                       <string>454.IBPluginDependency</string>
-                                       <string>455.IBPluginDependency</string>
-                                       <string>456.IBPluginDependency</string>
-                                       <string>462.IBPluginDependency</string>
+                                       <string>467.IBPluginDependency</string>
+                                       <string>468.IBPluginDependency</string>
+                                       <string>469.IBPluginDependency</string>
+                                       <string>470.IBPluginDependency</string>
+                                       <string>472.IBPluginDependency</string>
+                                       <string>477.IBPluginDependency</string>
+                                       <string>484.IBPluginDependency</string>
                                        <string>56.IBPluginDependency</string>
                                        <string>56.ImportedFromIB2</string>
                                        <string>57.IBPluginDependency</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+                                       <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="9"/>
                                        <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
                                        <reference ref="9"/>
                                </object>
                        </object>
                        <nil key="sourceID"/>
-                       <int key="maxID">466</int>
+                       <int key="maxID">487</int>
                </object>
                <object class="IBClassDescriber" key="IBDocument.Classes">
                        <object class="NSMutableArray" key="referencedPartialClassDescriptions">
                                        </object>
                                </object>
                                <object class="IBPartialClassDescription">
-                                       <string key="className">PlaylistTableModel</string>
+                                       <string key="className">PlaylistModel</string>
                                        <string key="superclassName">NSObject</string>
                                        <object class="NSMutableDictionary" key="outlets">
-                                               <string key="NS.key.0">tableView</string>
+                                               <string key="NS.key.0">outlineView</string>
                                                <string key="NS.object.0">id</string>
                                        </object>
                                        <reference key="sourceIdentifier" ref="344772374"/>
index 83877258349c7d5fb4f474b6f1af383f99fa44e2..c3132908f6d2fc370b17303818faf77eb961fb71 100644 (file)
@@ -9,7 +9,7 @@
        <key>CFBundleIconFile</key>
        <string></string>
        <key>CFBundleIdentifier</key>
-       <string>com.yourcompany.notipod</string>
+       <string>au.net.delx.notipod</string>
        <key>CFBundleInfoDictionaryVersion</key>
        <string>6.0</string>
        <key>CFBundleName</key>
index bb810ba38c50b4c0ff3c077ed8d2794da2b728b3..68bb1a11d1d15c20f109c4d0636bb7c9c2b111ca 100644 (file)
@@ -10,25 +10,58 @@ from PyObjCTools import AppHelper
 import libsyncitunes
 
 
-class PlaylistTableModel(NSObject):
-       tableView = objc.IBOutlet()
+class PlaylistModel(NSObject):
+       outlineView = objc.IBOutlet()
 
        def awakeFromNib(self):
-               self.playlists = []
-               self.tableView.setDataSource_(self)
-       
+               self.root = []
+               self.playlists = {}
+               self.outlineView.setDataSource_(self)
+
        def setPlaylists(self, playlists):
+               self.root = []
                self.playlists = playlists
-               self.tableView.reloadData()
-
-       def tableView_objectValueForTableColumn_row_(self, tableView, col, row):
-               assert 0 <= row < len(self.playlists)
-               return self.playlists[row]
-
-       def numberOfRowsInTableView_(self, tableView):
-               print "get number of rows", len(self.playlists)
-               return len(self.playlists)
-
+               for playlist in self.playlists:
+                       if playlist.parent is None:
+                               self.root.append(playlist)
+               self.outlineView.reloadData()
+
+       def outlineView_child_ofItem_(self, _, childIndex, playlist):
+               if playlist == None:
+                       return self.root[childIndex]
+               else:
+                       return playlist.children[childIndex]
+
+       def outlineView_isItemExpandable_(self, _, playlist):
+               if playlist == None:
+                       return True
+               else:
+                       return len(playlist.children) > 0
+
+       def outlineView_numberOfChildrenOfItem_(self, _, playlist):
+               if playlist == None:
+                       return len(self.root)
+               else:
+                       return len(playlist.children)
+
+       def outlineView_objectValueForTableColumn_byItem_(self, _, col, playlist):
+               col = col.identifier() if col else "playlist"
+
+               if col == "selected":
+                       selected = NSApp.delegate().playlists()
+                       return playlist.pid in selected
+               if col == None or col == "playlist":
+                       return playlist.name
+
+       def outlineView_setObjectValue_forTableColumn_byItem_(self, _, v, col, playlist):
+               col = col.identifier() if col else "playlist"
+
+               if col != "selected":
+                       return
+               if v:
+                       NSApp.delegate().addPlaylist_(playlist.pid)
+               else:
+                       NSApp.delegate().delPlaylist_(playlist.pid)
 
 
 class NotiPodController(NSObject):
@@ -40,10 +73,9 @@ class NotiPodController(NSObject):
 
        def awakeFromNib(self):
                self.performSelectorInBackground_withObject_(self.loadLibrary, None)
-               print "awakeFromNib"
        
        def finishLoading(self):
-               self.playlistModel.setPlaylists(self.library.list_playlists())
+               self.playlistModel.setPlaylists(self.library.get_playlists())
                self.folderPopup.addItemsWithTitles_(NSApp.delegate().folders())
 
        def loadLibrary(self):
@@ -89,21 +121,14 @@ class NotiPodController(NSObject):
 class NotiPodAppDelegate(NSObject):
 
        # Delegate methods
-
        def applicationWillFinishLaunching_(self, _):
-               print "loading prefs"
-               prefs = NSUserDefaults.standardUserDefaults()
-               self._playlists = prefs.stringArrayForKey_("playlists")
-               self._folders = prefs.stringArrayForKey_("folders")
-               print "folders", self._folders
-               print "playlists", self._playlists
+               pass
 
        def applicationDidFinishLaunching_(self, _):
                pass
 
        def applicationWillTerminate_(self, _):
-               prefs = NSUserDefaults.standardUserDefaults()
-               prefs.synchronize()
+               self.prefs().synchronize()
 
        def applicationShouldTerminateAfterLastWindowClosed_(self, _):
                return True
@@ -111,23 +136,36 @@ class NotiPodAppDelegate(NSObject):
 
        # Public accessors
 
+       def prefs(self):
+               return NSUserDefaults.standardUserDefaults()
+
+       def _getArray(self, key):
+               res = self.prefs().stringArrayForKey_(key)
+               return list(res) if res else []
+
+       def _saveArray(self, key, array):
+               self.prefs().setObject_forKey_(array, key)
+
        def playlists(self):
-               return self._playlists
+               return self._getArray("playlists")
 
        def folders(self):
-               return self._folders or []
+               return self._getArray("folders")
 
        def addFolder_(self, folder):
-               self._folders.insert(0, folder)
+               folders = self.folders()
+               folders.append(folder)
+               self._saveArray("folders", folders)
+
+       def delPlaylist_(self, playlist):
+               playlists = self.playlists()
+               playlists.remove(playlist)
+               self._saveArray("playlists", playlists)
 
-       def hasPlaylist_(self, playlist):
-               return playlist in self._playlists
-       
-       def removePlaylist_(self, playlist):
-               self._playlists.remove(playlist)
-       
        def addPlaylist_(self, playlist):
-               self._playlists.append(playlist)
+               playlists = self.playlists()
+               playlists.append(playlist)
+               self._saveArray("playlists", playlists)
 
 
 
index 096abc2ab6ecd06cd0f53c88bcac3a5a0ac665e7..7e955ad72def6fba3b5e55ef4561d931d40bcfdf 100644 (file)
@@ -22,11 +22,16 @@ def read_plist(filename):
                raise TypeError(errStr)
        return plist
 
-class Playlist(object):
-       def __init__(self, name, tracks, parent=None):
+class Playlist(NSObject):
+       def init(self):
+               return self
+
+       def set(self, name, pid, tracks, parent):
                self.name = name
+               self.pid = pid
                self.children = []
-               self.tracks = tracks
+               self.tracks = []
+               self.parent = parent
                if parent is not None:
                        parent.children.append(self)
 
@@ -39,25 +44,35 @@ class ITunesLibrary(NSObject):
                plist = read_plist(os.path.expanduser(filename))
                self.folder = self.loc2name(plist["Music Folder"])
                pl_tracks = plist["Tracks"]
-               self.playlists = []
+               self.playlists = {}
                for pl_playlist in plist["Playlists"]:
-                       self.playlists.append(self.make_playlist(pl_playlist, pl_tracks))
+                       playlist = self.make_playlist(pl_playlist, pl_tracks)
+                       self.playlists[playlist.pid] = playlist
                return self
 
        def loc2name(self, location):
                return urllib.splithost(urllib.splittype(urllib.unquote(location))[1])[1]
        
        def make_playlist(self, pl_playlist, pl_tracks):
+###            print pl_playlist
                name = pl_playlist["Name"]
+               pid = pl_playlist["Playlist Persistent ID"]
+               parent = None
+               try:
+                       parent_pid = pl_playlist["Parent Persistent ID"]
+                       parent = self.playlists.get(parent_pid)
+               except KeyError:
+                       pass
                tracks = []
                for item in pl_playlist.get("Playlist Items", []):
                        trackID = item["Track ID"]
                        filename = str(pl_tracks[str(trackID)]["Location"])
                        filename = self.loc2name(filename)
-                       filename = filename[len(self.folder):]
                        filename = eval(repr(filename).lstrip("u")).decode("utf-8")
                        tracks.append(filename)
-               return Playlist(name, tracks)
+               playlist = Playlist.alloc().init()
+               playlist.set(name, pid, tracks, parent)
+               return playlist
 
        def has_playlist(self, playlist):
                for p in self.playlists:
@@ -69,8 +84,8 @@ class ITunesLibrary(NSObject):
                playlist = [p for p in self.playlists if p.name == name][0]
                return playlist.tracks
 
-       def list_playlists(self):
-               return [p.name for p in self.playlists]
+       def get_playlists(self):
+               return self.playlists.values()
 
        def outlineView_numberOfChildrenOfItem_(self, view, item):
                if item == None: