[PATCH 1/2] QML Set width instead of minimumWidth equal to maximumWidth

Rick Walsh rickmwalsh at gmail.com
Tue May 3 14:30:55 PDT 2016


The QML manual advises against setting width property of gridLayout children
directly, and recommends setting preferred, min and/or max width instead,
letting QML do the work to determine the optimum width.  But we've found
letting QML determine gridLayout widths leads to infinite loops in too many
situations, so we're forcing a width.  It's better to force a width by setting
it directly, rather than setting minimum = maximum.

Signed-off-by: Rick Walsh <rickmwalsh at gmail.com>
---

Please test - I've not tested on a mobile device

 mobile-widgets/qml/DiveDetailsView.qml | 36 ++++++++++++----------------------
 1 file changed, 12 insertions(+), 24 deletions(-)

diff --git a/mobile-widgets/qml/DiveDetailsView.qml b/mobile-widgets/qml/DiveDetailsView.qml
index 557286f..5e708d4 100644
--- a/mobile-widgets/qml/DiveDetailsView.qml
+++ b/mobile-widgets/qml/DiveDetailsView.qml
@@ -144,8 +144,7 @@ Item {
 			text: "Suit:"
 			wrapMode: Text.WrapAtWordBoundaryOrAnywhere
 			opacity: 0.6
-			Layout.maximumWidth: detailsView.col1Width
-			Layout.minimumWidth: detailsView.col1Width
+			width: detailsView.col1Width
 			Layout.alignment: Qt.AlignRight
 		}
 		Kirigami.Label {
@@ -159,23 +158,20 @@ Item {
 			text: "Air Temp:"
 			wrapMode: Text.WrapAtWordBoundaryOrAnywhere
 			opacity: 0.6
-			Layout.maximumWidth: detailsView.col3Width
-			Layout.minimumWidth: detailsView.col3Width
+			width: detailsView.col3Width
 			Layout.alignment: Qt.AlignRight
 		}
 		Kirigami.Label {
 			id: txtAirTemp
 			text: dive.airTemp
 			wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
-			Layout.maximumWidth: detailsView.col4Width
-			Layout.minimumWidth: detailsView.col4Width
+			width: detailsView.col4Width
 		}
 
 		Kirigami.Label {
 			text: "Cylinder:"
 			opacity: 0.6
-			Layout.maximumWidth: detailsView.col1Width
-			Layout.minimumWidth: detailsView.col1Width
+			width: detailsView.col1Width
 			Layout.alignment: Qt.AlignRight
 		}
 		Kirigami.Label {
@@ -189,24 +185,21 @@ Item {
 			text: "Water Temp:"
 			wrapMode: Text.WrapAtWordBoundaryOrAnywhere
 			opacity: 0.6
-			Layout.maximumWidth: detailsView.col3Width
-			Layout.minimumWidth: detailsView.col3Width
+			width: detailsView.col3Width
 			Layout.alignment: Qt.AlignRight
 		}
 		Kirigami.Label {
 			id: txtWaterTemp
 			text: dive.waterTemp
 			wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
-			Layout.maximumWidth: detailsView.col4Width
-			Layout.minimumWidth: detailsView.col4Width
+			width: detailsView.col4Width
 		}
 
 		Kirigami.Label {
 			text: "Dive Master:"
 			wrapMode: Text.WrapAtWordBoundaryOrAnywhere
 			opacity: 0.6
-			Layout.maximumWidth: detailsView.col1Width
-			Layout.minimumWidth: detailsView.col1Width
+			width: detailsView.col1Width
 			Layout.alignment: Qt.AlignRight
 		}
 		Kirigami.Label {
@@ -219,16 +212,14 @@ Item {
 		Kirigami.Label {
 			text: "Weight:"
 			opacity: 0.6
-			Layout.maximumWidth: detailsView.col3Width
-			Layout.minimumWidth: detailsView.col3Width
+			width: detailsView.col3Width
 			Layout.alignment: Qt.AlignRight
 		}
 		Kirigami.Label {
 			id: txtWeight
 			text: dive.sumWeight
 			wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
-			Layout.maximumWidth: detailsView.col4Width
-			Layout.minimumWidth: detailsView.col4Width
+			width: detailsView.col4Width
 		}
 	}
 	// clearly, Qt 5.6.0 is buggy as having this as one GridLayout
@@ -248,8 +239,7 @@ Item {
 		Kirigami.Label {
 			text: "Buddy:"
 			opacity: 0.6
-			Layout.maximumWidth: detailsView.col1Width
-			Layout.minimumWidth: detailsView.col1Width
+			width: detailsView.col1Width
 			Layout.alignment: Qt.AlignRight
 		}
 		Kirigami.Label {
@@ -262,16 +252,14 @@ Item {
 		Kirigami.Label {
 			text: "SAC:"
 			opacity: 0.6
-			Layout.maximumWidth: detailsView.col3Width
-			Layout.minimumWidth: detailsView.col3Width
+			width: detailsView.col3Width
 			Layout.alignment: Qt.AlignRight
 		}
 		Kirigami.Label {
 			id: txtSAC
 			text: dive.sac
 			wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
-			Layout.maximumWidth: detailsView.col4Width
-			Layout.minimumWidth: detailsView.col4Width
+			width: detailsView.col4Width
 		}
 
 		Kirigami.Heading {
-- 
2.5.5



More information about the subsurface mailing list