mobile: exit edit mode when navigating away from edit page

Navigating using the breadcrumb in the header did leave the
dive detail edit (and add) mode in such a way that (for example)
navigation in the dive list was suspended. Obviously, it is
debatable what should be done. Saving the edits/add, or
cancelling them. For now, this commit cancels them
silently. This is the exact same thing that is happening when
the user selects the dive list from the drawer menu.

Fixes: #932

Signed-off-by: Jan Mulder <jlmulder@xs4all.nl>
This commit is contained in:
Jan Mulder 2017-12-18 14:37:02 +01:00
parent 7b88f8301e
commit 825afb4db4
2 changed files with 12 additions and 0 deletions

View file

@ -8,6 +8,7 @@ import org.kde.kirigami 2.2 as Kirigami
Kirigami.Page {
id: diveDetailsPage // but this is referenced as detailsWindow
objectName: "DiveDetails"
property alias currentIndex: diveDetailsListView.currentIndex
property alias currentItem: diveDetailsListView.currentItem
property alias dive_id: detailsEdit.dive_id

View file

@ -19,6 +19,7 @@ Kirigami.ApplicationWindow {
preferredHeight: Math.round(Kirigami.Units.gridUnit * (Qt.platform.os == "ios" ? 2 : 1.5))
maximumHeight: Kirigami.Units.gridUnit * 2
}
property alias oldStatus: manager.oldStatus
property alias notificationText: manager.notificationText
property alias syncToCloud: manager.syncToCloud
@ -436,7 +437,17 @@ if you have network connectivity and want to sync your data to cloud storage."),
easing.type: Easing.OutQuad
}
}
}
pageStack.onCurrentItemChanged: {
// This is called whenever the user navigates using the breadcrumbs in the header
// In case we land on any page, not being the DiveDetails (which can be
// in multiple states, such as add, edit or view), just end the edit/add mode
if (pageStack.currentItem.objectName !== "DiveDetails" &&
(detailsWindow.state === 'edit' || detailsWindow.state === 'add')) {
detailsWindow.endEditMode()
}
}
QMLManager {