46 lines
No EOL
1.9 KiB
QML
46 lines
No EOL
1.9 KiB
QML
pragma Singleton
|
|
import QtQuick
|
|
import QtCore
|
|
|
|
QtObject {
|
|
property string weatherCity: "Dinslaken"
|
|
property string profileImage: "https://cdn.discordapp.com/avatars/158005126638993408/de403f05fd7f74bb17e01a9b066a30fa?size=64"
|
|
property bool useFahrenheit
|
|
property string wallpaperFolder: "/home/lysec/nixos/assets/wallpapers" // Default path, make persistent
|
|
property string currentWallpaper: ""
|
|
property string videoPath: "~/Videos/" // Default path, make persistent
|
|
|
|
// Settings persistence
|
|
property var settings: Qt.createQmlObject('import QtCore; Settings { category: "Quickshell" }', this, "settings")
|
|
|
|
Component.onCompleted: {
|
|
loadSettings()
|
|
}
|
|
|
|
function loadSettings() {
|
|
weatherCity = settings.value("weatherCity", weatherCity)
|
|
profileImage = settings.value("profileImage", profileImage)
|
|
let tempUnit = settings.value("weatherTempUnit", "celsius")
|
|
useFahrenheit = (tempUnit === "fahrenheit")
|
|
wallpaperFolder = settings.value("wallpaperFolder", wallpaperFolder)
|
|
currentWallpaper = settings.value("currentWallpaper", currentWallpaper)
|
|
videoPath = settings.value("videoPath", videoPath)
|
|
console.log("Loaded profileImage:", profileImage)
|
|
}
|
|
|
|
function saveSettings() {
|
|
settings.setValue("weatherCity", weatherCity)
|
|
settings.setValue("profileImage", profileImage)
|
|
settings.setValue("weatherTempUnit", useFahrenheit ? "fahrenheit" : "celsius")
|
|
settings.setValue("wallpaperFolder", wallpaperFolder)
|
|
settings.setValue("currentWallpaper", currentWallpaper)
|
|
settings.setValue("videoPath", videoPath)
|
|
settings.sync()
|
|
console.log("Saving profileImage:", profileImage)
|
|
}
|
|
|
|
// Property change handlers to auto-save (all commented out for explicit save only)
|
|
// onWeatherCityChanged: saveSettings()
|
|
// onProfileImageChanged: saveSettings()
|
|
// onUseFahrenheitChanged: saveSettings()
|
|
} |