Skip to content
Snippets Groups Projects
Commit fb2f15e6 authored by Fatih Uzunoğlu's avatar Fatih Uzunoğlu Committed by Jean-Baptiste Kempf
Browse files

qml: handle high precision adjustment and use `WheelToVLCConverter` in `PlaybackSpeedButton.qml`

parent e0059c3c
No related branches found
No related tags found
Loading
......@@ -78,39 +78,51 @@ PopupIconToolButton {
z: -1
WheelToVLCConverter {
id: wheelToVLC
function handle(steps: int) {
let func
if (steps > 0)
func = root.popup.contentItem.slider.increase
else
func = root.popup.contentItem.slider.decrease
for (let i = 0; i < Math.abs(steps); ++i)
func()
}
Component.onCompleted: {
wheelUpDown.connect(wheelToVLC.handle)
wheelLeftRight.connect(wheelToVLC.handle)
}
}
WheelHandler {
onWheel: (event) => {
onWheel: (wheel) => {
if (!root.popup.contentItem || !root.popup.contentItem.slider) {
event.accepted = false
return
}
let delta = 0
if (event.angleDelta.x)
delta = event.angleDelta.x
else if (event.angleDelta.y)
delta = event.angleDelta.y
else {
event.accepted = false
return
// NOTE: Uncomment below to support (not only handle) high precision adjustment:
// if ((Math.abs(wheel.pixelDelta.x) % 120 > 0) || (Math.abs(wheel.pixelDelta.y) % 120 > 0)) {
// let delta = 0
// if (Math.abs(wheel.pixelDelta.x) > Math.abs(wheel.pixelDelta.y))
// delta = wheel.pixelDelta.x
// else
// delta = wheel.pixelDelta.y
// if (wheel.inverted)
// delta = -delta
// root.popup.contentItem.slider.value += 0.01 * delta
// } else
{
wheelToVLC.qmlWheelEvent(wheel)
}
if (event.inverted)
delta = -delta
event.accepted = true
delta = delta / 8 / 15
let func
if (delta > 0)
func = root.popup.contentItem.slider.increase
else
func = root.popup.contentItem.slider.decrease
for (let i = 0; i < Math.ceil(Math.abs(delta)); ++i)
func()
wheel.accepted = true
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment