46 lines
1.3 KiB
C
46 lines
1.3 KiB
C
|
#ifndef CHART_MARKERS_MODEL_H
|
||
|
#define CHART_MARKERS_MODEL_H
|
||
|
|
||
|
#include <QAbstractTableModel>
|
||
|
|
||
|
#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<chart_marker*> _markers;
|
||
|
|
||
|
signals:
|
||
|
void changed();
|
||
|
|
||
|
protected slots:
|
||
|
virtual void marker_changed() = 0;
|
||
|
virtual void marker_index_changed();
|
||
|
virtual void marker_deleting();
|
||
|
};
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#endif // MARKERS_H
|