summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMorten Johan Sørvig <morten.sorvig@digia.com>2014-02-12 19:33:18 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-14 10:33:14 +0100
commitfa6ebaa2e9734af461db153a11d08082779de1e6 (patch)
tree6ba5231e6fbe4fae740c1a8a7d7342ffab346eb4 /src
parent2b26f801b5b49e2f354da0b67070917d25d5917d (diff)
Draw more inactive style elements in retina res.
Update drawColorLessButton() and qt_mac_cg_context() to handle paint devices with a devicePixelRatio greater than one. Task-number: QTBUG-36792 Change-Id: I9d642846b299fc7048bb8e08765b9e1d7ee631fc Reviewed-by: Denis Dzyubenko <denis@ddenis.info> Reviewed-by: Gabriel de Dietrich <gabriel.dedietrich@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/widgets/styles/qmacstyle_mac.mm11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/widgets/styles/qmacstyle_mac.mm b/src/widgets/styles/qmacstyle_mac.mm
index fa49bcb884..79a52c00cb 100644
--- a/src/widgets/styles/qmacstyle_mac.mm
+++ b/src/widgets/styles/qmacstyle_mac.mm
@@ -1719,8 +1719,9 @@ void QMacStylePrivate::drawColorlessButton(const HIRect &macRect, HIThemeButtonD
}
}
- int width = int(macRect.size.width) + extraWidth;
- int height = int(macRect.size.height) + extraHeight;
+ int devicePixelRatio = p->device()->devicePixelRatio();
+ int width = devicePixelRatio * (int(macRect.size.width) + extraWidth);
+ int height = devicePixelRatio * (int(macRect.size.height) + extraHeight);
if (width <= 0 || height <= 0)
return; // nothing to draw
@@ -1732,6 +1733,7 @@ void QMacStylePrivate::drawColorlessButton(const HIRect &macRect, HIThemeButtonD
QPixmap pm;
if (!QPixmapCache::find(key, pm)) {
QPixmap activePixmap(width, height);
+ activePixmap.setDevicePixelRatio(devicePixelRatio);
activePixmap.fill(Qt::transparent);
{
if (combo){
@@ -1782,6 +1784,7 @@ void QMacStylePrivate::drawColorlessButton(const HIRect &macRect, HIThemeButtonD
QImage colorlessImage;
{
QPixmap colorlessPixmap(width, height);
+ colorlessPixmap.setDevicePixelRatio(devicePixelRatio);
colorlessPixmap.fill(Qt::transparent);
QMacCGContext cg(&colorlessPixmap);
@@ -1815,7 +1818,7 @@ void QMacStylePrivate::drawColorlessButton(const HIRect &macRect, HIThemeButtonD
}
QPixmapCache::insert(key, pm);
}
- p->drawPixmap(int(macRect.origin.x) - xoff, int(macRect.origin.y) + finalyoff, width, height, pm);
+ p->drawPixmap(int(macRect.origin.x) - xoff, int(macRect.origin.y) + finalyoff, width / devicePixelRatio, height / devicePixelRatio , pm);
}
QMacStyle::QMacStyle()
@@ -6719,6 +6722,8 @@ CGContextRef qt_mac_cg_context(const QPaintDevice *pdev)
}
CGContextTranslateCTM(ret, 0, pm->height());
+ int devicePixelRatio = pdev->devicePixelRatio();
+ CGContextScaleCTM(ret, devicePixelRatio, devicePixelRatio);
CGContextScaleCTM(ret, 1, -1);
return ret;
} else if (pdev->devType() == QInternal::Widget) {