X-Git-Url: http://git.maemo.org/git/?p=jamaendo;a=blobdiff_plain;f=jamaui%2Fplaylists.py;h=cd8edaccc58af5ee71e6252c2c0244809e42599c;hp=714ec55d4748042b5e3ab2887583b3258dea5966;hb=1db69a594f71e3b80c92d17ec171f3d6ac866bfb;hpb=593d25b94de93d4d989e1a5d5fce1f1aab2baa2f diff --git a/jamaui/playlists.py b/jamaui/playlists.py index 714ec55..cd8edac 100644 --- a/jamaui/playlists.py +++ b/jamaui/playlists.py @@ -22,10 +22,14 @@ # (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html) # import gtk -import hildon +try: + import hildon +except: + import helldon as hildon import jamaendo from settings import settings import logging +from albumlist import PlaylistList log = logging.getLogger(__name__) @@ -39,6 +43,8 @@ def _show_banner(parent, message, timeout = 2000): banner = hildon.hildon_banner_show_information(parent, '', message) banner.set_timeout(2000) +show_banner = _show_banner + from listbox import ListDialog def add_to_playlist(wnd, track): @@ -96,46 +102,49 @@ class PlaylistsWindow(hildon.StackableWindow): self.set_title("Playlists") self.panarea = hildon.PannableArea() - - (self.COL_NAME, self.COL_INFO) = range(2) - self.store = gtk.ListStore(str, str) - self.treeview = gtk.TreeView() - self.treeview.set_model(self.store) - - col = gtk.TreeViewColumn('Name') - self.treeview.append_column(col) - cell = gtk.CellRendererText() - col.pack_start(cell, True) - col.add_attribute(cell, 'text', self.COL_NAME) - self.treeview.set_search_column(self.COL_NAME) - col.set_sort_column_id(self.COL_NAME) - - col = gtk.TreeViewColumn('Info') - self.treeview.append_column(col) - cell = gtk.CellRendererText() - col.pack_start(cell, True) - col.add_attribute(cell, 'text', self.COL_INFO) - - self.treeview.connect('row-activated', self.row_activated) - - self.panarea.add(self.treeview) - + self.playlistlist = PlaylistList() + self.playlistlist.empty_message = "No playlists" + self.playlistlist.connect('row-activated', self.row_activated) + self.panarea.add(self.playlistlist) self.add(self.panarea) - def trackcount(lst): - ln = len(lst) - if ln > 1: - return "(%d tracks)"%(ln) - elif ln == 1: - return "(1 track)" - return "(empty)" - for key, lst in sorted(list(settings.playlists.iteritems())): - self.store.append([key, trackcount(lst)]) + self.playlistlist.add_playlist(key, lst) + self.playlistlist.set_loading(False) + + self.create_menu() + + def create_menu(self): + def on_player(*args): + from playerwindow import open_playerwindow + open_playerwindow() + self.menu = hildon.AppMenu() + player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO) + player.set_label("Open player") + player.connect("clicked", on_player) + self.menu.append(player) + # bah, I haven't decided how I want to do this yet + # lets just hide it for now + #player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO) + #player.set_label("Manage playlists") + #player.connect("clicked", self.on_manage_playlists) + #self.menu.append(player) + #player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO) + #player.set_label("Export...") + #player.connect("clicked", self.on_export_playlists) + #self.menu.append(player) + self.menu.show_all() + self.set_app_menu(self.menu) + + def on_manage_playlists(self, *args): + _show_banner(self, "TODOO") + + def on_export_playlists(self, *args): + _show_banner(self, "TODOO") def row_activated(self, treeview, path, view_column): - name = self.store.get(self.store.get_iter(path), self.COL_NAME)[0] - pl = settings.get_playlist(name) + sel = self.playlistlist.get_playlist_name(path) + pl = settings.get_playlist(sel) if pl: from playerwindow import open_playerwindow wnd = open_playerwindow()