summaryrefslogtreecommitdiffstats
path: root/application/FtbListModel.h
diff options
context:
space:
mode:
authorJanrupf <werbung.janrupf@t-online.de>2018-03-03 21:22:00 +0100
committerJanrupf <werbung.janrupf@t-online.de>2018-03-11 19:30:47 +0100
commitb8ca36372be11b9ddddb3daa3d32583d286f19e2 (patch)
treeb359357881d14e0b0871b3e5d0175234eb562b72 /application/FtbListModel.h
parent2d295d5afbf6cb5ce1ca624c4aef8fd96b78992b (diff)
downloadMultiMC-b8ca36372be11b9ddddb3daa3d32583d286f19e2.tar
MultiMC-b8ca36372be11b9ddddb3daa3d32583d286f19e2.tar.gz
MultiMC-b8ca36372be11b9ddddb3daa3d32583d286f19e2.tar.lz
MultiMC-b8ca36372be11b9ddddb3daa3d32583d286f19e2.tar.xz
MultiMC-b8ca36372be11b9ddddb3daa3d32583d286f19e2.zip
GH-2124 First complete implementation, installing is working now! GH-2172 Added sorting
Diffstat (limited to 'application/FtbListModel.h')
-rw-r--r--application/FtbListModel.h45
1 files changed, 45 insertions, 0 deletions
diff --git a/application/FtbListModel.h b/application/FtbListModel.h
new file mode 100644
index 00000000..e41e9b62
--- /dev/null
+++ b/application/FtbListModel.h
@@ -0,0 +1,45 @@
+#pragma once
+
+#include <QAbstractListModel>
+#include <QSortFilterProxyModel>
+#include <modplatform/PackHelpers.h>
+
+class FtbFilterModel : public QSortFilterProxyModel
+{
+public:
+ FtbFilterModel(QObject* parent = Q_NULLPTR);
+ enum Sorting {
+ ByName,
+ ByGameVersion
+ };
+ const QMap<QString, Sorting> getAvailableSortings();
+ Sorting getCurrentSorting();
+ void setSorting(Sorting sorting);
+
+protected:
+ bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override;
+ bool lessThan(const QModelIndex &left, const QModelIndex &right) const override;
+
+private:
+ QMap<QString, Sorting> sortings;
+ Sorting currentSorting;
+
+};
+
+class FtbListModel : public QAbstractListModel
+{
+ Q_OBJECT
+private:
+ FtbModpackList modpacks;
+
+public:
+ FtbListModel(QObject *parent);
+ int rowCount(const QModelIndex &parent) const override;
+ int columnCount(const QModelIndex &parent) const override;
+ QVariant data(const QModelIndex &index, int role) const override;
+
+ void fill(FtbModpackList modpacks);
+
+ FtbModpack at(int row);
+
+};