KIdentityManagement

BasicIdentityEditorCard.qml
1// SPDX-FileCopyrightText: 2023 Claudio Cambra <claudio.cambra@kde.org>
2// SPDX-License-Identifier: LGPL-2.0-or-later
3
4import QtQuick
5import QtQuick.Controls as QQC2
6import QtQuick.Layouts
7import Qt.labs.platform
8
9import org.kde.kirigami as Kirigami
10import org.kde.kirigamiaddons.formcard 1.0 as FormCard
11import org.kde.kidentitymanagement 1.0
12
13ColumnLayout {
14 id: root
15
16 required property var identity
17 property alias toAddEmailText: toAddEmail.text
18
19 function isNotEmptyStr(str) {
20 return str.trim().length > 0;
21 }
22
23 spacing: 0
24
25 FormCard.FormHeader {
26 title: i18n("Identity")
27 }
28
29 FormCard.FormCard {
30 FormCard.FormTextFieldDelegate {
31 id: nameDelegate
32 Layout.fillWidth: true
33 label: i18n("Your name")
34 text: root.identity.fullName
35 onTextChanged: root.identity.fullName = text
36 }
37
39 id: emailDelegate
40 label: i18n("Email address")
41 text: root.identity.primaryEmailAddress
42 onTextChanged: root.identity.primaryEmailAddress = text
43 inputMethodHints: Qt.ImhEmailCharactersOnly
44 }
45 }
46
48 title: i18n("E-mail aliases")
49 }
50
51 FormCard.FormCard {
52 Repeater {
53 id: emailAliasesRepeater
54
55 property var emailAliases: root.identity.emailAliases
56
57 model: emailAliases
58
59 delegate: FormCard.AbstractFormDelegate {
60 id: emailRow
61
62 Layout.fillWidth: true
63
64 contentItem: RowLayout {
65 QQC2.TextField {
66 id: emailAliasField
67 Layout.fillWidth: true
68 text: modelData
69 inputMethodHints: Qt.ImhEmailCharactersOnly
70 onEditingFinished: {
71 let emailAliases = emailAliasesRepeater.emailAliases;
72 emailAliases[model.index] = text;
73 identity.emailAliases = emailAliases;
74 emailAliasesRepeater.emailAliases = emailAliases;
75 }
76 }
77
78 QQC2.Button {
79 icon.name: "list-remove"
80 implicitWidth: implicitHeight
81 QQC2.ToolTip {
82 text: i18n("Remove email alias")
83 }
84 onClicked: {
85 let emailAliases = emailAliasesRepeater.emailAliases;
86 emailAliases = Array.from(emailAliases).filter(email => email !== modelData);
87 identity.emailAliases = emailAliases;
88 emailAliasesRepeater.emailAliases = emailAliases;
89 }
90 }
91 }
92 }
93 }
94
95 FormCard.AbstractFormDelegate {
96 Layout.fillWidth: true
97
98 contentItem: RowLayout {
99 QQC2.TextField {
100 id: toAddEmail
101 Layout.fillWidth: true
102 placeholderText: i18n("user@example.org")
103 inputMethodHints: Qt.ImhEmailCharactersOnly
104 }
105
106 QQC2.Button {
107 icon.name: "list-add"
108 implicitWidth: implicitHeight
109 enabled: isNotEmptyStr(toAddEmail.text)
110 QQC2.ToolTip {
111 text: i18n("Add email alias")
112 }
113 onClicked: {
114 let emailAliases = emailAliasesRepeater.emailAliases;
115 emailAliases.push(toAddEmail.text);
116 identity.emailAliases = emailAliasesRepeater.emailAliases;
117 emailAliasesRepeater.emailAliases = emailAliases;
118 toAddEmail.clear();
119 }
120 }
121 }
122 }
123 }
124}
QString i18n(const char *text, const TYPE &arg...)
QString label(StandardShortcut id)
void clear()
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Sat Apr 27 2024 22:14:39 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.