forked from qt-creator/qt-creator
StyleHelper: fix floating-point DPR icon pixelated
set the DPR as a floating point number for the pixmap. Change-Id: I354e27556dbd8a0d53cfc3e0c2b708f06406aaf5 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -545,7 +545,7 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
|
||||
QPainter *p, QIcon::Mode iconMode, int dipRadius, const QColor &color, const QPoint &dipOffset)
|
||||
{
|
||||
QPixmap cache;
|
||||
const int devicePixelRatio = p->device()->devicePixelRatio();
|
||||
const qreal devicePixelRatio = p->device()->devicePixelRatioF();
|
||||
QString pixmapName = QString::fromLatin1("icon %0 %1 %2 %3")
|
||||
.arg(icon.cacheKey()).arg(iconMode).arg(rect.height()).arg(devicePixelRatio);
|
||||
|
||||
@@ -557,7 +557,7 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
|
||||
// pixels.
|
||||
QWindow *window = dynamic_cast<QWidget*>(p->device())->window()->windowHandle();
|
||||
QPixmap px = icon.pixmap(window, rect.size(), iconMode);
|
||||
int radius = dipRadius * devicePixelRatio;
|
||||
int radius = int(dipRadius * devicePixelRatio);
|
||||
QPoint offset = dipOffset * devicePixelRatio;
|
||||
cache = QPixmap(px.size() + QSize(radius * 2, radius * 2));
|
||||
cache.fill(Qt::transparent);
|
||||
|
Reference in New Issue
Block a user