예제 #1
0
 def _on_button_clicked(self, button):
     """
         Show file chooser
         @param button as Gtk.button
     """
     dialog = Gtk.FileChooserDialog()
     dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL)
     dialog.add_buttons(Gtk.STOCK_OPEN, Gtk.ResponseType.OK)
     dialog.set_transient_for(Lp().window)
     self.__close_popover()
     response = dialog.run()
     if response == Gtk.ResponseType.OK:
         try:
             f = Lio.File.new_for_path(dialog.get_filename())
             (status, data, tag) = f.load_contents()
             if not status:
                 raise
             if self.__album is not None:
                 Lp().art.save_album_artwork(data, self.__album.id)
             else:
                 for suffix in ["lastfm", "wikipedia", "spotify"]:
                     InfoCache.uncache_artwork(self.__artist, suffix,
                                               button.get_scale_factor())
                     InfoCache.add(self.__artist, None, data, suffix)
                 Lp().art.emit("artist-artwork-changed", self.__artist)
             self._streams = {}
         except Exception as e:
             print("ArtworkSearch::_on_button_clicked():", e)
     dialog.destroy()
예제 #2
0
 def _on_button_clicked(self, button):
     """
         Show file chooser
         @param button as Gtk.button
     """
     dialog = Gtk.FileChooserDialog()
     dialog.add_buttons(Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL)
     dialog.add_buttons(Gtk.STOCK_OPEN, Gtk.ResponseType.OK)
     dialog.set_transient_for(Lp().window)
     self.__close_popover()
     response = dialog.run()
     if response == Gtk.ResponseType.OK:
         try:
             f = Lio.File.new_for_path(dialog.get_filename())
             (status, data, tag) = f.load_contents()
             if not status:
                 raise
             if self.__album is not None:
                 Lp().art.save_album_artwork(data, self.__album.id)
             else:
                 for suffix in ["lastfm", "wikipedia", "spotify"]:
                     InfoCache.uncache_artwork(self.__artist, suffix,
                                               button.get_scale_factor())
                     InfoCache.add(self.__artist, None, data, suffix)
                 Lp().art.emit('artist-artwork-changed', self.__artist)
             self._streams = {}
         except Exception as e:
             print("ArtworkSearch::_on_button_clicked():", e)
     dialog.destroy()
예제 #3
0
 def __really_update_coversize(self, widget):
     """
         Update cover size
         @param widget as Gtk.Range
     """
     self.__cover_tid = None
     value = widget.get_value()
     Lp().settings.set_value('cover-size', GLib.Variant('i', value))
     Lp().art.update_art_size()
     for suffix in ["lastfm", "wikipedia", "spotify"]:
         for artist in Lp().artists.get([]):
             InfoCache.uncache_artwork(artist[1], suffix,
                                       widget.get_scale_factor())
             Lp().art.emit('artist-artwork-changed', artist[1])
     Lp().window.reload_view()
예제 #4
0
 def __really_update_coversize(self, widget):
     """
         Update cover size
         @param widget as Gtk.Range
     """
     self.__cover_tid = None
     value = widget.get_value()
     Lp().settings.set_value('cover-size', GLib.Variant('i', value))
     Lp().art.update_art_size()
     for suffix in ["lastfm", "wikipedia", "spotify"]:
         for artist in Lp().artists.get([]):
             InfoCache.uncache_artwork(artist[1], suffix,
                                       widget.get_scale_factor())
             Lp().art.emit('artist-artwork-changed', artist[1])
     Lp().window.reload_view()
예제 #5
0
 def _on_reset_confirm(self, button):
     """
         Reset cover
         @param button as Gtk.Button
     """
     self._infobar.hide()
     if self._album is not None:
         Lp().art.remove_album_artwork(self._album)
         Lp().art.clean_album_cache(self._album)
         Lp().art.emit('album-artwork-changed', self._album.id)
     else:
         for suffix in ["lastfm", "wikipedia", "spotify"]:
             InfoCache.uncache_artwork(self._artist, suffix,
                                       button.get_scale_factor())
             Lp().art.emit('artist-artwork-changed', self._artist)
     self._close_popover()
