GH-328 overhaul all relevant version lists

This commit is contained in:
Petr Mrázek
2015-04-28 09:01:37 +02:00
parent 75dfbc61fc
commit aea51a0876
23 changed files with 688 additions and 288 deletions

View File

@ -68,6 +68,42 @@ void LiteLoaderVersionList::sort()
endResetModel();
}
QVariant LiteLoaderVersionList::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
if (index.row() > count())
return QVariant();
auto version = std::dynamic_pointer_cast<LiteLoaderVersion>(m_vlist[index.row()]);
switch (role)
{
case VersionPointerRole:
return qVariantFromValue(m_vlist[index.row()]);
case VersionRole:
return version->name();
case VersionIdRole:
return version->descriptor();
case ParentGameVersionRole:
return version->mcVersion;
case RecommendedRole:
return version->isLatest;
default:
return QVariant();
}
}
QList<BaseVersionList::ModelRoles> LiteLoaderVersionList::providesRoles()
{
return {VersionPointerRole, VersionRole, VersionIdRole, ParentGameVersionRole, RecommendedRole};
}
BaseVersionPtr LiteLoaderVersionList::getLatestStable() const
{
for (int i = 0; i < m_vlist.length(); i++)

View File

@ -78,6 +78,8 @@ public:
virtual const BaseVersionPtr at(int i) const;
virtual int count() const;
virtual void sort();
virtual QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const;
virtual QList< ModelRoles > providesRoles();
virtual BaseVersionPtr getLatestStable() const;