cmodlistmodel_moc.h 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. #pragma once
  2. #include "cmodlist.h"
  3. #include <QAbstractTableModel>
  4. #include <QSortFilterProxyModel>
  5. namespace ModFields
  6. {
  7. enum EModFields
  8. {
  9. STATUS_ENABLED,
  10. STATUS_UPDATE,
  11. TYPE,
  12. NAME,
  13. VERSION,
  14. SIZE,
  15. AUTHOR,
  16. COUNT
  17. };
  18. }
  19. class CModListModel : public QAbstractTableModel, public CModList
  20. {
  21. Q_OBJECT
  22. QVector<QString> indexToName;
  23. void endResetModel();
  24. public:
  25. /// CModListContainer overrides
  26. void resetRepositories();
  27. void addRepository(QVariantMap data);
  28. void setLocalModList(QVariantMap data);
  29. void setModSettings(QVariant data);
  30. QString modIndexToName(int index) const;
  31. explicit CModListModel(QObject *parent = 0);
  32. QVariant data(const QModelIndex &index, int role) const;
  33. QVariant headerData(int section, Qt::Orientation orientation, int role) const;
  34. int rowCount(const QModelIndex &parent) const;
  35. int columnCount(const QModelIndex &parent) const;
  36. Qt::ItemFlags flags(const QModelIndex &index) const;
  37. signals:
  38. public slots:
  39. };
  40. class CModFilterModel : public QSortFilterProxyModel
  41. {
  42. CModListModel * base;
  43. int filteredType;
  44. int filterMask;
  45. bool filterMatches(int modIndex) const;
  46. bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
  47. bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
  48. public:
  49. void setTypeFilter(int filteredType, int filterMask);
  50. CModFilterModel(CModListModel * model, QObject *parent = 0);
  51. };