[gnome-music/wip/jfelder/remove-gtk-dialog-run-usage: 25/25] lastfmdialog: Use response signal instead of the run method
- From: Marinus Schraal <mschraal src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-music/wip/jfelder/remove-gtk-dialog-run-usage: 25/25] lastfmdialog: Use response signal instead of the run method
- Date: Wed, 2 Feb 2022 11:34:10 +0000 (UTC)
commit 4128911b8c665049f8452bb3c3e6a6fef2c3b682
Author: Jean Felder <jfelder src gnome org>
Date: Mon Jan 10 17:35:49 2022 +0100
lastfmdialog: Use response signal instead of the run method
gtk_dialog_run has been removed in gtk4.
gnomemusic/application.py | 22 ++++++++++++++++++----
1 file changed, 18 insertions(+), 4 deletions(-)
---
diff --git a/gnomemusic/application.py b/gnomemusic/application.py
index c92a6aa1e..b5dff88dd 100644
--- a/gnomemusic/application.py
+++ b/gnomemusic/application.py
@@ -30,6 +30,7 @@
# code, but you are not obligated to do so. If you do not wish to do so,
# delete this exception statement from your version.
+from typing import Optional
from gettext import gettext as _
from gi.repository import Gtk, Gio, GLib, Gdk, GObject
@@ -78,6 +79,8 @@ class Application(Gtk.Application):
self._lastfm_scrobbler = LastFmScrobbler(self)
self._player = Player(self)
+ self._lastfm_dialog: Optional[LastfmDialog] = None
+
InhibitSuspend(self)
PauseOnSuspend(self._player)
@@ -208,10 +211,21 @@ class Application(Gtk.Application):
except GLib.Error:
self._log.message("Help handler not available.")
- def _lastfm_account(self, action, param):
- lastfm_dialog = LastfmDialog(self._window, self._lastfm_scrobbler)
- lastfm_dialog.run()
- lastfm_dialog.destroy()
+ def _lastfm_account(
+ self, action: Gio.SimpleAction,
+ param: Optional[GLib.Variant]) -> None:
+
+ def on_response(dialog: LastfmDialog, response_id: int) -> None:
+ if not self._lastfm_dialog:
+ return
+
+ self._lastfm_dialog.destroy()
+ self._lastfm_dialog = None
+
+ self._lastfm_dialog = LastfmDialog(
+ self._window, self._lastfm_scrobbler)
+ self._lastfm_dialog.connect("response", on_response)
+ self._lastfm_dialog.present()
def _about(self, action, param):
about = AboutDialog()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]