diff options
Diffstat (limited to 'src/widgets/itemviews/qheaderview.cpp')
-rw-r--r-- | src/widgets/itemviews/qheaderview.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp index 425eb4cd95..e82cd477c5 100644 --- a/src/widgets/itemviews/qheaderview.cpp +++ b/src/widgets/itemviews/qheaderview.cpp @@ -3172,8 +3172,10 @@ void QHeaderViewPrivate::resizeSections(QHeaderView::ResizeMode globalMode, bool void QHeaderViewPrivate::createSectionSpan(int start, int end, int size, QHeaderView::ResizeMode mode) { int sizePerSection = size / (end - start + 1); - if (end >= sectionSpans.count()) + if (end >= sectionSpans.count()) { sectionSpans.resize(end + 1); + sectionStartposRecalc = true; + } SectionSpan *sectiondata = sectionSpans.data(); for (int i = start; i <= end; ++i) { length += (sizePerSection - sectiondata[i].size); @@ -3337,8 +3339,7 @@ void QHeaderViewPrivate::setDefaultSectionSize(int size) defaultSectionSize = size; for (int i = 0; i < sectionSpans.count(); ++i) { QHeaderViewPrivate::SectionSpan &span = sectionSpans[i]; - if (span.size > 0) { - //we resize it if it is not hidden (ie size > 0) + if (sectionHidden.isEmpty() || !sectionHidden.testBit(i)) { // resize on not hidden. const int newSize = size; if (newSize != span.size) { length += newSize - span.size; //the whole length is changed |