summaryrefslogtreecommitdiffstats
path: root/libmultimc/include/instversionlist.h
diff options
context:
space:
mode:
authorAndrew <forkk@forkk.net>2013-03-28 11:33:31 -0500
committerAndrew <forkk@forkk.net>2013-03-28 11:33:31 -0500
commit168ed3e8e58a8e5065ffa720f8d45f4cee0f2069 (patch)
treeb673669632797eab3fdf5bbf4e9fa471bcf20290 /libmultimc/include/instversionlist.h
parentad70e3fd4cda26508f00e9b549c04a5fe8831dac (diff)
downloadMultiMC-168ed3e8e58a8e5065ffa720f8d45f4cee0f2069.tar
MultiMC-168ed3e8e58a8e5065ffa720f8d45f4cee0f2069.tar.gz
MultiMC-168ed3e8e58a8e5065ffa720f8d45f4cee0f2069.tar.lz
MultiMC-168ed3e8e58a8e5065ffa720f8d45f4cee0f2069.tar.xz
MultiMC-168ed3e8e58a8e5065ffa720f8d45f4cee0f2069.zip
Implemented version lists.
Further work on this is still needed. Currently there is no sorting or filtering of any kind. In addition, changes need to be made to fix issues with bad ETags since the current system here is based on MultiMC 4's version list system before it was fixed.
Diffstat (limited to 'libmultimc/include/instversionlist.h')
-rw-r--r--libmultimc/include/instversionlist.h18
1 files changed, 17 insertions, 1 deletions
diff --git a/libmultimc/include/instversionlist.h b/libmultimc/include/instversionlist.h
index 4345aaaa..24dd1a28 100644
--- a/libmultimc/include/instversionlist.h
+++ b/libmultimc/include/instversionlist.h
@@ -17,6 +17,8 @@
#define INSTVERSIONLIST_H
#include <QObject>
+#include <QVariant>
+#include <QAbstractListModel>
#include "libmmc_config.h"
@@ -29,8 +31,13 @@ class Task;
* for that instance. This list will not be loaded on startup. It will be loaded
* when the list's load function is called. Before using the version list, you
* should check to see if it has been loaded yet and if not, load the list.
+ *
+ * Note that this class also inherits from QAbstractListModel. Methods from that
+ * class determine how this version list shows up in a list view. Said methods
+ * all have a default implementation, but they can be overridden by plugins to
+ * change the behavior of the list.
*/
-class LIBMULTIMC_EXPORT InstVersionList : public QObject
+class LIBMULTIMC_EXPORT InstVersionList : public QAbstractListModel
{
Q_OBJECT
public:
@@ -39,6 +46,7 @@ public:
/*!
* \brief Gets a task that will reload the version list.
* Simply execute the task to load the list.
+ * The task returned by this function should reset the model when it's done.
* \return A pointer to a task that reloads the version list.
*/
virtual Task *getLoadTask() = 0;
@@ -52,6 +60,14 @@ public:
//! Returns the number of versions in the list.
virtual int count() const = 0;
+
+ //////// List Model Functions ////////
+ virtual QVariant data(const QModelIndex &index, int role) const;
+ virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const;
+ virtual int rowCount(const QModelIndex &parent) const;
+ virtual int columnCount(const QModelIndex &parent) const;
+
+
/*!
* \brief Finds a version by its descriptor.
* \param The descriptor of the version to find.