Warning, /plasma/latte-dock/declarativeimports/abilities/items/basicitem/SeparatorItem.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2021 Michail Vourlakos <mvourlakos@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 import QtQuick 2.8
0007 import QtGraphicalEffects 1.0
0008 
0009 import org.kde.plasma.plasmoid 2.0
0010 import org.kde.plasma.core 2.0 as PlasmaCore
0011 
0012 import org.kde.latte.core 0.2 as LatteCore
0013 
0014 Loader {
0015     anchors.bottom: (abilityItem.location === PlasmaCore.Types.BottomEdge) ? parent.bottom : undefined
0016     anchors.top: (abilityItem.location === PlasmaCore.Types.TopEdge) ? parent.top : undefined
0017     anchors.left: (abilityItem.location === PlasmaCore.Types.LeftEdge) ? parent.left : undefined
0018     anchors.right: (abilityItem.location === PlasmaCore.Types.RightEdge) ? parent.right : undefined
0019 
0020     anchors.horizontalCenter: abilityItem.isHorizontal ? parent.horizontalCenter : undefined
0021     anchors.verticalCenter: abilityItem.isHorizontal ? undefined : parent.verticalCenter
0022 
0023     anchors.bottomMargin: (abilityItem.location === PlasmaCore.Types.BottomEdge) ? margin : 0
0024     anchors.topMargin: (abilityItem.location === PlasmaCore.Types.TopEdge) ? margin : 0
0025     anchors.leftMargin: (abilityItem.location === PlasmaCore.Types.LeftEdge) ? margin : 0
0026     anchors.rightMargin: (abilityItem.location === PlasmaCore.Types.RightEdge) ? margin : 0
0027 
0028     width: abilityItem.isVertical ?
0029                abilityItem.abilities.metrics.iconSize :
0030                (isSeparatorInRealLength ? LatteCore.Environment.separatorLength+abilityItem.abilities.metrics.totals.lengthEdges: 2)
0031     height: abilityItem.isHorizontal ?
0032                 abilityItem.abilities.metrics.iconSize :
0033                 (isSeparatorInRealLength  ? LatteCore.Environment.separatorLength+abilityItem.abilities.metrics.totals.lengthEdges: 2)
0034 
0035     opacity: 0.4
0036 
0037     readonly property int margin: abilityItem.abilities.metrics.margin.screenEdge + abilityItem.abilities.metrics.margin.tailThickness
0038 
0039     active: abilityItem.isSeparatorVisible
0040 
0041     sourceComponent: Item {
0042         ///Shadow for separator
0043         Loader{
0044             anchors.fill: separatorItem
0045             active: abilityItem.isSeparatorVisible
0046                     && abilityItem.abilities.myView.itemShadow.isEnabled
0047                     && abilityItem.abilities.environment.isGraphicsSystemAccelerated
0048             opacity: 1.0
0049 
0050             Behavior on opacity {
0051                 NumberAnimation { duration: abilityItem.abilities.animations.speedFactor.current * abilityItem.abilities.animations.duration.large }
0052             }
0053 
0054             sourceComponent: DropShadow{
0055                 anchors.fill: parent
0056                 color: abilityItem.abilities.myView.itemShadow.shadowColor
0057                 fast: true
0058                 samples: 2 * radius
0059                 source: separatorItem
0060                 radius: abilityItem.abilities.myView.itemShadow.size
0061                 verticalOffset: 2
0062             }
0063         }
0064 
0065         Item{
0066             id:separatorItem
0067             anchors.fill: parent
0068 
0069             Behavior on opacity {
0070                 NumberAnimation { duration: abilityItem.abilities.animations.speedFactor.current * abilityItem.abilities.animations.duration.large }
0071             }
0072 
0073             Rectangle {
0074                 anchors.centerIn: parent
0075                 width: abilityItem.isVertical ? abilityItem.abilities.metrics.iconSize - 4  : 1
0076                 height: abilityItem.isHorizontal ? abilityItem.abilities.metrics.iconSize - 4 : 1
0077                 color: abilityItem.abilities.myView.palette.textColor
0078             }
0079         }
0080     }
0081 }