[gnome-music/wip/jfelder/core-playlists-view] artistsview: Select first artist on start
- From: Jean Felder <jfelder src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/jfelder/core-playlists-view] artistsview: Select first artist on start
- Date: Tue, 9 Jul 2019 14:57:26 +0000 (UTC)
commit dd822422bf43405dc4207809b9026a1faa1396e0
Author: Jean Felder <jfelder src gnome org>
Date: Tue Jul 9 16:55:49 2019 +0200
artistsview: Select first artist on start
gnomemusic/coremodel.py | 1 +
gnomemusic/grilowrappers/grltrackersource.py | 1 +
gnomemusic/views/artistsview.py | 11 ++++++++++-
3 files changed, 12 insertions(+), 1 deletion(-)
---
diff --git a/gnomemusic/coremodel.py b/gnomemusic/coremodel.py
index 1c7bd21b..5cf842f2 100644
--- a/gnomemusic/coremodel.py
+++ b/gnomemusic/coremodel.py
@@ -32,6 +32,7 @@ from gnomemusic.widgets.songwidget import SongWidget
class CoreModel(GObject.GObject):
__gsignals__ = {
+ "artists-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
"playlist-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
"playlists-loaded": (GObject.SignalFlags.RUN_FIRST, None, ()),
}
diff --git a/gnomemusic/grilowrappers/grltrackersource.py b/gnomemusic/grilowrappers/grltrackersource.py
index 19ddfdb7..5585d35f 100644
--- a/gnomemusic/grilowrappers/grltrackersource.py
+++ b/gnomemusic/grilowrappers/grltrackersource.py
@@ -326,6 +326,7 @@ class GrlTrackerSource(GObject.GObject):
if not media:
print("NO MEDIA", source, op_id, media, error)
+ self._coremodel.emit("artists-loaded")
return
artist = CoreArtist(media, self._coremodel)
diff --git a/gnomemusic/views/artistsview.py b/gnomemusic/views/artistsview.py
index 584621c0..fa930727 100644
--- a/gnomemusic/views/artistsview.py
+++ b/gnomemusic/views/artistsview.py
@@ -62,8 +62,11 @@ class ArtistsView(BaseView):
self._artists = {}
self._window = window
- self._model = window._app.props.coremodel.props.artists_sort
+ self._coremodel = window._app.props.coremodel
+ self._model = self._coremodel.props.artists_sort
self._sidebar.bind_model(self._model, self._create_widget)
+ self._loaded_id = self._coremodel.connect(
+ "artists-loaded", self._on_artists_loaded)
sidebar_container.props.width_request = 220
sidebar_container.get_style_context().add_class('sidebar')
@@ -85,6 +88,12 @@ class ArtistsView(BaseView):
return row
+ def _on_artists_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")
+
@log
def _setup_view(self):
view_container = Gtk.ScrolledWindow(hexpand=True, vexpand=True)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]