[gnome-music/wip/mschraal/core] playlistsview: Select first playlist on start



commit 6187d7393a5bc442b53bb671d8c579b962877cf1
Author: Jean Felder <jfelder src gnome org>
Date:   Tue Jul 9 16:48:00 2019 +0200

    playlistsview: Select first playlist on start

 gnomemusic/coremodel.py                         | 3 ++-
 gnomemusic/grilowrappers/grltrackerplaylists.py | 1 +
 gnomemusic/views/playlistsview.py               | 9 +++++++++
 3 files changed, 12 insertions(+), 1 deletion(-)
---
diff --git a/gnomemusic/coremodel.py b/gnomemusic/coremodel.py
index 375faa3a..22b0afa6 100644
--- a/gnomemusic/coremodel.py
+++ b/gnomemusic/coremodel.py
@@ -32,7 +32,8 @@ from gnomemusic.widgets.songwidget import SongWidget
 class CoreModel(GObject.GObject):
 
     __gsignals__ = {
-        "playlist-loaded": (GObject.SignalFlags.RUN_FIRST, None, ())
+        "playlist-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
+        "playlists-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
     }
 
     @log
diff --git a/gnomemusic/grilowrappers/grltrackerplaylists.py b/gnomemusic/grilowrappers/grltrackerplaylists.py
index 7c5757be..4553f5a7 100644
--- a/gnomemusic/grilowrappers/grltrackerplaylists.py
+++ b/gnomemusic/grilowrappers/grltrackerplaylists.py
@@ -101,6 +101,7 @@ class GrlTrackerPlaylists(GObject.GObject):
             print("ERROR", error)
             return
         if not media:
+            self._coremodel.emit("playlists-loaded")
             return
 
         playlist = Playlist(
diff --git a/gnomemusic/views/playlistsview.py b/gnomemusic/views/playlistsview.py
index a493cdae..0d423188 100644
--- a/gnomemusic/views/playlistsview.py
+++ b/gnomemusic/views/playlistsview.py
@@ -124,6 +124,9 @@ class PlaylistsView(BaseView):
             self._coremodel.props.playlists_sort,
             self._add_playlist_to_sidebar)
 
+        self._loaded_id = self._coremodel.connect(
+            "playlists-loaded", self._on_playlists_loaded)
+
         self.show_all()
 
     @log
@@ -158,6 +161,12 @@ class PlaylistsView(BaseView):
 
         return row
 
+    def _on_playlists_loaded(self, klass):
+        self._coremodel.disconnect(self._loaded_id)
+        first_row = self._sidebar.get_row_at_index(0)
+        self._sidebar.select_row(first_row)
+        first_row.emit("activate")
+
     def _on_playlists_model_changed(self, model, position, removed, added):
         if removed == 0:
             return


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