Warning, /plasma/latte-dock/plasmoid/package/contents/ui/taskslayout/ScrollEdgeShadows.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2019 Michail Vourlakos <mvourlakos@gmail.com>
0003 
0004     SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 import QtQuick 2.7
0008 import QtQuick.Controls 1.4
0009 import QtGraphicalEffects 1.0
0010 
0011 import org.kde.plasma.plasmoid 2.0
0012 import org.kde.plasma.core 2.0 as PlasmaCore
0013 
0014 Item {
0015     id: shadowsContainer
0016     opacity: 0.4
0017 
0018     readonly property int gradientLength: appletAbilities.metrics.iconSize / 3
0019     readonly property int thickness: appletAbilities.metrics.backgroundThickness
0020     readonly property color appliedColor: appletAbilities.myView.itemShadow.shadowSolidColor
0021 
0022     property Item flickable
0023 
0024     LinearGradient {
0025         id: firstGradient
0026         width: !root.vertical ? gradientLength : shadowsContainer.thickness
0027         height: !root.vertical ? shadowsContainer.thickness : gradientLength
0028 
0029         start: Qt.point(0, 0)
0030         end: !root.vertical ? Qt.point(width, 0) : Qt.point(0,height)
0031 
0032         gradient: Gradient {
0033             GradientStop { position: 0.0; color: (scrollableList.currentPos > scrollableList.scrollFirstPos ? appliedColor : "transparent") }
0034             GradientStop { position: 1.0; color: "transparent" }
0035         }
0036     }
0037 
0038     LinearGradient {
0039         id: lastGradient
0040         width: firstGradient.width
0041         height: firstGradient.height
0042         start: firstGradient.start
0043         end: firstGradient.end
0044 
0045         gradient: Gradient {
0046             GradientStop { position: 0.0; color: "transparent" }
0047             GradientStop { position: 1.0; color: (scrollableList.currentPos < scrollableList.scrollLastPos ? appliedColor : "transparent") }
0048         }
0049     }
0050 
0051     states: [
0052         State {
0053             name: "bottom"
0054             when: root.location === PlasmaCore.Types.BottomEdge
0055 
0056             AnchorChanges {
0057                 target: firstGradient
0058                 anchors{ top:undefined; bottom:parent.bottom; left:parent.left; right:undefined;
0059                     horizontalCenter:undefined; verticalCenter:undefined}
0060             }
0061             AnchorChanges {
0062                 target: lastGradient
0063                 anchors{ top:undefined; bottom:parent.bottom; left:undefined; right:parent.right;
0064                     horizontalCenter:undefined; verticalCenter:undefined}
0065             }
0066             AnchorChanges {
0067                 target: shadowsContainer
0068                 anchors{ top:undefined; bottom:flickable.bottom; left:undefined; right:undefined;
0069                     horizontalCenter:flickable.horizontalCenter; verticalCenter:undefined}
0070             }
0071             PropertyChanges {
0072                 target: shadowsContainer
0073                 anchors.leftMargin: 0;    anchors.rightMargin:0;     anchors.topMargin: 0;    anchors.bottomMargin: appletAbilities.metrics.margin.screenEdge;
0074                 anchors.horizontalCenterOffset: 0; anchors.verticalCenterOffset: 0;
0075             }
0076         },
0077         State {
0078             name: "top"
0079             when: root.location === PlasmaCore.Types.TopEdge
0080 
0081             AnchorChanges {
0082                 target: firstGradient
0083                 anchors{ top:parent.top; bottom:undefined; left:parent.left; right:undefined;
0084                     horizontalCenter:undefined; verticalCenter:undefined}
0085             }
0086             AnchorChanges {
0087                 target: lastGradient
0088                 anchors{ top:parent.top; bottom:undefined; left:undefined; right:parent.right;
0089                     horizontalCenter:undefined; verticalCenter:undefined}
0090             }
0091             AnchorChanges {
0092                 target: shadowsContainer
0093                 anchors{ top:flickable.top; bottom:undefined; left:undefined; right:undefined;
0094                     horizontalCenter:flickable.horizontalCenter; verticalCenter:undefined}
0095             }
0096             PropertyChanges {
0097                 target: shadowsContainer
0098                 anchors.leftMargin: 0;    anchors.rightMargin:0;     anchors.topMargin: appletAbilities.metrics.margin.screenEdge;    anchors.bottomMargin:0;
0099                 anchors.horizontalCenterOffset: 0; anchors.verticalCenterOffset: 0;
0100             }
0101         },
0102         State {
0103             name: "left"
0104             when: root.location === PlasmaCore.Types.LeftEdge
0105 
0106             AnchorChanges {
0107                 target: firstGradient
0108                 anchors{ top:parent.top; bottom:undefined; left:parent.left; right:undefined;
0109                     horizontalCenter:undefined; verticalCenter:undefined}
0110             }
0111             AnchorChanges {
0112                 target: lastGradient
0113                 anchors{ top:undefined; bottom:parent.bottom; left:parent.left; right:undefined;
0114                     horizontalCenter:undefined; verticalCenter:undefined}
0115             }
0116             AnchorChanges {
0117                 target: shadowsContainer
0118                 anchors{ top:undefined; bottom:undefined; left:flickable.left; right:undefined;
0119                     horizontalCenter:undefined; verticalCenter:flickable.verticalCenter}
0120             }
0121             PropertyChanges {
0122                 target: shadowsContainer
0123                 anchors.leftMargin: appletAbilities.metrics.margin.screenEdge;    anchors.rightMargin:0;     anchors.topMargin: 0;    anchors.bottomMargin:0;
0124                 anchors.horizontalCenterOffset: 0; anchors.verticalCenterOffset: 0;
0125             }
0126         },
0127         State {
0128             name: "right"
0129             when: root.location === PlasmaCore.Types.RightEdge
0130 
0131             AnchorChanges {
0132                 target: firstGradient
0133                 anchors{ top:parent.top; bottom:undefined; left:undefined; right:parent.right;
0134                     horizontalCenter:undefined; verticalCenter:undefined}
0135             }
0136             AnchorChanges {
0137                 target: lastGradient
0138                 anchors{ top:undefined; bottom:parent.bottom; left:undefined; right:parent.right;
0139                     horizontalCenter:undefined; verticalCenter:undefined}
0140             }
0141             AnchorChanges {
0142                 target: shadowsContainer
0143                 anchors{ top:undefined; bottom:undefined; left:undefined; right:flickable.right;
0144                     horizontalCenter:undefined; verticalCenter:flickable.verticalCenter}
0145             }
0146             PropertyChanges {
0147                 target: shadowsContainer
0148                 anchors.leftMargin: 0;    anchors.rightMargin: appletAbilities.metrics.margin.screenEdge;     anchors.topMargin: 0;    anchors.bottomMargin:0;
0149                 anchors.horizontalCenterOffset: 0; anchors.verticalCenterOffset: 0;
0150             }
0151         }
0152     ]
0153 }