mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2025-12-05 21:15:38 -05:00
157 lines
6.5 KiB
QML
157 lines
6.5 KiB
QML
import QtQuick
|
|
import qs.Common
|
|
import qs.Services
|
|
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
|
|
|
|
width: Math.min(550, parent.width - Theme.spacingL * 2)
|
|
anchors.horizontalCenter: parent.horizontalCenter
|
|
spacing: Theme.spacingXL
|
|
|
|
SettingsCard {
|
|
tab: "sounds"
|
|
tags: ["sound", "audio", "notification", "volume"]
|
|
title: I18n.tr("System Sounds")
|
|
iconName: SettingsData.soundsEnabled ? "volume_up" : "volume_off"
|
|
visible: AudioService.soundsAvailable
|
|
|
|
SettingsToggleRow {
|
|
tab: "sounds"
|
|
tags: ["sound", "enable", "system"]
|
|
settingKey: "soundsEnabled"
|
|
text: I18n.tr("Enable System Sounds")
|
|
description: I18n.tr("Play sounds for system events")
|
|
checked: SettingsData.soundsEnabled
|
|
onToggled: checked => SettingsData.set("soundsEnabled", checked)
|
|
}
|
|
|
|
Column {
|
|
width: parent.width
|
|
spacing: Theme.spacingM
|
|
visible: SettingsData.soundsEnabled
|
|
|
|
Rectangle {
|
|
width: parent.width
|
|
height: 1
|
|
color: Theme.outline
|
|
opacity: 0.2
|
|
}
|
|
|
|
SettingsToggleRow {
|
|
tab: "sounds"
|
|
tags: ["sound", "theme", "system"]
|
|
settingKey: "useSystemSoundTheme"
|
|
visible: AudioService.gsettingsAvailable
|
|
text: I18n.tr("Use System Theme")
|
|
description: I18n.tr("Use sound theme from system settings")
|
|
checked: SettingsData.useSystemSoundTheme
|
|
onToggled: checked => SettingsData.set("useSystemSoundTheme", checked)
|
|
}
|
|
|
|
SettingsDropdownRow {
|
|
tab: "sounds"
|
|
tags: ["sound", "theme", "select"]
|
|
settingKey: "soundTheme"
|
|
visible: SettingsData.useSystemSoundTheme && AudioService.availableSoundThemes.length > 0
|
|
enabled: SettingsData.useSystemSoundTheme && AudioService.availableSoundThemes.length > 0
|
|
text: I18n.tr("Sound Theme")
|
|
description: I18n.tr("Select system sound theme")
|
|
options: AudioService.availableSoundThemes
|
|
currentValue: {
|
|
const theme = AudioService.currentSoundTheme;
|
|
if (theme && AudioService.availableSoundThemes.includes(theme))
|
|
return theme;
|
|
return AudioService.availableSoundThemes.length > 0 ? AudioService.availableSoundThemes[0] : "";
|
|
}
|
|
onValueChanged: value => {
|
|
if (value && value !== AudioService.currentSoundTheme)
|
|
AudioService.setSoundTheme(value);
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
width: parent.width
|
|
height: 1
|
|
color: Theme.outline
|
|
opacity: 0.2
|
|
visible: AudioService.gsettingsAvailable
|
|
}
|
|
|
|
SettingsToggleRow {
|
|
tab: "sounds"
|
|
tags: ["sound", "notification", "new"]
|
|
settingKey: "soundNewNotification"
|
|
text: I18n.tr("New Notification")
|
|
description: I18n.tr("Play sound when new notification arrives")
|
|
checked: SettingsData.soundNewNotification
|
|
onToggled: checked => SettingsData.set("soundNewNotification", checked)
|
|
}
|
|
|
|
SettingsToggleRow {
|
|
tab: "sounds"
|
|
tags: ["sound", "volume", "changed"]
|
|
settingKey: "soundVolumeChanged"
|
|
text: I18n.tr("Volume Changed")
|
|
description: I18n.tr("Play sound when volume is adjusted")
|
|
checked: SettingsData.soundVolumeChanged
|
|
onToggled: checked => SettingsData.set("soundVolumeChanged", checked)
|
|
}
|
|
|
|
SettingsToggleRow {
|
|
tab: "sounds"
|
|
tags: ["sound", "power", "plugged"]
|
|
settingKey: "soundPluggedIn"
|
|
visible: BatteryService.batteryAvailable
|
|
text: I18n.tr("Plugged In")
|
|
description: I18n.tr("Play sound when power cable is connected")
|
|
checked: SettingsData.soundPluggedIn
|
|
onToggled: checked => SettingsData.set("soundPluggedIn", checked)
|
|
}
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
width: parent.width
|
|
height: notAvailableText.implicitHeight + Theme.spacingM * 2
|
|
radius: Theme.cornerRadius
|
|
color: Qt.rgba(Theme.warning.r, Theme.warning.g, Theme.warning.b, 0.12)
|
|
visible: !AudioService.soundsAvailable
|
|
|
|
Row {
|
|
anchors.fill: parent
|
|
anchors.margins: Theme.spacingM
|
|
spacing: Theme.spacingM
|
|
|
|
DankIcon {
|
|
name: "info"
|
|
size: Theme.iconSizeSmall
|
|
color: Theme.warning
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
}
|
|
|
|
StyledText {
|
|
id: notAvailableText
|
|
font.pixelSize: Theme.fontSizeSmall
|
|
text: I18n.tr("System sounds are not available. Install canberra-gtk-play for sound support.")
|
|
wrapMode: Text.WordWrap
|
|
width: parent.width - Theme.iconSizeSmall - Theme.spacingM
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|