diff options
| author | xiphon <xiphon@protonmail.com> | 2019-06-13 12:19:52 +0000 |
|---|---|---|
| committer | xiphon <xiphon@protonmail.com> | 2019-06-13 12:33:05 +0000 |
| commit | 2524cc179e985cd6abfb7cb4b4c7e6a064188cef (patch) | |
| tree | 9699c1bbe10ec138d85c7907a87a7aa122ce0f3b /src/libwalletqt | |
| parent | 68c7cf7276b8192ef800e3ab8fcc51815fb9c1cc (diff) | |
| download | monzero-gui-2524cc179e985cd6abfb7cb4b4c7e6a064188cef.tar.gz monzero-gui-2524cc179e985cd6abfb7cb4b4c7e6a064188cef.tar.xz monzero-gui-2524cc179e985cd6abfb7cb4b4c7e6a064188cef.zip | |
Wallet: async fetching wallet, daemon and target height
Diffstat (limited to 'src/libwalletqt')
| -rw-r--r-- | src/libwalletqt/Wallet.cpp | 13 | ||||
| -rw-r--r-- | src/libwalletqt/Wallet.h | 22 |
2 files changed, 26 insertions, 9 deletions
diff --git a/src/libwalletqt/Wallet.cpp b/src/libwalletqt/Wallet.cpp index 2f106aed..629106da 100644 --- a/src/libwalletqt/Wallet.cpp +++ b/src/libwalletqt/Wallet.cpp @@ -348,6 +348,19 @@ void Wallet::setSubaddressLabel(quint32 accountIndex, quint32 addressIndex, cons m_walletImpl->setSubaddressLabel(accountIndex, addressIndex, label.toStdString()); } +void Wallet::refreshHeightAsync() const +{ + QtConcurrent::run([this] { + QFuture<quint64> daemonHeight = QtConcurrent::run([this] { + return daemonBlockChainHeight(); + }); + QFuture<quint64> targetHeight = QtConcurrent::run([this] { + return daemonBlockChainTargetHeight(); + }); + emit heightRefreshed(blockChainHeight(), daemonHeight.result(), targetHeight.result()); + }); +} + quint64 Wallet::blockChainHeight() const { return m_walletImpl->blockChainHeight(); diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h index 39df6cc8..ba12d1de 100644 --- a/src/libwalletqt/Wallet.h +++ b/src/libwalletqt/Wallet.h @@ -181,15 +181,7 @@ public: //! returns if view only wallet Q_INVOKABLE bool viewOnly() const; - //! returns current wallet's block height - //! (can be less than daemon's blockchain height when wallet sync in progress) - Q_INVOKABLE quint64 blockChainHeight() const; - - //! returns daemon's blockchain height - Q_INVOKABLE quint64 daemonBlockChainHeight() const; - - //! returns daemon's blockchain target height - Q_INVOKABLE quint64 daemonBlockChainTargetHeight() const; + Q_INVOKABLE void refreshHeightAsync() const; //! export/import key images Q_INVOKABLE bool exportKeyImages(const QString& path); @@ -355,6 +347,7 @@ signals: void deviceButtonRequest(quint64 buttonCode); void deviceButtonPressed(); void transactionCommitted(bool status, PendingTransaction *t, QStringList txid); + void heightRefreshed(quint64 walletHeight, quint64 daemonHeight, quint64 targetHeight) const; // emitted when transaction is created async void transactionCreated(PendingTransaction * transaction, QString address, QString paymentId, quint32 mixinCount); @@ -365,6 +358,17 @@ private: Wallet(QObject * parent = nullptr); Wallet(Monero::Wallet *w, QObject * parent = 0); ~Wallet(); + + //! returns current wallet's block height + //! (can be less than daemon's blockchain height when wallet sync in progress) + quint64 blockChainHeight() const; + + //! returns daemon's blockchain height + quint64 daemonBlockChainHeight() const; + + //! returns daemon's blockchain target height + quint64 daemonBlockChainTargetHeight() const; + private: friend class WalletManager; friend class WalletListenerImpl; |
