aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/Prefs.qml
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/Prefs.qml')
-rw-r--r--desktop/Prefs.qml13
1 files changed, 8 insertions, 5 deletions
diff --git a/desktop/Prefs.qml b/desktop/Prefs.qml
index dd2fdfc..d56b34c 100644
--- a/desktop/Prefs.qml
+++ b/desktop/Prefs.qml
@@ -34,12 +34,12 @@ Singleton {
// The whole parsed object, so a write keeps keys this version does not
// know about.
- property var data: ({})
+ property var doc: ({})
function setControls(list) {
root.controls = Controls.normalize(list);
- const out = Object.assign({}, root.data, { controls: root.controls });
- root.data = out;
+ const out = Object.assign({}, root.doc, { controls: root.controls });
+ root.doc = out;
file.setText(JSON.stringify(out, null, 2) + "\n");
}
@@ -49,7 +49,7 @@ Singleton {
const v = JSON.parse(file.text());
if (v && typeof v === "object" && !Array.isArray(v)) parsed = v;
} catch (e) {}
- root.data = parsed;
+ root.doc = parsed;
const next = "controls" in parsed ? Controls.normalize(parsed.controls) : Controls.defaults();
// The watch also fires on our own write; compare so it is a no-op.
if (JSON.stringify(next) !== JSON.stringify(root.controls)) root.controls = next;
@@ -61,9 +61,12 @@ Singleton {
atomicWrites: true
watchChanges: true
printErrors: false
+ // printErrors is off for the missing-file read; a failed write still
+ // has to be heard, or the new order silently vanishes at restart.
+ onSaveFailed: error => console.warn("Prefs: writing", root.path, "failed:", error)
onFileChanged: reload()
onLoaded: root.reparse()
// Missing file: the defaults, and nothing written.
- onLoadFailed: { root.data = {}; root.controls = Controls.defaults(); }
+ onLoadFailed: { root.doc = {}; root.controls = Controls.defaults(); }
}
}