summaryrefslogtreecommitdiffstats
path: root/src/gui/image/qpicture.cpp
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@nokia.com>2010-04-01 21:07:37 (GMT)
committerThiago Macieira <thiago.macieira@nokia.com>2010-04-01 21:07:37 (GMT)
commit23eb677daea8e084fcaa1256f1a9433e324b1474 (patch)
treea21225293db6881174814290ad7298120c4a078b /src/gui/image/qpicture.cpp
parent1f327a1de8db245d0b28e7dfdc5bca1af0b56782 (diff)
parent37e8fd4e09c1221efde3e67e6acd5cfbb35686fd (diff)
downloadQt-23eb677daea8e084fcaa1256f1a9433e324b1474.zip
Qt-23eb677daea8e084fcaa1256f1a9433e324b1474.tar.gz
Qt-23eb677daea8e084fcaa1256f1a9433e324b1474.tar.bz2
Merge remote branch 'origin/4.7' into HEAD
Conflicts: examples/declarative/proxywidgets/proxywidgets.pro examples/declarative/widgets/mywidgets.pro examples/declarative/widgets/widgets.pro
Diffstat (limited to 'src/gui/image/qpicture.cpp')
-rw-r--r--src/gui/image/qpicture.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/gui/image/qpicture.cpp b/src/gui/image/qpicture.cpp
index 3220a67..45b3ed0 100644
--- a/src/gui/image/qpicture.cpp
+++ b/src/gui/image/qpicture.cpp
@@ -651,7 +651,12 @@ bool QPicture::exec(QPainter *painter, QDataStream &s, int nrecords)
s >> dbl;
QFont fnt(font, painter->device());
- qreal scale = painter->device()->logicalDpiY() / (dbl*qt_defaultDpiY());
+ // Fonts that specify a pixel size should not be scaled - QPicture already
+ // have a matrix set to compensate for the DPI differences between the
+ // default Qt DPI and the actual target device DPI, and we have to take that
+ // into consideration in the case where the font has a pixel size set.
+
+ qreal scale = fnt.pointSize() == -1 ? 1 : painter->device()->logicalDpiY() / (dbl*qt_defaultDpiY());
painter->save();
painter->scale(1/scale, 1/scale);
@@ -660,7 +665,7 @@ bool QPicture::exec(QPainter *painter, QDataStream &s, int nrecords)
int flags = Qt::TextSingleLine | Qt::TextDontClip | Qt::TextForceLeftToRight;
- QSizeF size(scale, scale);
+ QSizeF size(1, 1);
if (justificationWidth > 0) {
size.setWidth(justificationWidth*scale);
flags |= Qt::TextJustificationForced;