mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-05 16:19:10 +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:
parent
b9a2df09fc
commit
89a7b316d1
|
@ -8,7 +8,7 @@ set (KDE_APPLICATIONS_VERSION "${KDE_APPLICATIONS_VERSION_MAJOR}.${KDE_APPLICATI
|
||||||
project(Dolphin VERSION ${KDE_APPLICATIONS_VERSION})
|
project(Dolphin VERSION ${KDE_APPLICATIONS_VERSION})
|
||||||
|
|
||||||
set(QT_MIN_VERSION "5.11.0")
|
set(QT_MIN_VERSION "5.11.0")
|
||||||
set(KF5_MIN_VERSION "5.63.0")
|
set(KF5_MIN_VERSION "5.64.0")
|
||||||
|
|
||||||
# ECM setup
|
# ECM setup
|
||||||
find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED)
|
find_package(ECM ${KF5_MIN_VERSION} CONFIG REQUIRED)
|
||||||
|
|
|
@ -290,8 +290,8 @@ void InformationPanel::reset()
|
||||||
|
|
||||||
void InformationPanel::slotFileRenamed(const QString& source, const QString& dest)
|
void InformationPanel::slotFileRenamed(const QString& source, const QString& dest)
|
||||||
{
|
{
|
||||||
if (m_shownUrl == QUrl::fromLocalFile(source)) {
|
if (m_shownUrl == QUrl::fromUserInput(source)) {
|
||||||
m_shownUrl = QUrl::fromLocalFile(dest);
|
m_shownUrl = QUrl::fromUserInput(dest);
|
||||||
m_fileItem = KFileItem(m_shownUrl);
|
m_fileItem = KFileItem(m_shownUrl);
|
||||||
|
|
||||||
if ((m_selection.count() == 1) && (m_selection[0].url() == QUrl::fromLocalFile(source))) {
|
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)
|
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,
|
// If the 'trash' icon changes because the trash has been emptied or got filled,
|
||||||
// the signal filesAdded("trash:/") will be emitted.
|
// the signal filesAdded("trash:/") will be emitted.
|
||||||
KFileItem item(QUrl::fromLocalFile(directory));
|
KFileItem item(QUrl::fromUserInput(directory));
|
||||||
requestDelayedItemInfo(item);
|
requestDelayedItemInfo(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -319,7 +319,7 @@ void InformationPanel::slotFilesAdded(const QString& directory)
|
||||||
void InformationPanel::slotFilesChanged(const QStringList& files)
|
void InformationPanel::slotFilesChanged(const QStringList& files)
|
||||||
{
|
{
|
||||||
for (const QString& fileName : files) {
|
for (const QString& fileName : files) {
|
||||||
if (m_shownUrl == QUrl::fromLocalFile(fileName)) {
|
if (m_shownUrl == QUrl::fromUserInput(fileName)) {
|
||||||
showItemInfo();
|
showItemInfo();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -329,7 +329,7 @@ void InformationPanel::slotFilesChanged(const QStringList& files)
|
||||||
void InformationPanel::slotFilesRemoved(const QStringList& files)
|
void InformationPanel::slotFilesRemoved(const QStringList& files)
|
||||||
{
|
{
|
||||||
for (const QString& fileName : 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 currently shown item has been removed, show
|
||||||
// the parent directory as fallback
|
// the parent directory as fallback
|
||||||
markUrlAsInvalid();
|
markUrlAsInvalid();
|
||||||
|
@ -340,15 +340,15 @@ void InformationPanel::slotFilesRemoved(const QStringList& files)
|
||||||
|
|
||||||
void InformationPanel::slotEnteredDirectory(const QString& directory)
|
void InformationPanel::slotEnteredDirectory(const QString& directory)
|
||||||
{
|
{
|
||||||
if (m_shownUrl == QUrl::fromLocalFile(directory)) {
|
if (m_shownUrl == QUrl::fromUserInput(directory)) {
|
||||||
KFileItem item(QUrl::fromLocalFile(directory));
|
KFileItem item(QUrl::fromUserInput(directory));
|
||||||
requestDelayedItemInfo(item);
|
requestDelayedItemInfo(item);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void InformationPanel::slotLeftDirectory(const QString& directory)
|
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
|
// The signal 'leftDirectory' is also emitted when a media
|
||||||
// has been unmounted. In this case no directory change will be
|
// has been unmounted. In this case no directory change will be
|
||||||
// done in Dolphin, but the Information Panel must be updated to
|
// done in Dolphin, but the Information Panel must be updated to
|
||||||
|
|
|
@ -166,12 +166,13 @@ InformationPanelContent::~InformationPanelContent()
|
||||||
|
|
||||||
void InformationPanelContent::showItem(const KFileItem& item)
|
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_item = item;
|
||||||
|
|
||||||
m_preview->stopAnimatedImage();
|
m_preview->stopAnimatedImage();
|
||||||
refreshMetaData();
|
refreshMetaData();
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshPreview();
|
refreshPreview();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue