refactor: Manage active sketch state in ApplicationController

Co-authored-by: aider (gemini/gemini-2.5-pro) <aider@aider.chat>
This commit is contained in:
2026-02-13 17:30:36 -07:00
parent fa5852b8db
commit 1ded863b10
2 changed files with 12 additions and 0 deletions

View File

@@ -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();
}

View File

@@ -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