noctalia-shell/Services/ColorSchemes.qml
2025-08-15 00:09:03 -04:00

48 lines
1.2 KiB
QML

pragma Singleton
import QtQuick
import Qt.labs.folderlistmodel
import Quickshell
import Quickshell.Io
Singleton {
id: root
Component.onCompleted: {
console.log("[ColorSchemes] Service initialized")
loadColorSchemes()
}
property var schemes: []
property string baseDirectory: "file://" + Quickshell.shellDir + "/Assets/ColorSchemes"
// //property string currentScheme: Settings.data.wallpaper.current
property bool scanning: false
function loadColorSchemes() {
console.log("[ColorSchemes] Load ColorSchemes")
scanning = true
schemes = []
// Unsetting, then setting the folder will re-trigger the parsing!
folderModel.folder = ""
folderModel.folder = baseDirectory
}
FolderListModel {
id: folderModel
nameFilters: ["*.json"]
showDirs: false
sortField: FolderListModel.Name
onStatusChanged: {
if (status === FolderListModel.Ready) {
var files = []
for (var i = 0; i < count; i++) {
var filepath = baseDirectory + "/" + get(i, "fileName")
files.push(filepath)
}
schemes = files
scanning = false
console.log(schemes)
}
}
}
}