summaryrefslogtreecommitdiffstats
path: root/tests/auto/gui
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-02-12 16:28:07 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-02-12 16:28:07 +0100
commita9c88c1f39c41215eb9d7288a1fd02aa865e8a04 (patch)
treed6229a2370f202d5ff8a5f56da1f43982bc524c2 /tests/auto/gui
parentff23fb6cf723bcc52a5f037ef92500c480ce5a5c (diff)
parent8e22d71b225576ae7ccd6ed349c05219bae7689e (diff)
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: src/gui/image/qimage.cpp src/gui/text/qtextengine.cpp src/plugins/platforms/linuxfb/qlinuxfbscreen.cpp src/printsupport/kernel/qprintengine_win.cpp Change-Id: I09ce991a57f39bc7b1ad6978d0e0d858df0cd444
Diffstat (limited to 'tests/auto/gui')
-rw-r--r--tests/auto/gui/painting/qpainter/tst_qpainter.cpp46
1 files changed, 46 insertions, 0 deletions
diff --git a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
index 91c06ab0b2..e4340451ce 100644
--- a/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
+++ b/tests/auto/gui/painting/qpainter/tst_qpainter.cpp
@@ -202,6 +202,9 @@ private slots:
void linearGradientSymmetry();
void gradientInterpolation();
+ void gradientPixelFormat_data();
+ void gradientPixelFormat();
+
void fpe_pixmapTransform();
void fpe_zeroLengthLines();
void fpe_divByZero();
@@ -3727,6 +3730,49 @@ void tst_QPainter::linearGradientSymmetry()
QCOMPARE(a, b);
}
+void tst_QPainter::gradientPixelFormat_data()
+{
+ QTest::addColumn<QImage::Format>("format");
+
+ QTest::newRow("argb32") << QImage::Format_ARGB32;
+ QTest::newRow("rgb32") << QImage::Format_RGB32;
+ QTest::newRow("rgb888") << QImage::Format_RGB888;
+ QTest::newRow("rgbx8888") << QImage::Format_RGBX8888;
+ QTest::newRow("rgba8888") << QImage::Format_RGBA8888;
+ QTest::newRow("rgba8888_pm") << QImage::Format_RGBA8888_Premultiplied;
+}
+
+void tst_QPainter::gradientPixelFormat()
+{
+ QFETCH(QImage::Format, format);
+
+ QImage a(8, 64, QImage::Format_ARGB32_Premultiplied);
+ QImage b(8, 64, format);
+
+
+ QGradientStops stops;
+ stops << qMakePair(qreal(0.0), QColor(Qt::blue));
+ stops << qMakePair(qreal(0.3), QColor(Qt::red));
+ stops << qMakePair(qreal(0.6), QColor(Qt::green));
+ stops << qMakePair(qreal(1.0), QColor(Qt::black));
+
+ a.fill(0);
+ b.fill(0);
+
+ QLinearGradient gradient(QRectF(b.rect()).topLeft(), QRectF(b.rect()).bottomLeft());
+ gradient.setStops(stops);
+
+ QPainter pa(&a);
+ pa.fillRect(a.rect(), gradient);
+ pa.end();
+
+ QPainter pb(&b);
+ pb.fillRect(b.rect(), gradient);
+ pb.end();
+
+ QCOMPARE(a, b.convertToFormat(QImage::Format_ARGB32_Premultiplied));
+}
+
void tst_QPainter::gradientInterpolation()
{
QImage image(256, 8, QImage::Format_ARGB32_Premultiplied);