예제 #6
0
 def _on_reset_confirm(self, button):
     """
         Reset cover
         @param button as Gtk.Button
     """
     self._infobar.hide()
     if self.__album is not None:
         Lp().art.remove_album_artwork(self.__album)
         Lp().art.clean_album_cache(self.__album)
         Lp().art.emit("album-artwork-changed", self.__album.id)
     else:
         for suffix in ["lastfm", "wikipedia", "spotify", "deezer"]:
             InfoCache.uncache_artwork(self.__artist, suffix,
                                       button.get_scale_factor())
             InfoCache.add(self.__artist, None, None, suffix)
             Lp().art.emit("artist-artwork-changed", self.__artist)
     self.__close_popover()
예제 #7
0
 def _on_activate(self, flowbox, child):
     """
         Use pixbuf as cover
         Reset cache and use player object to announce cover change
     """
     data = self._datas[child.get_child()]
     self._close_popover()
     if self._album is not None:
         Lp().art.save_album_artwork(data, self._album.id)
         Lp().art.clean_album_cache(self._album)
         Lp().art.album_artwork_update(self._album.id)
     else:
         for suffix in ["lastfm", "wikipedia", "spotify"]:
             InfoCache.uncache_artwork(self._artist, suffix,
                                       flowbox.get_scale_factor())
             InfoCache.cache(self._artist, None, data, suffix)
     self._streams = {}
예제 #8
0
 def _really_update_coversize(self, widget):
     """
         Update cover size
         @param widget as Gtk.Range
     """
     self._cover_tid = None
     value = widget.get_value()
     Lp().settings.set_value('cover-size', GLib.Variant('i', value))
     ArtSize.BIG = value
     for suffix in ["lastfm", "wikipedia", "spotify"]:
         for artist in Lp().artists.get([]):
             InfoCache.uncache_artwork(artist[1], suffix,
                                       widget.get_scale_factor())
             Lp().art.emit('artist-artwork-changed', artist[1])
     # For a 200 album artwork, we want a 60 artist artwork
     ArtSize.ARTIST_SMALL = ArtSize.BIG * 60 / 200
     Lp().window.reload_view()
예제 #9
0
 def __on_activate(self, flowbox, child):
     """
         Use pixbuf as cover
         Reset cache and use player object to announce cover change
     """
     try:
         data = self.__datas[child.get_child()]
         self.__close_popover()
         if self.__album is not None:
             Lp().art.save_album_artwork(data, self.__album.id)
         else:
             for suffix in ["lastfm", "wikipedia", "spotify"]:
                 InfoCache.uncache_artwork(self.__artist, suffix,
                                           flowbox.get_scale_factor())
                 InfoCache.add(self.__artist, None, data, suffix)
             Lp().art.emit('artist-artwork-changed', self.__artist)
         self._streams = {}
     except:
         self._infobar_label.set_text(_("Reset artwork?"))
         self._infobar.show()
         # GTK 3.20 https://bugzilla.gnome.org/show_bug.cgi?id=710888
         self._infobar.queue_resize()
예제 #10
0
 def __on_activate(self, flowbox, child):
     """
         Use pixbuf as cover
         Reset cache and use player object to announce cover change
     """
     try:
         data = self.__datas[child.get_child()]
         self.__close_popover()
         if self.__album is not None:
             Lp().art.save_album_artwork(data, self.__album.id)
         else:
             for suffix in ["lastfm", "wikipedia", "spotify"]:
                 InfoCache.uncache_artwork(self.__artist, suffix,
                                           flowbox.get_scale_factor())
                 InfoCache.add(self.__artist, None, data, suffix)
             Lp().art.emit("artist-artwork-changed", self.__artist)
         self._streams = {}
     except:
         self._infobar_label.set_text(_("Reset artwork?"))
         self._infobar.show()
         # GTK 3.20 https://bugzilla.gnome.org/show_bug.cgi?id=710888
         self._infobar.queue_resize()