Files
Lumen-wallpaper/package/contents/ui/config.qml
T

112 lines
3.1 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import QtQuick
import QtQuick.Controls as Controls
import QtQuick.Dialogs
import QtQuick.Layouts
import org.kde.kirigami as Kirigami
Item {
id: configRoot
property alias cfg_shaderPath: shaderPath.text
property alias cfg_targetFps: fpsSlider.value
property alias cfg_speed: speedSlider.value
property alias cfg_running: runningCheck.checked
property alias cfg_mouseEnabled: mouseCheck.checked
property alias cfg_watchSource: watchCheck.checked
implicitWidth: 560
implicitHeight: form.implicitHeight + Kirigami.Units.gridUnit * 2
FileDialog {
id: shaderDialog
title: "Choose a fragment shader"
nameFilters: ["Fragment shaders (*.frag *.glsl)", "All files (*)"]
onAccepted: shaderPath.text = selectedFile.toString()
}
Kirigami.FormLayout {
id: form
anchors {
left: parent.left
right: parent.right
top: parent.top
margins: Kirigami.Units.gridUnit
}
RowLayout {
Kirigami.FormData.label: "Fragment shader:"
Layout.fillWidth: true
Controls.TextField {
id: shaderPath
Layout.fillWidth: true
placeholderText: "Built-in Lumen shader"
}
Controls.Button {
text: "Browse…"
onClicked: shaderDialog.open()
}
Controls.Button {
text: "Reset"
onClicked: shaderPath.text = ""
}
}
Controls.Label {
text: "Shadertoy-style GLSL with mainImage(). Files reload automatically when enabled below."
wrapMode: Text.Wrap
Layout.fillWidth: true
opacity: 0.7
}
RowLayout {
Kirigami.FormData.label: "Frame rate:"
Controls.Slider {
id: fpsSlider
from: 5
to: 120
stepSize: 1
value: 30
Layout.fillWidth: true
}
Controls.Label {
text: Math.round(fpsSlider.value) + " FPS"
Layout.minimumWidth: 64
}
}
RowLayout {
Kirigami.FormData.label: "Animation speed:"
Controls.Slider {
id: speedSlider
from: 0.1
to: 3.0
stepSize: 0.05
value: 1.0
Layout.fillWidth: true
}
Controls.Label {
text: speedSlider.value.toFixed(2) + "×"
Layout.minimumWidth: 64
}
}
Controls.CheckBox {
id: runningCheck
Kirigami.FormData.label: "Playback:"
text: "Animate wallpaper"
checked: true
}
Controls.CheckBox {
id: mouseCheck
text: "React to the pointer over the desktop"
checked: true
}
Controls.CheckBox {
id: watchCheck
text: "Reload the shader when its file changes"
checked: true
}
}
}