22 #include <QToolBar> |
22 #include <QToolBar> |
23 #include "ui/canvas.h" |
23 #include "ui/canvas.h" |
24 #include "model.h" |
24 #include "model.h" |
25 #include "vertexmap.h" |
25 #include "vertexmap.h" |
26 |
26 |
|
27 struct AppendToModel |
|
28 { |
|
29 ModelElement newElement; |
|
30 }; |
|
31 |
|
32 struct DeleteFromModel |
|
33 { |
|
34 int position; |
|
35 }; |
|
36 |
|
37 using ModelAction = std::variant<AppendToModel, DeleteFromModel>; |
|
38 |
|
39 Q_DECLARE_METATYPE(ModelAction) |
|
40 |
27 class EditorTabWidget : public QWidget |
41 class EditorTabWidget : public QWidget |
28 { |
42 { |
29 Q_OBJECT |
43 Q_OBJECT |
30 public: |
44 public: |
31 explicit EditorTabWidget( |
45 explicit EditorTabWidget( |
44 Q_SLOT void canvasMouseClick(QMouseEvent* event); |
58 Q_SLOT void canvasMouseClick(QMouseEvent* event); |
45 Q_SLOT void canvasMouseMove(QMouseEvent* event); |
59 Q_SLOT void canvasMouseMove(QMouseEvent* event); |
46 Q_SIGNALS: |
60 Q_SIGNALS: |
47 void newStatusText(const QString& newStatusText); |
61 void newStatusText(const QString& newStatusText); |
48 void splitterChanged(); |
62 void splitterChanged(); |
|
63 void modelAction(const ModelAction& action); |
49 private: |
64 private: |
50 void closeShape(); |
65 void closeShape(); |
51 DrawState drawState; |
66 DrawState drawState; |
52 DocumentManager* const documents; |
|
53 VertexMap vertexMap; |
67 VertexMap vertexMap; |
54 }; |
68 }; |