Esempio n. 1
0
    def __init__(self, widget, boton, pos, tiempo, path, modelo):

        gtk.Menu.__init__(self)

        self.modelo = modelo
        self.parent_objet = widget

        lectura, escritura, ejecucion = (False, False, False)
        unidad, directorio, archivo, enlace = (False, False, False, False)

        iter_ = self.modelo.get_iter(path)
        direccion = self.modelo.get_value(iter_, 2)

        if describe_acceso_uri(direccion):
            lectura, escritura, ejecucion = describe_acceso_uri(direccion)
            unidad, directorio, archivo, enlace = describe_uri(direccion)

        abrir_pestania = gtk.MenuItem("Abrir en Pestaña Nueva")
        self.append(abrir_pestania)
        abrir_pestania.connect_object("activate",
            self.__emit_accion, path, "Abrir")

        notebook = self.parent_objet.get_parent(
            ).get_parent().notebookdirectorios
        if escritura and (directorio or unidad) and \
            (notebook.copiando or notebook.cortando):
            pegar = gtk.MenuItem("Pegar")
            self.append(pegar)
            pegar.connect_object("activate",
                self.__emit_accion, path, "Pegar")

        self.show_all()
        self.attach_to_widget(widget, self.__null)
Esempio n. 2
0
    def __init__(self, widget, boton, pos, tiempo, path, modelo):

        gtk.Menu.__init__(self)

        self.modelo = modelo
        self.parent_objet = widget

        lectura, escritura, ejecucion = (False, False, False)
        unidad, directorio, archivo, enlace = (False, False, False, False)

        iter_ = self.modelo.get_iter(path)
        direccion = self.modelo.get_value(iter_, 2)

        if describe_acceso_uri(direccion):
            lectura, escritura, ejecucion = describe_acceso_uri(direccion)
            unidad, directorio, archivo, enlace = describe_uri(direccion)

        abrir_pestania = gtk.MenuItem("Abrir en Pestaña Nueva")
        self.append(abrir_pestania)
        abrir_pestania.connect_object("activate", self.__emit_accion, path,
                                      "Abrir")

        notebook = self.parent_objet.get_parent().get_parent(
        ).notebookdirectorios
        if escritura and (directorio or unidad) and \
            (notebook.copiando or notebook.cortando):
            pegar = gtk.MenuItem("Pegar")
            self.append(pegar)
            pegar.connect_object("activate", self.__emit_accion, path, "Pegar")

        self.show_all()
        self.attach_to_widget(widget, self.__null)
