diff options
| author | xiphon <xiphon@protonmail.com> | 2020-10-09 12:04:53 +0000 |
|---|---|---|
| committer | xiphon <xiphon@protonmail.com> | 2020-10-09 14:11:05 +0000 |
| commit | 39d9d7d071dd9ed7a942578a7db520ac0ec08f5e (patch) | |
| tree | ce1d65d44cddca4e5860fcb08a0f1a7ff0ff56fd /src/libwalletqt/Wallet.h | |
| parent | d3943ca2a9e1fa27ec9141ed94e1d4fb530aca31 (diff) | |
| download | monzero-gui-39d9d7d071dd9ed7a942578a7db520ac0ec08f5e.tar.gz monzero-gui-39d9d7d071dd9ed7a942578a7db520ac0ec08f5e.tar.xz monzero-gui-39d9d7d071dd9ed7a942578a7db520ac0ec08f5e.zip | |
Wallet: rework wallet refreshing
Diffstat (limited to 'src/libwalletqt/Wallet.h')
| -rw-r--r-- | src/libwalletqt/Wallet.h | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/src/libwalletqt/Wallet.h b/src/libwalletqt/Wallet.h index b099a011..42e30336 100644 --- a/src/libwalletqt/Wallet.h +++ b/src/libwalletqt/Wallet.h @@ -63,6 +63,7 @@ class Wallet : public QObject, public PassprasePrompter { Q_OBJECT Q_PROPERTY(bool disconnected READ disconnected NOTIFY disconnectedChanged) + Q_PROPERTY(bool refreshing READ refreshing NOTIFY refreshingChanged) Q_PROPERTY(QString seed READ getSeed) Q_PROPERTY(QString seedLanguage READ getSeedLanguage) Q_PROPERTY(Status status READ status) @@ -207,20 +208,11 @@ public: Q_INVOKABLE bool importKeyImages(const QString& path); //! refreshes the wallet - Q_INVOKABLE bool refresh(); - - //! refreshes the wallet asynchronously - Q_INVOKABLE void refreshAsync(); - - //! setup auto-refresh interval in seconds - Q_INVOKABLE void setAutoRefreshInterval(int seconds); - - //! return auto-refresh interval in seconds - Q_INVOKABLE int autoRefreshInterval() const; + Q_INVOKABLE bool refresh(bool historyAndSubaddresses = true); // pause/resume refresh - Q_INVOKABLE void startRefresh() const; - Q_INVOKABLE void pauseRefresh() const; + Q_INVOKABLE void startRefresh(); + Q_INVOKABLE void pauseRefresh(); //! creates transaction Q_INVOKABLE PendingTransaction * createTransaction(const QString &dst_addr, const QString &payment_id, @@ -394,6 +386,7 @@ signals: void currentSubaddressAccountChanged() const; void disconnectedChanged() const; void proxyAddressChanged() const; + void refreshingChanged() const; private: Wallet(QObject * parent = nullptr); @@ -421,9 +414,12 @@ private: const QString& proxyAddress); bool disconnected() const; + bool refreshing() const; + void refreshingSet(bool value); void setConnectionStatus(ConnectionStatus value); QString getProxyAddress() const; void setProxyAddress(QString address); + void startRefreshThread(); private: friend class WalletManager; @@ -454,15 +450,17 @@ private: mutable SubaddressModel * m_subaddressModel; SubaddressAccount * m_subaddressAccount; mutable SubaddressAccountModel * m_subaddressAccountModel; + QMutex m_asyncMutex; QMutex m_connectionStatusMutex; bool m_connectionStatusRunning; QString m_daemonUsername; QString m_daemonPassword; QString m_proxyAddress; mutable QMutex m_proxyMutex; + std::atomic<bool> m_refreshEnabled; + std::atomic<bool> m_refreshing; WalletListenerImpl *m_walletListener; FutureScheduler m_scheduler; - QMutex m_storeMutex; }; |
