/** * @RDE_HEADER@ * ExerciseManangement - Exercise Overview Model * $Id$ * $HeadURL$ * $Author$ * Created by Patric Karwat, SLSE, 2018-03-17 */ #pragma once #include #include #include #include namespace OcBaseDownload { class ExModel final : public LtsWidgets::LtsAbstractTableModel { Q_OBJECT public: enum Columns { Name, Begin, End, Description, Id }; explicit ExModel(QObject *parent = nullptr); void addExercise(const QJsonObject &exercise); QVariant data(const QModelIndex &, int) const override final; private: friend class ExProxyModel; LOGGER_T m_logger; }; class ExProxyModel final : public LtsWidgets::LtsColumnFilterProxyModel { Q_OBJECT public: using LtsWidgets::LtsColumnFilterProxyModel::LtsColumnFilterProxyModel; void setSourceModel(QAbstractItemModel *sourceModel) override; protected: bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override; private: ExModel *m_sourceModel = nullptr; }; }