Warning, /libraries/kirigami-addons/src/delegates/SubtitleContentItem.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2023 Carl Schwan <carl@carlschwan.eu>
0002 // SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0003 
0004 import QtQuick 2.15
0005 import QtQuick.Layouts 1.15
0006 import QtQuick.Controls 2.15 as QQC2
0007 import QtQuick.Templates 2.15 as T
0008 import org.kde.kirigami 2.20 as Kirigami
0009 
0010 RowLayout {
0011     id: root
0012 
0013     required property T.ItemDelegate itemDelegate
0014     required property string subtitle
0015     property bool bold: false
0016 
0017     readonly property alias labelItem: labelItem
0018     readonly property alias subtitleItem: subtitleItem
0019     readonly property alias iconItem: iconItem
0020 
0021     spacing: Kirigami.Units.smallSpacing
0022 
0023     Kirigami.Icon {
0024         id: iconItem
0025         Layout.alignment: Qt.AlignVCenter
0026         visible: itemDelegate.icon.name.length > 0 || itemDelegate.icon.source.toString().length > 0
0027         source: itemDelegate.icon.name.length > 0 ? itemDelegate.icon.name : itemDelegate.icon.source
0028 
0029         Layout.preferredHeight: itemDelegate.icon.width
0030         Layout.preferredWidth: itemDelegate.icon.height
0031         Layout.leftMargin: Kirigami.Units.smallSpacing
0032         Layout.rightMargin: Kirigami.Units.smallSpacing
0033     }
0034 
0035     ColumnLayout {
0036         Layout.fillWidth: true
0037         spacing: 0
0038 
0039         QQC2.Label {
0040             id: labelItem
0041 
0042             leftPadding: itemDelegate.mirrored ? (itemDelegate.indicator ? itemDelegate.indicator.width : 0) + itemDelegate.spacing : 0
0043             rightPadding: !itemDelegate.mirrored ? (itemDelegate.indicator ? itemDelegate.indicator.width : 0) + itemDelegate.spacing : 0
0044 
0045             text: itemDelegate.text
0046             font: itemDelegate.font
0047             color: itemDelegate.enabled ? Kirigami.Theme.textColor : Kirigami.Theme.disabledTextColor
0048             elide: Text.ElideRight
0049             visible: itemDelegate.text
0050             horizontalAlignment: Text.AlignLeft
0051             verticalAlignment: Text.AlignVCenter
0052 
0053             Layout.fillWidth: true
0054             Layout.alignment: subtitleItem.visible ? Qt.AlignLeft | Qt.AlignBottom : Qt.AlignLeft | Qt.AlignVCenter
0055         }
0056 
0057         QQC2.Label {
0058             id: subtitleItem
0059 
0060             color: itemDelegate.enabled ? Kirigami.Theme.textColor : Kirigami.Theme.disabledTextColor
0061             text: root.subtitle
0062 
0063             elide: Text.ElideRight
0064             font: Kirigami.Theme.smallFont
0065             opacity: root.bold ? 0.9 : 0.7
0066             visible: text.length > 0
0067 
0068             Layout.fillWidth: true
0069             Layout.alignment: visible ? Qt.AlignLeft | Qt.AlignTop : Qt.AlignLeft | Qt.AlignVCenter
0070         }
0071     }
0072 }
0073