Esempio n. 3
0
    def __init__(self, widget, boton, pos, tiempo, path, modelo):

        gtk.Menu.__init__(self)

        self.modelo = modelo
        self.parent_objet = widget

        lectura, escritura, ejecucion = (False, False, False)
        unidad, directorio, archivo, enlace = (False, False, False, False)

        iter_ = self.modelo.get_iter(path)
        direccion = self.modelo.get_value(iter_, 2)

        if describe_acceso_uri(direccion):
            lectura, escritura, ejecucion = describe_acceso_uri(direccion)
            unidad, directorio, archivo, enlace = describe_uri(direccion)
        else:
            return

        if lectura:
            item = gtk.MenuItem("Copiar")
            self.append(item)
            item.connect_object("activate", self.__emit_accion, path, "Copiar")

        if escritura and not unidad:
            borrar = gtk.MenuItem("Borrar")
            self.append(borrar)
            borrar.connect_object("activate",
                self.__emit_accion, path, "Borrar")

        notebook = self.parent_objet.get_parent().get_parent()
        if escritura and (directorio or unidad) and \
            (notebook.copiando or notebook.cortando):
            pegar = gtk.MenuItem("Pegar")
            self.append(pegar)
            pegar.connect_object("activate",
                self.__emit_accion, path, "Pegar")

        if escritura and (directorio or archivo):
            cortar = gtk.MenuItem("Cortar")
            self.append(cortar)
            cortar.connect_object("activate",
                self.__emit_accion, path, "Cortar")

        if escritura and (directorio or unidad):
            abrir_pestania = gtk.MenuItem("Abrir en Pestaña Nueva")
            self.append(abrir_pestania)
            abrir_pestania.connect_object("activate",
                self.__emit_accion, path, "new-tab")

            nuevodirectorio = gtk.MenuItem("Crear Directorio")
            self.append(nuevodirectorio)
            nuevodirectorio.connect_object("activate",
                self.__emit_accion, path, "Crear Directorio")

        self.show_all()
        self.attach_to_widget(widget, self.__null)
    def __init__(self, widget, boton, pos, tiempo, path, modelo):

        gtk.Menu.__init__(self)

        self.modelo = modelo
        self.parent_objet = widget

        lectura, escritura, ejecucion = (False, False, False)
        unidad, directorio, archivo, enlace = (False, False, False, False)

        iter_ = self.modelo.get_iter(path)
        direccion = self.modelo.get_value(iter_, 2)

        if describe_acceso_uri(direccion):
            lectura, escritura, ejecucion = describe_acceso_uri(direccion)
            unidad, directorio, archivo, enlace = describe_uri(direccion)
        else:
            return

        if lectura:
            item = gtk.MenuItem("Copiar")
            self.append(item)
            item.connect_object("activate", self.__emit_accion, path, "Copiar")

        if escritura and not unidad:
            borrar = gtk.MenuItem("Borrar")
            self.append(borrar)
            borrar.connect_object("activate", self.__emit_accion, path,
                                  "Borrar")

        notebook = self.parent_objet.get_parent().get_parent()
        if escritura and (directorio or unidad) and \
            (notebook.copiando or notebook.cortando):
            pegar = gtk.MenuItem("Pegar")
            self.append(pegar)
            pegar.connect_object("activate", self.__emit_accion, path, "Pegar")

        if escritura and (directorio or archivo):
            cortar = gtk.MenuItem("Cortar")
            self.append(cortar)
            cortar.connect_object("activate", self.__emit_accion, path,
                                  "Cortar")

        if escritura and (directorio or unidad):
            abrir_pestania = gtk.MenuItem("Abrir en Pestaña Nueva")
            self.append(abrir_pestania)
            abrir_pestania.connect_object("activate", self.__emit_accion, path,
                                          "new-tab")

            nuevodirectorio = gtk.MenuItem("Crear Directorio")
            self.append(nuevodirectorio)
            nuevodirectorio.connect_object("activate", self.__emit_accion,
                                           path, "Crear Directorio")

        self.show_all()
        self.attach_to_widget(widget, self.__null)
 def __get_accion(self, widget, path, accion):
     iter_ = self.get_model().get_iter(path)
     direccion = self.get_model().get_value(iter_, 2)
     lectura, escritura, ejecucion = describe_acceso_uri(direccion)
     if accion == "Crear Directorio":
         dialog = gtk.Dialog("Crear Directorio . . .", self.get_toplevel(),
                             gtk.DIALOG_MODAL, None)
         etiqueta = gtk.Label("Nombre del Directorio: ")
         entry = gtk.Entry()
         dialog.vbox.pack_start(etiqueta, True, True, 5)
         dialog.vbox.pack_start(entry, True, True, 5)
         dialog.add_button("Crear Directorio", 1)
         dialog.add_button("Cancelar", 2)
         dialog.vbox.show_all()
         respuesta = dialog.run()
         directorio_nuevo = entry.get_text()
         dialog.destroy()
         if respuesta == 1:
             if directorio_nuevo != "" and directorio_nuevo != None:
                 if crear_directorio(direccion, directorio_nuevo):
                     self.collapse_row(path)
                     self.expand_to_path(path)
     elif accion == "Borrar":
         self.emit('borrar', direccion, self.get_model(), iter_)
     elif accion == "new-tab":
         self.emit('add-leer', direccion)
     else:
         self.emit('accion', path, accion)
 def __leer(self, dire):
     archivo = ""
     try:
         directorio = dire[0]
         path = dire[1]
         if path:
             iter_ = self.get_model().get_iter(path)
         else:
             iter_ = self.get_model().get_iter_first()
         archivos = []
         listdir = os.listdir(os.path.join(directorio))
         listdir.sort()
         for archivo in listdir:
             direccion = os.path.join(directorio, archivo)
             if not self.get_parent().get_parent().ver_ocultos:
                 if archivo.startswith('.'):
                     continue
             if os.path.isdir(direccion):
                 icono = None
                 lectura, escritura, ejecucion = describe_acceso_uri(
                     direccion)
                 if not lectura:
                     icono = os.path.join(ICONOS, "button-cancel.svg")
                 else:
                     icono = os.path.join(ICONOS, "document-open.svg")
                 pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
                     icono, -1, 30)
                 iteractual = self.get_model().append(
                     iter_, [pixbuf, archivo, direccion, ""])
                 self.__agregar_nada(iteractual)
             elif os.path.isfile(direccion):
                 archivos.append(direccion)
         for x in archivos:
             archivo = os.path.basename(x)
             icono = None
             tipo = describe_archivo(x)
             if 'video' in tipo:
                 icono = os.path.join(ICONOS, "video.svg")
             elif 'audio' in tipo:
                 icono = os.path.join(ICONOS, "sonido.svg")
             elif 'image' in tipo and not 'iso' in tipo:
                 #icono = os.path.join(x) #exige en rendimiento
                 icono = os.path.join(ICONOS, "edit-select-all.svg")
             elif 'pdf' in tipo:
                 icono = os.path.join(ICONOS, "pdf.svg")
             elif 'zip' in tipo or 'rar' in tipo:
                 icono = os.path.join(ICONOS, "edit-select-all.svg")
             else:
                 icono = os.path.join(ICONOS, "edit-select-all.svg")
             pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(icono, -1, 30)
             self.get_model().append(
                 iter_,
                 [pixbuf, archivo, x,
                  str(os.path.getsize(x)) + " bytes"])
         self.dict[directorio] = str(listdir)
     except:
         print "**** Error de acceso:", dire, archivo
     iter_ = self.get_model().get_iter_first()
     if iter_:
         self.get_selection().select_iter(iter_)
