From 35c0972671c1f90f76d8d86b002b2e1f8bac79dd Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Thu, 26 Mar 2015 16:06:52 +0100 Subject: Make KPixmapModifier::applyFrame handle high DPI images --- src/kitemviews/private/kpixmapmodifier.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/kitemviews/private/kpixmapmodifier.cpp') diff --git a/src/kitemviews/private/kpixmapmodifier.cpp b/src/kitemviews/private/kpixmapmodifier.cpp index ee1f84366..3e0edf02c 100644 --- a/src/kitemviews/private/kpixmapmodifier.cpp +++ b/src/kitemviews/private/kpixmapmodifier.cpp @@ -374,14 +374,16 @@ void KPixmapModifier::scale(QPixmap& pixmap, const QSize& scaledSize) void KPixmapModifier::applyFrame(QPixmap& icon, const QSize& scaledSize) { static TileSet tileSet; + qreal dpr = icon.devicePixelRatio(); // Resize the icon to the maximum size minus the space required for the frame - const QSize size(scaledSize.width() - TileSet::LeftMargin - TileSet::RightMargin, - scaledSize.height() - TileSet::TopMargin - TileSet::BottomMargin); + const QSize size(scaledSize.width() - (TileSet::LeftMargin + TileSet::RightMargin) * dpr, + scaledSize.height() - (TileSet::TopMargin + TileSet::BottomMargin) * dpr); scale(icon, size); - QPixmap framedIcon(icon.size().width() + TileSet::LeftMargin + TileSet::RightMargin, - icon.size().height() + TileSet::TopMargin + TileSet::BottomMargin); + QPixmap framedIcon(icon.size().width() + (TileSet::LeftMargin + TileSet::RightMargin) * dpr, + icon.size().height() + (TileSet::TopMargin + TileSet::BottomMargin * dpr) ); + framedIcon.setDevicePixelRatio(dpr); framedIcon.fill(Qt::transparent); QPainter painter; -- cgit v1.3