diff options
author | Cristian Garcia <cristian99garcia@gmail.com> | 2013-05-25 20:27:51 (GMT) |
---|---|---|
committer | Cristian Garcia <cristian99garcia@gmail.com> | 2013-05-25 20:27:51 (GMT) |
commit | 04daef2c121724818381bdd240ca4197b66a1baa (patch) | |
tree | 20b493cf2abc22097d720501f1b57aec133f279f | |
parent | f9c75f9e1fc130d8f23574b6e95027d25096c1d6 (diff) |
cosas
-rw-r--r-- | CristianEdit.py | 17 | ||||
-rw-r--r-- | CristianEdit/CristianEdit.css | 22 | ||||
-rw-r--r-- | CristianEdit/CristianEdit.py | 95 | ||||
-rw-r--r-- | CristianEdit/objetos.py | 39 | ||||
-rw-r--r-- | CristianEdit/objetos.pyc | bin | 47341 -> 47269 bytes |
5 files changed, 99 insertions, 74 deletions
diff --git a/CristianEdit.py b/CristianEdit.py index a2f647a..227a358 100644 --- a/CristianEdit.py +++ b/CristianEdit.py @@ -23,12 +23,27 @@ import os import gi from gi.repository import Gtk +from gi.repository import Gdk import CristianEdit from CristianEdit.CristianEdit import CristianEdit from CristianEdit import objetos +screen = Gdk.Screen.get_default() +css_provider = Gtk.CssProvider() + +style_path = os.path.join(os.path.dirname(__file__), 'CristianEdit/CristianEdit.css') + +css_provider.load_from_path(style_path) +context = Gtk.StyleContext() + +context.add_provider_for_screen( + screen, + css_provider, + Gtk.STYLE_PROVIDER_PRIORITY_USER) + + class Ventana(Gtk.Window): def __init__(self, direcciones): @@ -60,6 +75,7 @@ class Ventana(Gtk.Window): contrario consulta al usuario sí guardar o no antes de cerrar""" + """ buffers, direcciones, views = self.cristianedit.get_if_exit() for buffer in buffers: @@ -72,6 +88,7 @@ class Ventana(Gtk.Window): self.cristianedit, 'cerrar') numero = 0 + """ self.cristianedit.guardar_configuracion() Gtk.main_quit() diff --git a/CristianEdit/CristianEdit.css b/CristianEdit/CristianEdit.css new file mode 100644 index 0000000..71bbd08 --- /dev/null +++ b/CristianEdit/CristianEdit.css @@ -0,0 +1,22 @@ +/* Configuracion de tema de colores para CristianEdit */ + +GtkSeparatorToolItem { + background-color: green; + color: green; +} + +GtkLabel, GtkButton, GtkWindow, GtkToolbar, GtkComboBoxText, GtkBox { + background-color: black; + color: green; +} + +GtkScrolledWindow { + -GtkRange-slider-width: 10; + -GtkRange-trough-border: 0; + -GtkRange-stepper-size: 0; + -GtkScrollbar-min-slider-length: 45; + -GtkScrollbar-has-forward-stepper: 0; + -GtkScrollbar-has-backward-stepper: 0; + -GtkScrollbar-has-secondary-forward-stepper: 0; + -GtkScrollbar-has-secondary-backward-stepper: 0; +} diff --git a/CristianEdit/CristianEdit.py b/CristianEdit/CristianEdit.py index e107678..6d74898 100644 --- a/CristianEdit/CristianEdit.py +++ b/CristianEdit/CristianEdit.py @@ -35,6 +35,7 @@ from objetos import Notebook from objetos import Barra from objetos import Navegador from objetos import BarraInferior +from objetos import DialogoCerrar from objetos import DialogoEstado from objetos import SelectordeFuente from objetos import Configuraciones @@ -53,15 +54,14 @@ class CristianEdit(Gtk.Plug): Gtk.Plug.__init__(self) - self.buffers = None - self.views = None - self.lugares = None - self.etiquetas = None - self.barras_de_abajo = None - self.funciones = None + self.buffers = [] + self.views = [] + self.lugares = [] + self.etiquetas = [] + self.barras_de_abajo = [] self.configuraciones = {} - self.recientes = None + self.recientes = '' self.vbox = None self.menu = None @@ -90,31 +90,8 @@ class CristianEdit(Gtk.Plug): """Se crea la interfaz grafica, se setea y empaqueta todo.""" - #****** Listas y Diccionarios >>> ****** - self.buffers = [] - self.views = [] - self.lugares = ['Sin dirección'] - self.etiquetas = [] - self.barras_de_abajo = [] - self.funciones = [self.guardar, # Guarda archivo - self.pagina_nueva, # Crea una página nueva - self.deshacer, # Deshacer cambios - self.rehacer, # Rahacer cambios - self.ejecutar, # Ejecuta el archivo - self.seleccionar_fuente, # Seleccionar fuente - self.configuraciones, # Configuraciones - self.buscar_changed, - self.buscar_enter] - - #****** <<< Listas y Diccionarios ****** - - #****** Configuraciones >>> ****** - self.recientes = '' - self.abrir_configuracion() - #****** <<< Configuraciones ****** - self.vbox = Gtk.VBox() self.menu = Menu(self) hbox_toolbar = Gtk.HBox() @@ -132,14 +109,12 @@ class CristianEdit(Gtk.Plug): numero = 0 - if direcciones: - for direccion in direcciones: - if os.path.exists(direccion): - self.abrir(None, direccion) - self.lugares[numero] = direccion - numero += 1 - - self.lugares.remove(self.lugares[-1]) + for direccion in direcciones: + print direccion, os.path.exists(direccion), numero + if os.path.exists(direccion): + self.abrir(None, direccion=direccion) + self.lugares[numero] = direccion + numero += 1 self.toolbar.connect('abrir', self.abrir) self.toolbar.connect('guardar', self.guardar) @@ -170,25 +145,44 @@ class CristianEdit(Gtk.Plug): numero = self.notebook.page_num(objeto) + self.notebook.set_current_page(numero) + + lugar = self.lugares[numero] label = self.etiquetas[numero] view = self.views[numero] buffer = self.buffers[numero] barra = self.barras_de_abajo[numero] - lugar = self.lugares[numero] if buffer.get_modified(): - objetos.dialogo_cerrar(lugar, buffer, self, None) + print '\n\n\n\n\n\n\n\n' + dialog = DialogoCerrar(lugar, + numero, + self.notebook, + self.lugares, + self.etiquetas, + self) + + respuesta = dialog.run() - self.etiquetas.remove(label) - self.views.remove(view) - self.buffers.remove(buffer) - self.barras_de_abajo.remove(barra) + if respuesta == Gtk.ResponseType.CANCEL: + dialog.cerrar(None) - label.destroy() - view.destroy() - barra.destroy() + elif respuesta == Gtk.ResponseType.NO: + self.notebook.remove_page(numero) + dialog.cerrar(None) - self.notebook.borrar_pagina(numero) + elif respuesta == Gtk.ResponseType.YES: + self.guardar(None) + self.notebook.remove_page(numero) + dialog.cerrar(None) + + self.lugares = dialog.lugares + self.etiquetas = dialog.etiquetas + + else: + self.notebook.remove_page(numero) + + self.notebook.set_show_tabs(self.notebook.get_n_pages() > 1) def abrir(self, widget, direccion=None): """Abrir uno o varios archivo/s.""" @@ -197,14 +191,15 @@ class CristianEdit(Gtk.Plug): if not direccion: navegador = Navegador('Abrir archivo de Texto', - self, Gtk.FileChooserAction(0), (Gtk.STOCK_OPEN, 1)) + self.get_toplevel(), Gtk.FileChooserAction.OPEN, + ['Abrir', Gtk.ResponseType.ACCEPT]) if os.path.exists(self.lugares[pagina]): navegador.set_filename(self.lugares[pagina]) respuesta = navegador.run() - if respuesta: + if respuesta == Gtk.ResponseType.ACCEPT: for lugar in navegador.get_filenames(): if os.path.exists(lugar) and \ not lugar in self.lugares and \ diff --git a/CristianEdit/objetos.py b/CristianEdit/objetos.py index 451b902..bbeb9e2 100644 --- a/CristianEdit/objetos.py +++ b/CristianEdit/objetos.py @@ -575,10 +575,10 @@ class Navegador(Gtk.FileChooserDialog): def __init__(self, titulo, padre, accion, botones): - Gtk.FileChooserDialog.__init__(self, titulo, padre, accion, botones) - - self.set_focus_visible(True) - self.set_modal(True) + Gtk.FileChooserDialog.__init__(self, title=titulo, + parent=padre, + flags=Gtk.DialogFlags.MODAL, + buttons=botones) if accion == Gtk.FileChooserAction.OPEN: self.set_select_multiple(True) @@ -688,14 +688,18 @@ class ComboLenguajes(Gtk.ComboBoxText): return self.lenguaje_manager -class DialogoCerrar(Gtk.MessageDialog): +class DialogoCerrar(Gtk.Dialog): """El díalogo que le pregunta al usuario sí en realidad quiere borrar la página del GtkNotebook()""" def __init__(self, direccion, pagina, notebook, lugares, etiquetas, padre): - Gtk.MessageDialog.__init__(self, type=Gtk.MessageType(2), - title='Hay cambios sin guardar') + Gtk.Dialog.__init__(self, title='Hay cambios sin guardar', + parent=padre.get_toplevel(), + flags=Gtk.DialogFlags.MODAL, + buttons=[Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, + 'No guardar', Gtk.ResponseType.NO, + Gtk.STOCK_SAVE, Gtk.ResponseType.YES]) self.direccion = direccion self.pagina = pagina @@ -704,24 +708,12 @@ class DialogoCerrar(Gtk.MessageDialog): self.etiquetas = etiquetas self.padre = padre - self.set_markup('<b>%s</b>' % 'Sí cierra, se perderán los cambios') - - boton_cerrar = Gtk.Button(None, Gtk.STOCK_CANCEL) - boton_cerrar.connect('clicked', self.cerrar) - self.action_area.add(boton_cerrar) - - boton_no = Gtk.Button('_No guardar') - boton_no.connect('clicked', self.borrar) - self.action_area.add(boton_no) - - boton_si = Gtk.Button(None, Gtk.STOCK_SAVE) - boton_si.connect('clicked', self.guardar) - self.action_area.add(boton_si) - - self.show_all() + label = Gtk.Label('Está a punto de cerrar un archivo con cambios sin guardar.') + label.modify_font(Pango.FontDescription('bold')) + self.vbox.pack_start(label, False, False, 0) def cerrar(self, widget): - """Cierra la clase destrullendola""" + """Cierra el widget clase destrullendolo""" self.destroy() @@ -732,7 +724,6 @@ class DialogoCerrar(Gtk.MessageDialog): self.lugares.remove(self.lugares[self.pagina]) self.notebook.borrar_pagina() self.cerrar(None) - self.change_page(self, None, None) def guardar(self, widget): """Guarda el archivo antes de cerrar la pestaña""" diff --git a/CristianEdit/objetos.pyc b/CristianEdit/objetos.pyc Binary files differindex 4e3646b..50ed550 100644 --- a/CristianEdit/objetos.pyc +++ b/CristianEdit/objetos.pyc |