aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/modules/user
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/modules/user')
-rw-r--r--desktop/modules/user/UserModule.qml8
-rw-r--r--desktop/modules/user/UserPage.qml13
2 files changed, 14 insertions, 7 deletions
diff --git a/desktop/modules/user/UserModule.qml b/desktop/modules/user/UserModule.qml
index 79f1be5..31ef0d8 100644
--- a/desktop/modules/user/UserModule.qml
+++ b/desktop/modules/user/UserModule.qml
@@ -29,7 +29,13 @@ Module {
Page {
id: pg
title: "User"
- UserPage { width: parent.width; owner: um; onMoreGit: pg.go("git") }
+ // The draft lives in the page, so it is not marked in the
+ // sidebar: leaving the page drops it, as it always has.
+ actions: Component {
+ SaveBar { dirty: up.changed.length > 0; valid: up.loadError === ""; busy: up.busy
+ onSave: up.save(); onDiscard: up.discard() }
+ }
+ UserPage { id: up; width: parent.width; owner: um; onMoreGit: pg.go("git") }
}
}
}
diff --git a/desktop/modules/user/UserPage.qml b/desktop/modules/user/UserPage.qml
index f7a2289..1cc0c1e 100644
--- a/desktop/modules/user/UserPage.qml
+++ b/desktop/modules/user/UserPage.qml
@@ -62,6 +62,12 @@ Column {
property string loadError: ""
readonly property var changed: Object.keys(draft).filter(k => draft[k] !== saved[k] || !!errors[k])
+ // Back to what is saved, for the header's Discard.
+ function discard() {
+ form.draft = Object.assign({}, form.saved);
+ form.errors = ({});
+ }
+
function set(key, value) {
const d = Object.assign({}, form.draft);
d[key] = value;
@@ -410,10 +416,5 @@ Column {
onClicked: form.moreGit()
}
- Button {
- anchors.right: parent.right
- text: form.busy ? "Saving…" : "Save"
- enabled: !form.busy && form.loadError === "" && form.changed.length > 0
- onClicked: form.save()
- }
+ // Save and Discard are in the page header, with every settings page's.
}