From 20d551bc882c9d437aa25cb635781bc64ba04def Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20Tr=C3=B6ger?= Date: Tue, 2 Jun 2015 17:08:02 +0200 Subject: [PATCH] fix part and body search for invalid objects --- src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp | 4 ++++ src/Mod/PartDesign/Gui/Workbench.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp index 0d36070c3..e50fa095c 100644 --- a/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp +++ b/src/Mod/PartDesign/Gui/TaskSketchBasedParameters.cpp @@ -201,6 +201,8 @@ App::DocumentObject* TaskSketchBasedParameters::getPartPlanes(const char* str) c //TODO: Adjust to GRAPH handling when available App::DocumentObject* obj = vp->getObject(); App::Part* part = getPartFor(obj, true); + if(!part) + return nullptr; std::vector origs = part->getObjectsOfType(App::Origin::getClassTypeId()); if(origs.size()<1) @@ -223,6 +225,8 @@ App::DocumentObject* TaskSketchBasedParameters::getPartLines(const char* str) co //TODO: Adjust to GRAPH handling when available App::DocumentObject* obj = vp->getObject(); App::Part* part = getPartFor(obj, true); + if(!part) + return nullptr; std::vector origs = part->getObjectsOfType(App::Origin::getClassTypeId()); if(origs.size()<1) diff --git a/src/Mod/PartDesign/Gui/Workbench.cpp b/src/Mod/PartDesign/Gui/Workbench.cpp index a36bb4ff1..f96580212 100644 --- a/src/Mod/PartDesign/Gui/Workbench.cpp +++ b/src/Mod/PartDesign/Gui/Workbench.cpp @@ -75,7 +75,7 @@ namespace PartDesignGui { PartDesign::Body *getBody(bool messageIfNot) { - PartDesign::Body * activeBody = Gui::Application::Instance->activeView()->getActiveObject(PDBODYKEY); + PartDesign::Body * activeBody = Gui::Application::Instance->activeView()->getActiveObject(PDBODYKEY); if (!activeBody && messageIfNot){ QMessageBox::warning(Gui::getMainWindow(), QObject::tr("No active Body"), @@ -85,13 +85,13 @@ PartDesign::Body *getBody(bool messageIfNot) "PartDesign to put them into a Body." )); } - return activeBody; + return activeBody; } PartDesign::Body *getBodyFor(App::DocumentObject* obj, bool messageIfNot) { - if(!obj || !obj->isValid()) + if(!obj) return nullptr; PartDesign::Body * activeBody = Gui::Application::Instance->activeView()->getActiveObject(PDBODYKEY); @@ -115,7 +115,7 @@ PartDesign::Body *getBodyFor(App::DocumentObject* obj, bool messageIfNot) App::Part* getPartFor(App::DocumentObject* obj, bool messageIfNot) { - if(!obj || !obj->isValid()) + if(!obj) return nullptr; PartDesign::Body* body = getBodyFor(obj, false);