linux.x86.linphone/Linphone/view/Page/Layout/Settings/ContactsSettingsLayout.qml
data b19d96f82c Fix CardDAV authentication and allow multiple accounts
CardDAV fixes:
- Extract domain from URI for auth info lookup
- Auto-populate realm from host if empty
- Add domain parameter to createAuthInfo for proper auth matching
- Update liblinphone submodule with setAuthInfo fix

UI improvements:
- Allow multiple CardDAV accounts (removed count==0 restriction)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 06:14:37 +01:00

100 lines
2.9 KiB
QML

import QtQuick
import QtQuick.Layouts
import QtQuick.Controls.Basic as Control
import SettingsCpp
import Linphone
AbstractSettingsLayout {
id: mainItem
width: parent?.width
contentModel: [
{
//: Annuaires LDAP
title: qsTr("settings_contacts_ldap_title"),
//: "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche."
subTitle: qsTr("settings_contacts_ldap_subtitle"),
contentComponent: ldapParametersComponent,
hideTopMargin: true
},
{
title: qsTr("settings_contacts_carddav_title"),
subTitle: qsTr("settings_contacts_carddav_subtitle"),
contentComponent: cardDavParametersComponent,
hideTopMargin: true
}
]
function layoutUrl(name) {
return layoutsPath+"/"+name+".qml"
}
function createGuiObject(name) {
return Qt.createQmlObject('import Linphone; '+name+'Gui{}', mainItem)
}
// Ldap parameters
//////////////////
Component {
id: ldapParametersComponent
ContactsSettingsProviderLayout {
//: "Ajouter un annuaire LDAP"
addText: qsTr("settings_contacts_add_ldap_server_title")
//: "Modifier un annuaire LDAP"
editText: qsTr("settings_contacts_edit_ldap_server_title")
//: "Editer le serveur LDAP %1"
accessibleEditButtonText: qsTr("edit_ldap_server_accessible_name")
//: "Utiliser le serveur LDAP %1"
accessibleUseButtonText: qsTr("use_ldap_server_accessible_name")
proxyModel: LdapProxy {}
newItemGui: createGuiObject('Ldap')
settingsLayout: layoutUrl("LdapSettingsLayout")
owner: mainItem
titleProperty: "serverUrl"
supportsEnableDisable: true
showAddButton: true
Connections {
target: mainItem
function onSave() { save()}
function onUndo() { undo()}
}
}
}
// CardDAV parameters
/////////////////////
Component {
id: cardDavParametersComponent
ContactsSettingsProviderLayout {
id: carddavProvider
//: "Ajouter un carnet d'adresse CardDAV"
addText: qsTr("settings_contacts_add_carddav_server_title")
//: "Modifier un carnet d'adresse CardDAV"
editText: qsTr("settings_contacts_edit_carddav_server_title")
//: "Editer le carnet d'adresses CardDAV %1"
accessibleEditButtonText: qsTr("edit_cardav_server_accessible_name")
//: "Utiliser le d'adresses CardDAV %1"
accessibleUseButtonText: qsTr("use_cardav_server_accessible_name")
proxyModel: CarddavProxy {
onModelReset: {
// Allow multiple CardDAV accounts
carddavProvider.showAddButton = true
carddavProvider.newItemGui = createGuiObject('Carddav')
}
}
newItemGui: createGuiObject('Carddav')
settingsLayout: layoutUrl("CarddavSettingsLayout")
owner: mainItem
titleProperty: "displayName"
supportsEnableDisable: false
Connections {
target: mainItem
function onSave() { save()}
function onUndo() { undo()}
}
}
}
}