X-Git-Url: http://git.maemo.org/git/?p=jamaendo;a=blobdiff_plain;f=jamaui%2Fshowalbum.py;h=218d99834234b31a732089493a9e3e6215e68b72;hp=bfe6e8fdb67a48b5b4b96656c79c2776c58b43a5;hb=ae451be237b4622abd934a611f5e2dd4d8aec883;hpb=ef38e67e9c769af43ed190f810daf8c2e164a125 diff --git a/jamaui/showalbum.py b/jamaui/showalbum.py index bfe6e8f..218d998 100644 --- a/jamaui/showalbum.py +++ b/jamaui/showalbum.py @@ -22,14 +22,21 @@ # (based on http://pygstdocs.berlios.de/pygst-tutorial/seeking.html) # import gtk -import hildon +import cgi +try: + import hildon +except: + import helldon as hildon import jamaendo +from player import Playlist from playerwindow import open_playerwindow from settings import settings from postoffice import postoffice import util import logging from albumlist import TrackList +from playlists import add_to_playlist + import webbrowser log = logging.getLogger(__name__) @@ -54,26 +61,22 @@ class ShowAlbum(hildon.StackableWindow): self.download = self.make_imagebutton('download', self.on_download) self.favorite = self.make_imagebutton('favorite', self.on_favorite) self.license = self.make_imagebutton('license', self.on_license) - self.playbtn = hildon.GtkButton(gtk.HILDON_SIZE_FINGER_HEIGHT) - self.playbtn.set_label("Play album") - self.playbtn.set_border_width(0) - self.playbtn.connect('clicked', self.on_play) vbox2 = gtk.VBox() self.albumname = gtk.Label() - self.albumname.set_markup('%s'%(album.name)) + self.albumname.set_markup('%s'%(cgi.escape(album.name))) self.trackarea = hildon.PannableArea() self.tracks = TrackList(numbers=True) self.tracks.connect('row-activated', self.row_activated) - for track in jamaendo.get_tracks(album.ID): + self.tracklist = jamaendo.get_tracks(album.ID) + for track in self.tracklist: self.tracks.add_track(track) top_hbox.pack_start(vbox1, False) top_hbox.pack_start(vbox2, True) vbox1.pack_start(self.cover, True) - vbox1.pack_start(self.playbtn, False) vbox1.pack_start(self.bbox, False) self.bbox.add(self.goto_artist) self.bbox.add(self.download) @@ -90,10 +93,8 @@ class ShowAlbum(hildon.StackableWindow): self.create_menu() - self.show_all() - def create_menu(self): - def on_player(): + def on_player(*args): from playerwindow import open_playerwindow open_playerwindow() self.menu = hildon.AppMenu() @@ -101,6 +102,10 @@ class ShowAlbum(hildon.StackableWindow): player.set_label("Open player") player.connect("clicked", on_player) self.menu.append(player) + player = hildon.GtkButton(gtk.HILDON_SIZE_AUTO) + player.set_label("Add to playlist") + player.connect("clicked", self.on_add_to_playlist) + self.menu.append(player) self.menu.show_all() self.set_app_menu(self.menu) @@ -111,6 +116,10 @@ class ShowAlbum(hildon.StackableWindow): if albumid == self.album.ID and size == 300: self.cover.set_from_file(cover) + + def on_add_to_playlist(self, button, user_data=None): + add_to_playlist(self, self.tracklist) + def make_imagebutton(self, name, cb): btn = hildon.GtkButton(gtk.HILDON_SIZE_AUTO) btn.set_relief(gtk.RELIEF_NONE) @@ -150,7 +159,10 @@ class ShowAlbum(hildon.StackableWindow): def row_activated(self, treeview, path, view_column): _id = self.tracks.get_track_id(path) - log.debug("clicked %s", _id) + playlist = Playlist(self.tracklist) + playlist.jump_to(_id) + wnd = open_playerwindow() + wnd.play_tracks(playlist) def open_item(self, item): if isinstance(item, jamaendo.Album):