Esempio n. 7
0
 def __get_accion(self, widget, path, accion):
     iter_ = self.get_model().get_iter(path)
     direccion = self.get_model().get_value(iter_, 2)
     lectura, escritura, ejecucion = describe_acceso_uri(direccion)
     if accion == "Crear Directorio":
         dialog = gtk.Dialog("Crear Directorio . . .",
             self.get_toplevel(), gtk.DIALOG_MODAL, None)
         etiqueta = gtk.Label("Nombre del Directorio: ")
         entry = gtk.Entry()
         dialog.vbox.pack_start(etiqueta, True, True, 5)
         dialog.vbox.pack_start(entry, True, True, 5)
         dialog.add_button("Crear Directorio", 1)
         dialog.add_button("Cancelar", 2)
         dialog.vbox.show_all()
         respuesta = dialog.run()
         directorio_nuevo = entry.get_text()
         dialog.destroy()
         if respuesta == 1:
             if directorio_nuevo != "" and directorio_nuevo != None:
                 if crear_directorio(direccion, directorio_nuevo):
                     self.collapse_row(path)
                     self.expand_to_path(path)
     elif accion == "Borrar":
         self.emit('borrar', direccion, self.get_model(), iter_)
     elif accion == "new-tab":
         self.emit('add-leer', direccion)
     else:
         self.emit('accion', path, accion)
Esempio n. 8
0
 def __leer(self, dire):
     archivo = ""
     try:
         directorio = dire[0]
         path = dire[1]
         if path:
             iter_ = self.get_model().get_iter(path)
         else:
             iter_ = self.get_model().get_iter_first()
         archivos = []
         listdir = os.listdir(os.path.join(directorio))
         listdir.sort()
         for archivo in listdir:
             direccion = os.path.join(directorio, archivo)
             if not self.get_parent().get_parent().ver_ocultos:
                 if archivo.startswith('.'):
                     continue
             if os.path.isdir(direccion):
                 icono = None
                 lectura, escritura, ejecucion = describe_acceso_uri(
                     direccion)
                 if not lectura:
                     icono = os.path.join(ICONOS, "button-cancel.svg")
                 else:
                     icono = os.path.join(ICONOS, "document-open.svg")
                 pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(
                     icono, -1, 30)
                 iteractual = self.get_model().append(
                     iter_, [pixbuf, archivo, direccion, ""])
                 self.__agregar_nada(iteractual)
             elif os.path.isfile(direccion):
                 archivos.append(direccion)
         for x in archivos:
             archivo = os.path.basename(x)
             icono = None
             tipo = describe_archivo(x)
             if 'video' in tipo:
                 icono = os.path.join(ICONOS, "video.svg")
             elif 'audio' in tipo:
                 icono = os.path.join(ICONOS, "sonido.svg")
             elif 'image' in tipo and not 'iso' in tipo:
                 #icono = os.path.join(x) #exige en rendimiento
                 icono = os.path.join(ICONOS, "edit-select-all.svg")
             elif 'pdf' in tipo:
                 icono = os.path.join(ICONOS, "pdf.svg")
             elif 'zip' in tipo or 'rar' in tipo:
                 icono = os.path.join(ICONOS, "edit-select-all.svg")
             else:
                 icono = os.path.join(ICONOS, "edit-select-all.svg")
             pixbuf = gtk.gdk.pixbuf_new_from_file_at_size(icono, -1, 30)
             self.get_model().append(iter_, [pixbuf, archivo,
                 x, str(os.path.getsize(x)) + " bytes"])
         self.dict[directorio] = str(listdir)
     except:
         print "**** Error de acceso:", dire, archivo
     iter_ = self.get_model().get_iter_first()
     if iter_:
         self.get_selection().select_iter(iter_)
