From: Nicolás Dimov Date: Tue, 2 Dec 2003 06:18:38 +0000 (+0000) Subject: -pregunta si quiere guardar antes de salir, solo si no estaba guardado X-Git-Tag: svn_import~59 X-Git-Url: https://git.llucax.com/z.facultad/75.42/plaqui.git/commitdiff_plain/d6d23159ce45cd80da35030c583e81a6bf6ffe4d -pregunta si quiere guardar antes de salir, solo si no estaba guardado -pero no pude hacer que al terminar de guardar salga de la aplicacion, porque se me cerraba apenas aparecia el dialogo de guardar, medio raro pero anda, a medias... :( --- diff --git a/Constructor/dialogs/constructor.glade b/Constructor/dialogs/constructor.glade index 8d197ad..3c76e38 100644 --- a/Constructor/dialogs/constructor.glade +++ b/Constructor/dialogs/constructor.glade @@ -2315,4 +2315,83 @@ Ingrese un nombre distinto para este elemento + + 230 + 98 + dialog1 + GTK_WINDOW_TOPLEVEL + GTK_WIN_POS_CENTER + True + False + False + True + + + + True + False + 0 + + + + True + GTK_BUTTONBOX_SPREAD + + + + True + True + True + gtk-cancel + True + GTK_RELIEF_NORMAL + -6 + + + + + + True + True + True + gtk-ok + True + GTK_RELIEF_NORMAL + -5 + + + + + 0 + False + True + GTK_PACK_END + + + + + + True + El archivo no fue guardado +¿Desea guardarlo antes de salir? + False + False + GTK_JUSTIFY_CENTER + False + False + 0.5 + 0.5 + 0 + 0 + + + 0 + False + False + + + + + + diff --git a/Constructor/include/constructor.h b/Constructor/include/constructor.h index 55f1ffd..3d371ea 100644 --- a/Constructor/include/constructor.h +++ b/Constructor/include/constructor.h @@ -78,12 +78,13 @@ class Constructor : public Gtk::Window { int id; /// Defino los elementos de la ventana. Gtk::Button *btn_canio, *btn_codo, *btn_y, *btn_tanque, *btn_bomba, *btn_exclusa, *btn_drain, *btn_file_ok, *btn_file_cancel, *btn_check, *btn_dlg_close, - *btn_and, *btn_or, *btn_not, *btn_open_ok, *btn_open_cancel, *quick_btn_clear, *quick_btn_save, *quick_btn_open, *quick_btn_new, *btn_find; + *btn_and, *btn_or, *btn_not, *btn_open_ok, *btn_open_cancel, *quick_btn_clear, *quick_btn_save, *quick_btn_open, *quick_btn_new, *btn_find, + *btn_dlg_quit_ok, *btn_dlg_quit_cancel; Gtk::ImageMenuItem *main_menu_quit,*main_menu_new, *edit_menu_del, *edit_menu_delete_all, *main_menu_save, *main_menu_open; Gtk::CheckButton *chk_btn_logica; Gtk::FileSelection *file_selection, *file_open_selection; Gtk::Combo *combo_entry; - Gtk::Dialog *dlg_connect, *dlg_about; + Gtk::Dialog *dlg_connect, *dlg_about, *dlg_quit; Gtk::Label *dlg_label; Gtk::Statusbar *status_bar; Glib::RefPtr ico_canio, ico_y, ico_codo, ico_tanque, ico_bomba, ico_exclusa, ico_drain, ico_and, ico_or, ico_not; @@ -122,6 +123,8 @@ class Constructor : public Gtk::Window { virtual void on_quick_btn_save_clicked(); virtual void on_quick_btn_new_clicked(); virtual void on_btn_find_clicked(); + virtual void on_btn_dlg_quit_ok_clicked(); + virtual void on_btn_dlg_quit_cancel_clicked(); ///Verifica la conexion de todos los items iterando en la listaItems. bool check_connection(Glib::ustring& name); diff --git a/Constructor/src/constructor.cpp b/Constructor/src/constructor.cpp index facfd8d..ab4dacf 100644 --- a/Constructor/src/constructor.cpp +++ b/Constructor/src/constructor.cpp @@ -22,7 +22,7 @@ Constructor::Constructor(BaseObjectType* cobject, const Glib::RefPtrset_text(Glib::locale_to_utf8(s)); +// lbl_plaqui_version->set_text(Glib::locale_to_utf8(s)); refGlade->get_widget("dlgAbout", dlg_about); refGlade->get_widget("close_about", close_about); @@ -70,6 +70,9 @@ Constructor::Constructor(BaseObjectType* cobject, const Glib::RefPtrget_widget("edit_menu_delete_all", edit_menu_delete_all); refGlade->get_widget("btn_find", btn_find); refGlade->get_widget("status_bar", status_bar); + refGlade->get_widget("dlg_quit", dlg_quit); + refGlade->get_widget("btn_dlg_quit_ok", btn_dlg_quit_ok); + refGlade->get_widget("btn_dlg_quit_cancel", btn_dlg_quit_cancel); //Obtengo el area de trabajo, la cual tiene definida su propia clase. refGlade->get_widget_derived("workplace", workplace); //fixed @@ -112,6 +115,8 @@ Constructor::Constructor(BaseObjectType* cobject, const Glib::RefPtrsignal_clicked().connect(SigC::slot(*this, &Constructor::on_quick_btn_new_clicked)); quick_btn_save->signal_clicked().connect(SigC::slot(*this, &Constructor::on_quick_btn_save_clicked)); quick_btn_open->signal_clicked().connect(SigC::slot(*this, &Constructor::on_main_menu_open)); + btn_dlg_quit_ok->signal_clicked().connect(SigC::slot(*this, &Constructor::on_btn_dlg_quit_ok_clicked)); + btn_dlg_quit_cancel->signal_clicked().connect(SigC::slot(*this, &Constructor::on_btn_dlg_quit_cancel_clicked)); main_menu_quit->signal_activate().connect(SigC::slot(*this, &Constructor::on_main_menu_quit)); main_menu_new->signal_activate().connect(SigC::slot(*this, &Constructor::on_quick_btn_new_clicked)); @@ -207,14 +212,30 @@ void Constructor::on_btn_not_drag_get(const Glib::RefPtr& cont gtk_selection_data_set(selection_data, selection_data->target, 8,(const guchar*)"not_e.png",9); } -//Sale del programa. +//Sale del programa. Pregunta si desea salvar antes de salir. void Constructor::on_main_menu_quit() { - delete this; + if ( !saved ) + dlg_quit->show(); + else + Gtk::Main::quit(); +} + +//Sale del programa guardando el archivo. +void Constructor::on_btn_dlg_quit_ok_clicked() +{ + dlg_quit->hide(); + on_quick_btn_save_clicked(); +} + +//Sale del programa sin guardar el archivo. +void Constructor::on_btn_dlg_quit_cancel_clicked() +{ + dlg_quit->hide(); Gtk::Main::quit(); - //hide(); } + // Carga de un archivo XML void Constructor::on_main_menu_open() {