diff options
| author | Ilya Kitaev <mbg033@gmail.com> | 2016-08-18 21:55:34 +0300 |
|---|---|---|
| committer | Ilya Kitaev <mbg033@gmail.com> | 2016-08-18 21:55:34 +0300 |
| commit | d3234bb91564ee8327b111e0acf2a83153929c25 (patch) | |
| tree | 8831398e88dfcefe8656486a227105e84a58bb7c /src/libwalletqt/WalletManager.cpp | |
| parent | c1269301f7c19a849b0fae7ddbe9afd38aaf71d3 (diff) | |
| download | monzero-gui-d3234bb91564ee8327b111e0acf2a83153929c25.tar.gz monzero-gui-d3234bb91564ee8327b111e0acf2a83153929c25.tar.xz monzero-gui-d3234bb91564ee8327b111e0acf2a83153929c25.zip | |
WalletManager::openWalletAsync in progress
Diffstat (limited to 'src/libwalletqt/WalletManager.cpp')
| -rw-r--r-- | src/libwalletqt/WalletManager.cpp | 34 |
1 files changed, 33 insertions, 1 deletions
diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp index a7742bca..50a61553 100644 --- a/src/libwalletqt/WalletManager.cpp +++ b/src/libwalletqt/WalletManager.cpp @@ -6,6 +6,7 @@ #include <QDir> #include <QDebug> #include <QUrl> +#include <QtConcurrent/QtConcurrent> @@ -42,6 +43,20 @@ Wallet *WalletManager::openWallet(const QString &path, const QString &password, return wallet; } +void WalletManager::openWalletAsync(const QString &path, const QString &password, bool testnet) +{ + QFuture<Wallet*> future = QtConcurrent::run(this, &WalletManager::openWallet, + path, password, testnet); + QFutureWatcher<Wallet*> * watcher = new QFutureWatcher<Wallet*>(); + watcher->setFuture(future); + connect(watcher, &QFutureWatcher<Wallet*>::finished, + this, [this, watcher]() { + QFuture<Wallet*> future = watcher->future(); + watcher->deleteLater(); + emit walletOpened(future.result()); + }); +} + Wallet *WalletManager::recoveryWallet(const QString &path, const QString &memo, bool testnet) { @@ -51,9 +66,26 @@ Wallet *WalletManager::recoveryWallet(const QString &path, const QString &memo, } -void WalletManager::closeWallet(Wallet *wallet) +QString WalletManager::closeWallet(Wallet *wallet) { + QString result = wallet->address(); delete wallet; + return result; +} + +void WalletManager::closeWalletAsync(Wallet *wallet) +{ + QFuture<QString> future = QtConcurrent::run(this, &WalletManager::closeWallet, + wallet); + QFutureWatcher<QString> * watcher = new QFutureWatcher<QString>(); + watcher->setFuture(future); + + connect(watcher, &QFutureWatcher<QString>::finished, + this, [this, watcher]() { + QFuture<QString> future = watcher->future(); + watcher->deleteLater(); + emit future.result(); + }); } bool WalletManager::walletExists(const QString &path) const |
