#ifndef ENTRYPOINTMODEL_H #define ENTRYPOINTMODEL_H #include "EntryPoints.h" #include #include class EntryPointModel : public QAbstractTableModel { Q_OBJECT public: explicit EntryPointModel(QObject *parent = 0, EntryPoints *points = Q_NULLPTR); void setEntryPointsData(EntryPoints *points); // Header: QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;//DONE // Basic functionality: 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; // Editable: bool setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override; Qt::ItemFlags flags(const QModelIndex& index) const override; // Add data: bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; // Remove data: bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; void doTestData(); protected slots: void handlePointAddition(int location) { insertRows(location,1); } void handlePointRemoval(int location) { removeRows(location, 1); } void handlePointChange(int location) { QModelIndex ind = createIndex(location,0); emit dataChanged(ind,ind,QVector() << Qt::DisplayRole); } private: EntryPoints *entryPoints; }; #endif // ENTRYPOINTMODEL_H