[gnome-music] search: show favorited songs



commit 39970ff7a597e8dacb1276286c87593e9e760078
Author: Vadim Rutkovsky <vrutkovs redhat com>
Date:   Mon Feb 16 16:38:46 2015 +0100

    search: show favorited songs
    
    Note, that this will not display a star for non-fav songs
    
    https://bugzilla.gnome.org/show_bug.cgi?id=744005

 gnomemusic/view.py    |    8 +++++++-
 gnomemusic/widgets.py |    8 ++++++--
 2 files changed, 13 insertions(+), 3 deletions(-)
---
diff --git a/gnomemusic/view.py b/gnomemusic/view.py
index b7585ce..5a7ce9d 100644
--- a/gnomemusic/view.py
+++ b/gnomemusic/view.py
@@ -1441,7 +1441,7 @@ class Search(ViewContainer):
                 self.head_iters[group], -1,
                 [0, 2, 3, 4, 5, 9, 11],
                 [str(item.get_id()), title, artist,
-                 self._noAlbumArtIcon, item, False, category])
+                 self._noAlbumArtIcon, item, bool(item.get_lyrics()), category])
         else:
             if not artist.casefold() in self._artists:
                 _iter = self._model.insert_with_values(
@@ -1476,6 +1476,12 @@ class Search(ViewContainer):
                                  self._on_list_widget_title_render, None)
         cols[0].add_attribute(title_renderer, 'text', 2)
 
+        star_renderer = Widgets.CellRendererClickablePixbuf(self.view, hidden=True)
+        star_renderer.connect("clicked", self._on_star_toggled)
+        list_widget.add_renderer(star_renderer,
+                                 self._on_list_widget_star_render, None)
+        cols[0].add_attribute(star_renderer, 'show_star', 9)
+
         cells = cols[0].get_cells()
         cols[0].reorder(cells[0], -1)
         cols[0].set_cell_data_func(cells[0], self._on_list_widget_selection_render, None)
diff --git a/gnomemusic/widgets.py b/gnomemusic/widgets.py
index 0a1ccc0..45f7fcc 100644
--- a/gnomemusic/widgets.py
+++ b/gnomemusic/widgets.py
@@ -805,12 +805,13 @@ class CellRendererClickablePixbuf(Gtk.CellRendererPixbuf):
     starIcon = 'starred-symbolic'
     nonStarIcon = 'non-starred-symbolic'
 
-    def __init__(self, view, *args, **kwargs):
+    def __init__(self, view, hidden=False, *args, **kwargs):
         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.view = view
+        self.hidden = hidden
         self.show_star = False
 
     def do_activate(self, event, widget, path, background_area, cell_area, flags):
@@ -826,5 +827,8 @@ class CellRendererClickablePixbuf(Gtk.CellRendererPixbuf):
             if self.show_star:
                 self.set_property('icon_name', self.starIcon)
             else:
-                self.set_property('icon_name', self.nonStarIcon)
+                if not self.hidden:
+                    self.set_property('icon_name', self.nonStarIcon)
+                else:
+                    self.set_property('icon_name', '')
             self.show_star = value


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