From d664a4c16bb56138b53e8d6dba92e199bd3ea6c7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicol=C3=A1s=20Dimov?= Date: Tue, 18 Nov 2003 15:45:08 +0000 Subject: [PATCH 1/1] hay pequenias modificaciones en el workplace, se cuelga por eso pero en un rato lo arreglo --- Constructor/workplace.cpp | 29 +++++++++++++++++++++++++++++ Constructor/workplace.h | 3 ++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/Constructor/workplace.cpp b/Constructor/workplace.cpp index ddc671e..652cf01 100644 --- a/Constructor/workplace.cpp +++ b/Constructor/workplace.cpp @@ -21,6 +21,12 @@ bool WorkPlace::on_expose_event(GdkEventExpose *event) get_window()->draw_point (get_style()->get_black_gc(), x-1,y); } + + Glib::RefPtr gc = get_style()->get_black_gc(); + Gdk::Color color; + color.set_rgb(255,0,0); + gc->set_rgb_bg_color(color); + get_style()->set_black(color); std::list::iterator i = lista_lineas.begin(); while ( i != lista_lineas.end() ) { t_line temp = *i; @@ -36,12 +42,25 @@ void WorkPlace::delete_item(int _id) while ( i != listaItems->end() ){ CItem *temp = *i; if ( temp->get_id() == _id ){ + delete_line(_id); listaItems->erase(i); delete temp; break; } i++; } + i = lista_logic_Items->begin(); + while ( i != lista_logic_Items->end() ){ + CItem *temp = *i; + if ( temp->get_id() == _id ){ + delete_line(_id); + listaItems->erase(i); + delete temp; + break; + } + i++; + } + } CItem* WorkPlace::get_logic_item(int _id) @@ -55,3 +74,13 @@ CItem* WorkPlace::get_logic_item(int _id) } return NULL; } + +void WorkPlace::delete_line(int _id) +{ + std::list::iterator i = lista_lineas.begin(); + while ( i != lista_lineas.end() ){ + if ( (*i).logic->get_id() == _id || (*i).store->get_id == _id) + lista_lineas.erase(i); + i++; + } +} diff --git a/Constructor/workplace.h b/Constructor/workplace.h index 896e908..2bb0653 100644 --- a/Constructor/workplace.h +++ b/Constructor/workplace.h @@ -17,7 +17,8 @@ class WorkPlace:public Gtk::Fixed { WorkPlace(BaseObjectType* cobject, const Glib::RefPtr &refGlade); virtual ~WorkPlace(); virtual bool on_expose_event(GdkEventExpose *event); - void delete_item(int _id); + void delete_item(int _id); + void delete_line(int _id); CItem *get_logic_item(int _id); std::list *listaItems, *lista_logic_Items; std::list lista_lineas; -- 2.43.0