Merge pull request #20031 from PaddleStroke/patch-11

App::Link : deleting it deletes its elements if any
This commit is contained in:
Chris Hennes
2025-03-10 17:27:59 +00:00
committed by GitHub

View File

@@ -2384,8 +2384,19 @@ bool ViewProviderLink::getDetailPath(
bool ViewProviderLink::onDelete(const std::vector<std::string> &) {
auto element = getObject<App::LinkElement>();
if (element && !element->canDelete())
if (element && !element->canDelete()) {
return false;
}
auto link = getObject<App::Link>();
if (link->ElementCount.getValue() != 0) {
auto doc = link->getDocument();
auto elements = link->ElementList.getValues();
for (auto element : elements) {
doc->removeObject(element->getNameInDocument());
}
}
auto ext = getLinkExtension();
if (ext->isLinkMutated()) {
auto linked = ext->getLinkedObjectValue();