mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Fix crash when disabling "Show in groups"
The problem was that items are removed from m_visibleGroups while a QMutableHashIterator iterates over this hash, such that the iterator can become invalid. The solution is to use a QHashIterator instead, which takes a copy of the hash. Therefore, it is not affected if m_visibleGroups is modified in any way. BUG: 323248 FIXED-IN: 4.11.1 REVIEW: 111919
This commit is contained in:
parent
87f8303023
commit
7e5b7d5626
|
@ -1237,8 +1237,10 @@ void KItemListView::slotGroupedSortingChanged(bool current)
|
|||
if (m_grouped) {
|
||||
updateGroupHeaderHeight();
|
||||
} else {
|
||||
// Clear all visible headers
|
||||
QMutableHashIterator<KItemListWidget*, KItemListGroupHeader*> it (m_visibleGroups);
|
||||
// Clear all visible headers. Note that the QHashIterator takes a copy of
|
||||
// m_visibleGroups. Therefore, it remains valid even if items are removed
|
||||
// from m_visibleGroups in recycleGroupHeaderForWidget().
|
||||
QHashIterator<KItemListWidget*, KItemListGroupHeader*> it(m_visibleGroups);
|
||||
while (it.hasNext()) {
|
||||
it.next();
|
||||
recycleGroupHeaderForWidget(it.key());
|
||||
|
|
Loading…
Reference in a new issue