[gnome-music/wip/jfelder/restore-mpris-playlists: 9/13] coremodel: Add playlist type information when a playlist is loaded



commit 4b539f77458a8aae758b0666aec97a8c8c701a96
Author: Jean Felder <jfelder src gnome org>
Date:   Sat Sep 21 20:59:25 2019 +0200

    coremodel: Add playlist type information when a playlist is loaded
    
    This information will be used by the MPRIS interface.

 gnomemusic/coremodel.py                  | 14 +++++++-------
 gnomemusic/mpris.py                      |  2 +-
 gnomemusic/views/playlistsview.py        |  2 +-
 gnomemusic/widgets/albumwidget.py        |  2 +-
 gnomemusic/widgets/artistalbumswidget.py |  2 +-
 5 files changed, 11 insertions(+), 11 deletions(-)
---
diff --git a/gnomemusic/coremodel.py b/gnomemusic/coremodel.py
index fee2be54..3b87bcf7 100644
--- a/gnomemusic/coremodel.py
+++ b/gnomemusic/coremodel.py
@@ -68,7 +68,7 @@ class CoreModel(GObject.GObject):
         "activate-playlist": (
             GObject.SignalFlags.RUN_FIRST, None, (Playlist,)),
         "artists-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
-        "playlist-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
+        "playlist-loaded": (GObject.SignalFlags.RUN_FIRST, None, (int,)),
         "playlists-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
     }
 
@@ -227,7 +227,7 @@ class CoreModel(GObject.GObject):
                 if song.props.state == SongWidget.State.PLAYING:
                     song.props.state = SongWidget.State.PLAYED
 
-            self.emit("playlist-loaded")
+            self.emit("playlist-loaded", playlist_type)
             return
 
         def _on_items_changed(model, position, removed, added):
@@ -293,7 +293,7 @@ class CoreModel(GObject.GObject):
                         GObject.BindingFlags.BIDIRECTIONAL
                         | GObject.BindingFlags.SYNC_CREATE)
 
-                self.emit("playlist-loaded")
+                self.emit("playlist-loaded", playlist_type)
             elif playlist_type == PlayerPlaylist.Type.ARTIST:
                 proxy_model = Gio.ListStore.new(Gio.ListModel)
 
@@ -319,7 +319,7 @@ class CoreModel(GObject.GObject):
                         GObject.BindingFlags.BIDIRECTIONAL
                         | GObject.BindingFlags.SYNC_CREATE)
 
-                self.emit("playlist-loaded")
+                self.emit("playlist-loaded", playlist_type)
             elif playlist_type == PlayerPlaylist.Type.SONGS:
                 self._current_playlist_model = self._songliststore.props.model
 
@@ -329,14 +329,14 @@ class CoreModel(GObject.GObject):
                     if song.props.state == SongWidget.State.PLAYING:
                         song.props.state = SongWidget.State.PLAYED
 
-                self.emit("playlist-loaded")
+                self.emit("playlist-loaded", playlist_type)
             elif playlist_type == PlayerPlaylist.Type.SEARCH_RESULT:
                 self._current_playlist_model = self._song_search_flatten
 
                 for song in self._song_search_flatten:
                     self._playlist_model.append(song)
 
-                self.emit("playlist-loaded")
+                self.emit("playlist-loaded", playlist_type)
             elif playlist_type == PlayerPlaylist.Type.PLAYLIST:
                 self._current_playlist_model = model
 
@@ -355,7 +355,7 @@ class CoreModel(GObject.GObject):
                         GObject.BindingFlags.BIDIRECTIONAL
                         | GObject.BindingFlags.SYNC_CREATE)
 
-                self.emit("playlist-loaded")
+                self.emit("playlist-loaded", playlist_type)
 
         if self._current_playlist_model is not None:
             self._player_signal_id = self._current_playlist_model.connect(
diff --git a/gnomemusic/mpris.py b/gnomemusic/mpris.py
index 0212883c..69f47ec4 100644
--- a/gnomemusic/mpris.py
+++ b/gnomemusic/mpris.py
@@ -575,7 +575,7 @@ class MPRIS(DBusInterface):
         self._seeked(int(position_second * 1e6))
 
     @log
-    def _on_player_playlist_changed(self, coremodel):
+    def _on_player_playlist_changed(self, coremodel, playlist_type):
         self._update_songs_list()
 
         mpris_playlist = self._get_active_playlist()
diff --git a/gnomemusic/views/playlistsview.py b/gnomemusic/views/playlistsview.py
index b14efc1a..061da267 100644
--- a/gnomemusic/views/playlistsview.py
+++ b/gnomemusic/views/playlistsview.py
@@ -276,7 +276,7 @@ class PlaylistsView(BaseView):
 
         signal_id = None
 
-        def _on_playlist_loaded(klass):
+        def _on_playlist_loaded(klass, playlist_type):
             self._coremodel.props.active_playlist = current_playlist
             self._player.play(coresong)
             self._coremodel.disconnect(signal_id)
diff --git a/gnomemusic/widgets/albumwidget.py b/gnomemusic/widgets/albumwidget.py
index 63856756..ac1c661a 100644
--- a/gnomemusic/widgets/albumwidget.py
+++ b/gnomemusic/widgets/albumwidget.py
@@ -164,7 +164,7 @@ class AlbumWidget(Gtk.EventBox):
         signal_id = None
         coremodel = self._parent_view._window._app.props.coremodel
 
-        def _on_playlist_loaded(klass):
+        def _on_playlist_loaded(klass, playlist_type):
             self._player.play(song_widget.props.coresong)
             coremodel.disconnect(signal_id)
 
diff --git a/gnomemusic/widgets/artistalbumswidget.py b/gnomemusic/widgets/artistalbumswidget.py
index 114ff46b..7a3a689e 100644
--- a/gnomemusic/widgets/artistalbumswidget.py
+++ b/gnomemusic/widgets/artistalbumswidget.py
@@ -80,7 +80,7 @@ class ArtistAlbumsWidget(Gtk.ListBox):
 
         coremodel = self._application.props.coremodel
 
-        def _on_playlist_loaded(klass):
+        def _on_playlist_loaded(klass, playlist_type):
             self._player.play(song_widget.props.coresong)
             coremodel.disconnect(signal_id)
 


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