From 0a631877dfacfce3f8b7d53a9f48e2e585a6a90d Mon Sep 17 00:00:00 2001 From: coderkun Date: Sat, 24 Oct 2020 14:58:28 +0200 Subject: [PATCH] Fix setting albumart on UI widgets --- mcg/coverpanel.py | 12 ++++++++---- mcg/librarypanel.py | 10 +++++++--- mcg/playlistpanel.py | 10 +++++++--- mcg/window.py | 6 +++--- 4 files changed, 25 insertions(+), 13 deletions(-) diff --git a/mcg/coverpanel.py b/mcg/coverpanel.py index 585e6a3..102b69c 100644 --- a/mcg/coverpanel.py +++ b/mcg/coverpanel.py @@ -191,11 +191,9 @@ class CoverPanel(Gtk.Overlay): # Reset image self._cover_pixbuf = self._get_default_image() self._current_size = None - # Show image - self._resize_image() - self.cover_stack.set_visible_child(self.cover_scroll) - self.cover_spinner.stop() self._current_cover_album = album + # Show image + GObject.idle_add(self._show_image) def _set_tracks(self, album): @@ -237,6 +235,12 @@ class CoverPanel(Gtk.Overlay): return True + def _show_image(self): + self._resize_image() + self.cover_stack.set_visible_child(self.cover_scroll) + self.cover_spinner.stop() + + def _resize_image(self): """Diese Methode skaliert das geladene Bild aus dem Pixelpuffer auf die Größe des Fensters unter Beibehalt der Seitenverhältnisse diff --git a/mcg/librarypanel.py b/mcg/librarypanel.py index 449af69..b44bf5b 100644 --- a/mcg/librarypanel.py +++ b/mcg/librarypanel.py @@ -441,9 +441,7 @@ class LibraryPanel(Gtk.Stack): else: self._standalone_pixbuf = self._get_default_image() # Show image - self._resize_standalone_image() - self.standalone_stack.set_visible_child(self.standalone_scroll) - self.standalone_spinner.stop() + GObject.idle_add(self._show_image) def compare_albums(self, model, row1, row2, criterion): @@ -585,6 +583,12 @@ class LibraryPanel(Gtk.Stack): self._library_lock.release() + def _show_image(self): + self._resize_standalone_image() + self.standalone_stack.set_visible_child(self.standalone_scroll) + self.standalone_spinner.stop() + + def _redraw(self): if self._albums is not None: self.set_albums(self._host, self._albums) diff --git a/mcg/playlistpanel.py b/mcg/playlistpanel.py index 6e92bc3..a268233 100644 --- a/mcg/playlistpanel.py +++ b/mcg/playlistpanel.py @@ -227,9 +227,7 @@ class PlaylistPanel(Gtk.Stack): else: self._cover_pixbuf = self._get_default_image() # Show image - self._resize_standalone_image() - self.standalone_stack.set_visible_child(self.standalone_scroll) - self.standalone_spinner.stop() + GObject.idle_add(self._show_image) def stop_threads(self): @@ -295,6 +293,12 @@ class PlaylistPanel(Gtk.Stack): self._playlist_lock.release() + def _show_image(self): + self._resize_standalone_image() + self.standalone_stack.set_visible_child(self.standalone_scroll) + self.standalone_spinner.stop() + + def _redraw(self): if self._playlist is not None: self.set_playlist(self._host, self._playlist) diff --git a/mcg/window.py b/mcg/window.py index a098276..cbdcc7a 100644 --- a/mcg/window.py +++ b/mcg/window.py @@ -480,9 +480,9 @@ class Window(Gtk.ApplicationWindow): def on_mcg_load_albumart(self, album, data): - GObject.idle_add(self._cover_panel.set_albumart, album, data) - GObject.idle_add(self._playlist_panel.set_albumart, album, data) - GObject.idle_add(self._library_panel.set_albumart, album, data) + self._cover_panel.set_albumart(album, data) + self._playlist_panel.set_albumart(album, data) + self._library_panel.set_albumart(album, data) def on_mcg_custom(self, name):