summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-01-19 13:49:52 +0100
committerFrederik Gladhorn <frederik.gladhorn@theqtcompany.com>2015-01-21 11:10:14 +0100
commitb6191b16d41459ed73cea738dfaf8e25e81ae22b (patch)
tree6ad0952af507bf1ab8df9612023d6e224db8d7e2 /tests/auto/gui
parentb2883a6acc7a8d8372a815cc91dd1a8449f25723 (diff)
parent9087df6bd2dd5198ccf101a237aadee331e51ec3 (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.jpgbin0 -> 911 bytes
-rw-r--r--tests/auto/gui/image/qimage/qimage.pro2
-rw-r--r--tests/auto/gui/image/qimage/qimage.qrc22
-rw-r--r--tests/auto/gui/image/qimage/tst_qimage.cpp33
-rw-r--r--tests/auto/gui/image/qimagereader/android_testdata.qrc6
-rw-r--r--tests/auto/gui/image/qimagereader/qimagereader.pro4
-rw-r--r--tests/auto/gui/image/qimagewriter/qimagewriter.pro2
-rw-r--r--tests/auto/gui/image/qimagewriter/qimagewriter.qrc16
-rw-r--r--tests/auto/gui/image/qimagewriter/tst_qimagewriter.cpp30
-rw-r--r--tests/auto/gui/image/qpixmap/qpixmap.qrc28
-rw-r--r--tests/auto/gui/painting/qpainter/qpainter.pro5
-rw-r--r--tests/auto/gui/painting/qpainter/testdata.qrc186
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp18
-rw-r--r--tests/auto/gui/text/qrawfont/tst_qrawfont.cpp42
-rw-r--r--tests/auto/gui/text/qtextlayout/tst_qtextlayout.cpp62
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
new file mode 100644
index 0000000000..0aa164b78b
--- /dev/null
+++ b/tests/auto/gui/image/qimage/images/jpeg_exif_orientation_value_6_motorola.jpg
Binary files differ
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;