diff options
Diffstat (limited to 'CristianEdit/objetos.py')
-rw-r--r-- | CristianEdit/objetos.py | 93 |
1 files changed, 88 insertions, 5 deletions
diff --git a/CristianEdit/objetos.py b/CristianEdit/objetos.py index ad44555..fc84908 100644 --- a/CristianEdit/objetos.py +++ b/CristianEdit/objetos.py @@ -57,26 +57,33 @@ class Menu(Gtk.MenuBar): menu_archivo = Gtk.MenuItem('_Archivo') menu_recientes = Gtk.MenuItem('_Recientes') menu_editar = Gtk.MenuItem('_Editar') + menu_buscar = Gtk.MenuItem('_Buscar') menu_ayuda = Gtk.MenuItem('Ay_uda') - self.menus = [menu_archivo, menu_recientes, menu_editar, menu_ayuda] + self.menus = [ + menu_archivo, + menu_recientes, + menu_editar, + menu_ayuda, + menu_buscar] - menu_archivo.set_use_underline(True) - menu_recientes.set_use_underline(True) - menu_editar.set_use_underline(True) - menu_ayuda.set_use_underline(True) + for menu in self.menus: + menu.set_use_underline(True) self.add(menu_archivo) self.add(menu_editar) + self.add(menu_buscar) self.add(menu_ayuda) archivo = Gtk.Menu() self.menu_recientes = Gtk.Menu() editar = Gtk.Menu() + buscar = Gtk.Menu() ayuda = Gtk.Menu() menu_archivo.set_submenu(archivo) menu_editar.set_submenu(editar) + menu_buscar.set_submenu(buscar) menu_recientes.set_submenu(self.menu_recientes) menu_ayuda.set_submenu(ayuda) @@ -92,13 +99,17 @@ class Menu(Gtk.MenuBar): self.menu_item('Deshacer', self.emit_accion, editar, 'Z') self.menu_item('Rehacer', self.emit_accion, editar, 'R') + editar.append(Gtk.SeparatorMenuItem()) self.menu_item('Insertar fecha y hora', self.emit_accion, editar) + editar.append(Gtk.SeparatorMenuItem()) self.menu_item('Estado del archivo', self.emit_accion, editar, 'E') + editar.append(Gtk.SeparatorMenuItem()) self.menu_item('Mostrar teclado...', self.emit_accion, editar, 'T') + self.menu_item('Reemplazar', self.emit_accion, buscar, 'H') #ajuste = Gtk.Adjustment(2, 0, 100, 1, 1, 0) #escala = Gtk.HScale() #escala.set_adjustment(ajuste) @@ -684,6 +695,78 @@ class ComboLenguajes(Gtk.ComboBoxText): return self.lenguaje_manager +class DialogoReemplazarTexto(Gtk.Dialog): + + __gsignals__ = { + 'solicitar-buffer': (GObject.SIGNAL_RUN_FIRST, + None, []) + } + + def __init__(self, padre): + + Gtk.Dialog.__init__(self) + + self.set_title('Reemplazar') + self.set_border_width(10) + self.set_transient_for(padre) + + self.buffer = False + self.mostrado = False + + self.entrada_buscar = Gtk.Entry() + self.entrada_reemplazar = Gtk.Entry() + + tabla = Gtk.Table(2, 2, False) + + tabla.attach(Gtk.Label('Texto a buscar:'), 0, 1, 0, 1) + tabla.attach(self.entrada_buscar, 1, 2, 0, 1) + tabla.attach(Gtk.Label('Texto con el que se reemplazará:'), 0, 1, 1, 2) + tabla.attach(self.entrada_reemplazar, 1, 2, 1, 2) + + hbox = Gtk.HBox() + + boton_ok = Gtk.Button('Reemplazar') + boton_cerrar = Gtk.Button(None, Gtk.STOCK_CLOSE) + + boton_ok.connect('clicked', self.reemplazar) + boton_cerrar.connect('clicked', self.cerrar) + + hbox.pack_start(boton_ok, False, False, 2) + hbox.pack_start(boton_cerrar, False, False, 2) + + self.vbox.add(tabla) + self.vbox.pack_end(hbox, False, False, 10) + + self.vbox.remove(self.get_children()[0].get_children()[-1]) + + def reemplazar(self, widget): + """Reemplaza el texto.""" + + self.emit('solicitar-buffer') + + inicio, fin = self.buffer.get_bounds() + + texto_buscado = self.entrada_buscar.get_text() + texto_solicitado = self.entrada_reemplazar.get_text() + texto_existente = self.buffer.get_text(inicio, fin, 0) + + if texto_buscado and texto_buscado in texto_existente: + texto = texto_existente.replace(texto_buscado, texto_solicitado) + + self.buffer.set_text(texto) + + def set_text(self, texto): + """Setea el texto de la entrada de texto a buscar.""" + + self.entrada_buscar.set_text(texto) + + def cerrar(self, widget): + """Oculta el widget del que ereda la clase.""" + + self.hide() + self.mostrado = False + + class DialogoReemplazar(Gtk.MessageDialog): def __init__(self, direccion, buffer, padre, texto): |