|
1 #include "openedmodel.h" |
|
2 #include "settings.h" |
|
3 #include "ldrawsyntaxhighlighter.h" |
|
4 |
|
5 EditableModel::EditableModel(QTextDocument* model, DocumentManager* documents, ColorTable* colorTable) |
|
6 : QObject{documents}, model{model} |
|
7 { |
|
8 this->tools = std::make_unique<EditTools>(); |
|
9 this->canvas = std::make_unique<PartRenderer>(model, documents, *colorTable); |
|
10 this->axesLayer = std::make_unique<AxesLayer>(); |
|
11 this->gridLayer = std::make_unique<GridLayer>(); |
|
12 this->gridLayer->setGridMatrix(DEFAULT_GRID_MATRIX); |
|
13 this->tools->setGridMatrix(DEFAULT_GRID_MATRIX); |
|
14 this->canvas->addRenderLayer(this->axesLayer.get()); |
|
15 this->canvas->setLayerEnabled(this->axesLayer.get(), setting<Setting::DrawAxes>()); |
|
16 this->canvas->addRenderLayer(this->gridLayer.get()); |
|
17 this->canvas->addRenderLayer(this->tools.get()); |
|
18 new LDrawSyntaxHighlighter{model}; |
|
19 this->textcursor = std::make_unique<QTextCursor>(model); |
|
20 QObject::connect( |
|
21 this->tools.get(), |
|
22 &EditTools::modelAction, |
|
23 this, |
|
24 &EditableModel::modelAction); |
|
25 QObject::connect( |
|
26 this->tools.get(), |
|
27 &EditTools::newStatusText, |
|
28 this, |
|
29 &EditableModel::newStatusText); |
|
30 QObject::connect( |
|
31 this->tools.get(), |
|
32 &EditTools::select, |
|
33 this, |
|
34 &EditableModel::select); |
|
35 } |