summaryrefslogtreecommitdiffstats
path: root/src/widgets/itemviews
diff options
context:
space:
mode:
authorChristian Ehrlicher <ch.ehrlicher@gmx.de>2018-02-15 20:24:40 +0100
committerChristian Ehrlicher <ch.ehrlicher@gmx.de>2018-02-21 16:23:15 +0000
commitc0e45ae851c96dfebdebfd1e85b7b7eee6540bd1 (patch)
treea9f5decb08f4e774434fc0df3ea65ab4d67edb36 /src/widgets/itemviews
parentc9c9adeef943d8265b2dae57ff48992c23b6725a (diff)
QHeaderView: properly restore hidden section size on layoutChanged()
During (re)storing the sections within layoutChanged handling, the hidden section size was not properly stored which lead to a section size of 0 when the section was unhided afterwards. Task-number: QTBUG-66413 Task-number: QTBUG-65478 Change-Id: I0b714c7e0530a1eae82b3bb0e0dc80ed576522d0 Reviewed-by: Thorbjørn Lund Martsum <tmartsum@gmail.com>
Diffstat (limited to 'src/widgets/itemviews')
-rw-r--r--src/widgets/itemviews/qheaderview.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/widgets/itemviews/qheaderview.cpp b/src/widgets/itemviews/qheaderview.cpp
index c90a61d4ff..edef2e9bf8 100644
--- a/src/widgets/itemviews/qheaderview.cpp
+++ b/src/widgets/itemviews/qheaderview.cpp
@@ -2168,15 +2168,19 @@ void QHeaderViewPrivate::_q_sectionsAboutToBeChanged()
sectionItems[visual].size = lastSectionSize;
}
for (int i = 0; i < sectionItems.size(); ++i) {
- const auto &s = sectionItems.at(i);
+ auto s = sectionItems.at(i);
// only add if the section is not default and not visually moved
if (s.size == defaultSectionSize && !s.isHidden && s.resizeMode == globalResizeMode)
continue;
+ const int logical = logicalIndex(i);
+ if (s.isHidden)
+ s.size = hiddenSectionSize.value(logical);
+
// ### note that we are using column or row 0
layoutChangePersistentSections.append({orientation == Qt::Horizontal
- ? model->index(0, logicalIndex(i), root)
- : model->index(logicalIndex(i), 0, root),
+ ? model->index(0, logical, root)
+ : model->index(logical, 0, root),
s});
if (layoutChangePersistentSections.size() > 1000)