From 0544c4b6516740decd69ab51a969a4787ad48a85 Mon Sep 17 00:00:00 2001 From: ThomasV Date: Wed, 12 Apr 2023 11:28:16 +0200 Subject: [PATCH] payserver: fix #8299 --- electrum/plugins/payserver/payserver.py | 1 - electrum/plugins/payserver/qt.py | 14 ++++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/electrum/plugins/payserver/payserver.py b/electrum/plugins/payserver/payserver.py index 2e45401de..8f46c99bf 100644 --- a/electrum/plugins/payserver/payserver.py +++ b/electrum/plugins/payserver/payserver.py @@ -70,7 +70,6 @@ class PayServerPlugin(BasePlugin): if view_url := self.view_url(key): d['view_url'] = view_url - class PayServer(Logger, EventListener): WWW_DIR = os.path.join(os.path.dirname(__file__), 'www') diff --git a/electrum/plugins/payserver/qt.py b/electrum/plugins/payserver/qt.py index 2e485e62a..f6f18aeaa 100644 --- a/electrum/plugins/payserver/qt.py +++ b/electrum/plugins/payserver/qt.py @@ -33,6 +33,18 @@ from .payserver import PayServerPlugin class Plugin(PayServerPlugin): + _init_qt_received = False + + @hook + def init_qt(self, gui: 'ElectrumGui'): + if self._init_qt_received: # only need/want the first signal + return + self._init_qt_received = True + # If the user just enabled the plugin, the 'load_wallet' hook would not + # get called for already loaded wallets, hence we call it manually for those: + for window in gui.windows: + self.daemon_wallet_loaded(gui.daemon, window.wallet) + def requires_settings(self): return True @@ -68,6 +80,8 @@ class Plugin(PayServerPlugin): self.config.set_key('payserver_address', str(address_e.text())) self.config.set_key('ssl_keyfile', str(keyfile_e.text())) self.config.set_key('ssl_certfile', str(certfile_e.text())) + # fixme: restart the server + window.show_message('Please restart Electrum to enable those changes') @hook def receive_list_menu(self, parent, menu, key):