┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kfileitemmodel.cpp
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2013-10-01 00:15:04 +0200
committerFrank Reininghaus <[email protected]>2013-10-01 00:15:04 +0200
commit926782d3be2502c6d3e87ef992aa371c081d72b4 (patch)
tree3e5603a0e1e3a8e0517269afb1497d10029e0277 /src/kitemviews/kfileitemmodel.cpp
parentc185694f795ec273f20c678a6def3c87704b7bc3 (diff)
parent4cb0a239e51749c6e6099fd056309f9a81b8a481 (diff)
Merge remote-tracking branch 'origin/KDE/4.11'
Diffstat (limited to 'src/kitemviews/kfileitemmodel.cpp')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp13
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)