Quassel uses many icons that are not part of the freedesktop naming
spec, but supported by KDE icon themes. If Quassel is run in
another environment, such as GNOME, which would select a non-KDE icon
theme, there may be missing icons.
In such cases, it is recommended to install the Oxygen icon theme and
start the Quassel client with '--icontheme=oxygen' to override the
system setting. Of course, you are free to choose any other theme as
well.
Note that oxygen is already selected as a fallback if the platform does
not tell Qt about its icon theme (for example, on non-Linux platforms).
#ifndef BUILD_CORE
// put client-only arguments here
+ cliParser->addOption("icontheme <theme>", 0, "Override the system icon theme ('oxygen' is recommended)");
cliParser->addOption("qss <file.qss>", 0, "Load a custom application stylesheet");
cliParser->addSwitch("debugbufferswitches", 0, "Enables debugging for bufferswitches");
cliParser->addSwitch("debugmodel", 0, "Enables debugging for models");
#else
qInstallMessageHandler(Client::logMessage);
#endif
-
- // Some platforms don't set a default icon theme; chances are we can find our bundled Oxygen theme though
- if (QIcon::themeName().isEmpty())
- QIcon::setThemeName("oxygen");
}
return false;
}
+ // Set the icon theme
+ if (Quassel::isOptionSet("icontheme"))
+ QIcon::setThemeName(Quassel::optionValue("icontheme"));
+ else if (QIcon::themeName().isEmpty())
+ // Some platforms don't set a default icon theme; chances are we can find our bundled Oxygen theme though
+ QIcon::setThemeName("oxygen");
+
// session resume
QtUi *gui = new QtUi();
Client::init(gui);