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>
<entry name="AutoLoginProfile" type="String"> <entry name="AutoLoginProfile" type="String">
</entry> </entry>
<entry key="EncryptArguments" type="bool">
<default>true</default>
</entry>
</group> </group>
</kcfg> </kcfg>

View file

@ -72,6 +72,7 @@ class LauncherCore : public QObject
Q_PROPERTY(QString squareEnixServer READ squareEnixServer WRITE setSquareEnixServer NOTIFY squareEnixServerChanged) Q_PROPERTY(QString squareEnixServer READ squareEnixServer WRITE setSquareEnixServer NOTIFY squareEnixServerChanged)
Q_PROPERTY(QString squareEnixLoginServer READ squareEnixLoginServer WRITE setSquareEnixLoginServer NOTIFY squareEnixLoginServerChanged) Q_PROPERTY(QString squareEnixLoginServer READ squareEnixLoginServer WRITE setSquareEnixLoginServer NOTIFY squareEnixLoginServerChanged)
Q_PROPERTY(QString preferredProtocol READ preferredProtocol WRITE setPreferredProtocol NOTIFY preferredProtocolChanged) 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(Headline *headline READ headline NOTIFY newsChanged)
Q_PROPERTY(Profile *currentProfile READ currentProfile WRITE setCurrentProfile NOTIFY currentProfileChanged) Q_PROPERTY(Profile *currentProfile READ currentProfile WRITE setCurrentProfile NOTIFY currentProfileChanged)
Q_PROPERTY(Profile *autoLoginProfile READ autoLoginProfile WRITE setAutoLoginProfile NOTIFY autoLoginProfileChanged) Q_PROPERTY(Profile *autoLoginProfile READ autoLoginProfile WRITE setAutoLoginProfile NOTIFY autoLoginProfileChanged)
@ -145,6 +146,9 @@ public:
[[nodiscard]] QString preferredProtocol() const; [[nodiscard]] QString preferredProtocol() const;
void setPreferredProtocol(const QString &value); void setPreferredProtocol(const QString &value);
[[nodiscard]] bool argumentsEncrypted() const;
void setArgumentsEncrypted(bool value);
[[nodiscard]] QString autoLoginProfileName() const; [[nodiscard]] QString autoLoginProfileName() const;
[[nodiscard]] Profile *autoLoginProfile() const; [[nodiscard]] Profile *autoLoginProfile() const;
void setAutoLoginProfile(Profile *value); void setAutoLoginProfile(Profile *value);
@ -182,6 +186,7 @@ signals:
void squareEnixServerChanged(); void squareEnixServerChanged();
void squareEnixLoginServerChanged(); void squareEnixLoginServerChanged();
void preferredProtocolChanged(); void preferredProtocolChanged();
void encryptedArgumentsChanged();
void loginError(QString message); void loginError(QString message);
void stageChanged(QString message); void stageChanged(QString message);
void stageIndeterminate(); void stageIndeterminate();

View file

@ -35,7 +35,6 @@ class Profile : public QObject
Q_PROPERTY(DalamudInjectMethod dalamudInjectMethod READ dalamudInjectMethod WRITE setDalamudInjectMethod NOTIFY dalamudInjectMethodChanged) Q_PROPERTY(DalamudInjectMethod dalamudInjectMethod READ dalamudInjectMethod WRITE setDalamudInjectMethod NOTIFY dalamudInjectMethodChanged)
Q_PROPERTY(int dalamudInjectDelay READ dalamudInjectDelay WRITE setDalamudInjectDelay NOTIFY dalamudInjectDelayChanged) Q_PROPERTY(int dalamudInjectDelay READ dalamudInjectDelay WRITE setDalamudInjectDelay NOTIFY dalamudInjectDelayChanged)
Q_PROPERTY(DalamudChannel dalamudChannel READ dalamudChannel WRITE setDalamudChannel NOTIFY dalamudChannelChanged) 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(bool isGameInstalled READ isGameInstalled NOTIFY gameInstallChanged)
Q_PROPERTY(Account *account READ account WRITE setAccount NOTIFY accountChanged) Q_PROPERTY(Account *account READ account WRITE setAccount NOTIFY accountChanged)
Q_PROPERTY(QString expansionVersionText READ expansionVersionText NOTIFY gameInstallChanged) Q_PROPERTY(QString expansionVersionText READ expansionVersionText NOTIFY gameInstallChanged)
@ -116,9 +115,6 @@ public:
[[nodiscard]] int dalamudInjectDelay() const; [[nodiscard]] int dalamudInjectDelay() const;
void setDalamudInjectDelay(int value); void setDalamudInjectDelay(int value);
[[nodiscard]] bool argumentsEncrypted() const;
void setArgumentsEncrypted(bool value);
[[nodiscard]] Account *account() const; [[nodiscard]] Account *account() const;
[[nodiscard]] QString accountUuid() const; [[nodiscard]] QString accountUuid() const;
void setAccount(Account *account); void setAccount(Account *account);
@ -175,7 +171,6 @@ Q_SIGNALS:
void dalamudChannelChanged(); void dalamudChannelChanged();
void dalamudInjectMethodChanged(); void dalamudInjectMethodChanged();
void dalamudInjectDelayChanged(); void dalamudInjectDelayChanged();
void encryptedArgumentsChanged();
void accountChanged(); void accountChanged();
void wineChanged(); void wineChanged();
void loggedInChanged(); void loggedInChanged();

View file

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

View file

@ -222,14 +222,14 @@ QString LauncherCore::getGameArgs(const Profile &profile, const LoginAuth &auth)
gameArgs.push_back({QStringLiteral("IsSteam"), QStringLiteral("1")}); 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; QString argJoined;
for (const auto &arg : gameArgs) { for (const auto &arg : gameArgs) {
argJoined += argFormat.arg(arg.key, arg.value); 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) 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 [[nodiscard]] QString LauncherCore::autoLoginProfileName() const
{ {
return Config::autoLoginProfile(); 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 { FormCard.FormHeader {
title: i18n("Servers") title: i18n("Servers")
} }

View file

@ -65,19 +65,6 @@ FormCard.FormCardPage {
FormCard.FormDelegateSeparator { FormCard.FormDelegateSeparator {
above: directXDelegate 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 { FormCard.FormTextDelegate {