fix: correct getXDGDataDirs
Signed-off-by: black-desk <me@black-desk.cn>
This commit is contained in:
parent
e3bfb1cc7a
commit
b0c3475a3d
21
src/global.h
21
src/global.h
@ -306,23 +306,28 @@ inline QString getRelativePathFromAppId(const QString &id)
|
|||||||
inline QStringList getXDGDataDirs()
|
inline QStringList getXDGDataDirs()
|
||||||
{
|
{
|
||||||
const static auto XDGDataDirs = []() {
|
const static auto XDGDataDirs = []() {
|
||||||
auto env = QString::fromLocal8Bit(qgetenv("XDG_DATA_DIRS")).split(':', Qt::SkipEmptyParts);
|
auto XDGDataDirs = QString::fromLocal8Bit(qgetenv("XDG_DATA_DIRS")).split(':', Qt::SkipEmptyParts);
|
||||||
|
|
||||||
if (env.isEmpty()) {
|
if (XDGDataDirs.isEmpty()) {
|
||||||
env.append(QString{qgetenv("HOME")} + QDir::separator() + ".local/share");
|
XDGDataDirs.append("/usr/local/share");
|
||||||
env.append("/usr/local/share");
|
XDGDataDirs.append("/usr/share");
|
||||||
env.append("/usr/share");
|
|
||||||
qputenv("XDG_DATA_DIRS", env.join(':').toLocal8Bit());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
std::for_each(env.begin(), env.end(), [](QString &str) {
|
auto XDGDataHome = QString::fromLocal8Bit(qgetenv("XDG_DATA_HOME"));
|
||||||
|
if (XDGDataHome.isEmpty()) {
|
||||||
|
XDGDataHome = QString{qgetenv("HOME")} + QDir::separator() + ".local" + QDir::separator() + "share";
|
||||||
|
}
|
||||||
|
|
||||||
|
XDGDataDirs.push_front(XDGDataHome);
|
||||||
|
|
||||||
|
std::for_each(XDGDataDirs.begin(), XDGDataDirs.end(), [](QString &str) {
|
||||||
if (!str.endsWith(QDir::separator())) {
|
if (!str.endsWith(QDir::separator())) {
|
||||||
str.append(QDir::separator());
|
str.append(QDir::separator());
|
||||||
}
|
}
|
||||||
str.append("applications");
|
str.append("applications");
|
||||||
});
|
});
|
||||||
|
|
||||||
return env;
|
return XDGDataDirs;
|
||||||
}();
|
}();
|
||||||
|
|
||||||
return XDGDataDirs;
|
return XDGDataDirs;
|
||||||
|
Loading…
Reference in New Issue
Block a user