Warning, /frameworks/qqc2-desktop-style/org.kde.desktop/RadioDelegate.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.RadioDelegate {
0016     id: controlRoot
0017 
0018     implicitWidth: contentItem.implicitWidth + leftPadding + rightPadding
0019     implicitHeight: Math.max(contentItem.implicitHeight,
0020                              indicator ? indicator.implicitHeight : 0) + topPadding + bottomPadding
0021     hoverEnabled: true
0022 
0023     padding: Kirigami.Settings.tabletMode ? Kirigami.Units.largeSpacing : Kirigami.Units.smallSpacing
0024 
0025     topPadding: padding
0026     leftPadding: padding * 2
0027     rightPadding: padding * 2
0028     bottomPadding: padding
0029 
0030     contentItem: Label {
0031         readonly property int indicatorEffectiveWidth: (
0032                 controlRoot.indicator
0033                 && typeof controlRoot.indicator.pixelMetric === "function"
0034                 && controlRoot.icon.name === ""
0035                 && controlRoot.icon.source.toString() === ""
0036             ) ? controlRoot.indicator.pixelMetric("exclusiveindicatorwidth") + controlRoot.spacing
0037               : controlRoot.indicator.width
0038 
0039         leftPadding: controlRoot.indicator && !controlRoot.mirrored ? indicatorEffectiveWidth : 0
0040         rightPadding: controlRoot.indicator && controlRoot.mirrored ? indicatorEffectiveWidth : 0
0041 
0042         text: controlRoot.text
0043         font: controlRoot.font
0044         color: (controlRoot.pressed && !controlRoot.checked && !controlRoot.sectionDelegate) ? Kirigami.Theme.highlightedTextColor : Kirigami.Theme.textColor
0045         elide: Text.ElideRight
0046         visible: controlRoot.text
0047         horizontalAlignment: Text.AlignLeft
0048         verticalAlignment: Text.AlignVCenter
0049     }
0050 
0051     indicator: CheckIndicator {
0052         elementType: "radiobutton"
0053         x: controlRoot.mirrored ? controlRoot.leftPadding : controlRoot.width - width - controlRoot.rightPadding
0054         y: controlRoot.topPadding + (controlRoot.availableHeight - height) / 2
0055 
0056         control: controlRoot
0057     }
0058 
0059     background: DefaultListItemBackground {
0060         control: controlRoot
0061     }
0062 }