diff options
Diffstat (limited to 'seriesmodel.h')
| -rw-r--r-- | seriesmodel.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/seriesmodel.h b/seriesmodel.h new file mode 100644 index 0000000..5aca1f4 --- /dev/null +++ b/seriesmodel.h @@ -0,0 +1,48 @@ +#pragma once + +// qt +#include <QAbstractTableModel> +#include <QMutex> +#include <QVector2D> + +// goodies +#include "g_property.h" + +class SeriesModel : public QAbstractTableModel +{ + Q_OBJECT + + G_PROPERTY(float, minX); + G_PROPERTY(float, maxX); + G_PROPERTY(float, minY); + G_PROPERTY(float, maxY); + +public: + Q_INVOKABLE SeriesModel(QObject* parent = nullptr); + Q_INVOKABLE SeriesModel(const SeriesModel& other); + Q_INVOKABLE ~SeriesModel() Q_DECL_OVERRIDE = default; + +public: + Q_INVOKABLE int rowCount( + const QModelIndex& parent = QModelIndex() + ) const Q_DECL_OVERRIDE; + Q_INVOKABLE int columnCount( + const QModelIndex& parent = QModelIndex() + ) const Q_DECL_OVERRIDE; + Q_INVOKABLE QVariant data( + const QModelIndex& modelIndex, + int role = Qt::DisplayRole + ) const Q_DECL_OVERRIDE; + +public slots: + void append(const QVector<QVector2D> points); + void replace(const QVector<QVector2D> points); + void clear(); + void recalcLimits(); + +protected: + QVector<QVector2D> m_points; + QMutex m_mtx; +}; + +Q_DECLARE_METATYPE(SeriesModel); |
