]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
se verifica que los elementos esten conectados a la hora de salvar el archivo
authorNicolás Dimov <ndimov@gmail.com>
Sun, 23 Nov 2003 20:10:57 +0000 (20:10 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Sun, 23 Nov 2003 20:10:57 +0000 (20:10 +0000)
Constructor/include/constructor.h
Constructor/src/constructor.cpp

index d97c50e1d02bcb5c85db8a13222d62ca1b331494..1e847bcad209995e729640f7383010c33fc1f1e2 100644 (file)
@@ -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<Gdk::DragContext>& context);
        virtual void on_y_drag_begin(const Glib::RefPtr<Gdk::DragContext>& context);
index 87a943bb72e924fcc54aab2949dc7b1f104e8f62..962fff64c806bbd34f1e19aaa7dd62e745ad0942 100644 (file)
@@ -292,23 +292,30 @@ void Constructor::on_btn_file_ok_clicked()
 {
        std::list<CItem *>::iterator i = listaItems.begin();
        file_name = file_selection->get_filename();
-       if ( (archivo = fopen( file_name.c_str(), "w+")) != NULL ){
-               fprintf(archivo, "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n");
-               fprintf (archivo,"<planta>\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,"</planta>\n");
-               saved = true;
-       } else 
-               std::cout<<"NO SE ABRIO EL ARCHIVO"<<std::endl;
-       fclose(archivo);
+       Glib::ustring name;
+       if ( ! check_connection(name) ) {
+               dlg_connect->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, "<?xml version=\"1.0\" encoding=\"iso-8859-1\" ?>\n");
+                       fprintf (archivo,"<planta>\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,"</planta>\n");
+                       saved = true;
+                       fclose(archivo);
+               } else 
+                       std::cout<<"NO SE ABRIO EL ARCHIVO"<<std::endl;
+       }
        file_selection->hide();
 }
 
@@ -527,6 +534,21 @@ void Constructor::on_item_drop_drag_received(const Glib::RefPtr<Gdk::DragContext
 }
 
 void Constructor::on_btn_check_clicked()
+{
+       Glib::ustring name;
+       if ( ! check_connection(name) ) {
+               dlg_connect->set_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<CItem *>::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="<<temp->get_name()<<" "<<"check= "<<temp->check_connection()<<std::endl;
                        if ( !temp->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"<<std::endl;
        std::list<CItem *>::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)
 {