Warning, /plasma-mobile/plasma-settings/src/qml/SidebarButton.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2021 Devin Lin <espidev@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 import QtQuick 2.15 0008 import QtQuick.Controls 2.15 as Controls 0009 import QtQuick.Layouts 1.15 0010 import org.kde.kirigami 2.12 as Kirigami 0011 0012 Controls.AbstractButton { 0013 id: button 0014 0015 readonly property color baseColor: Kirigami.Theme.highlightColor 0016 readonly property color pressedColor: Qt.rgba(baseColor.r, baseColor.g, baseColor.b, 0.3) 0017 readonly property color hoverSelectColor: Qt.rgba(baseColor.r, baseColor.g, baseColor.b, 0.2) 0018 readonly property color checkedBorderColor: Qt.rgba(baseColor.r, baseColor.g, baseColor.b, 0.7) 0019 readonly property color pressedBorderColor: Qt.rgba(baseColor.r, baseColor.g, baseColor.b, 0.9) 0020 0021 background: Rectangle { 0022 radius: Kirigami.Units.smallSpacing 0023 Kirigami.Theme.colorSet: Kirigami.Theme.Button 0024 Kirigami.Theme.inherit: false 0025 0026 color: button.pressed ? pressedColor : (button.checked || (hoverHandler.hovered && !Kirigami.Settings.tabletMode) ? hoverSelectColor : "transparent") 0027 0028 border.color: button.checked ? checkedBorderColor : (button.pressed ? pressedBorderColor : color) 0029 border.width: 1 0030 0031 Behavior on color { ColorAnimation { duration: Kirigami.Units.shortDuration } } 0032 Behavior on border.color { ColorAnimation { duration: Kirigami.Units.shortDuration } } 0033 0034 HoverHandler { 0035 id: hoverHandler 0036 } 0037 } 0038 0039 contentItem: RowLayout { 0040 spacing: Kirigami.Units.gridUnit 0041 0042 Kirigami.Icon { 0043 Layout.leftMargin: Kirigami.Units.gridUnit 0044 implicitHeight: Kirigami.Units.iconSizes.smallMedium 0045 implicitWidth: Kirigami.Units.iconSizes.smallMedium 0046 Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter 0047 source: button.icon.name ? button.icon.name : "question" 0048 } 0049 0050 Controls.Label { 0051 id: label 0052 Layout.alignment: Qt.AlignLeft | Qt.AlignVCenter 0053 text: button.text 0054 opacity: button.display !== Controls.AbstractButton.TextOnly ? 1 : 0 0055 0056 Behavior on opacity { 0057 NumberAnimation { 0058 duration: Kirigami.Units.longDuration 0059 easing.type: Easing.InOutQuad 0060 } 0061 } 0062 } 0063 0064 Item { Layout.fillWidth: true } 0065 } 0066 }