21 #include <QWidget> |
21 #include <QWidget> |
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 #include "edithistory.h" |
|
27 |
26 |
28 class Document : public QWidget |
27 class EditorTabWidget : public QWidget |
29 { |
28 { |
30 Q_OBJECT |
29 Q_OBJECT |
31 public: |
30 public: |
32 explicit Document( |
31 explicit EditorTabWidget( |
33 Model* model, |
32 Model* model, |
34 DocumentManager* documents, |
33 DocumentManager* documents, |
35 const ldraw::ColorTable& colorTable, |
34 const ldraw::ColorTable& colorTable, |
36 QWidget *parent = nullptr); |
35 QWidget *parent = nullptr); |
37 ~Document() override; |
36 ~EditorTabWidget() override; |
38 QByteArray saveSplitterState() const; |
37 QByteArray saveSplitterState() const; |
39 void restoreSplitterState(const QByteArray& state); |
38 void restoreSplitterState(const QByteArray& state); |
40 std::unique_ptr<ModelEditor> editModel(); |
|
41 void applyToVertices(VertexMap::ApplyFunction fn) const; |
39 void applyToVertices(VertexMap::ApplyFunction fn) const; |
42 const Model& getModel() const; |
40 const QSet<ModelId> selectedObjects() const; |
43 const QSet<ldraw::id_t> selectedObjects() const; |
|
44 const ldraw::ColorTable& colorTable; |
41 const ldraw::ColorTable& colorTable; |
45 Canvas* const canvas; |
42 Canvas* const canvas; |
|
43 Model* const model; |
46 Q_SLOT void editingModeTriggered(); |
44 Q_SLOT void editingModeTriggered(); |
47 Q_SLOT void canvasMouseClick(QMouseEvent* event); |
45 Q_SLOT void canvasMouseClick(QMouseEvent* event); |
48 Q_SLOT void canvasMouseMove(QMouseEvent* event); |
46 Q_SLOT void canvasMouseMove(QMouseEvent* event); |
49 void select(const QSet<ldraw::id_t> &selected); |
47 void select(const QSet<ModelId> &selected); |
50 DrawState drawState; |
|
51 Q_SIGNALS: |
48 Q_SIGNALS: |
52 void newStatusText(const QString& newStatusText); |
49 void newStatusText(const QString& newStatusText); |
53 void splitterChanged(); |
50 void splitterChanged(); |
54 private: |
51 private: |
55 void initializeTools(); |
52 void initializeTools(); |
56 void closeShape(); |
53 void closeShape(); |
57 Model* model; |
54 DrawState drawState; |
58 DocumentManager* const documents; |
55 DocumentManager* const documents; |
59 VertexMap vertexMap; |
56 VertexMap vertexMap; |
60 class Ui_Document& ui; |
57 class Ui_Document& ui; |
61 QToolBar* toolsBar; |
58 QToolBar* toolsBar; |
62 std::vector<QAction*> toolActions; |
59 std::vector<QAction*> toolActions; |
63 class ObjectEditor* objectEditor; |
|
64 /** |
|
65 * @brief History information of edits to this model |
|
66 */ |
|
67 // EditHistory editHistory; |
|
68 }; |
60 }; |