From c15a069830baf87f57c84e86326cf86ba9a39713 Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Wed, 12 Jun 2019 20:49:06 +0200 Subject: QTreeView: make sure to not ask the old model during setModel Within QTreeView::setModel() the header might emit columnCountChanged which then tries to update the geometries based on the old model which is wrong. Fix it by setting geometryRecursionBlock to true so QTreeView::updateGeometries() will not ask the old model for it's data. Fixes: QTBUG-75982 Change-Id: Ia0dd36cd7c6c5347fbc285deac43da6941accbe7 Reviewed-by: Richard Moe Gustavsen --- src/widgets/itemviews/qtreeview.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/widgets/itemviews/qtreeview.cpp') diff --git a/src/widgets/itemviews/qtreeview.cpp b/src/widgets/itemviews/qtreeview.cpp index 413cc2a9cd..034c1f4b4f 100644 --- a/src/widgets/itemviews/qtreeview.cpp +++ b/src/widgets/itemviews/qtreeview.cpp @@ -233,7 +233,9 @@ void QTreeView::setModel(QAbstractItemModel *model) d->viewItems.clear(); d->expandedIndexes.clear(); d->hiddenIndexes.clear(); + d->geometryRecursionBlock = true; // do not update geometries due to signals from the headers d->header->setModel(model); + d->geometryRecursionBlock = false; QAbstractItemView::setModel(model); // QAbstractItemView connects to a private slot -- cgit v1.2.3