Extensions: special calls for document object extensions
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
|
||||
using namespace App;
|
||||
|
||||
PROPERTY_SOURCE(App::GroupExtension, App::Extension)
|
||||
PROPERTY_SOURCE(App::GroupExtension, App::DocumentObjectExtension)
|
||||
|
||||
GroupExtension::GroupExtension()
|
||||
{
|
||||
@@ -89,7 +89,7 @@ void GroupExtension::removeObjectFromDocument(DocumentObject* obj)
|
||||
{
|
||||
// remove all children
|
||||
if (obj->hasExtension(GroupExtension::getClassTypeId())) {
|
||||
GroupExtension *grp = static_cast<GroupExtension*>(obj->getExtension(GroupExtension::getClassTypeId()));
|
||||
GroupExtension *grp = static_cast<GroupExtension*>(obj->getExtension(GroupExtension::getClassTypeId()));
|
||||
|
||||
// recursive call to remove all subgroups
|
||||
grp->removeObjectsFromDocument();
|
||||
@@ -112,7 +112,7 @@ bool GroupExtension::hasObject(const DocumentObject* obj, bool recursive) const
|
||||
for (std::vector<DocumentObject*>::const_iterator it = grp.begin(); it != grp.end(); ++it) {
|
||||
if (*it == obj) {
|
||||
return true;
|
||||
App::GroupExtension *subGroup = static_cast<App::GroupExtension *> ((*it)->getExtension(GroupExtension::getClassTypeId()));
|
||||
} else if ( recursive && (*it)->hasExtension(GroupExtension::getClassTypeId()) ) {
|
||||
App::GroupExtension *subGroup = static_cast<App::GroupExtension *> ((*it)->getExtension(GroupExtension::getClassTypeId()));
|
||||
|
||||
if (subGroup->hasObject (obj, recursive)) {
|
||||
@@ -129,7 +129,7 @@ bool GroupExtension::isChildOf(const GroupExtension* group) const
|
||||
const std::vector<DocumentObject*>& grp = group->Group.getValues();
|
||||
for (std::vector<DocumentObject*>::const_iterator it = grp.begin(); it != grp.end(); ++it) {
|
||||
if (*it == getExtendedObject())
|
||||
if (this->isChildOf(static_cast<GroupExtension*>((*it)->getExtension(GroupExtension::getClassTypeId()))))
|
||||
return true;
|
||||
if ((*it)->hasExtension(GroupExtension::getClassTypeId())) {
|
||||
if (this->isChildOf(static_cast<GroupExtension*>((*it)->getExtension(GroupExtension::getClassTypeId()))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user