diff options
author | Paul Olav Tvete <paul.tvete@digia.com> | 2013-08-27 14:47:55 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2013-09-04 15:09:47 +0200 |
commit | b855e578044e49b588b32085968c63a910b9daae (patch) | |
tree | 995e85de4c4c740c28e4811420f8f9b0b1f9159e /tests/auto/widgets/kernel/qboxlayout | |
parent | 8b7a8efe66afecde87b45adf1c6e850f63670f86 (diff) |
Fix layouts with expanding items with maximum size
Layout items with a Preferred size policy would be treated as fixed
size if they were in the same layout as an Expanding item (or one with
a stretch factor).
This occurred e.g. if a layout was configured similar to this:
1. One item with ExpandFlag/stretch but with a maximumSize set,
e.g. (100x100).
2. Another item with 'just' GrowFlag, and a maximum size bigger than
its size hint.
If the above layout was resized to e.g. (200x50) it would cause the
expanding item to correctly get the size (100x50), but the 'growing'
item would not stretch beyond its size hint.
Instead, it would distribute space around both items, behaving as if
the 'growing' item was fixed'.
The expected behavior is to continue to grow the 'growing' item after
the expanding item has reached its size limit.
Task-number: QTBUG-33104
Change-Id: Ie410653d905f7ca4d702528dafb269f30a0e4f61
Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Reviewed-by: Jan Arve Sæther <jan-arve.saether@digia.com>
Diffstat (limited to 'tests/auto/widgets/kernel/qboxlayout')
-rw-r--r-- | tests/auto/widgets/kernel/qboxlayout/tst_qboxlayout.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/widgets/kernel/qboxlayout/tst_qboxlayout.cpp b/tests/auto/widgets/kernel/qboxlayout/tst_qboxlayout.cpp index 7bbbff5736..bdc32ba197 100644 --- a/tests/auto/widgets/kernel/qboxlayout/tst_qboxlayout.cpp +++ b/tests/auto/widgets/kernel/qboxlayout/tst_qboxlayout.cpp @@ -451,6 +451,33 @@ void tst_QBoxLayout::testLayoutEngine_data() << (PosList() << 100 << 300 << 300) << (SizeList() << 100 << 0 << 100); + QTest::newRow("QTBUG-33104") + << (DescrList() << Descr(11, 75, 75, true) << Descr(75, 75)) + << 200 + << 0 + << (PosList() << 0 << 75) + << (SizeList() << 75 << 125); + + QTest::newRow("Expanding with maximumSize") + << (DescrList() << Descr(11, 75, 100, true) << Descr(75, 75)) + << 200 + << 0 + << (PosList() << 0 << 100) + << (SizeList() << 100 << 100); + + QTest::newRow("Stretch with maximumSize") + << (DescrList() << Descr(11, 75, 100, false, 1) << Descr(75, 75)) + << 200 + << 0 + << (PosList() << 0 << 100) + << (SizeList() << 100 << 100); + + QTest::newRow("Stretch with maximumSize last") + << (DescrList() << Descr(75, 75) << Descr(11, 75, 100, false, 1)) + << 200 + << 0 + << (PosList() << 0 << 100) + << (SizeList() << 100 << 100); } void tst_QBoxLayout::testLayoutEngine() |