From f0d00dca3716d9f13a87f48622af14de70426c73 Mon Sep 17 00:00:00 2001 From: Sander van Grieken Date: Tue, 28 Jun 2022 11:47:23 +0200 Subject: [PATCH] unregister callback when object gets destroyed. turns out we need to use a lambda to have the signal processed, registering the member function somehow never triggers the 'destroyed' signal --- electrum/gui/qml/qechanneldetails.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/electrum/gui/qml/qechanneldetails.py b/electrum/gui/qml/qechanneldetails.py index 6a21a0e46..96ff41b21 100644 --- a/electrum/gui/qml/qechanneldetails.py +++ b/electrum/gui/qml/qechanneldetails.py @@ -18,7 +18,8 @@ class QEChannelDetails(QObject): def __init__(self, parent=None): super().__init__(parent) - register_callback(self.on_network, ['channel']) # TODO unregister too + register_callback(self.on_network, ['channel']) + self.destroyed.connect(lambda: self.on_destroy()) def on_network(self, event, *args): if event == 'channel': @@ -26,6 +27,9 @@ class QEChannelDetails(QObject): if wallet == self._wallet.wallet and self._channelid == channel.channel_id.hex(): self.channelChanged.emit() + def on_destroy(self): + unregister_callback(self.on_network) + walletChanged = pyqtSignal() @pyqtProperty(QEWallet, notify=walletChanged) def wallet(self):