summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/gui/text/qstatictext/tst_qstatictext.cpp')
-rw-r--r--tests/auto/gui/text/qstatictext/tst_qstatictext.cpp55
1 files changed, 55 insertions, 0 deletions
diff --git a/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp b/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
index ec30cc8b67..b3d1b75a42 100644
--- a/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
+++ b/tests/auto/gui/text/qstatictext/tst_qstatictext.cpp
@@ -96,6 +96,8 @@ private slots:
void textDocumentColor();
#endif
+ void multiLine();
+
private:
bool supportsTransformations() const;
@@ -854,5 +856,58 @@ void tst_QStaticText::textDocumentColor()
}
#endif
+class TestPaintEngine: public QPaintEngine
+{
+public:
+ void drawTextItem(const QPointF &p, const QTextItem &textItem) Q_DECL_OVERRIDE
+ {
+ differentVerticalPositions.insert(qRound(p.y()));
+ }
+
+ void updateState(const QPaintEngineState &) Q_DECL_OVERRIDE {}
+
+ void drawPolygon(const QPointF *, int , PolygonDrawMode ) Q_DECL_OVERRIDE {}
+
+ bool begin(QPaintDevice *) Q_DECL_OVERRIDE { return true; }
+ bool end() Q_DECL_OVERRIDE { return true; }
+ void drawPixmap(const QRectF &, const QPixmap &, const QRectF &) Q_DECL_OVERRIDE {}
+ Type type() const Q_DECL_OVERRIDE
+ {
+ return User;
+ }
+
+ QSet<int> differentVerticalPositions;
+};
+
+class TestPixmap: public QPixmap
+{
+public:
+ TestPixmap(int w, int h) : QPixmap(w, h), testPaintEngine(new TestPaintEngine) {}
+ ~TestPixmap() { delete testPaintEngine; }
+
+ QPaintEngine *paintEngine() const
+ {
+ return testPaintEngine;
+ }
+
+ TestPaintEngine *testPaintEngine;
+};
+
+void tst_QStaticText::multiLine()
+{
+ TestPixmap pixmap(100, 100);
+
+ TestPaintEngine *paintEngine = pixmap.testPaintEngine;
+
+ {
+ QPainter p(&pixmap);
+ QStaticText text;
+ text.setText(QLatin1String("line 1") + QChar(QChar::LineSeparator) + QLatin1String("line 2"));
+ p.drawStaticText(0, 0, text);
+ }
+
+ QCOMPARE(paintEngine->differentVerticalPositions.size(), 2);
+}
+
QTEST_MAIN(tst_QStaticText)
#include "tst_qstatictext.moc"