void ESceneGroupTool::UngroupObjects(bool bUndo) { ObjectList lst = m_Objects; int sel_cnt = 0; if (!lst.empty()) { bool bModif = false; for (ObjectIt it=lst.begin(); it!=lst.end(); ++it) { if ((*it)->Selected()) { sel_cnt++; CGroupObject* obj = dynamic_cast<CGroupObject*>(*it); VERIFY(obj); if (obj->CanUngroup(true)) { obj->UngroupObjects (); Scene->RemoveObject (obj,false,true); xr_delete (obj); bModif = true; }else ELog.DlgMsg (mtError,"Can't ungroup object: '%s'.",obj->Name); } } if (bUndo&&bModif) Scene->UndoSave(); } if (0==sel_cnt) ELog.Msg (mtError,"Nothing selected."); }
void ESceneGroupTools::OpenGroups(bool bUndo) { ObjectList lst = m_Objects; int sel_cnt = 0; if (!lst.empty()){ bool bModif = false; for (ObjectIt it=lst.begin(); it!=lst.end(); it++){ if ((*it)->Selected()){ sel_cnt++; CGroupObject* obj = dynamic_cast<CGroupObject*>(*it); VERIFY(obj); if (obj->CanUngroup(true)){ obj->OpenGroup (); bModif = true; }else{ ELog.DlgMsg (mtError,"Can't open group: '%s'.",obj->Name); } } } if (bUndo&&bModif) Scene->UndoSave(); } if (0==sel_cnt) ELog.Msg (mtError,"Nothing selected."); }