[gnome-music] Fixing favorite star rendering in searches



commit a1477b88f342379df749b68584b9c547ec83c60c
Author: Hapoofesgeli <Hapoofesgeli openmailbox org>
Date:   Sat Sep 5 18:23:44 2015 +0430

    Fixing favorite star rendering in searches
    
    https://bugzilla.gnome.org/show_bug.cgi?id=744827

 gnomemusic/view.py    |   22 +++++++++++-----------
 gnomemusic/widgets.py |   25 +++++++++++++++----------
 2 files changed, 26 insertions(+), 21 deletions(-)
---
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index 22c6c06..106861c 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -84,7 +84,7 @@ class ViewContainer(Gtk.Stack):
             GObject.TYPE_BOOLEAN,
             GObject.TYPE_INT,
             GObject.TYPE_STRING,
-            GObject.TYPE_BOOLEAN,
+            GObject.TYPE_INT,
             GObject.TYPE_BOOLEAN,
             GObject.TYPE_INT
         )
@@ -850,7 +850,7 @@ class Playlist(ViewContainer):
             GObject.TYPE_BOOLEAN,
             GObject.TYPE_INT,
             GObject.TYPE_STRING,
-            GObject.TYPE_BOOLEAN,
+            GObject.TYPE_INT,
             GObject.TYPE_BOOLEAN,
             GObject.TYPE_INT
         )
@@ -1516,7 +1516,7 @@ class Search(ViewContainer):
                 self.head_iters[group], -1,
                 [0, 2, 3, 4, 5, 9, 11],
                 [str(item.get_id()), title, artist,
-                 self._loadingIcon, item, False, category])
+                 self._loadingIcon, item, 2, category])
             self.cache.lookup(item, self._iconWidth, self._iconHeight, self._on_lookup_ready,
                               _iter, artist, title)
         elif category == 'song':
@@ -1524,14 +1524,14 @@ class Search(ViewContainer):
                 self.head_iters[group], -1,
                 [0, 2, 3, 4, 5, 9, 11],
                 [str(item.get_id()), title, artist,
-                 self._noAlbumArtIcon, item, bool(item.get_lyrics()), category])
+                 self._noAlbumArtIcon, item, 2 if source.get_id() != 'grl-tracker-source' else 
bool(item.get_lyrics()), category])
         else:
             if not artist.casefold() in self._artists:
                 _iter = self.model.insert_with_values(
                     self.head_iters[group], -1,
                     [0, 2, 4, 5, 9, 11],
                     [str(item.get_id()), artist,
-                     self._loadingIcon, item, False, category])
+                     self._loadingIcon, item, 2, category])
                 self.cache.lookup(item, self._iconWidth, self._iconHeight, self._on_lookup_ready,
                                   _iter, artist, title)
                 self._artists[artist.casefold()] = {'iter': _iter, 'albums': []}
@@ -1559,7 +1559,7 @@ class Search(ViewContainer):
                                  self._on_list_widget_title_render, None)
         cols[0].add_attribute(title_renderer, 'text', 2)
 
-        self.star_handler._add_star_renderers(list_widget, cols, hidden=True)
+        self.star_handler._add_star_renderers(list_widget, cols, hidden=False)
 
         cells = cols[0].get_cells()
         cols[0].reorder(cells[0], -1)
@@ -1711,7 +1711,7 @@ class Search(ViewContainer):
             GObject.TYPE_BOOLEAN,
             GObject.TYPE_INT,
             GObject.TYPE_STRING,
-            GObject.TYPE_BOOLEAN,
+            GObject.TYPE_INT,
             GObject.TYPE_BOOLEAN,
             GObject.TYPE_STRING,    # type
             GObject.TYPE_INT
@@ -1726,10 +1726,10 @@ class Search(ViewContainer):
         if search_term == "":
             return
 
