qml: refresh address list on new transaction by setting dirty flag
This commit is contained in:
@@ -169,4 +169,7 @@ Pane {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Component.onCompleted: {
|
||||||
|
Daemon.currentWallet.addressModel.init_model()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class QEAddressListModel(QAbstractListModel):
|
|||||||
def __init__(self, wallet: 'Abstract_Wallet', parent=None):
|
def __init__(self, wallet: 'Abstract_Wallet', parent=None):
|
||||||
super().__init__(parent)
|
super().__init__(parent)
|
||||||
self.wallet = wallet
|
self.wallet = wallet
|
||||||
|
self.setDirty()
|
||||||
self.init_model()
|
self.init_model()
|
||||||
|
|
||||||
_logger = get_logger(__name__)
|
_logger = get_logger(__name__)
|
||||||
@@ -60,9 +61,16 @@ class QEAddressListModel(QAbstractListModel):
|
|||||||
item['held'] = self.wallet.is_frozen_address(address)
|
item['held'] = self.wallet.is_frozen_address(address)
|
||||||
return item
|
return item
|
||||||
|
|
||||||
|
@pyqtSlot()
|
||||||
|
def setDirty(self):
|
||||||
|
self._dirty = True
|
||||||
|
|
||||||
# initial model data
|
# initial model data
|
||||||
@pyqtSlot()
|
@pyqtSlot()
|
||||||
def init_model(self):
|
def init_model(self):
|
||||||
|
if not self._dirty:
|
||||||
|
return
|
||||||
|
|
||||||
r_addresses = self.wallet.get_receiving_addresses()
|
r_addresses = self.wallet.get_receiving_addresses()
|
||||||
c_addresses = self.wallet.get_change_addresses()
|
c_addresses = self.wallet.get_change_addresses()
|
||||||
n_addresses = len(r_addresses) + len(c_addresses) if self.wallet.use_change else 0
|
n_addresses = len(r_addresses) + len(c_addresses) if self.wallet.use_change else 0
|
||||||
@@ -85,6 +93,8 @@ class QEAddressListModel(QAbstractListModel):
|
|||||||
i = i + 1
|
i = i + 1
|
||||||
self.endInsertRows()
|
self.endInsertRows()
|
||||||
|
|
||||||
|
self._dirty = False
|
||||||
|
|
||||||
@pyqtSlot(str)
|
@pyqtSlot(str)
|
||||||
def update_address(self, address):
|
def update_address(self, address):
|
||||||
i = 0
|
i = 0
|
||||||
|
|||||||
@@ -171,7 +171,9 @@ class QEWallet(AuthMixin, QObject, QtEventListener):
|
|||||||
@qt_event_listener
|
@qt_event_listener
|
||||||
def on_event_new_transaction(self, wallet, tx):
|
def on_event_new_transaction(self, wallet, tx):
|
||||||
if wallet == self.wallet:
|
if wallet == self.wallet:
|
||||||
|
self._logger.info(f'new transaction {tx.txid()}')
|
||||||
self.add_tx_notification(tx)
|
self.add_tx_notification(tx)
|
||||||
|
self.addressModel.setDirty()
|
||||||
self.historyModel.init_model() # TODO: be less dramatic
|
self.historyModel.init_model() # TODO: be less dramatic
|
||||||
|
|
||||||
@qt_event_listener
|
@qt_event_listener
|
||||||
|
|||||||
Reference in New Issue
Block a user