From 38b9b8659541de53ae6b8e5fd0d6630621fb65cd Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Mon, 22 Sep 2025 23:32:36 +1000 Subject: config: add toasts for events Loaded, load parse error, load failed, save failed Also increase toast icon size --- config/Config.qml | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) (limited to 'config') diff --git a/config/Config.qml b/config/Config.qml index f33cbba..8d54cf8 100644 --- a/config/Config.qml +++ b/config/Config.qml @@ -1,6 +1,7 @@ pragma Singleton import qs.utils +import Caelestia import Quickshell import Quickshell.Io @@ -25,10 +26,30 @@ Singleton { property alias services: adapter.services property alias paths: adapter.paths + ElapsedTimer { + id: timer + } + FileView { path: `${Paths.config}/shell.json` watchChanges: true - onFileChanged: reload() + onFileChanged: { + timer.restart(); + reload(); + } + onLoaded: { + try { + JSON.parse(text()); + Toaster.toast(qsTr("Config loaded"), qsTr("Config loaded in %1ms").arg(timer.elapsedMs()), "rule_settings"); + } catch (e) { + Toaster.toast(qsTr("Failed to load config"), e.message, "settings_alert", Toast.Error); + } + } + onLoadFailed: err => { + if (err !== FileViewError.FileNotFound) + Toaster.toast(qsTr("Failed to read config file"), FileViewError.toString(err), "settings_alert", Toast.Warning); + } + onSaveFailed: err => Toaster.toast(qsTr("Failed to save config"), FileViewError.toString(err), "settings_alert", Toast.Error) JsonAdapter { id: adapter -- cgit v1.2.3-freya