feat: add support for sorting play times
Signed-off-by: Sefa Eyeoglu <contact@scrumplex.net>
This commit is contained in:
parent
24060291c8
commit
b0dc7927fb
@ -252,7 +252,7 @@ void BaseInstance::setRunning(bool running)
|
||||
emit runningStatusChanged(running);
|
||||
}
|
||||
|
||||
int64_t BaseInstance::totalTimePlayed() const
|
||||
quint64 BaseInstance::totalTimePlayed() const
|
||||
{
|
||||
qint64 current = m_settings->get("totalTimePlayed").toLongLong();
|
||||
if(m_isRunning)
|
||||
@ -263,7 +263,7 @@ int64_t BaseInstance::totalTimePlayed() const
|
||||
return current;
|
||||
}
|
||||
|
||||
int64_t BaseInstance::lastTimePlayed() const
|
||||
quint64 BaseInstance::lastTimePlayed() const
|
||||
{
|
||||
if(m_isRunning)
|
||||
{
|
||||
@ -306,12 +306,12 @@ bool BaseInstance::reloadSettings()
|
||||
return m_settings->reload();
|
||||
}
|
||||
|
||||
qint64 BaseInstance::lastLaunch() const
|
||||
quint64 BaseInstance::lastLaunch() const
|
||||
{
|
||||
return m_settings->get("lastLaunchTime").value<qint64>();
|
||||
return m_settings->get("lastLaunchTime").value<quint64>();
|
||||
}
|
||||
|
||||
void BaseInstance::setLastLaunch(qint64 val)
|
||||
void BaseInstance::setLastLaunch(quint64 val)
|
||||
{
|
||||
//FIXME: if no change, do not set. setting involves saving a file.
|
||||
m_settings->set("lastLaunchTime", val);
|
||||
|
@ -106,8 +106,8 @@ public:
|
||||
|
||||
void setRunning(bool running);
|
||||
bool isRunning() const;
|
||||
int64_t totalTimePlayed() const;
|
||||
int64_t lastTimePlayed() const;
|
||||
quint64 totalTimePlayed() const;
|
||||
quint64 lastTimePlayed() const;
|
||||
void resetTimePlayed();
|
||||
|
||||
/// get the type of this instance
|
||||
@ -165,9 +165,9 @@ public:
|
||||
* Gets the time that the instance was last launched.
|
||||
* Stored in milliseconds since epoch.
|
||||
*/
|
||||
qint64 lastLaunch() const;
|
||||
quint64 lastLaunch() const;
|
||||
/// Sets the last launched time to 'val' milliseconds since epoch
|
||||
void setLastLaunch(qint64 val = QDateTime::currentMSecsSinceEpoch());
|
||||
void setLastLaunch(quint64 val = QDateTime::currentMSecsSinceEpoch());
|
||||
|
||||
/*!
|
||||
* \brief Gets this instance's settings object.
|
||||
|
@ -199,6 +199,18 @@ QVariant InstanceList::data(const QModelIndex& index, int role) const {
|
||||
return tr("%1 Instance").arg(inst->name());
|
||||
break;
|
||||
}
|
||||
|
||||
case SortRole: {
|
||||
switch (index.column()) {
|
||||
case PlayTimeColumn:
|
||||
return QVariant(inst->totalTimePlayed());
|
||||
case LastPlayedColumn:
|
||||
return QVariant(inst->lastLaunch());
|
||||
default:
|
||||
return data(index, Qt::DisplayRole);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
return QVariant();
|
||||
}
|
||||
|
@ -86,9 +86,10 @@ public:
|
||||
|
||||
enum AdditionalRoles
|
||||
{
|
||||
GroupRole = Qt::UserRole,
|
||||
InstancePointerRole = 0x34B1CB48, ///< Return pointer to real instance
|
||||
InstanceIDRole = 0x34B1CB49 ///< Return id if the instance
|
||||
SortRole = Qt::UserRole + 1,
|
||||
GroupRole,
|
||||
InstancePointerRole, ///< Return pointer to real instance
|
||||
InstanceIDRole ///< Return id if the instance
|
||||
};
|
||||
/*!
|
||||
* \brief Error codes returned by functions in the InstanceList class.
|
||||
|
@ -25,6 +25,7 @@ InstanceProxyModel::InstanceProxyModel(QObject* parent) : QSortFilterProxyModel(
|
||||
m_naturalSort.setCaseSensitivity(Qt::CaseSensitivity::CaseInsensitive);
|
||||
// FIXME: use loaded translation as source of locale instead, hook this up to translation changes
|
||||
m_naturalSort.setLocale(QLocale::system());
|
||||
setSortRole(InstanceList::SortRole);
|
||||
}
|
||||
|
||||
QVariant InstanceProxyModel::data(const QModelIndex& index, int role) const
|
||||
|
Loading…
x
Reference in New Issue
Block a user