2 # Copyright 2009 James Bunton <jamesbunton@fastmail.fm>
3 # Licensed for distribution under the GPL version 2, check COPYING for details
5 from Foundation
import *
11 class NotiPodController(NSObject
):
12 playlistView
= objc
.IBOutlet()
13 folderPopup
= objc
.IBOutlet()
14 window
= objc
.IBOutlet()
15 loadingSheet
= objc
.IBOutlet()
18 def awakeFromNib(self
):
19 ### self.loadLibrary()
20 self
.performSelectorInBackground_withObject_(self
.loadLibrary
, None)
23 def finishLoading(self
):
24 self
.playlistView
.setDataSource_(self
.library
)
25 self
.folderPopup
.addItemsWithTitles_(NSApp
.delegate().folders())
27 def loadLibrary(self
):
28 pool
= NSAutoreleasePool
.alloc().init()
29 NSApp
.beginSheet_modalForWindow_modalDelegate_didEndSelector_contextInfo_(self
.loadingSheet
, self
.window
, None, None, None)
30 self
.library
= itunes
.Library
.alloc().init()
31 self
.loadingSheet
.close()
32 self
.performSelectorOnMainThread_withObject_waitUntilDone_(self
.finishLoading
, None, False)
35 @objc.signature("v@:@ii")
36 def selectFolderEnd_returnCode_contextInfo_(self
, panel
, ret
, _
):
38 assert len(panel
.filenames()) == 1
39 folder
= panel
.filenames()[0]
40 ### NSApp.delegate().addFolder_(folder)
41 self
.folderPopup
.insertItemWithTitle_atIndex_(folder
, 2)
42 self
.folderPopup
.selectItemAtIndex_(2)
45 def doSelectFolder_(self
, sender
):
48 folders
= NSApp
.delegate().folders()
53 panel
= NSOpenPanel
.openPanel()
54 panel
.setCanChooseFiles_(False)
55 panel
.setCanChooseDirectories_(True)
56 panel
.setAllowsMultipleSelection_(False)
57 panel
.beginSheetForDirectory_file_types_modalForWindow_modalDelegate_didEndSelector_contextInfo_(folder
, None, None, self
.window
, self
, self
.selectFolderEnd_returnCode_contextInfo_
, None)
63 def doSync_(self
, sender
):