Warning, /frameworks/kirigami/src/controls/ListSectionHeader.qml is written in an unsupported language. File is not indexed.

0001 /*
0002  *  SPDX-FileCopyrightText: 2019 Björn Feber <bfeber@protonmail.com>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 import QtQuick
0008 import QtQuick.Controls
0009 import QtQuick.Layouts
0010 import org.kde.kirigami as Kirigami
0011 
0012 /**
0013  * @brief A section delegate for the primitive ListView component.
0014  *
0015  * It's intended to make all listviews look coherent.
0016  *
0017  * Example usage:
0018  * @code
0019  * import QtQuick 2.5
0020  * import QtQuick.Controls 2.5 as QQC2
0021  *
0022  * import org.kde.kirigami 2.10 as Kirigami
0023  *
0024  * ListView {
0025  *  [...]
0026  *     section.delegate: Kirigami.ListSectionHeader {
0027  *         label: section
0028  *
0029  *         QQC2.Button {
0030  *             text: "Button 1"
0031  *         }
0032  *         QQC2.Button {
0033  *             text: "Button 2"
0034  *         }
0035  *     }
0036  *  [...]
0037  * }
0038  * @endcode
0039  */
0040 ItemDelegate {
0041     id: listSection
0042 
0043     /**
0044      * @brief This property sets the text of the ListView's section header.
0045      * @property string label
0046      */
0047     property alias label: listSection.text
0048 
0049     default property alias _contents: rowLayout.data
0050 
0051     hoverEnabled: false
0052 
0053     activeFocusOnTab: false
0054 
0055     // we do not need a background
0056     background: Item {}
0057 
0058     topPadding: Kirigami.Units.largeSpacing + Kirigami.Units.smallSpacing
0059 
0060     contentItem: RowLayout {
0061         id: rowLayout
0062         spacing: Kirigami.Units.largeSpacing
0063 
0064         Kirigami.Heading {
0065             Layout.maximumWidth: rowLayout.width
0066             Layout.alignment: Qt.AlignVCenter
0067 
0068             opacity: 0.7
0069             level: 5
0070             type: Kirigami.Heading.Primary
0071             text: listSection.text
0072             elide: Text.ElideRight
0073 
0074             // we override the Primary type's font weight (DemiBold) for Bold for contrast with small text
0075             font.weight: Font.Bold
0076 
0077             Accessible.ignored: true
0078         }
0079 
0080         Kirigami.Separator {
0081             Layout.fillWidth: true
0082             Layout.alignment: Qt.AlignVCenter
0083             Accessible.ignored: true
0084         }
0085     }
0086 }