summaryrefslogtreecommitdiff
path: root/src/modlistgroupcategoriesproxy.h
blob: 23fd36dfdb1299f54b58b28bfc8c3e6fbb3cf0bf (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#ifndef MODLISTGROUPPROXY_H
#define MODLISTGROUPPROXY_H

#include <QIdentityProxyModel>
#include <tuple>

class ModListGroupCategoriesProxy : public QAbstractProxyModel
{

  Q_OBJECT

public:

  explicit ModListGroupCategoriesProxy(QObject *parent = 0);

  virtual int rowCount(const QModelIndex &parent) const;
  virtual int columnCount(const QModelIndex &parent) const;

  virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const;
  virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const;

  virtual QModelIndex index(int row, int column, const QModelIndex &parent) const;
  virtual QModelIndex parent(const QModelIndex &child) const;

  virtual bool hasChildren(const QModelIndex &parent) const;

  virtual QVariant data(const QModelIndex &proxyIndex, int role) const;
  virtual QVariant headerData(int section, Qt::Orientation orientation, int role) const;

signals:

public slots:

private:

  mutable std::map<QPersistentModelIndex, QPersistentModelIndex> m_IndexMap;

};

#endif // MODLISTGROUPPROXY_H