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-05-25 20:27:51 (GMT)
committer Cristian Garcia <cristian99garcia@gmail.com>2013-05-25 20:27:51 (GMT)
commit04daef2c121724818381bdd240ca4197b66a1baa (patch)
tree20b493cf2abc22097d720501f1b57aec133f279f
parentf9c75f9e1fc130d8f23574b6e95027d25096c1d6 (diff)
cosas
-rw-r--r--CristianEdit.py17
-rw-r--r--CristianEdit/CristianEdit.css22
-rw-r--r--CristianEdit/CristianEdit.py95
-rw-r--r--CristianEdit/objetos.py39
-rw-r--r--CristianEdit/objetos.pycbin47341 -> 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
index 4e3646b..50ed550 100644
--- a/CristianEdit/objetos.pyc
+++ b/CristianEdit/objetos.pyc
Binary files differ