diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp index 2a19a4a9e13..012fb17ee95 100644 --- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp +++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp @@ -229,6 +229,7 @@ private slots: void testModelMovingColumns(); void testModelMovingRows(); + void setDefaultSectionSizeRespectsColumnWidth(); protected: void setupTestData(bool use_reset_model = false); void additionalInit(); @@ -3685,5 +3686,32 @@ void tst_QHeaderView::testModelMovingRows() QVERIFY(!hv.isSectionHidden(3)); } +void tst_QHeaderView::setDefaultSectionSizeRespectsColumnWidth() +{ + QTreeWidget tree; + tree.setHeaderItem(new QTreeWidgetItem({"Col 0", "Col 1", "Col 2"})); + tree.header()->setStretchLastSection(false); + + int columnWidths[3] = {}; + for (int c = tree.columnCount() - 1; c >= 0; --c) { + columnWidths[c] = tree.columnWidth(c) * 2; + tree.setColumnWidth(c, columnWidths[c]); + } + tree.show(); + QVERIFY(QTest::qWaitForWindowExposed(&tree)); + + for (int c = 0; c < tree.columnCount(); ++c) + QTRY_COMPARE(tree.columnWidth(c), columnWidths[c]); + + // trigger a style change event + tree.setStyleSheet("QTreeView { qproperty-headerHidden: true }"); + QTRY_COMPARE(tree.isHeaderHidden(), true); + tree.setStyleSheet("QTreeView { qproperty-headerHidden: false }"); + QTRY_COMPARE(tree.isHeaderHidden(), false); + + for (int c = 0; c < tree.columnCount(); ++c) + QTRY_COMPARE(tree.columnWidth(c), columnWidths[c]); +} + QTEST_MAIN(tst_QHeaderView) #include "tst_qheaderview.moc"