rpcs3/rpcs3/rpcs3qt/persistent_settings.cpp
Silent e938ddda2c Add playtime to the value from settings
Fixes playtime being wiped out when running
the game with --no-gui.
2020-09-23 00:06:29 +02:00

60 lines
1.6 KiB
C++

#include "stdafx.h"
#include "persistent_settings.h"
LOG_CHANNEL(cfg_log, "CFG");
persistent_settings::persistent_settings(QObject* parent) : settings(parent)
{
// Don't use the .ini file ending for now, as it will be confused for a regular gui_settings file.
m_settings.reset(new QSettings(ComputeSettingsDir() + gui::persistent::persistent_file_name + ".dat", QSettings::Format::IniFormat, parent));
}
void persistent_settings::SetPlaytime(const QString& serial, quint64 playtime)
{
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)
{
return m_playtime[serial];
}
void persistent_settings::SetLastPlayed(const QString& serial, const QString& date)
{
m_last_played[serial] = date;
SetValue(gui::persistent::last_played, serial, date);
}
QString persistent_settings::GetLastPlayed(const QString& serial)
{
return m_last_played[serial];
}
QString persistent_settings::GetCurrentUser(const QString& fallback) const
{
// Load user
QString user = GetValue(gui::persistent::active_user).toString();
if (user.isEmpty())
{
user = fallback;
}
bool is_valid_user;
const u32 user_id = user.toInt(&is_valid_user);
// Set user if valid
if (is_valid_user && user_id > 0)
{
return user;
}
cfg_log.fatal("Could not parse user setting: '%s' = '%d'.", user.toStdString(), user_id);
return QString();
}