refuse to create partdesign objects if no active body in document

This commit is contained in:
Sergo 2016-07-12 23:18:01 -04:00 committed by wmayer
parent e62d883f54
commit 9f0db2d900

View File

@ -870,6 +870,14 @@ CmdPartDesignPad::CmdPartDesignPad()
void CmdPartDesignPad::activated(int iMsg)
{
App::Document *doc = getDocument();
PartDesign::Body *pcActiveBody = PartDesignGui::getBody(
/*messageIfNot = */ PartDesignGui::assureModernWorkflow(doc));
// No PartDesign feature without Body past FreeCAD 0.16
if (!pcActiveBody && PartDesignGui::isModernWorkflow(doc))
return;
Gui::Command* cmd = this;
auto worker = [cmd](Part::Feature* profile, std::string FeatName) {
@ -919,6 +927,14 @@ CmdPartDesignPocket::CmdPartDesignPocket()
void CmdPartDesignPocket::activated(int iMsg)
{
App::Document *doc = getDocument();
PartDesign::Body *pcActiveBody = PartDesignGui::getBody(
/*messageIfNot = */ PartDesignGui::assureModernWorkflow(doc));
// No PartDesign feature without Body past FreeCAD 0.16
if (!pcActiveBody && PartDesignGui::isModernWorkflow(doc))
return;
Gui::Command* cmd = this;
auto worker = [cmd](Part::Feature* sketch, std::string FeatName) {
@ -956,6 +972,14 @@ CmdPartDesignRevolution::CmdPartDesignRevolution()
void CmdPartDesignRevolution::activated(int iMsg)
{
App::Document *doc = getDocument();
PartDesign::Body *pcActiveBody = PartDesignGui::getBody(
/*messageIfNot = */ PartDesignGui::assureModernWorkflow(doc));
// No PartDesign feature without Body past FreeCAD 0.16
if (!pcActiveBody && PartDesignGui::isModernWorkflow(doc))
return;
Gui::Command* cmd = this;
auto worker = [cmd](Part::Feature* sketch, std::string FeatName) {
@ -999,6 +1023,13 @@ CmdPartDesignGroove::CmdPartDesignGroove()
void CmdPartDesignGroove::activated(int iMsg)
{
App::Document *doc = getDocument();
PartDesign::Body *pcActiveBody = PartDesignGui::getBody(
/*messageIfNot = */ PartDesignGui::assureModernWorkflow(doc));
if (!pcActiveBody && PartDesignGui::isModernWorkflow(doc))
return;
Gui::Command* cmd = this;
auto worker = [cmd](Part::Feature* sketch, std::string FeatName) {
@ -1042,6 +1073,12 @@ CmdPartDesignAdditivePipe::CmdPartDesignAdditivePipe()
void CmdPartDesignAdditivePipe::activated(int iMsg)
{
PartDesign::Body *pcActiveBody = PartDesignGui::getBody(/*messageIfNot = */ true);
// No PartDesign feature without Body past FreeCAD 0.13
if (!pcActiveBody)
return;
Gui::Command* cmd = this;
auto worker = [cmd](Part::Feature* sketch, std::string FeatName) {
@ -1082,6 +1119,12 @@ CmdPartDesignSubtractivePipe::CmdPartDesignSubtractivePipe()
void CmdPartDesignSubtractivePipe::activated(int iMsg)
{
PartDesign::Body *pcActiveBody = PartDesignGui::getBody(/*messageIfNot = */ true);
// No PartDesign feature without Body past FreeCAD 0.13
if (!pcActiveBody)
return;
Gui::Command* cmd = this;
auto worker = [cmd](Part::Feature* sketch, std::string FeatName) {
@ -1122,6 +1165,12 @@ CmdPartDesignAdditiveLoft::CmdPartDesignAdditiveLoft()
void CmdPartDesignAdditiveLoft::activated(int iMsg)
{
PartDesign::Body *pcActiveBody = PartDesignGui::getBody(/*messageIfNot = */ true);
// No PartDesign feature without Body past FreeCAD 0.13
if (!pcActiveBody)
return;
Gui::Command* cmd = this;
auto worker = [cmd](Part::Feature* sketch, std::string FeatName) {
@ -1162,6 +1211,12 @@ CmdPartDesignSubtractiveLoft::CmdPartDesignSubtractiveLoft()
void CmdPartDesignSubtractiveLoft::activated(int iMsg)
{
PartDesign::Body *pcActiveBody = PartDesignGui::getBody(/*messageIfNot = */ true);
// No PartDesign feature without Body past FreeCAD 0.13
if (!pcActiveBody)
return;
Gui::Command* cmd = this;
auto worker = [cmd](Part::Feature* sketch, std::string FeatName) {