diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp index 7b393463a61..1a0b417034d 100644 --- a/src/widgets/itemviews/qheaderview.cpp +++ b/src/widgets/itemviews/qheaderview.cpp @@ -3465,6 +3465,7 @@ void QHeaderViewPrivate::clear() sectionSelected.clear(); hiddenSectionSize.clear(); sectionItems.clear(); + lastSectionLogicalIdx = -1; invalidateCachedSizeHint(); } } diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp index 47ec93ce169..ea065a4db4d 100644 --- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp +++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp @@ -3014,6 +3014,11 @@ void tst_QHeaderView::stretchAndRestoreLastSection() header.swapSections(1, 11); QCOMPARE(header.sectionSize(1), someOtherSectionSize); + // Clear and re-add. This triggers a different code path than seColumnCount(0) + m.clear(); + m.setColumnCount(3); + QVERIFY(header.sectionSize(2) >= biggerSizeThanAnySection); + // Test import/export of the original (not stretched) sectionSize. m.setColumnCount(0); m.setColumnCount(10);