aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items
diff options
context:
space:
mode:
authorRichard Moe Gustavsen <richard.gustavsen@qt.io>2019-04-01 13:10:35 +0200
committerRichard Moe Gustavsen <richard.gustavsen@qt.io>2019-05-02 13:04:47 +0000
commit1db6782d6081fa54e7c951c21ac7c8953d2c9bfb (patch)
treef8f83fa9b0aaa8503c383c91439db279851b8094 /src/quick/items
parent325e6305b418ffe1dfb9a36c2516c6a8a3de5733 (diff)
QQuickTableView: optimize forceLayout() to start updating from the root
Change-Id: Ib2f195780415836ebb03c151a6586fd7b0fb77b8 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Diffstat (limited to 'src/quick/items')
-rw-r--r--src/quick/items/qquicktableview.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/quick/items/qquicktableview.cpp b/src/quick/items/qquicktableview.cpp
index 8f5130fc17..9e795f3c8c 100644
--- a/src/quick/items/qquicktableview.cpp
+++ b/src/quick/items/qquicktableview.cpp
@@ -770,13 +770,12 @@ void QQuickTableViewPrivate::forceLayout()
scheduleRebuildTable(rebuildOptions);
- if (polishing) {
+ auto rootView = rootSyncView();
+ const bool updated = rootView->d_func()->updateTableRecursive();
+ if (!updated) {
qWarning() << "TableView::forceLayout(): Cannot do an immediate re-layout during an ongoing layout!";
- q_func()->polish();
- return;
+ rootView->polish();
}
-
- updatePolish();
}
void QQuickTableViewPrivate::syncLoadedTableFromLoadRequest()