summaryrefslogtreecommitdiffstats
path: root/application/FtbListModel.h
diff options
context:
space:
mode:
Diffstat (limited to 'application/FtbListModel.h')
-rw-r--r--application/FtbListModel.h23
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;