From 838707a2f4942e4e6668ec53d35c4cb920a4bcd3 Mon Sep 17 00:00:00 2001 From: flathead Date: Thu, 26 Mar 2026 02:25:42 +0300 Subject: [PATCH 1/2] feat: add volume scroll to audio-related bar and player components Add mouse wheel volume control to the controls button, compact player (notch) and full player (dashboard). Scrolling up increases volume, scrolling down decreases it using Audio.incrementVolume/decrementVolume. Player overlays use acceptedButtons: Qt.NoButton so clicks pass through to existing controls underneath. Modified files: - modules/bar/ControlsButton.qml - modules/widgets/defaultview/CompactPlayer.qml - modules/widgets/dashboard/widgets/FullPlayer.qml --- modules/bar/ControlsButton.qml | 6 ++++++ modules/widgets/dashboard/widgets/FullPlayer.qml | 13 +++++++++++++ modules/widgets/defaultview/CompactPlayer.qml | 16 ++++++++++++++++ 3 files changed, 35 insertions(+) diff --git a/modules/bar/ControlsButton.qml b/modules/bar/ControlsButton.qml index 687f077b..634c4708 100644 --- a/modules/bar/ControlsButton.qml +++ b/modules/bar/ControlsButton.qml @@ -84,6 +84,12 @@ Item { controlsPopup.toggle(); } } + onWheel: wheel => { + if (wheel.angleDelta.y > 0) + Audio.incrementVolume(); + else if (wheel.angleDelta.y < 0) + Audio.decrementVolume(); + } } } diff --git a/modules/widgets/dashboard/widgets/FullPlayer.qml b/modules/widgets/dashboard/widgets/FullPlayer.qml index 5c701ba5..95ed2ed2 100644 --- a/modules/widgets/dashboard/widgets/FullPlayer.qml +++ b/modules/widgets/dashboard/widgets/FullPlayer.qml @@ -667,4 +667,17 @@ StyledRect { return Icons.telegram; return Icons.player; } + + // Volume scroll overlay (passes clicks through) + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.NoButton + z: 0 + onWheel: wheel => { + if (wheel.angleDelta.y > 0) + Audio.incrementVolume(); + else if (wheel.angleDelta.y < 0) + Audio.decrementVolume(); + } + } } diff --git a/modules/widgets/defaultview/CompactPlayer.qml b/modules/widgets/defaultview/CompactPlayer.qml index 265b87e8..c7d85ae2 100644 --- a/modules/widgets/defaultview/CompactPlayer.qml +++ b/modules/widgets/defaultview/CompactPlayer.qml @@ -667,5 +667,21 @@ Item { } } } + + // Volume scroll overlay (passes clicks through) + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.NoButton + onWheel: wheel => { + if (!compactPlayer.player) { + wheel.accepted = false; + return; + } + if (wheel.angleDelta.y > 0) + Audio.incrementVolume(); + else if (wheel.angleDelta.y < 0) + Audio.decrementVolume(); + } + } } } From 72cb6ae072cdb3a8098e6e04df6d60f1bc882707 Mon Sep 17 00:00:00 2001 From: flathead Date: Thu, 26 Mar 2026 02:34:00 +0300 Subject: [PATCH 2/2] fix: correct MouseArea placement for volume scroll on players Move CompactPlayer scroll MouseArea to root Item level before StyledRect instead of inside BarPopup, matching the correct z-order for wheel event capture. Clean up FullPlayer MouseArea. --- .../widgets/dashboard/widgets/FullPlayer.qml | 2 -- modules/widgets/defaultview/CompactPlayer.qml | 30 +++++++++---------- 2 files changed, 15 insertions(+), 17 deletions(-) diff --git a/modules/widgets/dashboard/widgets/FullPlayer.qml b/modules/widgets/dashboard/widgets/FullPlayer.qml index 95ed2ed2..12b9dae9 100644 --- a/modules/widgets/dashboard/widgets/FullPlayer.qml +++ b/modules/widgets/dashboard/widgets/FullPlayer.qml @@ -668,11 +668,9 @@ StyledRect { return Icons.player; } - // Volume scroll overlay (passes clicks through) MouseArea { anchors.fill: parent acceptedButtons: Qt.NoButton - z: 0 onWheel: wheel => { if (wheel.angleDelta.y > 0) Audio.incrementVolume(); diff --git a/modules/widgets/defaultview/CompactPlayer.qml b/modules/widgets/defaultview/CompactPlayer.qml index c7d85ae2..06528472 100644 --- a/modules/widgets/defaultview/CompactPlayer.qml +++ b/modules/widgets/defaultview/CompactPlayer.qml @@ -124,6 +124,21 @@ Item { } } + MouseArea { + anchors.fill: parent + acceptedButtons: Qt.NoButton + onWheel: wheel => { + if (!compactPlayer.player) { + wheel.accepted = false; + return; + } + if (wheel.angleDelta.y > 0) + Audio.incrementVolume(); + else if (wheel.angleDelta.y < 0) + Audio.decrementVolume(); + } + } + StyledRect { variant: "common" anchors.fill: parent @@ -668,20 +683,5 @@ Item { } } - // Volume scroll overlay (passes clicks through) - MouseArea { - anchors.fill: parent - acceptedButtons: Qt.NoButton - onWheel: wheel => { - if (!compactPlayer.player) { - wheel.accepted = false; - return; - } - if (wheel.angleDelta.y > 0) - Audio.incrementVolume(); - else if (wheel.angleDelta.y < 0) - Audio.decrementVolume(); - } - } } }