diff --git a/src/App/PropertyLinks.cpp b/src/App/PropertyLinks.cpp index 24a150d817..30e6da0fd2 100644 --- a/src/App/PropertyLinks.cpp +++ b/src/App/PropertyLinks.cpp @@ -1175,9 +1175,10 @@ void PropertyLinkSub::setValue(App::DocumentObject * lValue, #endif _pcLinkSub=lValue; _cSubList=std::move(subs); - if(shadows.size()==_cSubList.size()) + if(shadows.size()==_cSubList.size()) { _ShadowSubList = std::move(shadows); - else + onContainerRestored(); // re-register element references + } else updateElementReference(nullptr); checkLabelReferences(_cSubList); hasSetValue(); @@ -1985,9 +1986,10 @@ void PropertyLinkSubList::setValues(std::vector&& lValue, aboutToSetValue(); _lValueList = std::move(lValue); _lSubList = std::move(lSubNames); - if(ShadowSubList.size()==_lSubList.size()) + if(ShadowSubList.size()==_lSubList.size()) { _ShadowSubList = std::move(ShadowSubList); - else + onContainerRestored(); // re-register element references + } else updateElementReference(nullptr); checkLabelReferences(_lSubList); hasSetValue(); @@ -3226,7 +3228,7 @@ void PropertyXLink::detach() { } std::string PropertyXLink::getFullName(bool python) const { - if(getName() || python || !parentProp) + if((getName() && getName()[0]) || python || !parentProp) return inherited::getFullName(python); std::ostringstream ss; @@ -3259,13 +3261,14 @@ void PropertyXLink::setSubName(const char *subname) } void PropertyXLink::setSubValues(std::vector &&subs, - std::vector &&shadows) + std::vector &&shadows) { _SubList = std::move(subs); _ShadowSubList.clear(); - if(shadows.size() == _SubList.size()) + if(shadows.size() == _SubList.size()) { _ShadowSubList = std::move(shadows); - else + onContainerRestored(); // re-register element references + } else updateElementReference(nullptr); checkLabelReferences(_SubList); }