diff options
Diffstat (limited to 'CExplorer.py')
-rw-r--r-- | CExplorer.py | 93 |
1 files changed, 61 insertions, 32 deletions
diff --git a/CExplorer.py b/CExplorer.py index 7f8f735..316022c 100644 --- a/CExplorer.py +++ b/CExplorer.py @@ -20,6 +20,19 @@ from sugar3.activity.widgets import ActivityToolbarButton from sugar3.graphics.toolbarbox import ToolbarBox from sugar3.graphics.toolbutton import ToolButton +screen = Gdk.Screen.get_default() +css_provider = Gtk.CssProvider() + +style_path = 'CExplorer.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 CExplorer(activity.Activity): @@ -44,9 +57,6 @@ class CExplorer(activity.Activity): self.area_montajes = Wid.Area_de_Montajes(self) self.area = Wid.Area(self) - self.entrada.connect('activate', self.nueva_direccion) - self.entrada.connect('icon-release', self.nueva_direccion) - #****** Toolbar ****** toolbarbox = ToolbarBox() activity_button = ActivityToolbarButton(self) @@ -60,12 +70,6 @@ class CExplorer(activity.Activity): b_refresh = ToolButton(Gtk.STOCK_REFRESH) b_ocults = Gtk.ToolButton(Gtk.STOCK_YES) - b_harddisk.connect('clicked', self.nueva_direccion, '/') - b_home.connect('clicked', self.nueva_direccion, '~') - b_go_up.connect('clicked', self.abrir_arriba) - b_refresh.connect('clicked', self.update) - b_ocults.connect('clicked', self.change_ocultos) - b_harddisk.set_tooltip_text('Abrir al directorio raíz') b_home.set_tooltip_text('Abrir al directorio personal') b_go_up.set_tooltip_text('Abrir al la carpeta contenedora de la actual') @@ -104,6 +108,13 @@ class CExplorer(activity.Activity): self.entrada.activate() + self.entrada.connect('activate', self.nueva_direccion) + self.area_montajes.connect('change-directory', self.abrir_desde_widget) + b_harddisk.connect('clicked', self.nueva_direccion, '/') + b_home.connect('clicked', self.nueva_direccion, '~') + b_go_up.connect('clicked', self.abrir_arriba) + b_refresh.connect('clicked', self.update) + b_ocults.connect('clicked', self.change_ocultos) self.connect('destroy', Gtk.main_quit) self.connect('key-press-event', self.tecla_presionada) self.connect('change-directory', self.borrar_todo) @@ -114,6 +125,8 @@ class CExplorer(activity.Activity): def abrir(self, directorio): """Abre el directorio especificado""" + texto = False + if os.path.isdir(directorio) or os.path.ismount(directorio): # Sí es que no exíste, devolverá False @@ -150,10 +163,29 @@ class CExplorer(activity.Activity): self.area.agregar(archivo, self.direccion) elif os.path.isfile(directorio): - print 'La dirección es un archivo' + Archivos.intentar_abrir(directorio) + self.estado_cambiado() else: - print 'La dirección no existe' + texto = 'inexistente' + + if texto: + dialogo = DialogoError(str(texto), directorio, self) + + dialogo.show_all() + + try: + self.abrir(self.direccion) + + except: + try: + direccion = Archivos.get_direccion_arriba(self.direccion) + self.abrir(direccion) + + except: + self.abrir(os.path.expanduser('~')) + + self.estado_cambiado() def tecla_presionada(self, widget, event): @@ -180,10 +212,20 @@ class CExplorer(activity.Activity): if lectura and escritura: self.borrar_archivo() + elif tecla == 65293: + self.abrir(direccion) + + elif tecla == 65288: + self.abrir_arriba() + if tecla == 43: if lectura and escritura: self.crear_directorio() + def abrir_desde_widget(self, widget, direccion): + + self.abrir(direccion) + def crear_directorio(self, *args): lectura, escritura, ejecucion = Archivos.get_permisos(self.direccion) @@ -203,6 +245,10 @@ class CExplorer(activity.Activity): borrar.connect('borrado', self.update) borrar.show_all() + def state_changed(self, widget, state): + + pass + def preferencias(self, *args): direccion = self.get_nueva_direccion() @@ -248,23 +294,9 @@ class CExplorer(activity.Activity): def abrir_arriba(self, *args): """Abre la carpeta que contiene la actual""" - list = self.direccion.split('/') - - try: - direccion = '/' - numero = len(list) - 1 - while not bool(list[numero]): - numero -= 1 - - for directorio in list[:numero]: - if directorio: - direccion = direccion + directorio + '/' - - except IndexError: - direccion = '/' + self.direccion = Archivos.get_carpeta_contenedora(self.direccion) - self.direccion = direccion - self.entrada.set_text(direccion) + self.entrada.set_text(self.direccion) self.entrada.activate() self.update() @@ -274,14 +306,11 @@ class CExplorer(activity.Activity): self.ocultos = not self.ocultos if self.ocultos: - stock = Gtk.STOCK_NO - widget.set_tooltip_text('No mostrar archivos ocultos') + widget.set_icon_name(Gtk.STOCK_NO) else: - stock = Gtk.STOCK_YES - widget.set_tooltip_text('Mostrar archivos ocultos') + widget.set_icon_name(Gtk.STOCK_YES) - widget.set_icon_name(stock) self.update() def get_nueva_direccion(self): |