[gnome-music/wip/mschraal/core: 172/190] application: Make CoreModel and CoreSelection properties
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/mschraal/core: 172/190] application: Make CoreModel and CoreSelection properties
- Date: Sun, 7 Jul 2019 21:47:53 +0000 (UTC)
commit 05c0628152440f056f4641e2f6923da17c4a508f
Author: Marinus Schraal <mschraal gnome org>
Date: Tue Jul 2 16:19:29 2019 +0200
application: Make CoreModel and CoreSelection properties
gnomemusic/application.py | 20 ++++++++++++++++++++
gnomemusic/player.py | 2 +-
gnomemusic/views/albumsview.py | 4 ++--
gnomemusic/views/artistsview.py | 2 +-
gnomemusic/views/searchview.py | 2 +-
gnomemusic/views/songsview.py | 2 +-
gnomemusic/widgets/albumwidget.py | 8 ++++----
gnomemusic/widgets/artistalbumswidget.py | 9 +++++----
8 files changed, 35 insertions(+), 14 deletions(-)
---
diff --git a/gnomemusic/application.py b/gnomemusic/application.py
index 1a20935b..73ded2d6 100644
--- a/gnomemusic/application.py
+++ b/gnomemusic/application.py
@@ -101,6 +101,26 @@ class Application(Gtk.Application):
"""
return self._settings
+ @GObject.Property(
+ type=CoreModel, flags=GObject.ParamFlags.READABLE)
+ def coremodel(self):
+ """Get class providing all listmodels.
+
+ :returns: List model provider class
+ :rtype: CoreModel
+ """
+ return self._coremodel
+
+ @GObject.Property(
+ type=CoreSelection, flags=GObject.ParamFlags.READABLE)
+ def coreselection(self):
+ """Get selection object.
+
+ :returns: Object containing all selection info
+ :rtype: CoreSelection
+ """
+ return self._coreselection
+
@log
def _build_app_menu(self):
action_entries = [
diff --git a/gnomemusic/player.py b/gnomemusic/player.py
index f155b1bd..ada32493 100644
--- a/gnomemusic/player.py
+++ b/gnomemusic/player.py
@@ -115,7 +115,7 @@ class PlayerPlaylist(GObject.GObject):
# self._discoverer.connect('discovered', self._on_discovered)
# self._discoverer.start()
- self._model = self._app._coremodel.props.playlist_sort
+ self._model = self._app.props.coremodel.props.playlist_sort
self.connect("notify::repeat-mode", self._on_repeat_mode_changed)
diff --git a/gnomemusic/views/albumsview.py b/gnomemusic/views/albumsview.py
index 72dae4db..3ffc707c 100644
--- a/gnomemusic/views/albumsview.py
+++ b/gnomemusic/views/albumsview.py
@@ -92,7 +92,7 @@ class AlbumsView(BaseView):
self._box.add(scrolledwin)
- self._model = self._window._app._coremodel.props.albums_sort
+ self._model = self._window._app.props.coremodel.props.albums_sort
self._view.bind_model(self._model, self._create_widget)
self._view.show()
@@ -150,7 +150,7 @@ class AlbumsView(BaseView):
Selects or unselects all items without sending the notify::active
signal for performance purposes.
"""
- with self._window._app._coreselection.freeze_notify():
+ with self._window._app.props.coreselection.freeze_notify():
for child in self._view.get_children():
child.props.selected = selected
child.props.corealbum.props.selected = selected
diff --git a/gnomemusic/views/artistsview.py b/gnomemusic/views/artistsview.py
index f9e7e255..92b8e65a 100644
--- a/gnomemusic/views/artistsview.py
+++ b/gnomemusic/views/artistsview.py
@@ -62,7 +62,7 @@ class ArtistsView(BaseView):
self._artists = {}
self._window = window
- self._model = window._app._coremodel.props.artists_sort
+ self._model = window._app.props.coremodel.props.artists_sort
self._sidebar.bind_model(self._model, self._create_widget)
sidebar_container.props.width_request = 220
diff --git a/gnomemusic/views/searchview.py b/gnomemusic/views/searchview.py
index a8108f64..e4e95e97 100644
--- a/gnomemusic/views/searchview.py
+++ b/gnomemusic/views/searchview.py
@@ -45,7 +45,7 @@ class SearchView(BaseView):
@log
def __init__(self, window, player):
- self._coremodel = window._app._coremodel
+ self._coremodel = window._app.props.coremodel
self._model = self._coremodel.props.songs_search
self._album_model = self._coremodel.props.albums_search
self._artist_model = self._coremodel.props.artists_search
diff --git a/gnomemusic/views/songsview.py b/gnomemusic/views/songsview.py
index bb7594d5..703fbb0b 100644
--- a/gnomemusic/views/songsview.py
+++ b/gnomemusic/views/songsview.py
@@ -53,7 +53,7 @@ class SongsView(BaseView):
:param player: The main player object
"""
self._window = window
- self._coremodel = self._window._app._coremodel
+ self._coremodel = self._window._app.props.coremodel
super().__init__('songs', _("Songs"), window)
self._offset = 0
diff --git a/gnomemusic/widgets/albumwidget.py b/gnomemusic/widgets/albumwidget.py
index 8c213b31..24305671 100644
--- a/gnomemusic/widgets/albumwidget.py
+++ b/gnomemusic/widgets/albumwidget.py
@@ -154,14 +154,14 @@ class AlbumWidget(Gtk.EventBox):
return
signal_id = None
+ coremodel = self._parent_view._window._app.props.coremodel
def _on_playlist_loaded(klass):
self._player.play(None, None, song_widget._media)
- self._parent_view._window._app._coremodel.disconnect(signal_id)
+ coremodel.disconnect(signal_id)
- signal_id = self._parent_view._window._app._coremodel.connect(
- "playlist-loaded", _on_playlist_loaded)
- self._parent_view._window._app._coremodel.set_playlist_model(
+ signal_id = coremodel.connect("playlist-loaded", _on_playlist_loaded)
+ coremodel.set_playlist_model(
PlayerPlaylist.Type.ALBUM, song_widget._media, self._album_model)
return True
diff --git a/gnomemusic/widgets/artistalbumswidget.py b/gnomemusic/widgets/artistalbumswidget.py
index 5829bd0a..23d37a03 100644
--- a/gnomemusic/widgets/artistalbumswidget.py
+++ b/gnomemusic/widgets/artistalbumswidget.py
@@ -104,13 +104,14 @@ class ArtistAlbumsWidget(Gtk.Box):
if self.props.selection_mode:
return
+ coremodel = self._player._app.props.coremodel
+
def _on_playlist_loaded(klass):
self._player.play(None, None, song_widget._media)
- self._player._app._coremodel.disconnect(signal_id)
+ coremodel.disconnect(signal_id)
- signal_id = self._player._app._coremodel.connect(
- "playlist-loaded", _on_playlist_loaded)
- self._player._app._coremodel.set_playlist_model(
+ signal_id = coremodel.connect("playlist-loaded", _on_playlist_loaded)
+ coremodel.set_playlist_model(
PlayerPlaylist.Type.ARTIST, song_widget._media, self._model)
def _add_album(self, corealbum):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]