]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/information/informationpanelcontent.cpp
Add missing KF6::ColorScheme link
[dolphin.git] / src / panels / information / informationpanelcontent.cpp
index 78900ab8acb8ed5b811133e57938ce073a6d6826..14a470b116178d7bee7b98c11d73a10af3ef9596 100644 (file)
@@ -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);
     }
 }