aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2019-09-12 08:01:21 +0200
committerLiang Qi <liang.qi@qt.io>2019-09-12 08:01:21 +0200
commitc80eb38354854f2ccc7ea070a9857409acc36792 (patch)
tree806cb68b337ac7c8ab8f9a48538e6e0211f57ed8 /tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
parentd38bac596946c3dd9cce3c0b4127509421dc917d (diff)
parentf19ec4561b4975d68290593b599d3c38d0f9f6d3 (diff)
Merge remote-tracking branch 'origin/5.13' into 5.14
Conflicts: src/qml/jsruntime/qv4engine.cpp src/quick/handlers/qquicktaphandler.cpp src/quick/items/qquicktableview.cpp Done-With: Richard Moe Gustavsen <richard.gustavsen@qt.io> Done-With: Ulf Hermann <ulf.hermann@qt.io> Done-With: Shawn Rutledge <shawn.rutledge@qt.io> Change-Id: If9558a33f01693ce96420c094e0b57dfff0626cd
Diffstat (limited to 'tests/auto/quick/qquicktableview/tst_qquicktableview.cpp')
-rw-r--r--tests/auto/quick/qquicktableview/tst_qquicktableview.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp b/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
index 19967efcd9..889175a228 100644
--- a/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
+++ b/tests/auto/quick/qquicktableview/tst_qquicktableview.cpp
@@ -119,6 +119,7 @@ private slots:
void checkRowHeightProviderNegativeReturnValue();
void checkRowHeightProviderNotCallable();
void checkForceLayoutFunction();
+ void checkForceLayoutEndUpDoingALayout();
void checkContentWidthAndHeight();
void checkPageFlicking();
void checkExplicitContentWidthAndHeight();
@@ -560,6 +561,32 @@ void tst_QQuickTableView::checkForceLayoutFunction()
QCOMPARE(fxItem->item->width(), newColumnWidth);
}
+void tst_QQuickTableView::checkForceLayoutEndUpDoingALayout()
+{
+ // QTBUG-77074
+ // Check that we change the implicit size of the delegate after
+ // the initial loading, and at the same time hide some rows or
+ // columns, and then do a forceLayout(), we end up with a
+ // complete relayout that respects the new implicit size.
+ LOAD_TABLEVIEW("tweakimplicitsize.qml");
+
+ auto model = TestModelAsVariant(10, 10);
+
+ tableView->setModel(model);
+
+ WAIT_UNTIL_POLISHED;
+
+ const qreal newDelegateSize = 20;
+ view->rootObject()->setProperty("delegateSize", newDelegateSize);
+ // Hide a row, just to force the following relayout to
+ // do a complete reload (and not just a relayout)
+ view->rootObject()->setProperty("hideRow", 1);
+ tableView->forceLayout();
+
+ for (auto fxItem : tableViewPrivate->loadedItems)
+ QCOMPARE(fxItem->item->height(), newDelegateSize);
+}
+
void tst_QQuickTableView::checkContentWidthAndHeight()
{
// Check that contentWidth/Height reports the correct size of the