[gnome-music/wip/mschraal/core: 93/93] coredisc: Make model on-demand



commit fecd146497da2747285c246e2ab26f379a3bcd75
Author: Marinus Schraal <mschraal gnome org>
Date:   Sat Jun 22 00:38:39 2019 +0200

    coredisc: Make model on-demand
    
    breaks play?

 gnomemusic/coredisc.py | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/gnomemusic/coredisc.py b/gnomemusic/coredisc.py
index a8e9319d..215aec3e 100644
--- a/gnomemusic/coredisc.py
+++ b/gnomemusic/coredisc.py
@@ -17,17 +17,26 @@ class CoreDisc(GObject.GObject):
         super().__init__()
 
         self._coremodel = coremodel
+        self._filter_model = None
+        self._model = None
         self._old_album_ids = []
+        self._sort_model = None
+
+        self.update(media)
         self.props.disc_nr = nr
 
+    def update(self, media):
+        self.props.media = media
+
+    @GObject.Property(type=Gio.ListModel, default=None)
+    def model(self):
         self._filter_model = Dazzle.ListModelFilter.new(
             self._coremodel.get_model())
         self._filter_model.set_filter_func(lambda a: False)
         self._sort_model = Gfm.SortListModel.new(self._filter_model)
         self._sort_model.set_sort_func(self._wrap_sort_func(self._disc_sort))
 
-        self.props.model = self._sort_model
-        self.update(media)
+        self._model = self._sort_model
 
         self._coremodel.get_model().connect(
             "items-changed", self._on_core_changed)
@@ -35,8 +44,7 @@ class CoreDisc(GObject.GObject):
         self._get_album_disc(
             self.props.media, self.props.disc_nr, self._filter_model)
 
-    def update(self, media):
-        self.props.media = media
+        return self._model
 
     def _on_core_changed(self, model, position, removed, added):
         self._get_album_disc(


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