diff options
Diffstat (limited to 'desktop/modules/user')
| -rw-r--r-- | desktop/modules/user/UserModule.qml | 8 | ||||
| -rw-r--r-- | desktop/modules/user/UserPage.qml | 13 |
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. } |
