import QtCore import QtQuick import QtQuick.Layouts import QtQuick.Controls.Basic as Control import QtQuick.Dialogs import Linphone import SettingsCpp 1.0 import UtilsCpp AbstractSettingsLayout { id: mainItem width: parent?.width contentModel: [ { title: qsTr("Paramètres"), subTitle: "", contentComponent: generalParametersComponent }, { title: qsTr("Paramètres de compte"), subTitle: "", contentComponent: advancedParametersComponent } ] property alias account: mainItem.model onSave: { account.core.save() } onUndo: account.core.undo() Connections { target: account.core function onIsSavedChanged() { if (account.core.isSaved) UtilsCpp.showInformationPopup(qsTr("Succès"), qsTr("Les changements ont été sauvegardés"), true, mainWindow) } } // General parameters ///////////////////// Component { id: generalParametersComponent ColumnLayout { id: column Layout.fillWidth: true spacing: 20 * DefaultStyle.dp DecoratedTextField { propertyName: "mwiServerAddress" propertyOwnerGui: account title: qsTr("URI du serveur de messagerie vocale") Layout.fillWidth: true isValid: function(text) { return text.length == 0 || !text.endsWith(".") } // work around sdk crash when adress ends with . toValidate: true } DecoratedTextField { propertyName: "voicemailAddress" propertyOwnerGui: account title: qsTr("URI de messagerie vocale") Layout.fillWidth: true toValidate: true } } } // Advanced parameters ///////////////////// Component { id: advancedParametersComponent ColumnLayout { Layout.fillWidth: true spacing: 20 * DefaultStyle.dp Text { text: qsTr("Transport") color: DefaultStyle.main2_600 font: Typography.p2l } ComboSetting { Layout.fillWidth: true Layout.topMargin: -15 * DefaultStyle.dp entries: account.core.transports propertyName: "transport" propertyOwnerGui: account } DecoratedTextField { Layout.fillWidth: true title: qsTr("URL du serveur mandataire") propertyName: "serverAddress" propertyOwnerGui: account toValidate: true } SwitchSetting { titleText: qsTr("Serveur mandataire sortant") propertyName: "outboundProxyEnabled" propertyOwnerGui: account } DecoratedTextField { Layout.fillWidth: true propertyName: "stunServer" propertyOwnerGui: account title: qsTr("Adresse du serveur STUN") toValidate: true } SwitchSetting { titleText: qsTr("Activer ICE") propertyName: "iceEnabled" propertyOwnerGui: account } SwitchSetting { titleText: qsTr("AVPF") propertyName: "avpfEnabled" propertyOwnerGui: account } SwitchSetting { titleText: qsTr("Mode bundle") propertyName: "bundleModeEnabled" propertyOwnerGui: account } DecoratedTextField { Layout.fillWidth: true propertyName: "expire" propertyOwnerGui: account title: qsTr("Expiration (en seconde)") canBeEmpty: false isValid: function(text) { return !isNaN(Number(text)) } toValidate: true } DecoratedTextField { Layout.fillWidth: true title: qsTr("URI de l’usine à conversations") propertyName: "conferenceFactoryAddress" propertyOwnerGui: account toValidate: true } DecoratedTextField { Layout.fillWidth: true title: qsTr("URI de l’usine à réunions") propertyName: "audioVideoConferenceFactoryAddress" propertyOwnerGui: account visible: !SettingsCpp.disableMeetingsFeature toValidate: true } DecoratedTextField { Layout.fillWidth: true title: qsTr("URL du serveur d’échange de clés de chiffrement") propertyName: "limeServerUrl" propertyOwnerGui: account toValidate: true } } } }