Use custom workdir even if it doesn't exist

This commit is contained in:
Ilya Fedin 2023-02-19 07:18:17 +04:00 committed by John Preston
parent 8099c28197
commit 9849b7adb6
3 changed files with 3 additions and 8 deletions

View File

@ -547,13 +547,9 @@ void Launcher::processArguments() {
gStartInTray = parseResult.contains("-startintray");
gQuit = parseResult.contains("-quit");
gSendPaths = parseResult.value("-sendpath", {});
gWorkingDir = parseResult.value("-workdir", {}).join(QString());
cForceWorkingDir(parseResult.value("-workdir", {}).join(QString()));
if (!gWorkingDir.isEmpty()) {
if (QDir().exists(gWorkingDir)) {
_customWorkingDir = true;
} else {
gWorkingDir = QString();
}
_customWorkingDir = true;
}
gStartUrl = parseResult.value("--", {}).join(QString());

View File

@ -407,8 +407,6 @@ void start(not_null<Core::Launcher*> launcher) {
}
}
cForceWorkingDir(QDir(cWorkingDir()).absolutePath() + '/');
// WinRT build requires the working dir to stay the same for plugin loading.
#ifndef Q_OS_WINRT
QDir().setCurrent(cWorkingDir());

View File

@ -51,6 +51,7 @@ DeclareSetting(QString, WorkingDir);
inline void cForceWorkingDir(const QString &newDir) {
cSetWorkingDir(newDir);
if (!gWorkingDir.isEmpty()) {
cSetWorkingDir(QDir(gWorkingDir).absolutePath() + '/');
QDir().mkpath(gWorkingDir);
QFile::setPermissions(gWorkingDir,
QFileDevice::ReadUser | QFileDevice::WriteUser | QFileDevice::ExeUser);