Warning, /plasma/latte-dock/declarativeimports/components/Slider.qml is written in an unsupported language. File is not indexed.
0001 /* 0002 SPDX-FileCopyrightText: 2019 Michail Vourlakos <mvourlakos@gmail.com> 0003 SPDX-License-Identifier: GPL-2.0-or-later 0004 */ 0005 0006 import QtQuick 2.7 0007 import QtQuick.Templates 2.0 as T 0008 import org.kde.plasma.core 2.0 as PlasmaCore 0009 import "private" as Private 0010 0011 T.Slider { 0012 id: control 0013 0014 implicitWidth: Math.max(background ? background.implicitWidth : 0, 0015 Math.max(handle ? handle.implicitWidth : 0, 0016 handle ? handle.implicitWidth : 0) + leftPadding + rightPadding) 0017 implicitHeight: Math.max(background ? background.implicitHeight : 0, 0018 Math.max(handle ? handle.implicitHeight : 0, 0019 handle ? handle.implicitHeight : 0) + topPadding + bottomPadding) 0020 0021 //padding: 3*units.smallSpacing //5//units.gridUnit 0022 topPadding: 3*units.smallSpacing 0023 bottomPadding: 3*units.smallSpacing 0024 leftPadding: units.smallSpacing 0025 rightPadding: units.smallSpacing 0026 0027 snapMode: T.Slider.SnapOnRelease 0028 0029 readonly property bool minimumInternalValueIsSet: (minimumInternalValue!==from && minimumInternalValue !== -10000) 0030 property int minimumInternalValue: -10000 0031 0032 PlasmaCore.Svg { 0033 id: grooveSvg 0034 imagePath: "widgets/slider" 0035 colorGroup: PlasmaCore.ColorScope.colorGroup 0036 } 0037 0038 PlasmaCore.FrameSvgItem { 0039 id: minimumValueGroove 0040 imagePath: "widgets/slider" 0041 prefix: "groove-highlight" 0042 x: limitedX - width/2 0043 y: parent.height/2 - height/2 0044 width: parent.height * 0.6 0045 height: 2 0046 rotation: 90 0047 visible: minimumInternalValueIsSet 0048 0049 readonly property int limitedX: limitedPer * parent.width 0050 readonly property real limitedPer: ((minimumInternalValue-from)/(to-from)) 0051 0052 opacity: { 0053 if (control.enabled && minimumInternalValueIsSet && value < minimumInternalValue) { 0054 return 0.3 0055 } 0056 0057 if (control.enabled) { 0058 return 1; 0059 } 0060 0061 return 0.4; 0062 } 0063 } 0064 0065 handle: Item { 0066 property bool horizontal: control.orientation === Qt.Horizontal 0067 x: leftFixedPadding + (horizontal ? control.visualPosition * (control.availableWidth - width / 2) : (control.availableWidth - width) / 2) 0068 y: topFixedPadding + (horizontal ? (control.availableHeight - height) / 2 : control.visualPosition * (control.availableHeight - height / 2)) 0069 0070 width: firstHandle.naturalSize.width 0071 height: firstHandle.naturalSize.height 0072 0073 property int leftFixedPadding: horizontal && control.visualPosition === 0 ? 0 : control.leftPadding 0074 property int topFixedPadding: !horizontal && control.visualPosition === 0 ? 0 : control.topPadding 0075 0076 Private.RoundShadow { 0077 anchors.fill: parent 0078 imagePath: "widgets/slider" 0079 focusElement: parent.horizontal ? "horizontal-slider-focus" : "vertical-slider-focus" 0080 hoverElement: parent.horizontal ? "horizontal-slider-hover" : "vertical-slider-hover" 0081 shadowElement: parent.horizontal ? "horizontal-slider-shadow" : "vertical-slider-shadow" 0082 state: control.activeFocus ? "focus" : (control.hovered ? "hover" : "shadow") 0083 } 0084 PlasmaCore.SvgItem { 0085 id: firstHandle 0086 anchors.fill: parent 0087 svg: grooveSvg 0088 elementId: parent.horizontal ? "horizontal-slider-handle" : "vertical-slider-handle" 0089 } 0090 } 0091 0092 background: PlasmaCore.FrameSvgItem { 0093 imagePath: "widgets/slider" 0094 prefix: "groove" 0095 readonly property bool horizontal: control.orientation === Qt.Horizontal 0096 implicitWidth: horizontal ? units.gridUnit * 8 : margins.left + margins.right 0097 implicitHeight: horizontal ? margins.top + margins.bottom : units.gridUnit * 8 0098 width: horizontal ? control.availableWidth : implicitWidth 0099 height: horizontal ? implicitHeight : control.availableHeight 0100 anchors.centerIn: parent 0101 scale: horizontal && control.mirrored ? -1 : 1 0102 0103 PlasmaCore.FrameSvgItem { 0104 id: grooveHighlight 0105 imagePath: "widgets/slider" 0106 prefix: "groove-highlight" 0107 x: parent.horizontal ? 0 : (parent.width - width) / 2 0108 y: parent.horizontal ? (parent.height - height) / 2 : control.visualPosition * parent.height 0109 width: parent.horizontal ? control.position * parent.width + invisibleSpacer : parent.width 0110 height: parent.horizontal ? parent.height : control.position * parent.height + invisibleSpacer 0111 opacity: { 0112 if (control.enabled && minimumInternalValueIsSet && value < minimumInternalValue) { 0113 return 0.3 0114 } 0115 0116 if (control.enabled) { 0117 return 1; 0118 } 0119 0120 return 0.4; 0121 } 0122 0123 property int invisibleSpacer: control.position === 0 ? 4 : 0 0124 } 0125 } 0126 }