From: Frank Reininghaus Date: Sat, 26 May 2012 14:29:51 +0000 (+0200) Subject: Show all items in the directory when the name filter is cleared X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/23ab6051577189897da9072d172ba35e911e62a4?ds=inline Show all items in the directory when the name filter is cleared The problem was the following: While a QMutableSetIterator iterates the items in the QSet m_filteredItems, all items that match the new filter are removed from the set. However, to ensure that the iterator still reaches all items in the set, one must not use QSet::remove(), but rather the iterator's remove() method (see QMutableSetIterator docs). CCBUG: 300504 (cherry picked from commit 288473a96cdd8888f7fc91d0a551d6cbde5fd5dc) --- diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index 831493d80..320b60b94 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -530,7 +530,7 @@ void KFileItemModel::setNameFilter(const QString& nameFilter) const KFileItem item = it.next(); if (m_filter.matches(item)) { newVisibleItems.append(item); - m_filteredItems.remove(item); + it.remove(); } }