diff options
author | Alexander Volkov <a.volkov@rusbitech.ru> | 2017-12-20 16:03:42 +0300 |
---|---|---|
committer | Alexander Volkov <a.volkov@rusbitech.ru> | 2018-01-15 10:12:22 +0000 |
commit | 85aa0fd041fbaa258f089d86f227311e53f6206a (patch) | |
tree | bafaed0633d4034232af4a9d725d009e0c2a7155 /src/gui/kernel | |
parent | 537af273026eaf0a18d2151ad6928b7797d7955b (diff) |
Introduce QIcon::fallbackSearchPaths()
... that will be used if an icon can't be found in the
current theme.
The Icon Theme Specification
https://standards.freedesktop.org/icon-theme-spec/latest/ar01s05.html
states that unthemed icons must be searched in the base directories,
i.e. /usr/share/icons, ... But in practice unthemed icons are
installed into /usr/share/pixmaps and this dir is not used as
a base dir for icon themes. So it's better to explicitly specify
fallback dirs to avoid needless access to the filesystem.
Also some KDE application install their own unthemed icons
(into /usr/share/<appname>/pics), that can't be found by
QIconLoader. With this change it would be possible for them
to specify dirs with unthemed icons and thus be displayed
correctly in non-KDE environments.
[ChangeLog][QtGui][QIcon] Added fallbackSearchPaths() that
will be used to find icons missing in the current icon theme.
Change-Id: I0dc55ba958b29356a3b0a2123d6b8faa24d4c91e
Task-number: QTBUG-33123
Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com>
Diffstat (limited to 'src/gui/kernel')
-rw-r--r-- | src/gui/kernel/qplatformtheme.cpp | 2 | ||||
-rw-r--r-- | src/gui/kernel/qplatformtheme.h | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/gui/kernel/qplatformtheme.cpp b/src/gui/kernel/qplatformtheme.cpp index c8ba86bc9a..1856952805 100644 --- a/src/gui/kernel/qplatformtheme.cpp +++ b/src/gui/kernel/qplatformtheme.cpp @@ -516,6 +516,8 @@ QVariant QPlatformTheme::defaultThemeHint(ThemeHint hint) return QVariant(QString()); case QPlatformTheme::IconThemeSearchPaths: return QVariant(QStringList()); + case QPlatformTheme::IconFallbackSearchPaths: + return QVariant(QStringList()); case QPlatformTheme::StyleNames: return QVariant(QStringList()); case QPlatformTheme::ShowShortcutsInContextMenus: diff --git a/src/gui/kernel/qplatformtheme.h b/src/gui/kernel/qplatformtheme.h index f4ff418db6..87873d446f 100644 --- a/src/gui/kernel/qplatformtheme.h +++ b/src/gui/kernel/qplatformtheme.h @@ -116,7 +116,8 @@ public: MouseDoubleClickDistance, WheelScrollLines, TouchDoubleTapDistance, - ShowShortcutsInContextMenus + ShowShortcutsInContextMenus, + IconFallbackSearchPaths }; enum DialogType { |