Details
-
Bug
-
Resolution: Done
-
P3: Somewhat important
-
5.3.2, 5.5.1
-
None
-
windows
-
4829edfa4ec4829c25246c46d3fcf236e6e59657
Description
In QTreeview::updateGeometries, the min/max height of the header is not taken into account like it is in QTableView.
QTreeView::updateGeometries
void QTreeView::updateGeometries() { Q_D(QTreeView); if (d->header) { if (d->geometryRecursionBlock) return; d->geometryRecursionBlock = true; QSize hint = d->header->isHidden() ? QSize(0, 0) : d->header->sizeHint(); setViewportMargins(0, hint.height(), 0, 0); QRect vg = d->viewport->geometry(); QRect geometryRect(vg.left(), vg.top() - hint.height(), vg.width(), hint.height()); d->header->setGeometry(geometryRect); QMetaObject::invokeMethod(d->header, "updateGeometries"); d->updateScrollBars(); d->geometryRecursionBlock = false; } QAbstractItemView::updateGeometries(); }
Replace the line
QSize hint = d->header->isHidden() ? QSize(0, 0) : d->header->sizeHint();
by
int height = 0; if (!d->header->isHidden()) { height = qMax(d->header->minimumHeight(), d->header->sizeHint().height()); height = qMin(height, d->header->maximumHeight()); }