diff options
author | Jonas Karlsson <jonas.karlsson@qt.io> | 2024-02-26 12:32:20 +0100 |
---|---|---|
committer | Axel Spoerl <axel.spoerl@qt.io> | 2024-02-26 22:34:55 +0000 |
commit | c1921abf65092f4732435a92732c8c11224d31fb (patch) | |
tree | 46cf7b5071c3acec58ae0c58b0acf618655a0e35 /src/widgets/itemviews | |
parent | 8d613f8a9449d2810fd99e71cd6d51932ebb48b7 (diff) |
Revert "QHeaderView: relayout on resetDefaultSectionSize"
This reverts commit a8df174369cecd90f14dac85bf162353b7cb25d1.
Reason for revert: Caused QTBUG-122109
Pick-to: 6.5 6.6 6.7
Fixes: QTBUG-122109
Fixes: QTBUG-120699
Change-Id: Iea185c00f35e17d8eb8e8da70dc2d808ea274b04
Reviewed-by: Axel Spoerl <axel.spoerl@qt.io>
Diffstat (limited to 'src/widgets/itemviews')
-rw-r--r-- | src/widgets/itemviews/qheaderview.cpp | 23 | ||||
-rw-r--r-- | src/widgets/itemviews/qheaderview_p.h | 4 |
2 files changed, 14 insertions, 13 deletions
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp index 2bc6a84f37..9ce09dbacc 100644 --- a/src/widgets/itemviews/qheaderview.cpp +++ b/src/widgets/itemviews/qheaderview.cpp @@ -1519,14 +1519,13 @@ void QHeaderView::setDefaultSectionSize(int size) if (size < 0 || size > maxSizeSection) return; d->setDefaultSectionSize(size); - d->customDefaultSectionSize = true; } void QHeaderView::resetDefaultSectionSize() { Q_D(QHeaderView); if (d->customDefaultSectionSize) { - d->setDefaultSectionSize(d->getDefaultSectionSizeFromStyle()); + d->updateDefaultSectionSizeFromStyle(); d->customDefaultSectionSize = false; } } @@ -2378,7 +2377,7 @@ bool QHeaderView::event(QEvent *e) break; } case QEvent::StyleChange: if (!d->customDefaultSectionSize) - d->setDefaultSectionSize(d->getDefaultSectionSizeFromStyle()); + d->updateDefaultSectionSizeFromStyle(); break; default: break; @@ -3845,6 +3844,7 @@ void QHeaderViewPrivate::setDefaultSectionSize(int size) executePostedLayout(); invalidateCachedSizeHint(); defaultSectionSize = size; + customDefaultSectionSize = true; if (state == QHeaderViewPrivate::ResizeSection) preventCursorChangeInSetOffset = true; for (int i = 0; i < sectionItems.size(); ++i) { @@ -3865,14 +3865,15 @@ void QHeaderViewPrivate::setDefaultSectionSize(int size) viewport->update(); } -int QHeaderViewPrivate::getDefaultSectionSizeFromStyle() const +void QHeaderViewPrivate::updateDefaultSectionSizeFromStyle() { - Q_Q(const QHeaderView); - return orientation == Qt::Horizontal - ? q->style()->pixelMetric(QStyle::PM_HeaderDefaultSectionSizeHorizontal, nullptr, q) - : qMax(q->minimumSectionSize(), - q->style()->pixelMetric(QStyle::PM_HeaderDefaultSectionSizeVertical, nullptr, - q)); + Q_Q(QHeaderView); + if (orientation == Qt::Horizontal) { + defaultSectionSize = q->style()->pixelMetric(QStyle::PM_HeaderDefaultSectionSizeHorizontal, nullptr, q); + } else { + defaultSectionSize = qMax(q->minimumSectionSize(), + q->style()->pixelMetric(QStyle::PM_HeaderDefaultSectionSizeVertical, nullptr, q)); + } } void QHeaderViewPrivate::recalcSectionStartPos() const // linear (but fast) @@ -4181,7 +4182,7 @@ bool QHeaderViewPrivate::read(QDataStream &in) if (in.status() == QDataStream::Ok) { // we haven't read past end customDefaultSectionSize = tmpbool; if (!customDefaultSectionSize) - defaultSectionSize = getDefaultSectionSizeFromStyle(); + updateDefaultSectionSizeFromStyle(); } lastSectionSize = -1; diff --git a/src/widgets/itemviews/qheaderview_p.h b/src/widgets/itemviews/qheaderview_p.h index 7600f7a677..8b214e1d03 100644 --- a/src/widgets/itemviews/qheaderview_p.h +++ b/src/widgets/itemviews/qheaderview_p.h @@ -148,7 +148,7 @@ public: inline void setDefaultValues(Qt::Orientation o) { orientation = o; - defaultSectionSize = getDefaultSectionSizeFromStyle(); + updateDefaultSectionSizeFromStyle(); defaultAlignment = (o == Qt::Horizontal ? Qt::Alignment(Qt::AlignCenter) : Qt::AlignLeft|Qt::AlignVCenter); @@ -323,7 +323,7 @@ public: void removeSectionsFromSectionItems(int start, int end); void resizeSectionItem(int visualIndex, int oldSize, int newSize); void setDefaultSectionSize(int size); - int getDefaultSectionSizeFromStyle() const; + void updateDefaultSectionSizeFromStyle(); void recalcSectionStartPos() const; // not really const inline int headerLength() const { // for debugging |