diff --git a/main.qml b/main.qml index 92d46ea8..c77cdae6 100644 --- a/main.qml +++ b/main.qml @@ -256,7 +256,7 @@ ApplicationWindow { } // Local daemon settings - walletManager.setDaemonAddress(localDaemonAddress) + walletManager.setDaemonAddressAsync(localDaemonAddress); // enable timers userInActivityTimer.running = true; @@ -608,7 +608,7 @@ ApplicationWindow { persistentSettings.useRemoteNode = true; currentDaemonAddress = persistentSettings.remoteNodeAddress; currentWallet.initAsync(currentDaemonAddress); - walletManager.setDaemonAddress(currentDaemonAddress); + walletManager.setDaemonAddressAsync(currentDaemonAddress); remoteNodeConnected = true; } @@ -620,7 +620,7 @@ ApplicationWindow { persistentSettings.useRemoteNode = false; currentDaemonAddress = localDaemonAddress currentWallet.initAsync(currentDaemonAddress); - walletManager.setDaemonAddress(currentDaemonAddress); + walletManager.setDaemonAddressAsync(currentDaemonAddress); remoteNodeConnected = false; } diff --git a/src/libwalletqt/WalletManager.cpp b/src/libwalletqt/WalletManager.cpp index 141ae97a..f51ab1fa 100644 --- a/src/libwalletqt/WalletManager.cpp +++ b/src/libwalletqt/WalletManager.cpp @@ -344,9 +344,11 @@ QString WalletManager::paymentIdFromAddress(const QString &address, NetworkType: return QString::fromStdString(Monero::Wallet::paymentIdFromAddress(address.toStdString(), static_cast(nettype))); } -void WalletManager::setDaemonAddress(const QString &address) +void WalletManager::setDaemonAddressAsync(const QString &address) { - m_pimpl->setDaemonAddress(address.toStdString()); + QtConcurrent::run([this, address] { + m_pimpl->setDaemonAddress(address.toStdString()); + }); } bool WalletManager::connected() const diff --git a/src/libwalletqt/WalletManager.h b/src/libwalletqt/WalletManager.h index c81fef1c..c1bd2b5f 100644 --- a/src/libwalletqt/WalletManager.h +++ b/src/libwalletqt/WalletManager.h @@ -150,7 +150,7 @@ public: Q_INVOKABLE QString paymentIdFromAddress(const QString &address, NetworkType::Type nettype) const; - Q_INVOKABLE void setDaemonAddress(const QString &address); + Q_INVOKABLE void setDaemonAddressAsync(const QString &address); Q_INVOKABLE bool connected() const; Q_INVOKABLE quint64 networkDifficulty() const; Q_INVOKABLE quint64 blockchainHeight() const;