mirror of
https://invent.kde.org/system/dolphin
synced 2024-10-28 03:21:56 +00:00
* use existing KFileItem also for the selection instead of creating a new KFileItem from the URL
* don't invoke fileItem() if a multiple selection is provided svn path=/trunk/KDE/kdebase/apps/; revision=826393
This commit is contained in:
parent
3bc3ca1458
commit
fbfcbd5b95
|
@ -183,12 +183,6 @@ void InfoSidebarPage::showItemInfo()
|
||||||
|
|
||||||
cancelRequest();
|
cancelRequest();
|
||||||
|
|
||||||
const KFileItem item = fileItem();
|
|
||||||
if (item.isNull()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const KUrl itemUrl = item.url();
|
|
||||||
|
|
||||||
if (showMultipleSelectionInfo()) {
|
if (showMultipleSelectionInfo()) {
|
||||||
KIconLoader iconLoader;
|
KIconLoader iconLoader;
|
||||||
QPixmap icon = iconLoader.loadIcon("dialog-information",
|
QPixmap icon = iconLoader.loadIcon("dialog-information",
|
||||||
|
@ -196,30 +190,34 @@ void InfoSidebarPage::showItemInfo()
|
||||||
KIconLoader::SizeEnormous);
|
KIconLoader::SizeEnormous);
|
||||||
m_preview->setPixmap(icon);
|
m_preview->setPixmap(icon);
|
||||||
m_nameLabel->setText(i18ncp("@info", "%1 item selected", "%1 items selected", m_selection.count()));
|
m_nameLabel->setText(i18ncp("@info", "%1 item selected", "%1 items selected", m_selection.count()));
|
||||||
} else if (!applyPlace(itemUrl)) {
|
} else {
|
||||||
// try to get a preview pixmap from the item...
|
const KFileItem item = fileItem();
|
||||||
m_pendingPreview = true;
|
const KUrl itemUrl = item.url();
|
||||||
|
if (!applyPlace(itemUrl)) {
|
||||||
|
// try to get a preview pixmap from the item...
|
||||||
|
m_pendingPreview = true;
|
||||||
|
|
||||||
// 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.
|
// can be shown within a short timeframe.
|
||||||
m_outdatedPreviewTimer->start();
|
m_outdatedPreviewTimer->start();
|
||||||
|
|
||||||
KIO::PreviewJob* job = KIO::filePreview(KUrl::List() << itemUrl,
|
KIO::PreviewJob* job = KIO::filePreview(KUrl::List() << itemUrl,
|
||||||
m_preview->width(),
|
m_preview->width(),
|
||||||
m_preview->height(),
|
m_preview->height(),
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
true,
|
true,
|
||||||
false);
|
false);
|
||||||
job->setIgnoreMaximumSize(true);
|
job->setIgnoreMaximumSize(true);
|
||||||
|
|
||||||
connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)),
|
connect(job, SIGNAL(gotPreview(const KFileItem&, const QPixmap&)),
|
||||||
this, SLOT(showPreview(const KFileItem&, const QPixmap&)));
|
this, SLOT(showPreview(const KFileItem&, const QPixmap&)));
|
||||||
connect(job, SIGNAL(failed(const KFileItem&)),
|
connect(job, SIGNAL(failed(const KFileItem&)),
|
||||||
this, SLOT(showIcon(const KFileItem&)));
|
this, SLOT(showIcon(const KFileItem&)));
|
||||||
|
|
||||||
m_nameLabel->setText(itemUrl.fileName());
|
m_nameLabel->setText(itemUrl.fileName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
showMetaInfo();
|
showMetaInfo();
|
||||||
|
@ -455,8 +453,14 @@ KFileItem InfoSidebarPage::fileItem() const
|
||||||
return m_fileItem;
|
return m_fileItem;
|
||||||
}
|
}
|
||||||
|
|
||||||
const KUrl url = m_selection.isEmpty() ? m_shownUrl : m_selection[0].url();
|
if (!m_selection.isEmpty()) {
|
||||||
KFileItem item(KFileItem::Unknown, KFileItem::Unknown, url);
|
Q_ASSERT(m_selection.count() == 1);
|
||||||
|
return m_selection.first();
|
||||||
|
}
|
||||||
|
|
||||||
|
// no item is hovered and no selection has been done: provide
|
||||||
|
// an item for the directory represented by m_shownUrl
|
||||||
|
KFileItem item(KFileItem::Unknown, KFileItem::Unknown, m_shownUrl);
|
||||||
item.refresh();
|
item.refresh();
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue