From cef87b5642dbb53971aa9f51bf727aac9241abe8 Mon Sep 17 00:00:00 2001 From: PaddleStroke Date: Thu, 27 Jun 2024 14:22:26 +0200 Subject: [PATCH] Sketcher: BSpline DSH: Fix crash: If you create new sketch, start bspline tool and change mode, it would crash. It's because it was doing a abortCommand before the command was opened. So it cancelled the create sketch command. --- src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h b/src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h index f7deeab215..f2c7b51bff 100644 --- a/src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h +++ b/src/Mod/Sketcher/Gui/DrawSketchHandlerBSpline.h @@ -88,6 +88,12 @@ public: , resetSeekSecond(false) {}; ~DrawSketchHandlerBSpline() override = default; + void activated() override + { + DrawSketchHandlerBSplineBase::activated(); + Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Add sketch bSpline")); + } + private: void updateDataAndDrawToPosition(Base::Vector2d onSketchPos) override { @@ -453,7 +459,6 @@ private: ? Sketcher::PointPos::mid : Sketcher::PointPos::start; if (state() == SelectMode::SeekFirst) { - Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Add sketch bSpline")); // insert point for pole/knot, defer internal alignment constraining. if (!addPos()) { return false; @@ -552,6 +557,7 @@ private: { Gui::Command::abortCommand(); tryAutoRecomputeIfNotSolve(sketchgui->getSketchObject()); + Gui::Command::openCommand(QT_TRANSLATE_NOOP("Command", "Add sketch bSpline")); SplineDegree = 3; geoIds.clear();