From faeb551f77933de2a7b2abee81510c166328df83 Mon Sep 17 00:00:00 2001 From: jarolrod Date: Tue, 24 Jan 2023 00:29:47 -0500 Subject: [PATCH 1/4] qml: add and wire listen setting to OptionsModel backend --- src/qml/components/ConnectionSettings.qml | 5 ++++- src/qml/options_model.cpp | 9 +++++++++ src/qml/options_model.h | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/qml/components/ConnectionSettings.qml b/src/qml/components/ConnectionSettings.qml index 38ed17d4f5..76bf35f246 100644 --- a/src/qml/components/ConnectionSettings.qml +++ b/src/qml/components/ConnectionSettings.qml @@ -13,7 +13,10 @@ ColumnLayout { Layout.fillWidth: true header: qsTr("Enable listening") description: qsTr("Allows incoming connections") - actionItem: OptionSwitch {} + actionItem: OptionSwitch { + checked: optionsModel.listen + onToggled: optionsModel.listen = checked + } } Setting { Layout.fillWidth: true diff --git a/src/qml/options_model.cpp b/src/qml/options_model.cpp index ed934121d4..a95d428081 100644 --- a/src/qml/options_model.cpp +++ b/src/qml/options_model.cpp @@ -21,6 +21,15 @@ OptionsQmlModel::OptionsQmlModel(interfaces::Node& node) m_prune_size_gb = m_prune ? PruneMiBtoGB(prune_value) : DEFAULT_PRUNE_TARGET_GB; } +void OptionsQmlModel::setListen(bool new_listen) +{ + if (new_listen != m_listen) { + m_listen = new_listen; + m_node.updateRwSetting("listen", new_listen); + Q_EMIT listenChanged(new_listen); + } +} + void OptionsQmlModel::setPrune(bool new_prune) { if (new_prune != m_prune) { diff --git a/src/qml/options_model.h b/src/qml/options_model.h index 7e227ee6b1..d09d000620 100644 --- a/src/qml/options_model.h +++ b/src/qml/options_model.h @@ -17,18 +17,22 @@ class Node; class OptionsQmlModel : public QObject { Q_OBJECT + Q_PROPERTY(bool listen READ listen WRITE setListen NOTIFY listenChanged) Q_PROPERTY(bool prune READ prune WRITE setPrune NOTIFY pruneChanged) Q_PROPERTY(int pruneSizeGB READ pruneSizeGB WRITE setPruneSizeGB NOTIFY pruneSizeGBChanged) public: explicit OptionsQmlModel(interfaces::Node& node); + bool listen() const { return m_listen; } + void setListen(bool new_listen); bool prune() const { return m_prune; } void setPrune(bool new_prune); int pruneSizeGB() const { return m_prune_size_gb; } void setPruneSizeGB(int new_prune_size); Q_SIGNALS: + void listenChanged(bool new_listen); void pruneChanged(bool new_prune); void pruneSizeGBChanged(int new_prune_size_gb); @@ -36,6 +40,7 @@ class OptionsQmlModel : public QObject interfaces::Node& m_node; // Properties that are exposed to QML. + bool m_listen; bool m_prune; int m_prune_size_gb; From 04cb8987f34da051b3db4ac9969d6ac0445717df Mon Sep 17 00:00:00 2001 From: jarolrod Date: Tue, 24 Jan 2023 00:56:12 -0500 Subject: [PATCH 2/4] qml: add and wire upnp setting to OptionsModel backend --- src/qml/components/ConnectionSettings.qml | 5 ++++- src/qml/options_model.cpp | 9 +++++++++ src/qml/options_model.h | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/qml/components/ConnectionSettings.qml b/src/qml/components/ConnectionSettings.qml index 76bf35f246..490998822c 100644 --- a/src/qml/components/ConnectionSettings.qml +++ b/src/qml/components/ConnectionSettings.qml @@ -21,7 +21,10 @@ ColumnLayout { Setting { Layout.fillWidth: true header: qsTr("Map port using UPnP") - actionItem: OptionSwitch {} + actionItem: OptionSwitch { + checked: optionsModel.upnp + onToggled: optionsModel.upnp = checked + } } Setting { Layout.fillWidth: true diff --git a/src/qml/options_model.cpp b/src/qml/options_model.cpp index a95d428081..41a8115710 100644 --- a/src/qml/options_model.cpp +++ b/src/qml/options_model.cpp @@ -48,6 +48,15 @@ void OptionsQmlModel::setPruneSizeGB(int new_prune_size_gb) } } +void OptionsQmlModel::setUpnp(bool new_upnp) +{ + if (new_upnp != m_upnp) { + m_upnp = new_upnp; + m_node.updateRwSetting("upnp", new_upnp); + Q_EMIT upnpChanged(new_upnp); + } +} + util::SettingsValue OptionsQmlModel::pruneSetting() const { assert(!m_prune || m_prune_size_gb >= 1); diff --git a/src/qml/options_model.h b/src/qml/options_model.h index d09d000620..9fdee673d8 100644 --- a/src/qml/options_model.h +++ b/src/qml/options_model.h @@ -20,6 +20,7 @@ class OptionsQmlModel : public QObject Q_PROPERTY(bool listen READ listen WRITE setListen NOTIFY listenChanged) Q_PROPERTY(bool prune READ prune WRITE setPrune NOTIFY pruneChanged) Q_PROPERTY(int pruneSizeGB READ pruneSizeGB WRITE setPruneSizeGB NOTIFY pruneSizeGBChanged) + Q_PROPERTY(bool upnp READ upnp WRITE setUpnp NOTIFY upnpChanged) public: explicit OptionsQmlModel(interfaces::Node& node); @@ -30,11 +31,14 @@ class OptionsQmlModel : public QObject void setPrune(bool new_prune); int pruneSizeGB() const { return m_prune_size_gb; } void setPruneSizeGB(int new_prune_size); + bool upnp() const { return m_upnp; } + void setUpnp(bool new_upnp); Q_SIGNALS: void listenChanged(bool new_listen); void pruneChanged(bool new_prune); void pruneSizeGBChanged(int new_prune_size_gb); + void upnpChanged(bool new_upnp); private: interfaces::Node& m_node; @@ -43,6 +47,7 @@ class OptionsQmlModel : public QObject bool m_listen; bool m_prune; int m_prune_size_gb; + bool m_upnp; util::SettingsValue pruneSetting() const; }; From 30dec242bf3083b0b462449ee81a90adb7e67712 Mon Sep 17 00:00:00 2001 From: jarolrod Date: Tue, 24 Jan 2023 01:06:39 -0500 Subject: [PATCH 3/4] qml: add and wire natpmp setting to OptionsModel backend --- src/qml/components/ConnectionSettings.qml | 5 ++++- src/qml/options_model.cpp | 9 +++++++++ src/qml/options_model.h | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/qml/components/ConnectionSettings.qml b/src/qml/components/ConnectionSettings.qml index 490998822c..7a963cae7b 100644 --- a/src/qml/components/ConnectionSettings.qml +++ b/src/qml/components/ConnectionSettings.qml @@ -29,7 +29,10 @@ ColumnLayout { Setting { Layout.fillWidth: true header: qsTr("Map port using NAT-PMP") - actionItem: OptionSwitch {} + actionItem: OptionSwitch { + checked: optionsModel.natpmp + onToggled: optionsModel.natpmp = checked + } } Setting { Layout.fillWidth: true diff --git a/src/qml/options_model.cpp b/src/qml/options_model.cpp index 41a8115710..861c03a47b 100644 --- a/src/qml/options_model.cpp +++ b/src/qml/options_model.cpp @@ -30,6 +30,15 @@ void OptionsQmlModel::setListen(bool new_listen) } } +void OptionsQmlModel::setNatpmp(bool new_natpmp) +{ + if (new_natpmp != m_natpmp) { + m_natpmp = new_natpmp; + m_node.updateRwSetting("natpmp", new_natpmp); + Q_EMIT natpmpChanged(new_natpmp); + } +} + void OptionsQmlModel::setPrune(bool new_prune) { if (new_prune != m_prune) { diff --git a/src/qml/options_model.h b/src/qml/options_model.h index 9fdee673d8..54241f7544 100644 --- a/src/qml/options_model.h +++ b/src/qml/options_model.h @@ -18,6 +18,7 @@ class OptionsQmlModel : public QObject { Q_OBJECT Q_PROPERTY(bool listen READ listen WRITE setListen NOTIFY listenChanged) + Q_PROPERTY(bool natpmp READ natpmp WRITE setNatpmp NOTIFY natpmpChanged) Q_PROPERTY(bool prune READ prune WRITE setPrune NOTIFY pruneChanged) Q_PROPERTY(int pruneSizeGB READ pruneSizeGB WRITE setPruneSizeGB NOTIFY pruneSizeGBChanged) Q_PROPERTY(bool upnp READ upnp WRITE setUpnp NOTIFY upnpChanged) @@ -27,6 +28,8 @@ class OptionsQmlModel : public QObject bool listen() const { return m_listen; } void setListen(bool new_listen); + bool natpmp() const { return m_natpmp; } + void setNatpmp(bool new_natpmp); bool prune() const { return m_prune; } void setPrune(bool new_prune); int pruneSizeGB() const { return m_prune_size_gb; } @@ -36,6 +39,7 @@ class OptionsQmlModel : public QObject Q_SIGNALS: void listenChanged(bool new_listen); + void natpmpChanged(bool new_natpmp); void pruneChanged(bool new_prune); void pruneSizeGBChanged(int new_prune_size_gb); void upnpChanged(bool new_upnp); @@ -45,6 +49,7 @@ class OptionsQmlModel : public QObject // Properties that are exposed to QML. bool m_listen; + bool m_natpmp; bool m_prune; int m_prune_size_gb; bool m_upnp; From 15291b2aa23f076030e4ca571ad8e980fad275d0 Mon Sep 17 00:00:00 2001 From: jarolrod Date: Tue, 24 Jan 2023 01:20:00 -0500 Subject: [PATCH 4/4] qml: add and wire server setting to OptionsModel backend --- src/qml/components/ConnectionSettings.qml | 5 ++++- src/qml/options_model.cpp | 9 +++++++++ src/qml/options_model.h | 5 +++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/qml/components/ConnectionSettings.qml b/src/qml/components/ConnectionSettings.qml index 7a963cae7b..55aa50c0a8 100644 --- a/src/qml/components/ConnectionSettings.qml +++ b/src/qml/components/ConnectionSettings.qml @@ -37,7 +37,10 @@ ColumnLayout { Setting { Layout.fillWidth: true header: qsTr("Enable RPC server") - actionItem: OptionSwitch {} + actionItem: OptionSwitch { + checked: optionsModel.server + onToggled: optionsModel.server = checked + } } Setting { last: true diff --git a/src/qml/options_model.cpp b/src/qml/options_model.cpp index 861c03a47b..30b29003ee 100644 --- a/src/qml/options_model.cpp +++ b/src/qml/options_model.cpp @@ -57,6 +57,15 @@ void OptionsQmlModel::setPruneSizeGB(int new_prune_size_gb) } } +void OptionsQmlModel::setServer(bool new_server) +{ + if (new_server != m_server) { + m_server = new_server; + m_node.updateRwSetting("server", new_server); + Q_EMIT serverChanged(new_server); + } +} + void OptionsQmlModel::setUpnp(bool new_upnp) { if (new_upnp != m_upnp) { diff --git a/src/qml/options_model.h b/src/qml/options_model.h index 54241f7544..7c5ba49fcf 100644 --- a/src/qml/options_model.h +++ b/src/qml/options_model.h @@ -21,6 +21,7 @@ class OptionsQmlModel : public QObject Q_PROPERTY(bool natpmp READ natpmp WRITE setNatpmp NOTIFY natpmpChanged) Q_PROPERTY(bool prune READ prune WRITE setPrune NOTIFY pruneChanged) Q_PROPERTY(int pruneSizeGB READ pruneSizeGB WRITE setPruneSizeGB NOTIFY pruneSizeGBChanged) + Q_PROPERTY(bool server READ server WRITE setServer NOTIFY serverChanged) Q_PROPERTY(bool upnp READ upnp WRITE setUpnp NOTIFY upnpChanged) public: @@ -34,6 +35,8 @@ class OptionsQmlModel : public QObject void setPrune(bool new_prune); int pruneSizeGB() const { return m_prune_size_gb; } void setPruneSizeGB(int new_prune_size); + bool server() const { return m_server; } + void setServer(bool new_server); bool upnp() const { return m_upnp; } void setUpnp(bool new_upnp); @@ -42,6 +45,7 @@ class OptionsQmlModel : public QObject void natpmpChanged(bool new_natpmp); void pruneChanged(bool new_prune); void pruneSizeGBChanged(int new_prune_size_gb); + void serverChanged(bool new_server); void upnpChanged(bool new_upnp); private: @@ -52,6 +56,7 @@ class OptionsQmlModel : public QObject bool m_natpmp; bool m_prune; int m_prune_size_gb; + bool m_server; bool m_upnp; util::SettingsValue pruneSetting() const;