#ifndef GTL_GUI_SPEC_MEAS_MODEL_H #define GTL_GUI_SPEC_MEAS_MODEL_H #include #include #include "gui_global.h" #include "math/gtl_math_spec_meas.h" namespace gtl { namespace gui { class GTL_GUI_EXPORT spec_meas_model : public QAbstractTableModel { Q_OBJECT public: enum CustomRoles{ IdxRole = Qt::UserRole }; enum Column { CHAN = 0, PARAM, VALUE, LAST }; explicit spec_meas_model(QObject *parent = nullptr, QAbstractItemModel *channels = nullptr); // Header: QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; // 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; bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override; SpecMeasParamsListPtr measures(); QAbstractItemModel* channels(); void all_done(); private: SpecMeasParamsListPtr _measures; QAbstractItemModel* _channels; signals: void measure_changed(int idx); }; } // namespace gui } // namespace gtl #endif // GTL_GUI_SPEC_MEAS_MODEL_H