From: Scott Kostyshak Date: Mon, 23 May 2016 00:39:46 +0000 (-0400) Subject: Fix using system theme icons with Qt 5 (#10052) X-Git-Tag: 2.2.0~5 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=594748374bc0a92681cf18046e9b019591b20621;p=features.git 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. --- 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