diff --git a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp index dfbdea79bc..1ab4d4d9ed 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderProjGroup.cpp @@ -48,6 +48,7 @@ #include #include +#include #include #include #include @@ -180,12 +181,19 @@ bool ViewProviderProjGroup::onDelete(const std::vector &) ViewList.push_back(DetIterator->Label.getValue()); } } + // get its leader lines + auto viewLead = Item->getLeaders(); + if (!viewLead.empty()) { + for (auto LeadIterator : viewLead) { + ViewList.push_back(LeadIterator->Label.getValue()); + } + } } // if there are section or detail views we cannot delete because this would break them if (!ViewList.empty()) { bodyMessageStream << qApp->translate("Std_Delete", - "The group cannot be deleted because its items have the\n following section and detail views that would get broken:\n"); + "The group cannot be deleted because its items have the following\n section or detail views, or leader lines that would get broken:\n"); for (auto ListIterator : ViewList) bodyMessageStream << '\n' << QString::fromUtf8(ListIterator.c_str()); QMessageBox::warning(Gui::getMainWindow(), diff --git a/src/Mod/TechDraw/Gui/ViewProviderWeld.cpp b/src/Mod/TechDraw/Gui/ViewProviderWeld.cpp index 7771d9cb3d..47c1dfbde5 100644 --- a/src/Mod/TechDraw/Gui/ViewProviderWeld.cpp +++ b/src/Mod/TechDraw/Gui/ViewProviderWeld.cpp @@ -24,7 +24,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ -# include +# include # include #endif @@ -188,26 +188,26 @@ double ViewProviderWeld::prefTileTextAdjust(void) return adjust; } -bool ViewProviderWeld::onDelete(const std::vector &) -{ - // a weld cannot be deleted if it has a tile - +bool ViewProviderWeld::onDelete(const std::vector &) +{ + // a weld cannot be deleted if it has a tile + // get childs auto childs = claimChildren(); - - if (!childs.empty()) { - QString bodyMessage; - QTextStream bodyMessageStream(&bodyMessage); - bodyMessageStream << qApp->translate("Std_Delete", - "You cannot delete this weld symbol because\n it has a tile weld that would become broken."); - QMessageBox::warning(Gui::getMainWindow(), - qApp->translate("Std_Delete", "Object dependencies"), bodyMessage, - QMessageBox::Ok); - return false; - } - else { - return true; - } + + if (!childs.empty()) { + QString bodyMessage; + QTextStream bodyMessageStream(&bodyMessage); + bodyMessageStream << qApp->translate("Std_Delete", + "You cannot delete this weld symbol because\n it has a tile weld that would become broken."); + QMessageBox::warning(Gui::getMainWindow(), + qApp->translate("Std_Delete", "Object dependencies"), bodyMessage, + QMessageBox::Ok); + return false; + } + else { + return true; + } } bool ViewProviderWeld::canDelete(App::DocumentObject *obj) const