Regression fix to QHeaderView::setDefaultSectionSize
When the sections has been resized we need to calculate new values for the section start-positions. Otherwise we break visualIndexAt and sectionPosition. This fixes a regression introduced in b800d8b94a7861ecf8853621f6556fca186fb5b7 Change-Id: I148dbf44f742208787ed59b70d82b8048d721e90 Reviewed-by: Stephen Kelly <stephen.kelly@kdab.com>
This commit is contained in:
parent
46fe591a53
commit
fc271b4273
@ -3382,6 +3382,7 @@ void QHeaderViewPrivate::setDefaultSectionSize(int size)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
sectionStartposRecalc = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void QHeaderViewPrivate::recalcSectionStartPos() const // linear (but fast)
|
void QHeaderViewPrivate::recalcSectionStartPos() const // linear (but fast)
|
||||||
|
@ -1637,9 +1637,15 @@ void tst_QHeaderView::defaultSectionSizeTest()
|
|||||||
{
|
{
|
||||||
// Setup
|
// Setup
|
||||||
QTableView qtv;
|
QTableView qtv;
|
||||||
|
QHeaderView *hv = qtv.verticalHeader();
|
||||||
|
hv->setDefaultSectionSize(99); // Set it to a value different from defaultSize.
|
||||||
QStandardItemModel amodel(4, 4);
|
QStandardItemModel amodel(4, 4);
|
||||||
qtv.setModel(&amodel);
|
qtv.setModel(&amodel);
|
||||||
QHeaderView *hv = qtv.verticalHeader();
|
QCOMPARE(hv->sectionSize(0), 99);
|
||||||
|
QCOMPARE(hv->visualIndexAt(50), 0); // <= also make sure that indexes are calculated
|
||||||
|
hv->setDefaultSectionSize(40); // Set it to a value different from defaultSize.
|
||||||
|
QCOMPARE(hv->visualIndexAt(50), 1);
|
||||||
|
|
||||||
const int defaultSize = 26;
|
const int defaultSize = 26;
|
||||||
hv->setDefaultSectionSize(defaultSize + 1); // Set it to a value different from defaultSize.
|
hv->setDefaultSectionSize(defaultSize + 1); // Set it to a value different from defaultSize.
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user