core: add $XDG_DATA_DIRS/pixmaps to QIcon fallback path
Picks up some missing app icons.
This commit is contained in:
parent
d8b72b4c31
commit
ce5ddbf8ba
|
@ -9,6 +9,7 @@
|
|||
#include <qfileinfo.h>
|
||||
#include <qguiapplication.h>
|
||||
#include <qhash.h>
|
||||
#include <qicon.h>
|
||||
#include <qlogging.h>
|
||||
#include <qqmldebug.h>
|
||||
#include <qquickwindow.h>
|
||||
|
@ -333,6 +334,32 @@ int qs_main(int argc, char** argv) {
|
|||
qputenv("QSG_USE_SIMPLE_ANIMATION_DRIVER", "1");
|
||||
}
|
||||
|
||||
// Some programs place icons in the pixmaps folder instead of the icons folder.
|
||||
// This seems to be controlled by the QPA and qt6ct does not provide it.
|
||||
{
|
||||
QList<QString> dataPaths;
|
||||
|
||||
if (qEnvironmentVariableIsSet("XDG_DATA_DIRS")) {
|
||||
auto var = qEnvironmentVariable("XDG_DATA_DIRS");
|
||||
dataPaths = var.split(u':', Qt::SkipEmptyParts);
|
||||
} else {
|
||||
dataPaths.push_back("/usr/local/share");
|
||||
dataPaths.push_back("/usr/share");
|
||||
}
|
||||
|
||||
auto fallbackPaths = QIcon::fallbackSearchPaths();
|
||||
|
||||
for (auto& path: dataPaths) {
|
||||
auto newPath = QDir(path).filePath("pixmaps");
|
||||
|
||||
if (!fallbackPaths.contains(newPath)) {
|
||||
fallbackPaths.push_back(newPath);
|
||||
}
|
||||
}
|
||||
|
||||
QIcon::setFallbackSearchPaths(fallbackPaths);
|
||||
}
|
||||
|
||||
QGuiApplication::setDesktopSettingsAware(desktopSettingsAware);
|
||||
|
||||
QGuiApplication* app = nullptr;
|
||||
|
|
Loading…
Reference in a new issue