/** * @RDE_HEADER@ * PresentationManangement - Script Overview Dialog Model * $Id$ * $HeadURL$ * $Author$ * * Created by Mike Wille, SLSE, 2017-03-15 */ #pragma once #include #include #include #include #include #include namespace Evaluations { class ElementDialogModel final : public LtsWidgets::LtsAbstractTableModel { Q_OBJECT public: enum Columns { Id = 0, Situation, Video, Audio, Timestamp, Duration, Rating, RadioCircuit, VideoChannel, Note, Phase }; explicit ElementDialogModel(QObject *parent = nullptr); ~ElementDialogModel() = default; bool initModel(const std::shared_ptr &dtc, const std::shared_ptr &exmDtc, const std::shared_ptr &avmDataIfc, int criteriumId); QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; private: std::shared_ptr m_avmDataIfc; std::shared_ptr m_exmDtc; friend class ElementDialogProxyModel; LOGGER_T m_logger; }; class ElementDialogProxyModel final : public LtsWidgets::LtsColumnFilterProxyModel { Q_OBJECT public: using LtsWidgets::LtsColumnFilterProxyModel::LtsColumnFilterProxyModel; void setSourceModel(QAbstractItemModel *sourceModel) override; void setCriteriumId(int criteriumId); protected: bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override; bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override; private: ElementDialogModel *m_sourceModel{nullptr}; int m_criteriumId{-1}; }; }