#pragma once #include "CheckableTest.h" #include class CheckableTestModel : public QAbstractTableModel { Q_OBJECT protected: QString m_title; CheckableTests m_tests; public: CheckableTestModel(QObject *parent); int rowCount(const QModelIndex &parent = QModelIndex()) const override; int columnCount(const QModelIndex &parent = QModelIndex()) const override; QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; Qt::ItemFlags flags(const QModelIndex &index) const override; bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; unsigned int getPoints() const; QString getTitle() const; protected: virtual bool isValidIndex(const QModelIndex &index) const; private: CheckableItems &getItems(const QModelIndex &index); const CheckableItems &getItems(const QModelIndex &index) const; CheckableItem &getItem(const QModelIndex &index); const CheckableItem &getItem(const QModelIndex &index) const; };