]> git.llucax.com Git - z.facultad/75.42/plaqui.git/commitdiff
no se pueden repetir los nombres de los items
authorNicolás Dimov <ndimov@gmail.com>
Mon, 1 Dec 2003 03:47:53 +0000 (03:47 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Mon, 1 Dec 2003 03:47:53 +0000 (03:47 +0000)
15 files changed:
Constructor/dialogs/constructor.glade
Constructor/doc/manual.lyx
Constructor/include/item.h
Constructor/include/propertywnd.h
Constructor/include/workplace.h
Constructor/src/and.cpp
Constructor/src/cisternptywnd.cpp
Constructor/src/exclusaptywnd.cpp
Constructor/src/item.cpp
Constructor/src/itemptywnd.cpp
Constructor/src/not.cpp
Constructor/src/or.cpp
Constructor/src/propertywnd.cpp
Constructor/src/pumpptywnd.cpp
Constructor/src/workplace.cpp

index a2df8ca53e09ae837683c2fa54745be542f2db52..fd44f2f2c3694550dd01cd9d02654a19f38c074c 100644 (file)
   </child>
 </widget>
 
+<widget class="GtkDialog" id="dlg_name">
+  <property name="width_request">308</property>
+  <property name="height_request">110</property>
+  <property name="title" translatable="yes">Error</property>
+  <property name="type">GTK_WINDOW_TOPLEVEL</property>
+  <property name="window_position">GTK_WIN_POS_CENTER</property>
+  <property name="modal">True</property>
+  <property name="resizable">False</property>
+  <property name="destroy_with_parent">False</property>
+  <property name="has_separator">True</property>
+
+  <child internal-child="vbox">
+    <widget class="GtkVBox" id="dialog-vbox4">
+      <property name="visible">True</property>
+      <property name="homogeneous">False</property>
+      <property name="spacing">0</property>
+
+      <child internal-child="action_area">
+       <widget class="GtkHButtonBox" id="dialog-action_area3">
+         <property name="visible">True</property>
+         <property name="layout_style">GTK_BUTTONBOX_SPREAD</property>
+
+         <child>
+           <widget class="GtkButton" id="btn_dlg_ok">
+             <property name="visible">True</property>
+             <property name="can_default">True</property>
+             <property name="can_focus">True</property>
+             <property name="label">gtk-ok</property>
+             <property name="use_stock">True</property>
+             <property name="relief">GTK_RELIEF_NORMAL</property>
+             <property name="response_id">-5</property>
+           </widget>
+         </child>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">True</property>
+         <property name="pack_type">GTK_PACK_END</property>
+       </packing>
+      </child>
+
+      <child>
+       <widget class="GtkLabel" id="label28">
+         <property name="visible">True</property>
+         <property name="label" translatable="yes">
+               El nombre esta repetido.
+Ingrese un nombre distinto para este elemento</property>
+         <property name="use_underline">False</property>
+         <property name="use_markup">False</property>
+         <property name="justify">GTK_JUSTIFY_LEFT</property>
+         <property name="wrap">False</property>
+         <property name="selectable">False</property>
+         <property name="xalign">0.5</property>
+         <property name="yalign">0.5</property>
+         <property name="xpad">0</property>
+         <property name="ypad">0</property>
+       </widget>
+       <packing>
+         <property name="padding">0</property>
+         <property name="expand">False</property>
+         <property name="fill">False</property>
+       </packing>
+      </child>
+    </widget>
+  </child>
+</widget>
+
 </glade-interface>
index a3656218a528ff3089d2bee5d9f96a6e3d290711..2aa2741955c829ad99125e92473de8e9c23347c2 100644 (file)
@@ -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.
index 3259d8d1170acf472cad7d8ca6d8f6d6ff0e9d35..b1778b28d3346b3740bdec671e8bc181743d7600 100644 (file)
@@ -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<Gdk::Pixbuf> get_image() { return image; }
index 98cf47516001bffdc9b901a3edaf1445d77a77c8..31e82d13704633b5bc6e2382eb7ef2fb9729f6de 100644 (file)
@@ -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();
        
 };
 
index c85d76aeb3a6691e5beb2de239e4c0fc7081f5b9..670d86d5dea37c7aa65ff842a49f3b270b89daad 100644 (file)
@@ -55,6 +55,9 @@ class WorkPlace:public Gtk::Fixed {
                ///Punteros a las listas de items.
                std::list<CItem *> *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
index 1a36cfd72ca310b217bbe55f97eb30dab540a185..bdc1f0ed30a31037bc20a6075c094d87ac570217 100644 (file)
@@ -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()
index 31a01529a421c03575c0d9de8269adc70f0cd145..495b0ef94a94bbaa577e53e6a604726cd340fe0d 100644 (file)
@@ -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()
index f1c6025c0b585f0f5220f1a961cb3673599a15ed..55f4e8becae873321fa9f4d51ae841d04403d2ff 100644 (file)
@@ -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()
index cbba33190852aea8a0caf13d5fe9cafa61cd3e5e..76075022a9b635746b09fd2a6c82389d7d996cba 100644 (file)
@@ -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;
index 2cfeeb826c61b9cf3f451294a3155ddc1cfd0bc1..2ed5dcb2671c1d874b6e91bb9c9778a97ceda523 100644 (file)
@@ -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()
index 3568dbb420efa8d098b403f8cdd573f00ba5a988..ff076c29a1c934fce82ce1a774876a4c8a9d06eb 100644 (file)
@@ -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()
index d7ba294d645a76a1f06cb504caee443d6c69a95b..ae6cf2c90ffa1bc139cdd6c4ac8851e67168fdf2 100644 (file)
@@ -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()
index b233ca94228a1d36ce03aa3adc28c57f175c3450..54e6d209f606b5f500158a8f9e58f7955367b6f0 100644 (file)
@@ -6,10 +6,14 @@ PropertyWnd::PropertyWnd(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Glad
        refGlade->get_widget("btn_cancel", btn_cancel);
        refGlade->get_widget("btn_apply", btn_apply);
        refGlade->get_widget("btn_accept", btn_accept);
+       Glib::RefPtr<Gnome::Glade::Xml> 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();
+}
index b265271bf238b284e53944f509d72d8e3d029e65..f9ecc081769f2ea700ccd6ef42be89ec055c1770 100644 (file)
@@ -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()
index 6759989b06b0581ab13c4ce6386e5c5ccd495d9b..5ebacf7b579caeda3119a50c6252fa0c108f76cc 100644 (file)
@@ -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<CItem *>::iterator i;
+       i  = listaItems->begin();
+       while ( i != listaItems->end() ) {
+               if ( (*i)->get_name() == _name && (*i)->get_id() != _id )
+                               return true;
+               i++;
+       }
+       return false;
+}