summaryrefslogtreecommitdiff
blob: e5973abac16f7da15a8909944cc1ed471e610899 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
From 86f988434cd657e77cc9429e78f7290ce6b5713d Mon Sep 17 00:00:00 2001
From: Marco Martin <notmart@gmail.com>
Date: Wed, 12 Feb 2020 12:43:12 +0100
Subject: properly sync size hints with state machine

define implicitWidth and width bindings in the states, in
order to not break bindings
BUG:417351
---
 src/controls/FormLayout.qml | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/controls/FormLayout.qml b/src/controls/FormLayout.qml
index ff49dbd..61fbaf9 100644
--- a/src/controls/FormLayout.qml
+++ b/src/controls/FormLayout.qml
@@ -120,6 +120,11 @@ Item {
                         horizontalCenter: root.horizontalCenter
                     }
                 }
+                PropertyChanges {
+                    target: lay
+                    implicitWidth: undefined
+                    width: undefined
+                }
             },
             State {
                 when: !root.wideMode
@@ -131,10 +136,15 @@ Item {
                         horizontalCenter: undefined
                     }
                 }
+                PropertyChanges {
+                    target: lay
+                    implicitWidth: root.width
+                    width: Math.min(implicitWidth, parent.width)
+                }
+                
             }
         ]
 
-        implicitWidth: root.wideMode ? undefined : root.width
         width: Math.min(implicitWidth, parent.width)
         Timer {
             id: hintCompression
@@ -146,6 +156,7 @@ Item {
         }
         onImplicitWidthChanged: hintCompression.restart();
         //This invisible row is used to sync alignment between multiple layouts
+
         Item {
             Layout.preferredWidth: {
                 var hint = 1;
-- 
cgit v1.1