summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorHonglei Zhang <honglei.zhang@nokia.com>2011-04-27 12:37:12 (GMT)
committerHonglei Zhang <honglei.zhang@nokia.com>2011-04-27 12:37:12 (GMT)
commit9d6530b9774de482b0b3a29720f7f756e986f5c7 (patch)
tree5b786abe48cad2b0f616c92401258bc937d45b3e /tests/auto
parent27a24f1d009741b6e712300e7bc58b7e7e7d4c0b (diff)
parent02bb8e4c5f4584f3c0a7ed16bcba20c7f43456cd (diff)
downloadQt-9d6530b9774de482b0b3a29720f7f756e986f5c7.zip
Qt-9d6530b9774de482b0b3a29720f7f756e986f5c7.tar.gz
Qt-9d6530b9774de482b0b3a29720f7f756e986f5c7.tar.bz2
Merge branch 'master' of scm.dev.nokia.troll.no:qt/qt-symbian-team
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/qpainter/tst_qpainter.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp
index c21514b..33e4c49 100644
--- a/tests/auto/qpainter/tst_qpainter.cpp
+++ b/tests/auto/qpainter/tst_qpainter.cpp
@@ -72,6 +72,7 @@
#include <qgraphicsscene.h>
#include <qgraphicsproxywidget.h>
#include <qlayout.h>
+#include <qfontdatabase.h>
#if defined(Q_OS_SYMBIAN)
# define SRCDIR "."
@@ -264,6 +265,8 @@ private slots:
void QTBUG17053_zeroDashPattern();
+ void drawTextOutsideGuiThread();
+
private:
void fillData();
void setPenColor(QPainter& p);
@@ -4706,6 +4709,44 @@ void tst_QPainter::QTBUG17053_zeroDashPattern()
QCOMPARE(image, original);
}
+class TextDrawerThread : public QThread
+{
+public:
+ void run();
+ QImage rendering;
+};
+
+void TextDrawerThread::run()
+{
+ rendering = QImage(100, 100, QImage::Format_ARGB32_Premultiplied);
+ rendering.fill(0);
+ QPainter p(&rendering);
+ p.fillRect(10, 10, 100, 100, Qt::blue);
+ p.setPen(Qt::green);
+ p.drawText(20, 20, "some text");
+ p.end();
+}
+
+void tst_QPainter::drawTextOutsideGuiThread()
+{
+ if (!QFontDatabase::supportsThreadedFontRendering())
+ QSKIP("No threaded font rendering", SkipAll);
+
+ QImage referenceRendering(100, 100, QImage::Format_ARGB32_Premultiplied);
+ referenceRendering.fill(0);
+ QPainter p(&referenceRendering);
+ p.fillRect(10, 10, 100, 100, Qt::blue);
+ p.setPen(Qt::green);
+ p.drawText(20, 20, "some text");
+ p.end();
+
+ TextDrawerThread t;
+ t.start();
+ t.wait();
+
+ QCOMPARE(referenceRendering, t.rendering);
+}
+
QTEST_MAIN(tst_QPainter)
#include "tst_qpainter.moc"