[gnome-music/wip/mschraal/core] coremodel: Move CoreDisc to a seperate source



commit ee450c34fe138a0092341586d5306323b48bddc9
Author: Marinus Schraal <mschraal gnome org>
Date:   Fri Jun 21 16:22:08 2019 +0200

    coremodel: Move CoreDisc to a seperate source

 gnomemusic/coredisc.py  | 33 +++++++++++++++++++++++++++++++++
 gnomemusic/coremodel.py | 27 +--------------------------
 2 files changed, 34 insertions(+), 26 deletions(-)
---
diff --git a/gnomemusic/coredisc.py b/gnomemusic/coredisc.py
new file mode 100644
index 00000000..97e44c63
--- /dev/null
+++ b/gnomemusic/coredisc.py
@@ -0,0 +1,33 @@
+import gi
+from gi.repository import GObject, Gio, Gfm, Grl, GLib
+from gi._gi import pygobject_new_full
+
+from gnomemusic.coregrilo import CoreGrilo
+from gnomemusic.coresong import CoreSong
+
+
+class CoreDisc(GObject.GObject):
+
+    duration = GObject.Property(type=int, default=None)
+    media = GObject.Property(type=Grl.Media, default=None)
+    model = GObject.Property(type=Gio.ListModel, default=None)
+
+    def __init__(self, media, model):
+        super().__init__()
+
+        self.props.model = model
+        self.update(media)
+
+        self.props.model.connect("items-changed", self._on_list_items_changed)
+
+    def update(self, media):
+        self.props.media = media
+
+    def _on_list_items_changed(self, model, pos, removed, added):
+        print("items changed")
+        duration = 0
+
+        for coresong in model:
+            duration += coresong.props.duration
+
+        self.props.duration = duration
diff --git a/gnomemusic/coremodel.py b/gnomemusic/coremodel.py
index 2fde31cb..6711dd4a 100644
--- a/gnomemusic/coremodel.py
+++ b/gnomemusic/coremodel.py
@@ -5,6 +5,7 @@ from gi._gi import pygobject_new_full
 
 from gnomemusic import log
 from gnomemusic.coreartist import CoreArtist
+from gnomemusic.coredisc import CoreDisc
 from gnomemusic.coregrilo import CoreGrilo
 from gnomemusic.coresong import CoreSong
 from gnomemusic.grilo import grilo
@@ -26,32 +27,6 @@ from gnomemusic.widgets.songwidget import SongWidget
 # occurences of the same song: same grilo id, but unique object.
 
 
-class CoreDisc(GObject.GObject):
-
-    duration = GObject.Property(type=int, default=None)
-    media = GObject.Property(type=Grl.Media, default=None)
-    model = GObject.Property(type=Gio.ListModel, default=None)
-
-    def __init__(self, media, model):
-        super().__init__()
-
-        self.props.model = model
-        self.update(media)
-
-        self.props.model.connect("items-changed", self._on_list_items_changed)
-
-    def update(self, media):
-        self.props.media = media
-
-    def _on_list_items_changed(self, model, pos, removed, added):
-        duration = 0
-
-        for coresong in model:
-            duration += coresong.props.duration
-
-        self.props.duration = duration
-
-
 class CoreArtistAlbum(GObject.GObject):
 
     media = GObject.Property(type=Grl.Media, default=None)


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