Warning, /plasma/plasma-mobile/lookandfeel/contents/logout/ActionButton.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 * SPDX-FileCopyrightText: 2016 David Edmundson <davidedmundson@kde.org> 0003 * SPDX-FileCopyrightText: 2022 Seshan Ravikumar <seshan10@me.com> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 import QtQuick 2.8 0009 0010 import org.kde.plasma.core as PlasmaCore 0011 import org.kde.plasma.components 3.0 as PlasmaComponents3 0012 import org.kde.kirigami 2.20 as Kirigami 0013 0014 Item { 0015 id: root 0016 property alias text: label.text 0017 property alias iconSource: icon.source 0018 property alias containsMouse: mouseArea.containsMouse 0019 property alias font: label.font 0020 property alias labelRendering: label.renderType 0021 property alias circleOpacity: buttonRect.opacity 0022 property alias circleVisiblity: buttonRect.visible 0023 readonly property bool softwareRendering: GraphicsInfo.api === GraphicsInfo.Software 0024 0025 signal clicked 0026 0027 activeFocusOnTab: true 0028 0029 property int iconSize: Kirigami.Units.gridUnit 0030 0031 implicitWidth: Kirigami.Units.gridUnit * 14 0032 implicitHeight: iconSize + Kirigami.Units.smallSpacing + label.implicitHeight 0033 0034 Rectangle { 0035 id: buttonRect 0036 width: root.width 0037 height: iconSize * 2.2 0038 radius: Kirigami.Units.smallSpacing 0039 color: Kirigami.Theme.backgroundColor 0040 opacity: mouseArea.containsPress ? 1 : 0.6 0041 border { 0042 color: Qt.rgba(255, 255, 255, 0.8) 0043 width: 1 0044 } 0045 } 0046 0047 Kirigami.Icon { 0048 id: icon 0049 anchors { 0050 verticalCenter: buttonRect.verticalCenter 0051 left: buttonRect.left 0052 leftMargin: Kirigami.Units.mediumSpacing 0053 } 0054 width: iconSize 0055 height: iconSize 0056 } 0057 0058 PlasmaComponents3.Label { 0059 id: label 0060 font.pointSize: Kirigami.Theme.defaultFont.pointSize + 1 0061 anchors { 0062 centerIn: buttonRect 0063 } 0064 style: softwareRendering ? Text.Outline : Text.Normal 0065 styleColor: softwareRendering ? Kirigami.Theme.backgroundColor : "transparent" //no outline, doesn't matter 0066 horizontalAlignment: Text.AlignHCenter 0067 verticalAlignment: Text.AlignTop 0068 wrapMode: Text.WordWrap 0069 font.underline: root.activeFocus 0070 } 0071 0072 MouseArea { 0073 id: mouseArea 0074 hoverEnabled: true 0075 onClicked: root.clicked() 0076 anchors.fill: parent 0077 } 0078 0079 Keys.onEnterPressed: clicked() 0080 Keys.onReturnPressed: clicked() 0081 Keys.onSpacePressed: clicked() 0082 0083 Accessible.onPressAction: clicked() 0084 Accessible.role: Accessible.Button 0085 Accessible.name: label.text 0086 }