X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=jamaui%2Fplaylists.py;h=9f70de4f6b3bb2668b6cf89aecbd72a8c7cceb31;hb=9c1d9eef21a957d26a71c20f90c8fd5aee7b0f15;hp=3012e2958897402fffd0bc904ef7af0573a812a3;hpb=f4abea53ba1a450686cff76a33601ff5ba3fa084;p=jamaendo diff --git a/jamaui/playlists.py b/jamaui/playlists.py index 3012e29..9f70de4 100644 --- a/jamaui/playlists.py +++ b/jamaui/playlists.py @@ -29,6 +29,7 @@ except: import jamaendo from settings import settings import logging +from albumlist import PlaylistList log = logging.getLogger(__name__) @@ -99,47 +100,40 @@ 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() - cell.set_property('xalign', 1.0) - 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) + player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO) + player.set_label("Delete playlists") + player.connect("clicked", self.on_delete_playlists) + self.menu.append(player) + self.menu.show_all() + self.set_app_menu(self.menu) + + def on_delete_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()