diff options
Diffstat (limited to 'config')
| -rw-r--r-- | config/Config.qml | 23 |
1 files changed, 22 insertions, 1 deletions
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 |