summaryrefslogtreecommitdiffstats
path: root/libmultimc
diff options
context:
space:
mode:
Diffstat (limited to 'libmultimc')
-rw-r--r--libmultimc/include/instversionlist.h12
-rw-r--r--libmultimc/src/instversionlist.cpp11
2 files changed, 23 insertions, 0 deletions
diff --git a/libmultimc/include/instversionlist.h b/libmultimc/include/instversionlist.h
index 24dd1a28..b5a9f254 100644
--- a/libmultimc/include/instversionlist.h
+++ b/libmultimc/include/instversionlist.h
@@ -41,6 +41,11 @@ class LIBMULTIMC_EXPORT InstVersionList : public QAbstractListModel
{
Q_OBJECT
public:
+ enum ModelRoles
+ {
+ VersionPointerRole = 0x34B1CB48
+ };
+
explicit InstVersionList(QObject *parent = 0);
/*!
@@ -75,6 +80,13 @@ public:
* one doesn't exist.
*/
virtual const InstVersion *findVersion(const QString &descriptor);
+
+ /*!
+ * \brief Gets the latest stable version of this instance type.
+ * This is the version that will be selected by default.
+ * By default, this is simply the first version in the list.
+ */
+ virtual const InstVersion *getLatestStable();
};
#endif // INSTVERSIONLIST_H
diff --git a/libmultimc/src/instversionlist.cpp b/libmultimc/src/instversionlist.cpp
index 6c7b44bb..85734e48 100644
--- a/libmultimc/src/instversionlist.cpp
+++ b/libmultimc/src/instversionlist.cpp
@@ -31,6 +31,14 @@ const InstVersion *InstVersionList::findVersion(const QString &descriptor)
return NULL;
}
+const InstVersion *InstVersionList::getLatestStable()
+{
+ if (count() <= 0)
+ return NULL;
+ else
+ return at(0);
+}
+
// Column Enum
enum VListColumns
{
@@ -73,6 +81,9 @@ QVariant InstVersionList::data(const QModelIndex &index, int role) const
case Qt::ToolTipRole:
return version->descriptor();
+ case VersionPointerRole:
+ return qVariantFromValue((void *) version);
+
default:
return QVariant();
}