From 2b524528435047fe4b47991cb57ecfb5de5645b5 Mon Sep 17 00:00:00 2001 From: Eirik Aavitsland Date: Fri, 28 May 2021 16:06:58 +0200 Subject: Add load/fromdata() overloads taking QByteArrayView to QImage Handy when one has the data buffer to be read in a QBAV. This also fixes an issue and compiler warning about passing a qsizetype data length value as an int, and makes it possible to pass a qsizetype-size length without going through QByteArray. Makes the QByteArray overload redundant. Change-Id: Iba8825cf0fd8003fb2eac5b1d30a61ec91b85ceb Reviewed-by: Giuseppe D'Angelo Reviewed-by: Allan Sandfeld Jensen --- tests/auto/gui/image/qimage/tst_qimage.cpp | 33 ++++++++++++++++++++++++------ 1 file changed, 27 insertions(+), 6 deletions(-) (limited to 'tests/auto/gui/image') diff --git a/tests/auto/gui/image/qimage/tst_qimage.cpp b/tests/auto/gui/image/qimage/tst_qimage.cpp index 57fee0a547..e72fd8987b 100644 --- a/tests/auto/gui/image/qimage/tst_qimage.cpp +++ b/tests/auto/gui/image/qimage/tst_qimage.cpp @@ -1269,15 +1269,36 @@ void tst_QImage::loadFromData() QVERIFY(original.save(&buf, "BMP")); } QVERIFY(!ba.isEmpty()); + const uchar *baPtr = reinterpret_cast(ba.constData()); - QImage dest; - QVERIFY(dest.loadFromData(ba, "BMP")); - QVERIFY(!dest.isNull()); + { + QImage dest; + QVERIFY(dest.loadFromData(QByteArrayView(ba), "BMP")); + QCOMPARE(original, dest); - QCOMPARE(original, dest); + QVERIFY(!dest.loadFromData(QByteArrayView())); + QVERIFY(dest.isNull()); + } + { + QImage dest; + QVERIFY(dest.loadFromData(ba, "BMP")); + QCOMPARE(original, dest); - QVERIFY(!dest.loadFromData(QByteArray())); - QVERIFY(dest.isNull()); + QVERIFY(!dest.loadFromData(QByteArray())); + QVERIFY(dest.isNull()); + } + { + QImage dest; + QVERIFY(dest.loadFromData(baPtr, int(ba.size()), "BMP")); + QCOMPARE(original, dest); + + QVERIFY(!dest.loadFromData(nullptr, 0)); + QVERIFY(dest.isNull()); + } + + QCOMPARE(original, QImage::fromData(QByteArrayView(ba), "BMP")); + QCOMPARE(original, QImage::fromData(ba, "BMP")); + QCOMPARE(original, QImage::fromData(baPtr, int(ba.size()), "BMP")); } #if !defined(QT_NO_DATASTREAM) -- cgit v1.2.3