From fc6b21436347f21c8a228bb0e256d946936095a2 Mon Sep 17 00:00:00 2001 From: Kevin Ottens Date: Fri, 1 Feb 2013 08:15:50 +0100 Subject: Let QPlatformTheme decide which engine QIcon::fromTheme uses MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit By default we still use QIconLoaderEngine but now platform theme plugins have the opportunity to override that. It is in particular planned to be used in a WIP platform theme plugin for KDE sessions. Change-Id: I07a82dc91daea44709b3a790f3f6e2a7a090d108 Reviewed-by: Olivier Goffart Reviewed-by: Friedemann Kleint Reviewed-by: David Faure (KDE) Reviewed-by: Samuel Rødal Reviewed-by: Frederik Gladhorn --- src/gui/image/qicon.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'src/gui/image') diff --git a/src/gui/image/qicon.cpp b/src/gui/image/qicon.cpp index dce902301c..6b91ead666 100644 --- a/src/gui/image/qicon.cpp +++ b/src/gui/image/qicon.cpp @@ -60,6 +60,7 @@ #include "private/qhexstring_p.h" #include "private/qguiapplication_p.h" +#include "qpa/qplatformtheme.h" #ifndef QT_NO_ICON QT_BEGIN_NAMESPACE @@ -986,7 +987,10 @@ QIcon QIcon::fromTheme(const QString &name, const QIcon &fallback) if (qtIconCache()->contains(name)) { icon = *qtIconCache()->object(name); } else { - QIcon *cachedIcon = new QIcon(new QIconLoaderEngine(name)); + QPlatformTheme * const platformTheme = QGuiApplicationPrivate::platformTheme(); + QIconEngine * const engine = platformTheme ? platformTheme->createIconEngine(name) + : new QIconLoaderEngine(name); + QIcon *cachedIcon = new QIcon(engine); qtIconCache()->insert(name, cachedIcon); icon = *cachedIcon; } -- cgit v1.2.3