Fix undo/redo while checking link integrity

This commit is contained in:
Stefan Tröger
2017-02-11 13:55:20 +01:00
committed by wmayer
parent 2d3c655ced
commit e5c1f2bc70
7 changed files with 46 additions and 8 deletions

View File

@@ -67,10 +67,20 @@ App::Origin *OriginGroupExtension::getOrigin () const {
App::DocumentObject *OriginGroupExtension::getGroupOfObject (const DocumentObject* obj) {
if(!obj)
return nullptr;
bool isOriginFeature = obj->isDerivedFrom(App::OriginFeature::getClassTypeId());
auto list = obj->getInList();
for (auto obj : list) {
if(obj->hasExtension(App::OriginGroupExtension::getExtensionClassTypeId()))
return obj;
for (auto o : list) {
if(o->hasExtension(App::OriginGroupExtension::getExtensionClassTypeId()))
return o;
else if (isOriginFeature && o->isDerivedFrom(App::Origin::getClassTypeId())) {
auto result = getGroupOfObject(o);
if(result)
return result;
}
}
return nullptr;