diff --git a/src/Mod/PartDesign/App/DatumLine.cpp b/src/Mod/PartDesign/App/DatumLine.cpp index bed809869..66c233b09 100644 --- a/src/Mod/PartDesign/App/DatumLine.cpp +++ b/src/Mod/PartDesign/App/DatumLine.cpp @@ -269,12 +269,12 @@ const std::set Line::getHint() return std::set(); } -Base::Vector3d Line::getBasePoint() +Base::Vector3d Line::getBasePoint() const { return Placement.getValue().getPosition(); } -Base::Vector3d Line::getDirection() +Base::Vector3d Line::getDirection() const { Base::Rotation rot = Placement.getValue().getRotation(); Base::Vector3d dir; diff --git a/src/Mod/PartDesign/App/DatumLine.h b/src/Mod/PartDesign/App/DatumLine.h index a70956a26..14eaf3ef1 100644 --- a/src/Mod/PartDesign/App/DatumLine.h +++ b/src/Mod/PartDesign/App/DatumLine.h @@ -47,8 +47,8 @@ public: static void initHints(); const std::set getHint(); - Base::Vector3d getBasePoint(); - Base::Vector3d getDirection(); + Base::Vector3d getBasePoint() const; + Base::Vector3d getDirection() const; protected: virtual void onChanged(const App::Property* prop); diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index 8117f9d94..42478242e 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -333,6 +333,7 @@ void TaskLinearPatternParameters::onDirectionChanged(int num) { QString buf = QString::fromUtf8("Axis%1").arg(num-5); std::string str = buf.toStdString(); pcLinearPattern->Direction.setValue(pcSketch, std::vector(1,str)); + exitSelectionMode(); } else if (num == ui->comboDirection->count() - 1) { // enter reference selection mode diff --git a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp index 7bce4d695..f7e5f99f1 100644 --- a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp @@ -259,6 +259,7 @@ void TaskMirroredParameters::onPlaneChanged(int num) { QString buf = QString::fromUtf8("Axis%1").arg(num-5); std::string str = buf.toStdString(); pcMirrored->MirrorPlane.setValue(pcSketch, std::vector(1,str)); + exitSelectionMode(); } else if (num == ui->comboPlane->count() - 1) { // enter reference selection mode diff --git a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp index d239a5cb6..efabfaa03 100644 --- a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp @@ -96,9 +96,10 @@ void TaskSketchBasedParameters::onSelectReference(const bool pressed, const bool if (pressed) { Gui::Document* doc = Gui::Application::Instance->activeDocument(); - if (doc && solid) { + if (doc) { doc->setHide(pcSketchBased->getNameInDocument()); - doc->setShow(solid->getNameInDocument()); + if (solid) + doc->setShow(solid->getNameInDocument()); } Gui::Selection().clearSelection(); Gui::Selection().addSelectionGate @@ -106,9 +107,10 @@ void TaskSketchBasedParameters::onSelectReference(const bool pressed, const bool } else { Gui::Selection().rmvSelectionGate(); Gui::Document* doc = Gui::Application::Instance->activeDocument(); - if (doc && solid) { + if (doc) { doc->setShow(pcSketchBased->getNameInDocument()); - doc->setHide(solid->getNameInDocument()); + if (solid) + doc->setHide(solid->getNameInDocument()); } } }