diff --git a/linphone-desktop/assets/images/file.png b/linphone-desktop/assets/images/file.png deleted file mode 100644 index 188c12c14..000000000 Binary files a/linphone-desktop/assets/images/file.png and /dev/null differ diff --git a/linphone-desktop/assets/languages/en.ts b/linphone-desktop/assets/languages/en.ts index adf85b425..53687d983 100644 --- a/linphone-desktop/assets/languages/en.ts +++ b/linphone-desktop/assets/languages/en.ts @@ -817,6 +817,49 @@ Server url not configured. deleteHeader Delete + + deleteAccountDescription + + + + + SettingsSipAccountsEdit + + sipAddressLabel + SIP address + + + transportLabel + Transport + + + serverAddressLabel + SIP Server address + + + registrationDurationLabel + Registration duration (sec) + + + routeLabel + Route + + + contactParamsLabel + Contact params + + + registerLabel + Register + + + publishPresenceLabel + Publish presence information + + + enableAvpfLabel + AVPF regular RTCP interval (sec) + SettingsUi diff --git a/linphone-desktop/assets/languages/fr.ts b/linphone-desktop/assets/languages/fr.ts index 543b892ca..ff6b9df95 100644 --- a/linphone-desktop/assets/languages/fr.ts +++ b/linphone-desktop/assets/languages/fr.ts @@ -817,6 +817,49 @@ Url du serveur non configurée. deleteHeader Supprimer + + deleteAccountDescription + + + + + SettingsSipAccountsEdit + + sipAddressLabel + Adresse SIP + + + transportLabel + Transport + + + serverAddressLabel + Adresse serveur SIP + + + registrationDurationLabel + Durée d'enregistrement + + + routeLabel + Route + + + contactParamsLabel + Paramètres de contact + + + registerLabel + S'enregistrer + + + publishPresenceLabel + Publier la présence + + + enableAvpfLabel + Activer AVPF + SettingsUi diff --git a/linphone-desktop/resources.qrc b/linphone-desktop/resources.qrc index 1b3341c90..7a529f5f8 100644 --- a/linphone-desktop/resources.qrc +++ b/linphone-desktop/resources.qrc @@ -340,6 +340,8 @@ ui/views/App/Settings/SettingsAudio.qml ui/views/App/Settings/SettingsCallsChat.qml ui/views/App/Settings/SettingsNetwork.qml + ui/views/App/Settings/SettingsSipAccountsEdit.qml + ui/views/App/Settings/SettingsSipAccounts.js ui/views/App/Settings/SettingsSipAccounts.qml ui/views/App/Settings/SettingsUi.qml ui/views/App/Settings/SettingsVideo.qml diff --git a/linphone-desktop/src/components/settings/AccountSettingsModel.cpp b/linphone-desktop/src/components/settings/AccountSettingsModel.cpp index 5fb3cbe62..28fe87491 100644 --- a/linphone-desktop/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-desktop/src/components/settings/AccountSettingsModel.cpp @@ -34,6 +34,11 @@ void AccountSettingsModel::setDefaultProxyConfig (const shared_ptr &proxy_config) { + CoreManager::getInstance()->getCore()->removeProxyConfig(proxy_config); + emit accountSettingsUpdated(); +} + // ----------------------------------------------------------------------------- QString AccountSettingsModel::getUsername () const { diff --git a/linphone-desktop/src/components/settings/AccountSettingsModel.hpp b/linphone-desktop/src/components/settings/AccountSettingsModel.hpp index 086bf893b..7affddb70 100644 --- a/linphone-desktop/src/components/settings/AccountSettingsModel.hpp +++ b/linphone-desktop/src/components/settings/AccountSettingsModel.hpp @@ -44,6 +44,7 @@ public: AccountSettingsModel (QObject *parent = Q_NULLPTR) : QObject(parent) {} Q_INVOKABLE void setDefaultProxyConfig (const std::shared_ptr &proxy_config); + Q_INVOKABLE void removeProxyConfig (const std::shared_ptr &proxy_config); signals: void accountSettingsUpdated (); diff --git a/linphone-desktop/ui/views/App/Settings/SettingsSipAccounts.js b/linphone-desktop/ui/views/App/Settings/SettingsSipAccounts.js new file mode 100644 index 000000000..98a44bb2b --- /dev/null +++ b/linphone-desktop/ui/views/App/Settings/SettingsSipAccounts.js @@ -0,0 +1,25 @@ +// ============================================================================= +// `SettingsSipAccounts.qml` Logic. +// ============================================================================= + +.import Linphone 1.0 as Linphone + +.import 'qrc:/ui/scripts/Utils/utils.js' as Utils + +// ============================================================================= + +function editAccount (account) { + window.attachVirtualWindow(Qt.resolvedUrl('SettingsSipAccountsEdit.qml'), { + account: account + }) +} + +function deleteAccount (account) { + window.attachVirtualWindow(Utils.buildDialogUri('ConfirmDialog'), { + descriptionText: qsTr('deleteAccountDescription'), + }, function (status) { + if (status) { + Linphone.AccountSettingsModel.removeProxyConfig(account.proxyConfig) + } + }) +} diff --git a/linphone-desktop/ui/views/App/Settings/SettingsSipAccounts.qml b/linphone-desktop/ui/views/App/Settings/SettingsSipAccounts.qml index 6ca6c2a3e..b13c5dbcb 100644 --- a/linphone-desktop/ui/views/App/Settings/SettingsSipAccounts.qml +++ b/linphone-desktop/ui/views/App/Settings/SettingsSipAccounts.qml @@ -6,6 +6,8 @@ import Linphone 1.0 import App.Styles 1.0 +import 'SettingsSipAccounts.js' as Logic + // ============================================================================= TabContainer { @@ -66,7 +68,7 @@ TabContainer { width: parent.width FormTable { - legendLineWidth: 280 + legendLineWidth: SettingsWindowStyle.sipAccounts.legendLineWidth titles: [ qsTr('registerHeader'), @@ -88,6 +90,8 @@ TabContainer { ActionButton { icon: 'edit' iconSize: SettingsWindowStyle.sipAccounts.iconSize + + onClicked: Logic.editAccount(modelData) } } @@ -95,6 +99,8 @@ TabContainer { ActionButton { icon: 'delete' iconSize: SettingsWindowStyle.sipAccounts.iconSize + + onClicked: Logic.deleteAccount(modelData) } } } diff --git a/linphone-desktop/ui/views/App/Settings/SettingsSipAccountsEdit.qml b/linphone-desktop/ui/views/App/Settings/SettingsSipAccountsEdit.qml new file mode 100644 index 000000000..eba45d4f2 --- /dev/null +++ b/linphone-desktop/ui/views/App/Settings/SettingsSipAccountsEdit.qml @@ -0,0 +1,117 @@ +import QtQuick 2.7 + +import Common 1.0 +import Linphone 1.0 +import Utils 1.0 + +import App.Styles 1.0 + +// ============================================================================= + +ConfirmDialog { + property var account + + height: 500 + width: 600 + + // --------------------------------------------------------------------------- + + Form { + anchors { + left: parent.left + leftMargin: ManageAccountsStyle.leftMargin + right: parent.right + rightMargin: ManageAccountsStyle.rightMargin + } + + FormLine { + FormGroup { + label: qsTr('sipAddressLabel') + '*' + + TextField { + + } + } + } + + FormLine { + FormGroup { + label: qsTr('serverAddressLabel') + '*' + + TextField { + + } + } + } + + FormLine { + FormGroup { + label: qsTr('registrationDurationLabel') + '*' + + TextField { + + } + } + } + + FormLine { + FormGroup { + label: qsTr('transportLabel') + '*' + + ComboBox { + model: [ 'TCP', 'UDP', 'TLS' ] + } + } + } + + FormLine { + FormGroup { + label: qsTr('routeLabel') + + TextField { + + } + } + } + + FormLine { + FormGroup { + label: qsTr('contactParamsLabel') + + TextField { + + } + } + } + + FormLine { + FormGroup { + label: qsTr('registerLabel') + + Switch { + + } + } + } + + FormLine { + FormGroup { + label: qsTr('publishPresenceLabel') + + Switch { + + } + } + } + + FormLine { + FormGroup { + label: qsTr('enableAvpfLabel') + + Switch { + + } + } + } + } +} diff --git a/linphone-desktop/ui/views/App/Styles/Settings/SettingsWindowStyle.qml b/linphone-desktop/ui/views/App/Styles/Settings/SettingsWindowStyle.qml index 3484eec7b..e0d2e9210 100644 --- a/linphone-desktop/ui/views/App/Styles/Settings/SettingsWindowStyle.qml +++ b/linphone-desktop/ui/views/App/Styles/Settings/SettingsWindowStyle.qml @@ -20,5 +20,6 @@ QtObject { property QtObject sipAccounts: QtObject { property int buttonsSpacing: 8 property int iconSize: 20 + property int legendLineWidth: 280 } } diff --git a/submodules/belle-sip b/submodules/belle-sip index 86673fbea..114b5be32 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 86673fbeadb2979540df3c929857faf037fdf39c +Subproject commit 114b5be32a5b63ea68c8cf791230280981d2ec4c