diff options
| author | MarcoFalke <[email protected]> | 2020-04-10 16:32:12 -0400 |
|---|---|---|
| committer | MarcoFalke <[email protected]> | 2020-04-10 16:34:30 -0400 |
| commit | 3eb8b1c3924c1d14c1a4234eb5360f32808b86dc (patch) | |
| tree | 1d540ee7bb9c1fdd97f9c0785ceda74c9e34dc6f /src/qt/walletcontroller.h | |
| parent | Merge #18586: build: Bump gitian descriptors to 0.21 (diff) | |
| parent | gui: Avoid redundant tx status updates (diff) | |
| download | discoin-3eb8b1c3924c1d14c1a4234eb5360f32808b86dc.tar.xz discoin-3eb8b1c3924c1d14c1a4234eb5360f32808b86dc.zip | |
Merge #17905: gui: Avoid redundant tx status updates
96cb597325f64cadb3cf43e2cdb3d7c1e2e49891 gui: Avoid redundant tx status updates (Russell Yanofsky)
Pull request description:
This PR is part of the [process separation project](https://github.com/bitcoin/bitcoin/projects/10).
In `TransactionTablePriv::index`, avoid calling `interfaces::Wallet::tryGetTxStatus` if the status is up to date as of the most recent `NotifyBlockTip` notification. Store height from the most recent notification in a new `ClientModel::cachedNumBlocks` variable in order to check this.
This avoids floods of IPC traffic from `tryGetTxStatus` with #10102 when there are a lot of transactions. It might also make the GUI a little more efficient even when there is no IPC.
ACKs for top commit:
promag:
Code review ACK 96cb597325f64cadb3cf43e2cdb3d7c1e2e49891.
hebasto:
ACK 96cb597325f64cadb3cf43e2cdb3d7c1e2e49891
Tree-SHA512: fce597bf52a813ad4923110d0a39229ea09e1631e0d580ea18cffb09e58cdbb4b111a40a9a9270ff16d8163cd47b0bd9f1fe7e3a6c7ebb19198f049f8dd1aa46
Diffstat (limited to 'src/qt/walletcontroller.h')
| -rw-r--r-- | src/qt/walletcontroller.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/qt/walletcontroller.h b/src/qt/walletcontroller.h index f30eb2530..5840c3343 100644 --- a/src/qt/walletcontroller.h +++ b/src/qt/walletcontroller.h @@ -21,6 +21,7 @@ #include <QTimer> #include <QString> +class ClientModel; class OptionsModel; class PlatformStyle; class WalletModel; @@ -47,7 +48,7 @@ class WalletController : public QObject void removeAndDeleteWallet(WalletModel* wallet_model); public: - WalletController(interfaces::Node& node, const PlatformStyle* platform_style, OptionsModel* options_model, QObject* parent); + WalletController(ClientModel& client_model, const PlatformStyle* platform_style, QObject* parent); ~WalletController(); //! Returns wallet models currently open. @@ -70,6 +71,7 @@ Q_SIGNALS: private: QThread* const m_activity_thread; QObject* const m_activity_worker; + ClientModel& m_client_model; interfaces::Node& m_node; const PlatformStyle* const m_platform_style; OptionsModel* const m_options_model; |