1
Fork 0
mirror of https://github.com/redstrate/Astra.git synced 2025-04-20 11:47:46 +00:00

Move encrypted arguments option to developer settings

This is a fairly developer-oriented option, there's no reason to set
this per-profile.
This commit is contained in:
Joshua Goins 2023-10-08 13:18:05 -04:00
parent bdcbcd9fc1
commit ea16fb8f1a
7 changed files with 40 additions and 23 deletions

View file

@ -37,5 +37,8 @@ SPDX-License-Identifier: CC0-1.0
</entry>
<entry name="AutoLoginProfile" type="String">
</entry>
<entry key="EncryptArguments" type="bool">
<default>true</default>
</entry>
</group>
</kcfg>

View file

@ -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();

View file

@ -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();

View file

@ -89,8 +89,5 @@ SPDX-License-Identifier: CC0-1.0
<entry key="DalamudInjectDelay" type="int">
<default>0</default>
</entry>
<entry key="EncryptArguments" type="bool">
<default>true</default>
</entry>
</group>
</kcfg>

View file

@ -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();

View file

@ -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")
}

View file

@ -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 {