From f94782fecfd90524e295e56b6e4f52a4b411ff03 Mon Sep 17 00:00:00 2001 From: Jaquee Date: Wed, 21 Dec 2016 14:30:15 +0100 Subject: [PATCH] daemon startup flags --- components/DaemonManagerDialog.qml | 20 +++++++++++++++++++- main.qml | 6 ++++-- pages/Settings.qml | 19 ++++++++++++++++++- pages/Transfer.qml | 2 +- src/daemon/DaemonManager.cpp | 13 +++++++++++-- src/daemon/DaemonManager.h | 2 +- 6 files changed, 54 insertions(+), 8 deletions(-) diff --git a/components/DaemonManagerDialog.qml b/components/DaemonManagerDialog.qml index da3cf582..f07e982d 100644 --- a/components/DaemonManagerDialog.qml +++ b/components/DaemonManagerDialog.qml @@ -91,7 +91,7 @@ Window { KeyNavigation.tab: cancelButton onClicked: { root.close() - appWindow.startDaemon(); + appWindow.startDaemon(daemonFlags.text); root.started() } } @@ -112,6 +112,24 @@ Window { } } } + RowLayout { + id: advancedRow + MoneroComponents.Label { + id: daemonFlagsLabel + color: "#4A4949" + text: qsTr("Daemon startup flags") + translationManager.emptyString + fontSize: 16 + } + + MoneroComponents.LineEdit { + id: daemonFlags + Layout.preferredWidth: 200 + Layout.fillWidth: true + text: appWindow.persistentSettings.daemonFlags; + placeholderText: qsTr("(optional)") + } + + } } } diff --git a/main.qml b/main.qml index 95eb8a71..e3bc1871 100644 --- a/main.qml +++ b/main.qml @@ -341,9 +341,10 @@ ApplicationWindow { onWalletUpdate(); } - function startDaemon(){ + function startDaemon(flags){ appWindow.showProcessingSplash(qsTr("Waiting for daemon to start...")) - daemonManager.start(); + daemonManager.start(flags); + persistentSettings.daemonFlags = flags } function stopDaemon(){ @@ -714,6 +715,7 @@ ApplicationWindow { property int restore_height : 0 property bool is_recovering : false property bool customDecorations : true + property string daemonFlags } // Information dialog diff --git a/pages/Settings.qml b/pages/Settings.qml index 52dc4496..495d55c9 100644 --- a/pages/Settings.qml +++ b/pages/Settings.qml @@ -299,7 +299,7 @@ Rectangle { releasedColor: "#FF6C3C" pressedColor: "#FF4304" onClicked: { - appWindow.startDaemon() + appWindow.startDaemon(daemonFlags.text) } } @@ -335,6 +335,23 @@ Rectangle { } + RowLayout { + id: daemonFlagsRow + Label { + id: daemonFlagsLabel + color: "#4A4949" + text: qsTr("Daemon startup flags") + translationManager.emptyString + fontSize: 16 + } + LineEdit { + id: daemonFlags + Layout.preferredWidth: 200 + Layout.fillWidth: true + text: appWindow.persistentSettings.daemonFlags; + placeholderText: qsTr("(optional)") + translationManager.emptyString + } + } + RowLayout { CheckBox { id: customDecorationsCheckBox diff --git a/pages/Transfer.qml b/pages/Transfer.qml index 4068b378..8e070246 100644 --- a/pages/Transfer.qml +++ b/pages/Transfer.qml @@ -433,7 +433,7 @@ Rectangle { horizontalAlignment: Text.AlignHCenter verticalAlignment: Text.AlignVCenter textFormat: Text.RichText - onLinkActivated: { appWindow.startDaemon(); } + onLinkActivated: { appWindow.startDaemon(appWindow.persistentSettings.daemonFlags); } } } diff --git a/src/daemon/DaemonManager.cpp b/src/daemon/DaemonManager.cpp index 185cde1e..e85db709 100644 --- a/src/daemon/DaemonManager.cpp +++ b/src/daemon/DaemonManager.cpp @@ -23,7 +23,7 @@ DaemonManager *DaemonManager::instance(const QStringList *args) return m_instance; } -bool DaemonManager::start() +bool DaemonManager::start(const QString &flags) { // QString process; @@ -43,9 +43,18 @@ bool DaemonManager::start() QStringList arguments; foreach (const QString &str, m_clArgs) { qDebug() << QString(" [%1] ").arg(str); - arguments << str; + if (!str.isEmpty()) + arguments << str; } + // Custom startup flags for daemon + foreach (const QString &str, flags.split(" ")) { + qDebug() << QString(" [%1] ").arg(str); + if (!str.isEmpty()) + arguments << str; + } + + qDebug() << "starting monerod " + process; qDebug() << "With command line arguments " << arguments; diff --git a/src/daemon/DaemonManager.h b/src/daemon/DaemonManager.h index 8f425fd5..7c9730e8 100644 --- a/src/daemon/DaemonManager.h +++ b/src/daemon/DaemonManager.h @@ -13,7 +13,7 @@ public: static DaemonManager * instance(const QStringList *args); - Q_INVOKABLE bool start(); + Q_INVOKABLE bool start(const QString &flags); Q_INVOKABLE bool stop(); // return true if daemon process is started