#ifndef GTL_GUI_OSC_MEAS_MODEL_H #define GTL_GUI_OSC_MEAS_MODEL_H #include #include #include "gui/gui_global.h" #include "math/gtl_math_osc_meas.h" namespace gtl { namespace gui { namespace osc{ class GTL_GUI_EXPORT meas_model : public QAbstractTableModel { Q_OBJECT public: enum CustomRoles{ IdxRole = Qt::UserRole }; enum Column { CHAN = 0, PARAM, VALUE, LAST }; explicit 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; OscMeasParamsListPtr measures(); QAbstractItemModel* channels(); void all_done(); private: OscMeasParamsListPtr _measures; QAbstractItemModel* _channels; void remove(int row, QModelIndex& index); signals: void measure_changed(int idx); }; } } // namespace gui } // namespace gtl #endif // GTL_GUI_OSC_MEAS_MODEL_H