aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-25 13:05:48 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-25 12:13:31 +0000
commit06d4931ede0a1b4422a52014b3bed7a4036d6bcc (patch)
tree05ea5d744898928460f6781754de8f0b5c07ce63
parentd665c0faf4ac52a8aeed48ee8497b5d61becedc5 (diff)
Containers: use the implicit size of the contentItem
The result of: Frame { ColumnLayout { RadioButton { text: "First" } RadioButton { text: "Second" } RadioButton { text: "Third" } } } is now identical to: Frame { contentItem: ColumnLayout { RadioButton { text: "First" } RadioButton { text: "Second" } RadioButton { text: "Third" } } } Change-Id: I823b2259dabb66db0dddef41ea396f7ac1000a82 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
-rw-r--r--src/imports/controls/Frame.qml4
-rw-r--r--src/imports/controls/GroupBox.qml4
-rw-r--r--src/imports/controls/Pane.qml4
-rw-r--r--src/imports/controls/Popup.qml4
-rw-r--r--src/imports/controls/ToolBar.qml4
-rw-r--r--src/imports/controls/material/Frame.qml4
-rw-r--r--src/imports/controls/material/GroupBox.qml4
-rw-r--r--src/imports/controls/material/Pane.qml4
-rw-r--r--src/imports/controls/material/Popup.qml4
-rw-r--r--src/imports/controls/material/ToolBar.qml4
-rw-r--r--src/imports/controls/universal/Frame.qml4
-rw-r--r--src/imports/controls/universal/GroupBox.qml4
-rw-r--r--src/imports/controls/universal/Pane.qml4
-rw-r--r--src/imports/controls/universal/Popup.qml4
-rw-r--r--src/imports/controls/universal/ToolBar.qml4
-rw-r--r--tests/auto/controls/data/tst_frame.qml26
-rw-r--r--tests/auto/controls/data/tst_groupbox.qml22
-rw-r--r--tests/auto/controls/data/tst_pane.qml26
-rw-r--r--tests/auto/controls/data/tst_toolbar.qml34
19 files changed, 128 insertions, 40 deletions
diff --git a/src/imports/controls/Frame.qml b/src/imports/controls/Frame.qml
index 18592b1c..3c9326e1 100644
--- a/src/imports/controls/Frame.qml
+++ b/src/imports/controls/Frame.qml
@@ -43,8 +43,8 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 6
diff --git a/src/imports/controls/GroupBox.qml b/src/imports/controls/GroupBox.qml
index 08866606..bc1801c2 100644
--- a/src/imports/controls/GroupBox.qml
+++ b/src/imports/controls/GroupBox.qml
@@ -45,8 +45,8 @@ T.GroupBox {
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
spacing: 6
padding: 6
diff --git a/src/imports/controls/Pane.qml b/src/imports/controls/Pane.qml
index 7bd72493..fbbe0c38 100644
--- a/src/imports/controls/Pane.qml
+++ b/src/imports/controls/Pane.qml
@@ -43,8 +43,8 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 6
diff --git a/src/imports/controls/Popup.qml b/src/imports/controls/Popup.qml
index bc7c610c..60ea326a 100644
--- a/src/imports/controls/Popup.qml
+++ b/src/imports/controls/Popup.qml
@@ -43,8 +43,8 @@ T.Popup {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 6
diff --git a/src/imports/controls/ToolBar.qml b/src/imports/controls/ToolBar.qml
index fe5dbf3f..7e0f80a3 100644
--- a/src/imports/controls/ToolBar.qml
+++ b/src/imports/controls/ToolBar.qml
@@ -43,8 +43,8 @@ T.ToolBar {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
//! [contentItem]
contentItem: Item { }
diff --git a/src/imports/controls/material/Frame.qml b/src/imports/controls/material/Frame.qml
index 3b4c8bd5..9336850d 100644
--- a/src/imports/controls/material/Frame.qml
+++ b/src/imports/controls/material/Frame.qml
@@ -44,8 +44,8 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 6
diff --git a/src/imports/controls/material/GroupBox.qml b/src/imports/controls/material/GroupBox.qml
index cbdc585e..3461cb6e 100644
--- a/src/imports/controls/material/GroupBox.qml
+++ b/src/imports/controls/material/GroupBox.qml
@@ -46,8 +46,8 @@ T.GroupBox {
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
spacing: 6
padding: 6
diff --git a/src/imports/controls/material/Pane.qml b/src/imports/controls/material/Pane.qml
index abb94808..5f48aaf8 100644
--- a/src/imports/controls/material/Pane.qml
+++ b/src/imports/controls/material/Pane.qml
@@ -44,8 +44,8 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 6
diff --git a/src/imports/controls/material/Popup.qml b/src/imports/controls/material/Popup.qml
index b1c73b0c..649c5837 100644
--- a/src/imports/controls/material/Popup.qml
+++ b/src/imports/controls/material/Popup.qml
@@ -45,8 +45,8 @@ T.Popup {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 6
diff --git a/src/imports/controls/material/ToolBar.qml b/src/imports/controls/material/ToolBar.qml
index ad34e1a0..57a70564 100644
--- a/src/imports/controls/material/ToolBar.qml
+++ b/src/imports/controls/material/ToolBar.qml
@@ -44,8 +44,8 @@ T.ToolBar {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
//! [contentItem]
contentItem: Item { }
diff --git a/src/imports/controls/universal/Frame.qml b/src/imports/controls/universal/Frame.qml
index 47e9e389..9427dc2f 100644
--- a/src/imports/controls/universal/Frame.qml
+++ b/src/imports/controls/universal/Frame.qml
@@ -44,8 +44,8 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 12
diff --git a/src/imports/controls/universal/GroupBox.qml b/src/imports/controls/universal/GroupBox.qml
index 524203db..9b21a17f 100644
--- a/src/imports/controls/universal/GroupBox.qml
+++ b/src/imports/controls/universal/GroupBox.qml
@@ -46,8 +46,8 @@ T.GroupBox {
contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
spacing: 12
padding: 12
diff --git a/src/imports/controls/universal/Pane.qml b/src/imports/controls/universal/Pane.qml
index 58c5214a..c0f87075 100644
--- a/src/imports/controls/universal/Pane.qml
+++ b/src/imports/controls/universal/Pane.qml
@@ -44,8 +44,8 @@ T.Frame {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 12
diff --git a/src/imports/controls/universal/Popup.qml b/src/imports/controls/universal/Popup.qml
index 16ed5451..d26dd02d 100644
--- a/src/imports/controls/universal/Popup.qml
+++ b/src/imports/controls/universal/Popup.qml
@@ -44,8 +44,8 @@ T.Popup {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
padding: 12
diff --git a/src/imports/controls/universal/ToolBar.qml b/src/imports/controls/universal/ToolBar.qml
index e83fcc1d..cefb9dc9 100644
--- a/src/imports/controls/universal/ToolBar.qml
+++ b/src/imports/controls/universal/ToolBar.qml
@@ -44,8 +44,8 @@ T.ToolBar {
implicitWidth: Math.max(background ? background.implicitWidth : 0, contentWidth + leftPadding + rightPadding)
implicitHeight: Math.max(background ? background.implicitHeight : 0, contentHeight + topPadding + bottomPadding)
- contentWidth: contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0
- contentHeight: contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0
+ contentWidth: contentItem.implicitWidth || (contentChildren.length === 1 ? contentChildren[0].implicitWidth : 0)
+ contentHeight: contentItem.implicitHeight || (contentChildren.length === 1 ? contentChildren[0].implicitHeight : 0)
//! [contentItem]
contentItem: Item { }
diff --git a/tests/auto/controls/data/tst_frame.qml b/tests/auto/controls/data/tst_frame.qml
index feb6cf11..d50a0dfc 100644
--- a/tests/auto/controls/data/tst_frame.qml
+++ b/tests/auto/controls/data/tst_frame.qml
@@ -57,7 +57,7 @@ TestCase {
Component {
id: oneChildFrame
- GroupBox {
+ Frame {
Item {
implicitWidth: 100
implicitHeight: 30
@@ -67,7 +67,7 @@ TestCase {
Component {
id: twoChildrenFrame
- GroupBox {
+ Frame {
Item {
implicitWidth: 100
implicitHeight: 30
@@ -79,6 +79,16 @@ TestCase {
}
}
+ Component {
+ id: contentFrame
+ Frame {
+ contentItem: Item {
+ implicitWidth: 100
+ implicitHeight: 30
+ }
+ }
+ }
+
function test_empty() {
var control = frame.createObject(testCase)
verify(control)
@@ -113,4 +123,16 @@ TestCase {
control.destroy()
}
+
+ function test_contentItem() {
+ var control = contentFrame.createObject(testCase)
+ verify(control)
+
+ compare(control.contentWidth, 100)
+ compare(control.contentHeight, 30)
+ verify(control.implicitWidth > 100)
+ verify(control.implicitHeight > 30)
+
+ control.destroy()
+ }
}
diff --git a/tests/auto/controls/data/tst_groupbox.qml b/tests/auto/controls/data/tst_groupbox.qml
index 55568923..0f0e33fb 100644
--- a/tests/auto/controls/data/tst_groupbox.qml
+++ b/tests/auto/controls/data/tst_groupbox.qml
@@ -79,6 +79,16 @@ TestCase {
}
}
+ Component {
+ id: contentBox
+ GroupBox {
+ contentItem: Item {
+ implicitWidth: 100
+ implicitHeight: 30
+ }
+ }
+ }
+
function test_empty() {
var control = groupBox.createObject(testCase)
verify(control)
@@ -113,4 +123,16 @@ TestCase {
control.destroy()
}
+
+ function test_contentItem() {
+ var control = contentBox.createObject(testCase)
+ verify(control)
+
+ compare(control.contentWidth, 100)
+ compare(control.contentHeight, 30)
+ verify(control.implicitWidth > 100)
+ verify(control.implicitHeight > 30)
+
+ control.destroy()
+ }
}
diff --git a/tests/auto/controls/data/tst_pane.qml b/tests/auto/controls/data/tst_pane.qml
index 18fd1cf0..1fdec049 100644
--- a/tests/auto/controls/data/tst_pane.qml
+++ b/tests/auto/controls/data/tst_pane.qml
@@ -57,7 +57,7 @@ TestCase {
Component {
id: oneChildPane
- GroupBox {
+ Pane {
Item {
implicitWidth: 100
implicitHeight: 30
@@ -67,7 +67,7 @@ TestCase {
Component {
id: twoChildrenPane
- GroupBox {
+ Pane {
Item {
implicitWidth: 100
implicitHeight: 30
@@ -80,6 +80,16 @@ TestCase {
}
Component {
+ id: contentPane
+ Pane {
+ contentItem: Item {
+ implicitWidth: 100
+ implicitHeight: 30
+ }
+ }
+ }
+
+ Component {
id: pressPane
MouseArea {
width: 200
@@ -127,6 +137,18 @@ TestCase {
control.destroy()
}
+ function test_contentItem() {
+ var control = contentPane.createObject(testCase)
+ verify(control)
+
+ compare(control.contentWidth, 100)
+ compare(control.contentHeight, 30)
+ verify(control.implicitWidth > 100)
+ verify(control.implicitHeight > 30)
+
+ control.destroy()
+ }
+
function test_press() {
var control = pressPane.createObject(testCase)
verify(control)
diff --git a/tests/auto/controls/data/tst_toolbar.qml b/tests/auto/controls/data/tst_toolbar.qml
index ac116a86..128aa403 100644
--- a/tests/auto/controls/data/tst_toolbar.qml
+++ b/tests/auto/controls/data/tst_toolbar.qml
@@ -57,7 +57,7 @@ TestCase {
Component {
id: oneChildBar
- GroupBox {
+ ToolBar {
Item {
implicitWidth: 100
implicitHeight: 30
@@ -67,7 +67,7 @@ TestCase {
Component {
id: twoChildrenBar
- GroupBox {
+ ToolBar {
Item {
implicitWidth: 100
implicitHeight: 30
@@ -79,6 +79,16 @@ TestCase {
}
}
+ Component {
+ id: contentBar
+ ToolBar {
+ contentItem: Item {
+ implicitWidth: 100
+ implicitHeight: 30
+ }
+ }
+ }
+
function test_empty() {
var control = toolBar.createObject(testCase)
verify(control)
@@ -96,8 +106,8 @@ TestCase {
compare(control.contentWidth, 100)
compare(control.contentHeight, 30)
- verify(control.implicitWidth > 100)
- verify(control.implicitHeight > 30)
+ verify(control.implicitWidth >= 100)
+ verify(control.implicitHeight >= 30)
control.destroy()
}
@@ -108,8 +118,20 @@ TestCase {
compare(control.contentWidth, 0)
compare(control.contentHeight, 0)
- verify(control.implicitWidth > 0)
- verify(control.implicitHeight > 0)
+ verify(control.implicitWidth >= 0)
+ verify(control.implicitHeight >= 0)
+
+ control.destroy()
+ }
+
+ function test_contentItem() {
+ var control = contentBar.createObject(testCase)
+ verify(control)
+
+ compare(control.contentWidth, 100)
+ compare(control.contentHeight, 30)
+ verify(control.implicitWidth >= 100)
+ verify(control.implicitHeight >= 30)
control.destroy()
}