From 603e4f7a95c3b76eb7fa4f76298e3eb66e963134 Mon Sep 17 00:00:00 2001 From: Cristian Garcia Date: Sun, 28 Jul 2013 11:34:36 +0000 Subject: Mejorando el funcionamiento de la consulta cuando el usuario quiere cerrar un archivo con cambios --- diff --git a/CristianEdit.py b/CristianEdit.py index 1fe9f9d..60d262c 100755 --- a/CristianEdit.py +++ b/CristianEdit.py @@ -98,9 +98,13 @@ class Ventana(Gtk.Window): self) dialog.add_label( - 'El archivo:\n%s\ntiene cambios sin guardar.' % direccion) + 'El archivo:\n%s\ntiene cambios sin guardar.' % direccion, + bold=True) + dialog.add_label('¿Desea guardar antes de cerrar?') + dialog.connect('guardar', self.cristianedit.guardar) + respuesta = dialog.run() dialog.destroy() diff --git a/CristianEdit/CristianEdit.py b/CristianEdit/CristianEdit.py index 94967a4..7b94a3d 100644 --- a/CristianEdit/CristianEdit.py +++ b/CristianEdit/CristianEdit.py @@ -187,15 +187,17 @@ class CristianEdit(Gtk.Plug): self) dialog.add_label( - 'El archivo:\n%s\ntiene cambios sin guardar.' % lugar) + 'El archivo:\n%s\ntiene cambios sin guardar.' % lugar, + bold=True) + dialog.add_label('¿Desea guardar antes de cerrar?') - respuesta = dialog.run() + dialog.connect('guardar', self.guardar) - if respuesta == Gtk.ResponseType.CANCEL: - dialog.cerrar() + respuesta = dialog.run() + dialog.destroy() - elif respuesta == Gtk.ResponseType.NO: + if respuesta == Gtk.ResponseType.NO: self.lugares.remove(self.lugares[numero]) self.buffers.remove(self.buffers[numero]) self.views.remove(self.views[numero]) @@ -204,12 +206,9 @@ class CristianEdit(Gtk.Plug): self.notebook.remove_page(numero) - dialog.cerrar() - elif respuesta == Gtk.ResponseType.YES: self.guardar() self.notebook.remove_page(numero) - dialog.cerrar() self.lugares = dialog.lugares self.etiquetas = dialog.etiquetas diff --git a/CristianEdit/objetos.py b/CristianEdit/objetos.py index 86c5a0c..5352285 100644 --- a/CristianEdit/objetos.py +++ b/CristianEdit/objetos.py @@ -918,6 +918,11 @@ class DialogoCerrar(Gtk.Dialog): __gtype_name__ = 'DialogoCerrar' + __gsignals__ = { + 'guardar': (GObject.SIGNAL_RUN_FIRST, + None, (str,)) + } + def __init__( self, direccion, @@ -958,29 +963,20 @@ class DialogoCerrar(Gtk.Dialog): self.cerrar(None) def guardar(self, widget): - """Guarda el archivo antes de cerrar la pestaña""" - - try: - if not self.direccion == 'Sin dirección': - self.padre.guardar(None, direccion=self.direccion) + """Emite la señal 'guardar'""" - else: - self.padre.guardar_como(None) - - except: - if not self.direccion == 'Sin dirección': - self.padre.cristianedit.guardar(None, direccion=self.direccion) - - else: - self.padre.cristianedit.guardar_como(None) + self.emit('guardar', self.direccion) self.borrar(None) - def add_label(self, string): + def add_label(self, string, bold=None): """Crea un label con el texto y se le agrega""" label = Gtk.Label(string) + if bold: + label.modify_font(Pango.FontDescription('bold')) + self.vbox.add(label) label.show() -- cgit v0.9.1