Files

68 lines
2.1 KiB
QML

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import qs.Commons
import qs.Widgets
import qs.Services
ColumnLayout {
id: root
spacing: Style.marginM
// Properties to receive data from parent
property var widgetData: null
property var widgetMetadata: null
// Local state
property bool valueHideWhenIdle: widgetData.hideWhenIdle !== undefined ? widgetData.hideWhenIdle : widgetMetadata.hideWhenIdle
property string valueColorName: widgetData.colorName !== undefined ? widgetData.colorName : widgetMetadata.colorName
function saveSettings() {
var settings = Object.assign({}, widgetData || {})
settings.width = parseInt(widthInput.text) || widgetMetadata.width
settings.hideWhenIdle = valueHideWhenIdle
settings.colorName = valueColorName
return settings
}
NTextInput {
id: widthInput
Layout.fillWidth: true
label: I18n.tr("bar.widget-settings.audio-visualizer.width.label")
description: I18n.tr("bar.widget-settings.audio-visualizer.width.description")
text: widgetData.width || widgetMetadata.width
placeholderText: I18n.tr("placeholders.enter-width-pixels")
}
NComboBox {
Layout.fillWidth: true
label: I18n.tr("bar.widget-settings.audio-visualizer.color-name.label")
description: I18n.tr("bar.widget-settings.audio-visualizer.color-name.description")
model: [{
"key": "primary",
"name": I18n.tr("options.colors.primary")
}, {
"key": "secondary",
"name": I18n.tr("options.colors.secondary")
}, {
"key": "tertiary",
"name": I18n.tr("options.colors.tertiary")
}, {
"key": "onSurface",
"name": I18n.tr("options.colors.onSurface")
}, {
"key": "error",
"name": I18n.tr("options.colors.error")
}]
currentKey: root.valueColorName
onSelected: key => root.valueColorName = key
}
NToggle {
label: I18n.tr("bar.widget-settings.audio-visualizer.hide-when-idle.label")
description: I18n.tr("bar.widget-settings.audio-visualizer.hide-when-idle.description")
checked: valueHideWhenIdle
onToggled: checked => valueHideWhenIdle = checked
}
}