mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
Information Panel: show early icons for folders
Summary: Folders previews can be long to generate. This can be noticeable by the user. This diff displays folder icons after a 100ms timer. BUG: 420340 FIXED-IN: 20.08 Test Plan: rm -r ~/.cache/thumbnails/ In dolphin open trash Click on download (or any directory with a long to generate preview). Reviewers: #dolphin, ngraham Reviewed By: #dolphin, ngraham Subscribers: kfm-devel Tags: #dolphin Differential Revision: https://phabricator.kde.org/D29204
This commit is contained in:
parent
67a5ec53ef
commit
dcd8c646a5
|
@ -78,7 +78,7 @@ InformationPanelContent::InformationPanelContent(QWidget* parent) :
|
||||||
// delay. This prevents flickering if the new preview can be generated
|
// delay. This prevents flickering if the new preview can be generated
|
||||||
// within a very small timeframe.
|
// within a very small timeframe.
|
||||||
m_outdatedPreviewTimer = new QTimer(this);
|
m_outdatedPreviewTimer = new QTimer(this);
|
||||||
m_outdatedPreviewTimer->setInterval(300);
|
m_outdatedPreviewTimer->setInterval(100);
|
||||||
m_outdatedPreviewTimer->setSingleShot(true);
|
m_outdatedPreviewTimer->setSingleShot(true);
|
||||||
connect(m_outdatedPreviewTimer, &QTimer::timeout,
|
connect(m_outdatedPreviewTimer, &QTimer::timeout,
|
||||||
this, &InformationPanelContent::markOutdatedPreview);
|
this, &InformationPanelContent::markOutdatedPreview);
|
||||||
|
@ -189,12 +189,8 @@ void InformationPanelContent::refreshPixmapView()
|
||||||
|
|
||||||
// Mark the currently shown preview as outdated. This is done
|
// Mark the currently shown preview as outdated. This is done
|
||||||
// with a small delay to prevent a flickering when the next preview
|
// with a small delay to prevent a flickering when the next preview
|
||||||
// can be shown within a short timeframe. This timer is not started
|
// can be shown within a short timeframe.
|
||||||
// for directories, as directory previews might fail and return the
|
m_outdatedPreviewTimer->start();
|
||||||
// same icon.
|
|
||||||
if (!m_item.isDir()) {
|
|
||||||
m_outdatedPreviewTimer->start();
|
|
||||||
}
|
|
||||||
|
|
||||||
QStringList plugins = KIO::PreviewJob::availablePlugins();
|
QStringList plugins = KIO::PreviewJob::availablePlugins();
|
||||||
m_previewJob = new KIO::PreviewJob(KFileItemList() << m_item,
|
m_previewJob = new KIO::PreviewJob(KFileItemList() << m_item,
|
||||||
|
@ -411,11 +407,18 @@ void InformationPanelContent::showPreview(const KFileItem& item,
|
||||||
|
|
||||||
void InformationPanelContent::markOutdatedPreview()
|
void InformationPanelContent::markOutdatedPreview()
|
||||||
{
|
{
|
||||||
KIconEffect *iconEffect = KIconLoader::global()->iconEffect();
|
if (m_item.isDir()) {
|
||||||
QPixmap disabledPixmap = iconEffect->apply(m_preview->pixmap(),
|
// directory preview can be long
|
||||||
KIconLoader::Desktop,
|
// but since we always have icons to display
|
||||||
KIconLoader::DisabledState);
|
// use it until the preview is done
|
||||||
m_preview->setPixmap(disabledPixmap);
|
showIcon(m_item);
|
||||||
|
} else {
|
||||||
|
KIconEffect *iconEffect = KIconLoader::global()->iconEffect();
|
||||||
|
QPixmap disabledPixmap = iconEffect->apply(m_preview->pixmap(),
|
||||||
|
KIconLoader::Desktop,
|
||||||
|
KIconLoader::DisabledState);
|
||||||
|
m_preview->setPixmap(disabledPixmap);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
KFileItemList InformationPanelContent::items()
|
KFileItemList InformationPanelContent::items()
|
||||||
|
|
Loading…
Reference in a new issue