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 {