summaryrefslogtreecommitdiffstats
path: root/mobile-widgets
diff options
context:
space:
mode:
authorGravatar Jan Mulder <jlmulder@xs4all.nl>2017-12-18 14:37:02 +0100
committerGravatar Jan Mulder <jlmulder@xs4all.nl>2017-12-18 15:23:23 +0100
commit825afb4db4b69b507473f91234575bc9dc44a02e (patch)
tree3ea43ace4c880bf46d8da560a967dfb5acd8181a /mobile-widgets
parent7b88f8301ec82d418d101f1ae1c3f9adf9186436 (diff)
downloadsubsurface-825afb4db4b69b507473f91234575bc9dc44a02e.tar.gz
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>
Diffstat (limited to 'mobile-widgets')
-rw-r--r--mobile-widgets/qml/DiveDetails.qml1
-rw-r--r--mobile-widgets/qml/main.qml11
2 files changed, 12 insertions, 0 deletions
diff --git a/mobile-widgets/qml/DiveDetails.qml b/mobile-widgets/qml/DiveDetails.qml
index 2a6398816..001aed3a1 100644
--- a/mobile-widgets/qml/DiveDetails.qml
+++ b/mobile-widgets/qml/DiveDetails.qml
@@ -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
diff --git a/mobile-widgets/qml/main.qml b/mobile-widgets/qml/main.qml
index 6d5739a9b..00d8e544a 100644
--- a/mobile-widgets/qml/main.qml
+++ b/mobile-widgets/qml/main.qml
@@ -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 {