summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp2
-rw-r--r--tests/auto/qicon_svg/tst_qicon_svg.cpp10
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