Add playtime to the value from settings

Fixes playtime being wiped out when running
the game with --no-gui.
This commit is contained in:
Silent 2020-09-22 22:51:22 +02:00 committed by Megamouse
parent 97e26f9d6c
commit e938ddda2c
3 changed files with 13 additions and 8 deletions

View file

@ -406,8 +406,7 @@ void gui_application::UpdatePlaytime()
return; return;
} }
const quint64 playtime = m_persistent_settings->GetPlaytime(serial) + m_timer_playtime.restart(); m_persistent_settings->AddPlaytime(serial, m_timer_playtime.restart());
m_persistent_settings->SetPlaytime(serial, playtime);
m_persistent_settings->SetLastPlayed(serial, QDate::currentDate().toString(gui::persistent::last_played_date_format)); m_persistent_settings->SetLastPlayed(serial, QDate::currentDate().toString(gui::persistent::last_played_date_format));
} }
@ -425,8 +424,7 @@ void gui_application::StopPlaytime()
return; return;
} }
const quint64 playtime = m_persistent_settings->GetPlaytime(serial) + m_timer_playtime.elapsed(); m_persistent_settings->AddPlaytime(serial, m_timer_playtime.restart());
m_persistent_settings->SetPlaytime(serial, playtime);
m_persistent_settings->SetLastPlayed(serial, QDate::currentDate().toString(gui::persistent::last_played_date_format)); m_persistent_settings->SetLastPlayed(serial, QDate::currentDate().toString(gui::persistent::last_played_date_format));
m_timer_playtime.invalidate(); m_timer_playtime.invalidate();
} }

View file

@ -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)); 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; m_playtime[serial] = playtime;
SetValue(gui::persistent::playtime, serial, m_playtime[serial]); 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) quint64 persistent_settings::GetPlaytime(const QString& serial)

View file

@ -37,7 +37,8 @@ public:
QString GetCurrentUser(const QString& fallback) const; QString GetCurrentUser(const QString& fallback) const;
public Q_SLOTS: 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); quint64 GetPlaytime(const QString& serial);
void SetLastPlayed(const QString& serial, const QString& date); void SetLastPlayed(const QString& serial, const QString& date);