Unify and fix group handling in geofeaturegroups

This commit is contained in:
Stefan Tröger
2017-02-08 07:08:45 +01:00
committed by wmayer
parent c3a9d43143
commit fd62ef30f3
16 changed files with 121 additions and 147 deletions

View File

@@ -65,27 +65,15 @@ App::Origin *OriginGroupExtension::getOrigin () const {
}
}
App::DocumentObject *OriginGroupExtension::getGroupOfObject (const DocumentObject* obj, bool indirect) {
const Document* doc = obj->getDocument();
std::vector<DocumentObject*> grps = doc->getObjectsWithExtension ( OriginGroupExtension::getExtensionClassTypeId() );
for (auto grpObj: grps) {
OriginGroupExtension* grp = dynamic_cast <OriginGroupExtension* >(grpObj->getExtension(
OriginGroupExtension::getExtensionClassTypeId()));
if(!grp) throw Base::TypeError("Wrong type in origin group extenion");
if ( indirect ) {
if ( grp->geoHasObject (obj) ) {
return grp->getExtendedObject();
}
} else {
if ( grp->hasObject (obj) ) {
return grp->getExtendedObject();
}
}
App::DocumentObject *OriginGroupExtension::getGroupOfObject (const DocumentObject* obj) {
auto list = obj->getInList();
for (auto obj : list) {
if(obj->hasExtension(App::OriginGroupExtension::getExtensionClassTypeId()))
return obj;
}
return 0;
return nullptr;
}
short OriginGroupExtension::extensionMustExecute() {