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 contentComponent: content topbarOptionalComponent: topBar property alias carddavGui: mainItem.model property bool isNew: false Component { id: topBar RowLayout { spacing: 20 * DefaultStyle.dp Button { background: Item{} icon.source: AppIcons.trashCan icon.width: 32 * DefaultStyle.dp icon.height: 32 * DefaultStyle.dp contentImageColor: DefaultStyle.main2_600 visible: !isNew onClicked: { var mainWin = UtilsCpp.getMainWindow() mainWin.showConfirmationLambdaPopup("", qsTr("Supprimer le carnet d'adresse CardDAV ?"), "", function (confirmed) { if (confirmed) { carddavGui.core.remove() mainItem.container.pop() } } ) } } Button { text: qsTr("Enregistrer") onClicked: { if (carddavGui.core.isValid()) { carddavGui.core.save() } else { UtilsCpp.showInformationPopup(qsTr("Erreur"), qsTr("Vérifiez que toutes les informations ont été saisies."), false, mainWindow) } } Connections { target: carddavGui.core function onSaved(success) { if (success) UtilsCpp.showInformationPopup(qsTr("Succès"), qsTr("Le carnet d'adresse CardDAV est synchronisé."), true, mainWindow) else UtilsCpp.showInformationPopup(qsTr("Erreur"), qsTr("Erreur de synchronisation!"), false, mainWindow) } } } } } Component { id: content ColumnLayout { width: parent.width spacing: 5 * DefaultStyle.dp RowLayout { Layout.topMargin: 16 * DefaultStyle.dp spacing: 5 * DefaultStyle.dp ColumnLayout { Layout.fillWidth: true spacing: 5 * DefaultStyle.dp ColumnLayout { Layout.preferredWidth: 341 * DefaultStyle.dp Layout.maximumWidth: 341 * DefaultStyle.dp Layout.minimumWidth: 341 * DefaultStyle.dp spacing: 5 * DefaultStyle.dp Text { Layout.fillWidth: true text: qsTr("Carnet d'adresse CardDAV") font: Typography.h4 wrapMode: Text.WordWrap color: DefaultStyle.main2_600 } Text { text: qsTr("Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers.") font: Typography.p1s wrapMode: Text.WordWrap color: DefaultStyle.main2_600 Layout.fillWidth: true } } Item { Layout.fillHeight: true } } ColumnLayout { Layout.fillWidth: true spacing: 20 * DefaultStyle.dp Layout.rightMargin: 44 * DefaultStyle.dp Layout.topMargin: 20 * DefaultStyle.dp Layout.leftMargin: 64 * DefaultStyle.dp DecoratedTextField { propertyName: "displayName" propertyOwner: carddavGui.core title: qsTr("Nom d’affichage") canBeEmpty: false toValidate: true } DecoratedTextField { propertyName: "uri" propertyOwner: carddavGui.core title: qsTr("URL du serveur") canBeEmpty: false toValidate: true } DecoratedTextField { propertyName: "username" propertyOwner: carddavGui.core title: qsTr("Nom d’utilisateur") toValidate: true } DecoratedTextField { propertyName: "password" hidden: true propertyOwner: carddavGui.core title: qsTr("Mot de passe") toValidate: true } DecoratedTextField { propertyName: "realm" propertyOwner: carddavGui.core title: qsTr("Domaine d’authentification") toValidate: true } SwitchSetting { titleText: qsTr("Stocker ici les contacts nouvellement crées") propertyName: "storeNewFriendsInIt" propertyOwner: carddavGui.core } } } } } }