2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-01 06:55:58 +00:00

Generalize backward compatibility of linux launcher

This commit is contained in:
Ilya Fedin
2020-02-20 07:00:26 +04:00
committed by John Preston
parent ca1623f34a
commit 5bdc0db9e2
2 changed files with 43 additions and 49 deletions

View File

@@ -282,25 +282,34 @@ QString SingleInstanceLocalServerName(const QString &hash) {
QString GetLauncherBasename() {
static const auto LauncherBasename = [&] {
if (!InSnap()) {
return qsl(MACRO_TO_STRING(TDESKTOP_LAUNCHER_BASENAME));
if (InSnap()) {
const auto snapNameKey =
qEnvironmentVariableIsSet("SNAP_INSTANCE_NAME")
? "SNAP_INSTANCE_NAME"
: "SNAP_NAME";
return qsl("%1_%2")
.arg(QString::fromLatin1(qgetenv(snapNameKey)))
.arg(cExeName());
}
const auto snapNameKey =
qEnvironmentVariableIsSet("SNAP_INSTANCE_NAME")
? "SNAP_INSTANCE_NAME"
: "SNAP_NAME";
const auto possibleBasenames = std::vector<QString>{
qsl(MACRO_TO_STRING(TDESKTOP_LAUNCHER_BASENAME)),
qsl("Telegram")
};
const auto result = qsl("%1_%2")
.arg(QString::fromLatin1(qgetenv(snapNameKey)))
.arg(cExeName());
for (const auto &it : possibleBasenames) {
if (!QStandardPaths::locate(
QStandardPaths::ApplicationsLocation,
it + qsl(".desktop")).isEmpty()) {
return it;
}
}
LOG(("SNAP Environment detected, launcher filename is %1.desktop")
.arg(result));
return result;
return possibleBasenames[0];
}();
LOG(("Launcher filename is %1.desktop").arg(LauncherBasename));
return LauncherBasename;
}