GH-1217 add simple instance play time tracking

Not reliable in the face of crashes... but what is?
This commit is contained in:
Petr Mrázek
2015-09-22 01:06:45 +02:00
parent b107617112
commit 9ba1cd15e7
13 changed files with 103 additions and 51 deletions

View File

@ -38,6 +38,7 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s
connect(ENV.icons().get(), SIGNAL(iconUpdated(QString)), SLOT(iconUpdated(QString)));
m_settings->registerSetting("notes", "");
m_settings->registerSetting("lastLaunchTime", 0);
m_settings->registerSetting("totalTimePlayed", 0);
// Custom Commands
auto commandSetting = m_settings->registerSetting({"OverrideCommands","OverrideLaunchCmd"}, false);
@ -93,9 +94,31 @@ bool BaseInstance::isRunning() const
void BaseInstance::setRunning(bool running)
{
if(running && !m_isRunning)
{
m_timeStarted = QDateTime::currentDateTime();
}
else if(!running && m_isRunning)
{
qint64 current = settings()->get("totalTimePlayed").toLongLong();
QDateTime timeEnded = QDateTime::currentDateTime();
settings()->set("totalTimePlayed", current + m_timeStarted.secsTo(timeEnded));
emit propertiesChanged(this);
}
m_isRunning = running;
}
int64_t BaseInstance::totalTimePlayed()
{
qint64 current = settings()->get("totalTimePlayed").toLongLong();
if(m_isRunning)
{
QDateTime timeNow = QDateTime::currentDateTime();
return current + m_timeStarted.secsTo(timeNow);
}
return current;
}
QString BaseInstance::instanceType() const
{
return m_settings->get("InstanceType").toString();