Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/CristianEdit/objetos.py
diff options
context:
space:
mode:
Diffstat (limited to 'CristianEdit/objetos.py')
-rw-r--r--CristianEdit/objetos.py93
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):