From f84e8238796bd98e0acfd07183dae30b940c15fd Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Wed, 20 Jan 2016 14:07:06 -0800 Subject: QML UI: switch edit back to not being a drawer With this edit seems to work again. The edit page can be scrolled around on smaller screens to allow editing every part of it and to allow the user to press the "save" button. This is mainly intended to make sure testing can continue - it's unclear if this will be the final design. Signed-off-by: Dirk Hohndel --- qt-mobile/qml/DiveDetails.qml | 53 +++++++++++++++++++++------------------ qt-mobile/qml/DiveDetailsEdit.qml | 10 +++----- 2 files changed, 32 insertions(+), 31 deletions(-) (limited to 'qt-mobile') diff --git a/qt-mobile/qml/DiveDetails.qml b/qt-mobile/qml/DiveDetails.qml index 0ac9dc68f..4d5b89aa0 100644 --- a/qt-mobile/qml/DiveDetails.qml +++ b/qt-mobile/qml/DiveDetails.qml @@ -7,16 +7,29 @@ import org.subsurfacedivelog.mobile 1.0 import org.kde.plasma.mobilecomponents 0.2 as MobileComponents MobileComponents.Page { - id: page - objectName: "DiveList" + id: diveDetailsPage property alias currentIndex: diveListView.currentIndex + state: "view" + + states: [ + State { + name: "view" + PropertyChanges { target: diveDetailList; visible: true } + PropertyChanges { target: detailsEditScroll; visible: false } + }, + State { + name: "edit" + PropertyChanges { target: diveDetailList; visible: false } + PropertyChanges { target: detailsEditScroll; visible: true } + } + ] mainAction: Action { - iconName: editDrawer.opened ? "dialog-cancel" : "document-edit" + iconName: state === "edit" ? "dialog-cancel" : "document-edit" onTriggered: { - if (editDrawer.opened) { - editDrawer.close(); - return; + if (state === "edit") { + state = "view" + return } // After saving, the list may be shuffled, so first of all make sure that // the listview's currentIndex is the visible item @@ -34,7 +47,7 @@ MobileComponents.Page { detailsEdit.buddyText = diveListView.currentItem.modelData.dive.buddy detailsEdit.divemasterText = diveListView.currentItem.modelData.dive.divemaster detailsEdit.notesText = diveListView.currentItem.modelData.dive.notes - editDrawer.open(); + diveDetailsPage.state = "edit" } } @@ -45,6 +58,7 @@ MobileComponents.Page { onWidthChanged: diveListView.positionViewAtIndex(diveListView.currentIndex, ListView.Beginning); ScrollView { + id: diveDetailList anchors.fill: parent ListView { id: diveListView @@ -60,9 +74,6 @@ MobileComponents.Page { onMovementEnded: { currentIndex = indexAt(contentX+1, 1); } - onCurrentIndexChanged: { - editDrawer.close(); - } delegate: ScrollView { id: internalScrollView width: diveListView.width @@ -80,22 +91,16 @@ MobileComponents.Page { } } } - MobileComponents.OverlayDrawer { - id: editDrawer + Flickable { + id: detailsEditScroll anchors.fill: parent - edge: Qt.BottomEdge - contentItem: DiveDetailsEdit { + anchors.margins: MobileComponents.Units.gridUnit + contentWidth: contentItem.childrenRect.width; + contentHeight: contentItem.childrenRect.height + clip: true + bottomMargin: MobileComponents.Units.gridUnit * 3 + DiveDetailsEdit { id: detailsEdit - implicitHeight: page.height - MobileComponents.Units.gridUnit*3 - } - // Close the editDrawer when the pageStack navigates away, for example going - // back to the listview after the Back button was pressed - Connections { - target: rootItem.pageStack - onCurrentPageChanged: { - editDrawer.close(); - } } } - } diff --git a/qt-mobile/qml/DiveDetailsEdit.qml b/qt-mobile/qml/DiveDetailsEdit.qml index 476bc77f1..7211639c1 100644 --- a/qt-mobile/qml/DiveDetailsEdit.qml +++ b/qt-mobile/qml/DiveDetailsEdit.qml @@ -21,13 +21,9 @@ Item { property alias notesText: txtNotes.text property alias durationText: txtDuration.text property alias depthText: txtDepth.text + height: editArea.height ColumnLayout { - anchors { - left: parent.left - right: parent.right - top: parent.top - margins: MobileComponents.Units.gridUnit - } + id: editArea spacing: MobileComponents.Units.smallSpacing @@ -169,7 +165,7 @@ Item { diveListView.currentItem.modelData.buddy = detailsEdit.buddyText diveListView.currentItem.modelData.divemaster = detailsEdit.divemasterText diveListView.currentItem.modelData.notes = detailsEdit.notesText - editDrawer.close() + diveDetailsPage.state = "view" } } Item { -- cgit v1.2.3-70-g09d2