def __init__(self):
hildon.StackableWindow.__init__(self)
- self.set_title("jamaendo")
+ self.set_title("Jamaendo")
PlayerWindow.instance = self
self.add_stock_button(btns, gtk.STOCK_MEDIA_STOP, self.on_stop)
self.add_stock_button(btns, gtk.STOCK_MEDIA_NEXT, self.on_next)
+ self.controls = btns
+
self.add(vbox)
postoffice.connect('album-cover', self, self.set_album_cover)
def create_menu(self):
self.menu = hildon.AppMenu()
- def to_artist(*args):
+ def to_artist():
from showartist import ShowArtist
- track = self.playlist.current()
- artist = jamaendo.get_artist(int(track.artist_id))
- wnd = ShowArtist(artist)
- wnd.show_all()
- def to_album(*args):
+ try:
+ hildon.hildon_gtk_window_set_progress_indicator(self, 1)
+ track = self.playlist.current()
+ artist = jamaendo.get_artist(int(track.artist_id))
+ wnd = ShowArtist(artist)
+ wnd.show_all()
+ finally:
+ hildon.hildon_gtk_window_set_progress_indicator(self, 0)
+ def to_album():
from showalbum import ShowAlbum
- track = self.playlist.current()
- album = jamaendo.get_album(int(track.album_id))
- wnd = ShowAlbum(album)
- wnd.show_all()
+ try:
+ hildon.hildon_gtk_window_set_progress_indicator(self, 1)
+ track = self.playlist.current()
+ album = jamaendo.get_album(int(track.album_id))
+ wnd = ShowAlbum(album)
+ wnd.show_all()
+ finally:
+ hildon.hildon_gtk_window_set_progress_indicator(self, 0)
b = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
b.set_label("Artist")
- b.connect("clicked", to_artist)
+ b.connect("clicked", lambda w: gobject.idle_add(to_artist))
self.menu.append(b)
b = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
b.set_label("Album")
- b.connect("clicked", to_album)
+ b.connect("clicked", lambda w: gobject.idle_add(to_album))
self.menu.append(b)
b = hildon.GtkButton(gtk.HILDON_SIZE_AUTO)
def set_labels(self, track, artist, album, playlist_pos, playlist_size):
if self.playlist.radio_mode:
- ppstr = '<span size="small">Radio: %s</span>'%(cgi.escape(self.playlist.radio_name))
+ ppstr = 'Radio: %s'%(cgi.escape(self.playlist.radio_name))
+ elif playlist_size > 0:
+ ppstr = 'Track %s of %s'%(int(playlist_pos)+1, playlist_size)
else:
- ppstr = '<span font_desc="%s" foreground="%s">Track %s of %s</span>'%(colors.SmallSystemFont(), colors.SecondaryTextColor(), int(playlist_pos)+1, playlist_size)
+ ppstr = "No playlist"
+ ppstr = '<span font_desc="%s" foreground="%s">%s</span>'%(colors.SmallSystemFont(), colors.SecondaryTextColor(), ppstr)
self.playlist_pos.set_markup(ppstr)
self.track.set_markup('<span font_desc="%s">%s</span>'%(colors.LargeSystemFont(), cgi.escape(track)))
self.artist.set_markup('%s'%(cgi.escape(artist)))
self.album.set_markup('<span foreground="%s">%s</span>'%(colors.SecondaryTextColor(), cgi.escape(album)))
+ if not track:
+ txt = '<span font_desc="%s" foreground="%s">%s</span>' % \
+ (colors.XXLargeSystemFont(),
+ colors.SecondaryTextColor(),
+ '00:00'
+ )
+ self.playtime.set_markup(txt)
+
def show_banner(self, message, timeout = 2000):
banner = hildon.hildon_banner_show_information(self, '', message)
banner.set_timeout(2000)
def update_state(self):
item = self.playlist.current()
if item:
+ hildon.hildon_gtk_window_set_progress_indicator(self, 0)
if not item.name:
item.load()
self.set_labels(item.name, item.artist_name, item.album_name,
else:
self.set_labels('', '', '', 0, 0)
self.set_default_cover()
+ state = bool(item)
+ for btn in self.controls:
+ if isinstance(btn, hildon.GtkButton):
+ btn.set_sensitive(state)
def set_album_cover(self, albumid, size, cover):
if size == 300:
playlist.radio_mode = True
playlist.radio_name = radio_name
playlist.radio_id = radio_id
- playlist.add(jamaendo.get_radio_tracks(playlist.radio_id))
- log.debug("Playing radio: %s", playlist)
+ hildon.hildon_gtk_window_set_progress_indicator(self, 1)
self.__play_tracks(playlist)
- log.debug("Playlist current: %s, playing? %s",
- playlist.current_index(),
- self.player.playing())
+ #log.debug("Playlist current: %s, playing? %s",
+ # playlist.current_index(),
+ # self.player.playing())
def play_tracks(self, tracks):
self.__play_tracks(tracks)