Skip to content

Commit 378f9c9

Browse files
committed
Add commit for secrets file
1 parent ebd50b9 commit 378f9c9

File tree

3 files changed

+50
-0
lines changed

3 files changed

+50
-0
lines changed

pcsx2-qt/QtHost.cpp

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ namespace QtHost
7575
static bool ParseCommandLineOptions(const QStringList& args, std::shared_ptr<VMBootParameters>& autoboot);
7676
static bool InitializeConfig();
7777
static void SaveSettings();
78+
static void SaveSecretsSettings();
7879
static void HookSignals();
7980
static void RegisterTypes();
8081
static bool RunSetupWizard();
@@ -1439,6 +1440,24 @@ void QtHost::SaveSettings()
14391440
}
14401441
}
14411442

1443+
void QtHost::SaveSecretsSettings()
1444+
{
1445+
pxAssertRel(!g_emu_thread->isOnEmuThread(), "Saving should happen on the UI thread.");
1446+
1447+
{
1448+
Error error;
1449+
auto lock = Host::GetSettingsLock();
1450+
if (!s_secrets_settings_interface->Save(&error))
1451+
Console.ErrorFmt("Failed to save settings: {}", error.GetDescription());
1452+
}
1453+
1454+
if (s_settings_save_timer)
1455+
{
1456+
s_settings_save_timer->deleteLater();
1457+
s_settings_save_timer = nullptr;
1458+
}
1459+
}
1460+
14421461
void Host::CommitBaseSettingChanges()
14431462
{
14441463
if (!QtHost::IsOnUIThread())
@@ -1447,6 +1466,35 @@ void Host::CommitBaseSettingChanges()
14471466
return;
14481467
}
14491468

1469+
auto lock = Host::GetSettingsLock();
1470+
if (s_settings_save_timer)
1471+
return;
1472+
1473+
s_settings_save_timer = new QTimer;
1474+
s_settings_save_timer->connect(s_settings_save_timer, &QTimer::timeout, &QtHost::SaveSecretsSettings);
1475+
s_settings_save_timer->setSingleShot(true);
1476+
s_settings_save_timer->start(SETTINGS_SAVE_DELAY);
1477+
1478+
static bool connected = false;
1479+
if (!connected)
1480+
{
1481+
QObject::connect(QCoreApplication::instance(), &QCoreApplication::aboutToQuit, []() {
1482+
delete s_settings_save_timer;
1483+
s_settings_save_timer = nullptr;
1484+
});
1485+
1486+
connected = true;
1487+
}
1488+
}
1489+
1490+
void Host::CommitSecretsSettingChanges()
1491+
{
1492+
if (!QtHost::IsOnUIThread())
1493+
{
1494+
QtHost::RunOnUIThread(&Host::CommitSecretsSettingChanges);
1495+
return;
1496+
}
1497+
14501498
auto lock = Host::GetSettingsLock();
14511499
if (s_settings_save_timer)
14521500
return;

pcsx2/Achievements.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1776,6 +1776,7 @@ void Achievements::ClientLoginWithPasswordCallback(int result, const char* error
17761776
Host::SetBaseStringSettingValue("Achievements", "LoginTimestamp", fmt::format("{}", std::time(nullptr)).c_str());
17771777
Host::Internal::GetSecretsSettingsLayer()->SetStringValue("Achievements", "Token", user->token);
17781778
Host::CommitBaseSettingChanges();
1779+
Host::CommitSecretsSettingChanges();
17791780

17801781
ShowLoginSuccess(client);
17811782
}

pcsx2/Host.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ namespace Host
124124
bool ContainsBaseSettingValue(const char* section, const char* key);
125125
void RemoveBaseSettingValue(const char* section, const char* key);
126126
void CommitBaseSettingChanges();
127+
void CommitSecretsSettingChanges();
127128

128129
/// Settings access, thread-safe.
129130
std::string GetStringSettingValue(const char* section, const char* key, const char* default_value = "");

0 commit comments

Comments
 (0)