diff --git a/src/ApplicationController.cpp b/src/ApplicationController.cpp index 77b85dc..b4796c6 100644 --- a/src/ApplicationController.cpp +++ b/src/ApplicationController.cpp @@ -35,8 +35,14 @@ Document* ApplicationController::document() const return m_document; } +SketchFeature* ApplicationController::activeSketch() const +{ + return m_activeSketch; +} + void ApplicationController::newDocument() { + m_activeSketch = nullptr; m_document->clear(); setCurrentFile(QString()); } @@ -51,6 +57,7 @@ bool ApplicationController::openDocument() return false; } setCurrentFile(fileName); + m_activeSketch = nullptr; return true; } return false; @@ -93,6 +100,7 @@ void ApplicationController::beginSketchCreation() "Plane:", items, 0, false, &ok); if (ok && !item.isEmpty()) { auto feature = new SketchFeature("Sketch"); + m_activeSketch = feature; ViewportWidget::SketchPlane plane; if (item == "XY-Plane") { plane = ViewportWidget::SketchPlane::XY; @@ -111,6 +119,7 @@ void ApplicationController::beginSketchCreation() void ApplicationController::endSketch() { + m_activeSketch = nullptr; emit sketchModeEnded(); } diff --git a/src/ApplicationController.h b/src/ApplicationController.h index 680c5a7..3bfc099 100644 --- a/src/ApplicationController.h +++ b/src/ApplicationController.h @@ -6,6 +6,7 @@ class Document; class MainWindow; +class SketchFeature; class ApplicationController : public QObject { @@ -15,6 +16,7 @@ public: void setMainWindow(MainWindow* mainWindow); Document* document() const; + SketchFeature* activeSketch() const; public slots: void newDocument(); @@ -41,6 +43,7 @@ private: Document* m_document; QString m_currentFile; MainWindow* m_mainWindow = nullptr; + SketchFeature* m_activeSketch = nullptr; }; #endif // APPLICATIONCONTROLLER_H