1
0

qml: update new labels in history and addresscoinlist

This commit is contained in:
Sander van Grieken
2023-12-12 16:33:58 +01:00
parent 3a22cb9c48
commit 8ba7a00097
2 changed files with 21 additions and 3 deletions

View File

@@ -7,6 +7,7 @@ from electrum.logging import get_logger
from electrum.util import Satoshis
from .qetypes import QEAmount
from .util import qt_event_listener, QtEventListener
if TYPE_CHECKING:
from electrum.wallet import Abstract_Wallet
@@ -102,7 +103,7 @@ class QEAddressCoinFilterProxyModel(QSortFilterProxyModel):
self.filterTextChanged.emit()
class QEAddressCoinListModel(QAbstractListModel):
class QEAddressCoinListModel(QAbstractListModel, QtEventListener):
_logger = get_logger(__name__)
# define listmodel rolemap
@@ -118,9 +119,20 @@ class QEAddressCoinListModel(QAbstractListModel):
self._items = []
self._filterModel = None
self.register_callbacks()
self.destroyed.connect(lambda: self.on_destroy())
self._dirty = True
self.initModel()
def on_destroy(self):
self.unregister_callbacks()
@qt_event_listener
def on_event_labels_received(self, wallet, labels):
if wallet == self.wallet:
self.setDirty()
def rowCount(self, index):
return len(self._items)
@@ -185,8 +197,9 @@ class QEAddressCoinListModel(QAbstractListModel):
# initial model data
@pyqtSlot()
def initModel(self):
if not self._dirty:
@pyqtSlot(bool)
def initModel(self, force: bool = False):
if not self._dirty and not force:
return
r_addresses = self.wallet.get_receiving_addresses()

View File

@@ -81,6 +81,11 @@ class QETransactionListModel(QAbstractListModel, QtEventListener):
roles = [self._ROLE_RMAP['date']]
self.dataChanged.emit(index, index, roles)
@qt_event_listener
def on_event_labels_received(self, wallet, labels):
if wallet == self.wallet:
self.initModel(True) # TODO: be less dramatic
def rowCount(self, index):
return len(self.tx_history)