#ifndef MODCONFLICTICONDELEGATE_H #define MODCONFLICTICONDELEGATE_H #include #include "icondelegate.h" #include "modinfo.h" class ModListView; class ModConflictIconDelegate : public IconDelegate { Q_OBJECT; public: explicit ModConflictIconDelegate(ModListView* view, int logicalIndex = -1, int compactSize = 80); QSize sizeHint(const QStyleOptionViewItem& option, const QModelIndex &index) const override; protected: static QList getIconsForFlags(std::vector flags, bool compact); static QString getFlagIcon(ModInfo::EConflictFlag flag); QList getIcons(const QModelIndex &index) const override; size_t getNumIcons(const QModelIndex &index) const override; // constructor for color table // ModConflictIconDelegate() : ModConflictIconDelegate(nullptr) { } private: static constexpr std::array s_ConflictFlags{ ModInfo::FLAG_CONFLICT_MIXED, ModInfo::FLAG_CONFLICT_OVERWRITE, ModInfo::FLAG_CONFLICT_OVERWRITTEN, ModInfo::FLAG_CONFLICT_REDUNDANT }; static constexpr std::array s_ArchiveLooseConflictFlags{ ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITE, ModInfo::FLAG_ARCHIVE_LOOSE_CONFLICT_OVERWRITTEN }; static constexpr std::array s_ArchiveConflictFlags{ ModInfo::FLAG_ARCHIVE_CONFLICT_MIXED, ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITE, ModInfo::FLAG_ARCHIVE_CONFLICT_OVERWRITTEN }; ModListView* m_view; }; #endif // MODCONFLICTICONDELEGATE_H