diff options
author | Thorbjørn Lund Martsum <tmartsum@gmail.com> | 2012-01-18 15:34:06 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-01-30 06:29:42 +0100 |
commit | 125016ad241125176e5bebab94eebcf50fac20bc (patch) | |
tree | 9d0b37b2462fcf544acb65ef1679d84a8309acbc /tests/auto/widgets/itemviews | |
parent | 5635823e17db3395d9b0fa8cfcc72f82fea583f4 (diff) |
QHeaderView - length returns wrong value fix
setSectionHidden called with (logindex, true) will
sometimes prevent a (correct) call to
resizeSection(logicalIndex, 0).
This seems a bit odd - however it does execute
d->doDelayedResizeSections().
Therefore the section is going to be hidden later.
However it is a problem that the length meanwhile is wrong.
(That is a value that is not the sum of the sections)
This is fixed by execute updates before returning the
length.
Task-number: QTBUG-14242
Change-Id: Ia1d2f6db3213792b250a6a37942b56554261cd3a
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Diffstat (limited to 'tests/auto/widgets/itemviews')
-rw-r--r-- | tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp index 8772177cd9..62da3337e1 100644 --- a/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp +++ b/tests/auto/widgets/itemviews/qheaderview/tst_qheaderview.cpp @@ -181,6 +181,7 @@ private slots: void QTBUG7833_sectionClicked(); void QTBUG8650_crashOnInsertSections(); void QTBUG12268_hiddenMovedSectionSorting(); + void QTBUG14242_hideSectionAutoSize(); void initialSortOrderRole(); @@ -2072,6 +2073,26 @@ void tst_QHeaderView::QTBUG12268_hiddenMovedSectionSorting() QCOMPARE(view.horizontalHeader()->hiddenSectionCount(), 1); } +void tst_QHeaderView::QTBUG14242_hideSectionAutoSize() +{ + QTableView qtv; + QStandardItemModel amodel(4, 4); + qtv.setModel(&amodel); + QHeaderView *hv = qtv.verticalHeader(); + hv->setDefaultSectionSize(25); + hv->setResizeMode(QHeaderView::ResizeToContents); + qtv.show(); + + hv->hideSection(0); + int afterlength = hv->length(); + + int calced_length = 0; + for (int u = 0; u < hv->count(); ++u) + calced_length += hv->sectionSize(u); + + QVERIFY(calced_length == afterlength); +} + void tst_QHeaderView::initialSortOrderRole() { QTableView view; |