summaryrefslogtreecommitdiff
path: root/src/modflagicondelegate.h
blob: 24dd4a0e0b751001a79875fc6f7770f1ca9545b2 (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
#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