diff --git a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp
index 3fe441781..67552cf82 100644
--- a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp
+++ b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp
@@ -43,6 +43,7 @@
#include
#include
#include
+#include
#include
#include
#include
@@ -125,6 +126,21 @@ void TaskMirroredParameters::setupUI()
ui->comboPlane->setEnabled(true);
updateUI();
+
+ //show the parts coordinate system axis for selection
+ for(App::Part* part : App::GetApplication().getActiveDocument()->getObjectsOfType()) {
+
+ if(part->hasObject(getObject(), true)) {
+ auto app_origin = part->getObjectsOfType(App::Origin::getClassTypeId());
+ if(!app_origin.empty()) {
+ ViewProviderOrigin* origin;
+ origin = static_cast(Gui::Application::Instance->activeDocument()->getViewProvider(app_origin[0]));
+ origin->setTemporaryVisibilityMode(true, Gui::Application::Instance->activeDocument());
+ origin->setTemporaryVisibilityPlanes(true);
+ }
+ break;
+ }
+ }
}
void TaskMirroredParameters::updateUI()
@@ -226,6 +242,18 @@ void TaskMirroredParameters::onSelectionChanged(const Gui::SelectionChanges& msg
ui->comboPlane->setCurrentIndex(maxcount);
ui->comboPlane->addItem(tr("Select reference..."));
}
+ } else if( strcmp(msg.pObjectName, App::Part::BaseplaneTypes[0]) == 0 ||
+ strcmp(msg.pObjectName, App::Part::BaseplaneTypes[1]) == 0 ||
+ strcmp(msg.pObjectName, App::Part::BaseplaneTypes[2]) == 0) {
+
+ std::vector planes;
+ App::DocumentObject* selObj;
+ PartDesign::Mirrored* pcMirrored = static_cast(getObject());
+ getReferencedSelection(pcMirrored, msg, selObj, planes);
+ pcMirrored->MirrorPlane.setValue(selObj, planes);
+
+ recomputeFeature();
+ updateUI();
}
}
}
@@ -353,6 +381,21 @@ void TaskMirroredParameters::apply()
TaskMirroredParameters::~TaskMirroredParameters()
{
+ //hide the parts coordinate system axis for selection
+ for(App::Part* part : App::GetApplication().getActiveDocument()->getObjectsOfType()) {
+
+ if(part->hasObject(getObject(), true)) {
+ auto app_origin = part->getObjectsOfType(App::Origin::getClassTypeId());
+ if(!app_origin.empty()) {
+ ViewProviderOrigin* origin;
+ origin = static_cast(Gui::Application::Instance->activeDocument()->getViewProvider(app_origin[0]));
+ origin->setTemporaryVisibilityMode(false);
+ }
+ break;
+ }
+ }
+
+
delete ui;
if (proxy)
delete proxy;