class pygihack(activity.Activity):
    def __init__(self, handle):
        activity.Activity.__init__(self, handle)
        self.set_border_width(3)
        
        self.connect("delete_event", self.delete_event)
        self.connect("destroy", self.destroy)
        
        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        self.toolbar = Toolbar()
        self.toolbartry = ToolbarTry()
        self.navegador = Navegador()
        vbox.pack_start(self.toolbar, False, True, 0)
        vbox.pack_start(self.navegador, True, True, 0)
        vbox.pack_start(self.toolbartry, False, True, 3)
        self.set_canvas(vbox)
        self.show_all()
        
        self.navegador.connect('info', self.get_info)
    
    def get_info(self, widget, objeto):
        self.toolbartry.label.set_text( str(objeto) )
        
    def delete_event(self, widget, event, data=None):
        return False
    
    def destroy(self, widget, data=None):
        Gtk.main_quit()
Example #2
0
class Ventana(gtk.Window):

    def __init__(self):

        gtk.Window.__init__(self)

        self.set_title("JAMediaExplorer")
        self.set_icon_from_file(os.path.join(ICONOS, "JAMediaExplorer.svg"))
        self.modify_bg(0, gtk.gdk.Color(65000, 65000, 65000))
        self.set_resizable(True)
        self.set_size_request(640, 480)
        self.set_position(gtk.WIN_POS_CENTER)
        self.set_border_width(3)

        vbox = gtk.VBox()

        self.toolbar = Toolbar()
        self.toolbar_accion = ToolbarAccion()
        self.toolbar_salir = ToolbarSalir()
        self.navegador = Navegador()
        self.toolbar_try = ToolbarTry()

        vbox.pack_start(self.toolbar, False, False, 0)
        vbox.pack_start(self.toolbar_accion, False, False, 0)
        vbox.pack_start(self.toolbar_salir, False, False, 0)
        vbox.pack_start(self.navegador, True, True, 0)
        vbox.pack_end(self.toolbar_try, False, False, 0)

        self.add(vbox)
        self.show_all()
        self.realize()

        self.toolbar_accion.hide()
        self.toolbar_salir.hide()

        self.toolbar.connect('salir', self.__confirmar_salir)
        self.toolbar.connect('accion_ver', self.__set_accion)
        self.toolbar_accion.connect('borrar', self.__ejecutar_borrar)
        self.toolbar_salir.connect('salir', self.__salir)
        self.connect("delete-event", self.__salir)

        self.navegador.connect('info', self.__get_info)
        self.navegador.connect('borrar', self.__set_borrar)

    def __set_accion(self, widget, accion, valor):
        """
        Cuando se hace click en ver ocultos del menu.
        """
        self.get_toplevel().set_sensitive(False)
        self.navegador.notebookdirectorios.recargar(valor)
        self.get_toplevel().set_sensitive(True)

    def __ejecutar_borrar(self, widget, direccion, modelo, iter_):
        """
        Ejecuta borrar un archivo o directorio.
        """
        self.get_toplevel().set_sensitive(False)
        if borrar(direccion):
            modelo.remove(iter_)
            self.navegador.notebookdirectorios.copiando = False
            self.navegador.notebookdirectorios.cortando = False
        self.get_toplevel().set_sensitive(True)

    def __set_borrar(self, widget, direccion, modelo, iter_):
        """
        Setea borrar un archivo en toolbaraccion.
        """
        self.toolbar_salir.hide()
        self.toolbar_accion.set_accion(direccion, modelo, iter_)

    def __confirmar_salir(self, widget=None, senial=None):
        self.toolbar_accion.hide()
        self.toolbar_salir.run("JAMediaExplorer")

    def __ocultar(self, objeto):
        if objeto.get_visible():
            objeto.hide()

    def __mostrar(self, objeto):
        if not objeto.get_visible():
            objeto.show()

    def __get_items(self, directorio, tipo):
        if not os.path.exists(directorio) \
            or not os.path.isdir(directorio):
                return []
        items = []
        for archivo in os.listdir(directorio):
            path = os.path.join(directorio, archivo)
            descripcion = describe_archivo(path)
            if tipo in descripcion and not 'iso' in descripcion:
                items.append([archivo, path])
        return items

    def __get_info(self, widget, path):
        """
        Recibe el path seleccionado en la estructura
        de directorios, obtiene información sobre el mismo
        y la pasa a infowidget para ser mostrada.
        """
        if not path:
            return
        if not os.path.exists(path):
            return

        self.toolbar_try.label.set_text(path)
        # FIXME: Falla si se movió y no se actualiza
        unidad, directorio, archivo, enlace = describe_uri(path)
        lectura, escritura, ejecucion = describe_acceso_uri(path)

        texto = ""
        typeinfo = ""

        if enlace:
            texto = "Enlace.\n"
        else:
            if directorio:
                texto = "Directorio.\n"

            elif archivo:
                texto = "Archivo.\n"
                texto += "Tipo:\n"

                for dato in describe_archivo(path).split(";"):
                    texto += "\t%s\n" % (dato.strip())
                    typeinfo += dato

                texto += "Tamaño:\n"
                texto += "\t%s bytes\n" % (get_tamanio(path))

        texto += "Permisos: \n"
        texto += "\tLactura: %s\n" % (lectura)
        texto += "\tEscritura: %s\n" % (escritura)
        texto += "\tEjecución: %s\n" % (ejecucion)

        self.navegador.infowidget.set_info(texto, typeinfo)

    def __salir(self, widget=None, senial=None):
        notebook = self.navegador.notebookdirectorios
        paginas = notebook.get_n_pages()
        pags = notebook.get_children()
        for indice in range(paginas):
            pags[indice].get_child().new_handle(False)
        sys.exit(0)
        gtk.main_quit()
