From: Frank Reininghaus Date: Sun, 4 Dec 2011 18:33:56 +0000 (+0100) Subject: Update the view if an item is renamed X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/eb21254eef1f314fdd3f57896c65a826f749c4ad Update the view if an item is renamed --- diff --git a/src/kitemviews/kfileitemmodel.cpp b/src/kitemviews/kfileitemmodel.cpp index 6ed10a602..c0adce986 100644 --- a/src/kitemviews/kfileitemmodel.cpp +++ b/src/kitemviews/kfileitemmodel.cpp @@ -702,8 +702,14 @@ void KFileItemModel::slotRefreshItems(const QList >& QListIterator > it(items); while (it.hasNext()) { const QPair& itemPair = it.next(); - const int index = m_items.value(itemPair.second.url(), -1); + const KFileItem& oldItem = itemPair.first; + const KFileItem& newItem = itemPair.second; + const int index = m_items.value(oldItem.url(), -1); if (index >= 0) { + m_itemData[index]->item = newItem; + m_itemData[index]->values = retrieveData(newItem); + m_items.remove(oldItem.url()); + m_items.insert(newItem.url(), index); indexes.append(index); } } @@ -718,9 +724,9 @@ void KFileItemModel::slotRefreshItems(const QList >& qSort(indexes); KItemRangeList itemRangeList; - int rangeIndex = 0; - int rangeCount = 1; int previousIndex = indexes.at(0); + int rangeIndex = previousIndex; + int rangeCount = 1; const int maxIndex = indexes.count() - 1; for (int i = 1; i <= maxIndex; ++i) { @@ -740,7 +746,7 @@ void KFileItemModel::slotRefreshItems(const QList >& itemRangeList.append(KItemRange(rangeIndex, rangeCount)); } - emit itemsChanged(itemRangeList, QSet()); + emit itemsChanged(itemRangeList, m_roles); } void KFileItemModel::slotClear()