From e938ddda2cd75d7e52a3cf95dcea4cea83c238f5 Mon Sep 17 00:00:00 2001 From: Silent Date: Tue, 22 Sep 2020 22:51:22 +0200 Subject: [PATCH] Add playtime to the value from settings Fixes playtime being wiped out when running the game with --no-gui. --- rpcs3/rpcs3qt/gui_application.cpp | 6 ++---- rpcs3/rpcs3qt/persistent_settings.cpp | 12 +++++++++--- rpcs3/rpcs3qt/persistent_settings.h | 3 ++- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/rpcs3/rpcs3qt/gui_application.cpp b/rpcs3/rpcs3qt/gui_application.cpp index 6eeaa0a94d..3f192e34a9 100644 --- a/rpcs3/rpcs3qt/gui_application.cpp +++ b/rpcs3/rpcs3qt/gui_application.cpp @@ -406,8 +406,7 @@ void gui_application::UpdatePlaytime() return; } - const quint64 playtime = m_persistent_settings->GetPlaytime(serial) + m_timer_playtime.restart(); - m_persistent_settings->SetPlaytime(serial, playtime); + m_persistent_settings->AddPlaytime(serial, m_timer_playtime.restart()); m_persistent_settings->SetLastPlayed(serial, QDate::currentDate().toString(gui::persistent::last_played_date_format)); } @@ -425,8 +424,7 @@ void gui_application::StopPlaytime() return; } - const quint64 playtime = m_persistent_settings->GetPlaytime(serial) + m_timer_playtime.elapsed(); - m_persistent_settings->SetPlaytime(serial, playtime); + m_persistent_settings->AddPlaytime(serial, m_timer_playtime.restart()); m_persistent_settings->SetLastPlayed(serial, QDate::currentDate().toString(gui::persistent::last_played_date_format)); m_timer_playtime.invalidate(); } diff --git a/rpcs3/rpcs3qt/persistent_settings.cpp b/rpcs3/rpcs3qt/persistent_settings.cpp index d8fef4aa5f..55de2b916a 100644 --- a/rpcs3/rpcs3qt/persistent_settings.cpp +++ b/rpcs3/rpcs3qt/persistent_settings.cpp @@ -9,10 +9,16 @@ persistent_settings::persistent_settings(QObject* parent) : settings(parent) m_settings.reset(new QSettings(ComputeSettingsDir() + gui::persistent::persistent_file_name + ".dat", QSettings::Format::IniFormat, parent)); } -void persistent_settings::SetPlaytime(const QString& serial, const quint64& elapsed) +void persistent_settings::SetPlaytime(const QString& serial, quint64 playtime) { - m_playtime[serial] = elapsed; - SetValue(gui::persistent::playtime, serial, m_playtime[serial]); + m_playtime[serial] = playtime; + SetValue(gui::persistent::playtime, serial, playtime); +} + +void persistent_settings::AddPlaytime(const QString& serial, quint64 elapsed) +{ + const quint64 playtime = GetValue(gui::persistent::playtime, serial, 0).toULongLong(); + SetPlaytime(serial, playtime + elapsed); } quint64 persistent_settings::GetPlaytime(const QString& serial) diff --git a/rpcs3/rpcs3qt/persistent_settings.h b/rpcs3/rpcs3qt/persistent_settings.h index 302d62437d..59e6fa30a2 100644 --- a/rpcs3/rpcs3qt/persistent_settings.h +++ b/rpcs3/rpcs3qt/persistent_settings.h @@ -37,7 +37,8 @@ public: QString GetCurrentUser(const QString& fallback) const; public Q_SLOTS: - void SetPlaytime(const QString& serial, const quint64& elapsed); + void SetPlaytime(const QString& serial, quint64 playtime); + void AddPlaytime(const QString& serial, quint64 elapsed); quint64 GetPlaytime(const QString& serial); void SetLastPlayed(const QString& serial, const QString& date);