summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gui/painting/qpainter.cpp2
-rw-r--r--tests/auto/qstatictext/tst_qstatictext.cpp29
2 files changed, 30 insertions, 1 deletions
diff --git a/src/gui/painting/qpainter.cpp b/src/gui/painting/qpainter.cpp
index 114492d..54eed03 100644
--- a/src/gui/painting/qpainter.cpp
+++ b/src/gui/painting/qpainter.cpp
@@ -5735,7 +5735,7 @@ void QPainter::drawStaticText(const QPointF &position, const QStaticText &static
// If we don't have an extended paint engine, or if the painter is transformed,
// we go through standard code path
- if (d->extended == 0) {
+ if (d->extended == 0 || !d->state->matrix.isAffine()) {
if (staticText_d->size.isValid())
drawText(QRectF(position, staticText_d->size), staticText_d->text);
else
diff --git a/tests/auto/qstatictext/tst_qstatictext.cpp b/tests/auto/qstatictext/tst_qstatictext.cpp
index adc9593..ca83f2f 100644
--- a/tests/auto/qstatictext/tst_qstatictext.cpp
+++ b/tests/auto/qstatictext/tst_qstatictext.cpp
@@ -67,6 +67,7 @@ private slots:
void translatedPainter();
void rotatedPainter();
void scaledPainter();
+ void projectedPainter();
void rotatedScaledAndTranslatedPainter();
void transformationChanged();
};
@@ -306,6 +307,34 @@ void tst_QStaticText::scaledPainter()
QCOMPARE(imageDrawStaticText, imageDrawText);
}
+void tst_QStaticText::projectedPainter()
+{
+ QTransform transform;
+ transform.rotate(90, Qt::XAxis);
+
+ QPixmap imageDrawText(1000, 1000);
+ imageDrawText.fill(Qt::white);
+ {
+ QPainter p(&imageDrawText);
+ p.setTransform(transform);
+
+ p.drawText(11, 12, "Lorem ipsum dolor sit amet, consectetur adipiscing elit.");
+ }
+
+ QPixmap imageDrawStaticText(1000, 1000);
+ imageDrawStaticText.fill(Qt::white);
+ {
+ QPainter p(&imageDrawStaticText);
+ p.setTransform(transform);
+
+ QStaticText text("Lorem ipsum dolor sit amet, consectetur adipiscing elit.");
+ p.drawStaticText(11, 12, text);
+ }
+
+ QCOMPARE(imageDrawStaticText, imageDrawText);
+
+}
+
void tst_QStaticText::rotatedScaledAndTranslatedPainter()
{
QPixmap imageDrawText(1000, 1000);