[gnome-music/wip/jfelder/core-playlists-view] artistalbumwidget: Hide disc_label if there is only one disc



commit 00154f700035f6f279bb32f8062497a5cc46cb86
Author: Jean Felder <jfelder src gnome org>
Date:   Wed Jul 10 19:23:11 2019 +0200

    artistalbumwidget: Hide disc_label if there is only one disc

 gnomemusic/widgets/artistalbumwidget.py | 21 ++++++++++++++++-----
 1 file changed, 16 insertions(+), 5 deletions(-)
---
diff --git a/gnomemusic/widgets/artistalbumwidget.py b/gnomemusic/widgets/artistalbumwidget.py
index 52c70b13..dd3749f3 100644
--- a/gnomemusic/widgets/artistalbumwidget.py
+++ b/gnomemusic/widgets/artistalbumwidget.py
@@ -85,14 +85,11 @@ class ArtistAlbumWidget(Gtk.Box):
         if self._cover_size_group:
             self._cover_size_group.add_widget(self._cover_stack)
 
+        corealbum.props.model.connect_after(
+            "items-changed", self._on_model_items_changed)
         self._disc_list_box.bind_model(
             corealbum.props.model, self._create_widget)
 
-        def non_selectable(child):
-            child.props.selectable = False
-
-        self._disc_list_box.forall(non_selectable)
-
     def _create_widget(self, disc):
         disc_box = self._create_disc_box(disc.props.disc_nr, disc.model)
 
@@ -108,6 +105,20 @@ class ArtistAlbumWidget(Gtk.Box):
 
         return disc_box
 
+    def _on_model_items_changed(self, model, position, removed, added):
+        n_items = model.get_n_items()
+        if n_items == 1:
+            row = self._disc_list_box.get_row_at_index(0)
+            row.props.selectable = False
+            discbox = row.get_child()
+            discbox.props.show_disc_label = False
+        else:
+            for i in range(n_items):
+                row = self._disc_list_box.get_row_at_index(i)
+                row.props.selectable = False
+                discbox = row.get_child()
+                discbox.props.show_disc_label = True
+
     def _song_activated(self, widget, song_widget):
         if self.props.selection_mode:
             return


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