From b79744c13554d64a744b842316a85131363af8f0 Mon Sep 17 00:00:00 2001 From: quadbyte Date: Fri, 15 Aug 2025 00:09:03 -0400 Subject: [PATCH] ColorScheme: selector wip --- Modules/Settings/Tabs/ColorSchemeTab.qml | 32 ++--------- Services/ColorSchemes.qml | 67 ++++++++++++------------ Services/Wallpapers.qml | 6 +-- 3 files changed, 40 insertions(+), 65 deletions(-) diff --git a/Modules/Settings/Tabs/ColorSchemeTab.qml b/Modules/Settings/Tabs/ColorSchemeTab.qml index 3783d5f..72ba676 100644 --- a/Modules/Settings/Tabs/ColorSchemeTab.qml +++ b/Modules/Settings/Tabs/ColorSchemeTab.qml @@ -9,27 +9,6 @@ ColumnLayout { spacing: 0 - // Component.onCompleted: { - // console.log("[ColorSchemes] Service initialized") - // ColorScheme.loadColorSchemes() - // } - - - // property var colorSchemes: [{ - // "label": "Generated from Wallpaper (Matugen required)" - // }, { - // "label": "Catppuccin" - // }, { - // "label": "Dracula" - // }, { - // "label": "Gruvbox" - // }, { - // "label": "Nord" - // "file": "nord.json" - // }, , { - // "label": "Rosé Pine", - // "file": "rosepine.json" - // }] ScrollView { id: scrollView @@ -66,16 +45,13 @@ ColumnLayout { Repeater { model: ColorSchemes.schemes - delegate: NRadioButton { + NRadioButton { + property string schemePath: modelData ButtonGroup.group: schemesGroup - // checked: Audio.sink?.id === modelData.id + //checked: Audio.sink?.id === modelData.id //onClicked: Audio.setAudioSink(modelData) - text: { - console.log(modelData.fileName) - return modelData.fileName - } + text: schemePath } - } } } diff --git a/Services/ColorSchemes.qml b/Services/ColorSchemes.qml index e879a65..6144322 100644 --- a/Services/ColorSchemes.qml +++ b/Services/ColorSchemes.qml @@ -8,42 +8,41 @@ import Quickshell.Io Singleton { id: root - // Component.onCompleted: { - // console.log("[ColorSchemes] Service initialized") - // loadColorSchemes() - // } + Component.onCompleted: { + console.log("[ColorSchemes] Service initialized") + loadColorSchemes() + } - // property var schemes: [] + property var schemes: [] + property string baseDirectory: "file://" + Quickshell.shellDir + "/Assets/ColorSchemes" // //property string currentScheme: Settings.data.wallpaper.current - // property bool scanning: false + property bool scanning: false - // function loadColorSchemes() { - // scanning = true - // schemes = [] - // // Unsetting, then setting the folder will re-trigger the parsing! - // folderModel.folder = "" - // folderModel.folder = "file://" + Quickshell.shellDir + "/Assets/Matugen/ColorSchemes" - // } + 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: { - // console.log("sasfjsaflkhfkjhasf") - // if (status === FolderListModel.Ready) { - // var files = [] - // for (var i = 0; i < count; i++) { - // console.log(get(i, "fileName")) - // // var filepath = (Settings.data.wallpaper.directory !== undefined ? Settings.data.wallpaper.directory : "") + "/" + get( - // // i, "fileName") - // // files.push(filepath) - // } - // schemes = files - // scanning = false - // console.log(schemes) - // } - // } - // } + 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) + } + } + } } diff --git a/Services/Wallpapers.qml b/Services/Wallpapers.qml index 3e656cf..71fa8a5 100644 --- a/Services/Wallpapers.qml +++ b/Services/Wallpapers.qml @@ -21,13 +21,13 @@ Singleton { property bool scanning: false property string transitionType: Settings.data.wallpaper.swww.transitionType property var randomChoices: ["simple", "fade", "left", "right", "top", "bottom", "wipe", "wave", "grow", "center", "any", "outer"] - + function loadWallpapers() { console.log("[Wallpapers] Load Wallpapers") scanning = true wallpaperList = [] // Unsetting, then setting the folder will re-trigger the parsing! - folderModel.folder = ""; + folderModel.folder = "" folderModel.folder = "file://" + (Settings.data.wallpaper.directory !== undefined ? Settings.data.wallpaper.directory : "") } @@ -126,7 +126,7 @@ Singleton { } wallpaperList = files scanning = false - console.log("[Wallpapers] List refreshed, count:", wallpaperList.length) + console.log("[Wallpapers] List refreshed, count:", wallpaperList.length) } } }