Warning, /frameworks/qqc2-desktop-style/org.kde.desktop/CheckDelegate.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2017 Marco Martin <mart@kde.org>
0003     SPDX-FileCopyrightText: 2017 The Qt Company Ltd.
0004     SPDX-FileCopyrightText: 2023 ivan tkachenko <me@ratijas.tk>
0005 
0006     SPDX-License-Identifier: LGPL-3.0-only OR GPL-2.0-or-later
0007 */
0008 
0009 
0010 import QtQuick 2.5
0011 import QtQuick.Templates 2.15 as T
0012 import org.kde.kirigami 2.4 as Kirigami
0013 import "private"
0014 
0015 T.CheckDelegate {
0016     id: controlRoot
0017 
0018     implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding
0019     implicitHeight: Math.max(contentItem.implicitHeight,
0020                                       indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding
0021 
0022     spacing: indicator && typeof indicator.pixelMetric === "function" ? indicator.pixelMetric("checkboxlabelspacing") : Kirigami.Units.smallSpacing
0023 
0024     hoverEnabled: true
0025 
0026     padding: Kirigami.Settings.tabletMode ? Kirigami.Units.largeSpacing : Kirigami.Units.smallSpacing
0027 
0028     topPadding: padding
0029     leftPadding: padding * 2
0030     rightPadding: padding * 2
0031     bottomPadding: padding
0032 
0033     contentItem: Label {
0034         readonly property int indicatorEffectiveWidth: (
0035                 controlRoot.indicator
0036                 && typeof controlRoot.indicator.pixelMetric === "function"
0037                 && controlRoot.icon.name === ""
0038                 && controlRoot.icon.source.toString() === ""
0039             ) ? controlRoot.indicator.pixelMetric("indicatorwidth") + controlRoot.spacing
0040               : controlRoot.indicator.width
0041 
0042         leftPadding: controlRoot.indicator && !controlRoot.mirrored ? indicatorEffectiveWidth : 0
0043         rightPadding: controlRoot.indicator && controlRoot.mirrored ? indicatorEffectiveWidth : 0
0044 
0045         text: controlRoot.text
0046         font: controlRoot.font
0047         color: (((controlRoot.pressed && !controlRoot.checked) || controlRoot.highlighted) && !controlRoot.sectionDelegate) ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor
0048         elide: Text.ElideRight
0049         visible: controlRoot.text
0050         horizontalAlignment: Text.AlignLeft
0051         verticalAlignment: Text.AlignVCenter
0052     }
0053 
0054     indicator: CheckIndicator {
0055         elementType: "checkbox"
0056         x: controlRoot.mirrored ? controlRoot.width - width - controlRoot.rightPadding : controlRoot.leftPadding
0057         y: controlRoot.topPadding + (controlRoot.availableHeight - height) / 2
0058 
0059         control: controlRoot
0060     }
0061 
0062     background: DefaultListItemBackground {
0063         control: controlRoot
0064     }
0065 }