summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.qmake.conf2
-rw-r--r--src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp9
2 files changed, 8 insertions, 3 deletions
diff --git a/.qmake.conf b/.qmake.conf
index 5c42719..9665d29 100644
--- a/.qmake.conf
+++ b/.qmake.conf
@@ -2,4 +2,4 @@ load(qt_build_config)
CONFIG += qt_example_installs
CONFIG += warning_clean
-MODULE_VERSION = 5.6.1
+MODULE_VERSION = 5.6.2
diff --git a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
index 0ccf551..086f5a9 100644
--- a/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
+++ b/src/plugins/iconengines/svgiconengine/qsvgiconengine.cpp
@@ -116,10 +116,13 @@ QSize QSvgIconEngine::actualSize(const QSize &size, QIcon::Mode mode,
void QSvgIconEnginePrivate::loadDataForModeAndState(QSvgRenderer *renderer, QIcon::Mode mode, QIcon::State state)
{
QByteArray buf;
+ const QIcon::State oppositeState = state == QIcon::Off ? QIcon::On : QIcon::Off;
if (svgBuffers) {
buf = svgBuffers->value(hashKey(mode, state));
if (buf.isEmpty())
- buf = svgBuffers->value(hashKey(QIcon::Normal, QIcon::Off));
+ buf = svgBuffers->value(hashKey(QIcon::Normal, state));
+ if (buf.isEmpty())
+ buf = svgBuffers->value(hashKey(QIcon::Normal, oppositeState));
}
if (!buf.isEmpty()) {
#ifndef QT_NO_COMPRESS
@@ -129,7 +132,9 @@ void QSvgIconEnginePrivate::loadDataForModeAndState(QSvgRenderer *renderer, QIco
} else {
QString svgFile = svgFiles.value(hashKey(mode, state));
if (svgFile.isEmpty())
- svgFile = svgFiles.value(hashKey(QIcon::Normal, QIcon::Off));
+ svgFile = svgFiles.value(hashKey(QIcon::Normal, state));
+ if (svgFile.isEmpty())
+ svgFile = svgFiles.value(hashKey(QIcon::Normal, oppositeState));
if (!svgFile.isEmpty())
renderer->load(svgFile);
}