From ac870d5f2b6c3690d856c346aaf6946e1e64f05e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Nicol=C3=A1s=20Dimov?= Date: Sun, 23 Nov 2003 20:10:57 +0000 Subject: [PATCH] se verifica que los elementos esten conectados a la hora de salvar el archivo --- Constructor/include/constructor.h | 2 + Constructor/src/constructor.cpp | 76 +++++++++++++++++++------------ 2 files changed, 49 insertions(+), 29 deletions(-) diff --git a/Constructor/include/constructor.h b/Constructor/include/constructor.h index d97c50e..1e847bc 100644 --- a/Constructor/include/constructor.h +++ b/Constructor/include/constructor.h @@ -80,6 +80,8 @@ class Constructor : public Gtk::Window { virtual void on_quick_btn_save_clicked(); virtual void on_quick_btn_new_clicked(); + bool check_connection(Glib::ustring& name); + // señales para cambiar el icono. virtual void on_canio_drag_begin(const Glib::RefPtr& context); virtual void on_y_drag_begin(const Glib::RefPtr& context); diff --git a/Constructor/src/constructor.cpp b/Constructor/src/constructor.cpp index 87a943b..962fff6 100644 --- a/Constructor/src/constructor.cpp +++ b/Constructor/src/constructor.cpp @@ -292,23 +292,30 @@ void Constructor::on_btn_file_ok_clicked() { std::list::iterator i = listaItems.begin(); file_name = file_selection->get_filename(); - if ( (archivo = fopen( file_name.c_str(), "w+")) != NULL ){ - fprintf(archivo, "\n"); - fprintf (archivo,"\n"); - while ( i != listaItems.end() ){ - (*i)->save(archivo); - i++; - } - i = lista_logic_Items.begin(); - while ( i != lista_logic_Items.end() ) { - (*i)->save(archivo); - i++; - } - fprintf(archivo,"\n"); - saved = true; - } else - std::cout<<"NO SE ABRIO EL ARCHIVO"<set_title("Error"); + dlg_label->set_text("El elemento "+name+" no esta conectado\n\t\tcorrectamente"); + dlg_connect->show(); + } else { + if ( (archivo = fopen( file_name.c_str(), "w+")) != NULL ){ + fprintf(archivo, "\n"); + fprintf (archivo,"\n"); + while ( i != listaItems.end() ){ + (*i)->save(archivo); + i++; + } + i = lista_logic_Items.begin(); + while ( i != lista_logic_Items.end() ) { + (*i)->save(archivo); + i++; + } + fprintf(archivo,"\n"); + saved = true; + fclose(archivo); + } else + std::cout<<"NO SE ABRIO EL ARCHIVO"<hide(); } @@ -527,6 +534,21 @@ void Constructor::on_item_drop_drag_received(const Glib::RefPtrset_title("Error"); + dlg_label->set_text("El elemento "+name+" no esta conectado\n\t\tcorrectamente"); + dlg_connect->show(); + } else { + dlg_connect->set_title("Conexion"); + dlg_label->set_text("Los elementos estan conectados\n\t\tcorrectamente"); + dlg_connect->show(); + } +} + + +bool Constructor::check_connection(Glib::ustring& name) { std::list::iterator i = listaItems.begin(); while ( i != listaItems.end() ){ @@ -534,33 +556,29 @@ void Constructor::on_btn_check_clicked() (*i)->is_connected = false; i++; } - i = listaItems.begin(); if ( !listaItems.empty() ) { while ( i != listaItems.end() ) { CItem *temp = *i; std::cout<< "item="<get_name()<<" "<<"check= "<check_connection()<check_connection() ) { - dlg_connect->set_title("Error"); - dlg_label->set_text("El elemento "+temp->get_name()+" no esta conectado\n\t\tcorrectamente"); - dlg_connect->show(); - return; + name = temp->get_name(); + return false; } i++; } - dlg_connect->set_title("Conexion"); - dlg_label->set_text("Los elementos estan conectados\n\t\tcorrectamente"); - dlg_connect->show(); } std::cout<<"check_connection logic"<::iterator j = lista_logic_Items.begin(); while ( j != lista_logic_Items.end() ) { - (*j)->check_connection(); + if ( !(*j)->check_connection() ) { + name = (*j)->get_name(); + return false; + } j++; } - - -} + return true; +} Pump *Constructor::loadBomba(xmlNodePtr nodo) { -- 2.43.0