From 04dfceaffb6add3a5d0ee0f27d35c304b63de785 Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Sun, 5 Dec 2010 11:01:49 +0000 Subject: [PATCH] fix element delete --- Fltk/classificationEditor.cpp | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Fltk/classificationEditor.cpp b/Fltk/classificationEditor.cpp index d61c69ee0f..f82e68bd07 100644 --- a/Fltk/classificationEditor.cpp +++ b/Fltk/classificationEditor.cpp @@ -127,8 +127,12 @@ static void select_elements_cb(Fl_Widget *w, void *data) } } if(ib == 'r') { - for(unsigned int i = 0; i < FlGui::instance()->selectedElements.size(); i++) - FlGui::instance()->selectedElements[i]->setVisibility(1); + for(unsigned int i = 0; i < FlGui::instance()->selectedElements.size(); i++){ + MElement *me = FlGui::instance()->selectedElements[i]; + if(me->getVisibility() == 2) + e->elements.erase(std::find(e->elements.begin(), e->elements.end(), me)); + me->setVisibility(1); + } } if(ib == 'e') { // ok, compute the edges GModel::current()->setSelection(0); @@ -198,13 +202,18 @@ static void delete_edge_cb(Fl_Widget *w, void *data) for(unsigned int i = 0; i < FlGui::instance()->selectedElements.size(); i++){ MElement *me = FlGui::instance()->selectedElements[i]; if(me->getType() == TYPE_LIN && me->getVisibility() != 2){ - me->setVisibility(2); ele.push_back((MLine*)me); + me->setVisibility(2); + ele.push_back((MLine*)me); } } } if(ib == 'r') { - for(unsigned int i = 0; i < FlGui::instance()->selectedElements.size(); i++) - FlGui::instance()->selectedElements[i]->setVisibility(1); + for(unsigned int i = 0; i < FlGui::instance()->selectedElements.size(); i++){ + MElement *me = FlGui::instance()->selectedElements[i]; + if(me->getVisibility() == 2) + ele.erase(std::find(ele.begin(), ele.end(), me)); + me->setVisibility(1); + } } if(ib == 'e') { GModel::current()->setSelection(0); -- GitLab