[gnome-music/wip/mschraal/restore-loading-notifications: 7/7] grltrackerwrapper: Bring back loading notifications
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/mschraal/restore-loading-notifications: 7/7] grltrackerwrapper: Bring back loading notifications
- Date: Wed, 25 Sep 2019 09:11:05 +0000 (UTC)
commit b48d8f856986d5be25306d886243e8d970af1a37
Author: Marinus Schraal <mschraal gnome org>
Date: Wed Sep 25 10:34:12 2019 +0200
grltrackerwrapper: Bring back loading notifications
Loading notifications got disabled during the core rewrite.
Fix this regression by re-introducing loading notifications for most
Grilo+Tracker queries.
gnomemusic/grilowrappers/grltrackerplaylists.py | 20 ++++++++++++++++++++
gnomemusic/grilowrappers/grltrackerwrapper.py | 25 +++++++++++++++++++++++++
2 files changed, 45 insertions(+)
---
diff --git a/gnomemusic/grilowrappers/grltrackerplaylists.py b/gnomemusic/grilowrappers/grltrackerplaylists.py
index 27027fa0..bb2f5c8b 100644
--- a/gnomemusic/grilowrappers/grltrackerplaylists.py
+++ b/gnomemusic/grilowrappers/grltrackerplaylists.py
@@ -82,6 +82,7 @@ class GrlTrackerPlaylists(GObject.GObject):
self._user_model_filter = self._coremodel.props.user_playlists_filter
self._pls_todelete = []
self._tracker = tracker_wrapper.props.tracker
+ self._window = application.props.window
self._user_model_filter.set_filter_func(self._user_playlists_filter)
@@ -110,6 +111,7 @@ class GrlTrackerPlaylists(GObject.GObject):
for playlist in smart_playlists.values():
self._model.append(playlist)
+ self._window.notifications_popup.push_loading()
query = """
SELECT DISTINCT
rdf:type(?playlist)
@@ -140,9 +142,11 @@ class GrlTrackerPlaylists(GObject.GObject):
self, source, op_id, media, remaining, data=None, error=None):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
self._coremodel.emit("playlists-loaded")
+ self._window.notifications_popup.pop_loading()
return
playlist = Playlist(
@@ -192,7 +196,9 @@ class GrlTrackerPlaylists(GObject.GObject):
break
self._model_filter.set_filter_func(self._playlists_filter)
+ self._window.notifications_popup.pop_loading()
+ self._window.notifications_popup.push_loading()
query = """
DELETE {
?playlist a rdfs:Resource .
@@ -243,6 +249,7 @@ class GrlTrackerPlaylists(GObject.GObject):
query, self.METADATA_KEYS, options, self._add_user_playlist,
callback)
+ self._window.notifications_popup.push_loading()
query = """
INSERT {
_:playlist a nmm:Playlist ;
@@ -321,6 +328,7 @@ class Playlist(GObject.GObject):
self._coreselection = application.props.coreselection
self._grilo = grilo
self._tracker = tracker
+ self._window = application.props.window
self._fast_options = Grl.OperationOptions()
self._fast_options.set_resolution_flags(
@@ -342,6 +350,8 @@ class Playlist(GObject.GObject):
self._model = value
def _populate_model(self):
+ self._window.notifications_popup.push_loading()
+
query = """
SELECT
rdf:type(?song)
@@ -386,6 +396,7 @@ class Playlist(GObject.GObject):
if not media:
self.props.count = self._model.get_n_items()
self.emit("playlist-loaded")
+ self._window.notifications_popup.pop_loading()
return
coresong = CoreSong(media, self._coreselection, self._grilo)
@@ -404,11 +415,14 @@ class Playlist(GObject.GObject):
:param str new_name: new playlist name
"""
+ self._window.notifications_popup.push_loading()
+
def update_cb(conn, res, data):
# FIXME: Check for failure.
conn.update_finish(res)
# FIXME: Requery instead?
self.props.title = new_name
+ self._window.notifications_popup.pop_loading()
query = """
INSERT OR REPLACE {
@@ -461,7 +475,9 @@ class Playlist(GObject.GObject):
def update_cb(conn, res, data):
# FIXME: Check for failure.
conn.update_finish(res)
+ self._window.notifications_popup.pop_loading()
+ self._window.notifications_popup.push_loading()
query = """
INSERT OR REPLACE {
?entry nfo:listPosition ?position .
@@ -676,13 +692,17 @@ class SmartPlaylist(Playlist):
if self._model is None:
self._model = Gio.ListStore.new(CoreSong)
+ self._window.notifications_popup.push_loading()
+
def _add_to_model(source, op_id, media, remaining, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
self.props.count = self._model.get_n_items()
+ self._window.notifications_popup.pop_loading()
return
coresong = CoreSong(media, self._coreselection, self._grilo)
diff --git a/gnomemusic/grilowrappers/grltrackerwrapper.py b/gnomemusic/grilowrappers/grltrackerwrapper.py
index f5a275dd..fe5d5e63 100644
--- a/gnomemusic/grilowrappers/grltrackerwrapper.py
+++ b/gnomemusic/grilowrappers/grltrackerwrapper.py
@@ -91,6 +91,7 @@ class GrlTrackerWrapper(GObject.GObject):
self._artist_search_model = self._coremodel.props.artists_search
self._batch_changed_media_ids = {}
self._content_changed_timeout = None
+ self._window = application.props.window
self._song_search_tracker = Gfm.FilterListModel.new(self._model)
self._song_search_tracker.set_filter_func(lambda a: False)
@@ -331,13 +332,16 @@ class GrlTrackerWrapper(GObject.GObject):
options, _update_changed_media)
def _initial_songs_fill(self, source):
+ self._window.notifications_popup.push_loading()
def _add_to_model(source, op_id, media, user_data, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
+ self._window.notifications_popup.pop_loading()
return
song = CoreSong(media, self._coreselection, self._grilo)
@@ -377,13 +381,16 @@ class GrlTrackerWrapper(GObject.GObject):
self._source.query(query, self.METADATA_KEYS, options, _add_to_model)
def _initial_albums_fill(self, source):
+ self._window.notifications_popup.push_loading()
def _add_to_albums_model(source, op_id, media, user_data, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
+ self._window.notifications_popup.pop_loading()
return
album = CoreAlbum(media, self._coremodel)
@@ -421,14 +428,17 @@ class GrlTrackerWrapper(GObject.GObject):
source.query(query, self.METADATA_KEYS, options, _add_to_albums_model)
def _initial_artists_fill(self, source):
+ self._window.notifications_popup.push_loading()
def _add_to_artists_model(source, op_id, media, user_data, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
self._coremodel.emit("artists-loaded")
+ self._window.notifications_popup.pop_loading()
return
artist = CoreArtist(media, self._coremodel)
@@ -464,6 +474,7 @@ class GrlTrackerWrapper(GObject.GObject):
:param Grl.Media media: The media with the artist id
:param Gfm.FilterListModel model: The model to fill
"""
+ self._window.notifications_popup.push_loading()
artist_id = media.get_id()
query = """
@@ -494,10 +505,12 @@ class GrlTrackerWrapper(GObject.GObject):
def query_cb(source, op_id, media, user_data, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
model.set_filter_func(albums_filter, albums)
+ self._window.notifications_popup.pop_loading()
return
albums.append(media)
@@ -519,6 +532,7 @@ class GrlTrackerWrapper(GObject.GObject):
:param Grl.Media media: The media with the album id
:param Gfm.SortListModel disc_model: The model to fill
"""
+ self._window.notifications_popup.push_loading()
album_id = media.get_id()
query = """
@@ -541,9 +555,11 @@ class GrlTrackerWrapper(GObject.GObject):
def _disc_nr_cb(source, op_id, media, user_data, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
+ self._window.notifications_popup.pop_loading()
return
disc_nr = media.get_album_disc_number()
@@ -611,6 +627,7 @@ class GrlTrackerWrapper(GObject.GObject):
GLib.utf8_casefold(text, -1), -1, GLib.NormalizeMode.NFKD))
# Artist search
+ self._window.notifications_popup.push_loading()
query = """
SELECT DISTINCT
@@ -652,10 +669,12 @@ class GrlTrackerWrapper(GObject.GObject):
def artist_search_cb(source, op_id, media, data, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
self._artist_search_model.set_filter_func(artist_filter)
+ self._window.notifications_popup.pop_loading()
return
artist_filter_ids.append(media.get_id())
@@ -665,6 +684,7 @@ class GrlTrackerWrapper(GObject.GObject):
query, self.METADATA_KEYS, options, artist_search_cb)
# Album search
+ self._window.notifications_popup.push_loading()
query = """
SELECT DISTINCT
@@ -704,10 +724,12 @@ class GrlTrackerWrapper(GObject.GObject):
def albums_search_cb(source, op_id, media, data, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
self._album_search_model.set_filter_func(album_filter)
+ self._window.notifications_popup.pop_loading()
return
album_filter_ids.append(media.get_id())
@@ -717,6 +739,7 @@ class GrlTrackerWrapper(GObject.GObject):
query, self.METADATA_KEYS, options, albums_search_cb)
# Song search
+ self._window.notifications_popup.push_loading()
query = """
SELECT DISTINCT
@@ -762,10 +785,12 @@ class GrlTrackerWrapper(GObject.GObject):
def songs_search_cb(source, op_id, media, data, error):
if error:
print("ERROR", error)
+ self._window.notifications_popup.pop_loading()
return
if not media:
self._song_search_tracker.set_filter_func(songs_filter)
+ self._window.notifications_popup.pop_loading()
return
filter_ids.append(media.get_id())
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]