-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdatamodel.h
More file actions
47 lines (37 loc) · 1.28 KB
/
datamodel.h
File metadata and controls
47 lines (37 loc) · 1.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#pragma once
#include "types.h"
#include <QAbstractTableModel>
class DataModel final : public QAbstractTableModel, public Clipboard {
Q_OBJECT
Data data_;
Data dataComp_;
int precision_{3};
signals:
void dataChanged_(const Data&);
void dataCompChanged(const Degrees&);
public:
explicit DataModel(QObject* parent = nullptr);
~DataModel();
// QAbstractItemModel interface
int rowCount(const QModelIndex& = {}) const override;
int columnCount(const QModelIndex& = {}) const override;
QVariant data(const QModelIndex& index, int role) const override;
bool setData(const QModelIndex& index, const QVariant& value, int role) override;
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
Qt::ItemFlags flags(const QModelIndex& = {}) const override;
enum {
ColumnX,
ColumnY,
ColumnComp,
ColumnDelta,
ColumnCount
};
const Data& data() const noexcept;
void setNewData(const Data& data);
void setPrecision(int prec);
void load(const QString& fileName);
void save(const QString& fileName) const;
// Clipboard interface
QString copy() const override;
void paste(QString&&) override;
};