Kirigami-addons

SubtitleContentItem.qml
1// SPDX-FileCopyrightText: 2023 Carl Schwan <carl@carlschwan.eu>
2// SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
3
4import QtQuick
5import QtQuick.Layouts
6import QtQuick.Controls as QQC2
7import QtQuick.Templates as T
8import org.kde.kirigami as Kirigami
9
10RowLayout {
11 id: root
12
13 required property T.ItemDelegate itemDelegate
14 required property string subtitle
15 property bool bold: false
16
17 readonly property alias labelItem: labelItem
18 readonly property alias subtitleItem: subtitleItem
19 readonly property alias iconItem: iconItem
20
21 spacing: itemDelegate instanceof T.ItemDelegate ? itemDelegate.spacing : Kirigami.Units.mediumSpacing
22
23 Kirigami.Icon {
24 id: iconItem
25
26 visible: itemDelegate.icon.name.length > 0 || itemDelegate.icon.source.toString().length > 0
27 source: itemDelegate.icon.name.length > 0 ? itemDelegate.icon.name : itemDelegate.icon.source
28
29 Layout.alignment: Qt.AlignVCenter
30 Layout.preferredHeight: itemDelegate.icon.width
31 Layout.preferredWidth: itemDelegate.icon.height
32 Layout.leftMargin: Kirigami.Units.smallSpacing
33 Layout.rightMargin: Kirigami.Units.smallSpacing
34 }
35
36 ColumnLayout {
37 Layout.fillWidth: true
38 spacing: 0
39
40 QQC2.Label {
41 id: labelItem
42
43 leftPadding: itemDelegate.mirrored ? (itemDelegate.indicator ? itemDelegate.indicator.width : 0) + itemDelegate.spacing : 0
44 rightPadding: !itemDelegate.mirrored ? (itemDelegate.indicator ? itemDelegate.indicator.width : 0) + itemDelegate.spacing : 0
45
46 text: itemDelegate.text
47 font: itemDelegate.font
48 color: itemDelegate.enabled ? Kirigami.Theme.textColor : Kirigami.Theme.disabledTextColor
49 elide: Text.ElideRight
50 visible: itemDelegate.text
51 horizontalAlignment: Text.AlignLeft
52 verticalAlignment: Text.AlignVCenter
53
54 Layout.fillWidth: true
55 Layout.alignment: subtitleItem.visible ? Qt.AlignLeft | Qt.AlignBottom : Qt.AlignLeft | Qt.AlignVCenter
56 }
57
58 QQC2.Label {
59 id: subtitleItem
60
61 color: itemDelegate.enabled ? Kirigami.Theme.textColor : Kirigami.Theme.disabledTextColor
62 text: root.subtitle
63
64 elide: Text.ElideRight
65 font: Kirigami.Theme.smallFont
66 opacity: root.bold ? 0.9 : 0.7
67 visible: text.length > 0
68
69 Layout.fillWidth: true
70 Layout.alignment: visible ? Qt.AlignLeft | Qt.AlignTop : Qt.AlignLeft | Qt.AlignVCenter
71 }
72 }
73}
74
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 28 2025 11:51:42 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.