From 024283e704c4b5123077f9afbfa504d6a5906235 Mon Sep 17 00:00:00 2001 From: Abdullah Tahiri Date: Fri, 8 Jan 2021 19:39:17 +0100 Subject: [PATCH] Part: Geometry trigger notifyAttach on extension addition --- src/Mod/Part/App/Geometry.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Mod/Part/App/Geometry.cpp b/src/Mod/Part/App/Geometry.cpp index be49c911c0..43087c5b7e 100644 --- a/src/Mod/Part/App/Geometry.cpp +++ b/src/Mod/Part/App/Geometry.cpp @@ -334,22 +334,25 @@ std::weak_ptr Geometry::getExtension(std::string name) } -void Geometry::setExtension(std::unique_ptr && geo) +void Geometry::setExtension(std::unique_ptr && geoext ) { bool hasext=false; for( auto & ext : extensions) { // if same type and name, this modifies the existing extension. - if( ext->getTypeId() == geo->getTypeId() && - ext->getName() == geo->getName()){ - ext = std::move(geo); + if( ext->getTypeId() == geoext->getTypeId() && + ext->getName() == geoext->getName()){ + ext = std::move( geoext ); + ext->notifyAttachment(this); hasext = true; break; } } - if(!hasext) // new type-name unique id, so add. - extensions.push_back(std::move(geo)); + if(!hasext) { // new type-name unique id, so add. + extensions.push_back(std::move( geoext )); + extensions.back()->notifyAttachment(this); + } } void Geometry::deleteExtension(Base::Type type) @@ -400,8 +403,10 @@ void Geometry::assignTag(const Part::Geometry * geo) void Geometry::copyNonTag(const Part::Geometry * src) { - for(auto & ext: src->extensions) + for(auto & ext: src->extensions) { this->extensions.push_back(ext->copy()); + extensions.back()->notifyAttachment(this); + } } Geometry *Geometry::clone(void) const