1
0
mirror of https://invent.kde.org/system/dolphin synced 2024-07-04 17:30:55 +00:00

[Information Panel] Allows to refresh icon and metadata for urls such as trash:/

Summary: CCBUG: 392882

Test Plan:
1. Create a file
2. Remove it, so that it goes to the trash
3. Open trash
4. Empty trash

Before:
Information panel icon is still user-trash-full

After:
Information panel icon is changed to user-trash

Reviewers: ngraham, #dolphin, elvisangelaccio

Reviewed By: ngraham, #dolphin, elvisangelaccio

Subscribers: kfm-devel

Tags: #dolphin

Differential Revision: https://phabricator.kde.org/D23668
This commit is contained in:
Méven Car 2019-11-11 14:07:47 +01:00
parent b9a2df09fc
commit 89a7b316d1
3 changed files with 13 additions and 12 deletions

View File

@ -8,7 +8,7 @@ set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATI
project(Dolphin VERSION ${KDE_APPLICATIONS_VERSION})
set(QT_MIN_VERSION "5.11.0")
set(KF5_MIN_VERSION "5.63.0")
set(KF5_MIN_VERSION "5.64.0")
# ECM setup
find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED)

View File

@ -290,8 +290,8 @@ void InformationPanel::reset()
void InformationPanel::slotFileRenamed(const QString& source, const QString& dest)
{
if (m_shownUrl == QUrl::fromLocalFile(source)) {
m_shownUrl = QUrl::fromLocalFile(dest);
if (m_shownUrl == QUrl::fromUserInput(source)) {
m_shownUrl = QUrl::fromUserInput(dest);
m_fileItem = KFileItem(m_shownUrl);
if ((m_selection.count() == 1) && (m_selection[0].url() == QUrl::fromLocalFile(source))) {
@ -308,10 +308,10 @@ void InformationPanel::slotFileRenamed(const QString& source, const QString& des
void InformationPanel::slotFilesAdded(const QString& directory)
{
if (m_shownUrl == QUrl::fromLocalFile(directory)) {
if (m_shownUrl == QUrl::fromUserInput(directory)) {
// If the 'trash' icon changes because the trash has been emptied or got filled,
// the signal filesAdded("trash:/") will be emitted.
KFileItem item(QUrl::fromLocalFile(directory));
KFileItem item(QUrl::fromUserInput(directory));
requestDelayedItemInfo(item);
}
}
@ -319,7 +319,7 @@ void InformationPanel::slotFilesAdded(const QString& directory)
void InformationPanel::slotFilesChanged(const QStringList& files)
{
for (const QString& fileName : files) {
if (m_shownUrl == QUrl::fromLocalFile(fileName)) {
if (m_shownUrl == QUrl::fromUserInput(fileName)) {
showItemInfo();
break;
}
@ -329,7 +329,7 @@ void InformationPanel::slotFilesChanged(const QStringList& files)
void InformationPanel::slotFilesRemoved(const QStringList& files)
{
for (const QString& fileName : files) {
if (m_shownUrl == QUrl::fromLocalFile(fileName)) {
if (m_shownUrl == QUrl::fromUserInput(fileName)) {
// the currently shown item has been removed, show
// the parent directory as fallback
markUrlAsInvalid();
@ -340,15 +340,15 @@ void InformationPanel::slotFilesRemoved(const QStringList& files)
void InformationPanel::slotEnteredDirectory(const QString& directory)
{
if (m_shownUrl == QUrl::fromLocalFile(directory)) {
KFileItem item(QUrl::fromLocalFile(directory));
if (m_shownUrl == QUrl::fromUserInput(directory)) {
KFileItem item(QUrl::fromUserInput(directory));
requestDelayedItemInfo(item);
}
}
void InformationPanel::slotLeftDirectory(const QString& directory)
{
if (m_shownUrl == QUrl::fromLocalFile(directory)) {
if (m_shownUrl == QUrl::fromUserInput(directory)) {
// The signal 'leftDirectory' is also emitted when a media
// has been unmounted. In this case no directory change will be
// done in Dolphin, but the Information Panel must be updated to

View File

@ -166,12 +166,13 @@ InformationPanelContent::~InformationPanelContent()
void InformationPanelContent::showItem(const KFileItem& item)
{
if (item != m_item) {
// compares item entries, comparing items only compares urls
if (m_item.entry() != item.entry()) {
m_item = item;
m_preview->stopAnimatedImage();
refreshMetaData();
}
refreshPreview();
}