X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/67ebd66f94356b4e66005b1072919cb7b5e858bb..e9bd295b:/src/panels/information/informationpanel.cpp?ds=sidebyside diff --git a/src/panels/information/informationpanel.cpp b/src/panels/information/informationpanel.cpp index 5f4ac84e8..12feb8608 100644 --- a/src/panels/information/informationpanel.cpp +++ b/src/panels/information/informationpanel.cpp @@ -59,6 +59,7 @@ void InformationPanel::setSelection(const KFileItemList& selection) m_shownUrl = url(); showItemInfo(); } + m_infoTimer->stop(); } else { if ((count == 1) && !selection.first().url().isEmpty()) { m_urlCandidate = selection.first().url(); @@ -235,6 +236,7 @@ void InformationPanel::showItemInfo() if (item.isNull()) { // No item is hovered and no selection has been done: provide // an item for the currently shown directory. + m_shownUrl = url(); m_folderStatJob = KIO::statDetails(url(), KIO::StatJob::SourceSide, KIO::StatDefaultDetails | KIO::StatRecursiveSize, KIO::HideProgressInfo); if (m_folderStatJob->uiDelegate()) { KJobWidgets::setWindow(m_folderStatJob, this); @@ -242,6 +244,7 @@ void InformationPanel::showItemInfo() connect(m_folderStatJob, &KIO::Job::result, this, &InformationPanel::slotFolderStatFinished); } else { + m_shownUrl = item.url(); m_content->showItem(item); } } @@ -303,6 +306,15 @@ void InformationPanel::slotFilesAdded(const QString& directory) } } +void InformationPanel::slotFilesItemChanged(const KFileItemList &changedFileItems) +{ + const auto item = changedFileItems.findByUrl(m_shownUrl); + if (!item.isNull()) { + m_fileItem = item; + showItemInfo(); + } +} + void InformationPanel::slotFilesChanged(const QStringList& files) { for (const QString& fileName : files) { @@ -405,6 +417,7 @@ void InformationPanel::init() m_content = new InformationPanelContent(this); connect(m_content, &InformationPanelContent::urlActivated, this, &InformationPanel::urlActivated); connect(m_content, &InformationPanelContent::configurationFinished, this, [this]() { m_inConfigurationMode = false; }); + connect(m_content, &InformationPanelContent::contextMenuRequested, this, &InformationPanel::showContextMenu); QVBoxLayout* layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0);