diff options
| -rw-r--r-- | src/kitemviews/kfileitemmodel.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index 829063523..72acf776a 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -449,6 +449,8 @@ void KFileItemModel::setRoles(const QSet<QByteArray>& roles) if (m_roles == roles) { return; } + + const QSet<QByteArray> changedRoles = (roles - m_roles) + (m_roles - roles); m_roles = roles; if (count() > 0) { @@ -477,7 +479,7 @@ void KFileItemModel::setRoles(const QSet<QByteArray>& roles) m_itemData[i]->values = retrieveData(m_itemData.at(i)->item, m_itemData.at(i)->parent); } - emit itemsChanged(KItemRangeList() << KItemRange(0, count()), QSet<QByteArray>()); + emit itemsChanged(KItemRangeList() << KItemRange(0, count()), changedRoles); } // Clear the 'values' of all filtered items. They will be re-populated with the |
