test_sdk/gui/gtl_gui_chart_markers_model.h

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