Call QPainter::end() prior to QPixmapCache::insert()

Inserting a QPixmap with active painters on it causes it to
do a deep copy of it, which is unnecessary.

Task-number: QTBUG-58653
Change-Id: I49123ffcec2e12a01c87974b7a513d68a11185d4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Friedemann Kleint
2017-02-06 12:25:15 +01:00
parent 148e793dec
commit ce088cb754
3 changed files with 3 additions and 0 deletions

View File

@@ -455,6 +455,7 @@ void StyleHelper::drawIconWithShadow(const QIcon &icon, const QRect &rect,
// Draw the actual pixmap...
cachePainter.drawPixmap(QRect(QPoint(radius, radius) + offset, QSize(px.width(), px.height())), px);
cachePainter.end();
cache.setDevicePixelRatio(devicePixelRatio);
QPixmapCache::insert(pixmapName, cache);
}