summaryrefslogtreecommitdiff
path: root/src/modflagicondelegate.h
blob: e3571b2f0cfee0eb5befa08d2bb3f05d2daa6b09 (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
#ifndef MODFLAGICONDELEGATE_H
#define MODFLAGICONDELEGATE_H

#include <QTreeView>

#include "icondelegate.h"
#include "modinfo.h"

class ModListView;

class ModFlagIconDelegate : public IconDelegate
{
  Q_OBJECT;

public:
  explicit ModFlagIconDelegate(ModListView* view, int column = -1,
                               int compactSize = 120);
  QSize sizeHint(const QStyleOptionViewItem& option,
                 const QModelIndex& index) const override;

protected:
  static QList<QString> getIconsForFlags(std::vector<ModInfo::EFlag> flags,
                                         bool compact);
  static QString getFlagIcon(ModInfo::EFlag flag);

  QList<QString> getIcons(const QModelIndex& index) const override;
  size_t getNumIcons(const QModelIndex& index) const override;

  // constructor for color table
  //
  ModFlagIconDelegate() : ModFlagIconDelegate(nullptr) {}

private:
  ModListView* m_view;
};

#endif  // MODFLAGICONDELEGATE_H