From: Méven Car Date: Mon, 6 Jan 2025 17:23:12 +0000 (+0100) Subject: information panel: scale according dpr X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/863c1be871d7dbd16800cf7400284783d52352d5 information panel: scale according dpr Also use dpr for icons. Amends cebcf8db BUG: 497576 --- diff --git a/src/kitemviews/kfileitemmodelrolesupdater.cpp b/src/kitemviews/kfileitemmodelrolesupdater.cpp index 8811401b0..f5fae6f34 100644 --- a/src/kitemviews/kfileitemmodelrolesupdater.cpp +++ b/src/kitemviews/kfileitemmodelrolesupdater.cpp @@ -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; } } diff --git a/src/kitemviews/kstandarditemlistwidget.cpp b/src/kitemviews/kstandarditemlistwidget.cpp index a30a1bcd2..340343158 100644 --- a/src/kitemviews/kstandarditemlistwidget.cpp +++ b/src/kitemviews/kstandarditemlistwidget.cpp @@ -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; } } diff --git a/src/panels/information/informationpanelcontent.cpp b/src/panels/information/informationpanelcontent.cpp index fc2d0f938..428a46a5f 100644 --- a/src/panels/information/informationpanelcontent.cpp +++ b/src/panels/information/informationpanelcontent.cpp @@ -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((p.width() / 2 - arrowSize / 2) / pixmap.devicePixelRatio()); - const int zeroY = static_cast((p.height() / 2 - arrowSize / 2) / pixmap.devicePixelRatio()); + const int zeroX = static_cast((p.width() / 2 - arrowSize / 2) / p.devicePixelRatio()); + const int zeroY = static_cast((p.height() / 2 - arrowSize / 2) / p.devicePixelRatio()); QPolygon arrow; arrow << QPoint(zeroX, zeroY);