mirror of
https://github.com/kossLAN/dots.git
synced 2025-11-05 06:59:50 -05:00
55 lines
1.6 KiB
QML
55 lines
1.6 KiB
QML
pragma ComponentBehavior: Bound
|
|
|
|
import QtQuick
|
|
import QtQuick.Controls
|
|
import Qt5Compat.GraphicalEffects
|
|
import ".."
|
|
|
|
Slider {
|
|
id: slider
|
|
implicitHeight: 8
|
|
property var accentColor: ShellSettings.colors["primary"]
|
|
|
|
background: Rectangle {
|
|
id: sliderContainer
|
|
width: slider.availableWidth
|
|
height: slider.implicitHeight
|
|
color: ShellSettings.colors["inverse_surface"]
|
|
radius: 4
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
|
|
layer.enabled: true
|
|
layer.effect: OpacityMask {
|
|
source: Rectangle {
|
|
width: sliderContainer.width
|
|
height: sliderContainer.height
|
|
radius: sliderContainer.radius
|
|
color: "white"
|
|
}
|
|
|
|
maskSource: Rectangle {
|
|
width: sliderContainer.width
|
|
height: sliderContainer.height
|
|
radius: sliderContainer.radius
|
|
color: "black"
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
id: fill
|
|
width: slider.handle.width / 2 + slider.visualPosition * (sliderContainer.width - slider.handle.width)
|
|
height: sliderContainer.height
|
|
color: Qt.color(slider.accentColor ?? "purple").darker(1.2)
|
|
}
|
|
}
|
|
|
|
handle: Rectangle {
|
|
id: handleRect
|
|
x: slider.visualPosition * (slider.availableWidth - width)
|
|
y: slider.topPadding + slider.availableHeight / 2 - height / 2
|
|
width: 16
|
|
height: 16
|
|
radius: width / 2
|
|
color: slider.pressed ? Qt.color(slider.accentColor ?? "purple").darker(1.5) : slider.accentColor ?? "purple"
|
|
}
|
|
}
|