Commit 1030cb265a46436a1903cdf66d88a7dd3351d3aa 'QML UI DiveDetailsView: shift dive number to right of top row' was reverted because it caused mysterious crashes for some testers, inferred to be related to sizing items in a gridLayout. This patch brings the dive number back up to the right of the top row, so the page width doesn't exceed the screen width. Using text wrapping should prevent the date text and dive number items from increasing in width, and hopefully avoids the mysterious crashes. Signed-off-by: Rick Walsh <rickmwalsh@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
243 lines
5.1 KiB
QML
243 lines
5.1 KiB
QML
import QtQuick 2.3
|
|
/*
|
|
import QtWebView 1.0
|
|
*/
|
|
import QtQuick.Controls 1.2
|
|
import QtQuick.Controls.Styles 1.2
|
|
import QtQuick.Dialogs 1.2
|
|
import QtQuick.Layouts 1.1
|
|
import org.subsurfacedivelog.mobile 1.0
|
|
import org.kde.plasma.mobilecomponents 0.2 as MobileComponents
|
|
|
|
Item {
|
|
id: detailsView
|
|
property int labelWidth: MobileComponents.Units.gridUnit * 10
|
|
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 {
|
|
top: parent.top
|
|
left: parent.left
|
|
right: parent.right
|
|
margins: MobileComponents.Units.gridUnit
|
|
}
|
|
columns: 4
|
|
rowSpacing: MobileComponents.Units.smallSpacing * 2
|
|
columnSpacing: MobileComponents.Units.smallSpacing
|
|
|
|
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 (dive.gps !== "")
|
|
manager.showMap(dive.gps)
|
|
}
|
|
}
|
|
}
|
|
/*
|
|
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 + " " + dive.time
|
|
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
|
Layout.columnSpan: 2
|
|
}
|
|
MobileComponents.Label {
|
|
id: numberText
|
|
text: "#" + dive.number
|
|
color: MobileComponents.Theme.textColor
|
|
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
|
}
|
|
|
|
MobileComponents.Label {
|
|
Layout.alignment: Qt.AlignRight
|
|
id: depthLabel
|
|
text: "Depth: "
|
|
opacity: 0.6
|
|
}
|
|
MobileComponents.Label {
|
|
text: dive.depth
|
|
}
|
|
MobileComponents.Label {
|
|
Layout.alignment: Qt.AlignRight
|
|
text: "Duration: "
|
|
opacity: 0.6
|
|
}
|
|
MobileComponents.Label {
|
|
text: dive.duration
|
|
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
|
Layout.fillWidth: true
|
|
}
|
|
|
|
QMLProfile {
|
|
id: qmlProfile
|
|
Layout.fillWidth: true
|
|
Layout.preferredHeight: Layout.minimumHeight
|
|
Layout.minimumHeight: width * 0.75
|
|
Layout.columnSpan: 4
|
|
clip: false
|
|
devicePixelRatio: MobileComponents.Units.devicePixelRatio
|
|
Rectangle {
|
|
color: "transparent"
|
|
opacity: 0.6
|
|
border.width: 1
|
|
border.color: MobileComponents.Theme.textColor;
|
|
anchors.fill: parent
|
|
}
|
|
}
|
|
|
|
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: 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: dive.waterTemp
|
|
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: dive.sumWeight
|
|
Layout.fillWidth: true
|
|
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
|
}
|
|
|
|
MobileComponents.Label {
|
|
text: "Cylinder:"
|
|
Layout.alignment: Qt.AlignRight
|
|
opacity: 0.6
|
|
}
|
|
MobileComponents.Label {
|
|
id: txtCylinder
|
|
text: dive.getCylinder
|
|
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.Label {
|
|
Layout.alignment: Qt.AlignRight
|
|
text: "Buddy:"
|
|
opacity: 0.6
|
|
}
|
|
MobileComponents.Label {
|
|
id: txtBuddy
|
|
text: dive.buddy
|
|
Layout.fillWidth: true
|
|
Layout.columnSpan: 3
|
|
wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
|
|
}
|
|
|
|
MobileComponents.Heading {
|
|
Layout.fillWidth: true
|
|
level: 3
|
|
text: "Notes"
|
|
Layout.columnSpan: 4
|
|
}
|
|
|
|
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();
|
|
}
|
|
}
|
|
}
|