diff options
Diffstat (limited to 'tests/auto/gui/text/qstatictext/tst_qstatictext.cpp')
-rw-r--r-- | tests/auto/gui/text/qstatictext/tst_qstatictext.cpp | 55 |
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" |