aboutsummaryrefslogtreecommitdiff
path: root/src/libwalletqt/WalletManager.cpp
diff options
context:
space:
mode:
authorIlya Kitaev <mbg033@gmail.com>2016-08-18 21:55:34 +0300
committerIlya Kitaev <mbg033@gmail.com>2016-08-18 21:55:34 +0300
commitd3234bb91564ee8327b111e0acf2a83153929c25 (patch)
tree8831398e88dfcefe8656486a227105e84a58bb7c /src/libwalletqt/WalletManager.cpp
parentc1269301f7c19a849b0fae7ddbe9afd38aaf71d3 (diff)
downloadmonzero-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.cpp34
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