From 1762d2fc7de99e38477a517c9b379447fd00b968 Mon Sep 17 00:00:00 2001 From: Leland Liu <14846866+lelandliu@users.noreply.github.com> Date: Tue, 9 Jul 2019 22:23:24 -0400 Subject: Added total playtime --- api/logic/InstanceList.cpp | 18 +++++++++++++++++- api/logic/InstanceList.h | 4 ++++ 2 files changed, 21 insertions(+), 1 deletion(-) (limited to 'api/logic') diff --git a/api/logic/InstanceList.cpp b/api/logic/InstanceList.cpp index 02fae6ac..cb38853b 100644 --- a/api/logic/InstanceList.cpp +++ b/api/logic/InstanceList.cpp @@ -387,9 +387,19 @@ InstanceList::InstListError InstanceList::loadList() add(newList); } m_dirty = false; + updateTotalPlayTime(); return NoError; } +void InstanceList::updateTotalPlayTime() +{ + totalPlayTime = 0; + for(auto const& itr : m_instances) + { + totalPlayTime += itr.get()->totalTimePlayed(); + } +} + void InstanceList::saveNow() { for(auto & item: m_instances) @@ -475,6 +485,7 @@ void InstanceList::propertiesChanged(BaseInstance *inst) if (i != -1) { emit dataChanged(index(i), index(i)); + updateTotalPlayTime(); } } @@ -848,4 +859,9 @@ bool InstanceList::destroyStagingPath(const QString& keyPath) return FS::deletePath(keyPath); } -#include "InstanceList.moc" \ No newline at end of file +int InstanceList::getTotalPlayTime() { + updateTotalPlayTime(); + return totalPlayTime; +} + +#include "InstanceList.moc" diff --git a/api/logic/InstanceList.h b/api/logic/InstanceList.h index 8215cb66..56ee3be4 100644 --- a/api/logic/InstanceList.h +++ b/api/logic/InstanceList.h @@ -128,6 +128,8 @@ public: */ bool destroyStagingPath(const QString & keyPath); + int getTotalPlayTime(); + signals: void dataIsInvalid(); void instancesChanged(); @@ -145,6 +147,7 @@ private slots: private: int getInstIndex(BaseInstance *inst) const; + void updateTotalPlayTime(); void suspendWatch(); void resumeWatch(); void add(const QList &list); @@ -155,6 +158,7 @@ private: private: int m_watchLevel = 0; + int totalPlayTime = 0; bool m_dirty = false; QList m_instances; QSet m_groupNameCache; -- cgit