refact: remove static env instance
Signed-off-by: ComixHe <heyuming@deepin.org>
This commit is contained in:
parent
d00cd17f2e
commit
f2d5b7b307
78
src/global.h
78
src/global.h
@ -366,58 +366,50 @@ inline QString getRelativePathFromAppId(const QString &id)
|
|||||||
|
|
||||||
inline QStringList getDesktopFileDirs()
|
inline QStringList getDesktopFileDirs()
|
||||||
{
|
{
|
||||||
const static auto XDGDataDirs = []() {
|
auto XDGDataDirs = QString::fromLocal8Bit(qgetenv("XDG_DATA_DIRS")).split(':', Qt::SkipEmptyParts);
|
||||||
auto XDGDataDirs = QString::fromLocal8Bit(qgetenv("XDG_DATA_DIRS")).split(':', Qt::SkipEmptyParts);
|
|
||||||
|
|
||||||
if (XDGDataDirs.isEmpty()) {
|
if (XDGDataDirs.isEmpty()) {
|
||||||
XDGDataDirs.append("/usr/local/share");
|
XDGDataDirs.append("/usr/local/share");
|
||||||
XDGDataDirs.append("/usr/share");
|
XDGDataDirs.append("/usr/share");
|
||||||
|
}
|
||||||
|
|
||||||
|
auto XDGDataHome = QString::fromLocal8Bit(qgetenv("XDG_DATA_HOME"));
|
||||||
|
if (XDGDataHome.isEmpty()) {
|
||||||
|
XDGDataHome = QString::fromLocal8Bit(qgetenv("HOME")) + QDir::separator() + ".local" + QDir::separator() + "share";
|
||||||
|
}
|
||||||
|
|
||||||
|
XDGDataDirs.push_front(std::move(XDGDataHome));
|
||||||
|
|
||||||
|
std::for_each(XDGDataDirs.begin(), XDGDataDirs.end(), [](QString &str) {
|
||||||
|
if (!str.endsWith(QDir::separator())) {
|
||||||
|
str.append(QDir::separator());
|
||||||
}
|
}
|
||||||
|
str.append("applications");
|
||||||
auto XDGDataHome = QString::fromLocal8Bit(qgetenv("XDG_DATA_HOME"));
|
});
|
||||||
if (XDGDataHome.isEmpty()) {
|
|
||||||
XDGDataHome = QString::fromLocal8Bit(qgetenv("HOME")) + QDir::separator() + ".local" + QDir::separator() + "share";
|
|
||||||
}
|
|
||||||
|
|
||||||
XDGDataDirs.push_front(std::move(XDGDataHome));
|
|
||||||
|
|
||||||
std::for_each(XDGDataDirs.begin(), XDGDataDirs.end(), [](QString &str) {
|
|
||||||
if (!str.endsWith(QDir::separator())) {
|
|
||||||
str.append(QDir::separator());
|
|
||||||
}
|
|
||||||
str.append("applications");
|
|
||||||
});
|
|
||||||
|
|
||||||
return XDGDataDirs;
|
|
||||||
}();
|
|
||||||
|
|
||||||
return XDGDataDirs;
|
return XDGDataDirs;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline QStringList getAutoStartDirs()
|
inline QStringList getAutoStartDirs()
|
||||||
{
|
{
|
||||||
const static auto XDGConfigDirs = []() {
|
auto XDGConfigDirs = QString::fromLocal8Bit(qgetenv("XDG_CONFIG_DIRS")).split(':', Qt::SkipEmptyParts);
|
||||||
auto XDGConfigDirs = QString::fromLocal8Bit(qgetenv("XDG_CONFIG_DIRS")).split(':', Qt::SkipEmptyParts);
|
if (XDGConfigDirs.isEmpty()) {
|
||||||
if (XDGConfigDirs.isEmpty()) {
|
XDGConfigDirs.append("/etc/xdg");
|
||||||
XDGConfigDirs.append("/etc/xdg");
|
}
|
||||||
|
|
||||||
|
auto XDGConfigHome = QString::fromLocal8Bit(qgetenv("XDG_CONFIG_HOME"));
|
||||||
|
if (XDGConfigHome.isEmpty()) {
|
||||||
|
XDGConfigHome = QString::fromLocal8Bit(qgetenv("HOME")) + QDir::separator() + ".config";
|
||||||
|
}
|
||||||
|
|
||||||
|
XDGConfigDirs.push_front(std::move(XDGConfigHome));
|
||||||
|
|
||||||
|
std::for_each(XDGConfigDirs.begin(), XDGConfigDirs.end(), [](QString &str) {
|
||||||
|
if (!str.endsWith(QDir::separator())) {
|
||||||
|
str.append(QDir::separator());
|
||||||
}
|
}
|
||||||
|
str.append("autostart");
|
||||||
auto XDGConfigHome = QString::fromLocal8Bit(qgetenv("XDG_CONFIG_HOME"));
|
});
|
||||||
if (XDGConfigHome.isEmpty()) {
|
|
||||||
XDGConfigHome = QString::fromLocal8Bit(qgetenv("HOME")) + QDir::separator() + ".config";
|
|
||||||
}
|
|
||||||
|
|
||||||
XDGConfigDirs.push_front(std::move(XDGConfigHome));
|
|
||||||
|
|
||||||
std::for_each(XDGConfigDirs.begin(), XDGConfigDirs.end(), [](QString &str) {
|
|
||||||
if (!str.endsWith(QDir::separator())) {
|
|
||||||
str.append(QDir::separator());
|
|
||||||
}
|
|
||||||
str.append("autostart");
|
|
||||||
});
|
|
||||||
|
|
||||||
return XDGConfigDirs;
|
|
||||||
}();
|
|
||||||
|
|
||||||
return XDGConfigDirs;
|
return XDGConfigDirs;
|
||||||
}
|
}
|
||||||
|
@ -18,7 +18,7 @@ public:
|
|||||||
env = qgetenv("XDG_DATA_DIRS");
|
env = qgetenv("XDG_DATA_DIRS");
|
||||||
auto curDir = QDir::current();
|
auto curDir = QDir::current();
|
||||||
QByteArray fakeXDG = (curDir.absolutePath() + QDir::separator() + "data").toLocal8Bit();
|
QByteArray fakeXDG = (curDir.absolutePath() + QDir::separator() + "data").toLocal8Bit();
|
||||||
qputenv("XDG_DATA_DIRS", fakeXDG);
|
ASSERT_TRUE(qputenv("XDG_DATA_DIRS", fakeXDG)) ;
|
||||||
DesktopErrorCode err;
|
DesktopErrorCode err;
|
||||||
auto file = DesktopFile::searchDesktopFileById("deepin-editor", err);
|
auto file = DesktopFile::searchDesktopFileById("deepin-editor", err);
|
||||||
if (!file.has_value()) {
|
if (!file.has_value()) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user