-        albums_iter = self.model.insert_with_values(None, -1, [2], [_("Albums")])
-        artists_iter = self.model.insert_with_values(None, -1, [2], [_("Artists")])
-        songs_iter = self.model.insert_with_values(None, -1, [2], [_("Songs")])
-        playlists_iter = self.model.insert_with_values(None, -1, [2], [_("Playlists")])
+        albums_iter = self.model.insert_with_values(None, -1, [2, 9], [_("Albums"), 2])
+        artists_iter = self.model.insert_with_values(None, -1, [2, 9], [_("Artists"), 2])
+        songs_iter = self.model.insert_with_values(None, -1, [2, 9], [_("Songs"), 2])
+        playlists_iter = self.model.insert_with_values(None, -1, [2, 9], [_("Playlists"), 2])
 
         self.head_iters = [albums_iter, artists_iter, songs_iter, playlists_iter]
         self.songs_model = self.model.filter_new(self.model.get_path(songs_iter))
diff --git a/gnomemusic/widgets.py b/gnomemusic/widgets.py
index 63db254..3bb3d4f 100644
--- a/gnomemusic/widgets.py
+++ b/gnomemusic/widgets.py
@@ -82,6 +82,12 @@ class StarHandler():
         except TypeError:
             return
 
+        try:
+            if self.parent.model.get_value(_iter, 9) == 2:
+                return
+        except AttributeError:
+            return
+
         new_value = not self.parent.model.get_value(_iter, self.star_index)
         self.parent.model.set_value(_iter, self.star_index, new_value)
         song_item = self.parent.model.get_value(_iter, 5)
@@ -227,7 +233,7 @@ class AlbumWidget(Gtk.EventBox):
             GObject.TYPE_BOOLEAN,  # item selected
             GObject.TYPE_STRING,
             GObject.TYPE_BOOLEAN,
-            GObject.TYPE_BOOLEAN,  # icon shown
+            GObject.TYPE_INT,  # icon shown
             GObject.TYPE_BOOLEAN,
             GObject.TYPE_INT
         )
@@ -848,7 +854,7 @@ class CellRendererClickablePixbuf(Gtk.CellRendererPixbuf):
     __gsignals__ = {'clicked': (GObject.SignalFlags.RUN_LAST, GObject.TYPE_NONE,
                                 (GObject.TYPE_STRING,))}
     __gproperties__ = {
-        'show_star': (GObject.TYPE_BOOLEAN, 'Show star', 'show star', False, GObject.PARAM_READWRITE)}
+        'show_star': (GObject.TYPE_INT, 'Show star', 'show star',0 ,2 ,1 , GObject.PARAM_READWRITE)}
 
     starIcon = 'starred-symbolic'
     nonStarIcon = 'non-starred-symbolic'
@@ -860,13 +866,13 @@ class CellRendererClickablePixbuf(Gtk.CellRendererPixbuf):
         Gtk.CellRendererPixbuf.__init__(self, *args, **kwargs)
         self.set_property('mode', Gtk.CellRendererMode.ACTIVATABLE)
         self.set_property('xpad', 32)
-        self.set_property('icon_name', self.nonStarIcon)
+        self.set_property('icon_name', '')
         self.view = view
         self.hidden = hidden
-        self.show_star = False
+        self.show_star = 0
 
     def do_activate(self, event, widget, path, background_area, cell_area, flags):
-        self.show_star = False
+        self.show_star = 0
         self.emit('clicked', path)
 
     def do_get_property(self, property):
@@ -875,11 +881,10 @@ class CellRendererClickablePixbuf(Gtk.CellRendererPixbuf):
 
     def do_set_property(self, property, value):
         if property.name == 'show-star':
-            if self.show_star:
+            if self.show_star == 1:
                 self.set_property('icon_name', self.starIcon)
+            elif self.show_star == 0:
+                   self.set_property('icon_name', self.nonStarIcon)
             else:
-                if not self.hidden:
-                    self.set_property('icon_name', self.nonStarIcon)
-                else:
-                    self.set_property('icon_name', '')
+                self.set_property('icon_name', '')
             self.show_star = value


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