Example #1
0
 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)
Example #2
0
 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)
Example #3
0
 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)
Example #4
0
    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()
Example #5
0
 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)
Example #6
0
    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()
Example #7
0
 def _play_track(self, track, notify='play'):
     self.backend.play_url('mp3', track.mp3_url())
     log.debug("playing %s", track)
     postoffice.notify(notify, track)
Example #8
0
 def idle_fetch_fail(owner, e):
     postoffice.notify("fetch-fail", owner, e)
Example #9
0
 def idle_fetch_ok(owner):
     postoffice.notify("fetch-ok", owner)
Example #10
0
 def idle_fetch(owner, item):
     postoffice.notify("fetch", owner, item)
Example #11
0
File: ui.py Project: krig/jamaendo
 def got_images(self, images):
     gtk.gdk.threads_enter()
     postoffice.notify('images', images)
     gtk.gdk.threads_leave()
Example #12
0
File: ui.py Project: krig/jamaendo
 def got_album_cover(self, albumid, size, cover):
     gtk.gdk.threads_enter()
     postoffice.notify('album-cover', albumid, size, cover)
     gtk.gdk.threads_leave()
Example #13
0
 def favorite(self, album):
     self.favorites.add(('album', album.ID))
     self.save()
     postoffice.notify('settings-changed', 'favorites', self.favorites)
Example #14
0
 def __setattr__(self, key, value):
     object.__setattr__(self, key, value)
     if key in self.defaults.keys():
         postoffice.notify('settings-changed', key, value)
Example #15
0
 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])
Example #16
0
 def pause(self):
     self.backend.pause()
     postoffice.notify('pause', self.playlist.current())
Example #17
0
 def stop(self):
     self.backend.stop()
     postoffice.notify('stop', self.playlist.current())
Example #18
0
 def delete_playlist(self, name):
     if name in self.playlists:
         del self.playlists[name]
         postoffice.notify('settings-changed', 'playlists', self.playlists)