diff options
author | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-01-19 13:49:52 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@theqtcompany.com> | 2015-01-21 11:10:14 +0100 |
commit | b6191b16d41459ed73cea738dfaf8e25e81ae22b (patch) | |
tree | 6ad0952af507bf1ab8df9612023d6e224db8d7e2 /tests/auto/gui | |
parent | b2883a6acc7a8d8372a815cc91dd1a8449f25723 (diff) | |
parent | 9087df6bd2dd5198ccf101a237aadee331e51ec3 (diff) |
Merge remote-tracking branch 'origin/5.4' into dev
Conflicts:
src/corelib/global/global.pri
src/corelib/global/qcompilerdetection.h
src/corelib/global/qglobal.h
src/corelib/tools/qdatetime.cpp
src/plugins/platforms/xcb/qxcbscreen.h
src/plugins/platforms/xcb/qxcbwindow.h
src/widgets/dialogs/qcolordialog.cpp
src/widgets/dialogs/qcolordialog_p.h
tools/configure/configureapp.cpp
Change-Id: Ie9d6e9df13e570da0a90a67745a0d05f46c532af
Diffstat (limited to 'tests/auto/gui')
-rw-r--r-- | tests/auto/gui/image/qimage/images/jpeg_exif_orientation_value_6_motorola.jpg | bin | 0 -> 911 bytes | |||
-rw-r--r-- | tests/auto/gui/image/qimage/qimage.pro | 2 | ||||
-rw-r--r-- | tests/auto/gui/image/qimage/qimage.qrc | 22 | ||||
-rw-r--r-- | tests/auto/gui/image/qimage/tst_qimage.cpp | 33 | ||||
-rw-r--r-- | tests/auto/gui/image/qimagereader/android_testdata.qrc | 6 | ||||
-rw-r--r-- | tests/auto/gui/image/qimagereader/qimagereader.pro | 4 | ||||
-rw-r--r-- | tests/auto/gui/image/qimagewriter/qimagewriter.pro | 2 | ||||
-rw-r--r-- | tests/auto/gui/image/qimagewriter/qimagewriter.qrc | 16 | ||||
-rw-r--r-- | tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp | 30 | ||||
-rw-r--r-- | tests/auto/gui/image/qpixmap/qpixmap.qrc | 28 | ||||
-rw-r--r-- | tests/auto/gui/painting/qpainter/qpainter.pro | 5 | ||||
-rw-r--r-- | tests/auto/gui/painting/qpainter/testdata.qrc | 186 | ||||
-rw-r--r-- | tests/auto/gui/painting/qpainter/tst_qpainter.cpp | 18 | ||||
-rw-r--r-- | tests/auto/gui/text/qrawfont/tst_qrawfont.cpp | 42 | ||||
-rw-r--r-- | tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp | 62 |
15 files changed, 411 insertions, 45 deletions
diff --git a/tests/auto/gui/image/qimage/images/jpeg_exif_orientation_value_6_motorola.jpg b/tests/auto/gui/image/qimage/images/jpeg_exif_orientation_value_6_motorola.jpg Binary files differnew file mode 100644 index 0000000000..0aa164b78b --- /dev/null +++ b/tests/auto/gui/image/qimage/images/jpeg_exif_orientation_value_6_motorola.jpg diff --git a/tests/auto/gui/image/qimage/qimage.pro b/tests/auto/gui/image/qimage/qimage.pro index 117e34653d..42280d3bd4 100644 --- a/tests/auto/gui/image/qimage/qimage.pro +++ b/tests/auto/gui/image/qimage/qimage.pro @@ -6,4 +6,6 @@ SOURCES += tst_qimage.cpp QT += core-private gui-private testlib contains(QT_CONFIG, c++11): CONFIG += c++11 +android:!android-no-sdk:RESOURCES+=qimage.qrc + TESTDATA += images/* diff --git a/tests/auto/gui/image/qimage/qimage.qrc b/tests/auto/gui/image/qimage/qimage.qrc new file mode 100644 index 0000000000..e5de27faf8 --- /dev/null +++ b/tests/auto/gui/image/qimage/qimage.qrc @@ -0,0 +1,22 @@ +<RCC> + <qresource prefix="/"> + <file>images/image.bmp</file> + <file>images/image.gif</file> + <file>images/image.ico</file> + <file>images/image.jpg</file> + <file>images/image.pbm</file> + <file>images/image.pgm</file> + <file>images/image.png</file> + <file>images/image.ppm</file> + <file>images/image.xbm</file> + <file>images/image.xpm</file> + <file>images/jpeg_exif_orientation_value_1.jpg</file> + <file>images/jpeg_exif_orientation_value_2.jpg</file> + <file>images/jpeg_exif_orientation_value_3.jpg</file> + <file>images/jpeg_exif_orientation_value_4.jpg</file> + <file>images/jpeg_exif_orientation_value_5.jpg</file> + <file>images/jpeg_exif_orientation_value_6.jpg</file> + <file>images/jpeg_exif_orientation_value_7.jpg</file> + <file>images/jpeg_exif_orientation_value_8.jpg</file> + </qresource> +</RCC> diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp index 676f8084a1..c61f5f38ca 100644 --- a/tests/auto/gui/image/qimage/tst_qimage.cpp +++ b/tests/auto/gui/image/qimage/tst_qimage.cpp @@ -173,6 +173,7 @@ private slots: void invertPixelsRGB_data(); void invertPixelsRGB(); + void exifOrientation_data(); void exifOrientation(); void cleanupFunctions(); @@ -2641,20 +2642,34 @@ void tst_QImage::invertPixelsRGB() QCOMPARE(qBlue(pixel) >> 4, (255 - 96) >> 4); } +void tst_QImage::exifOrientation_data() +{ + QTest::addColumn<QString>("fileName"); + QTest::newRow("Orientation 1, Intel format") << m_prefix + "jpeg_exif_orientation_value_1.jpg"; + QTest::newRow("Orientation 2, Intel format") << m_prefix + "jpeg_exif_orientation_value_2.jpg"; + QTest::newRow("Orientation 3, Intel format") << m_prefix + "jpeg_exif_orientation_value_3.jpg"; + QTest::newRow("Orientation 4, Intel format") << m_prefix + "jpeg_exif_orientation_value_4.jpg"; + QTest::newRow("Orientation 5, Intel format") << m_prefix + "jpeg_exif_orientation_value_5.jpg"; + QTest::newRow("Orientation 6, Intel format") << m_prefix + "jpeg_exif_orientation_value_6.jpg"; + QTest::newRow("Orientation 6, Motorola format") << m_prefix + "jpeg_exif_orientation_value_6_motorola.jpg"; + QTest::newRow("Orientation 7, Intel format") << m_prefix + "jpeg_exif_orientation_value_7.jpg"; + QTest::newRow("Orientation 8, Intel format") << m_prefix + "jpeg_exif_orientation_value_8.jpg"; +} + void tst_QImage::exifOrientation() { - for (unsigned int i = 1; i <= 8; ++i) { - QImage img; - QRgb px; + QFETCH(QString, fileName); - QVERIFY(img.load(m_prefix + QString::fromLatin1("jpeg_exif_orientation_value_%1.jpg").arg(i))); + QImage img; + QRgb px; - px = img.pixel(0, 0); - QVERIFY(qRed(px) > 250 && qGreen(px) < 5 && qBlue(px) < 5); + QVERIFY(img.load(fileName)); - px = img.pixel(img.width() - 1, 0); - QVERIFY(qRed(px) < 5 && qGreen(px) < 5 && qBlue(px) > 250); - } + px = img.pixel(0, 0); + QVERIFY(qRed(px) > 250 && qGreen(px) < 5 && qBlue(px) < 5); + + px = img.pixel(img.width() - 1, 0); + QVERIFY(qRed(px) < 5 && qGreen(px) < 5 && qBlue(px) > 250); } static void cleanupFunction(void* info) diff --git a/tests/auto/gui/image/qimagereader/android_testdata.qrc b/tests/auto/gui/image/qimagereader/android_testdata.qrc new file mode 100644 index 0000000000..bba32781fa --- /dev/null +++ b/tests/auto/gui/image/qimagereader/android_testdata.qrc @@ -0,0 +1,6 @@ +<RCC> + <qresource prefix="/"> + <file>images/trans.gif</file> + <file>images/kollada-noext</file> + </qresource> +</RCC> diff --git a/tests/auto/gui/image/qimagereader/qimagereader.pro b/tests/auto/gui/image/qimagereader/qimagereader.pro index 7686643b3a..76fb4d8bfc 100644 --- a/tests/auto/gui/image/qimagereader/qimagereader.pro +++ b/tests/auto/gui/image/qimagereader/qimagereader.pro @@ -5,6 +5,10 @@ MOC_DIR=tmp QT += core-private gui-private network testlib RESOURCES += qimagereader.qrc +android: !android-no-sdk { + RESOURCES += android_testdata.qrc +} + win32-msvc:QMAKE_CXXFLAGS -= -Zm200 win32-msvc:QMAKE_CXXFLAGS += -Zm800 win32-msvc.net:QMAKE_CXXFLAGS -= -Zm300 diff --git a/tests/auto/gui/image/qimagewriter/qimagewriter.pro b/tests/auto/gui/image/qimagewriter/qimagewriter.pro index f77ff0659b..ce6707ec92 100644 --- a/tests/auto/gui/image/qimagewriter/qimagewriter.pro +++ b/tests/auto/gui/image/qimagewriter/qimagewriter.pro @@ -5,5 +5,5 @@ SOURCES += tst_qimagewriter.cpp MOC_DIR=tmp win32-msvc:QMAKE_CXXFLAGS -= -Zm200 win32-msvc:QMAKE_CXXFLAGS += -Zm800 - +android:!android-no-sdk:RESOURCES+= qimagewriter.qrc TESTDATA += images/* diff --git a/tests/auto/gui/image/qimagewriter/qimagewriter.qrc b/tests/auto/gui/image/qimagewriter/qimagewriter.qrc new file mode 100644 index 0000000000..29b036e303 --- /dev/null +++ b/tests/auto/gui/image/qimagewriter/qimagewriter.qrc @@ -0,0 +1,16 @@ +<RCC> + <qresource prefix="/"> + <file>images/beavis.jpg</file> + <file>images/colorful.bmp</file> + <file>images/earth.gif</file> + <file>images/font.bmp</file> + <file>images/gnus.xbm</file> + <file>images/kollada.png</file> + <file>images/marble.xpm</file> + <file>images/ship63.pbm</file> + <file>images/teapot.ppm</file> + <file>images/trolltech.gif</file> + <file>images/YCbCr_cmyk.jpg</file> + <file>images/YCbCr_rgb.jpg</file> + </qresource> +</RCC> diff --git a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp index 7e826310a1..f1045a8cf7 100644 --- a/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp +++ b/tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp @@ -90,6 +90,7 @@ private slots: void saveToTemporaryFile(); private: QString prefix; + QString writePrefix; }; // helper to skip an autotest when the given image format is not supported @@ -114,6 +115,11 @@ void tst_QImageWriter::initTestCase() prefix = QFINDTESTDATA("images/"); if (prefix.isEmpty()) QFAIL("Can't find images directory!"); +#if defined(Q_OS_ANDROID) && !defined(Q_OS_ANDROID_NO_SDK) + writePrefix = QDir::homePath(); +#else + writePrefix = prefix; +#endif } // Testing get/set functions @@ -212,7 +218,7 @@ void tst_QImageWriter::writeImage() QVERIFY2(!image.isNull(), qPrintable(reader.errorString())); } { - QImageWriter writer(prefix + "gen-" + fileName, format); + QImageWriter writer(writePrefix + "gen-" + fileName, format); QVERIFY(writer.write(image)); } @@ -224,11 +230,11 @@ void tst_QImageWriter::writeImage() #endif if (!skip) { // Shouldn't be able to write to read-only file - QFile sourceFile(prefix + "gen-" + fileName); + QFile sourceFile(writePrefix + "gen-" + fileName); QFile::Permissions permissions = sourceFile.permissions(); QVERIFY(sourceFile.setPermissions(QFile::ReadOwner | QFile::ReadUser | QFile::ReadGroup | QFile::ReadOther)); - QImageWriter writer(prefix + "gen-" + fileName, format); + QImageWriter writer(writePrefix + "gen-" + fileName, format); QVERIFY(!writer.write(image)); QVERIFY(sourceFile.setPermissions(permissions)); @@ -237,7 +243,7 @@ void tst_QImageWriter::writeImage() QImage image2; { - QImageReader reader(prefix + "gen-" + fileName); + QImageReader reader(writePrefix + "gen-" + fileName); image2 = reader.read(); QVERIFY(!image2.isNull()); } @@ -456,7 +462,7 @@ void tst_QImageWriter::supportsOption() << QImageIOHandler::Animation << QImageIOHandler::BackgroundColor; - QImageWriter writer(prefix + fileName); + QImageWriter writer(writePrefix + fileName); for (int i = 0; i < options.size(); ++i) { QVERIFY(writer.supportsOption(QImageIOHandler::ImageOption(options.at(i)))); allOptions.remove(QImageIOHandler::ImageOption(options.at(i))); @@ -472,13 +478,13 @@ void tst_QImageWriter::saveWithNoFormat_data() QTest::addColumn<QByteArray>("format"); QTest::addColumn<QImageWriter::ImageWriterError>("error"); - QTest::newRow("garble") << prefix + QString("gen-out.garble") << QByteArray("jpeg") << QImageWriter::UnsupportedFormatError; - QTest::newRow("bmp") << prefix + QString("gen-out.bmp") << QByteArray("bmp") << QImageWriter::ImageWriterError(0); - QTest::newRow("xbm") << prefix + QString("gen-out.xbm") << QByteArray("xbm") << QImageWriter::ImageWriterError(0); - QTest::newRow("xpm") << prefix + QString("gen-out.xpm") << QByteArray("xpm") << QImageWriter::ImageWriterError(0); - QTest::newRow("png") << prefix + QString("gen-out.png") << QByteArray("png") << QImageWriter::ImageWriterError(0); - QTest::newRow("ppm") << prefix + QString("gen-out.ppm") << QByteArray("ppm") << QImageWriter::ImageWriterError(0); - QTest::newRow("pbm") << prefix + QString("gen-out.pbm") << QByteArray("pbm") << QImageWriter::ImageWriterError(0); + QTest::newRow("garble") << writePrefix + QString("gen-out.garble") << QByteArray("jpeg") << QImageWriter::UnsupportedFormatError; + QTest::newRow("bmp") << writePrefix + QString("gen-out.bmp") << QByteArray("bmp") << QImageWriter::ImageWriterError(0); + QTest::newRow("xbm") << writePrefix + QString("gen-out.xbm") << QByteArray("xbm") << QImageWriter::ImageWriterError(0); + QTest::newRow("xpm") << writePrefix + QString("gen-out.xpm") << QByteArray("xpm") << QImageWriter::ImageWriterError(0); + QTest::newRow("png") << writePrefix + QString("gen-out.png") << QByteArray("png") << QImageWriter::ImageWriterError(0); + QTest::newRow("ppm") << writePrefix + QString("gen-out.ppm") << QByteArray("ppm") << QImageWriter::ImageWriterError(0); + QTest::newRow("pbm") << writePrefix + QString("gen-out.pbm") << QByteArray("pbm") << QImageWriter::ImageWriterError(0); } void tst_QImageWriter::saveWithNoFormat() diff --git a/tests/auto/gui/image/qpixmap/qpixmap.qrc b/tests/auto/gui/image/qpixmap/qpixmap.qrc index 99fde61a29..3965622dba 100644 --- a/tests/auto/gui/image/qpixmap/qpixmap.qrc +++ b/tests/auto/gui/image/qpixmap/qpixmap.qrc @@ -1,5 +1,27 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> +<RCC> + <qresource> + <file>loadFromData/designer_argb32.png</file> + <file>loadFromData/designer_indexed8_no_alpha_animated.gif</file> + <file>loadFromData/designer_indexed8_no_alpha.gif</file> + <file>loadFromData/designer_indexed8_no_alpha.png</file> + <file>loadFromData/designer_indexed8_with_alpha_animated.gif</file> + <file>loadFromData/designer_indexed8_with_alpha.gif</file> + <file>loadFromData/designer_indexed8_with_alpha.png</file> + <file>loadFromData/designer_rgb32.jpg</file> + <file>loadFromData/designer_rgb32.png</file> + <file>convertFromImage/task31722_1/img1.png</file> + <file>convertFromImage/task31722_1/img2.png</file> + <file>convertFromToHICON/icon_8bpp_16x16.png</file> + <file>convertFromToHICON/icon_8bpp_32x32.png</file> + <file>convertFromToHICON/icon_8bpp_48x48.png</file> + <file>convertFromToHICON/icon_8bpp.ico</file> + <file>convertFromToHICON/icon_32bpp_16x16.png</file> + <file>convertFromToHICON/icon_32bpp_32x32.png</file> + <file>convertFromToHICON/icon_32bpp_48x48.png</file> + <file>convertFromToHICON/icon_32bpp_256x256.png</file> + <file>convertFromToHICON/icon_32bpp.ico</file> + <file>convertFromImage/task31722_0/img1.png</file> + <file>convertFromImage/task31722_0/img2.png</file> <file>images/designer.png</file> <file>images/dx_0_dy_0_50_50_100_100.png</file> <file>images/dx_0_dy_0_null.png</file> @@ -25,5 +47,5 @@ <file>images/dx_-128_dy_-128_x_y_w_h.png</file> <file>images/dx_128_dy_128_x_y_w_h.png</file> <file>images/dx_1_dy_0_null.png</file> -</qresource> + </qresource> </RCC> diff --git a/tests/auto/gui/painting/qpainter/qpainter.pro b/tests/auto/gui/painting/qpainter/qpainter.pro index 752f9be1f4..7e9d438e1b 100644 --- a/tests/auto/gui/painting/qpainter/qpainter.pro +++ b/tests/auto/gui/painting/qpainter/qpainter.pro @@ -10,3 +10,8 @@ SOURCES += tst_qpainter.cpp TESTDATA += drawEllipse/* drawLine_rop_bitmap/* drawPixmap_rop/* drawPixmap_rop_bitmap/* \ task217400.png DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0 + +android: !android-no-sdk { + RESOURCES += \ + testdata.qrc +} diff --git a/tests/auto/gui/painting/qpainter/testdata.qrc b/tests/auto/gui/painting/qpainter/testdata.qrc new file mode 100644 index 0000000000..a7b8c222e5 --- /dev/null +++ b/tests/auto/gui/painting/qpainter/testdata.qrc @@ -0,0 +1,186 @@ +<RCC> + <qresource prefix="/"> + <file>task217400.png</file> + <file>drawEllipse/10x10SizeAt0x0.png</file> + <file>drawEllipse/10x10SizeAt100x100.png</file> + <file>drawEllipse/10x10SizeAt200x200.png</file> + <file>drawEllipse/13x100SizeAt0x0.png</file> + <file>drawEllipse/13x100SizeAt100x100.png</file> + <file>drawEllipse/13x100SizeAt200x200.png</file> + <file>drawEllipse/200x200SizeAt0x0.png</file> + <file>drawEllipse/200x200SizeAt100x100.png</file> + <file>drawEllipse/200x200SizeAt200x200.png</file> + <file>drawLine_rop_bitmap/dst.xbm</file> + <file>drawLine_rop_bitmap/res/res_AndNotROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_AndROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_ClearROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_CopyROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_NandROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_NopROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_NorROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_NotAndROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_NotCopyROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_NotOrROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_NotROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_NotXorROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_OrNotROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_OrROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_SetROP.xbm</file> + <file>drawLine_rop_bitmap/res/res_XorROP.xbm</file> + <file>drawPixmap_rop/dst1.png</file> + <file>drawPixmap_rop/dst2.png</file> + <file>drawPixmap_rop/dst3.png</file> + <file>drawPixmap_rop/src1.xbm</file> + <file>drawPixmap_rop/src2-mask.xbm</file> + <file>drawPixmap_rop/src2.xbm</file> + <file>drawPixmap_rop/src3.xbm</file> + <file>drawPixmap_rop/res/res_AndNotROP0.png</file> + <file>drawPixmap_rop/res/res_AndNotROP1.png</file> + <file>drawPixmap_rop/res/res_AndNotROP2.png</file> + <file>drawPixmap_rop/res/res_AndNotROP3.png</file> + <file>drawPixmap_rop/res/res_AndNotROP4.png</file> + <file>drawPixmap_rop/res/res_AndNotROP5.png</file> + <file>drawPixmap_rop/res/res_AndNotROP6.png</file> + <file>drawPixmap_rop/res/res_AndNotROP7.png</file> + <file>drawPixmap_rop/res/res_AndROP0.png</file> + <file>drawPixmap_rop/res/res_AndROP1.png</file> + <file>drawPixmap_rop/res/res_AndROP2.png</file> + <file>drawPixmap_rop/res/res_AndROP3.png</file> + <file>drawPixmap_rop/res/res_AndROP4.png</file> + <file>drawPixmap_rop/res/res_AndROP5.png</file> + <file>drawPixmap_rop/res/res_AndROP6.png</file> + <file>drawPixmap_rop/res/res_AndROP7.png</file> + <file>drawPixmap_rop/res/res_ClearROP0.png</file> + <file>drawPixmap_rop/res/res_ClearROP1.png</file> + <file>drawPixmap_rop/res/res_ClearROP2.png</file> + <file>drawPixmap_rop/res/res_ClearROP3.png</file> + <file>drawPixmap_rop/res/res_ClearROP4.png</file> + <file>drawPixmap_rop/res/res_ClearROP5.png</file> + <file>drawPixmap_rop/res/res_ClearROP6.png</file> + <file>drawPixmap_rop/res/res_ClearROP7.png</file> + <file>drawPixmap_rop/res/res_CopyROP0.png</file> + <file>drawPixmap_rop/res/res_CopyROP1.png</file> + <file>drawPixmap_rop/res/res_CopyROP2.png</file> + <file>drawPixmap_rop/res/res_CopyROP3.png</file> + <file>drawPixmap_rop/res/res_CopyROP4.png</file> + <file>drawPixmap_rop/res/res_CopyROP5.png</file> + <file>drawPixmap_rop/res/res_CopyROP6.png</file> + <file>drawPixmap_rop/res/res_CopyROP7.png</file> + <file>drawPixmap_rop/res/res_NandROP0.png</file> + <file>drawPixmap_rop/res/res_NandROP1.png</file> + <file>drawPixmap_rop/res/res_NandROP2.png</file> + <file>drawPixmap_rop/res/res_NandROP3.png</file> + <file>drawPixmap_rop/res/res_NandROP4.png</file> + <file>drawPixmap_rop/res/res_NandROP5.png</file> + <file>drawPixmap_rop/res/res_NandROP6.png</file> + <file>drawPixmap_rop/res/res_NandROP7.png</file> + <file>drawPixmap_rop/res/res_NopROP0.png</file> + <file>drawPixmap_rop/res/res_NopROP1.png</file> + <file>drawPixmap_rop/res/res_NopROP2.png</file> + <file>drawPixmap_rop/res/res_NopROP3.png</file> + <file>drawPixmap_rop/res/res_NopROP4.png</file> + <file>drawPixmap_rop/res/res_NopROP5.png</file> + <file>drawPixmap_rop/res/res_NopROP6.png</file> + <file>drawPixmap_rop/res/res_NopROP7.png</file> + <file>drawPixmap_rop/res/res_NorROP0.png</file> + <file>drawPixmap_rop/res/res_NorROP1.png</file> + <file>drawPixmap_rop/res/res_NorROP2.png</file> + <file>drawPixmap_rop/res/res_NorROP3.png</file> + <file>drawPixmap_rop/res/res_NorROP4.png</file> + <file>drawPixmap_rop/res/res_NorROP5.png</file> + <file>drawPixmap_rop/res/res_NorROP6.png</file> + <file>drawPixmap_rop/res/res_NorROP7.png</file> + <file>drawPixmap_rop/res/res_NotAndROP0.png</file> + <file>drawPixmap_rop/res/res_NotAndROP1.png</file> + <file>drawPixmap_rop/res/res_NotAndROP2.png</file> + <file>drawPixmap_rop/res/res_NotAndROP3.png</file> + <file>drawPixmap_rop/res/res_NotAndROP4.png</file> + <file>drawPixmap_rop/res/res_NotAndROP5.png</file> + <file>drawPixmap_rop/res/res_NotAndROP6.png</file> + <file>drawPixmap_rop/res/res_NotAndROP7.png</file> + <file>drawPixmap_rop/res/res_NotCopyROP0.png</file> + <file>drawPixmap_rop/res/res_NotCopyROP1.png</file> + <file>drawPixmap_rop/res/res_NotCopyROP2.png</file> + <file>drawPixmap_rop/res/res_NotCopyROP3.png</file> + <file>drawPixmap_rop/res/res_NotCopyROP4.png</file> + <file>drawPixmap_rop/res/res_NotCopyROP5.png</file> + <file>drawPixmap_rop/res/res_NotCopyROP6.png</file> + <file>drawPixmap_rop/res/res_NotCopyROP7.png</file> + <file>drawPixmap_rop/res/res_NotOrROP0.png</file> + <file>drawPixmap_rop/res/res_NotOrROP1.png</file> + <file>drawPixmap_rop/res/res_NotOrROP2.png</file> + <file>drawPixmap_rop/res/res_NotOrROP3.png</file> + <file>drawPixmap_rop/res/res_NotOrROP4.png</file> + <file>drawPixmap_rop/res/res_NotOrROP5.png</file> + <file>drawPixmap_rop/res/res_NotOrROP6.png</file> + <file>drawPixmap_rop/res/res_NotOrROP7.png</file> + <file>drawPixmap_rop/res/res_NotROP0.png</file> + <file>drawPixmap_rop/res/res_NotROP1.png</file> + <file>drawPixmap_rop/res/res_NotROP2.png</file> + <file>drawPixmap_rop/res/res_NotROP3.png</file> + <file>drawPixmap_rop/res/res_NotROP4.png</file> + <file>drawPixmap_rop/res/res_NotROP5.png</file> + <file>drawPixmap_rop/res/res_NotROP6.png</file> + <file>drawPixmap_rop/res/res_NotROP7.png</file> + <file>drawPixmap_rop/res/res_NotXorROP0.png</file> + <file>drawPixmap_rop/res/res_NotXorROP1.png</file> + <file>drawPixmap_rop/res/res_NotXorROP2.png</file> + <file>drawPixmap_rop/res/res_NotXorROP3.png</file> + <file>drawPixmap_rop/res/res_NotXorROP4.png</file> + <file>drawPixmap_rop/res/res_NotXorROP5.png</file> + <file>drawPixmap_rop/res/res_NotXorROP6.png</file> + <file>drawPixmap_rop/res/res_NotXorROP7.png</file> + <file>drawPixmap_rop/res/res_OrNotROP0.png</file> + <file>drawPixmap_rop/res/res_OrNotROP1.png</file> + <file>drawPixmap_rop/res/res_OrNotROP2.png</file> + <file>drawPixmap_rop/res/res_OrNotROP3.png</file> + <file>drawPixmap_rop/res/res_OrNotROP4.png</file> + <file>drawPixmap_rop/res/res_OrNotROP5.png</file> + <file>drawPixmap_rop/res/res_OrNotROP6.png</file> + <file>drawPixmap_rop/res/res_OrNotROP7.png</file> + <file>drawPixmap_rop/res/res_OrROP0.png</file> + <file>drawPixmap_rop/res/res_OrROP1.png</file> + <file>drawPixmap_rop/res/res_OrROP2.png</file> + <file>drawPixmap_rop/res/res_OrROP3.png</file> + <file>drawPixmap_rop/res/res_OrROP4.png</file> + <file>drawPixmap_rop/res/res_OrROP5.png</file> + <file>drawPixmap_rop/res/res_OrROP6.png</file> + <file>drawPixmap_rop/res/res_OrROP7.png</file> + <file>drawPixmap_rop/res/res_SetROP0.png</file> + <file>drawPixmap_rop/res/res_SetROP1.png</file> + <file>drawPixmap_rop/res/res_SetROP2.png</file> + <file>drawPixmap_rop/res/res_SetROP3.png</file> + <file>drawPixmap_rop/res/res_SetROP4.png</file> + <file>drawPixmap_rop/res/res_SetROP5.png</file> + <file>drawPixmap_rop/res/res_SetROP6.png</file> + <file>drawPixmap_rop/res/res_SetROP7.png</file> + <file>drawPixmap_rop/res/res_XorROP0.png</file> + <file>drawPixmap_rop/res/res_XorROP1.png</file> + <file>drawPixmap_rop/res/res_XorROP2.png</file> + <file>drawPixmap_rop/res/res_XorROP3.png</file> + <file>drawPixmap_rop/res/res_XorROP4.png</file> + <file>drawPixmap_rop/res/res_XorROP5.png</file> + <file>drawPixmap_rop/res/res_XorROP6.png</file> + <file>drawPixmap_rop/res/res_XorROP7.png</file> + <file>drawPixmap_rop_bitmap/dst.xbm</file> + <file>drawPixmap_rop_bitmap/src1-mask.xbm</file> + <file>drawPixmap_rop_bitmap/src1.xbm</file> + <file>drawPixmap_rop_bitmap/src2.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_AndNotROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_AndROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_ClearROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_CopyROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_NandROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_NopROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_NorROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_NotAndROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_NotCopyROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_NotOrROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_NotROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_NotXorROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_OrNotROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_OrROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_SetROP.xbm</file> + <file>drawPixmap_rop_bitmap/res/res_XorROP.xbm</file> + </qresource> +</RCC> diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp index 5072aa96c3..e23f7d41c5 100644 --- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp +++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp @@ -289,7 +289,7 @@ private slots: void blendARGBonRGB(); void RasterOp_NotDestination(); - + void drawTextNoHinting(); private: void fillData(); void setPenColor(QPainter& p); @@ -730,6 +730,7 @@ void tst_QPainter::initFrom() pal.setColor(QPalette::Foreground, QColor(255, 0, 0)); pal.setBrush(QPalette::Background, QColor(0, 255, 0)); widget->setPalette(pal); + widget->show(); QFont font = widget->font(); font.setPointSize(26); @@ -4813,6 +4814,21 @@ void tst_QPainter::RasterOp_NotDestination() QCOMPARE(pixel, 0xff00ffff); } +void tst_QPainter::drawTextNoHinting() +{ + { + QImage image(250, 250, QImage::Format_RGB32); + QPainter p(&image); + QFont font("Arial", 8); + font.setHintingPreference(QFont::PreferNoHinting); + font.setStyleStrategy(QFont::PreferAntialias); + p.setFont(font); + p.drawText(image.rect(), "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"); + } + // Testing for a crash when DirectWrite is used on Windows + QVERIFY(true); +} + QTEST_MAIN(tst_QPainter) #include "tst_qpainter.moc" diff --git a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp index df7de2b3b7..8cb32dabd1 100644 --- a/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp +++ b/tests/auto/gui/text/qrawfont/tst_qrawfont.cpp @@ -307,24 +307,22 @@ void tst_QRawFont::advances() bool supportsSubPixelPositions = font_d->fontEngine->supportsSubPixelPositions(); QVector<QPointF> advances = font.advancesForGlyphIndexes(glyphIndices); - // On Windows and QNX, freetype engine returns advance of 9 for some of the glyphs - // when full hinting is used (default on Windows). - bool mayFail = false; -#if defined (Q_OS_WIN) - mayFail = font_d->fontEngine->type() == QFontEngine::Freetype - && (hintingPreference == QFont::PreferFullHinting - || hintingPreference == QFont::PreferDefaultHinting); -#elif defined(Q_OS_QNX) - mayFail = font_d->fontEngine->type() == QFontEngine::Freetype - && hintingPreference == QFont::PreferFullHinting; -#endif + bool mayDiffer = font_d->fontEngine->type() == QFontEngine::Freetype + && (hintingPreference == QFont::PreferFullHinting + || hintingPreference == QFont::PreferDefaultHinting); for (int i = 0; i < glyphIndices.size(); ++i) { - if (mayFail && (i == 0 || i == 5)) { - QEXPECT_FAIL("", "FreeType engine reports unexpected advance " - "for some glyphs (9 instead of 8)", Continue); + if ((i == 0 || i == 5) && mayDiffer) { + QVERIFY2(qRound(advances.at(i).x()) == 8 + || qRound(advances.at(i).x()) == 9, + qPrintable(QStringLiteral("%1 != %2 && %1 != %3") + .arg(qRound(advances.at(i).x())) + .arg(8) + .arg(9))); + } else { + QCOMPARE(qRound(advances.at(i).x()), 8); } - QVERIFY(qFuzzyCompare(qRound(advances.at(i).x()), 8.0)); + if (supportsSubPixelPositions) QVERIFY(advances.at(i).x() > 8.0); @@ -342,11 +340,17 @@ void tst_QRawFont::advances() QVERIFY(font.advancesForGlyphIndexes(glyphIndices.constData(), advances.data(), numGlyphs)); for (int i = 0; i < glyphIndices.size(); ++i) { - if (mayFail && (i == 0 || i == 5)) { - QEXPECT_FAIL("", "FreeType engine reports unexpected advance " - "for some glyphs (9 instead of 8)", Continue); + if ((i == 0 || i == 5) && mayDiffer) { + QVERIFY2(qRound(advances.at(i).x()) == 8 + || qRound(advances.at(i).x()) == 9, + qPrintable(QStringLiteral("%1 != %2 && %1 != %3") + .arg(qRound(advances.at(i).x())) + .arg(8) + .arg(9))); + } else { + QCOMPARE(qRound(advances.at(i).x()), 8); } - QVERIFY(qFuzzyCompare(qRound(advances.at(i).x()), 8.0)); + if (supportsSubPixelPositions) QVERIFY(advances.at(i).x() > 8.0); diff --git a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp index 4b2970cd17..4fa8575153 100644 --- a/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp +++ b/tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp @@ -1280,6 +1280,13 @@ void tst_QTextLayout::smallTextLengthWrapAtWordBoundaryOrAnywhere() void tst_QTextLayout::testDefaultTabs() { QTextLayout layout("Foo\tBar\ta slightly longer text\tend.", testFont); + + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + layout.setCacheEnabled(true); layout.beginLayout(); QTextLine line = layout.createLine(); @@ -1322,6 +1329,13 @@ void tst_QTextLayout::testDefaultTabs() void tst_QTextLayout::testTabs() { QTextLayout layout("Foo\tBar.", testFont); + + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + layout.setCacheEnabled(true); QTextOption option = layout.textOption(); option.setTabStop(150); @@ -1339,6 +1353,13 @@ void tst_QTextLayout::testTabs() void tst_QTextLayout::testMultilineTab() { QTextLayout layout("Lorem ipsum dolor sit\tBar.", testFont); + + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + layout.setCacheEnabled(true); // test if this works on the second line. layout.beginLayout(); @@ -1348,12 +1369,20 @@ void tst_QTextLayout::testMultilineTab() line.setLineWidth(220.); layout.endLayout(); + QCOMPARE(line.cursorToX(22), 80.); } void tst_QTextLayout::testMultiTab() { QTextLayout layout("Foo\t\t\tBar.", testFont); + + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + layout.setCacheEnabled(true); layout.beginLayout(); QTextLine line = layout.createLine(); @@ -1367,6 +1396,13 @@ void tst_QTextLayout::testTabsInAlignedParag() { QTextLayout layout("Foo\tsome more words", testFont); layout.setCacheEnabled(true); + + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + QTextOption option = layout.textOption(); // right option.setAlignment(Qt::AlignRight); @@ -1426,6 +1462,12 @@ void tst_QTextLayout::testRightTab() */ layout.setCacheEnabled(true); + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + QTextOption option = layout.textOption(); QList<QTextOption::Tab> tabs; QTextOption::Tab tab; @@ -1463,6 +1505,13 @@ void tst_QTextLayout::testRightTab() void tst_QTextLayout::testCenteredTab() { QTextLayout layout("Foo\tBar", testFont); + + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + layout.setCacheEnabled(true); // test if centering the tab works. We expect the center of 'Bar.' to be at the tab point. QTextOption option = layout.textOption(); @@ -1484,6 +1533,13 @@ void tst_QTextLayout::testCenteredTab() void tst_QTextLayout::testDelimiterTab() { QTextLayout layout("Foo\tBar. Barrabas", testFont); + + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + layout.setCacheEnabled(true); // try the different delimiter characters to see if the alignment works there. QTextOption option = layout.textOption(); @@ -1537,6 +1593,12 @@ void tst_QTextLayout::tabsForRtl() */ layout.setCacheEnabled(true); + QFont font = layout.font(); + QFontPrivate *fd = QFontPrivate::get(font); + qreal dpiScale = qreal(fd->dpi) / qreal(qt_defaultDpiY()); + if (!qFuzzyCompare(dpiScale, 1.0)) + QSKIP("Test logic does not work when tabs are scaled by dpi"); + QTextOption option = layout.textOption(); QList<QTextOption::Tab> tabs; QTextOption::Tab tab; |