up su Gitea
This commit is contained in:
@@ -0,0 +1,75 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import qs.Widgets
|
||||
import qs.Commons
|
||||
|
||||
ColumnLayout {
|
||||
id: root
|
||||
|
||||
// Plugin API (injected by the settings dialog system)
|
||||
property var pluginApi: null
|
||||
|
||||
// Local state - track changes before saving
|
||||
property real valueMinimumThreshold: pluginApi?.mainInstance?.minimumThreshold ?? (pluginApi?.pluginSettings?.minimumThreshold || 10)
|
||||
property bool valueHideBackground: pluginApi?.mainInstance?.hideBackground ?? (pluginApi?.pluginSettings?.hideBackground ?? false)
|
||||
|
||||
spacing: Style.marginM
|
||||
|
||||
Component.onCompleted: {
|
||||
Logger.i("Catwalk", "Settings UI loaded");
|
||||
}
|
||||
|
||||
ColumnLayout {
|
||||
Layout.fillWidth: true
|
||||
spacing: Style.marginS
|
||||
|
||||
NLabel {
|
||||
label: pluginApi?.tr("settings.minimumThreshold.label") || "Minimum CPU Threshold"
|
||||
description: pluginApi?.tr("settings.minimumThreshold.description") || "CPU usage must be above this percentage for the cat to start running"
|
||||
}
|
||||
|
||||
NSlider {
|
||||
id: thresholdSlider
|
||||
from: 5
|
||||
to: 25
|
||||
value: root.valueMinimumThreshold
|
||||
stepSize: 1
|
||||
onValueChanged: {
|
||||
root.valueMinimumThreshold = value
|
||||
}
|
||||
}
|
||||
|
||||
Text {
|
||||
text: (pluginApi?.tr("settings.currentThreshold") || "Current threshold: {value}%").replace("{value}", thresholdSlider.value)
|
||||
color: Color.mOnSurfaceVariant
|
||||
font.pointSize: Style.fontSizeS
|
||||
}
|
||||
}
|
||||
|
||||
NToggle {
|
||||
label: pluginApi?.tr("settings.hideBackground.label") || "Hide Background"
|
||||
description: pluginApi?.tr("settings.hideBackground.description") || "Hide the background of the desktop widget"
|
||||
|
||||
checked: root.valueHideBackground
|
||||
onToggled: function(checked) {
|
||||
root.valueHideBackground = checked
|
||||
}
|
||||
}
|
||||
|
||||
// This function is called by the dialog to save settings
|
||||
function saveSettings() {
|
||||
if (!pluginApi) {
|
||||
Logger.e("Catwalk", "Cannot save settings: pluginApi is null");
|
||||
return;
|
||||
}
|
||||
|
||||
// Update the plugin settings object
|
||||
pluginApi.pluginSettings.minimumThreshold = root.valueMinimumThreshold;
|
||||
pluginApi.pluginSettings.hideBackground = root.valueHideBackground;
|
||||
|
||||
// Save to disk
|
||||
pluginApi.saveSettings();
|
||||
|
||||
Logger.i("Catwalk", "Settings saved successfully");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user