[PATCH] QML UI: Another attempt to shift dive number to top row

Rick Walsh rickmwalsh at gmail.com
Mon Feb 1 02:29:50 PST 2016


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 at gmail.com>
---

I could not reproduce Willem and David's crashes with build 758, so working out how to avoid them is difficult. Please test and try to make it crash!

 qt-mobile/qml/DiveDetailsView.qml | 28 ++++++++++++----------------
 1 file changed, 12 insertions(+), 16 deletions(-)

diff --git a/qt-mobile/qml/DiveDetailsView.qml b/qt-mobile/qml/DiveDetailsView.qml
index 97d9108..e3fe594 100644
--- a/qt-mobile/qml/DiveDetailsView.qml
+++ b/qt-mobile/qml/DiveDetailsView.qml
@@ -72,8 +72,14 @@ Item {
 		}
 		MobileComponents.Label {
 			text: dive.date + " " + dive.time
-			Layout.minimumWidth: Math.max(MobileComponents.Units.gridUnit * 4, paintedWidth) // helps vertical alignment throughout listview
-			Layout.columnSpan: 3
+			wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+			Layout.columnSpan: 2
+		}
+		MobileComponents.Label {
+			id: numberText
+			text: "#" + dive.number
+			color: MobileComponents.Theme.textColor
+			wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
 		}
 
 		MobileComponents.Label {
@@ -84,26 +90,16 @@ Item {
 		}
 		MobileComponents.Label {
 			text: dive.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: dive.duration
-			}
-			Item {
-				Layout.fillWidth: true
-				height: parent.height
-			}
-			MobileComponents.Label {
-				id: numberText
-				text: "#" + dive.number
-				color: MobileComponents.Theme.textColor
-			}
+		MobileComponents.Label {
+			text: dive.duration
+			wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+			Layout.fillWidth: true
 		}
 
 		QMLProfile {
-- 
2.5.0



More information about the subsurface mailing list