diff options
author | Cristian García <cristian99garcia@gmail.com> | 2013-04-20 16:02:58 (GMT) |
---|---|---|
committer | Cristian García <cristian99garcia@gmail.com> | 2013-04-20 16:02:58 (GMT) |
commit | b585ea6aa2ff41550385172c2ea3d3ed8cfb8bc3 (patch) | |
tree | bba135e0e3501d8ff3b2b7da5dbbe866680ffa77 | |
parent | 1ce0fa553ad6e13ae5b91fc8c3a6bf13148c62cd (diff) |
Emprolijando
-rw-r--r-- | Archivos.py | 44 | ||||
-rw-r--r-- | Archivos.pyc | bin | 17703 -> 17339 bytes | |||
-rw-r--r-- | CExplorer.css | 2 | ||||
-rw-r--r-- | CExplorer.py | 4 | ||||
-rw-r--r-- | Widgets.py | 41 | ||||
-rw-r--r-- | Widgets.pyc | bin | 13430 -> 13576 bytes | |||
-rw-r--r-- | window.py | 35 |
7 files changed, 58 insertions, 68 deletions
diff --git a/Archivos.py b/Archivos.py index 7ee49d5..14af21a 100644 --- a/Archivos.py +++ b/Archivos.py @@ -27,51 +27,17 @@ share = os.path.join(local, 'share') trash = os.path.join(share, 'Trash') PAPELERA = os.path.join(trash, 'files') -programas_instalados = [] -direcciones_prgramas = [] -aplicaciones = '/usr/share/applications' -if os.path.exists(aplicaciones) and os.path.isdir(aplicaciones): - lista = os.listdir(aplicaciones) - for x in lista: - direccion = aplicaciones + '/' + x - if os.path.isfile(direccion): - texto = open(direccion).read() - - if 'MimeType' in texto or 'mime-type' in texto: - programas_instalados.append(texto) - direcciones_prgramas.append(direccion) def intentar_abrir(direccion): - """Por ahora no hace nada""" - - """ - tipo = commands.getoutput('file %s --mime-type -b' % direccion) - tipo = tipo.split('/')[0] - - aplicaciones_utiles = [] - - for x in programas_instalados: - if tipo in x: - aplicaciones_utiles.append(x) - - texto = aplicaciones_utiles[0] - - direccion = False - for linea in texto.splitlines(): - if 'exec' in linea: - if 'exec=' in linea: - direccion = linea.split('exec=') - - if direccion: - commands.getoutput(direcciones_prgramas[numero] + ' ' + direccion) - break - - """ + """Abre el archivo con el programa predeterminado""" if ' ' in direccion: direccion = direccion.replace(' ', '\ ') - commands.getoutput('gnome-open %s' % direccion) + comando = commands.getoutput('gnome-open %s' % direccion) + + return comando + def crear_papelera(): """Crea los directorios de la papelera""" diff --git a/Archivos.pyc b/Archivos.pyc Binary files differindex e4d6f3c..e109f52 100644 --- a/Archivos.pyc +++ b/Archivos.pyc diff --git a/CExplorer.css b/CExplorer.css index 61c4322..3248d73 100644 --- a/CExplorer.css +++ b/CExplorer.css @@ -1,6 +1,6 @@ /* Configuracion de tema de colores para CExplorer */ -GtkWindow, GtkEntry, GtkIconView, GtkButton, GtkToolButton, GtkToolbar, GtkMenu, GtkTreeView, GtkPaned { +GtkWidget { background-color: black; color: green; } diff --git a/CExplorer.py b/CExplorer.py index 316022c..b1d6094 100644 --- a/CExplorer.py +++ b/CExplorer.py @@ -54,7 +54,7 @@ class CExplorer(activity.Activity): self.entrada = Wid.Entrada(self.direccion) scrolled_montajes = Gtk.ScrolledWindow() scrolled = Gtk.ScrolledWindow() - self.area_montajes = Wid.Area_de_Montajes(self) + self.area_montajes = Wid.AreadeMontajes(self) self.area = Wid.Area(self) #****** Toolbar ****** @@ -94,7 +94,7 @@ class CExplorer(activity.Activity): #****** Otros Widgets ****** paned = Gtk.Paned() - self.b_estado = Wid.Barra_de_Estado() + self.b_estado = Wid.BarradeEstado() self.vbox.pack_start(self.entrada, False, False, 5) self.vbox.pack_start(paned, True, True, 0) @@ -14,7 +14,7 @@ from gi.repository import Pango COPIAR = None -class Area_de_Montajes(Gtk.TreeView): +class AreadeMontajes(Gtk.TreeView): """Parte de la entana en la que se muestran los montajes actualmente introducidos""" @@ -151,6 +151,10 @@ class Area(Gtk.IconView): 'cambio-de-direccion': (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, (GObject.TYPE_STRING,)), 'cambio-de-mensaje': (GObject.SIGNAL_RUN_FIRST, + GObject.TYPE_NONE, (GObject.TYPE_STRING,)) + 'copiar': (GObject.SIGNAL_RUN_FIRST, + GObject.TYPE_NONE, (GObject.TYPE_STRING,)) + 'propiedades': (GObject.SIGNAL_RUN_FIRST, GObject.TYPE_NONE, (GObject.TYPE_STRING,))} def __init__(self, padre): @@ -173,6 +177,8 @@ class Area(Gtk.IconView): self.connect('selection-changed', self.changed) def changed(self, widget): + """Emite la señal 'cambio-de-mensaje' con una cadena + que muestra información del archivo o carpeta seleccionada""" if self.get_selected_items(): @@ -194,7 +200,7 @@ class Area(Gtk.IconView): self.emit('cambio-de-mensaje', mensaje) else: - self.padre.b_estado.set_text('') + self.emit('cambio-de-mensaje', '') def agregar(self, nombre, direccion): """Agrega el icono de una carpeta o un archivo""" @@ -289,16 +295,19 @@ class Area(Gtk.IconView): def abrir(self, widget, direccion): """Abre la dirección del montaje seleccionado""" - self.emit('change-directory', direccion) + self.emit('cambio-de-direccion', direccion) def copiar(self, widget, direccion): + """Emite la señal 'copiar' con la + dirección recibida como parámetro""" - COPIAR = direccion + self.emit('copiar', direccion) def propiedades(self, widget, direccion): + """Emite la señal 'copiar' con la + dirección recibida como parámetro""" - dialogo = Archivos.Propiedades(direccion) - dialogo.show_all() + self.emit('propiedades', direccion) class Entrada(Gtk.Entry): @@ -323,10 +332,15 @@ class Entrada(Gtk.Entry): self.connect('changed', self.changed) def changed(self, widget): + """Sí el usuario escribe '/' como último caracter, agrega + un item al modelo del completion por cada carpeta que se + encuentra en la dirección introducida""" texto = widget.get_text() - if os.path.exists(texto) and not os.path.isfile(texto) and texto[-1] == '/': + if os.path.exists(texto) and \ + not os.path.isfile(texto) and texto[-1] == '/': + lista = os.listdir(texto) self.modelo.clear() @@ -337,7 +351,9 @@ class Entrada(Gtk.Entry): self.show_all() -class Barra_de_Estado(Gtk.Statusbar): +class BarradeEstado(Gtk.Statusbar): + """Un GtkStatusbar para mostrar la + información del elemento seleccionado""" def __init__(self): @@ -347,6 +363,7 @@ class Barra_de_Estado(Gtk.Statusbar): """Le pasa 'pop' y 'push' al Widget clase""" texto = '' + for x in args: texto += x @@ -364,15 +381,13 @@ class DialogoError(Gtk.Dialog): def __init__(self, error, direccion, padre): - Gtk.Dialog.__init__(self, parent=padre) + Gtk.Dialog.__init__(self, parent=padre, flags=Gtk.DialogFlags.MODAL) if error == 'inexistente': texto = 'Al parecer la dirección:\n"%s"\nno existe, compruebe lo introducido, eh intente de nuevo' % direccion - elif error == 'abrir': - texto = 'TENGO QUE ARREGLAR ESTO!!!!' - - self.set_modal(True) + elif error == 'abrir archivo': + texto = 'No tiene un programa instalado para abrir:\n"%s"' % direccion label1 = Gtk.Label('Error al abrir la dirección...') label2 = Gtk.Label(texto) diff --git a/Widgets.pyc b/Widgets.pyc Binary files differindex c07a610..905bba1 100644 --- a/Widgets.pyc +++ b/Widgets.pyc @@ -14,10 +14,10 @@ from gi.repository import Gdk from gi.repository import GObject from gi.repository import GdkPixbuf -from Widgets import Area_de_Montajes +from Widgets import AreadeMontajes from Widgets import Area from Widgets import Entrada -from Widgets import Barra_de_Estado +from Widgets import BarradeEstado from Widgets import DialogoError @@ -60,7 +60,7 @@ class CExplorer(Gtk.Window): self.entrada = Entrada(self.direccion) scrolled_montajes = Gtk.ScrolledWindow() scrolled = Gtk.ScrolledWindow() - self.area_montajes = Area_de_Montajes(self) + self.area_montajes = AreadeMontajes(self) self.area = Area(self) self.spinner = Gtk.Spinner() @@ -100,7 +100,7 @@ class CExplorer(Gtk.Window): #****** Otros Widgets ****** paned = Gtk.Paned() - self.b_estado = Barra_de_Estado() + self.b_estado = BarradeEstado() self.vbox.pack_start(self.entrada, False, False, 5) self.vbox.pack_start(paned, True, True, 0) @@ -176,13 +176,16 @@ class CExplorer(Gtk.Window): self.area.agregar(archivo, self.direccion) elif os.path.isfile(directorio): - Archivos.intentar_abrir(directorio) + comando = Archivos.intentar_abrir(directorio) + + if 'error' in comando: + texto = 'abrir archivo' else: texto = 'inexistente' if texto: - dialogo = DialogoError(str(texto), directorio, self) + dialogo = DialogoError(texto, directorio, self) dialogo.show_all() @@ -243,10 +246,14 @@ class CExplorer(Gtk.Window): self.crear_directorio() def abrir_desde_widget(self, widget, direccion): + """Llama a la función 'abrir_desde_widget()', sólo que en esta + función, tiene el argumento 'widget', por que widget que la ocasión""" self.abrir(direccion) def crear_directorio(self, *args): + """Abre el un diálogo para crear un directorio, sí es + que en el directorio actual hay permisos suficientes""" lectura, escritura, ejecucion = Archivos.get_permisos(self.direccion) @@ -256,6 +263,8 @@ class CExplorer(Gtk.Window): crear.show_all() def borrar_archivo(self, *args): + """Abre un diálogo para borrar el archivo o la carpeta + seleccionada, sí es que hay permisos suficientes""" direccion = self.get_nueva_direccion() lectura, escritura, ejecucion = Archivos.get_permisos(direccion) @@ -270,12 +279,15 @@ class CExplorer(Gtk.Window): pass def preferencias(self, *args): + """Abre un diálogo con las propiedades del archivo, con opciones + de configurar todo lo que se pueda, teniendo en cuenta los permisos""" direccion = self.get_nueva_direccion() lectura, escritura, ejecucion = Archivos.get_permisos(direccion) if lectura: propiedades = Archivos.Propiedades(direccion) + propiedades.connect('cambio-de-propiedades', self.update) propiedades.show_all() @@ -306,6 +318,7 @@ class CExplorer(Gtk.Window): self.b_estado.borrar() def cambio_de_mensaje(self, widget, mensaje): + """Llama a la función 'set_text', de la clase 'BarradeEstado'""" self.b_estado.set_text(mensaje) @@ -338,6 +351,9 @@ class CExplorer(Gtk.Window): self.update() def get_nueva_direccion(self): + """Sí hay un item seleccionado en el area de navegación, + devuelve la dirección que conduce a él, de lo contrario, + devuelve la dirección actual""" try: direccion = self.direccion @@ -356,10 +372,3 @@ class CExplorer(Gtk.Window): if __name__ == '__main__': CExplorer() Gtk.main() - -""" -ico = "/home/cristian/Documentos/JAMediaSuite/JAMediaObjects/Iconos/JAMedia.png" -p = GdkPixbuf.Pixbuf.new_from_file_at_size(ico, -1, 30) -cursor = Gdk.Cursor.new_from_pixbuf(Gdk.Display.get_default(), p, 0, 0) -ventna.set_cursor(cursor) -""" |