From 594748374bc0a92681cf18046e9b019591b20621 Mon Sep 17 00:00:00 2001 From: Scott Kostyshak Date: Sun, 22 May 2016 20:39:46 -0400 Subject: [PATCH] Fix using system theme icons with Qt 5 (#10052) With Qt 5, our code did not correctly detect when icons were available and thus tried to use nonexistent icons. QIcon::hasThemeIcon(theme_icon) returns true when theme_icon is empty. We now rely on the behavior that QIcon::isNull() returns true if the icon is empty. The same code is used with Qt 4 and Qt 5. --- src/frontends/qt4/GuiApplication.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/frontends/qt4/GuiApplication.cpp b/src/frontends/qt4/GuiApplication.cpp index 6fb5499981..8b613794df 100644 --- a/src/frontends/qt4/GuiApplication.cpp +++ b/src/frontends/qt4/GuiApplication.cpp @@ -600,12 +600,16 @@ QIcon getIcon(FuncRequest const & f, bool unknown) { #if (QT_VERSION >= 0x040600) if (lyxrc.use_system_theme_icons) { + // use the icons from system theme that are available QString action = toqstr(lyxaction.getActionName(f.action())); if (!f.argument().empty()) action += " " + toqstr(f.argument()); QString const theme_icon = themeIconName(action); - if (QIcon::hasThemeIcon(theme_icon)) - return QIcon::fromTheme(theme_icon); + if (QIcon::hasThemeIcon(theme_icon)) { + QIcon const thmicn = QIcon::fromTheme(theme_icon); + if (!thmicn.isNull()) + return thmicn; + } } #endif -- 2.39.2