Warning, /utilities/powerplant/src/contents/ui/components/DoubleActionButton.qml is written in an unsupported language. File is not indexed.
0001 // SPDX-FileCopyrightText: 2023 Mathis BrĂ¼chert <mbb@kaidan.im> 0002 // 0003 // SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 0005 import QtQuick 2.1 0006 import QtQuick.Controls 2.12 as Controls 0007 import QtQuick.Layouts 1.3 0008 import org.kde.kirigami 2.19 as Kirigami 0009 import org.kde.powerplant 1.0 0010 0011 import ".." 0012 0013 0014 Kirigami.ShadowedRectangle{ 0015 id: root 0016 property Kirigami.Action leftAction 0017 property Kirigami.Action rightAction 0018 0019 0020 property int margin: 10 0021 radius: 10 0022 color: "transparent" 0023 height: 55 0024 width: 2* height - 1 0025 shadow.size: 10 0026 shadow.xOffset: 2 0027 shadow.yOffset: 2 0028 shadow.color: Qt.rgba(0, 0, 0, 0.2) 0029 Controls.Button { 0030 id: rightButton 0031 property int margin: 10 0032 background: Kirigami.ShadowedRectangle{ 0033 Kirigami.Theme.inherit: false 0034 Kirigami.Theme.colorSet: Kirigami.Theme.Window 0035 border.width: 1 0036 border.color: if (parent.down){ 0037 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.4) 0038 }else if(parent.hovered){ 0039 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.6) 0040 }else{ 0041 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.2) 0042 } 0043 color: if (parent.down){ 0044 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.6) 0045 }else if(parent.hovered){ 0046 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.8) 0047 }else{ 0048 Kirigami.Theme.backgroundColor 0049 } 0050 Behavior on color { 0051 enabled: true 0052 ColorAnimation { 0053 duration: Kirigami.Units.longDuration 0054 easing.type: Easing.OutCubic 0055 } 0056 } 0057 Behavior on border.color { 0058 enabled: true 0059 ColorAnimation { 0060 duration: Kirigami.Units.longDuration 0061 easing.type: Easing.OutCubic 0062 } 0063 } 0064 corners.topRightRadius: 10 0065 corners.bottomRightRadius: 10 0066 0067 } 0068 contentItem: Item{ 0069 Kirigami.Icon{ 0070 implicitHeight: Kirigami.Units.gridUnit *1.2 0071 source: root.rightAction.icon.name 0072 anchors.centerIn: parent 0073 } 0074 } 0075 text: root.rightAction.text 0076 onClicked: root.rightAction.triggered() 0077 anchors.right: root.right 0078 height: 55 0079 width: 55 0080 display: Controls.AbstractButton.IconOnly 0081 } 0082 Controls.Button { 0083 id: leftButton 0084 background: Kirigami.ShadowedRectangle{ 0085 Kirigami.Theme.inherit: false 0086 Kirigami.Theme.colorSet: Kirigami.Theme.Window 0087 border.width: 1 0088 border.color: if (parent.down){ 0089 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.4) 0090 }else if(parent.hovered){ 0091 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.6) 0092 }else{ 0093 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.2) 0094 } 0095 color: if (parent.down){ 0096 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.6) 0097 }else if(parent.hovered){ 0098 Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.8) 0099 }else{ 0100 Kirigami.Theme.backgroundColor 0101 } 0102 Behavior on color { 0103 enabled: true 0104 ColorAnimation { 0105 duration: Kirigami.Units.longDuration 0106 easing.type: Easing.OutCubic 0107 } 0108 } 0109 Behavior on border.color { 0110 enabled: true 0111 ColorAnimation { 0112 duration: Kirigami.Units.longDuration 0113 easing.type: Easing.OutCubic 0114 } 0115 } 0116 corners.topLeftRadius: 10 0117 corners.bottomLeftRadius: 10 0118 } 0119 contentItem: Item{ 0120 Kirigami.Icon{ 0121 implicitHeight: Kirigami.Units.gridUnit * 1.2 0122 source: root.leftAction.icon.name 0123 anchors.centerIn: parent 0124 } 0125 } 0126 text: root.leftAction.text 0127 onClicked: root.leftAction.triggered() 0128 anchors.left: root.left 0129 height: 55 0130 width: 55 0131 display: Controls.AbstractButton.IconOnl 0132 } 0133 }