From dc28c4e5cf851b9dc6caba5b20523cf9a4b9219c Mon Sep 17 00:00:00 2001 From: Christophe Deschamps Date: Mon, 7 Oct 2024 08:28:07 +0200 Subject: [PATCH] Network settings --- Linphone/core/setting/SettingsCore.cpp | 3 ++ Linphone/core/setting/SettingsCore.hpp | 1 + Linphone/model/setting/SettingsModel.cpp | 13 +++++ Linphone/model/setting/SettingsModel.hpp | 1 + Linphone/view/CMakeLists.txt | 1 + .../Layout/Settings/CallSettingsLayout.qml | 1 - .../Layout/Settings/NetworkSettingsLayout.qml | 51 +++++++++++++++++++ 7 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 Linphone/view/Page/Layout/Settings/NetworkSettingsLayout.qml diff --git a/Linphone/core/setting/SettingsCore.cpp b/Linphone/core/setting/SettingsCore.cpp index 3bd90579c..c024afde2 100644 --- a/Linphone/core/setting/SettingsCore.cpp +++ b/Linphone/core/setting/SettingsCore.cpp @@ -94,6 +94,7 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) { INIT_CORE_MEMBER(AutoStart, mSettingsModel) INIT_CORE_MEMBER(ExitOnClose, mSettingsModel) INIT_CORE_MEMBER(SyncLdapContacts, mSettingsModel) + INIT_CORE_MEMBER(Ipv6Enabled, mSettingsModel) } SettingsCore::~SettingsCore() { @@ -331,6 +332,8 @@ void SettingsCore::setSelf(QSharedPointer me) { ExitOnClose) DEFINE_CORE_GETSET_CONNECT(mSettingsModelConnection, SettingsCore, SettingsModel, mSettingsModel, bool, syncLdapContacts, SyncLdapContacts) + DEFINE_CORE_GETSET_CONNECT(mSettingsModelConnection, SettingsCore, SettingsModel, mSettingsModel, bool, ipv6Enabled, + Ipv6Enabled) auto coreModelConnection = QSharedPointer>( new SafeConnection(me, CoreModel::getInstance()), &QObject::deleteLater); diff --git a/Linphone/core/setting/SettingsCore.hpp b/Linphone/core/setting/SettingsCore.hpp index 2bca1f4c0..909c29b95 100644 --- a/Linphone/core/setting/SettingsCore.hpp +++ b/Linphone/core/setting/SettingsCore.hpp @@ -163,6 +163,7 @@ public: DECLARE_CORE_GETSET(bool, autoStart, AutoStart) DECLARE_CORE_GETSET(bool, exitOnClose, ExitOnClose) DECLARE_CORE_GETSET(bool, syncLdapContacts, SyncLdapContacts) + DECLARE_CORE_GETSET_MEMBER(bool, ipv6Enabled, Ipv6Enabled) signals: diff --git a/Linphone/model/setting/SettingsModel.cpp b/Linphone/model/setting/SettingsModel.cpp index 290d98f70..1eb844a8a 100644 --- a/Linphone/model/setting/SettingsModel.cpp +++ b/Linphone/model/setting/SettingsModel.cpp @@ -502,6 +502,19 @@ void SettingsModel::enableDnd(bool enableDnd) { emit dndChanged(enableDnd); } +bool SettingsModel::getIpv6Enabled() const { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + return CoreModel::getInstance()->getCore()->ipv6Enabled(); +} + +void SettingsModel::setIpv6Enabled(bool status) { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + if (getIpv6Enabled() != status) { + CoreModel::getInstance()->getCore()->enableIpv6(status); + emit ipv6EnabledChanged(status); + } +} + // ============================================================================= // Carddav storage list // ============================================================================= diff --git a/Linphone/model/setting/SettingsModel.hpp b/Linphone/model/setting/SettingsModel.hpp index e58a29e6c..60d3e0fcd 100644 --- a/Linphone/model/setting/SettingsModel.hpp +++ b/Linphone/model/setting/SettingsModel.hpp @@ -149,6 +149,7 @@ public: DECLARE_GETSET(bool, autoStart, AutoStart) DECLARE_GETSET(bool, exitOnClose, ExitOnClose) DECLARE_GETSET(bool, syncLdapContacts, SyncLdapContacts) + DECLARE_GETSET(bool, ipv6Enabled, Ipv6Enabled) signals: diff --git a/Linphone/view/CMakeLists.txt b/Linphone/view/CMakeLists.txt index c0bc5a2c6..a54ae2903 100644 --- a/Linphone/view/CMakeLists.txt +++ b/Linphone/view/CMakeLists.txt @@ -109,6 +109,7 @@ list(APPEND _LINPHONEAPP_QML_FILES view/Page/Layout/Settings/LdapSettingsLayout.qml view/Page/Layout/Settings/CarddavSettingsLayout.qml view/Page/Layout/Settings/SecuritySettingsLayout.qml + view/Page/Layout/Settings/NetworkSettingsLayout.qml view/Page/Main/AbstractMainPage.qml view/Page/Main/Account/AccountListView.qml diff --git a/Linphone/view/Page/Layout/Settings/CallSettingsLayout.qml b/Linphone/view/Page/Layout/Settings/CallSettingsLayout.qml index 2d7ebed94..31b97a0c9 100644 --- a/Linphone/view/Page/Layout/Settings/CallSettingsLayout.qml +++ b/Linphone/view/Page/Layout/Settings/CallSettingsLayout.qml @@ -15,7 +15,6 @@ AbstractSettingsLayout { ColumnLayout { Item { Layout.preferredWidth: 341 * DefaultStyle.dp - } } ColumnLayout { diff --git a/Linphone/view/Page/Layout/Settings/NetworkSettingsLayout.qml b/Linphone/view/Page/Layout/Settings/NetworkSettingsLayout.qml new file mode 100644 index 000000000..00a19f652 --- /dev/null +++ b/Linphone/view/Page/Layout/Settings/NetworkSettingsLayout.qml @@ -0,0 +1,51 @@ + +import QtQuick +import QtQuick.Layouts +import QtQuick.Controls.Basic as Control +import SettingsCpp 1.0 +import Linphone + +AbstractSettingsLayout { + contentComponent: content + Component { + id: content + ColumnLayout { + spacing: 5 * DefaultStyle.dp + RowLayout { + spacing: 5 * DefaultStyle.dp + ColumnLayout { + Layout.fillWidth: true + spacing: 5 * DefaultStyle.dp + ColumnLayout { + Layout.preferredWidth: 341 * DefaultStyle.dp + Layout.maximumWidth: 341 * DefaultStyle.dp + spacing: 5 * DefaultStyle.dp + Text { + text: qsTr("Réseau") + font: Typography.h4 + wrapMode: Text.WordWrap + color: DefaultStyle.main2_600 + Layout.fillWidth: true + } + } + Item { + Layout.fillHeight: true + } + } + ColumnLayout { + Layout.rightMargin: 25 * DefaultStyle.dp + Layout.topMargin: 36 * DefaultStyle.dp + Layout.leftMargin: 64 * DefaultStyle.dp + spacing: 40 * DefaultStyle.dp + SwitchSetting { + Layout.fillWidth: true + titleText: qsTr("Autoriser l'IPv6") + propertyName: "ipv6Enabled" + propertyOwner: SettingsCpp + } + } + } + } + } +} +