diff --git a/Services/ColorSchemeService.qml b/Services/ColorSchemeService.qml index fce9295e..ff271b69 100644 --- a/Services/ColorSchemeService.qml +++ b/Services/ColorSchemeService.qml @@ -91,6 +91,31 @@ Singleton { schemeReader.path = filePath } + function setPredefinedScheme(schemeName) { + Logger.i("ColorScheme", "Attempting to set predefined scheme to:", schemeName) + + var resolvedPath = resolveSchemePath(schemeName) + var basename = getBasename(schemeName) + + // Check if the scheme actually exists in the loaded schemes list + var schemeExists = false + for (var i = 0; i < schemes.length; i++) { + if (getBasename(schemes[i]) === basename) { + schemeExists = true + break + } + } + + if (schemeExists) { + Settings.data.colorSchemes.predefinedScheme = basename + applyScheme(schemeName) + ToastService.showNotice("Color Scheme", `Set to ${basename}`) + } else { + Logger.e("ColorScheme", "Scheme not found:", schemeName) + ToastService.showError("Color Scheme", `Scheme '${basename}' not found!`) + } + } + Process { id: findProcess running: false diff --git a/Services/IPCService.qml b/Services/IPCService.qml index f133eb5f..7a569485 100644 --- a/Services/IPCService.qml +++ b/Services/IPCService.qml @@ -126,6 +126,13 @@ Item { } } + IpcHandler { + target: "colorScheme" + function set(schemeName: string) { + ColorSchemeService.setPredefinedScheme(schemeName) + } + } + IpcHandler { target: "volume" function increase() {