diff options
Diffstat (limited to 'src/kitemviews/kfileitemmodel.cpp')
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index c06f87e06..bd905bf07 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -1179,6 +1179,19 @@ void KFileItemModel::removeExpandedItems() removeItems(expandedItems, DeleteItemData); m_expandedDirs.clear(); + + // Also remove all filtered items which have a parent. + QHash<KFileItem, ItemData*>::iterator it = m_filteredItems.begin(); + const QHash<KFileItem, ItemData*>::iterator end = m_filteredItems.end(); + + while (it != end) { + if (it.value()->parent) { + delete it.value(); + it = m_filteredItems.erase(it); + } else { + ++it; + } + } } void KFileItemModel::emitItemsChangedAndTriggerResorting(const KItemRangeList& itemRanges, const QSet<QByteArray>& changedRoles) |
