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

Move Account::updateConfig to LauncherCore

This is the last LauncherCore dependency inside of Account, and it fits
better in LauncherCore anyway.
This commit is contained in:
Joshua Goins 2024-08-22 18:50:43 -04:00
parent b7aafea3ea
commit ba89c7f487
4 changed files with 39 additions and 41 deletions

View file

@ -83,9 +83,6 @@ public:
[[nodiscard]] QDir getConfigDir() const; [[nodiscard]] QDir getConfigDir() const;
[[nodiscard]] Q_INVOKABLE QString getConfigPath() const; [[nodiscard]] Q_INVOKABLE QString getConfigPath() const;
/// Updates FFXIV.cfg with some recommended options like turning the opening cutscene movie off
void updateConfig();
[[nodiscard]] bool needsPassword() const; [[nodiscard]] bool needsPassword() const;
Q_SIGNALS: Q_SIGNALS:

View file

@ -164,6 +164,9 @@ private:
QCoro::Task<> handleGameExit(const Profile *profile); QCoro::Task<> handleGameExit(const Profile *profile);
/// Updates FFXIV.cfg with some recommended options like turning the opening cutscene movie off
void updateConfig(const Account *account);
SteamAPI *m_steamApi = nullptr; SteamAPI *m_steamApi = nullptr;
bool m_loadingFinished = false; bool m_loadingFinished = false;

View file

@ -281,43 +281,6 @@ QCoro::Task<QString> Account::getKeychainValue(const QString &key)
} }
} }
// ReSharper disable once CppMemberFunctionMayBeConst
// ^ Could be const, but this function shouldn't be considered as such
void Account::updateConfig()
{
const auto configDir = getConfigDir().absoluteFilePath(QStringLiteral("FFXIV.cfg"));
if (!QFile::exists(configDir)) {
return;
}
qInfo(ASTRA_LOG) << "Updating FFXIV.cfg...";
const auto configDirStd = configDir.toStdString();
const auto cfgFileBuffer = physis_read_file(configDirStd.c_str());
const auto cfgFile = physis_cfg_parse(cfgFileBuffer);
// Ensure that the opening cutscene movie never plays, since it's broken in most versions of Wine
physis_cfg_set_value(cfgFile, "CutsceneMovieOpening", "1");
const auto screenshotDir = m_launcher.settings()->screenshotDir();
Utility::createPathIfNeeded(screenshotDir);
const auto screenshotDirWin = Utility::toWindowsPath(screenshotDir);
const auto screenshotDirWinStd = screenshotDirWin.toStdString();
// Set the screenshot path
physis_cfg_set_value(cfgFile, "ScreenShotDir", screenshotDirWinStd.c_str());
const auto buffer = physis_cfg_write(cfgFile);
QFile file(configDir);
file.open(QIODevice::WriteOnly);
file.write(reinterpret_cast<const char *>(buffer.data), buffer.size);
file.close();
}
bool Account::needsPassword() const bool Account::needsPassword() const
{ {
return m_needsPassword; return m_needsPassword;

View file

@ -440,7 +440,7 @@ QCoro::Task<> LauncherCore::beginLogin(LoginInformation &info)
{ {
// Hmm, I don't think we're set up for this yet? // Hmm, I don't think we're set up for this yet?
if (!info.profile->isBenchmark()) { if (!info.profile->isBenchmark()) {
info.profile->account()->updateConfig(); updateConfig(info.profile->account());
} }
#ifdef BUILD_SYNC #ifdef BUILD_SYNC
@ -595,4 +595,39 @@ QCoro::Task<> LauncherCore::handleGameExit(const Profile *profile)
co_return; co_return;
} }
void LauncherCore::updateConfig(const Account *account)
{
const auto configDir = account->getConfigDir().absoluteFilePath(QStringLiteral("FFXIV.cfg"));
if (!QFile::exists(configDir)) {
return;
}
qInfo(ASTRA_LOG) << "Updating FFXIV.cfg...";
const auto configDirStd = configDir.toStdString();
const auto cfgFileBuffer = physis_read_file(configDirStd.c_str());
const auto cfgFile = physis_cfg_parse(cfgFileBuffer);
// Ensure that the opening cutscene movie never plays, since it's broken in most versions of Wine
physis_cfg_set_value(cfgFile, "CutsceneMovieOpening", "1");
const auto screenshotDir = settings()->screenshotDir();
Utility::createPathIfNeeded(screenshotDir);
const auto screenshotDirWin = Utility::toWindowsPath(screenshotDir);
const auto screenshotDirWinStd = screenshotDirWin.toStdString();
// Set the screenshot path
physis_cfg_set_value(cfgFile, "ScreenShotDir", screenshotDirWinStd.c_str());
const auto buffer = physis_cfg_write(cfgFile);
QFile file(configDir);
file.open(QIODevice::WriteOnly);
file.write(reinterpret_cast<const char *>(buffer.data), buffer.size);
file.close();
}
#include "moc_launchercore.cpp" #include "moc_launchercore.cpp"