<object class="NSTextField" id="524945726">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{17, 135}, {254, 17}}</string>
+ <string key="NSFrame">{{17, 125}, {254, 17}}</string>
<reference key="NSSuperview" ref="439893737"/>
<bool key="NSEnabled">YES</bool>
<object class="NSTextFieldCell" key="NSCell" id="959016606">
<object class="NSPopUpButton" id="997567970">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">268</int>
- <string key="NSFrame">{{29, 103}, {206, 26}}</string>
+ <string key="NSFrame">{{29, 93}, {335, 26}}</string>
<reference key="NSSuperview" ref="439893737"/>
<bool key="NSEnabled">YES</bool>
<object class="NSPopUpButtonCell" key="NSCell" id="467826865">
<reference key="NSTextColor" ref="888276067"/>
</object>
</object>
- <object class="NSScrollView" id="351141068">
+ <object class="NSScrollView" id="153822869">
<reference key="NSNextResponder" ref="439893737"/>
<int key="NSvFlags">268</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSClipView" id="571230317">
- <reference key="NSNextResponder" ref="351141068"/>
+ <object class="NSClipView" id="593099093">
+ <reference key="NSNextResponder" ref="153822869"/>
<int key="NSvFlags">2304</int>
<object class="NSMutableArray" key="NSSubviews">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSOutlineView" id="371935982">
- <reference key="NSNextResponder" ref="571230317"/>
+ <object class="NSOutlineView" id="1032464155">
+ <reference key="NSNextResponder" ref="593099093"/>
<int key="NSvFlags">256</int>
<string key="NSFrameSize">{327, 338}</string>
- <reference key="NSSuperview" ref="571230317"/>
+ <reference key="NSSuperview" ref="593099093"/>
<bool key="NSEnabled">YES</bool>
<object class="_NSCornerView" key="NSCornerView">
<nil key="NSNextResponder"/>
</object>
<object class="NSMutableArray" key="NSTableColumns">
<bool key="EncodedWithXMLCoder">YES</bool>
- <object class="NSTableColumn" id="50298789">
+ <object class="NSTableColumn" id="428715212">
<string key="NSIdentifier">selected</string>
<double key="NSWidth">4.000000e+01</double>
<double key="NSMinWidth">1.600000e+01</double>
<int key="NSColorSpace">3</int>
<bytes key="NSWhite">MC4zMzMzMzI5ODU2AA</bytes>
</object>
- <object class="NSColor" key="NSTextColor" id="204738612">
+ <object class="NSColor" key="NSTextColor" id="1008090455">
<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">
+ <object class="NSButtonCell" key="NSDataCell" id="824905231">
<int key="NSCellFlags">67239424</int>
<int key="NSCellFlags2">131072</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="26"/>
- <reference key="NSControlView" ref="371935982"/>
+ <reference key="NSControlView" ref="1032464155"/>
<int key="NSButtonFlags">1211912703</int>
<int key="NSButtonFlags2">130</int>
<object class="NSCustomResource" key="NSNormalImage">
<int key="NSResizingMask">1</int>
<bool key="NSIsResizeable">YES</bool>
<bool key="NSIsEditable">YES</bool>
- <reference key="NSTableView" ref="371935982"/>
+ <reference key="NSTableView" ref="1032464155"/>
</object>
- <object class="NSTableColumn" id="296871537">
+ <object class="NSTableColumn" id="403831249">
<string key="NSIdentifier">playlist</string>
- <double key="NSWidth">2.710000e+02</double>
+ <double key="NSWidth">2.810000e+02</double>
<double key="NSMinWidth">1.000000e+01</double>
<double key="NSMaxWidth">3.402823e+38</double>
<object class="NSTableHeaderCell" key="NSHeaderCell">
<bytes key="NSWhite">MQA</bytes>
</object>
</object>
- <reference key="NSTextColor" ref="204738612"/>
+ <reference key="NSTextColor" ref="1008090455"/>
</object>
- <object class="NSTextFieldCell" key="NSDataCell" id="286239095">
+ <object class="NSTextFieldCell" key="NSDataCell" id="825348797">
<int key="NSCellFlags">337772096</int>
<int key="NSCellFlags2">2048</int>
<string key="NSContents"/>
<reference key="NSSupport" ref="822023840"/>
- <reference key="NSControlView" ref="371935982"/>
+ <reference key="NSControlView" ref="1032464155"/>
<object class="NSColor" key="NSBackgroundColor" id="928689894">
<int key="NSColorSpace">6</int>
<string key="NSCatalogName">System</string>
</object>
<int key="NSResizingMask">1</int>
<bool key="NSIsResizeable">YES</bool>
- <reference key="NSTableView" ref="371935982"/>
+ <reference key="NSTableView" ref="1032464155"/>
</object>
</object>
<double key="NSIntercellSpacingWidth">3.000000e+00</double>
</object>
</object>
<double key="NSRowHeight">1.700000e+01</double>
- <int key="NSTvFlags">-759169024</int>
+ <int key="NSTvFlags">46137344</int>
<int key="NSColumnAutoresizingStyle">4</int>
<int key="NSDraggingSourceMaskForLocal">15</int>
<int key="NSDraggingSourceMaskForNonLocal">0</int>
- <bool key="NSAllowsTypeSelect">YES</bool>
+ <bool key="NSAllowsTypeSelect">NO</bool>
<int key="NSTableViewDraggingDestinationStyle">1</int>
</object>
</object>
<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="NSSuperview" ref="153822869"/>
+ <reference key="NSNextKeyView" ref="1032464155"/>
+ <reference key="NSDocView" ref="1032464155"/>
<reference key="NSBGColor" ref="928689894"/>
<int key="NScvFlags">4</int>
</object>
- <object class="NSScroller" id="174881734">
- <reference key="NSNextResponder" ref="351141068"/>
+ <object class="NSScroller" id="330926440">
+ <reference key="NSNextResponder" ref="153822869"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{313, 1}, {15, 323}}</string>
- <reference key="NSSuperview" ref="351141068"/>
- <reference key="NSTarget" ref="351141068"/>
+ <reference key="NSSuperview" ref="153822869"/>
+ <reference key="NSTarget" ref="153822869"/>
<string key="NSAction">_doScroller:</string>
- <double key="NSPercent">9.556213e-01</double>
+ <double key="NSPercent">9.970502e-01</double>
</object>
- <object class="NSScroller" id="9933412">
- <reference key="NSNextResponder" ref="351141068"/>
+ <object class="NSScroller" id="646502877">
+ <reference key="NSNextResponder" ref="153822869"/>
<int key="NSvFlags">-2147483392</int>
<string key="NSFrame">{{1, 324}, {327, 15}}</string>
- <reference key="NSSuperview" ref="351141068"/>
+ <reference key="NSSuperview" ref="153822869"/>
<int key="NSsFlags">1</int>
- <reference key="NSTarget" ref="351141068"/>
+ <reference key="NSTarget" ref="153822869"/>
<string key="NSAction">_doScroller:</string>
- <double key="NSPercent">9.159664e-01</double>
+ <double key="NSPercent">9.969512e-01</double>
</object>
</object>
<string key="NSFrame">{{32, 160}, {329, 340}}</string>
<reference key="NSSuperview" ref="439893737"/>
- <reference key="NSNextKeyView" ref="571230317"/>
+ <reference key="NSNextKeyView" ref="593099093"/>
<int key="NSsFlags">562</int>
- <reference key="NSVScroller" ref="174881734"/>
- <reference key="NSHScroller" ref="9933412"/>
- <reference key="NSContentView" ref="571230317"/>
+ <reference key="NSVScroller" ref="330926440"/>
+ <reference key="NSHScroller" ref="646502877"/>
+ <reference key="NSContentView" ref="593099093"/>
<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="567503449">
- <string key="NSClassName">NotiPodController</string>
- </object>
<object class="NSCustomObject" id="719278169">
<string key="NSClassName">NotiPodAppDelegate</string>
</object>
<string key="NSScreenRect">{{0, 0}, {1024, 746}}</string>
<string key="NSMaxSize">{3.40282e+38, 3.40282e+38}</string>
</object>
- <object class="NSCustomObject" id="354550651">
+ <object class="NSCustomObject" id="792415288">
<string key="NSClassName">PlaylistModel</string>
</object>
+ <object class="NSCustomObject" id="236606853">
+ <string key="NSClassName">FolderModel</string>
+ </object>
</object>
<object class="IBObjectContainer" key="IBDocument.Objects">
<object class="NSMutableArray" key="connectionRecords">
<int key="connectionID">370</int>
</object>
<object class="IBConnectionRecord">
- <object class="IBActionConnection" key="connection">
- <string key="label">doSync:</string>
- <reference key="source" ref="567503449"/>
- <reference key="destination" ref="703636579"/>
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">delegate</string>
+ <reference key="source" ref="1050"/>
+ <reference key="destination" ref="719278169"/>
</object>
- <int key="connectionID">407</int>
+ <int key="connectionID">435</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
- <string key="label">window</string>
- <reference key="source" ref="567503449"/>
- <reference key="destination" ref="972006081"/>
+ <string key="label">outlineView</string>
+ <reference key="source" ref="792415288"/>
+ <reference key="destination" ref="1032464155"/>
</object>
- <int key="connectionID">420</int>
+ <int key="connectionID">478</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">folderPopup</string>
+ <reference key="source" ref="236606853"/>
+ <reference key="destination" ref="997567970"/>
+ </object>
+ <int key="connectionID">493</int>
</object>
<object class="IBConnectionRecord">
<object class="IBActionConnection" key="connection">
<string key="label">doSelectFolder:</string>
- <reference key="source" ref="567503449"/>
- <reference key="destination" ref="178047326"/>
+ <reference key="source" ref="236606853"/>
+ <reference key="destination" ref="997567970"/>
</object>
- <int key="connectionID">421</int>
+ <int key="connectionID">495</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
- <string key="label">loadingSheet</string>
- <reference key="source" ref="567503449"/>
- <reference key="destination" ref="92204650"/>
+ <string key="label">window</string>
+ <reference key="source" ref="236606853"/>
+ <reference key="destination" ref="972006081"/>
</object>
- <int key="connectionID">434</int>
+ <int key="connectionID">496</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
- <string key="label">delegate</string>
- <reference key="source" ref="1050"/>
- <reference key="destination" ref="719278169"/>
+ <string key="label">window</string>
+ <reference key="source" ref="719278169"/>
+ <reference key="destination" ref="972006081"/>
</object>
- <int key="connectionID">435</int>
+ <int key="connectionID">497</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
- <string key="label">folderPopup</string>
- <reference key="source" ref="567503449"/>
- <reference key="destination" ref="997567970"/>
+ <string key="label">playlistModel</string>
+ <reference key="source" ref="719278169"/>
+ <reference key="destination" ref="792415288"/>
</object>
- <int key="connectionID">451</int>
+ <int key="connectionID">498</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
- <string key="label">outlineView</string>
- <reference key="source" ref="354550651"/>
- <reference key="destination" ref="371935982"/>
+ <string key="label">folderModel</string>
+ <reference key="source" ref="719278169"/>
+ <reference key="destination" ref="236606853"/>
</object>
- <int key="connectionID">478</int>
+ <int key="connectionID">499</int>
</object>
<object class="IBConnectionRecord">
<object class="IBOutletConnection" key="connection">
- <string key="label">playlistModel</string>
- <reference key="source" ref="567503449"/>
- <reference key="destination" ref="354550651"/>
+ <string key="label">loadingSheet</string>
+ <reference key="source" ref="719278169"/>
+ <reference key="destination" ref="92204650"/>
</object>
- <int key="connectionID">479</int>
+ <int key="connectionID">500</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">doSync:</string>
+ <reference key="source" ref="719278169"/>
+ <reference key="destination" ref="703636579"/>
+ </object>
+ <int key="connectionID">501</int>
</object>
</object>
<object class="IBMutableOrderedSet" key="objectRecords">
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
<reference ref="818249148"/>
- <reference ref="524945726"/>
- <reference ref="997567970"/>
<reference ref="323617138"/>
<reference ref="703636579"/>
- <reference ref="351141068"/>
+ <reference ref="153822869"/>
+ <reference ref="524945726"/>
+ <reference ref="997567970"/>
</object>
<reference key="parent" ref="972006081"/>
</object>
<reference key="object" ref="1061036965"/>
<reference key="parent" ref="703636579"/>
</object>
- <object class="IBObjectRecord">
- <int key="objectID">404</int>
- <reference key="object" ref="567503449"/>
- <reference key="parent" ref="0"/>
- <string key="objectName">NotiPodController</string>
- </object>
<object class="IBObjectRecord">
<int key="objectID">411</int>
<reference key="object" ref="997567970"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">467</int>
- <reference key="object" ref="351141068"/>
+ <reference key="object" ref="153822869"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="174881734"/>
- <reference ref="9933412"/>
- <reference ref="371935982"/>
+ <reference ref="330926440"/>
+ <reference ref="646502877"/>
+ <reference ref="1032464155"/>
</object>
<reference key="parent" ref="439893737"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">468</int>
- <reference key="object" ref="174881734"/>
- <reference key="parent" ref="351141068"/>
+ <reference key="object" ref="330926440"/>
+ <reference key="parent" ref="153822869"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">469</int>
- <reference key="object" ref="9933412"/>
- <reference key="parent" ref="351141068"/>
+ <reference key="object" ref="646502877"/>
+ <reference key="parent" ref="153822869"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">470</int>
- <reference key="object" ref="371935982"/>
+ <reference key="object" ref="1032464155"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="50298789"/>
- <reference ref="296871537"/>
+ <reference ref="428715212"/>
+ <reference ref="403831249"/>
</object>
- <reference key="parent" ref="351141068"/>
+ <reference key="parent" ref="153822869"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">472</int>
- <reference key="object" ref="50298789"/>
+ <reference key="object" ref="428715212"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="811465044"/>
+ <reference ref="824905231"/>
</object>
- <reference key="parent" ref="371935982"/>
+ <reference key="parent" ref="1032464155"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">477</int>
- <reference key="object" ref="354550651"/>
+ <reference key="object" ref="792415288"/>
<reference key="parent" ref="0"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">484</int>
- <reference key="object" ref="811465044"/>
- <reference key="parent" ref="50298789"/>
+ <reference key="object" ref="824905231"/>
+ <reference key="parent" ref="428715212"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">485</int>
- <reference key="object" ref="296871537"/>
+ <reference key="object" ref="403831249"/>
<object class="NSMutableArray" key="children">
<bool key="EncodedWithXMLCoder">YES</bool>
- <reference ref="286239095"/>
+ <reference ref="825348797"/>
</object>
- <reference key="parent" ref="371935982"/>
+ <reference key="parent" ref="1032464155"/>
</object>
<object class="IBObjectRecord">
<int key="objectID">486</int>
- <reference key="object" ref="286239095"/>
- <reference key="parent" ref="296871537"/>
+ <reference key="object" ref="825348797"/>
+ <reference key="parent" ref="403831249"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">490</int>
+ <reference key="object" ref="236606853"/>
+ <reference key="parent" ref="0"/>
</object>
</object>
</object>
<string>394.IBPluginDependency</string>
<string>395.IBPluginDependency</string>
<string>396.IBPluginDependency</string>
- <string>404.IBPluginDependency</string>
<string>411.IBPluginDependency</string>
<string>412.IBPluginDependency</string>
<string>413.IBPluginDependency</string>
<string>472.IBPluginDependency</string>
<string>477.IBPluginDependency</string>
<string>484.IBPluginDependency</string>
+ <string>490.IBPluginDependency</string>
<string>56.IBPluginDependency</string>
<string>56.ImportedFromIB2</string>
<string>57.IBPluginDependency</string>
<reference ref="9"/>
<string>{74, 862}</string>
<string>{{529, 476}, {148, 20}}</string>
- <string>{{253, 91}, {381, 545}}</string>
- <string>{{253, 91}, {381, 545}}</string>
+ <string>{{238, 116}, {381, 545}}</string>
+ <string>{{238, 116}, {381, 545}}</string>
<reference ref="9"/>
<string>{{505, 213}, {252, 190}}</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>
- <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
<string>{{89, 581}, {211, 33}}</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>
<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">487</int>
+ <int key="maxID">502</int>
</object>
<object class="IBClassDescriber" key="IBDocument.Classes">
<object class="NSMutableArray" key="referencedPartialClassDescriptions">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="IBPartialClassDescription">
- <string key="className">NotiPodAppDelegate</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier" id="344772374">
- <string key="majorKey">IBProjectSource</string>
- <string key="minorKey">NotiPod.py</string>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NotiPodAppDelegate</string>
- <string key="superclassName">NSObject</string>
- <object class="IBClassDescriptionSource" key="sourceIdentifier">
- <string key="majorKey">IBUserSource</string>
- <string key="minorKey"/>
- </object>
- </object>
- <object class="IBPartialClassDescription">
- <string key="className">NotiPodController</string>
+ <string key="className">FolderModel</string>
<string key="superclassName">NSObject</string>
<object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">doSelectFolder:</string>
+ <string key="NS.object.0">id</string>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
- <string>doSelectFolder:</string>
- <string>doSync:</string>
+ <string>folderPopup</string>
+ <string>window</string>
</object>
<object class="NSMutableArray" key="dict.values">
<bool key="EncodedWithXMLCoder">YES</bool>
<string>id</string>
</object>
</object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="344772374">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">NotiPod.py</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NotiPodAppDelegate</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <string key="NS.key.0">doSync:</string>
+ <string key="NS.object.0">id</string>
+ </object>
<object class="NSMutableDictionary" key="outlets">
<bool key="EncodedWithXMLCoder">YES</bool>
<object class="NSArray" key="dict.sortedKeys">
<bool key="EncodedWithXMLCoder">YES</bool>
- <string>folderPopup</string>
+ <string>folderModel</string>
<string>loadingSheet</string>
<string>playlistModel</string>
<string>window</string>
<reference key="sourceIdentifier" ref="344772374"/>
</object>
<object class="IBPartialClassDescription">
- <string key="className">NotiPodController</string>
+ <string key="className">NotiPodAppDelegate</string>
<string key="superclassName">NSObject</string>
<object class="IBClassDescriptionSource" key="sourceIdentifier">
<string key="majorKey">IBUserSource</string>
# Copyright 2009 James Bunton <jamesbunton@fastmail.fm>
# Licensed for distribution under the GPL version 2, check COPYING for details
+import logging
+
import objc
from Foundation import *
from AppKit import *
if playlist.parent is None:
self.root.append(playlist)
self.outlineView.reloadData()
+ self.outlineView.expandItem_expandChildren_(None, True)
def outlineView_child_ofItem_(self, _, childIndex, playlist):
if playlist == None:
if col != "selected":
return
- if v:
- NSApp.delegate().addPlaylist_(playlist.pid)
- else:
- NSApp.delegate().delPlaylist_(playlist.pid)
+ NSApp.delegate().setPlaylist_selected_(playlist.pid, v)
-class NotiPodController(NSObject):
- playlistModel = objc.IBOutlet()
- folderPopup = objc.IBOutlet()
+class FolderModel(NSObject):
window = objc.IBOutlet()
- loadingSheet = objc.IBOutlet()
-
+ folderPopup = objc.IBOutlet()
def awakeFromNib(self):
- self.performSelectorInBackground_withObject_(self.loadLibrary, None)
-
- def finishLoading(self):
- self.playlistModel.setPlaylists(self.library.get_playlists())
self.folderPopup.addItemsWithTitles_(NSApp.delegate().folders())
+ self.folderPopup.selectItemAtIndex_(2)
- def loadLibrary(self):
- pool = NSAutoreleasePool.alloc().init()
- NSApp.beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo_(self.loadingSheet, self.window, None, None, None)
- self.library = libsyncitunes.ITunesLibrary.alloc().init()
- self.loadingSheet.close()
- self.performSelectorOnMainThread_withObject_waitUntilDone_(self.finishLoading, None, True)
- del pool
+ @objc.IBAction
+ def doSelectFolder_(self, sender):
+ if self.folderPopup.indexOfSelectedItem() >= 2:
+ NSApp.delegate().addFolder_(self.folderPopup.titleOfSelectedItem())
+ return
+ panel = NSOpenPanel.openPanel()
+ panel.setCanChooseFiles_(False)
+ panel.setCanChooseDirectories_(True)
+ panel.setAllowsMultipleSelection_(False)
+ panel.beginSheetForDirectory_file_types_modalForWindow_modalDelegate_didEndSelector_contextInfo_(
+ None, None, [], self.window, self, self.selectFolderEnd_returnCode_contextInfo_, None)
@objc.signature("v@:@ii")
def selectFolderEnd_returnCode_contextInfo_(self, panel, ret, _):
if ret == NSOKButton:
assert len(panel.filenames()) == 1
folder = panel.filenames()[0]
-### NSApp.delegate().addFolder_(folder)
+ NSApp.delegate().addFolder_(folder)
self.folderPopup.insertItemWithTitle_atIndex_(folder, 2)
self.folderPopup.selectItemAtIndex_(2)
- @objc.IBAction
- def doSelectFolder_(self, sender):
- print "select folder"
- try:
- folders = NSApp.delegate().folders()
- if len(folders) > 0:
- folder = folders[0]
- else:
- folder = None
- panel = NSOpenPanel.openPanel()
- panel.setCanChooseFiles_(False)
- panel.setCanChooseDirectories_(True)
- panel.setAllowsMultipleSelection_(False)
- panel.beginSheetForDirectory_file_types_modalForWindow_modalDelegate_didEndSelector_contextInfo_(folder, None, None, self.window, self, self.selectFolderEnd_returnCode_contextInfo_, None)
- except:
- import traceback
- traceback.print_exc()
-
- @objc.IBAction
- def doSync_(self, sender):
- print "hello me"
-
class NotiPodAppDelegate(NSObject):
+ window = objc.IBOutlet()
+ playlistModel = objc.IBOutlet()
+ folderModel = objc.IBOutlet()
+ loadingSheet = objc.IBOutlet()
+
# Delegate methods
def applicationWillFinishLaunching_(self, _):
pass
def applicationDidFinishLaunching_(self, _):
- pass
+ NSApp.beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo_(self.loadingSheet, self.window, None, None, None)
+ self.performSelectorInBackground_withObject_(self.loadFromThread, None)
def applicationWillTerminate_(self, _):
self.prefs().synchronize()
return True
+ def loadFromThread(self):
+ pool = NSAutoreleasePool.alloc().init()
+ self.library = libsyncitunes.ITunesLibrary.alloc().init()
+ self.performSelectorOnMainThread_withObject_waitUntilDone_(self.finishLoading, None, True)
+ del pool
+
+ def finishLoading(self):
+ self.playlistModel.setPlaylists(self.library.get_playlists())
+ NSApp.endSheet_(self.loadingSheet)
+ self.loadingSheet.close()
+
+ @objc.IBAction
+ def doSync_(self, sender):
+ folder = self.folders()[0]
+ playlists = [self.library.get_playlist_pid(pid) for pid in self.playlists()]
+
+ all_tracks = []
+ for playlist in playlists:
+ print playlist.name, playlist.tracks
+ all_tracks.extend(playlist.tracks)
+ libsyncitunes.export_m3u(dry_run=True, dest=folder, path_prefix="",
+ playlist_name=playlist.name, files=playlist.tracks)
+
+ libsyncitunes.sync(dry_run=True,
+ source=self.library.folder, dest=folder, files=all_tracks)
+
+
# Public accessors
def prefs(self):
def addFolder_(self, folder):
folders = self.folders()
- folders.append(folder)
+ while folder in folders:
+ folders.remove(folder)
+ folders.insert(0, folder)
+ folders = folders[:10]
self._saveArray("folders", folders)
- def delPlaylist_(self, playlist):
+ def setPlaylist_selected_(self, playlist, selected):
playlists = self.playlists()
- playlists.remove(playlist)
- self._saveArray("playlists", playlists)
-
- def addPlaylist_(self, playlist):
- playlists = self.playlists()
- playlists.append(playlist)
- self._saveArray("playlists", playlists)
+ if selected:
+ playlists.append(playlist)
+ else:
+ playlists.remove(playlist)
+ playlists = list(set(playlists))
+ self._saveArray("playlists", list(set(playlists)))
+def main():
+ logging.basicConfig(format="%(levelname)s: %(message)s")
+ logging.getLogger().setLevel(logging.DEBUG)
+ AppHelper.runEventLoop()
-AppHelper.runEventLoop()
+if __name__ == "__main__":
+ main()