diff options
| author | Frank Reininghaus <[email protected]> | 2013-10-01 00:15:04 +0200 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2013-10-01 00:15:04 +0200 |
| commit | 926782d3be2502c6d3e87ef992aa371c081d72b4 (patch) | |
| tree | 3e5603a0e1e3a8e0517269afb1497d10029e0277 /src/kitemviews/kfileitemmodel.cpp | |
| parent | c185694f795ec273f20c678a6def3c87704b7bc3 (diff) | |
| parent | 4cb0a239e51749c6e6099fd056309f9a81b8a481 (diff) | |
Merge remote-tracking branch 'origin/KDE/4.11'
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) |
