diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -195,10 +195,12 @@ m_outdatedPreviewTimer->start(); } + // PreviewJob does not support devicePixelRatio + // manually compute size according to devicePixelRatioF + auto size = QSize(qRound(m_preview->width() * devicePixelRatioF()), + qRound(m_preview->height() * devicePixelRatioF())); QStringList plugins = KIO::PreviewJob::availablePlugins(); - m_previewJob = new KIO::PreviewJob(KFileItemList() << m_item, - QSize(m_preview->width(), m_preview->height()), - &plugins); + m_previewJob = new KIO::PreviewJob(KFileItemList() << m_item, size, &plugins); m_previewJob->setScaleType(KIO::PreviewJob::Unscaled); m_previewJob->setIgnoreMaximumSize(m_item.isLocalFile()); if (m_previewJob->uiDelegate()) { @@ -232,7 +234,7 @@ // in the case of a search-URL the URL is not readable for humans // (at least not useful to show in the Information Panel) m_preview->setPixmap( - QIcon::fromTheme(QStringLiteral("baloo")).pixmap(KIconLoader::SizeEnormous, KIconLoader::SizeEnormous) + QIcon::fromTheme(QStringLiteral("baloo")).pixmap(m_preview->height(), m_preview->width()) ); } else { @@ -313,7 +315,7 @@ m_preview->stopAnimatedImage(); m_preview->setPixmap( - QIcon::fromTheme(QStringLiteral("dialog-information")).pixmap(KIconLoader::SizeEnormous, KIconLoader::SizeEnormous) + QIcon::fromTheme(QStringLiteral("dialog-information")).pixmap(m_preview->height(), m_preview->width()) ); setNameLabelText(i18ncp("@label", "%1 item selected", "%1 items selected", items.count())); @@ -357,7 +359,7 @@ void InformationPanelContent::showIcon(const KFileItem& item) { m_outdatedPreviewTimer->stop(); - QPixmap pixmap = QIcon::fromTheme(item.iconName()).pixmap(KIconLoader::SizeEnormous, KIconLoader::SizeEnormous); + QPixmap pixmap = QIcon::fromTheme(item.iconName()).pixmap(m_preview->width(), m_preview->height()); KIconLoader::global()->drawOverlays(item.overlays(), pixmap, KIconLoader::Desktop); m_preview->setPixmap(pixmap); } @@ -368,6 +370,8 @@ m_outdatedPreviewTimer->stop(); QPixmap p = pixmap; + p.setDevicePixelRatio(devicePixelRatioF()); + KIconLoader::global()->drawOverlays(item.overlays(), p, KIconLoader::Desktop); if (m_isVideo) {