#ifndef CHART_MARKERS_MODEL_H #define CHART_MARKERS_MODEL_H #include #include "gui/gtl_gui_chart_marker.h" #include "gui/gtl_gui_color_box.h" namespace gtl { namespace gui { class chart_markers_model : public QAbstractItemModel { Q_OBJECT public: explicit chart_markers_model(QObject *parent = nullptr); chart_marker* at(int idx) const; virtual void add(chart_marker* marker); void remove(chart_marker* marker); int rowCount(const QModelIndex &parent = QModelIndex()) const override; virtual QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const override; virtual QModelIndex parent(const QModelIndex& index) const override; virtual void connect_color_changed_signal(color_box* sender, const QModelIndex& index); virtual void connect_kill_signal(QAbstractButton* sender, const QModelIndex& index); protected: std::vector _markers; signals: void changed(); protected slots: virtual void marker_changed() = 0; virtual void marker_index_changed(); virtual void marker_deleting(); }; } } #endif // MARKERS_H