diff -r 6bcb284679d4 -r 0e729e681a2c src/ui/canvas.h --- a/src/ui/canvas.h Wed May 25 17:56:30 2022 +0300 +++ b/src/ui/canvas.h Wed May 25 18:29:49 2022 +0300 @@ -19,8 +19,8 @@ std::vector previewPolygon; glm::vec3 previewPoint; bool isconcave = false; + EditingMode mode = SelectMode; }; - class Canvas : public PartRenderer { Q_OBJECT @@ -44,8 +44,8 @@ const glm::mat4& getGridMatrix() const; void closeShape(); glm::vec3 cameraVector() const; - DrawState drawState; - EditingMode mode = SelectMode; + std::optional worldPosition; + DrawState* drawState = nullptr; public Q_SLOTS: void handleSelectionChange(const QSet& selectedIds, const QSet& deselectedIds); void rebuildVertices(Document *document); @@ -59,8 +59,8 @@ Q_SIGNALS: void newStatusText(const QString& newStatusText); void selectionChanged(const QSet& newSelection); - void mouseClick(Canvas* canvas, QMouseEvent* event); - void mouseMove(Canvas* canvas, QMouseEvent* event); + void mouseClick(QMouseEvent* event); + void mouseMove(QMouseEvent* event); private: bool isGridPerpendicularToScreen(float threshold) const; QVector convertWorldPointsToScreenPoints(const std::vector& worldPoints) const; @@ -69,7 +69,6 @@ std::optional gridProgram; std::optional axesProgram; std::optional vertexProgram; - std::optional worldPosition; glm::mat4 gridMatrix; geom::Plane gridPlane; int totalMouseMove = 0;