diff options
author | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2021-05-22 22:27:45 +0300 |
---|---|---|
committer | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2021-09-09 22:17:36 +0300 |
commit | f6991cb906e9dad7ff76a51e2b654f798d5c2ba6 (patch) | |
tree | df702e2ff268192ac542d01ce626d086b735df6f /src/qt/walletcontroller.cpp | |
parent | 4a024fc310f136ce62c733fb1174b3a80ea25d0a (diff) | |
download | bitcoin-f6991cb906e9dad7ff76a51e2b654f798d5c2ba6.tar.xz |
qt, wallet: Add LoadWalletsActivity class
Also this commit moves wallets loading out from the main GUI thread.
Diffstat (limited to 'src/qt/walletcontroller.cpp')
-rw-r--r-- | src/qt/walletcontroller.cpp | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/src/qt/walletcontroller.cpp b/src/qt/walletcontroller.cpp index fb1c1b2327..51e63b13b3 100644 --- a/src/qt/walletcontroller.cpp +++ b/src/qt/walletcontroller.cpp @@ -41,10 +41,6 @@ WalletController::WalletController(ClientModel& client_model, const PlatformStyl getOrCreateWallet(std::move(wallet)); }); - for (std::unique_ptr<interfaces::Wallet>& wallet : m_node.walletClient().getWallets()) { - getOrCreateWallet(std::move(wallet)); - } - m_activity_worker->moveToThread(m_activity_thread); m_activity_thread->start(); QTimer::singleShot(0, m_activity_worker, []() { @@ -342,3 +338,21 @@ void OpenWalletActivity::open(const std::string& path) QTimer::singleShot(0, this, &OpenWalletActivity::finish); }); } + +LoadWalletsActivity::LoadWalletsActivity(WalletController* wallet_controller, QWidget* parent_widget) + : WalletControllerActivity(wallet_controller, parent_widget) +{ +} + +void LoadWalletsActivity::load() +{ + showProgressDialog(tr("Loading wallets…")); + + QTimer::singleShot(0, worker(), [this] { + for (auto& wallet : node().walletClient().getWallets()) { + m_wallet_controller->getOrCreateWallet(std::move(wallet)); + } + + QTimer::singleShot(0, this, [this] { Q_EMIT finished(); }); + }); +} |