Add addObjects to add multiple objects in one step
This commit is contained in:
@@ -75,6 +75,29 @@ void GroupExtension::addObject(DocumentObject* obj)
|
||||
}
|
||||
}
|
||||
|
||||
void GroupExtension::addObjects(const std::vector<App::DocumentObject*>& objs)
|
||||
{
|
||||
bool objectAdded = false;
|
||||
std::vector<DocumentObject*> grp = Group.getValues();
|
||||
for (auto obj : objs) {
|
||||
if (allowObject(obj)) {
|
||||
|
||||
//only one group per object
|
||||
auto *group = App::GroupExtension::getGroupOfObject(obj);
|
||||
if (group && group != getExtendedObject())
|
||||
group->getExtensionByType<App::GroupExtension>()->removeObject(obj);
|
||||
|
||||
if (std::find(grp.begin(), grp.end(), obj) == grp.end()) {
|
||||
grp.push_back(obj);
|
||||
objectAdded = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (objectAdded)
|
||||
Group.setValues(grp);
|
||||
}
|
||||
|
||||
void GroupExtension::removeObject(DocumentObject* obj)
|
||||
{
|
||||
const std::vector<DocumentObject*> & grp = Group.getValues();
|
||||
|
||||
Reference in New Issue
Block a user