diff --git a/src/core/iconimageprovider.cpp b/src/core/iconimageprovider.cpp index 43e00fd8..a46887f3 100644 --- a/src/core/iconimageprovider.cpp +++ b/src/core/iconimageprovider.cpp @@ -14,13 +14,14 @@ IconImageProvider::requestPixmap(const QString& id, QSize* size, const QSize& re QString iconName; QString fallbackName; QString path; + auto fallbackPaths = QIcon::fallbackSearchPaths(); auto splitIdx = id.indexOf("?path="); if (splitIdx != -1) { iconName = id.sliced(0, splitIdx); path = id.sliced(splitIdx + 6); - qWarning() << "Searching custom icon paths is not yet supported. Icon path will be ignored for" - << id; + fallbackPaths.prepend(path); + QIcon::setFallbackSearchPaths(fallbackPaths); } else { splitIdx = id.indexOf("?fallback="); if (splitIdx != -1) { @@ -43,6 +44,11 @@ IconImageProvider::requestPixmap(const QString& id, QSize* size, const QSize& re pixmap = IconImageProvider::missingPixmap(targetSize); } + if (!path.isEmpty()) { + fallbackPaths.removeFirst(); + QIcon::setFallbackSearchPaths(fallbackPaths); + } + if (size != nullptr) *size = pixmap.size(); return pixmap; }