summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp
diff options
context:
space:
mode:
authorJan Arve Saether <jan-arve.saether@theqtcompany.com>2014-10-20 15:40:18 +0200
committerJan Arve Sæther <jan-arve.saether@theqtcompany.com>2014-10-23 07:17:50 +0200
commitbf200fc948d89e1a735a8bcca879654028f944d2 (patch)
tree2696c1a5314d722100a28f1b44ff54aa5f1e803e /tests/auto/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp
parente5c1572e7eafbce26ca5835c7fe1682bfb69d92b (diff)
Adjust the layout if a QGraphicsWidget is explicitly hidden
Since layout items can now be hidden, this also makes sure we respect the QSizePolicy::retainSizeWhenHidden Task-number: QTBUG-20132 Change-Id: Iab59fc9b61d4ca1bb2208c479a027da6eb0283a9 Reviewed-by: Paul Olav Tvete <paul.tvete@digia.com>
Diffstat (limited to 'tests/auto/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp')
-rw-r--r--tests/auto/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/tests/auto/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp b/tests/auto/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp
index d35667f215..107e3eb48a 100644
--- a/tests/auto/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp
+++ b/tests/auto/widgets/graphicsview/qgraphicslayout/tst_qgraphicslayout.cpp
@@ -50,6 +50,7 @@ private slots:
void compressLayoutRequest();
void automaticReparenting();
void verifyActivate();
+ void sizeHintOfHiddenLayout();
void invalidate();
void constructors();
void alternativeLayoutItems();
@@ -279,6 +280,30 @@ void tst_QGraphicsLayout::verifyActivate()
}
+
+void tst_QGraphicsLayout::sizeHintOfHiddenLayout()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+
+ QGraphicsWidget *window = new QGraphicsWidget(0, Qt::Window);
+ scene.addItem(window);
+ TestLayout *lout = new TestLayout(window);
+ lout->setContentsMargins(1,2,2,1);
+ QGraphicsWidget *w = new QGraphicsWidget;
+ w->setPreferredSize(20, 20);
+ w->setMaximumSize(50, 50);
+ lout->addItem(w);
+ window->setLayout(lout);
+
+ for (int pass = 0; pass < 3; ++pass) {
+ QCOMPARE(lout->sizeHint(Qt::MinimumSize), QSizeF(3,3));
+ QCOMPARE(lout->sizeHint(Qt::PreferredSize), QSizeF(23,23));
+ QCOMPARE(lout->sizeHint(Qt::MaximumSize), QSizeF(53,53));
+ window->setVisible(pass % 2);
+ }
+}
+
static void clearAllCounters(TestGraphicsWidget *widget)
{
if (!widget)