mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-07 07:33:52 +02:00
Use argv0 for shortcuts when updater is disabled
This commit is contained in:
parent
8aee08eaef
commit
1d234ea990
5 changed files with 28 additions and 16 deletions
|
@ -1762,9 +1762,7 @@ void Application::startShortcuts() {
|
||||||
|
|
||||||
void Application::RegisterUrlScheme() {
|
void Application::RegisterUrlScheme() {
|
||||||
base::Platform::RegisterUrlScheme(base::Platform::UrlSchemeDescriptor{
|
base::Platform::RegisterUrlScheme(base::Platform::UrlSchemeDescriptor{
|
||||||
.executable = (!Platform::IsLinux() || !Core::UpdaterDisabled())
|
.executable = Platform::ExecutablePathForShortcuts(),
|
||||||
? (cExeDir() + cExeName())
|
|
||||||
: cExeName(),
|
|
||||||
.arguments = Launcher::Instance().customWorkingDir()
|
.arguments = Launcher::Instance().customWorkingDir()
|
||||||
? u"-workdir \"%1\""_q.arg(cWorkingDir())
|
? u"-workdir \"%1\""_q.arg(cWorkingDir())
|
||||||
: QString(),
|
: QString(),
|
||||||
|
|
|
@ -191,6 +191,7 @@ bool GenerateDesktopFile(
|
||||||
|
|
||||||
const auto sourceFile = kDesktopFile.utf16();
|
const auto sourceFile = kDesktopFile.utf16();
|
||||||
const auto targetFile = targetPath + QGuiApplication::desktopFileName();
|
const auto targetFile = targetPath + QGuiApplication::desktopFileName();
|
||||||
|
const auto executable = ExecutablePathForShortcuts();
|
||||||
|
|
||||||
const auto sourceText = [&] {
|
const auto sourceText = [&] {
|
||||||
QFile source(sourceFile);
|
QFile source(sourceFile);
|
||||||
|
@ -224,11 +225,7 @@ bool GenerateDesktopFile(
|
||||||
target->set_string(
|
target->set_string(
|
||||||
group,
|
group,
|
||||||
"TryExec",
|
"TryExec",
|
||||||
KShell::joinArgs({
|
KShell::joinArgs({ executable }).replace(
|
||||||
!Core::UpdaterDisabled()
|
|
||||||
? (cExeDir() + cExeName())
|
|
||||||
: cExeName()
|
|
||||||
}).replace(
|
|
||||||
'\\',
|
'\\',
|
||||||
qstr("\\\\")).toStdString());
|
qstr("\\\\")).toStdString());
|
||||||
}
|
}
|
||||||
|
@ -236,9 +233,7 @@ bool GenerateDesktopFile(
|
||||||
if (target->has_key(group, "Exec")) {
|
if (target->has_key(group, "Exec")) {
|
||||||
if (group == "Desktop Entry" && !args.isEmpty()) {
|
if (group == "Desktop Entry" && !args.isEmpty()) {
|
||||||
QStringList exec;
|
QStringList exec;
|
||||||
exec.append(!Core::UpdaterDisabled()
|
exec.append(executable);
|
||||||
? (cExeDir() + cExeName())
|
|
||||||
: cExeName());
|
|
||||||
if (Core::Launcher::Instance().customWorkingDir()) {
|
if (Core::Launcher::Instance().customWorkingDir()) {
|
||||||
exec.append(u"-workdir"_q);
|
exec.append(u"-workdir"_q);
|
||||||
exec.append(cWorkingDir());
|
exec.append(cWorkingDir());
|
||||||
|
@ -259,9 +254,7 @@ bool GenerateDesktopFile(
|
||||||
qstr("\\")));
|
qstr("\\")));
|
||||||
|
|
||||||
if (!exec.isEmpty()) {
|
if (!exec.isEmpty()) {
|
||||||
exec[0] = !Core::UpdaterDisabled()
|
exec[0] = executable;
|
||||||
? (cExeDir() + cExeName())
|
|
||||||
: cExeName();
|
|
||||||
if (Core::Launcher::Instance().customWorkingDir()) {
|
if (Core::Launcher::Instance().customWorkingDir()) {
|
||||||
exec.insert(1, u"-workdir"_q);
|
exec.insert(1, u"-workdir"_q);
|
||||||
exec.insert(2, cWorkingDir());
|
exec.insert(2, cWorkingDir());
|
||||||
|
@ -451,6 +444,20 @@ bool SkipTaskbarSupported() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString ExecutablePathForShortcuts() {
|
||||||
|
if (Core::UpdaterDisabled()) {
|
||||||
|
const auto &arguments = Core::Launcher::Instance().arguments();
|
||||||
|
if (!arguments.isEmpty()) {
|
||||||
|
const auto result = QFileInfo(arguments.first()).fileName();
|
||||||
|
if (!result.isEmpty()) {
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return cExeName();
|
||||||
|
}
|
||||||
|
return cExeDir() + cExeName();
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Platform
|
} // namespace Platform
|
||||||
|
|
||||||
QString psAppDataPath() {
|
QString psAppDataPath() {
|
||||||
|
|
|
@ -40,6 +40,10 @@ inline uint64 ActivationWindowId(not_null<QWidget*> window) {
|
||||||
inline void ActivateOtherProcess(uint64 processId, uint64 windowId) {
|
inline void ActivateOtherProcess(uint64 processId, uint64 windowId) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline QString ExecutablePathForShortcuts() {
|
||||||
|
return cExeDir() + cExeName();
|
||||||
|
}
|
||||||
|
|
||||||
namespace ThirdParty {
|
namespace ThirdParty {
|
||||||
|
|
||||||
inline void start() {
|
inline void start() {
|
||||||
|
|
|
@ -46,10 +46,9 @@ bool TrayIconSupported();
|
||||||
bool SkipTaskbarSupported();
|
bool SkipTaskbarSupported();
|
||||||
void WriteCrashDumpDetails();
|
void WriteCrashDumpDetails();
|
||||||
void NewVersionLaunched(int oldVersion);
|
void NewVersionLaunched(int oldVersion);
|
||||||
|
|
||||||
[[nodiscard]] QImage DefaultApplicationIcon();
|
[[nodiscard]] QImage DefaultApplicationIcon();
|
||||||
|
|
||||||
[[nodiscard]] bool PreventsQuit(Core::QuitReason reason);
|
[[nodiscard]] bool PreventsQuit(Core::QuitReason reason);
|
||||||
|
[[nodiscard]] QString ExecutablePathForShortcuts();
|
||||||
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(6, 5, 0)
|
||||||
[[nodiscard]] std::optional<bool> IsDarkMode();
|
[[nodiscard]] std::optional<bool> IsDarkMode();
|
||||||
|
|
|
@ -42,6 +42,10 @@ void SetWindowPriority(not_null<QWidget*> window, uint32 priority);
|
||||||
// Activate window with windowId (if found) or the largest priority.
|
// Activate window with windowId (if found) or the largest priority.
|
||||||
void ActivateOtherProcess(uint64 processId, uint64 windowId);
|
void ActivateOtherProcess(uint64 processId, uint64 windowId);
|
||||||
|
|
||||||
|
inline QString ExecutablePathForShortcuts() {
|
||||||
|
return cExeDir() + cExeName();
|
||||||
|
}
|
||||||
|
|
||||||
namespace ThirdParty {
|
namespace ThirdParty {
|
||||||
|
|
||||||
void start();
|
void start();
|
||||||
|
|
Loading…
Add table
Reference in a new issue