diff options
author | Cristian Garcia <cristian99garcia@gmail.com> | 2013-06-09 23:56:47 (GMT) |
---|---|---|
committer | Cristian Garcia <cristian99garcia@gmail.com> | 2013-06-09 23:56:47 (GMT) |
commit | 9c2eff71af85d343e364eb3d028e426d55f3eca2 (patch) | |
tree | c71675a7eb732fa77dc124516f97b177cb311deb | |
parent | 4920c82d5cc5b336a5eb248852a4e33cb8d423cd (diff) |
Terminando de arreglar por hoy
-rw-r--r-- | CristianEdit/Creditos.py | 6 | ||||
-rw-r--r-- | CristianEdit/Creditos.pyc | bin | 37550 -> 37606 bytes | |||
-rw-r--r-- | CristianEdit/CristianEdit.py | 119 | ||||
-rw-r--r-- | CristianEdit/objetos.py | 142 | ||||
-rw-r--r-- | CristianEdit/objetos.pyc | bin | 42841 -> 41780 bytes |
5 files changed, 140 insertions, 127 deletions
diff --git a/CristianEdit/Creditos.py b/CristianEdit/Creditos.py index da16e23..288e086 100644 --- a/CristianEdit/Creditos.py +++ b/CristianEdit/Creditos.py @@ -686,7 +686,11 @@ class Creditos(Gtk.Dialog): def __init__(self, padre): - Gtk.Dialog.__init__(self, title='Créditos', parent=padre) + Gtk.Dialog.__init__( + self, + title='Créditos', + parent=padre, + flags=Gtk.DialogFlags.MODAL) label = Gtk.Label('CristianEdit 2') label.modify_font(Pango.FontDescription('Ubuntu bold 40')) diff --git a/CristianEdit/Creditos.pyc b/CristianEdit/Creditos.pyc Binary files differindex 13de23c..713010d 100644 --- a/CristianEdit/Creditos.pyc +++ b/CristianEdit/Creditos.pyc diff --git a/CristianEdit/CristianEdit.py b/CristianEdit/CristianEdit.py index 8b881dd..c96beca 100644 --- a/CristianEdit/CristianEdit.py +++ b/CristianEdit/CristianEdit.py @@ -39,6 +39,7 @@ from objetos import DialogoEstado from objetos import SelectordeFuente from objetos import Configuraciones from objetos import Teclado +from Creditos import Creditos from gi.repository import Gtk from gi.repository import GObject @@ -72,7 +73,6 @@ class CristianEdit(Gtk.Plug): self.notebook = None self.show_all() - self.connect('embedded', self.embed_event) def tecla(self, widget, event): """Saber si el usuario presionó una tecla.""" @@ -82,10 +82,6 @@ class CristianEdit(Gtk.Plug): if tecla == 'Escape': self.emit('cerrar') - def embed_event(self, widget): - - print 'CristianEdit 2 embebido' - def setup_init(self, direcciones): """Se crea la interfaz grafica, se setea y empaqueta todo.""" @@ -115,17 +111,9 @@ class CristianEdit(Gtk.Plug): self.lugares[numero] = direccion numero += 1 - self.toolbar.connect('abrir', self.abrir) - self.toolbar.connect('guardar', self.guardar) - self.toolbar.connect('nuevo', self.pagina_nueva) - self.toolbar.connect('deshacer', self.deshacer) - self.toolbar.connect('rehacer', self.rehacer) - self.toolbar.connect('tipografia', self.seleccionar_fuente) - self.toolbar.connect('preferencias', self.mostrar_dialogo_configuraciones) - self.toolbar.connect('buscar-changed', self.buscar_changed) - self.toolbar.connect('buscar-activate', self.buscar_enter) - self.notebook.connect('boton-cerrar-clicked', self.cerrar_desde_boton) - self.notebook.connect('boton-nuevo-clicked', self.pagina_nueva) + self.menu.connect('accion', self.set_accion) + self.toolbar.connect('accion', self.set_accion) + self.toolbar.connect('buscar', self.buscar_texto) self.add(self.vbox) self.show_all() @@ -150,7 +138,7 @@ class CristianEdit(Gtk.Plug): self.notebook.set_current_page(numero) - lugar = self.lugares[numero] + lugar = self.get_direccion() label = self.etiquetas[numero] view = self.views[numero] buffer = self.buffers[numero] @@ -186,7 +174,49 @@ class CristianEdit(Gtk.Plug): self.notebook.set_show_tabs(self.notebook.get_n_pages() > 1) - def abrir(self, widget, direccion=None): + def set_accion(self, widget, accion): + """Ejecuta una función según la accion recibida.""" + + if accion == 'Nuevo': + self.pagina_nueva() + + elif accion == 'Abrir': + self.abrir() + + elif accion == 'Guardar': + self.guardar() + + elif accion == 'Guardar Como': + self.guardar_como() + + elif accion == 'Deshacer': + self.deshacer() + + elif accion == 'Rehacer': + self.rehacer() + + elif accion == 'Insertar fecha y hora': + self.text_hora() + + elif accion == 'Estado del archivo': + self.estado() + + elif accion == 'Mostrar teclado': + self.mostrar_teclado(True) + + elif accion == 'Tipografías': + self.seleccionar_fuente() + + elif accion == 'Preferencias': + self.mostrar_dialogo_configuraciones() + + elif accion == 'Desplazar al final': + self.notebook.desplazar_al_final() + + elif accion == 'Acerca de': + Creditos(self.get_toplevel()) + + def abrir(self, widget=None, direccion=None): """Abrir uno o varios archivo/s.""" pagina = self.notebook.get_current_page() @@ -211,12 +241,12 @@ class CristianEdit(Gtk.Plug): if not dir or not mod: self.pagina_nueva() - self.desplazar_al_final() + self.set_accion(None, 'Desplazar al final') pagina = self.notebook.get_current_page() self.lugares[pagina] = lugar - buffer = self.buffers[pagina] - view = self.views[pagina] + buffer = self.get_buffer() + view = self.get_view() texto = open(lugar, 'r').read() barra = self.barras_de_abajo[pagina] combo = barra.get_combo() @@ -230,6 +260,7 @@ class CristianEdit(Gtk.Plug): buffer.buscar_lenguaje(lugar, combo) buffer.begin_not_undoable_action() buffer.end_not_undoable_action() + view.set_editable(escritura) nombre = self.lugares[pagina].split('/')[-1] @@ -252,7 +283,7 @@ class CristianEdit(Gtk.Plug): if not dir or not mod or not cue: self.pagina_nueva() - self.desplazar_al_final() + self.set_accion(None, 'Desplazar al final') pagina = self.notebook.get_current_page() buffer = self.get_buffer() @@ -277,7 +308,7 @@ class CristianEdit(Gtk.Plug): label.set_text(nombre) - def guardar(self, widget, direccion=None): + def guardar(self, widget=None, direccion=None): """Guardar el archivo actual. Si se guarda por primera vez, se llamará a la función 'guardar_como()'""" @@ -286,7 +317,7 @@ class CristianEdit(Gtk.Plug): label = self.etiquetas[pagina] if self.lugares[pagina] == 'Sin dirección' and not direccion: - self.guardar_como(None) + self.guardar_como() else: if not direccion: @@ -306,14 +337,17 @@ class CristianEdit(Gtk.Plug): archivo.write(texto) archivo.close() - def guardar_como(self, widget): + def guardar_como(self, widget=None): """Guardar copia o por primera vez.""" pagina = self.notebook.get_current_page() buffer = self.buffers[pagina] - self.navegador = Navegador('Guardar archivo', self, - Gtk.FileChooserAction(1), (Gtk.STOCK_SAVE, 1)) + self.navegador = Navegador( + 'Guardar archivo', + self.get_toplevel(), + Gtk.FileChooserAction(1), + (Gtk.STOCK_SAVE, 1)) respuesta = self.navegador.run() direccion = self.navegador.get_filename() @@ -389,7 +423,7 @@ class CristianEdit(Gtk.Plug): view.configurar(self.configuraciones) - self.desplazar_al_final() + self.set_accion(None, 'Desplazar al final') self.notebook.set_show_tabs(self.notebook.get_n_pages() > 1) self.show_all() @@ -436,26 +470,23 @@ class CristianEdit(Gtk.Plug): entry.modify_fg(Gtk.StateType.NORMAL, Gdk.color_parse(color)) + if color == '#FF0000': + print '\a' + def agregar_a_recientes(self, direccion): """Agrega una dirección a archivos recientes""" self.recientes = direccion + ', ' + self.recientes + print self.recientes self.menu.actualizar_recientes(self.recientes) - def desplazar_al_final(self): - """Selecciona la última página - del Cuderno de Fichas""" - - for x in range(0, len(self.etiquetas)): - self.notebook.next_page() - - def deshacer(self, widget): + def deshacer(self, widget=None): """Deshacer cambios""" view = self.get_view() view.deshacer() - def rehacer(self, widget): + def rehacer(self, widget=None): """Rehacer cambios""" view = self.get_view() @@ -473,7 +504,7 @@ class CristianEdit(Gtk.Plug): insertar = buffer.insert_at_cursor(str(fecha + ' ' + hora)) - def seleccionar_fuente(self, widget): + def seleccionar_fuente(self, widget=None): """Selecciona la fuente de texto""" fuente = self.configuraciones['fuente'] @@ -492,7 +523,7 @@ class CristianEdit(Gtk.Plug): for view in self.views: view.modify_font(Pango.FontDescription(fuente)) - def mostrar_dialogo_configuraciones(self, widget): + def mostrar_dialogo_configuraciones(self, widget=None): """Abre un díalogo con configuraciones""" ventana = self.get_toplevel() @@ -573,6 +604,15 @@ class CristianEdit(Gtk.Plug): return eval(lista) + def buscar_texto(self, widget, accion, texto): + """Busca texto.""" + + if accion == 'Buscar activate': + self.buscar_enter(None, texto) + + if accion == 'Buscar changed': + self.buscar_changed(None, texto) + def buscar_changed(self, widget, texto): """Busca texto en el buffer actual por cada cambio que se haga en la entrada de texto""" @@ -655,4 +695,3 @@ class CristianEdit(Gtk.Plug): 'abrir_archivo': False} self.guardar_configuracion() - diff --git a/CristianEdit/objetos.py b/CristianEdit/objetos.py index 517db4b..b2efb72 100644 --- a/CristianEdit/objetos.py +++ b/CristianEdit/objetos.py @@ -29,7 +29,6 @@ from gi.repository import Gdk from gi.repository import Vte from gi.repository import GLib -from Creditos import Creditos import Globales as G @@ -63,6 +62,10 @@ class Menu(Gtk.MenuBar): __gtype_name__ = 'Menu' + __gsignals__ = {'accion': (GObject.SIGNAL_RUN_FIRST, + None, (str,)) + } + def __init__(self, padre): Gtk.MenuBar.__init__(self) @@ -99,65 +102,36 @@ class Menu(Gtk.MenuBar): menu_recientes.set_submenu(self.menu_recientes) menu_ayuda.set_submenu(ayuda) - self.menu_item('_Nuevo', self.padre.pagina_nueva, archivo, 'N') + self.menu_item('Nuevo', self.emit_accion, archivo, 'N') archivo.append(Gtk.SeparatorMenuItem()) - self.menu_item('_Abrir', self.padre.abrir, archivo, 'O') - self.menu_item('_Guardar', self.padre.guardar, archivo, 'S') - self.menu_item('Guardar _como', self.padre.guardar_como, archivo) + self.menu_item('Abrir', self.emit_accion, archivo, 'O') + self.menu_item('Guardar', self.emit_accion, archivo, 'S') + self.menu_item('Guardar Como', self.emit_accion, archivo) archivo.append(Gtk.SeparatorMenuItem()) archivo.append(menu_recientes) - self.menu_item('_Deshacer', self.deshacer, editar, 'Z') - self.menu_item('_Rehacer', self.rehacer, editar, 'R') + 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('In_sertar fecha y hora', self.padre.text_hora, editar) + self.menu_item('Insertar fecha y hora', self.emit_accion, editar) editar.append(Gtk.SeparatorMenuItem()) - self.menu_item('_Estado del archivo', self.padre.estado, editar, 'E') + self.menu_item('Estado del archivo', self.emit_accion, editar, 'E') editar.append(Gtk.SeparatorMenuItem()) - self.menu_item('Mostrar _teclado...', self.teclado, editar, 'T') - - self.menu_item('Acerca _de', self.creditos, ayuda) - - def teclado(self, widget): - - texto = widget.get_label() - - if texto == 'Mostrar _teclado...': - self.padre.mostrar_teclado(True) - widget.set_label('Ocultar _teclado') - - else: - self.padre.mostrar_teclado(False) - widget.set_label('Mostrar _teclado...') - - def creditos(self, widget): - """Muestra el diálogo con los créditos""" - - Creditos(self.padre.get_parent().get_parent()) - - def deshacer(self, widget): - """Obtiene el view actual y le pasa deshacer""" - - view = self.padre.get_view() - view.deshacer() - - def rehacer(self, widget): - """Obtiene el view actual y le pasa rehacer""" + self.menu_item('Mostrar teclado...', self.emit_accion, editar, 'T') - view = self.padre.get_view() - view.rehacer() + self.menu_item('Acerca de', self.emit_accion, ayuda) def menu_item(self, etiqueta, callback, menu, letra=None, devolver=None): """Creando los item para los menús""" item = Gtk.MenuItem(etiqueta) item.connect('activate', callback) + menu.append(item) - item.set_use_underline(True) if letra: item.add_accelerator('activate', self.grupo, ord(letra), @@ -191,7 +165,7 @@ class Menu(Gtk.MenuBar): else: direccion = archivo - texto = '_' + str(numero) + ' - ' + direccion + texto = str(numero) + ' - ' + direccion self.menu_item(texto, self.abrir_reciente, self.menu_recientes) @@ -210,6 +184,15 @@ class Menu(Gtk.MenuBar): for x in self.recientes: self.recientes.remove(x) + def emit_accion(self, widget): + + texto = widget.get_label() + + if '.' in texto: + texto.replace('.', '') + + self.emit('accion', texto) + class Buffer(GtkSource.Buffer): """Buffer de Texto""" @@ -481,53 +464,42 @@ class Notebook(Gtk.Notebook): self.emit('boton-nuevo-clicked') + def desplazar_al_final(self): + """Se mueve a la última pestaña""" + + for x in range(0, self.get_n_pages()): + self.next_page() + + class Barra(Gtk.Toolbar): """Barra de herramientas.""" __gtype_name__ = 'Toolbar' __gsignals__ = { - 'abrir': (GObject.SIGNAL_RUN_FIRST, - None, []), - 'guardar': (GObject.SIGNAL_RUN_FIRST, - None, []), - 'nuevo': (GObject.SIGNAL_RUN_FIRST, - None, []), - 'deshacer': (GObject.SIGNAL_RUN_FIRST, - None, []), - 'rehacer': (GObject.SIGNAL_RUN_FIRST, - None, []), - 'ejecutar': (GObject.SIGNAL_RUN_FIRST, - None, []), - 'tipografia': (GObject.SIGNAL_RUN_FIRST, - None, []), - 'preferencias': (GObject.SIGNAL_RUN_FIRST, - None, []), - 'buscar_changed': (GObject.SIGNAL_RUN_FIRST, - None, (str,)), - 'buscar_activate': (GObject.SIGNAL_RUN_FIRST, + 'accion': (GObject.SIGNAL_RUN_FIRST, None, (str,)), - } + 'buscar': (GObject.SIGNAL_RUN_FIRST, + None, (str, str)) + } def __init__(self): Gtk.Toolbar.__init__(self) - self.toolbutton(Gtk.STOCK_OPEN, 'abrir', 'Abrir archivo.') - self.toolbutton(Gtk.STOCK_SAVE, 'guardar', 'Guardar archivo.') + self.toolbutton(Gtk.STOCK_NEW, 'Nuevo.') self.separador() - self.toolbutton(Gtk.STOCK_NEW, 'nuevo', 'Nuevo archivo.') + self.toolbutton(Gtk.STOCK_OPEN, 'Abrir') + self.toolbutton(Gtk.STOCK_SAVE, 'Guardar') self.separador() - self.toolbutton(Gtk.STOCK_UNDO, 'deshacer', 'Deshacer cambios.') - self.toolbutton(Gtk.STOCK_REDO, 'rehacer', 'Rehacer cambios.') - #self.toolbutton(Gtk.STOCK_EXECUTE, 'ejecutar', 'Ejecutar archivo.') + self.toolbutton(Gtk.STOCK_UNDO, 'Deshacer') + self.toolbutton(Gtk.STOCK_REDO, 'Rehacer') self.separador() - self.toolbutton(Gtk.STOCK_SELECT_FONT, 'tipografia', - 'Seleccionar fuente de texto.') - self.toolbutton(Gtk.STOCK_PREFERENCES, 'preferencias', 'Preferencias.') + self.toolbutton(Gtk.STOCK_SELECT_FONT, 'Tipografías') + self.toolbutton(Gtk.STOCK_PREFERENCES, 'Preferencias') self.separador() @@ -536,9 +508,9 @@ class Barra(Gtk.Toolbar): self.entry = Gtk.Entry() self.entry.props.secondary_icon_stock = 'gtk-find' - self.entry.connect('changed', self.emitir_buscar, 'buscar_changed') - self.entry.connect('activate', self.emitir_buscar, 'buscar_activate') - self.entry.connect('icon-release', self.emitir_buscar, 'buscar_activate') + self.entry.connect('changed', self.emit_buscar, 'Buscar changed') + self.entry.connect('activate', self.emit_buscar, 'Buscar activate') + self.entry.connect('icon-release', self.emit_buscar, 'Buscar activate') item.add(self.entry) self.show_all() @@ -550,30 +522,28 @@ class Barra(Gtk.Toolbar): separador.set_size_request(10, 10) self.add(separador) - def toolbutton(self, stock, senial, tooltip=None): + def toolbutton(self, stock, tooltip): """Crea un boton para el Widget clase""" toolbutton = Gtk.ToolButton(stock) - toolbutton.connect('clicked', self.emitir, senial) - - if tooltip: - toolbutton.set_tooltip_text(tooltip) + toolbutton.set_tooltip_text(tooltip) + toolbutton.connect('clicked', self.emit_accion, tooltip) self.add(toolbutton) - def emitir(self, widget, senial): - """Emite la señal que corresponde - al argumento 'senial'.""" - - self.emit(senial) + def emit_accion(self, widget, accion): + """Emite la señan 'accion' con la + acción que se le pasa a esta función.""" + + self.emit('accion', accion) - def emitir_buscar(self, widget, senial, *args): + def emit_buscar(self, widget, accion, *args): """Emite la señal que corresponde al argumento 'senial', con el texto como parámetro.""" texto = widget.get_text() - self.emit(senial, texto) + self.emit('buscar', accion, texto) class Navegador(Gtk.FileChooserDialog): diff --git a/CristianEdit/objetos.pyc b/CristianEdit/objetos.pyc Binary files differindex 46433cc..5d72dde 100644 --- a/CristianEdit/objetos.pyc +++ b/CristianEdit/objetos.pyc |