Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/CExplorer.py
diff options
context:
space:
mode:
Diffstat (limited to 'CExplorer.py')
-rw-r--r--CExplorer.py93
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):