From de760c05d707d0b239f4fc09cb1dba2c13a18b45 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicol=C3=A1s=20Dimov?= Date: Mon, 1 Dec 2003 03:47:53 +0000 Subject: [PATCH] no se pueden repetir los nombres de los items --- Constructor/dialogs/constructor.glade | 68 +++++++++++++++++++++++++++ Constructor/doc/manual.lyx | 18 ++++--- Constructor/include/item.h | 3 -- Constructor/include/propertywnd.h | 6 ++- Constructor/include/workplace.h | 3 ++ Constructor/src/and.cpp | 1 - Constructor/src/cisternptywnd.cpp | 5 ++ Constructor/src/exclusaptywnd.cpp | 7 ++- Constructor/src/item.cpp | 4 -- Constructor/src/itemptywnd.cpp | 8 +++- Constructor/src/not.cpp | 1 - Constructor/src/or.cpp | 1 - Constructor/src/propertywnd.cpp | 9 ++++ Constructor/src/pumpptywnd.cpp | 6 ++- Constructor/src/workplace.cpp | 13 +++++ 15 files changed, 132 insertions(+), 21 deletions(-) diff --git a/Constructor/dialogs/constructor.glade b/Constructor/dialogs/constructor.glade index a2df8ca..fd44f2f 100644 --- a/Constructor/dialogs/constructor.glade +++ b/Constructor/dialogs/constructor.glade @@ -1947,4 +1947,72 @@ + + 308 + 110 + Error + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_CENTER + True + False + False + True + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_SPREAD + + + + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + -5 + + + + + 0 + False + True + GTK_PACK_END + + + + + + True + + El nombre esta repetido. +Ingrese un nombre distinto para este elemento + False + False + GTK_JUSTIFY_LEFT + False + False + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + diff --git a/Constructor/doc/manual.lyx b/Constructor/doc/manual.lyx index a365621..2aa2741 100644 --- a/Constructor/doc/manual.lyx +++ b/Constructor/doc/manual.lyx @@ -234,7 +234,7 @@ Barra de herramientas. \begin_inset Graphics - filename /home/nico/plaqui/Constructor/doc/barra_herramientas.png + filename barra_herramientas.png \end_inset @@ -282,7 +282,7 @@ Buscar \begin_inset Graphics - filename /home/nico/plaqui/Constructor/doc/buscar.png + filename buscar.png \end_inset @@ -318,6 +318,13 @@ na informaci Es el espacio grillado central, en ella se arrastran y sueltan los elementos de una planta para su diseño. +\layout Comment + +ACA ESTARIA BUENO PONER UNA IMAGEN DE TODA LA PANTALLA INDICANDO QUE ES + CADA COSA +\layout Comment + +( DENTRO DE LA MISMA IMAGEN) \layout Section Guardar y recuperar el trabajo. @@ -397,7 +404,9 @@ o directamente desde el acceso r el botón con el mismo ícono, que se encuentra en la primera posición. \layout Standard -Esta acción +Luego de este procedimiento, si el usuario desea guardar nuevamente el trabajo, + volverá a aparecer el diálogo para seleccionar la ubicación y nombre del + archivo por primera vez. \layout Section Salir del programa. @@ -432,9 +441,6 @@ A continuaci \layout Section Diseño Físico de la planta. -\layout Comment - -Mencionar el botón de verificar conexionado. \layout Subsection Agregar un elemento. diff --git a/Constructor/include/item.h b/Constructor/include/item.h index 3259d8d..b1778b2 100644 --- a/Constructor/include/item.h +++ b/Constructor/include/item.h @@ -69,9 +69,6 @@ public: ///Elimina el Item al seleccionarse la opcion en el menu flotante virtual void on_menu_popup_eliminar(); - - ///TODO: conectar los items con lineas!!! - virtual void on_menu_popup_conectar(); ///Retorna un puntero a la imagen actual. Glib::RefPtr get_image() { return image; } diff --git a/Constructor/include/propertywnd.h b/Constructor/include/propertywnd.h index 98cf475..31e82d1 100644 --- a/Constructor/include/propertywnd.h +++ b/Constructor/include/propertywnd.h @@ -28,12 +28,16 @@ class PropertyWnd : public Gtk::Window{ CItem *item; ///Objetos de la ventana. - Gtk::Button *btn_cancel, *btn_accept, *btn_apply; + Gtk::Button *btn_cancel, *btn_accept, *btn_apply, *btn_dlg_ok; + + ///Dialogo que avisa que hay un nombre repetido. + Gtk::Dialog *dlg_name; ///Señales que se invocan al presionar los botones. virtual void on_btn_cancel_clicked(); virtual void on_btn_accept_clicked(); virtual void on_btn_apply_clicked(); + virtual void on_btn_dlg_name_clicked(); }; diff --git a/Constructor/include/workplace.h b/Constructor/include/workplace.h index c85d76a..670d86d 100644 --- a/Constructor/include/workplace.h +++ b/Constructor/include/workplace.h @@ -55,6 +55,9 @@ class WorkPlace:public Gtk::Fixed { ///Punteros a las listas de items. std::list *listaItems, *lista_logic_Items; + ///Verifica si hay nombres repetidos. + virtual bool chek_name(Glib::ustring _name, int _id); + /** Listas de lineas que van de una compuerta a la entrada de un item y de la salida de un item a una compuerta * lista_lineas_in = (salida) compuerta --> (entrada) item * lista_lineas_out= (entrada) compuerta --> (salida) item diff --git a/Constructor/src/and.cpp b/Constructor/src/and.cpp index 1a36cfd..bdc1f0e 100644 --- a/Constructor/src/and.cpp +++ b/Constructor/src/and.cpp @@ -42,7 +42,6 @@ And::And(int orientacion) } set_size_request(image->get_width(), image->get_height()); name = "and"; - menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem("Conectar", menu_image_linea,SigC::slot(*this, &CItem::on_menu_popup_conectar) ) ) ; } And::~And() diff --git a/Constructor/src/cisternptywnd.cpp b/Constructor/src/cisternptywnd.cpp index 31a0152..495b0ef 100644 --- a/Constructor/src/cisternptywnd.cpp +++ b/Constructor/src/cisternptywnd.cpp @@ -35,6 +35,7 @@ CisternPtyWnd::~CisternPtyWnd() void CisternPtyWnd::on_btn_accept_clicked() { CisternPtyWnd::on_btn_apply_clicked(); + if ( !cistern->workplace->chek_name(txt_cistern_name->get_text(), cistern->get_id()) ) hide(); } @@ -44,6 +45,10 @@ void CisternPtyWnd::on_btn_apply_clicked() cistern->set_contenido_inicial( spin_inicial->get_value() ); cistern->set_name( txt_cistern_name->get_text() ); color_select_dlg->get_colorsel()->set_current_color(cistern->get_liquid_color()); + if ( cistern->workplace->chek_name(txt_cistern_name->get_text(), cistern->get_id()) ) + dlg_name->show(); + else + cistern->set_name( txt_cistern_name->get_text() ); } void CisternPtyWnd::on_btn_select_color_clicked() diff --git a/Constructor/src/exclusaptywnd.cpp b/Constructor/src/exclusaptywnd.cpp index f1c6025..55f4e8b 100644 --- a/Constructor/src/exclusaptywnd.cpp +++ b/Constructor/src/exclusaptywnd.cpp @@ -18,13 +18,18 @@ ExclusaPtyWnd::~ExclusaPtyWnd() void ExclusaPtyWnd::on_btn_accept_clicked() { - exclusa->set_name( txt_exclusa_name->get_text() ); + on_btn_apply_clicked(); + if (! exclusa->workplace->chek_name(txt_exclusa_name->get_text(), exclusa->get_id()) ) hide(); } void ExclusaPtyWnd::on_btn_apply_clicked() { exclusa->set_name( txt_exclusa_name->get_text() ); + if ( exclusa->workplace->chek_name(txt_exclusa_name->get_text(), exclusa->get_id()) ) + dlg_name->show(); + else + exclusa->set_name( txt_exclusa_name->get_text() ); } void ExclusaPtyWnd::on_rd_btn_close_clicked() diff --git a/Constructor/src/item.cpp b/Constructor/src/item.cpp index cbba331..7607502 100644 --- a/Constructor/src/item.cpp +++ b/Constructor/src/item.cpp @@ -80,10 +80,6 @@ void CItem::on_menu_popup_eliminar() workplace->delete_item(ID); } -void CItem::on_menu_popup_conectar() -{ -} - int CItem::get_position_x() { return x; diff --git a/Constructor/src/itemptywnd.cpp b/Constructor/src/itemptywnd.cpp index 2cfeeb8..2ed5dcb 100644 --- a/Constructor/src/itemptywnd.cpp +++ b/Constructor/src/itemptywnd.cpp @@ -22,8 +22,8 @@ ItemPtyWnd::~ItemPtyWnd() void ItemPtyWnd::on_btn_accept_clicked() { - item->set_caudal( spin_caudal->get_value() ); - item->set_name( txt_item_name->get_text() ); + on_btn_apply_clicked(); + if ( !item->workplace->chek_name(txt_item_name->get_text(), item->get_id()) ) hide(); } @@ -31,6 +31,10 @@ void ItemPtyWnd::on_btn_apply_clicked() { item->set_caudal( spin_caudal->get_value() ); item->set_name( txt_item_name->get_text() ); + if ( item->workplace->chek_name(txt_item_name->get_text(), item->get_id()) ) + dlg_name->show(); + else + item->set_name( txt_item_name->get_text() ); } void ItemPtyWnd::on_btn_cancel_clicked() diff --git a/Constructor/src/not.cpp b/Constructor/src/not.cpp index 3568dbb..ff076c2 100644 --- a/Constructor/src/not.cpp +++ b/Constructor/src/not.cpp @@ -43,7 +43,6 @@ Not::Not(int orientacion) } set_size_request(image->get_width(), image->get_height()); name = "not"; - menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem("Conectar", menu_image_linea,SigC::slot(*this, &CItem::on_menu_popup_conectar) ) ) ; } Not::~Not() diff --git a/Constructor/src/or.cpp b/Constructor/src/or.cpp index d7ba294..ae6cf2c 100644 --- a/Constructor/src/or.cpp +++ b/Constructor/src/or.cpp @@ -43,7 +43,6 @@ Or::Or(int orientacion) } set_size_request(image->get_width(), image->get_height()); name = "or"; - menulist.push_back( Gtk::Menu_Helpers::ImageMenuElem("Conectar", menu_image_linea,SigC::slot(*this, &CItem::on_menu_popup_conectar) ) ) ; } Or::~Or() diff --git a/Constructor/src/propertywnd.cpp b/Constructor/src/propertywnd.cpp index b233ca9..54e6d20 100644 --- a/Constructor/src/propertywnd.cpp +++ b/Constructor/src/propertywnd.cpp @@ -6,10 +6,14 @@ PropertyWnd::PropertyWnd(BaseObjectType* cobject, const Glib::RefPtrget_widget("btn_cancel", btn_cancel); refGlade->get_widget("btn_apply", btn_apply); refGlade->get_widget("btn_accept", btn_accept); + Glib::RefPtr ref = Gnome::Glade::Xml::create(PACKAGE_DATA_DIR"/plaqui-constructor/dialogs/constructor.glade", "dlg_name"); + ref->get_widget("dlg_name", dlg_name); + ref->get_widget("btn_dlg_ok", btn_dlg_ok); btn_cancel->signal_clicked().connect(SigC::slot(*this, &PropertyWnd::on_btn_cancel_clicked)); btn_accept->signal_clicked().connect(SigC::slot(*this, &PropertyWnd::on_btn_accept_clicked)); btn_apply->signal_clicked().connect(SigC::slot(*this, &PropertyWnd::on_btn_apply_clicked)); + btn_dlg_ok->signal_clicked().connect(SigC::slot(*this, &PropertyWnd::on_btn_dlg_name_clicked)); } PropertyWnd::~PropertyWnd() @@ -29,3 +33,8 @@ void PropertyWnd::on_btn_accept_clicked() void PropertyWnd::on_btn_apply_clicked() { } + +void PropertyWnd::on_btn_dlg_name_clicked() +{ + dlg_name->hide(); +} diff --git a/Constructor/src/pumpptywnd.cpp b/Constructor/src/pumpptywnd.cpp index b265271..f9ecc08 100644 --- a/Constructor/src/pumpptywnd.cpp +++ b/Constructor/src/pumpptywnd.cpp @@ -34,14 +34,18 @@ void PumpPtyWnd::show() void PumpPtyWnd::on_btn_accept_clicked() { PumpPtyWnd::on_btn_apply_clicked(); + if ( !pump->workplace->chek_name(txt_pump_name->get_text(), pump->get_id()) ) hide(); } void PumpPtyWnd::on_btn_apply_clicked() { pump->set_entrega( spin_fluid->get_value() ); - pump->set_name( txt_pump_name->get_text() ); color_select_dlg->get_colorsel()->set_current_color(pump->get_liquid_color()); + if ( pump->workplace->chek_name(txt_pump_name->get_text(), pump->get_id()) ) + dlg_name->show(); + else + pump->set_name( txt_pump_name->get_text() ); } void PumpPtyWnd::on_btn_select_color_clicked() diff --git a/Constructor/src/workplace.cpp b/Constructor/src/workplace.cpp index 6759989..5ebacf7 100644 --- a/Constructor/src/workplace.cpp +++ b/Constructor/src/workplace.cpp @@ -307,3 +307,16 @@ void WorkPlace::draw_line(int x1, int y1, int x2, int y2, Gdk::Color &color) get_window()->draw_line (gc, x1, y1, x1, y2); get_window()->draw_line (gc, x1, y2, x2, y2); } + + +bool WorkPlace::chek_name(Glib::ustring _name, int _id) +{ + std::list::iterator i; + i = listaItems->begin(); + while ( i != listaItems->end() ) { + if ( (*i)->get_name() == _name && (*i)->get_id() != _id ) + return true; + i++; + } + return false; +} -- 2.43.0