summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Edmundson <davidedmundson@kde.org>2017-03-27 18:44:04 +0100
committerDavid Edmundson <davidedmundson@kde.org>2017-04-04 12:05:06 +0000
commit4a9470e55ce08752501868c60762268fdf2c44af (patch)
tree549725be91de52b0496802cec03fa23825de718f /src
parent1aec05432bc596ececf78570b6ef035cfda1e5cf (diff)
downloadqtsvg-4a9470e55ce08752501868c60762268fdf2c44af.tar.gz
Implement QIcon::isNull support for QtSVG Icons
This was via a virtual hook in QIconEngine in Qt 5.7 This is especially useful for the SVG icon loader which returns no availableSizes which means we currently have no way to tell if an icon was loaded or not. Change-Id: Ic14971f94213fb2309f29bd0daa0a1c387d4da3c Reviewed-by: Kai Uwe Broulik <kde@privat.broulik.de> Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src')
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp8
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
index 53e9a57..0798e48 100644
--- a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
+++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
@@ -375,6 +375,14 @@ bool QSvgIconEngine::write(QDataStream &out) const
return true;
}
+void QSvgIconEngine::virtual_hook(int id, void *data)
+{
+ if (id == QIconEngine::IsNullHook) {
+ *reinterpret_cast<bool*>(data) = d->svgFiles.isEmpty() && !d->addedPixmaps;
+ }
+ QIconEngine::virtual_hook(id, data);
+}
+
QT_END_NAMESPACE
#endif // QT_NO_SVGRENDERER
diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine.h b/src/plugins/iconengines/svgiconengine/qsvgiconengine.h
index cf4f255..672828c 100644
--- a/src/plugins/iconengines/svgiconengine/qsvgiconengine.h
+++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine.h
@@ -70,6 +70,7 @@ public:
bool read(QDataStream &in) override;
bool write(QDataStream &out) const override;
+ void virtual_hook(int id, void *data) override;
private:
QSharedDataPointer<QSvgIconEnginePrivate> d;
};