┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFrank Reininghaus <[email protected]>2011-12-04 19:33:56 +0100
committerFrank Reininghaus <[email protected]>2011-12-04 23:37:18 +0100
commiteb21254eef1f314fdd3f57896c65a826f749c4ad (patch)
tree66ebd82cded92823518f446add9b50fc783d86c6 /src
parent7263a091c5c11220a27332be7127589d51d1092d (diff)
Update the view if an item is renamed
Diffstat (limited to 'src')
-rw-r--r--src/kitemviews/kfileitemmodel.cpp14
1 files changed, 10 insertions, 4 deletions
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<QPair<KFileItem, KFileItem> >&
QListIterator<QPair<KFileItem, KFileItem> > it(items);
while (it.hasNext()) {
const QPair<KFileItem, KFileItem>& 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<QPair<KFileItem, KFileItem> >&
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<QPair<KFileItem, KFileItem> >&
itemRangeList.append(KItemRange(rangeIndex, rangeCount));
}
- emit itemsChanged(itemRangeList, QSet<QByteArray>());
+ emit itemsChanged(itemRangeList, m_roles);
}
void KFileItemModel::slotClear()