def add_album(self, album): if self.__show_artist: txt = "%s - %s" % (album.artist_name, album.name) else: txt = album.name self.__store.append([self.get_default_pixbuf(), txt, album.ID]) postoffice.notify('request-album-cover', album.ID, self.ICON_SIZE)
def add_items(self, items): images = [x for x in (self.get_item_image(item) for item in items) if x] for item in items: txt = self.get_item_text(item) self.__store.append([self.get_default_pixbuf(), txt, item.ID, self.get_item_image(item)]) if images: postoffice.notify('request-images', images)
def add_to_playlist(self, playlist, track): if isinstance(track, jamaendo.Track): track = {'id':track.ID, 'data':track.get_data()} assert(isinstance(track, dict)) lst = self.playlists.get(playlist) if not lst: lst = [] self.playlists[playlist] = lst lst.append(track) postoffice.notify('settings-changed', 'playlists', self.playlists) log.debug("playlists is now %s", self.playlists)
def __init__(self, album): hildon.StackableWindow.__init__(self) self.set_title(album.artist_name) self.album = album self.fetcher = None self.connect("destroy", self.on_destroy) top_hbox = gtk.HBox() vbox1 = gtk.VBox() self.cover = gtk.Image() tmp = util.find_resource("album.png") if tmp: self.cover.set_from_file(tmp) self.bbox = gtk.HButtonBox() self.bbox.set_property("layout-style", gtk.BUTTONBOX_SPREAD) self.goto_artist = self.make_imagebutton("artist", self.on_goto_artist) 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) vbox2 = gtk.VBox() self.albumname = gtk.Label() self.albumname.set_markup("<big>%s</big>" % (cgi.escape(album.name))) self.trackarea = hildon.PannableArea() self.tracks = TrackList(numbers=True) self.tracks.connect("row-activated", self.row_activated) self.tracklist = [] # 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.bbox, False) self.bbox.add(self.goto_artist) self.bbox.add(self.download) self.bbox.add(self.favorite) self.bbox.add(self.license) vbox2.pack_start(self.albumname, False) vbox2.pack_start(self.trackarea, True) self.trackarea.add(self.tracks) self.add(top_hbox) postoffice.connect("album-cover", self, self.on_album_cover) postoffice.notify("request-album-cover", self.album.ID, 300) self.create_menu() self.start_track_fetcher()
def add_playlist(self, name, tracks): def trackcount(lst): ln = len(lst) if ln > 1: return "(%d tracks)"%(ln) elif ln == 1: return "(1 track)" return "(empty)" track = tracks[0] if len(tracks) else None track_album_id = int(track['data']['album_id']) if track else 0 self.__store.append([self.get_default_pixbuf(), name, trackcount(tracks), track_album_id]) if track_album_id: postoffice.notify('request-album-cover', track_album_id, self.ICON_SIZE)
def __init__(self, plname, playlist): hildon.StackableWindow.__init__(self) self.set_title(plname) self.playlist_name = plname self.playlist = playlist self.fetcher = None self.connect('destroy', self.on_destroy) top_hbox = gtk.HBox() vbox1 = gtk.VBox() self.cover = gtk.Image() tmp = util.find_resource('album.png') if tmp: self.cover.set_from_file(tmp) vbox2 = gtk.VBox() self.trackarea = hildon.PannableArea() self.tracks = TrackList(numbers=True) self.tracks.connect('row-activated', self.row_activated) self.tracklist = [] top_hbox.pack_start(vbox1, False) top_hbox.pack_start(vbox2, True) vbox1.pack_start(self.cover, True) vbox2.pack_start(self.trackarea, True) self.trackarea.add(self.tracks) self.add(top_hbox) postoffice.connect('album-cover', self, self.on_album_cover) if len(self.playlist) > 0: postoffice.notify('request-album-cover', int(self.playlist[0].album_id), 300) self.create_menu() self.start_track_fetcher()
def _play_track(self, track, notify='play'): self.backend.play_url('mp3', track.mp3_url()) log.debug("playing %s", track) postoffice.notify(notify, track)
def idle_fetch_fail(owner, e): postoffice.notify("fetch-fail", owner, e)
def idle_fetch_ok(owner): postoffice.notify("fetch-ok", owner)
def idle_fetch(owner, item): postoffice.notify("fetch", owner, item)
def got_images(self, images): gtk.gdk.threads_enter() postoffice.notify('images', images) gtk.gdk.threads_leave()
def got_album_cover(self, albumid, size, cover): gtk.gdk.threads_enter() postoffice.notify('album-cover', albumid, size, cover) gtk.gdk.threads_leave()
def favorite(self, album): self.favorites.add(('album', album.ID)) self.save() postoffice.notify('settings-changed', 'favorites', self.favorites)
def __setattr__(self, key, value): object.__setattr__(self, key, value) if key in self.defaults.keys(): postoffice.notify('settings-changed', key, value)
def add_radios(self, radios): for radio in radios: self.__store.append([self.get_default_pixbuf(), self.radio_name(radio), radio.ID, radio.image]) postoffice.notify('request-images', [radio.image for radio in radios])
def pause(self): self.backend.pause() postoffice.notify('pause', self.playlist.current())
def stop(self): self.backend.stop() postoffice.notify('stop', self.playlist.current())
def delete_playlist(self, name): if name in self.playlists: del self.playlists[name] postoffice.notify('settings-changed', 'playlists', self.playlists)