#pragma once #include #include #include #include "filter.h" #include "misc.h" #include "warp.h" class WarpConstraintItem : public QStandardItem { Warp::Constraint m_constraint; public: WarpConstraintItem(const Warp::Constraint &constraint); Warp::Constraint GetConstraint() { return m_constraint; } }; class WarpConstraintItemModel : public QStandardItemModel { Q_OBJECT // The current analysis constraints used to highlight matching constraints. std::vector m_matchedConstraints; public: WarpConstraintItemModel(const QStringList &labels, QObject *parent); static constexpr int COL_CONSTRAINT_ITEM = 0; void AddItem(WarpConstraintItem *item); WarpConstraintItem *GetItem(const QModelIndex &index) const; QVariant data(const QModelIndex &index, int role) const override; void SetMatchedConstraints(const std::vector &analysisConstraints) { m_matchedConstraints = analysisConstraints; } }; class WarpConstraintTableWidget : public QWidget, public FilterTarget { Q_OBJECT QTableView *m_table; WarpConstraintItemModel *m_model; GenericTextFilterModel *m_proxyModel; FilterEdit *m_filterEdit; FilteredView *m_filterView; public: explicit WarpConstraintTableWidget(QWidget *parent = nullptr); void SetConstraints(QVector constraints); void SetMatchedConstraints(const std::vector &analysisConstraints); void setFilter(const std::string &) override; void scrollToFirstItem() override { } void scrollToCurrentItem() override { } void selectFirstItem() override { } void activateFirstItem() override { } };