┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2025-01-06 18:23:12 +0100
committerMéven Car <[email protected]>2025-01-09 10:44:39 +0100
commit863c1be871d7dbd16800cf7400284783d52352d5 (patch)
tree1d3a7e3b80a3a8f6e7e6fd8aef47ac0d3d233718
parentbe64c7630fae5d8f609fb97cc139218c7da066d8 (diff)
information panel: scale according dpr
Also use dpr for icons. Amends cebcf8db BUG: 497576
-rw-r--r--src/kitemviews/kfileitemmodelrolesupdater.cpp4
-rw-r--r--src/kitemviews/kstandarditemlistwidget.cpp2
-rw-r--r--src/panels/information/informationpanelcontent.cpp12
3 files changed, 10 insertions, 8 deletions
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<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);