diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-01-25 13:05:48 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-01-25 12:13:31 +0000 |
commit | 06d4931ede0a1b4422a52014b3bed7a4036d6bcc (patch) | |
tree | 05ea5d744898928460f6781754de8f0b5c07ce63 | |
parent | d665c0faf4ac52a8aeed48ee8497b5d61becedc5 (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.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/GroupBox.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/Pane.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/Popup.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/ToolBar.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/material/Frame.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/material/GroupBox.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/material/Pane.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/material/Popup.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/material/ToolBar.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/universal/Frame.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/universal/GroupBox.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/universal/Pane.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/universal/Popup.qml | 4 | ||||
-rw-r--r-- | src/imports/controls/universal/ToolBar.qml | 4 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_frame.qml | 26 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_groupbox.qml | 22 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_pane.qml | 26 | ||||
-rw-r--r-- | tests/auto/controls/data/tst_toolbar.qml | 34 |
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() } |