From efef23d8e27b23415ac7237e0eb935a6046608d7 Mon Sep 17 00:00:00 2001 From: Alexander Golubev Date: Fri, 11 Sep 2015 05:46:22 +0300 Subject: [PATCH] PartDesign/Gui: prevent Task*PatternParameters not crash on non sketchBased features --- .../PartDesign/Gui/TaskLinearPatternParameters.cpp | 10 +++++----- src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp | 10 +++++----- .../PartDesign/Gui/TaskPolarPatternParameters.cpp | 13 +++++++------ 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp index 7adb14173..b6fae83e6 100644 --- a/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskLinearPatternParameters.cpp @@ -158,11 +158,9 @@ void TaskLinearPatternParameters::setupUI() dirLinks.setCombo(*(ui->comboDirection)); App::DocumentObject* sketch = getSketchObject(); - if (!sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId())) - sketch = 0; - this->fillAxisCombo(dirLinks,static_cast(sketch)); - - updateUI(); + if (sketch && sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId())) { + this->fillAxisCombo(dirLinks,static_cast(sketch)); + } //show the parts coordinate system axis for selection PartDesign::Body * body = PartDesign::Body::findBodyOf(getObject()); @@ -176,6 +174,8 @@ void TaskLinearPatternParameters::setupUI() Base::Console().Error ("%s\n", ex.what () ); } } + + updateUI(); } void TaskLinearPatternParameters::updateUI() diff --git a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp index c631e2b46..0adb387f0 100644 --- a/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskMirroredParameters.cpp @@ -133,11 +133,9 @@ void TaskMirroredParameters::setupUI() ui->comboPlane->setEnabled(true); App::DocumentObject* sketch = getSketchObject(); - if (!sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId())) - sketch = 0; - this->fillPlanesCombo(planeLinks,static_cast(sketch)); - - updateUI(); + if (sketch && sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId())) { + this->fillAxisCombo(planeLinks,static_cast(sketch)); + } //show the parts coordinate system axis for selection PartDesign::Body * body = PartDesign::Body::findBodyOf ( getObject() ); @@ -151,6 +149,8 @@ void TaskMirroredParameters::setupUI() Base::Console().Error ("%s\n", ex.what () ); } } + + updateUI(); } void TaskMirroredParameters::updateUI() diff --git a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp index 27b17962c..13bdfa7ef 100644 --- a/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskPolarPatternParameters.cpp @@ -151,12 +151,11 @@ void TaskPolarPatternParameters::setupUI() ui->polarAngle->setEnabled(true); ui->spinOccurrences->setEnabled(true); - App::DocumentObject* sketch = getSketchObject(); - if (!(sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId()))) - sketch = 0; this->axesLinks.setCombo(*(ui->comboAxis)); - this->fillAxisCombo(axesLinks, static_cast(sketch)); - updateUI(); + App::DocumentObject* sketch = getSketchObject(); + if (sketch && sketch->isDerivedFrom(Part::Part2DObject::getClassTypeId())) { + this->fillAxisCombo(axesLinks, static_cast(sketch)); + } //show the parts coordinate system axis for selection PartDesign::Body * body = PartDesign::Body::findBodyOf ( getObject() ); @@ -170,7 +169,9 @@ void TaskPolarPatternParameters::setupUI() } catch (const Base::Exception &ex) { Base::Console().Error ("%s\n", ex.what () ); } - } + } + + updateUI(); } void TaskPolarPatternParameters::updateUI()