cmodlistmodel_moc.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. QVariant getTextAlign(int field) const;
  25. QVariant getValue(const CModEntry & mod, int field) const;
  26. QVariant getText(const CModEntry & mod, int field) const;
  27. QVariant getIcon(const CModEntry & mod, int field) const;
  28. public:
  29. /// CModListContainer overrides
  30. void resetRepositories();
  31. void addRepository(QVariantMap data);
  32. void setLocalModList(QVariantMap data);
  33. void setModSettings(QVariant data);
  34. QString modIndexToName(int index) const;
  35. explicit CModListModel(QObject *parent = 0);
  36. QVariant data(const QModelIndex &index, int role) const;
  37. QVariant headerData(int section, Qt::Orientation orientation, int role) const;
  38. int rowCount(const QModelIndex &parent) const;
  39. int columnCount(const QModelIndex &parent) const;
  40. Qt::ItemFlags flags(const QModelIndex &index) const;
  41. signals:
  42. public slots:
  43. };
  44. class CModFilterModel : public QSortFilterProxyModel
  45. {
  46. CModListModel * base;
  47. int filteredType;
  48. int filterMask;
  49. bool filterMatches(int modIndex) const;
  50. bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const;
  51. public:
  52. void setTypeFilter(int filteredType, int filterMask);
  53. CModFilterModel(CModListModel * model, QObject *parent = 0);
  54. };