mirror of
https://invent.kde.org/system/dolphin
synced 2024-08-22 01:40:02 +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
|
||||
// within a very small timeframe.
|
||||
m_outdatedPreviewTimer = new QTimer(this);
|
||||
m_outdatedPreviewTimer->setInterval(300);
|
||||
m_outdatedPreviewTimer->setInterval(100);
|
||||
m_outdatedPreviewTimer->setSingleShot(true);
|
||||
connect(m_outdatedPreviewTimer, &QTimer::timeout,
|
||||
this, &InformationPanelContent::markOutdatedPreview);
|
||||
|
@ -189,12 +189,8 @@ void InformationPanelContent::refreshPixmapView()
|
|||
|
||||
// Mark the currently shown preview as outdated. This is done
|
||||
// with a small delay to prevent a flickering when the next preview
|
||||
// can be shown within a short timeframe. This timer is not started
|
||||
// for directories, as directory previews might fail and return the
|
||||
// same icon.
|
||||
if (!m_item.isDir()) {
|
||||
// can be shown within a short timeframe.
|
||||
m_outdatedPreviewTimer->start();
|
||||
}
|
||||
|
||||
QStringList plugins = KIO::PreviewJob::availablePlugins();
|
||||
m_previewJob = new KIO::PreviewJob(KFileItemList() << m_item,
|
||||
|
@ -411,12 +407,19 @@ void InformationPanelContent::showPreview(const KFileItem& item,
|
|||
|
||||
void InformationPanelContent::markOutdatedPreview()
|
||||
{
|
||||
if (m_item.isDir()) {
|
||||
// directory preview can be long
|
||||
// but since we always have icons to display
|
||||
// use it until the preview is done
|
||||
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()
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue