| 7 | class VersionFilterModel; |
| 8 | |
| 9 | class VersionProxyModel: public QAbstractProxyModel |
| 10 | { |
| 11 | Q_OBJECT |
| 12 | public: |
| 13 | |
| 14 | enum Column |
| 15 | { |
| 16 | Name, |
| 17 | ParentVersion, |
| 18 | Branch, |
| 19 | Type, |
| 20 | Architecture, |
| 21 | Path, |
| 22 | Time |
| 23 | }; |
| 24 | typedef QHash<BaseVersionList::ModelRoles, std::shared_ptr<Filter>> FilterMap; |
| 25 | |
| 26 | public: |
| 27 | VersionProxyModel ( QObject* parent = 0 ); |
| 28 | virtual ~VersionProxyModel() {}; |
| 29 | |
| 30 | virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override; |
| 31 | virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override; |
| 32 | virtual QModelIndex mapFromSource(const QModelIndex &sourceIndex) const override; |
| 33 | virtual QModelIndex mapToSource(const QModelIndex &proxyIndex) const override; |
| 34 | virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; |
| 35 | virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; |
| 36 | virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; |
| 37 | virtual QModelIndex parent(const QModelIndex &child) const override; |
| 38 | virtual void setSourceModel(QAbstractItemModel *sourceModel) override; |
| 39 | |
| 40 | const FilterMap &filters() const; |
| 41 | void setFilter(const BaseVersionList::ModelRoles column, Filter * filter); |
| 42 | void clearFilters(); |
| 43 | QModelIndex getRecommended() const; |
| 44 | QModelIndex getVersion(const QString & version) const; |
| 45 | void setCurrentVersion(const QString &version); |
| 46 | private slots: |
| 47 | |
| 48 | void sourceDataChanged(const QModelIndex &source_top_left,const QModelIndex &source_bottom_right); |
| 49 | |
| 50 | void sourceAboutToBeReset(); |
| 51 | void sourceReset(); |
| 52 | |
| 53 | void sourceRowsAboutToBeInserted(const QModelIndex &parent, int first, int last); |
| 54 | void sourceRowsInserted(const QModelIndex &parent, int first, int last); |
| 55 | |
| 56 | void sourceRowsAboutToBeRemoved(const QModelIndex &parent, int first, int last); |
| 57 | void sourceRowsRemoved(const QModelIndex &parent, int first, int last); |
| 58 | |
| 59 | private: |
| 60 | QList<Column> m_columns; |
| 61 | FilterMap m_filters; |
| 62 | BaseVersionList::RoleList roles; |
| 63 | VersionFilterModel * filterModel; |
| 64 | bool hasRecommended = false; |
| 65 | bool hasLatest = false; |
| 66 | QString m_currentVersion; |
nothing calls this directly
no test coverage detected