[gnome-music/wip/mschraal/artrework: 17/23] split out GtkImage



commit 41bf04454afb8094d8450b5a6dd098609896bc49
Author: Marinus Schraal <mschraal gnome org>
Date:   Mon Jan 15 14:23:29 2018 +0100

    split out GtkImage

 gnomemusic/albumartcache.py    | 30 ++++++++++++++++++------------
 gnomemusic/views/albumsview.py |  4 ++--
 2 files changed, 20 insertions(+), 14 deletions(-)
---
diff --git a/gnomemusic/albumartcache.py b/gnomemusic/albumartcache.py
index 651df69..9f96f71 100644
--- a/gnomemusic/albumartcache.py
+++ b/gnomemusic/albumartcache.py
@@ -230,7 +230,6 @@ class Art(GObject.GObject):
     def __init__(self, size, media):
         super().__init__()
 
-        self._image = None
         self._size = size
         self._media = media
         self._media_url = self._media.get_url()
@@ -263,9 +262,6 @@ class Art(GObject.GObject):
         surface = _make_icon_frame(pixbuf, self._size, self._scale)
         self._surface = surface
 
-        if self._image:
-            self._image.set_from_surface(self._surface)
-
     def _embedded_art_found(self, klass):
         self._embedded_queue.pop()
 
@@ -303,9 +299,6 @@ class Art(GObject.GObject):
         self._surface = DefaultIcon(self._scale).get(
             DefaultIcon.Type.music, self._size)
 
-        if self._image:
-            self._image.set_from_surface(self._surface)
-
     def _add_to_blacklist(self):
         album = utils.get_album_title(self._media)
         artist = utils.get_artist_name(self._media)
@@ -327,6 +320,24 @@ class Art(GObject.GObject):
 
         return False
 
+
+class ArtImage(Art):
+
+    def __init__(self, size, media):
+        super().__init__(size, media)
+
+        self._image = None
+
+    def _cache_hit(self, klass, pixbuf):
+        super()._cache_hit(klass, pixbuf)
+
+        self._image.set_from_surface(self._surface)
+
+    def _no_art_available(self):
+        super()._no_art_available()
+
+        self._image.set_from_surface(self._surface)
+
     @GObject.Property
     @log
     def image(self):
@@ -349,11 +360,6 @@ class Art(GObject.GObject):
 
         self._start_art_lookup()
 
-class ArtImage(Art):
-
-    def __init__(self, size, media):
-        super().__init__(size, media)
-
 
 class ArtPixbuf(Art):
 
diff --git a/gnomemusic/views/albumsview.py b/gnomemusic/views/albumsview.py
index 8a37cae..97e5ee2 100644
--- a/gnomemusic/views/albumsview.py
+++ b/gnomemusic/views/albumsview.py
@@ -26,7 +26,7 @@ from gettext import gettext as _
 from gi.repository import GLib, GObject, Gtk, Gdk
 
 from gnomemusic import log
-from gnomemusic.albumartcache import Art
+from gnomemusic.albumartcache import Art, ArtImage
 from gnomemusic.grilo import grilo
 from gnomemusic.toolbar import ToolbarState
 from gnomemusic.views.baseview import BaseView
@@ -182,7 +182,7 @@ class AlbumsView(BaseView):
         child.add(builder.get_object('main_box'))
         child.show()
 
-        art = Art(Art.Size.MEDIUM, item)
+        art = ArtImage(Art.Size.MEDIUM, item)
         art.image = child.image
 
         return child


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]