X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fe56127d9e90c2b364189d38ea43c64ee2019874..dd07a327:/src/panels/information/informationpanelcontent.cpp?ds=sidebyside diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index 78900ab8a..14a470b11 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -362,8 +362,23 @@ void InformationPanelContent::showPreview(const KFileItem &item, const QPixmap & { m_outdatedPreviewTimer->stop(); - QPixmap p = KIconUtils::addOverlays(pixmap, item.overlays()).pixmap(m_preview->size(), devicePixelRatioF()); - p.setDevicePixelRatio(devicePixelRatioF()); + QPixmap p = pixmap; + if (!item.overlays().isEmpty()) { + // Avoid scaling the images that are smaller than the preview size, to be consistent when there is no overlays + if (pixmap.height() < m_preview->height() && pixmap.width() < m_preview->width()) { + p = QPixmap(m_preview->size() * devicePixelRatioF()); + p.fill(Qt::transparent); + p.setDevicePixelRatio(devicePixelRatioF()); + + QPainter painter(&p); + painter.drawPixmap(QPointF{m_preview->width() / 2.0 - pixmap.width() / pixmap.devicePixelRatioF() / 2, + m_preview->height() / 2.0 - pixmap.height() / pixmap.devicePixelRatioF() / 2} + .toPoint(), + pixmap); + } + p = KIconUtils::addOverlays(p, item.overlays()).pixmap(m_preview->size(), devicePixelRatioF()); + p.setDevicePixelRatio(devicePixelRatioF()); + } if (m_isVideo) { // adds a play arrow overlay @@ -413,15 +428,8 @@ void InformationPanelContent::markOutdatedPreview() // use it until the preview is done showIcon(m_item); } else { -#if KICONTHEMES_VERSION >= QT_VERSION_CHECK(6, 5, 0) QPixmap disabledPixmap = m_preview->pixmap(); KIconEffect::toDisabled(disabledPixmap); -#else - QImage img = m_preview->pixmap().toImage(); - KIconEffect::toGray(img, 1); - KIconEffect::semiTransparent(img); - QPixmap disabledPixmap = QPixmap::fromImage(img); -#endif m_preview->setPixmap(disabledPixmap); } }