Warning, /pim/kmail-account-wizard/src/apps/contents/ui/ConfigurationDelegate.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2022 Devin Lin <devin@kde.org>
0002 // SPDX-FileCopyrightText: 2023 Carl Schwan <carl@carlschwan.eu>
0003 // SPDX-License-Identifier: LGPL-2.0-or-later
0004 
0005 import QtQuick
0006 import QtQuick.Templates as T
0007 import QtQuick.Controls as QQC2
0008 import QtQuick.Layouts
0009 
0010 import org.kde.kirigami as Kirigami
0011 import org.kde.kirigamiaddons.formcard as FormCard
0012 
0013 /**
0014  * Form delegate that corresponds to a checkbox.
0015  */
0016 T.RadioDelegate {
0017     id: root
0018 
0019     required property string name
0020     required property string description
0021     required property string incomingHost
0022     required property var incomingTags
0023     required property string outgoingHost
0024     required property var outgoingTags
0025 
0026     leftPadding: Kirigami.Units.gridUnit
0027     topPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
0028     bottomPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
0029     rightPadding: Kirigami.Units.gridUnit
0030 
0031     implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding
0032     implicitHeight: contentItem.implicitHeight + topPadding + bottomPadding
0033 
0034     focusPolicy: Qt.StrongFocus
0035     hoverEnabled: true
0036 
0037     background: FormCard.FormDelegateBackground { control: root }
0038 
0039     Layout.fillWidth: true
0040 
0041     contentItem: RowLayout {
0042         spacing: 0
0043 
0044         QQC2.RadioButton {
0045             id: checkBoxItem
0046             Layout.rightMargin: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
0047             Layout.alignment: Qt.AlignTop
0048             focusPolicy: Qt.NoFocus // provided by delegate
0049 
0050             onToggled: {
0051                 root.toggle();
0052                 root.toggled();
0053             }
0054             onClicked: root.clicked()
0055             onPressAndHold: root.pressAndHold()
0056             onDoubleClicked: root.doubleClicked()
0057 
0058             enabled: root.enabled
0059             checked: root.checked
0060         }
0061 
0062         ColumnLayout {
0063             Layout.fillWidth: true
0064             spacing: Kirigami.Units.smallSpacing
0065 
0066             Behavior on height {
0067                 NumberAnimation { duration: 400 }
0068             }
0069 
0070             Kirigami.Heading {
0071                 level: 4
0072                 text: root.name
0073                 color: root.enabled ? Kirigami.Theme.textColor : Kirigami.Theme.disabledTextColor
0074                 elide: Text.ElideRight
0075                 font.bold: true
0076                 wrapMode: Text.Wrap
0077                 Layout.fillWidth: true
0078             }
0079 
0080             QQC2.Label {
0081                 Layout.fillWidth: true
0082                 text: root.description
0083                 wrapMode: Text.Wrap
0084             }
0085 
0086             GridLayout {
0087                 id: details
0088                 columns: 2
0089                 visible: checkBoxItem.checked
0090 
0091                 QQC2.Label {
0092                     font.bold: true
0093                     text: i18n("Incoming")
0094                 }
0095 
0096                 RowLayout {
0097                     Repeater {
0098                         model: root.incomingTags
0099                         Kirigami.Chip {
0100                             text: modelData
0101                             enabled: false
0102                             closable: false
0103                         }
0104                     }
0105                 }
0106 
0107                 QQC2.Label {
0108                     text: root.incomingHost
0109                     Layout.columnSpan: 2
0110                 }
0111 
0112                 QQC2.Label {
0113                     font.bold: true
0114                     text: i18n("Outgoing")
0115                     visible: root.outgoingTags.length > 0
0116                 }
0117 
0118                 RowLayout {
0119                     Repeater {
0120                         model: root.outgoingTags
0121                         Kirigami.Chip {
0122                             text: modelData
0123                             enabled: false
0124                             closable: false
0125                         }
0126                     }
0127                 }
0128 
0129                 QQC2.Label {
0130                     text: root.outgoingHost
0131                     Layout.columnSpan: 2
0132                 }
0133             }
0134         }
0135     }
0136 }
0137