summaryrefslogtreecommitdiffstats
path: root/logic/resources/ResourceProxyModel.h
diff options
context:
space:
mode:
Diffstat (limited to 'logic/resources/ResourceProxyModel.h')
-rw-r--r--logic/resources/ResourceProxyModel.h39
1 files changed, 0 insertions, 39 deletions
diff --git a/logic/resources/ResourceProxyModel.h b/logic/resources/ResourceProxyModel.h
deleted file mode 100644
index 98a3dbd1..00000000
--- a/logic/resources/ResourceProxyModel.h
+++ /dev/null
@@ -1,39 +0,0 @@
-#pragma once
-
-#include <QIdentityProxyModel>
-#include <memory>
-
-#include "multimc_logic_export.h"
-
-/// Convenience proxy model that transforms resource identifiers (strings) for Qt::DecorationRole into other types.
-class MULTIMC_LOGIC_EXPORT ResourceProxyModel : public QIdentityProxyModel
-{
- Q_OBJECT
-public:
- // resultTypeId is found using qMetaTypeId<T>()
- explicit ResourceProxyModel(const int resultTypeId, QObject *parent = nullptr);
-
- enum
- {
- // provide this role from your model if you want to show a placeholder
- PlaceholderRole = Qt::UserRole + 0xabc // some random offset to not collide with other stuff
- };
-
- QVariant data(const QModelIndex &proxyIndex, int role) const override;
- void setSourceModel(QAbstractItemModel *model) override;
-
- /// Helper function, usage: m_view->setModel(ResourceProxyModel::mixin<QIcon>(m_model));
- template <typename T>
- static QAbstractItemModel *mixin(QAbstractItemModel *model)
- {
- ResourceProxyModel *proxy = new ResourceProxyModel(qMetaTypeId<T>(), model);
- proxy->setSourceModel(model);
- return proxy;
- }
-
-private:
- // mutable because it needs to be available from the const data()
- mutable QMap<QPersistentModelIndex, std::shared_ptr<class Resource>> m_resources;
-
- const int m_resultTypeId;
-};