Fix undo/redo while checking link integrity

This commit is contained in:
Stefan Tröger
2017-06-19 15:37:09 +02:00
committed by wmayer
parent 9fbf118cdd
commit eb601df236
7 changed files with 46 additions and 8 deletions
+13 -3
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;