[gnome-music/wip/jfelder/restore-mpris-playlists: 4/9] mpris: Restore playlists support
- From: Jean Felder <jfelder src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/jfelder/restore-mpris-playlists: 4/9] mpris: Restore playlists support
- Date: Fri, 27 Sep 2019 14:32:28 +0000 (UTC)
commit 92d60a6f1f39160e74cab262985667b792d26325
Author: Jean Felder <jfelder src gnome org>
Date: Thu Sep 19 11:51:36 2019 +0200
mpris: Restore playlists support
This functionality was disabled during the core rewrite.
The active_playlist property from CoreModel is used to know if a
playlist is being played.
gnomemusic/mpris.py | 17 ++++++++++-------
1 file changed, 10 insertions(+), 7 deletions(-)
---
diff --git a/gnomemusic/mpris.py b/gnomemusic/mpris.py
index 962465c0..0212883c 100644
--- a/gnomemusic/mpris.py
+++ b/gnomemusic/mpris.py
@@ -289,12 +289,13 @@ class MPRIS(DBusInterface):
self._player.connect(
'notify::repeat-mode', self._on_repeat_mode_changed)
self._player.connect('seek-finished', self._on_seek_finished)
- self._player.connect(
- 'playlist-changed', self._on_player_playlist_changed)
self._coremodel = app.props.coremodel
self._player_model = self._coremodel.props.playlist_sort
+ self._coremodel.connect(
+ "playlist-loaded", self._on_player_playlist_changed)
+
self._playlists_model = self._coremodel.props.playlists_sort
self._playlists_loaded_id = self._coremodel.connect(
"playlists-loaded", self._on_playlists_loaded)
@@ -496,12 +497,12 @@ class MPRIS(DBusInterface):
:returns: playlist existence and its structure
:rtype: tuple
"""
- if self._player.get_playlist_type() != PlayerPlaylist.Type.PLAYLIST:
+ current_playlist = self._coremodel.props.active_playlist
+ if current_playlist is None:
return (False, ("/", "", ""))
- playlist_id = self._player.get_playlist_id()
- playlist = self._playlists.get_playlist_from_id(playlist_id)
- mpris_playlist = self._get_mpris_playlist_from_playlist(playlist)
+ mpris_playlist = self._get_mpris_playlist_from_playlist(
+ current_playlist)
return (True, mpris_playlist)
@log
@@ -574,7 +575,7 @@ class MPRIS(DBusInterface):
self._seeked(int(position_second * 1e6))
@log
- def _on_player_playlist_changed(self, klass):
+ def _on_player_playlist_changed(self, coremodel):
self._update_songs_list()
mpris_playlist = self._get_active_playlist()
@@ -591,6 +592,8 @@ class MPRIS(DBusInterface):
self._coremodel.disconnect(self._playlists_loaded_id)
for playlist in self._playlists_model:
playlist.connect("notify::title", self._on_playlist_renamed)
+ playlist.connect(
+ "notify::active", self._on_player_playlist_changed)
self._playlists_model.connect(
"items-changed", self._on_playlists_count_changed)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]