Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCristian Garcia <cristian99garcia@gmail.com>2013-06-09 23:56:47 (GMT)
committer Cristian Garcia <cristian99garcia@gmail.com>2013-06-09 23:56:47 (GMT)
commit9c2eff71af85d343e364eb3d028e426d55f3eca2 (patch)
treec71675a7eb732fa77dc124516f97b177cb311deb
parent4920c82d5cc5b336a5eb248852a4e33cb8d423cd (diff)
Terminando de arreglar por hoy
-rw-r--r--CristianEdit/Creditos.py6
-rw-r--r--CristianEdit/Creditos.pycbin37550 -> 37606 bytes
-rw-r--r--CristianEdit/CristianEdit.py119
-rw-r--r--CristianEdit/objetos.py142
-rw-r--r--CristianEdit/objetos.pycbin42841 -> 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
index 13de23c..713010d 100644
--- a/CristianEdit/Creditos.pyc
+++ b/CristianEdit/Creditos.pyc
Binary files differ
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
index 46433cc..5d72dde 100644
--- a/CristianEdit/objetos.pyc
+++ b/CristianEdit/objetos.pyc
Binary files differ