Browse Source

qml: update new labels in history and addresscoinlist

master
Sander van Grieken 2 years ago
parent
commit
8ba7a00097
No known key found for this signature in database
GPG Key ID: 9BCF8209EA402EBA
  1. 19
      electrum/gui/qml/qeaddresslistmodel.py
  2. 5
      electrum/gui/qml/qetransactionlistmodel.py

19
electrum/gui/qml/qeaddresslistmodel.py

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

5
electrum/gui/qml/qetransactionlistmodel.py

@ -81,6 +81,11 @@ class QETransactionListModel(QAbstractListModel, QtEventListener):
roles = [self._ROLE_RMAP['date']] roles = [self._ROLE_RMAP['date']]
self.dataChanged.emit(index, index, roles) 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): def rowCount(self, index):
return len(self.tx_history) return len(self.tx_history)

Loading…
Cancel
Save