[gnome-music/wip/jfelder/tag-test: 13/22] songsview: Add renderer for title and artist



commit 74df2fa6bdfc91425275cc6a90160b6beb9099d4
Author: Sumaid Syed <sumaidsyed gmail com>
Date:   Wed Jul 17 16:53:04 2019 +0530

    songsview: Add renderer for title and artist
    
    Add renderers for title and artist so that even if they are modified, they will updated in songsview

 gnomemusic/views/songsview.py | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)
---
diff --git a/gnomemusic/views/songsview.py b/gnomemusic/views/songsview.py
index 73c5574e..a4733e3f 100644
--- a/gnomemusic/views/songsview.py
+++ b/gnomemusic/views/songsview.py
@@ -109,6 +109,8 @@ class SongsView(BaseView):
             ellipsize=Pango.EllipsizeMode.END)
         column_title = Gtk.TreeViewColumn("Title", title_renderer, text=2)
         column_title.props.expand = True
+        column_title.set_cell_data_func(
+            title_renderer, self._on_list_widget_title_render, None)
         self._view.append_column(column_title)
 
         column_star = Gtk.TreeViewColumn()
@@ -126,6 +128,8 @@ class SongsView(BaseView):
             xpad=32, ellipsize=Pango.EllipsizeMode.END)
         column_artist = Gtk.TreeViewColumn("Artist", artist_renderer, text=3)
         column_artist.props.expand = True
+        column_artist.set_cell_data_func(
+            artist_renderer, self._on_list_widget_artist_render, None)
         self._view.append_column(column_artist)
 
         album_renderer = Gtk.CellRendererText(
@@ -152,6 +156,22 @@ class SongsView(BaseView):
         if item:
             cell.props.text = utils.get_album_title(item)
 
+    def _on_list_widget_artist_render(self, coll, cell, model, _iter, data):
+        if not model.iter_is_valid(_iter):
+            return
+
+        item = model[_iter][5]
+        if item:
+            cell.props.text = utils.get_artist_name(item)
+
+    def _on_list_widget_title_render(self, coll, cell, model, _iter, data):
+        if not model.iter_is_valid(_iter):
+            return
+
+        item = model[_iter][5]
+        if item:
+            cell.props.text = utils.get_media_title(item)
+
     def _on_list_widget_icon_render(self, col, cell, model, itr, data):
         if not self.player.playing_playlist(PlayerPlaylist.Type.SONGS, None):
             cell.props.visible = False


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