diff options
| -rw-r--r-- | src/panels/information/informationpanel.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp index 2f395a4c4..adf53348f 100644 --- a/src/panels/information/informationpanel.cpp +++ b/src/panels/information/informationpanel.cpp @@ -313,11 +313,26 @@ void InformationPanel::showPreview(const KFileItem& item, void InformationPanel::slotFileRenamed(const QString& source, const QString& dest) { - if (m_shownUrl == KUrl(source)) { - // the currently shown file has been renamed, hence update the item information - // for the renamed file - KFileItem item(KFileItem::Unknown, KFileItem::Unknown, KUrl(dest)); - requestDelayedItemInfo(item); + const KUrl sourceUrl = KUrl(source); + + // Verify whether the renamed item is selected. If this is the case, the + // selection must be updated with the renamed item. + bool isSelected = false; + for (int i = m_selection.size() - 1; i >= 0; --i) { + if (m_selection[i].url() == sourceUrl) { + m_selection.removeAt(i); + isSelected = true; + break; + } + } + + if ((m_shownUrl == sourceUrl) || isSelected) { + m_shownUrl = KUrl(dest); + m_fileItem = KFileItem(KFileItem::Unknown, KFileItem::Unknown, m_shownUrl); + if (isSelected) { + m_selection.append(m_fileItem); + } + showItemInfo(); } } |
