Extensions: Fix GeoFeatureGroup drag&drop

This commit is contained in:
Stefan Tröger
2016-12-24 09:38:51 +01:00
committed by wmayer
parent dd0b7144f8
commit 109f8690ee
9 changed files with 240 additions and 7 deletions

View File

@@ -57,7 +57,7 @@ void GeoFeatureGroupExtension::initExtension(ExtensionContainer* obj) {
if(!obj->isDerivedFrom(App::GeoFeature::getClassTypeId()))
throw Base::Exception("GeoFeatureGroupExtension can only be applied to GeoFeatures");
App::Extension::initExtension(obj);
App::GroupExtension::initExtension(obj);
}
PropertyPlacement& GeoFeatureGroupExtension::placement() {
@@ -143,9 +143,9 @@ bool GeoFeatureGroupExtension::geoHasObject (const DocumentObject* obj) const {
DocumentObject* GeoFeatureGroupExtension::getGroupOfObject(const DocumentObject* obj, bool indirect)
{
const Document* doc = obj->getDocument();
std::vector<DocumentObject*> grps = doc->getObjectsOfType(GeoFeatureGroupExtension::getExtensionClassTypeId());
std::vector<DocumentObject*> grps = doc->getObjectsWithExtension(GeoFeatureGroupExtension::getExtensionClassTypeId());
for (std::vector<DocumentObject*>::const_iterator it = grps.begin(); it != grps.end(); ++it) {
GeoFeatureGroupExtension* grp = (GeoFeatureGroupExtension*)(*it);
GeoFeatureGroupExtension* grp = (*it)->getExtensionByType<GeoFeatureGroupExtension>();
if ( indirect ) {
if (grp->geoHasObject(obj)) {
return dynamic_cast<App::DocumentObject*>(grp);