Changeset View
Changeset View
Standalone View
Standalone View
libs/widgets/KoIconUtils.cpp
Show All 18 Lines | |||||
19 | #include "KoIconUtils.h" | 19 | #include "KoIconUtils.h" | ||
20 | 20 | | |||
21 | #include <QIcon> | 21 | #include <QIcon> | ||
22 | #include <QApplication> | 22 | #include <QApplication> | ||
23 | #include <QPalette> | 23 | #include <QPalette> | ||
24 | #include <QDebug> | 24 | #include <QDebug> | ||
25 | 25 | | |||
26 | #include <kiconloader.h> | 26 | #include <kiconloader.h> | ||
27 | #include <kiconengine.h> | ||||
27 | 28 | | |||
28 | namespace KoIconUtils | 29 | namespace KoIconUtils | ||
29 | { | 30 | { | ||
30 | 31 | | |||
31 | QIcon themedIcon(const QString &name) { | 32 | QIcon themedIcon(const QString &name) { | ||
32 | QString realName; | 33 | QString realName; | ||
33 | 34 | | |||
34 | // try load themed icon | 35 | // try load themed icon | ||
35 | QColor background = qApp->palette().background().color(); | 36 | QColor background = qApp->palette().background().color(); | ||
36 | bool useDarkIcons = background.value() > 100; | 37 | bool useDarkIcons = background.value() > 100; | ||
37 | const char * const prefix = useDarkIcons ? "dark_" : "light_"; | 38 | const char * const prefix = useDarkIcons ? "dark_" : "light_"; | ||
38 | 39 | | |||
39 | realName = QLatin1String(prefix) + name; | 40 | realName = QLatin1String(prefix) + name; | ||
40 | 41 | | |||
41 | // qDebug() << ">>>>>>>" << realName << KIconLoader::global()->iconPath(realName, KIconLoader::User, true) << "\n\t" | 42 | // qDebug() << ">>>>>>>" << realName << KIconLoader::global()->iconPath(realName, KIconLoader::User, true) << "\n\t" | ||
42 | // << name << KIconLoader::global()->iconPath(name, KIconLoader::User, true); | 43 | // << name << KIconLoader::global()->iconPath(name, KIconLoader::User, true); | ||
43 | 44 | | |||
44 | if (KIconLoader::global()->iconPath(realName, KIconLoader::User, true).isEmpty()) { | 45 | if (KIconLoader::global()->iconPath(realName, KIconLoader::User, true).isEmpty()) { | ||
45 | realName = name; | 46 | realName = name; | ||
46 | } | 47 | } | ||
47 | 48 | | |||
48 | return QIcon::fromTheme(realName); | 49 | QIcon icon = QIcon(new KIconEngine(realName, KIconLoader::global())); | ||
50 | | ||||
51 | // fallback | ||||
52 | if (icon.isNull()) | ||||
53 | icon = QIcon::fromTheme(name); | ||||
54 | | ||||
55 | return icon; | ||||
49 | 56 | | |||
50 | } | 57 | } | ||
51 | 58 | | |||
52 | } | 59 | } |