[gnome-music/wip/mschraal/artrework: 21/23] move scale to get()



commit f6c9b37ecbf58c4078d7cbb492f684462ec28b61
Author: Marinus Schraal <mschraal gnome org>
Date:   Sat Jan 20 13:46:17 2018 +0100

    move scale to get()

 gnomemusic/albumartcache.py    | 36 +++++++++++++++++-------------------
 gnomemusic/views/searchview.py |  3 ++-
 2 files changed, 19 insertions(+), 20 deletions(-)
---
diff --git a/gnomemusic/albumartcache.py b/gnomemusic/albumartcache.py
index 4b26f27..da41b2c 100644
--- a/gnomemusic/albumartcache.py
+++ b/gnomemusic/albumartcache.py
@@ -151,13 +151,11 @@ class DefaultIcon(GObject.GObject):
         return '<DefaultIcon>'
 
     @log
-    def __init__(self, scale=1):
+    def __init__(self):
         super().__init__()
 
-        self._scale = scale
-
     @log
-    def _make_default_icon(self, icon_type, art_size=None):
+    def _make_default_icon(self, icon_type, art_size, scale):
         width = art_size.width * self._scale
         height = art_size.height * self._scale
 
@@ -187,7 +185,7 @@ class DefaultIcon(GObject.GObject):
         return icon_surface
 
     @log
-    def get(self, icon_type, art_size):
+    def get(self, icon_type, art_size, scale=1):
         """Returns the requested symbolic icon
 
         Returns a cairo surface of the requested symbolic icon in the
@@ -199,11 +197,11 @@ class DefaultIcon(GObject.GObject):
         :return: The symbolic icon
         :rtype: cairo.Surface
         """
-        if (icon_type, art_size) not in self._cache.keys():
-            new_icon = self._make_default_icon(icon_type, art_size)
-            self._cache[(icon_type, art_size)] = new_icon
+        if (icon_type, art_size, scale) not in self._cache.keys():
+            new_icon = self._make_default_icon(icon_type, art_size, scale)
+            self._cache[(icon_type, art_size, scale)] = new_icon
 
-        return self._cache[(icon_type, art_size)]
+        return self._cache[(icon_type, art_size, scale)]
 
 
 class Art(GObject.GObject):
@@ -227,14 +225,14 @@ class Art(GObject.GObject):
             self.height = height
 
     @log
-    def __init__(self, size, media):
+    def __init__(self, size, media, scale=1):
         super().__init__()
 
         self._size = size
         self._media = media
         self._media_url = self._media.get_url()
         self._surface = None
-        self._scale = 1
+        self._scale = scale
 
     @log
     def _start_art_lookup(self):
@@ -296,8 +294,8 @@ class Art(GObject.GObject):
         self._no_art_available()
 
     def _no_art_available(self):
-        self._surface = DefaultIcon(self._scale).get(
-            DefaultIcon.Type.music, self._size)
+        self._surface = DefaultIcon().get(
+            DefaultIcon.Type.music, self._size, self._scale)
 
     def _add_to_blacklist(self):
         album = utils.get_album_title(self._media)
@@ -353,8 +351,8 @@ class ArtImage(Art):
 
         self._scale = self._image.get_scale_factor()
 
-        self._surface = DefaultIcon(self._scale).get(
-            DefaultIcon.Type.loading, self._size)
+        self._surface = DefaultIcon().get(
+            DefaultIcon.Type.loading, self._size, self._scale)
 
         self._image.set_from_surface(self._surface)
 
@@ -367,8 +365,8 @@ class ArtPixbuf(Art):
         'finished': (GObject.SignalFlags.RUN_FIRST, None, ())
     }
 
-    def __init__(self, size, media):
-        super().__init__(size, media)
+    def __init__(self, size, media, scale=1):
+        super().__init__(size, media, scale)
 
         self._iter = None
 
@@ -392,8 +390,8 @@ class ArtPixbuf(Art):
     @pixbuf.setter
     @log
     def pixbuf(self, pixbuf):
-        self._surface = DefaultIcon(self._scale).get(
-            DefaultIcon.Type.loading, self._size)
+        self._surface = DefaultIcon().get(
+            DefaultIcon.Type.loading, self._size, self._scale)
 
         self._start_art_lookup()
 
diff --git a/gnomemusic/views/searchview.py b/gnomemusic/views/searchview.py
index 3f32299..b46b6f1 100644
--- a/gnomemusic/views/searchview.py
+++ b/gnomemusic/views/searchview.py
@@ -239,8 +239,9 @@ class SearchView(BaseView):
         # scaled by GdkPixbuf, so it results in a * scale factor sized
         # icon for the search view.
         _iter = None
+        scale = self._view.get_scale_factor()
         pixbuf = GdkPixbuf.Pixbuf()
-        art = ArtPixbuf(Art.Size.SMALL, item)
+        art = ArtPixbuf(Art.Size.SMALL, item, scale)
         art.pixbuf = pixbuf
         if category == 'album':
             _iter = self.model.insert_with_values(


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