summaryrefslogtreecommitdiff
path: root/raveos-hyprland-theme/theme-data/dms/Modules/Settings/MediaPlayerTab.qml
diff options
context:
space:
mode:
authorNippy <nippy@rp1.hu>2026-05-08 19:50:49 +0200
committerNippy <nippy@rp1.hu>2026-05-08 19:50:49 +0200
commit3462bcc46ecf74f576ea4397f16492c16bd75b10 (patch)
treec5ab7aef4498647e057bda8d49c11e5f9dda74c9 /raveos-hyprland-theme/theme-data/dms/Modules/Settings/MediaPlayerTab.qml
parent56616f693b4f263cbf0d47da43b67424efa6022d (diff)
downloadRaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.tar.gz
RaveOS-PKGBUILD-3462bcc46ecf74f576ea4397f16492c16bd75b10.zip
raveos update
Diffstat (limited to 'raveos-hyprland-theme/theme-data/dms/Modules/Settings/MediaPlayerTab.qml')
-rw-r--r--raveos-hyprland-theme/theme-data/dms/Modules/Settings/MediaPlayerTab.qml119
1 files changed, 119 insertions, 0 deletions
diff --git a/raveos-hyprland-theme/theme-data/dms/Modules/Settings/MediaPlayerTab.qml b/raveos-hyprland-theme/theme-data/dms/Modules/Settings/MediaPlayerTab.qml
new file mode 100644
index 0000000..a844a86
--- /dev/null
+++ b/raveos-hyprland-theme/theme-data/dms/Modules/Settings/MediaPlayerTab.qml
@@ -0,0 +1,119 @@
+import QtQuick
+import qs.Common
+import qs.Widgets
+import qs.Modules.Settings.Widgets
+
+Item {
+ id: root
+
+ DankFlickable {
+ anchors.fill: parent
+ clip: true
+ contentHeight: mainColumn.height + Theme.spacingXL
+ contentWidth: width
+
+ Column {
+ id: mainColumn
+ topPadding: 4
+ width: Math.min(550, parent.width - Theme.spacingL * 2)
+ anchors.horizontalCenter: parent.horizontalCenter
+ spacing: Theme.spacingXL
+
+ SettingsCard {
+ width: parent.width
+ iconName: "music_note"
+ title: I18n.tr("Media Player Settings")
+ settingKey: "mediaPlayer"
+
+ SettingsToggleRow {
+ text: I18n.tr("Wave Progress Bars")
+ description: I18n.tr("Use animated wave progress bars for media playback")
+ checked: SettingsData.waveProgressEnabled
+ onToggled: checked => SettingsData.set("waveProgressEnabled", checked)
+ }
+
+ SettingsToggleRow {
+ text: I18n.tr("Scroll song title")
+ description: I18n.tr("Scroll title if it doesn't fit in widget")
+ checked: SettingsData.scrollTitleEnabled
+ onToggled: checked => SettingsData.set("scrollTitleEnabled", checked)
+ }
+
+ SettingsToggleRow {
+ text: I18n.tr("Audio Visualizer")
+ description: I18n.tr("Show cava audio visualizer in media widget")
+ checked: SettingsData.audioVisualizerEnabled
+ onToggled: checked => SettingsData.set("audioVisualizerEnabled", checked)
+ }
+
+ SettingsToggleRow {
+ text: I18n.tr("Adaptive Media Width")
+ description: I18n.tr("Shrink the media widget to fit shorter song titles while still respecting the configured maximum size")
+ checked: SettingsData.mediaAdaptiveWidthEnabled
+ onToggled: checked => SettingsData.set("mediaAdaptiveWidthEnabled", checked)
+ }
+
+ SettingsDropdownRow {
+ property var scrollOptsInternal: ["volume", "song", "nothing"]
+ property var scrollOptsDisplay: [I18n.tr("Change Volume", "media scroll wheel option"), I18n.tr("Change Song", "media scroll wheel option"), I18n.tr("Nothing", "media scroll wheel option")]
+
+ text: I18n.tr("Scroll Wheel")
+ description: I18n.tr("Scroll wheel behavior on media widget")
+ settingKey: "audioScrollMode"
+ tags: ["media", "music", "scroll"]
+ options: scrollOptsDisplay
+ currentValue: {
+ const idx = scrollOptsInternal.indexOf(SettingsData.audioScrollMode);
+ return idx >= 0 ? scrollOptsDisplay[idx] : scrollOptsDisplay[0];
+ }
+ onValueChanged: value => {
+ const idx = scrollOptsDisplay.indexOf(value);
+ if (idx >= 0)
+ 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
+ }
+ }
+ }
+ }
+ }
+ }
+}