diff options
-rw-r--r-- | src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp | 2 | ||||
-rw-r--r-- | tests/auto/qicon_svg/tst_qicon_svg.cpp | 10 |
2 files changed, 11 insertions, 1 deletions
diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp index 734f4bb..0c54e0e 100644 --- a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp +++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp @@ -378,7 +378,7 @@ bool QSvgIconEngine::write(QDataStream &out) const void QSvgIconEngine::virtual_hook(int id, void *data) { if (id == QIconEngine::IsNullHook) { - *reinterpret_cast<bool*>(data) = d->svgFiles.isEmpty() && !d->addedPixmaps; + *reinterpret_cast<bool*>(data) = d->svgFiles.isEmpty() && !d->addedPixmaps && (!d->svgBuffers || d->svgBuffers->isEmpty()); } QIconEngine::virtual_hook(id, data); } diff --git a/tests/auto/qicon_svg/tst_qicon_svg.cpp b/tests/auto/qicon_svg/tst_qicon_svg.cpp index 170ec37..0875ee1 100644 --- a/tests/auto/qicon_svg/tst_qicon_svg.cpp +++ b/tests/auto/qicon_svg/tst_qicon_svg.cpp @@ -152,6 +152,16 @@ void tst_QIcon_Svg::isNull() //valid svg, we're not null QIcon icon(prefix + "heart.svg"); QVERIFY(!icon.isNull()); + + // check for non null of serialized/deserialized valid icon + QByteArray buf; + QDataStream out(&buf, QIODevice::WriteOnly); + out << icon; + + QIcon icon2; + QDataStream in(buf); + in >> icon2; + QVERIFY(!icon2.isNull()); } { //invalid svg, but a pixmap added means we're not null |