X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/blobdiff_plain/cd508589aa50ba1a706b8b9f07c9f4c8d6daee4c..9075115540d133ca048025e719884121007b9e87:/Client/src/principal.cpp diff --git a/Client/src/principal.cpp b/Client/src/principal.cpp index 6a08583..c73f2c8 100644 --- a/Client/src/principal.cpp +++ b/Client/src/principal.cpp @@ -3,7 +3,6 @@ #include #include #include -#include "plaqui/server/string.h" #include "item_codo.h" #include "item_conduct.h" #include "item_exclusa.h" @@ -15,6 +14,7 @@ #include "item_or.h" #include "item_and.h" #include +#include Principal::Principal(BaseObjectType *co, const Glib::RefPtr &rg):Gtk::Window(co),refXml(rg) { @@ -80,7 +80,7 @@ Principal::~Principal() } // Espera a que termine realmente. while (conexion) { - Glib::usleep(10000); // 10 milisegundos + Glib::usleep(100000); // 0,1 segundo } } @@ -155,6 +155,7 @@ void Principal::on_dlg_connect_ok() // Conecto las seƱales conexion->signal_ok_received().connect( SigC::slot(*this, &Principal::on_conexion_ok) ); + conexion->signal_error().connect( SigC::slot(*this, &Principal::on_conexion_fatal_error) ); conexion->signal_error_received().connect( SigC::slot(*this, &Principal::on_conexion_error) ); conexion->signal_finished().connect( SigC::slot(*this, &Principal::on_conexion_finished) ); conexion->signal_frame_received().connect(SigC::slot(*this, &Principal::on_conexion_frame)); @@ -173,9 +174,16 @@ void Principal::on_dlg_connect_ok() void Principal::on_mnu_file_exit() { + on_mnu_file_disconnect(); Gtk::Main::quit(); } +bool Principal::on_delete_event(GdkEventAny *e) +{ + on_mnu_file_exit(); + return false; +} + void Principal::on_btn_activar_clicked() { if ((conexion == NULL) || (last_selected == NULL)) return; @@ -314,14 +322,29 @@ void Principal::on_conexion_ok(const std::string &body) } } -void Principal::on_conexion_error(unsigned code) +void Principal::on_conexion_fatal_error(const PlaQui::Server::ControlClient::Error& code, const std::string& desc) { std::stringstream a; std::string s; a << code; a >> s; - txt_view->get_buffer()->insert_at_cursor("El server dice que hay error : "); + txt_view->get_buffer()->insert_at_cursor("Error de red nro. "); txt_view->get_buffer()->insert_at_cursor(s); + txt_view->get_buffer()->insert_at_cursor(": "); + txt_view->get_buffer()->insert_at_cursor(desc); + txt_view->get_buffer()->insert_at_cursor("\n"); +} + +void Principal::on_conexion_error(unsigned code, const std::string& desc) +{ + std::stringstream a; + std::string s; + a << code; + a >> s; + txt_view->get_buffer()->insert_at_cursor("El server dice que hay error nro. "); + txt_view->get_buffer()->insert_at_cursor(s); + txt_view->get_buffer()->insert_at_cursor(": "); + txt_view->get_buffer()->insert_at_cursor(desc); txt_view->get_buffer()->insert_at_cursor("\n"); } @@ -776,7 +799,7 @@ void Principal::read_status_xml(const std::string &frame) Gdk::Color Principal::get_rgb_from_xml(xmlNodePtr nodo) { - unsigned r,g,b; + gushort r,g,b; while (nodo != NULL) { if (nodo->type == XML_ELEMENT_NODE) { if (xmlStrcmp(nodo->name, BAD_CAST"r")==0) @@ -788,14 +811,15 @@ Gdk::Color Principal::get_rgb_from_xml(xmlNodePtr nodo) } nodo = nodo->next; } - r = 65535 * r / 255; - g = 65535 * g / 255; - b = 65535 * b / 255; + r = static_cast(65535 * (r / 255.0f)); + g = static_cast(65535 * (g / 255.0f)); + b = static_cast(65535 * (b / 255.0f)); Gdk::Color c; c.set_rgb(r,g,b); return c; } + float Principal::get_float_from_xml(xmlNodePtr nodo) { float tmp = -1;