also unregister callbacks from qewallet and qechannellistmodel on destroy
This commit is contained in:
@@ -4,7 +4,7 @@ from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject
|
|||||||
from PyQt5.QtCore import Qt, QAbstractListModel, QModelIndex
|
from PyQt5.QtCore import Qt, QAbstractListModel, QModelIndex
|
||||||
|
|
||||||
from electrum.logging import get_logger
|
from electrum.logging import get_logger
|
||||||
from electrum.util import Satoshis, register_callback
|
from electrum.util import Satoshis, register_callback, unregister_callback
|
||||||
from electrum.lnutil import LOCAL, REMOTE
|
from electrum.lnutil import LOCAL, REMOTE
|
||||||
|
|
||||||
from .qetypes import QEAmount
|
from .qetypes import QEAmount
|
||||||
@@ -36,6 +36,7 @@ class QEChannelListModel(QAbstractListModel):
|
|||||||
# methods of this class only, and specifically not be
|
# methods of this class only, and specifically not be
|
||||||
# partials, lambdas or methods of subobjects. Hence...
|
# partials, lambdas or methods of subobjects. Hence...
|
||||||
register_callback(self.on_network, interests)
|
register_callback(self.on_network, interests)
|
||||||
|
self.destroyed.connect(lambda: self.on_destroy())
|
||||||
|
|
||||||
def on_network(self, event, *args):
|
def on_network(self, event, *args):
|
||||||
if event == 'channel':
|
if event == 'channel':
|
||||||
@@ -56,6 +57,8 @@ class QEChannelListModel(QAbstractListModel):
|
|||||||
else:
|
else:
|
||||||
self._logger.debug('unhandled event %s: %s' % (event, repr(args)))
|
self._logger.debug('unhandled event %s: %s' % (event, repr(args)))
|
||||||
|
|
||||||
|
def on_destroy(self):
|
||||||
|
unregister_callback(self.on_network)
|
||||||
|
|
||||||
def rowCount(self, index):
|
def rowCount(self, index):
|
||||||
return len(self.channels)
|
return len(self.channels)
|
||||||
|
|||||||
@@ -7,15 +7,16 @@ import threading
|
|||||||
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, QUrl, QTimer
|
from PyQt5.QtCore import pyqtProperty, pyqtSignal, pyqtSlot, QObject, QUrl, QTimer
|
||||||
|
|
||||||
from electrum.i18n import _
|
from electrum.i18n import _
|
||||||
from electrum.util import register_callback, Satoshis, format_time, parse_max_spend, InvalidPassword
|
from electrum.util import (register_callback, unregister_callback,
|
||||||
|
Satoshis, format_time, parse_max_spend, InvalidPassword)
|
||||||
from electrum.logging import get_logger
|
from electrum.logging import get_logger
|
||||||
from electrum.wallet import Wallet, Abstract_Wallet
|
from electrum.wallet import Wallet, Abstract_Wallet
|
||||||
from electrum.storage import StorageEncryptionVersion
|
from electrum.storage import StorageEncryptionVersion
|
||||||
from electrum import bitcoin
|
from electrum import bitcoin
|
||||||
from electrum.transaction import PartialTxOutput
|
from electrum.transaction import PartialTxOutput
|
||||||
from electrum.invoices import (Invoice, InvoiceError,
|
from electrum.invoices import (Invoice, InvoiceError,
|
||||||
PR_DEFAULT_EXPIRATION_WHEN_CREATING, PR_PAID,
|
PR_DEFAULT_EXPIRATION_WHEN_CREATING, PR_PAID,
|
||||||
PR_UNPAID, PR_UNKNOWN, PR_EXPIRED, PR_UNCONFIRMED)
|
PR_UNPAID, PR_UNKNOWN, PR_EXPIRED, PR_UNCONFIRMED)
|
||||||
|
|
||||||
from .qeinvoicelistmodel import QEInvoiceListModel, QERequestListModel
|
from .qeinvoicelistmodel import QEInvoiceListModel, QERequestListModel
|
||||||
from .qetransactionlistmodel import QETransactionListModel
|
from .qetransactionlistmodel import QETransactionListModel
|
||||||
@@ -86,6 +87,7 @@ class QEWallet(AuthMixin, QObject):
|
|||||||
# methods of this class only, and specifically not be
|
# methods of this class only, and specifically not be
|
||||||
# partials, lambdas or methods of subobjects. Hence...
|
# partials, lambdas or methods of subobjects. Hence...
|
||||||
register_callback(self.on_network, interests)
|
register_callback(self.on_network, interests)
|
||||||
|
self.destroyed.connect(lambda: self.on_destroy())
|
||||||
|
|
||||||
@pyqtProperty(bool, notify=isUptodateChanged)
|
@pyqtProperty(bool, notify=isUptodateChanged)
|
||||||
def isUptodate(self):
|
def isUptodate(self):
|
||||||
@@ -154,6 +156,8 @@ class QEWallet(AuthMixin, QObject):
|
|||||||
else:
|
else:
|
||||||
self._logger.debug('unhandled event: %s %s' % (event, str(args)))
|
self._logger.debug('unhandled event: %s %s' % (event, str(args)))
|
||||||
|
|
||||||
|
def on_destroy(self):
|
||||||
|
unregister_callback(self.on_network)
|
||||||
|
|
||||||
def add_tx_notification(self, tx):
|
def add_tx_notification(self, tx):
|
||||||
self._logger.debug('new transaction event')
|
self._logger.debug('new transaction event')
|
||||||
|
|||||||
Reference in New Issue
Block a user