6 #include <QCloseEvent> |
6 #include <QCloseEvent> |
7 #include "mainwindow.h" |
7 #include "mainwindow.h" |
8 #include "ui_mainwindow.h" |
8 #include "ui_mainwindow.h" |
9 #include "version.h" |
9 #include "version.h" |
10 #include "gl/axesprogram.h" |
10 #include "gl/axesprogram.h" |
|
11 #include "gl/gridprogram.h" |
11 #include "gl/partrenderer.h" |
12 #include "gl/partrenderer.h" |
12 #include "document.h" |
13 #include "document.h" |
13 #include "settingseditor/settingseditor.h" |
14 #include "settingseditor/settingseditor.h" |
14 #include "widgets/colorselectdialog.h" |
15 #include "widgets/colorselectdialog.h" |
15 |
16 |
39 ModelData(QObject* parent) : QObject {parent} {} |
40 ModelData(QObject* parent) : QObject {parent} {} |
40 std::unique_ptr<PartRenderer> canvas; |
41 std::unique_ptr<PartRenderer> canvas; |
41 std::unique_ptr<QItemSelectionModel> itemSelectionModel; |
42 std::unique_ptr<QItemSelectionModel> itemSelectionModel; |
42 std::unique_ptr<EditTools> tools; |
43 std::unique_ptr<EditTools> tools; |
43 std::unique_ptr<AxesLayer> axesLayer; |
44 std::unique_ptr<AxesLayer> axesLayer; |
|
45 std::unique_ptr<GridLayer> gridLayer; |
44 Model* model; |
46 Model* model; |
45 }; |
47 }; |
46 #include "main.moc" |
48 #include "main.moc" |
47 |
49 |
48 static void doQtRegistrations() |
50 static void doQtRegistrations() |
395 ModelData* data = new ModelData(&documents); |
397 ModelData* data = new ModelData(&documents); |
396 data->tools = std::make_unique<EditTools>(model, colorTable); |
398 data->tools = std::make_unique<EditTools>(model, colorTable); |
397 data->canvas = std::make_unique<PartRenderer>(model, &documents, colorTable); |
399 data->canvas = std::make_unique<PartRenderer>(model, &documents, colorTable); |
398 data->itemSelectionModel = std::make_unique<QItemSelectionModel>(model); |
400 data->itemSelectionModel = std::make_unique<QItemSelectionModel>(model); |
399 data->axesLayer = std::make_unique<AxesLayer>(); |
401 data->axesLayer = std::make_unique<AxesLayer>(); |
|
402 data->gridLayer = std::make_unique<GridLayer>(); |
400 data->model = model; |
403 data->model = model; |
401 data->canvas->addRenderLayer(data->axesLayer.get()); |
404 data->canvas->addRenderLayer(data->axesLayer.get()); |
402 data->canvas->setLayerEnabled(data->axesLayer.get(), settings.drawAxes()); |
405 data->canvas->setLayerEnabled(data->axesLayer.get(), settings.drawAxes()); |
|
406 data->canvas->addRenderLayer(data->gridLayer.get()); |
403 documents.setModelPayload(modelId, data); |
407 documents.setModelPayload(modelId, data); |
404 QObject::connect( |
408 QObject::connect( |
405 data->tools.get(), |
409 data->tools.get(), |
406 &EditTools::modelAction, |
410 &EditTools::modelAction, |
407 std::bind(executeAction, model, std::placeholders::_1)); |
411 std::bind(executeAction, model, std::placeholders::_1)); |