]> cloud.milkyroute.net Git - dolphin.git/commitdiff
information panel: scale according dpr
authorMéven Car <meven@kde.org>
Mon, 6 Jan 2025 17:23:12 +0000 (18:23 +0100)
committerMéven Car <meven@kde.org>
Thu, 9 Jan 2025 09:44:39 +0000 (10:44 +0100)
Also use dpr for icons.

Amends cebcf8db
BUG: 497576

src/kitemviews/kfileitemmodelrolesupdater.cpp
src/kitemviews/kstandarditemlistwidget.cpp
src/panels/information/informationpanelcontent.cpp

index 8811401b03e9401afdbc608ad0abcdb6a5b348af..f5fae6f34fc1cc03bdae31af4eb194faff79f8f0 100644 (file)
@@ -563,8 +563,8 @@ void KFileItemModelRolesUpdater::slotGotPreview(const KFileItem &item, const QPi
             if (!overlay.isEmpty()) {
                 // There is at least one overlay, draw all overlays above m_pixmap
                 // and cancel the check
-                const QSize size = scaledPixmap.size();
-                scaledPixmap = KIconUtils::addOverlays(scaledPixmap, overlays).pixmap(size);
+                const QSize logicalSize = scaledPixmap.size() / scaledPixmap.devicePixelRatioF();
+                scaledPixmap = KIconUtils::addOverlays(scaledPixmap, overlays).pixmap(logicalSize, scaledPixmap.devicePixelRatioF());
                 break;
             }
         }
index a30a1bcd2ade909b7fef26d5dc56d734165ea2d2..340343158157fef9f864f8e0529683412a49f0f3 100644 (file)
@@ -1670,7 +1670,7 @@ QPixmap KStandardItemListWidget::pixmapForIcon(const QString &name, const QStrin
                 // There is at least one overlay, draw all overlays above m_pixmap
                 // and cancel the check
                 const QSize size = pixmap.size();
-                pixmap = KIconUtils::addOverlays(pixmap, overlays).pixmap(size, mode);
+                pixmap = KIconUtils::addOverlays(pixmap, overlays).pixmap(size, dpr, mode);
                 break;
             }
         }
index fc2d0f9388ff16f51f549ef3668abda392bde787..428a46a5f1b4d14b3d06bab459a8dd60add76955 100644 (file)
@@ -353,7 +353,8 @@ void InformationPanelContent::showIcon(const KFileItem &item)
 {
     m_outdatedPreviewTimer->stop();
     QIcon icon = QIcon::fromTheme(item.iconName());
-    QPixmap pixmap = KIconUtils::addOverlays(icon, item.overlays()).pixmap(m_preview->size());
+    QPixmap pixmap = KIconUtils::addOverlays(icon, item.overlays()).pixmap(m_preview->size(), devicePixelRatioF());
+    pixmap.setDevicePixelRatio(devicePixelRatioF());
     m_preview->setPixmap(pixmap);
 }
 
@@ -361,8 +362,9 @@ void InformationPanelContent::showPreview(const KFileItem &item, const QPixmap &
 {
     m_outdatedPreviewTimer->stop();
 
-    const QSize size = pixmap.size();
-    QPixmap p = KIconUtils::addOverlays(pixmap, item.overlays()).pixmap(size);
+    const QSize logicalSize = pixmap.size() / pixmap.devicePixelRatioF();
+    QPixmap p = KIconUtils::addOverlays(pixmap, item.overlays()).pixmap(logicalSize, pixmap.devicePixelRatioF());
+    p.setDevicePixelRatio(pixmap.devicePixelRatioF());
 
     if (m_isVideo) {
         // adds a play arrow overlay
@@ -371,8 +373,8 @@ void InformationPanelContent::showPreview(const KFileItem &item, const QPixmap &
         auto arrowSize = qMax(PLAY_ARROW_SIZE, maxDim / 8);
 
         // compute relative pixel positions
-        const int zeroX = static_cast<int>((p.width() / 2 - arrowSize / 2) / pixmap.devicePixelRatio());
-        const int zeroY = static_cast<int>((p.height() / 2 - arrowSize / 2) / pixmap.devicePixelRatio());
+        const int zeroX = static_cast<int>((p.width() / 2 - arrowSize / 2) / p.devicePixelRatio());
+        const int zeroY = static_cast<int>((p.height() / 2 - arrowSize / 2) / p.devicePixelRatio());
 
         QPolygon arrow;
         arrow << QPoint(zeroX, zeroY);