Fix crash on aborted pattern external axis

This commit is contained in:
Stefan Tröger 2016-01-15 20:53:14 +01:00
parent 2585598c55
commit 5002e8e430
4 changed files with 10 additions and 0 deletions

View File

@ -125,6 +125,8 @@ void TaskDraftParameters::onSelectionChanged(const Gui::SelectionChanges& msg)
std::vector<std::string> planes;
App::DocumentObject* selObj;
getReferencedSelection(pcDraft, msg, selObj, planes);
if(!selObj)
return;
pcDraft->NeutralPlane.setValue(selObj, planes);
ui->linePlane->setText(getRefStr(selObj, planes));
@ -136,6 +138,8 @@ void TaskDraftParameters::onSelectionChanged(const Gui::SelectionChanges& msg)
std::vector<std::string> edges;
App::DocumentObject* selObj;
getReferencedSelection(pcDraft, msg, selObj, edges);
if(!selObj)
return;
pcDraft->PullDirection.setValue(selObj, edges);
ui->lineLine->setText(getRefStr(selObj, edges));

View File

@ -187,6 +187,8 @@ void TaskMirroredParameters::onSelectionChanged(const Gui::SelectionChanges& msg
App::DocumentObject* selObj;
PartDesign::Mirrored* pcMirrored = static_cast<PartDesign::Mirrored*>(getObject());
getReferencedSelection(pcMirrored, msg, selObj, mirrorPlanes);
if(!selObj)
return;
// Note: ReferenceSelection has already checked the selection for validity
if ( selectionMode == reference || selObj->isDerivedFrom ( App::Plane::getClassTypeId () ) ) {
pcMirrored->MirrorPlane.setValue(selObj, mirrorPlanes);

View File

@ -228,6 +228,8 @@ void TaskPolarPatternParameters::onSelectionChanged(const Gui::SelectionChanges&
App::DocumentObject* selObj;
PartDesign::PolarPattern* pcPolarPattern = static_cast<PartDesign::PolarPattern*>(getObject());
getReferencedSelection(pcPolarPattern, msg, selObj, axes);
if(!selObj)
return;
// Note: ReferenceSelection has already checked the selection for validity
if ( selectionMode == reference || selObj->isDerivedFrom ( App::Line::getClassTypeId () ) ) {
pcPolarPattern->Axis.setValue(selObj, axes);

View File

@ -247,6 +247,8 @@ void TaskRevolutionParameters::onSelectionChanged(const Gui::SelectionChanges& m
std::vector<std::string> axis;
App::DocumentObject* selObj;
getReferencedSelection(vp->getObject(), msg, selObj, axis);
if(!selObj)
return;
propReferenceAxis->setValue(selObj, axis);
recomputeFeature();