From ea16fb8f1ae7ddfbcf6ff005778fa5603327d838 Mon Sep 17 00:00:00 2001 From: Joshua Goins Date: Sun, 8 Oct 2023 13:18:05 -0400 Subject: [PATCH] Move encrypted arguments option to developer settings This is a fairly developer-oriented option, there's no reason to set this per-profile. --- launcher/config.kcfg | 3 +++ launcher/include/launchercore.h | 5 +++++ launcher/include/profile.h | 5 ----- launcher/profileconfig.kcfg | 3 --- launcher/src/launchercore.cpp | 18 ++++++++++++++++-- launcher/ui/Settings/DeveloperSettings.qml | 16 ++++++++++++++++ launcher/ui/Settings/ProfileSettings.qml | 13 ------------- 7 files changed, 40 insertions(+), 23 deletions(-) diff --git a/launcher/config.kcfg b/launcher/config.kcfg index 2da48f3..2a83829 100644 --- a/launcher/config.kcfg +++ b/launcher/config.kcfg @@ -37,5 +37,8 @@ SPDX-License-Identifier: CC0-1.0 + + true + diff --git a/launcher/include/launchercore.h b/launcher/include/launchercore.h index fe30fce..0cbf86e 100755 --- a/launcher/include/launchercore.h +++ b/launcher/include/launchercore.h @@ -72,6 +72,7 @@ class LauncherCore : public QObject Q_PROPERTY(QString squareEnixServer READ squareEnixServer WRITE setSquareEnixServer NOTIFY squareEnixServerChanged) Q_PROPERTY(QString squareEnixLoginServer READ squareEnixLoginServer WRITE setSquareEnixLoginServer NOTIFY squareEnixLoginServerChanged) Q_PROPERTY(QString preferredProtocol READ preferredProtocol WRITE setPreferredProtocol NOTIFY preferredProtocolChanged) + Q_PROPERTY(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged) Q_PROPERTY(Headline *headline READ headline NOTIFY newsChanged) Q_PROPERTY(Profile *currentProfile READ currentProfile WRITE setCurrentProfile NOTIFY currentProfileChanged) Q_PROPERTY(Profile *autoLoginProfile READ autoLoginProfile WRITE setAutoLoginProfile NOTIFY autoLoginProfileChanged) @@ -145,6 +146,9 @@ public: [[nodiscard]] QString preferredProtocol() const; void setPreferredProtocol(const QString &value); + [[nodiscard]] bool argumentsEncrypted() const; + void setArgumentsEncrypted(bool value); + [[nodiscard]] QString autoLoginProfileName() const; [[nodiscard]] Profile *autoLoginProfile() const; void setAutoLoginProfile(Profile *value); @@ -182,6 +186,7 @@ signals: void squareEnixServerChanged(); void squareEnixLoginServerChanged(); void preferredProtocolChanged(); + void encryptedArgumentsChanged(); void loginError(QString message); void stageChanged(QString message); void stageIndeterminate(); diff --git a/launcher/include/profile.h b/launcher/include/profile.h index f03f9ae..e975e5f 100644 --- a/launcher/include/profile.h +++ b/launcher/include/profile.h @@ -35,7 +35,6 @@ class Profile : public QObject Q_PROPERTY(DalamudInjectMethod dalamudInjectMethod READ dalamudInjectMethod WRITE setDalamudInjectMethod NOTIFY dalamudInjectMethodChanged) Q_PROPERTY(int dalamudInjectDelay READ dalamudInjectDelay WRITE setDalamudInjectDelay NOTIFY dalamudInjectDelayChanged) Q_PROPERTY(DalamudChannel dalamudChannel READ dalamudChannel WRITE setDalamudChannel NOTIFY dalamudChannelChanged) - Q_PROPERTY(bool argumentsEncrypted READ argumentsEncrypted WRITE setArgumentsEncrypted NOTIFY encryptedArgumentsChanged) Q_PROPERTY(bool isGameInstalled READ isGameInstalled NOTIFY gameInstallChanged) Q_PROPERTY(Account *account READ account WRITE setAccount NOTIFY accountChanged) Q_PROPERTY(QString expansionVersionText READ expansionVersionText NOTIFY gameInstallChanged) @@ -116,9 +115,6 @@ public: [[nodiscard]] int dalamudInjectDelay() const; void setDalamudInjectDelay(int value); - [[nodiscard]] bool argumentsEncrypted() const; - void setArgumentsEncrypted(bool value); - [[nodiscard]] Account *account() const; [[nodiscard]] QString accountUuid() const; void setAccount(Account *account); @@ -175,7 +171,6 @@ Q_SIGNALS: void dalamudChannelChanged(); void dalamudInjectMethodChanged(); void dalamudInjectDelayChanged(); - void encryptedArgumentsChanged(); void accountChanged(); void wineChanged(); void loggedInChanged(); diff --git a/launcher/profileconfig.kcfg b/launcher/profileconfig.kcfg index c9be64a..a16b9e9 100644 --- a/launcher/profileconfig.kcfg +++ b/launcher/profileconfig.kcfg @@ -89,8 +89,5 @@ SPDX-License-Identifier: CC0-1.0 0 - - true - diff --git a/launcher/src/launchercore.cpp b/launcher/src/launchercore.cpp index 6f8e181..576c95b 100755 --- a/launcher/src/launchercore.cpp +++ b/launcher/src/launchercore.cpp @@ -222,14 +222,14 @@ QString LauncherCore::getGameArgs(const Profile &profile, const LoginAuth &auth) gameArgs.push_back({QStringLiteral("IsSteam"), QStringLiteral("1")}); } - const QString argFormat = profile.argumentsEncrypted() ? QStringLiteral(" /%1 =%2") : QStringLiteral(" %1=%2"); + const QString argFormat = argumentsEncrypted() ? QStringLiteral(" /%1 =%2") : QStringLiteral(" %1=%2"); QString argJoined; for (const auto &arg : gameArgs) { argJoined += argFormat.arg(arg.key, arg.value); } - return profile.argumentsEncrypted() ? encryptGameArg(argJoined) : argJoined; + return argumentsEncrypted() ? encryptGameArg(argJoined) : argJoined; } void LauncherCore::launchExecutable(const Profile &profile, QProcess *process, const QStringList &args, bool isGame, bool needsRegistrySetup) @@ -610,6 +610,20 @@ void LauncherCore::setPreferredProtocol(const QString &value) } } +bool LauncherCore::argumentsEncrypted() const +{ + return Config::encryptArguments(); +} + +void LauncherCore::setArgumentsEncrypted(const bool value) +{ + if (Config::encryptArguments() != value) { + Config::setEncryptArguments(value); + Config::self()->save(); + Q_EMIT encryptedArgumentsChanged(); + } +} + [[nodiscard]] QString LauncherCore::autoLoginProfileName() const { return Config::autoLoginProfile(); diff --git a/launcher/ui/Settings/DeveloperSettings.qml b/launcher/ui/Settings/DeveloperSettings.qml index 66c6ef8..24b3476 100644 --- a/launcher/ui/Settings/DeveloperSettings.qml +++ b/launcher/ui/Settings/DeveloperSettings.qml @@ -33,6 +33,22 @@ FormCard.FormCardPage { } } + FormCard.FormHeader { + title: i18n("Launching") + } + + FormCard.FormCard { + Layout.fillWidth: true + + FormCard.FormCheckDelegate { + id: encryptArgDelegate + + text: i18n("Encrypt Game Arguments") + checked: LauncherCore.argumentsEncrypted + onCheckedChanged: LauncherCore.argumentsEncrypted = checked + } + } + FormCard.FormHeader { title: i18n("Servers") } diff --git a/launcher/ui/Settings/ProfileSettings.qml b/launcher/ui/Settings/ProfileSettings.qml index 0b2e5d2..46a0a79 100644 --- a/launcher/ui/Settings/ProfileSettings.qml +++ b/launcher/ui/Settings/ProfileSettings.qml @@ -65,19 +65,6 @@ FormCard.FormCardPage { FormCard.FormDelegateSeparator { above: directXDelegate - below: encryptArgDelegate - } - - FormCard.FormCheckDelegate { - id: encryptArgDelegate - - text: i18n("Encrypt Game Arguments") - checked: page.profile.argumentsEncrypted - onCheckedChanged: page.profile.argumentsEncrypted = checked - } - - FormCard.FormDelegateSeparator { - above: encryptArgDelegate } FormCard.FormTextDelegate {