qs: fix actions of cavabar

This commit is contained in:
2026-01-13 10:24:21 +01:00
parent afc7125ecf
commit fbc799414c
7 changed files with 38 additions and 16 deletions
@@ -4,7 +4,7 @@
"doNotDisturb": false
},
"primaryColor": "#89b4fa",
"showLyricsBar": false,
"showLyricsBar": true,
"sunsetDefaultEnabled": true,
"wifiEnabled": true
}
@@ -3,12 +3,15 @@ import QtQuick.Controls
import QtQuick.Layouts
import qs.Constants
import qs.Modules.Bar.Misc
import qs.Services
import qs.Utils
Item {
id: root
property int barWidth: 5
property int barSpacing: 3
property int mode: 0
implicitWidth: root.barWidth * CavaBarService.count + root.barSpacing * (CavaBarService.count - 1)
implicitHeight: parent.height - 10
@@ -22,7 +25,7 @@ Item {
}
Repeater {
model: CavaBarService.values
model: mode == 2 ? Array(CavaBarService.count).fill(0.3) : CavaBarService.values
Rectangle {
width: root.barWidth
@@ -49,12 +52,26 @@ Item {
cursorShape: Qt.PointingHandCursor
acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton
onClicked: (mouse) => {
if (mouse.button === Qt.LeftButton)
if (mouse.button === Qt.LeftButton) {
MusicManager.playPause();
else if (mouse.button === Qt.RightButton)
} else if (mouse.button === Qt.RightButton) {
SettingsService.showLyricsBar = !SettingsService.showLyricsBar;
else if (mouse.button === Qt.MiddleButton)
CavaBarService.forceEnable = !CavaBarService.forceEnable;
} else if (mouse.button === Qt.MiddleButton) {
mode = (mode + 1) % 3;
if (mode === 0) {
Logger.log("CavaBar", "Cava bar mode set to Auto");
CavaBarService.forceEnable = false;
CavaBarService.forceDisable = false;
} else if (mode === 1) {
Logger.log("CavaBar", "Cava bar mode set to Always On");
CavaBarService.forceEnable = true;
CavaBarService.forceDisable = false;
} else if (mode === 2) {
Logger.log("CavaBar", "Cava bar mode set to Always Off");
CavaBarService.forceEnable = false;
CavaBarService.forceDisable = true;
}
}
}
onWheel: function(wheel) {
if (wheel.angleDelta.y > 0)
@@ -7,7 +7,8 @@ Singleton {
id: root
property int count: 6
property int forceEnable: 6
property bool forceEnable: false
property bool forceDisable: false
property alias values: cavaProcess.values
Cava {
@@ -15,6 +16,7 @@ Singleton {
count: root.count
forceEnable: root.forceEnable
forceDisable: root.forceDisable
}
}
@@ -32,12 +32,13 @@ Scope {
})
property var values: Array(count).fill(0)
property bool forceEnable: false
property bool forceDisable: false
Process {
id: process
stdinEnabled: true
running: root.forceEnable || !MusicManager.isAllPaused()
running: !root.forceDisable && (MusicManager.isPlaying || root.forceEnable)
command: ["cava", "-p", "/dev/stdin"]
onExited: {
stdinEnabled = true;