aboutsummaryrefslogtreecommitdiffstats
path: root/qt-mobile/qml/DiveDetailsView.qml
diff options
context:
space:
mode:
authorGravatar Sebastian Kügler <sebas@kde.org>2016-01-12 01:15:02 +0100
committerGravatar Sebastian Kügler <sebas@kde.org>2016-01-12 03:06:09 +0100
commit6540e95425eb4c8aad56c5c5388c25b2180817cb (patch)
tree31ee60379f86868814b82e363719abc744d4a62c /qt-mobile/qml/DiveDetailsView.qml
parent9e85d767668faec8feec51ed00ed7c5b3db90cb3 (diff)
downloadsubsurface-6540e95425eb4c8aad56c5c5388c25b2180817cb.tar.gz
dive details navigation
This patch reworks the navigation of the dive details. - The detailsview is now a list view with page-sized delegates. This allows horizontal swiping to the next and previous dive. - The central button now allows to open the edit mode for the dive. Original patch was done by Marco Martin, but needed to be reapplied by hand. Signed-off-by: Sebastian Kügler <sebas@kde.org>
Diffstat (limited to 'qt-mobile/qml/DiveDetailsView.qml')
-rw-r--r--qt-mobile/qml/DiveDetailsView.qml383
1 files changed, 203 insertions, 180 deletions
diff --git a/qt-mobile/qml/DiveDetailsView.qml b/qt-mobile/qml/DiveDetailsView.qml
index c75fc91df..519bd7a65 100644
--- a/qt-mobile/qml/DiveDetailsView.qml
+++ b/qt-mobile/qml/DiveDetailsView.qml
@@ -9,211 +9,234 @@ import QtQuick.Layouts 1.1
import org.subsurfacedivelog.mobile 1.0
import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
-GridLayout {
+Item {
id: detailsView
-
- columns: 4
- rowSpacing: MobileComponents.Units.smallSpacing * 2
- columnSpacing: MobileComponents.Units.smallSpacing
-
property int labelWidth: MobileComponents.Units.gridUnit * 10
-
- Connections {
- target: diveDetailsWindow
- onDive_idChanged: {
- qmlProfile.diveId = diveDetailsWindow.dive_id
- qmlProfile.update()
+ width: parent.width
+ height: mainLayout.implicitHeight + MobileComponents.Units.iconSizes.large
+ Rectangle {
+ z: 99
+ color: MobileComponents.Theme.textColor
+ opacity: 0.3
+ width: MobileComponents.Units.smallSpacing/4
+ anchors {
+ right: parent.right
+ top: parent.top
+ bottom: parent.bottom
}
}
+ GridLayout {
+ id: mainLayout
+ anchors {
+ //fill: parent
+ top: parent.top
+ left: parent.left
+ right: parent.right
+ margins: MobileComponents.Units.gridUnit
+ }
+ columns: 4
+ rowSpacing: MobileComponents.Units.smallSpacing * 2
+ columnSpacing: MobileComponents.Units.smallSpacing
+
+ /*Connections {
+ target: diveDetailsWindow
+ onDive_idChanged: {
+ qmlProfile.diveId = diveDetailsWindow.dive_id
+ qmlProfile.update()
+ }
+ }*/
- MobileComponents.Heading {
- id: detailsViewHeading
- Layout.fillWidth: true
- text: location
- font.underline: gps !== ""
- Layout.columnSpan: 4
- wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
- MouseArea {
- anchors.fill: parent
- onClicked: {
- if (gps !== "")
- manager.showMap(gps)
+ MobileComponents.Heading {
+ id: detailsViewHeading
+ Layout.fillWidth: true
+ text: dive.location
+ font.underline: dive.gps !== ""
+ Layout.columnSpan: 4
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ if (gps !== "")
+ manager.showMap(gps)
+ }
}
}
- }
- /*
- Rectangle {
- id: mapView
- width: parent.width
- height: parents.width * 0.7
- WebView {
- id: webView
- anchors.fill: parent
- url: "http://www.google.com"
+ /*
+ Rectangle {
+ id: mapView
+ width: parent.width
+ height: parents.width * 0.7
+ WebView {
+ id: webView
+ anchors.fill: parent
+ url: "http://www.google.com"
+ }
+ }
+ */
+ MobileComponents.Label {
+ Layout.alignment: Qt.AlignRight
+ id: dateLabel
+ text: "Date: "
+ opacity: 0.6
+ }
+ MobileComponents.Label {
+ text: dive.date
+ Layout.minimumWidth: Math.max(MobileComponents.Units.gridUnit * 4, paintedWidth) // helps vertical alignment throughout listview
+ Layout.columnSpan: 3
}
- }
-*/
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- id: dateLabel
- text: "Date: "
- opacity: 0.6
- }
- MobileComponents.Label {
- text: date
- Layout.minimumWidth: Math.max(MobileComponents.Units.gridUnit * 4, paintedWidth) // helps vertical alignment throughout listview
- Layout.columnSpan: 3
- }
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- id: depthLabel
- text: "Depth: "
- opacity: 0.6
- }
- MobileComponents.Label {
- text: depth
- Layout.minimumWidth: Math.max(MobileComponents.Units.gridUnit * 4, paintedWidth) // helps vertical alignment throughout listview
- }
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- text: "Duration: "
- opacity: 0.6
- }
- RowLayout {
MobileComponents.Label {
- text: duration
+ Layout.alignment: Qt.AlignRight
+ id: depthLabel
+ text: "Depth: "
+ opacity: 0.6
}
- Item {
- Layout.fillWidth: true
- height: parent.height
+ MobileComponents.Label {
+ text: dive.depth
+ Layout.minimumWidth: Math.max(MobileComponents.Units.gridUnit * 4, paintedWidth) // helps vertical alignment throughout listview
}
MobileComponents.Label {
- id: numberText
- text: "#" + diveNumber
- color: MobileComponents.Theme.textColor
+ Layout.alignment: Qt.AlignRight
+ text: "Duration: "
+ opacity: 0.6
+ }
+ RowLayout {
+ MobileComponents.Label {
+ text: dive.duration
+ }
+ Item {
+ Layout.fillWidth: true
+ height: parent.height
+ }
+ MobileComponents.Label {
+ id: numberText
+ text: "#" + dive.number
+ color: MobileComponents.Theme.textColor
+ }
}
- }
-
- QMLProfile {
- id: qmlProfile
- Layout.fillWidth: true
- Layout.preferredHeight: width * 0.66
- Layout.columnSpan: 4
- Rectangle {
- color: "transparent"
- opacity: 0.6
- border.width: 1
- border.color: MobileComponents.Theme.textColor;
- anchors.fill: parent
+ QMLProfile {
+ id: qmlProfile
+ Layout.fillWidth: true
+ Layout.minimumHeight: Layout.preferredHeight
+ Layout.preferredHeight: width * 0.66
+ Layout.columnSpan: 4
+ Rectangle {
+ color: "transparent"
+ opacity: 0.6
+ border.width: 1
+ border.color: MobileComponents.Theme.textColor;
+ anchors.fill: parent
+ }
+ //Rectangle { color: "green"; opacity: 0.4; anchors.fill: parent } // used for debugging the dive profile sizing, will be removed later
}
- //Rectangle { color: "green"; opacity: 0.4; anchors.fill: parent } // used for debugging the dive profile sizing, will be removed later
- }
- MobileComponents.Heading {
- Layout.fillWidth: true
- level: 3
- text: "Dive Details"
- Layout.columnSpan: 4
- }
+ MobileComponents.Heading {
+ Layout.fillWidth: true
+ level: 3
+ text: "Dive Details"
+ Layout.columnSpan: 4
+ }
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- text: "Air Temp:"
- opacity: 0.6
- }
- MobileComponents.Label {
- id: txtAirTemp
- text: airtemp
- Layout.fillWidth: true
- wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
- }
+ MobileComponents.Label {
+ Layout.alignment: Qt.AlignRight
+ text: "Air Temp:"
+ opacity: 0.6
+ }
+ MobileComponents.Label {
+ id: txtAirTemp
+ text: dive.airTemp
+ Layout.fillWidth: true
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ }
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- text: "Water Temp:"
- opacity: 0.6
- }
- MobileComponents.Label {
- id: txtWaterTemp
- text: watertemp
- Layout.fillWidth: true
- wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
- }
+ MobileComponents.Label {
+ Layout.alignment: Qt.AlignRight
+ text: "Water Temp:"
+ opacity: 0.6
+ }
+ MobileComponents.Label {
+ id: txtWaterTemp
+ text: dive.waterTemp
+ Layout.fillWidth: true
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ }
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- text: "Suit:"
- opacity: 0.6
- }
- MobileComponents.Label {
- id: txtSuit
- text: suit
- Layout.fillWidth: true
- wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
- }
+ MobileComponents.Label {
+ Layout.alignment: Qt.AlignRight
+ text: "Suit:"
+ opacity: 0.6
+ }
+ MobileComponents.Label {
+ id: txtSuit
+ text: dive.suit
+ Layout.fillWidth: true
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ }
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- text: "Weight:"
- opacity: 0.6
- }
- MobileComponents.Label {
- id: txtWeight
- text: weight
- Layout.fillWidth: true
- wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
- }
+ MobileComponents.Label {
+ Layout.alignment: Qt.AlignRight
+ text: "Weight:"
+ opacity: 0.6
+ }
+ MobileComponents.Label {
+ id: txtWeight
+ //text: dive.weights
+ Layout.fillWidth: true
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ }
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- text: "Buddy:"
- opacity: 0.6
- }
- MobileComponents.Label {
- id: txtBuddy
- text: buddy
- Layout.fillWidth: true
- wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
- }
+ MobileComponents.Label {
+ Layout.alignment: Qt.AlignRight
+ text: "Buddy:"
+ opacity: 0.6
+ }
+ MobileComponents.Label {
+ id: txtBuddy
+ text: dive.buddy
+ Layout.fillWidth: true
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ }
- MobileComponents.Label {
- Layout.alignment: Qt.AlignRight
- text: "Dive Master:"
- opacity: 0.6
- }
- MobileComponents.Label {
- id: txtDiveMaster
- text: divemaster
- Layout.fillWidth: true
- wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
- }
+ MobileComponents.Label {
+ Layout.alignment: Qt.AlignRight
+ text: "Dive Master:"
+ opacity: 0.6
+ }
+ MobileComponents.Label {
+ id: txtDiveMaster
+ text: dive.divemaster
+ Layout.fillWidth: true
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ }
- MobileComponents.Heading {
- Layout.fillWidth: true
- level: 3
- text: "Notes"
- Layout.columnSpan: 4
- }
+ MobileComponents.Heading {
+ Layout.fillWidth: true
+ level: 3
+ text: "Notes"
+ Layout.columnSpan: 4
+ }
- MobileComponents.Label {
- id: txtNotes
- text: notes
- focus: true
- Layout.columnSpan: 4
- Layout.fillWidth: true
- Layout.fillHeight: true
- //selectByMouse: true
- wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
- }
- Item {
- Layout.columnSpan: 4
- Layout.fillWidth: true
- Layout.minimumHeight: MobileComponents.Units.gridUnit * 3
- }
- Component.onCompleted: {
- qmlProfile.setMargin(MobileComponents.Units.smallSpacing)
+ MobileComponents.Label {
+ id: txtNotes
+ text: dive.notes
+ focus: true
+ Layout.columnSpan: 4
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ //selectByMouse: true
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ }
+ Item {
+ Layout.columnSpan: 4
+ Layout.fillWidth: true
+ Layout.minimumHeight: MobileComponents.Units.gridUnit * 3
+ }
+ Component.onCompleted: {
+ qmlProfile.setMargin(MobileComponents.Units.smallSpacing)
+ qmlProfile.diveId = model.dive.id;
+ qmlProfile.update();
+ }
}
}