diff options
author | David Edmundson <davidedmundson@kde.org> | 2015-02-24 12:36:54 +0100 |
---|---|---|
committer | David Edmundson <davidedmundson@kde.org> | 2015-06-01 11:31:10 +0000 |
commit | d1ce29557cea3a4f23c400a5cb03254f6cf31dc5 (patch) | |
tree | 6ccb5fc6eb71481416c2d607b8d94e25e748767a /src/widgets/styles/qstyle.cpp | |
parent | 2cb17c1fb903434274e58692c9f0df619affdab0 (diff) |
Make QStyle::itemPixmapRect handle devicePixelRatio
Layout sizes for images should be in the form
QSize layoutSize = image.size() / image.devicePixelRatio() to be
in device independent pixels
Change-Id: Ic149144c45c8fa5c45ac5cbe2c82c35d721549cd
Reviewed-by: Morten Johan Sørvig <morten.sorvig@theqtcompany.com>
Diffstat (limited to 'src/widgets/styles/qstyle.cpp')
-rw-r--r-- | src/widgets/styles/qstyle.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/widgets/styles/qstyle.cpp b/src/widgets/styles/qstyle.cpp index 6072842fc9..5c0064c7a4 100644 --- a/src/widgets/styles/qstyle.cpp +++ b/src/widgets/styles/qstyle.cpp @@ -541,17 +541,21 @@ QRect QStyle::itemPixmapRect(const QRect &rect, int alignment, const QPixmap &pi QRect result; int x, y, w, h; rect.getRect(&x, &y, &w, &h); + + const int pixmapWidth = pixmap.width()/pixmap.devicePixelRatio(); + const int pixmapHeight = pixmap.height()/pixmap.devicePixelRatio(); + if ((alignment & Qt::AlignVCenter) == Qt::AlignVCenter) - y += h/2 - pixmap.height()/2; + y += h/2 - pixmapHeight/2; else if ((alignment & Qt::AlignBottom) == Qt::AlignBottom) - y += h - pixmap.height(); + y += h - pixmapHeight; if ((alignment & Qt::AlignRight) == Qt::AlignRight) - x += w - pixmap.width(); + x += w - pixmapWidth; else if ((alignment & Qt::AlignHCenter) == Qt::AlignHCenter) - x += w/2 - pixmap.width()/2; + x += w/2 - pixmapWidth/2; else if ((alignment & Qt::AlignLeft) != Qt::AlignLeft && QApplication::isRightToLeft()) - x += w - pixmap.width(); - result = QRect(x, y, pixmap.width(), pixmap.height()); + x += w - pixmapWidth; + result = QRect(x, y, pixmapWidth, pixmapHeight); return result; } |