void ConstraintView::deleteSelectedItems() { App::Document* doc = App::GetApplication().getActiveDocument(); if (!doc) return; doc->openTransaction("Delete"); std::vector<Gui::SelectionObject> sel = Gui::Selection().getSelectionEx(doc->getName()); for (std::vector<Gui::SelectionObject>::iterator ft = sel.begin(); ft != sel.end(); ++ft) { Gui::ViewProvider* vp = Gui::Application::Instance->getViewProvider(ft->getObject()); if (vp) { vp->onDelete(ft->getSubNames()); } } doc->commitTransaction(); }
void StdCmdDelete::activated(int iMsg) { // go through all documents const SelectionSingleton& rSel = Selection(); const std::vector<App::Document*> docs = App::GetApplication().getDocuments(); for (std::vector<App::Document*>::const_iterator it = docs.begin(); it != docs.end(); ++it) { Gui::Document* pGuiDoc = Gui::Application::Instance->getDocument(*it); std::vector<Gui::SelectionObject> sel = rSel.getSelectionEx((*it)->getName()); if (!sel.empty()) { (*it)->openTransaction("Delete"); for (std::vector<Gui::SelectionObject>::iterator ft = sel.begin(); ft != sel.end(); ++ft) { Gui::ViewProvider* vp = pGuiDoc->getViewProvider(ft->getObject()); if (vp) { // ask the ViewProvider if its want to do some clean up if (vp->onDelete(ft->getSubNames())) doCommand(Doc,"App.getDocument(\"%s\").removeObject(\"%s\")" ,(*it)->getName(), ft->getFeatName()); } } (*it)->commitTransaction(); } } }