noctalia-shell/Services/ColorSchemes.qml

46 lines
1 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 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 = "file://" + Quickshell.shellDir + "/Assets/ColorSchemes"
}
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 = folderModel.folder + "/" + get(i, "fileName")
files.push(filepath)
}
schemes = files
scanning = false
console.log(schemes)
}
}
}
}