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)
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)
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_)
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_)
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 __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)