summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp')
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
index 7147bb8cce..1513abf0b1 100644
--- a/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
@@ -103,6 +103,7 @@ private slots:
void testOffByOneInLargerLayout();
void testDefaultAlignment();
void combineSizePolicies();
+ void hiddenItems();
// Task specific tests
void task218400_insertStretchCrash();
@@ -1721,6 +1722,41 @@ void tst_QGraphicsLinearLayout::combineSizePolicies()
QCOMPARE(layout->maximumHeight(), qreal(200));
}
+void tst_QGraphicsLinearLayout::hiddenItems()
+{
+ QGraphicsWidget *widget = new QGraphicsWidget;
+ QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Horizontal, widget);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(2);
+
+ RectWidget *w1 = new RectWidget;
+ w1->setPreferredSize(QSizeF(20, 20));
+ layout->addItem(w1);
+
+ RectWidget *w2 = new RectWidget;
+ w2->setPreferredSize(QSizeF(20, 20));
+ layout->addItem(w2);
+
+ RectWidget *w3 = new RectWidget;
+ w3->setPreferredSize(QSizeF(20, 20));
+ layout->addItem(w3);
+
+ QCOMPARE(layout->preferredWidth(), qreal(64));
+ w2->hide();
+ QCOMPARE(layout->preferredWidth(), qreal(42));
+ w2->show();
+ QCOMPARE(layout->preferredWidth(), qreal(64));
+ QSizePolicy sp = w2->sizePolicy();
+ sp.setRetainSizeWhenHidden(true);
+ w2->setSizePolicy(sp);
+ QCOMPARE(layout->preferredWidth(), qreal(64));
+ w2->hide();
+ QCOMPARE(layout->preferredWidth(), qreal(64));
+ sp.setRetainSizeWhenHidden(false);
+ w2->setSizePolicy(sp);
+ QCOMPARE(layout->preferredWidth(), qreal(42));
+}
+
QTEST_MAIN(tst_QGraphicsLinearLayout)
#include "tst_qgraphicslinearlayout.moc"