Esempio n. 9
0
    def __realizar_accion(self, widget):
        """
        Ejecuta una accion sobre un archivo o streaming
        en la lista de reprucción cuando el usuario confirma.
        """

        from JAMediaGlobales import get_my_files_directory

        from JAMFileSystem import describe_acceso_uri
        from JAMFileSystem import copiar
        from JAMFileSystem import borrar
        from JAMFileSystem import mover

        uri = self.lista.modelo.get_value(self.iter, 2)

        if describe_acceso_uri(uri):
            if self.accion == "Quitar":
                self.lista.modelo.remove(self.iter)

            elif self.accion == "Copiar":
                if os.path.isfile(uri):
                    copiar(uri, get_my_files_directory())

            elif self.accion == "Borrar":
                if os.path.isfile(uri):
                    if borrar(uri):
                        self.lista.modelo.remove(self.iter)

            elif self.accion == "Mover":
                if os.path.isfile(uri):
                    if mover(uri, get_my_files_directory()):
                        self.lista.modelo.remove(self.iter)
        else:
            if self.accion == "Quitar":
                self.lista.modelo.remove(self.iter)

            elif self.accion == "Borrar":
                self.emit("accion-stream", "Borrar", uri)
                self.lista.modelo.remove(self.iter)

            elif self.accion == "Copiar":
                self.emit("accion-stream", "Copiar", uri)

            elif self.accion == "Mover":
                self.emit("accion-stream", "Mover", uri)
                self.lista.modelo.remove(self.iter)

            elif self.accion == "Grabar":
                self.emit("Grabar", uri)

        self.label.set_text("")
        self.lista = None
        self.accion = None
        self.iter = None
        self.hide()
    def __realizar_accion(self, widget):
        """
        Ejecuta una accion sobre un archivo o streaming
        en la lista de reprucción cuando el usuario confirma.
        """

        from JAMediaGlobales import get_my_files_directory

        from JAMFileSystem import describe_acceso_uri
        from JAMFileSystem import copiar
        from JAMFileSystem import borrar
        from JAMFileSystem import mover

        uri = self.lista.modelo.get_value(self.iter, 2)

        if describe_acceso_uri(uri):
            if self.accion == "Quitar":
                self.lista.modelo.remove(self.iter)

            elif self.accion == "Copiar":
                if os.path.isfile(uri):
                    copiar(uri, get_my_files_directory())

            elif self.accion == "Borrar":
                if os.path.isfile(uri):
                    if borrar(uri):
                        self.lista.modelo.remove(self.iter)

            elif self.accion == "Mover":
                if os.path.isfile(uri):
                    if mover(uri, get_my_files_directory()):
                        self.lista.modelo.remove(self.iter)
        else:
            if self.accion == "Quitar":
                self.lista.modelo.remove(self.iter)

            elif self.accion == "Borrar":
                self.emit("accion-stream", "Borrar", uri)
                self.lista.modelo.remove(self.iter)

            elif self.accion == "Copiar":
                self.emit("accion-stream", "Copiar", uri)

            elif self.accion == "Mover":
                self.emit("accion-stream", "Mover", uri)
                self.lista.modelo.remove(self.iter)

            elif self.accion == "Grabar":
                self.emit("Grabar", uri)

        self.label.set_text("")
        self.lista = None
        self.accion = None
        self.iter = None
        self.hide()
Esempio n. 11
0
    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 __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)