From b810188a4b106ee84e1971b0bbd928d27528171f Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Thu, 22 Oct 2026 17:26:57 +0200 Subject: theme: stage a scheme and commit it from the header The Theme page applied a scheme on click, so a stray click reinstalled the whole theme, and it was the one settings page without the header's commit point. Clicking now stages the scheme (outlined yellow, "selected"), and Reset / Apply in the header drop or apply it, as the wallpaper page does. The applied notice and any failure moved into the SaveBar, and the sidebar marks the page dirty while a scheme is staged. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/appearance/Udt.qml | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'desktop/modules/appearance/Udt.qml') diff --git a/desktop/modules/appearance/Udt.qml b/desktop/modules/appearance/Udt.qml index 98fbba7..9ba609f 100644 --- a/desktop/modules/appearance/Udt.qml +++ b/desktop/modules/appearance/Udt.qml @@ -33,6 +33,10 @@ Singleton { property bool applying: false signal applied(string scheme, bool ok, string message) + // A scheme picked on the page, staged until Apply, like a wallpaper. + property string pending: "" + readonly property bool dirty: pending !== "" && pending !== current + // A scheme is two files: .conf holds colours under the scheme's own // names, roles-.conf says what each colour is for. Resolving a role // means looking its value up as a key in the first file. @@ -146,6 +150,7 @@ Singleton { property string scheme: "" onExited: code => { root.applying = false; + if (code === 0) root.pending = ""; root.applied(applyProc.scheme, code === 0, code === 0 ? "" : `install.sh exited ${code}, its output is in the steps window`); } -- cgit v1.2.3