1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-04-04 04:42:05 -04:00

feat: configurable volume amount on scroll for Media widget (#1641)

* Add audioWheelScrollAmount setting

* Add UI to configure volume change amount for Media Player widget

* Let Media Player widget use the configured volume change on wheel event
This commit is contained in:
Erwin Boskma
2026-02-10 15:12:03 +01:00
committed by GitHub
parent d88b04fc30
commit 9a7f1f5f2f
4 changed files with 45 additions and 2 deletions

View File

@@ -71,9 +71,9 @@ BasePill {
let newVolume = currentVolume;
if (isMouseWheelY) {
if (deltaY > 0) {
newVolume = Math.min(100, currentVolume + 5);
newVolume = Math.min(100, currentVolume + SettingsData.audioWheelScrollAmount);
} else if (deltaY < 0) {
newVolume = Math.max(0, currentVolume - 5);
newVolume = Math.max(0, currentVolume - SettingsData.audioWheelScrollAmount);
}
} else {
scrollAccumulatorY += deltaY;

View File

@@ -65,6 +65,47 @@ Item {
SettingsData.set("audioScrollMode", scrollOptsInternal[idx]);
}
}
Item {
width: parent.width
height: audioWheelScrollAmountColumn.height
visible: SettingsData.audioScrollMode == "volume"
opacity: visible ? 1 : 0
Column {
id: audioWheelScrollAmountColumn
x: Theme.spacingL
width: 120
spacing: Theme.spacingS
StyledText {
text: I18n.tr("Adjust volume per scroll indent")
font.pixelSize: Theme.fontSizeSmall
color: Theme.surfaceVariantText
font.weight: Font.Medium
horizontalAlignment: Text.AlignLeft
}
DankTextField {
width: 100
height: 28
placeholderText: "5"
text: SettingsData.audioWheelScrollAmount
maximumLength: 2
font.pixelSize: Theme.fontSizeSmall
topPadding: Theme.spacingXS
bottomPadding: Theme.spacingXS
onEditingFinished: SettingsData.set("audioWheelScrollAmount", parseInt(text, 10))
}
}
Behavior on opacity {
NumberAnimation {
duration: Theme.mediumDuration
easing.type: Theme.emphasizedEasing
}
}
}
}
}
}