Warning, /multimedia/rattlesnake/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.rattlesnake 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         Controls.ToolTip.delay: Kirigami.Units.toolTipDelay
0033         Controls.ToolTip.visible: hovered
0034         Controls.ToolTip.text: root.rightAction.text
0035         background: Kirigami.ShadowedRectangle{
0036             Kirigami.Theme.inherit: false
0037             Kirigami.Theme.colorSet: Kirigami.Theme.Window
0038             border.width: 1
0039             border.color: if (parent.down){
0040                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.4)
0041                 }else if(parent.hovered){
0042                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.6)
0043                 }else{
0044                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.2)
0045                 }
0046             color: if (parent.down){
0047                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.6)
0048                 }else if(parent.hovered){
0049                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.8)
0050                 }else{
0051                     Kirigami.Theme.backgroundColor
0052                 }
0053             Behavior on color {
0054                     enabled: true
0055                     ColorAnimation {
0056                         duration: Kirigami.Units.longDuration
0057                         easing.type: Easing.OutCubic
0058                     }
0059                 }
0060             Behavior on border.color {
0061                 enabled: true
0062                 ColorAnimation {
0063                     duration: Kirigami.Units.longDuration
0064                     easing.type: Easing.OutCubic
0065                 }
0066             }
0067             corners.topRightRadius: 10
0068             corners.bottomRightRadius: 10
0069 
0070         }
0071         contentItem: Item{
0072             Kirigami.Icon{
0073                 isMask: true
0074                 implicitHeight: Kirigami.Units.gridUnit *1.2
0075                 source: root.rightAction.icon.name
0076                 anchors.centerIn: parent
0077             }
0078         }
0079         text: root.rightAction.text
0080         onClicked: root.rightAction.triggered()
0081         anchors.right: root.right
0082         height: 55
0083         width: 55
0084         display: Controls.AbstractButton.IconOnly
0085     }
0086     Controls.Button {
0087         id: leftButton
0088         Controls.ToolTip.delay: Kirigami.Units.toolTipDelay
0089         Controls.ToolTip.visible: hovered
0090         Controls.ToolTip.text: root.leftAction.text
0091         background: Kirigami.ShadowedRectangle{
0092             Kirigami.Theme.inherit: false
0093             Kirigami.Theme.colorSet: Kirigami.Theme.Window
0094             border.width: 1
0095             border.color: if (parent.down){
0096                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.4)
0097                 }else if(parent.hovered){
0098                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.6)
0099                 }else{
0100                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.backgroundColor, Kirigami.Theme.textColor, 0.2)
0101                 }
0102             color: if (parent.down){
0103                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.6)
0104                 }else if(parent.hovered){
0105                     Kirigami.ColorUtils.tintWithAlpha(Kirigami.Theme.hoverColor, Kirigami.Theme.backgroundColor, 0.8)
0106                 }else{
0107                     Kirigami.Theme.backgroundColor
0108                 }
0109             Behavior on color {
0110                     enabled: true
0111                     ColorAnimation {
0112                         duration: Kirigami.Units.longDuration
0113                         easing.type: Easing.OutCubic
0114                     }
0115                 }
0116             Behavior on border.color {
0117                 enabled: true
0118                 ColorAnimation {
0119                     duration: Kirigami.Units.longDuration
0120                     easing.type: Easing.OutCubic
0121                 }
0122             }
0123             corners.topLeftRadius: 10
0124             corners.bottomLeftRadius: 10
0125         }
0126         contentItem: Item{
0127             Kirigami.Icon{
0128                 isMask: true
0129                 implicitHeight: Kirigami.Units.gridUnit * 1.2
0130                 source: root.leftAction.icon.name
0131                 anchors.centerIn: parent
0132             }
0133         }
0134         text: root.leftAction.text
0135         onClicked: root.leftAction.triggered()
0136         anchors.left: root.left
0137         height: 55
0138         width: 55
0139         display: Controls.AbstractButton.IconOnl
0140     }
0141 }