summaryrefslogtreecommitdiffstats
path: root/libmultimc/include
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
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')
-rw-r--r--libmultimc/include/instversion.h5
-rw-r--r--libmultimc/include/instversionlist.h18
2 files changed, 19 insertions, 4 deletions
diff --git a/libmultimc/include/instversion.h b/libmultimc/include/instversion.h
index 7de83966..9d13dbe4 100644
--- a/libmultimc/include/instversion.h
+++ b/libmultimc/include/instversion.h
@@ -40,16 +40,15 @@ public:
* \breif Returns this InstVersion's name.
* This is displayed to the user in the GUI and is usually just the version number ("1.4.7"), for example.
*/
-
virtual QString name() const = 0;
/*!
- * \brief Returns this InstVersion's name.
+ * \brief Returns this InstVersion's type name.
* This is usually displayed to the user in the GUI and specifies what
* kind of version this is. For example: it could be "Snapshot",
* "Latest Version", "MCNostalgia", etc.
*/
- virtual QString type() const = 0;
+ virtual QString typeName() const = 0;
//! Returns the version list that this InstVersion is a part of.
virtual InstVersionList *versionList() const;
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.