App: do not save external dependency

This commit is contained in:
Zheng, Lei
2019-12-14 11:56:51 +08:00
committed by wmayer
parent 0a608e9413
commit 5eb15e4219
2 changed files with 14 additions and 3 deletions

View File

@@ -284,14 +284,24 @@ void DocumentObject::getOutList(int options, std::vector<DocumentObject*> &res)
std::vector<Property*> props;
getPropertyList(props);
bool noHidden = !!(options & OutListNoHidden);
bool noXLinked = !!(options & OutListNoXLinked);
std::size_t size = res.size();
for(auto prop : props) {
auto link = dynamic_cast<PropertyLinkBase*>(prop);
if(link && (!noXLinked || !PropertyXLink::supportXLink(prop)))
if(link)
link->getLinks(res,noHidden);
}
if(!(options & OutListNoExpression))
ExpressionEngine.getLinks(res);
if(options & OutListNoXLinked) {
for(auto it=res.begin()+size;it!=res.end();) {
auto obj = *it;
if(obj && obj->getDocument()!=getDocument())
it = res.erase(it);
else
++it;
}
}
}
std::vector<App::DocumentObject*> DocumentObject::getOutListOfProperty(App::Property* prop) const