aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.qml8
-rw-r--r--src/daemon/DaemonManager.cpp8
-rw-r--r--src/daemon/DaemonManager.h5
3 files changed, 17 insertions, 4 deletions
diff --git a/main.qml b/main.qml
index 76057fda..adce4d80 100644
--- a/main.qml
+++ b/main.qml
@@ -486,8 +486,12 @@ ApplicationWindow {
middlePanel.transferView.updatePriorityDropdown();
// If wallet isnt connected, advanced wallet mode and no daemon is running - Ask
- if(!isMobile && appWindow.walletMode >= 2 && walletManager.isDaemonLocal(currentDaemonAddress) && !walletInitialized && status === Wallet.ConnectionStatus_Disconnected && !daemonManager.running(persistentSettings.nettype)){
- daemonManagerDialog.open();
+ if (!isMobile && appWindow.walletMode >= 2 && walletManager.isDaemonLocal(currentDaemonAddress) && !walletInitialized && status === Wallet.ConnectionStatus_Disconnected) {
+ daemonManager.runningAsync(persistentSettings.nettype, function(running) {
+ if (!running) {
+ daemonManagerDialog.open();
+ }
+ });
}
// initialize transaction history once wallet is initialized first time;
if (!walletInitialized) {
diff --git a/src/daemon/DaemonManager.cpp b/src/daemon/DaemonManager.cpp
index ecbe1784..4277e0bb 100644
--- a/src/daemon/DaemonManager.cpp
+++ b/src/daemon/DaemonManager.cpp
@@ -243,6 +243,14 @@ bool DaemonManager::running(NetworkType::Type nettype) const
}
return false;
}
+
+void DaemonManager::runningAsync(NetworkType::Type nettype, const QJSValue& callback) const
+{
+ m_scheduler.run([this, nettype] {
+ return QJSValueList({running(nettype)});
+ }, callback);
+}
+
bool DaemonManager::sendCommand(const QString &cmd, NetworkType::Type nettype) const
{
QString message;
diff --git a/src/daemon/DaemonManager.h b/src/daemon/DaemonManager.h
index 6063c8cb..5a29ea64 100644
--- a/src/daemon/DaemonManager.h
+++ b/src/daemon/DaemonManager.h
@@ -48,7 +48,7 @@ public:
Q_INVOKABLE bool stop(NetworkType::Type nettype);
// return true if daemon process is started
- Q_INVOKABLE bool running(NetworkType::Type nettype) const;
+ Q_INVOKABLE void runningAsync(NetworkType::Type nettype, const QJSValue& callback) const;
// Send daemon command from qml and prints output in console window.
Q_INVOKABLE bool sendCommand(const QString &cmd, NetworkType::Type nettype) const;
Q_INVOKABLE void exit();
@@ -56,6 +56,7 @@ public:
private:
+ bool running(NetworkType::Type nettype) const;
bool sendCommand(const QString &cmd, NetworkType::Type nettype, QString &message) const;
bool startWatcher(NetworkType::Type nettype) const;
bool stopWatcher(NetworkType::Type nettype) const;
@@ -82,7 +83,7 @@ private:
bool m_has_daemon = true;
bool m_app_exit = false;
- FutureScheduler m_scheduler;
+ mutable FutureScheduler m_scheduler;
};
#endif // DAEMONMANAGER_H