diff options
author | Janrupf <werbung.janrupf@t-online.de> | 2018-03-03 21:22:00 +0100 |
---|---|---|
committer | Janrupf <werbung.janrupf@t-online.de> | 2018-03-11 19:30:47 +0100 |
commit | b8ca36372be11b9ddddb3daa3d32583d286f19e2 (patch) | |
tree | b359357881d14e0b0871b3e5d0175234eb562b72 /application/FtbListModel.h | |
parent | 2d295d5afbf6cb5ce1ca624c4aef8fd96b78992b (diff) | |
download | PrismLauncher-b8ca36372be11b9ddddb3daa3d32583d286f19e2.tar.gz PrismLauncher-b8ca36372be11b9ddddb3daa3d32583d286f19e2.tar.bz2 PrismLauncher-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.h | 45 |
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); + +}; |