From 37c45c27a5499e31a9f2db60f1d086986817c5ce Mon Sep 17 00:00:00 2001 From: Ming Rui Zhang <mingrui.zhang@savoirfairelinux.com> Date: Fri, 18 Jun 2021 16:19:17 -0400 Subject: [PATCH] settings: add allow IP auto rewrite option Change-Id: I09c24f1185b37c728eb9ce1968cca21a99b79452 --- src/constant/JamiStrings.qml | 1 + src/settingsadapter.cpp | 15 +++++++++++++ src/settingsadapter.h | 2 ++ .../AdvancedPublicAddressSettings.qml | 21 +++++++++++++++++++ 4 files changed, 39 insertions(+) diff --git a/src/constant/JamiStrings.qml b/src/constant/JamiStrings.qml index dfc4c83d6..333c60200 100644 --- a/src/constant/JamiStrings.qml +++ b/src/constant/JamiStrings.qml @@ -115,6 +115,7 @@ Item { property string stunAdress: qsTr("STUN address") // AdvancedPublicAddressSettings + property string allowIPAutoRewrite: qsTr("Allow IP Auto Rewrite") property string publicAddress: qsTr("Public address") property string useCustomAddress: qsTr("Use custom address and port") property string address: qsTr("Address") diff --git a/src/settingsadapter.cpp b/src/settingsadapter.cpp index 3c60c2435..bc908bd4e 100644 --- a/src/settingsadapter.cpp +++ b/src/settingsadapter.cpp @@ -552,6 +552,12 @@ SettingsAdapter::getAccountConfig_PublishedPort() return getAccountConfig().publishedPort; } +bool +SettingsAdapter::getAccountConfig_AllowIPAutoRewrite() +{ + return getAccountConfig().allowIPAutoRewrite; +} + QString SettingsAdapter::getAccountConfig_Mailbox() { @@ -762,6 +768,15 @@ SettingsAdapter::setUseCustomAddressAndPort(bool state) lrcInstance_->accountModel().setAccountConfig(lrcInstance_->get_currentAccountId(), confProps); } +void +SettingsAdapter::setAllowIPAutoRewrite(bool state) +{ + auto confProps = lrcInstance_->accountModel().getAccountConfig( + lrcInstance_->get_currentAccountId()); + confProps.allowIPAutoRewrite = state; + lrcInstance_->accountModel().setAccountConfig(lrcInstance_->get_currentAccountId(), confProps); +} + void SettingsAdapter::setNameServer(QString text) { diff --git a/src/settingsadapter.h b/src/settingsadapter.h index 7b5d9efca..9f0e3fb84 100644 --- a/src/settingsadapter.h +++ b/src/settingsadapter.h @@ -150,6 +150,7 @@ public: Q_INVOKABLE bool getAccountConfig_PublishedSameAsLocal(); Q_INVOKABLE QString getAccountConfig_PublishedAddress(); Q_INVOKABLE int getAccountConfig_PublishedPort(); + Q_INVOKABLE bool getAccountConfig_AllowIPAutoRewrite(); Q_INVOKABLE QString getAccountConfig_Mailbox(); @@ -178,6 +179,7 @@ public: Q_INVOKABLE void setVerifyCertificatesClient(bool state); Q_INVOKABLE void setRequireCertificatesIncomingTLS(bool state); Q_INVOKABLE void setUseCustomAddressAndPort(bool state); + Q_INVOKABLE void setAllowIPAutoRewrite(bool state); Q_INVOKABLE void setNameServer(QString text); Q_INVOKABLE void setProxyAddress(QString text); diff --git a/src/settingsview/components/AdvancedPublicAddressSettings.qml b/src/settingsview/components/AdvancedPublicAddressSettings.qml index a5156c837..3d7741810 100644 --- a/src/settingsview/components/AdvancedPublicAddressSettings.qml +++ b/src/settingsview/components/AdvancedPublicAddressSettings.qml @@ -35,9 +35,16 @@ ColumnLayout { property int itemWidth function updatePublicAddressAccountInfos() { + checkBoxAllowIPAutoRewrite.checked = SettingsAdapter.getAccountConfig_AllowIPAutoRewrite() checkBoxCustomAddressPort.checked = !SettingsAdapter.getAccountConfig_PublishedSameAsLocal() lineEditSIPCustomAddress.setText(SettingsAdapter.getAccountConfig_PublishedAddress()) customPortSIPSpinBox.setValue(SettingsAdapter.getAccountConfig_PublishedPort()) + + if (checkBoxAllowIPAutoRewrite.checked) { + checkBoxCustomAddressPort.visible = false + lineEditSIPCustomAddress.visible = false + customPortSIPSpinBox.visible = false + } } Text { @@ -58,6 +65,20 @@ ColumnLayout { Layout.fillWidth: true Layout.leftMargin: JamiTheme.preferredMarginSize + ToggleSwitch { + id: checkBoxAllowIPAutoRewrite + + labelText: JamiStrings.allowIPAutoRewrite + fontPointSize: JamiTheme.settingsFontSize + + onSwitchToggled: { + SettingsAdapter.setAllowIPAutoRewrite(checked) + checkBoxCustomAddressPort.visible = !checked + lineEditSIPCustomAddress.visible = !checked + customPortSIPSpinBox.visible = !checked + } + } + ToggleSwitch { id: checkBoxCustomAddressPort -- GitLab