diff options
Diffstat (limited to 'application/FtbListModel.h')
-rw-r--r-- | application/FtbListModel.h | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/application/FtbListModel.h b/application/FtbListModel.h index 41fc3ccd..747c65bd 100644 --- a/application/FtbListModel.h +++ b/application/FtbListModel.h @@ -3,6 +3,13 @@ #include <QAbstractListModel> #include <QSortFilterProxyModel> #include <modplatform/ftb/PackHelpers.h> +#include <QThreadPool> + +#include <RWStorage.h> + +#include <QPixmap> + +typedef QMap<QString, QPixmap> FtbLogoMap; class FtbFilterModel : public QSortFilterProxyModel { @@ -13,8 +20,9 @@ public: ByGameVersion }; const QMap<QString, Sorting> getAvailableSortings(); - Sorting getCurrentSorting(); + QString translateCurrentSorting(); void setSorting(Sorting sorting); + Sorting getCurrentSorting(); protected: bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override; @@ -31,9 +39,22 @@ class FtbListModel : public QAbstractListModel Q_OBJECT private: FtbModpackList modpacks; + QThreadPool *m_logoPool; + QStringList m_failedLogos; + QStringList m_loadingLogos; + FtbLogoMap m_logoMap; + + void requestLogo(QString file); + QString translatePackType(FtbPackType type) const; + + +private slots: + void logoFailed(QString logo); + void logoLoaded(QString logo, QPixmap out); public: FtbListModel(QObject *parent); + ~FtbListModel(); int rowCount(const QModelIndex &parent) const override; int columnCount(const QModelIndex &parent) const override; QVariant data(const QModelIndex &index, int role) const override; |