class Ventana(gtk.Window):
    def __init__(self):

        gtk.Window.__init__(self)

        self.set_title("JAMediaExplorer")
        self.set_icon_from_file(os.path.join(ICONOS, "JAMediaExplorer.svg"))
        self.modify_bg(0, gtk.gdk.Color(65000, 65000, 65000))
        self.set_resizable(True)
        self.set_size_request(640, 480)
        self.set_position(gtk.WIN_POS_CENTER)
        self.set_border_width(3)

        vbox = gtk.VBox()

        self.toolbar = Toolbar()
        self.toolbar_accion = ToolbarAccion()
        self.toolbar_salir = ToolbarSalir()
        self.navegador = Navegador()
        self.toolbar_try = ToolbarTry()

        vbox.pack_start(self.toolbar, False, False, 0)
        vbox.pack_start(self.toolbar_accion, False, False, 0)
        vbox.pack_start(self.toolbar_salir, False, False, 0)
        vbox.pack_start(self.navegador, True, True, 0)
        vbox.pack_end(self.toolbar_try, False, False, 0)

        self.add(vbox)
        self.show_all()
        self.realize()

        self.toolbar_accion.hide()
        self.toolbar_salir.hide()

        self.toolbar.connect('salir', self.__confirmar_salir)
        self.toolbar.connect('accion_ver', self.__set_accion)
        self.toolbar_accion.connect('borrar', self.__ejecutar_borrar)
        self.toolbar_salir.connect('salir', self.__salir)
        self.connect("delete-event", self.__salir)

        self.navegador.connect('info', self.__get_info)
        self.navegador.connect('borrar', self.__set_borrar)

    def __set_accion(self, widget, accion, valor):
        """
        Cuando se hace click en ver ocultos del menu.
        """
        self.get_toplevel().set_sensitive(False)
        self.navegador.notebookdirectorios.recargar(valor)
        self.get_toplevel().set_sensitive(True)

    def __ejecutar_borrar(self, widget, direccion, modelo, iter_):
        """
        Ejecuta borrar un archivo o directorio.
        """
        self.get_toplevel().set_sensitive(False)
        if borrar(direccion):
            modelo.remove(iter_)
            self.navegador.notebookdirectorios.copiando = False
            self.navegador.notebookdirectorios.cortando = False
        self.get_toplevel().set_sensitive(True)

    def __set_borrar(self, widget, direccion, modelo, iter_):
        """
        Setea borrar un archivo en toolbaraccion.
        """
        self.toolbar_salir.hide()
        self.toolbar_accion.set_accion(direccion, modelo, iter_)

    def __confirmar_salir(self, widget=None, senial=None):
        self.toolbar_accion.hide()
        self.toolbar_salir.run("JAMediaExplorer")

    def __ocultar(self, objeto):
        if objeto.get_visible():
            objeto.hide()

    def __mostrar(self, objeto):
        if not objeto.get_visible():
            objeto.show()

    def __get_items(self, directorio, tipo):
        if not os.path.exists(directorio) \
            or not os.path.isdir(directorio):
            return []
        items = []
        for archivo in os.listdir(directorio):
            path = os.path.join(directorio, archivo)
            descripcion = describe_archivo(path)
            if tipo in descripcion and not 'iso' in descripcion:
                items.append([archivo, path])
        return items

    def __get_info(self, widget, path):
        """
        Recibe el path seleccionado en la estructura
        de directorios, obtiene información sobre el mismo
        y la pasa a infowidget para ser mostrada.
        """
        if not path:
            return
        if not os.path.exists(path):
            return

        self.toolbar_try.label.set_text(path)
        # FIXME: Falla si se movió y no se actualiza
        unidad, directorio, archivo, enlace = describe_uri(path)
        lectura, escritura, ejecucion = describe_acceso_uri(path)

        texto = ""
        typeinfo = ""

        if enlace:
            texto = "Enlace.\n"
        else:
            if directorio:
                texto = "Directorio.\n"

            elif archivo:
                texto = "Archivo.\n"
                texto += "Tipo:\n"

                for dato in describe_archivo(path).split(";"):
                    texto += "\t%s\n" % (dato.strip())
                    typeinfo += dato

                texto += "Tamaño:\n"
                texto += "\t%s bytes\n" % (get_tamanio(path))

        texto += "Permisos: \n"
        texto += "\tLactura: %s\n" % (lectura)
        texto += "\tEscritura: %s\n" % (escritura)
        texto += "\tEjecución: %s\n" % (ejecucion)

        self.navegador.infowidget.set_info(texto, typeinfo)

    def __salir(self, widget=None, senial=None):
        notebook = self.navegador.notebookdirectorios
        paginas = notebook.get_n_pages()
        pags = notebook.get_children()
        for indice in range(paginas):
            pags[indice].get_child().new_handle(False)
        sys.exit(0)
        gtk.main_quit()