Example #1
0
class Navegador(gtk.HPaned):
    """
    Navegador de Archivos.
    """

    __gsignals__ = {
    "info": (gobject.SIGNAL_RUN_LAST,
        gobject.TYPE_NONE, (gobject.TYPE_PYOBJECT, )),
    "cargar": (gobject.SIGNAL_RUN_LAST,
        gobject.TYPE_NONE, (gobject.TYPE_STRING, )),
    "borrar": (gobject.SIGNAL_RUN_LAST,
        gobject.TYPE_NONE, (gobject.TYPE_STRING,
        gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT))}

    def __init__(self):

        gtk.HPaned.__init__(self)

        self.modify_bg(0, gtk.gdk.color_parse("#e3f2f2"))

        # Izquierda
        panel_izquierdo = gtk.VPaned()
        self.unidades = Unidades()
        panel_izquierdo.pack1(self.unidades, resize=False, shrink=True)
        self.infowidget = InfoWidget()
        scrolled_window = gtk.ScrolledWindow()
        scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        scrolled_window.add_with_viewport(self.infowidget)
        panel_izquierdo.pack2(scrolled_window, resize=True, shrink=True)
        self.pack1(panel_izquierdo, resize=False, shrink=True)

        # Derecha
        self.notebookdirectorios = NoteBookDirectorios()
        self.pack2(self.notebookdirectorios, resize=True, shrink=True)

        self.show_all()

        self.unidades.connect('leer', self.__leer)
        self.unidades.connect('add-leer', self.__add)
        self.unidades.connect('info', self.__emit_info)
        self.unidades.connect('remove_explorers', self.__remove_explorers)

        self.notebookdirectorios.connect('info', self.__emit_info)
        self.notebookdirectorios.connect('borrar', self.__emit_borrar)
        self.notebookdirectorios.connect('montaje', self.__select_montaje)
        self.notebookdirectorios.connect('no-paginas', self.__select_home)

    def __select_home(self, widget):
        gobject.idle_add(self.unidades.select_home)

    def __select_montaje(self, widget, montaje):
        """
        Cuando se hace switch en el notebook, se selecciona
        la unidad de montaje a la cual refiere.
        """
        model = self.unidades.get_model()
        item = model.get_iter_first()
        while item:
            if model.get_value(item, 2) == montaje:
                self.unidades.get_selection().select_iter(item)
                break
            item = model.iter_next(item)

    def __remove_explorers(self, widget, remove_explorers):
        """
        Cuando se desmonta una unidad, se cierran las lenguetas
        que refieren a ella y se verifican los paths en cortar y copiar.
        """
        paginas = self.notebookdirectorios.get_children()
        pags = []
        for pagina in paginas:
            directorio = pagina.get_child()
            for path in remove_explorers:
                if path in directorio.path:
                    pags.append(paginas.index(pagina))
                    break

        pags.reverse()
        for pag in pags:
            self.notebookdirectorios.remove_page(pag)

        copiando = self.notebookdirectorios.copiando
        cortando = self.notebookdirectorios.cortando

        for path in remove_explorers:
            if copiando:
                if path in copiando:
                    self.notebookdirectorios.copiando = False
            if cortando:
                path_cortando = self.notebookdirectorios.cortando[0]
                if path in path_cortando:
                    self.notebookdirectorios.cortando = False

    def __emit_borrar(self, widget, direccion, modelo, iter):
        self.emit('borrar', direccion, modelo, iter)

    def __emit_info(self, widget, path):
        self.emit('info', path)

    def __leer(self, widget, directorio):
        self.get_toplevel().set_sensitive(False)
        self.notebookdirectorios.load(directorio)
        self.get_toplevel().set_sensitive(True)

    def __add(self, widget, directorio):
        self.get_toplevel().set_sensitive(False)
        self.notebookdirectorios.add_leer(directorio)
        self.get_toplevel().set_sensitive(True)
class Navegador(Gtk.Paned):
    """
    Navegador de Archivos.
    """

    __gtype_name__ = 'JAMediaExplorerNavegador'

    __gsignals__ = {
        "info": (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE,
                 (GObject.TYPE_PYOBJECT, )),
        "cargar":
        (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, (GObject.TYPE_STRING, )),
        "borrar":
        (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE,
         (GObject.TYPE_STRING, GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT))
    }

    def __init__(self):

        Gtk.Paned.__init__(self, orientation=Gtk.Orientation.HORIZONTAL)

        self.unidades = None
        self.notebookdirectorios = NoteBookDirectorios()
        self.infowidget = None

        self.pack1(self.__area_izquierda_del_panel(),
                   resize=False,
                   shrink=True)
        self.pack2(self.notebookdirectorios, resize=True, shrink=True)

        self.show_all()

        self.unidades.connect('leer', self.__leer)
        self.unidades.connect('add-leer', self.__add)
        self.unidades.connect('info', self.__emit_info)
        self.unidades.connect('remove_explorers', self.__remove_explorers)

        self.notebookdirectorios.connect('info', self.__emit_info)
        self.notebookdirectorios.connect('borrar', self.__emit_borrar)
        self.notebookdirectorios.connect('montaje', self.__select_montaje)
        self.notebookdirectorios.connect('no-paginas', self.__select_home)

        self.infowidget.connect('cargar', self.__emit_cargar)

    def __select_home(self, widget):

        from gi.repository import GLib
        GLib.idle_add(self.unidades.select_home)

    def __select_montaje(self, widget, montaje):
        """
        Cuando se hace switch en el notebook, se selecciona
        la unidad de montaje a la cual refiere.
        """

        model = self.unidades.get_model()
        item = model.get_iter_first()

        while item:

            if model.get_value(item, 2) == montaje:
                self.unidades.get_selection().select_iter(item)
                break

            item = model.iter_next(item)

    def __remove_explorers(self, widget, remove_explorers):
        """
        Cuando se desmonta una unidad, se cierran las lenguetas
        que refieren a ella y se verifican los paths en cortar y copiar.
        """

        paginas = self.notebookdirectorios.get_children()
        pags = []

        for pagina in paginas:
            directorio = pagina.get_child()

            for path in remove_explorers:
                if path in directorio.path:
                    pags.append(paginas.index(pagina))
                    break

        pags.reverse()

        for pag in pags:
            self.notebookdirectorios.remove_page(pag)

        copiando = self.notebookdirectorios.copiando
        cortando = self.notebookdirectorios.cortando

        for path in remove_explorers:

            if copiando:
                if path in copiando:
                    self.notebookdirectorios.copiando = False

            if cortando:
                path_cortando = self.notebookdirectorios.cortando[0]

                if path in path_cortando:
                    self.notebookdirectorios.cortando = False

    def __emit_borrar(self, widget, direccion, modelo, iter):
        """
        Cuando se selecciona borrar en el menu de un item.
        """

        self.emit('borrar', direccion, modelo, iter)

    def __emit_cargar(self, widget, tipo):
        """
        Cuando se hace click en infowidget se pasa
        los datos a la ventana principal.
        """

        self.emit('cargar', tipo)

    def __emit_info(self, widget, path):
        """
        Cuando el usuario selecciona un archivo
        o directorio en la estructura de directorios,
        pasa la informacion del mismo a la ventana principal.
        """

        self.emit('info', path)

    def __area_izquierda_del_panel(self):

        self.unidades = Unidades()

        panel_izquierdo = Gtk.Paned(orientation=Gtk.Orientation.VERTICAL)

        panel_izquierdo.pack1(self.unidades, resize=False, shrink=True)

        self.infowidget = InfoWidget()

        scrolled_window = Gtk.ScrolledWindow()
        scrolled_window.set_policy(Gtk.PolicyType.AUTOMATIC,
                                   Gtk.PolicyType.AUTOMATIC)

        scrolled_window.add_with_viewport(self.infowidget)

        panel_izquierdo.pack2(scrolled_window, resize=True, shrink=True)

        return panel_izquierdo

    def __leer(self, widget, directorio):
        """
        Cuando se selecciona una unidad en el panel izquierdo.
        """

        self.get_toplevel().set_sensitive(False)
        self.notebookdirectorios.load(directorio)
        self.get_toplevel().set_sensitive(True)

    def __add(self, widget, directorio):
        """
        Cuando se selecciona una unidad en el panel izquierdo.
        """

        self.get_toplevel().set_sensitive(False)
        self.notebookdirectorios.add_leer(directorio)
        self.get_toplevel().set_sensitive(True)
Example #3
0
class Navegador(Gtk.Paned):
    """
    Navegador de Archivos.
    """

    __gtype_name__ = 'JAMediaExplorerNavegador'

    __gsignals__ = {
    "info": (GObject.SIGNAL_RUN_LAST,
        GObject.TYPE_NONE, (GObject.TYPE_PYOBJECT, )),
    "cargar": (GObject.SIGNAL_RUN_LAST,
        GObject.TYPE_NONE, (GObject.TYPE_STRING, )),
    "borrar": (GObject.SIGNAL_RUN_LAST,
        GObject.TYPE_NONE, (GObject.TYPE_STRING,
        GObject.TYPE_PYOBJECT, GObject.TYPE_PYOBJECT))}

    def __init__(self):

        Gtk.Paned.__init__(
            self, orientation=Gtk.Orientation.HORIZONTAL)

        self.unidades = None
        self.notebookdirectorios = NoteBookDirectorios()
        self.infowidget = None

        self.pack1(self.__area_izquierda_del_panel(),
            resize=False, shrink=True)
        self.pack2(self.notebookdirectorios,
            resize=True, shrink=True)

        self.show_all()

        self.unidades.connect(
            'leer', self.__leer)
        self.unidades.connect(
            'add-leer', self.__add)
        self.unidades.connect(
            'info', self.__emit_info)
        self.unidades.connect(
            'remove_explorers', self.__remove_explorers)

        self.notebookdirectorios.connect(
            'info', self.__emit_info)
        self.notebookdirectorios.connect(
            'borrar', self.__emit_borrar)
        self.notebookdirectorios.connect(
            'montaje', self.__select_montaje)
        self.notebookdirectorios.connect(
            'no-paginas', self.__select_home)

        self.infowidget.connect(
            'cargar', self.__emit_cargar)

    def __select_home(self, widget):

        from gi.repository import GLib
        GLib.idle_add(self.unidades.select_home)

    def __select_montaje(self, widget, montaje):
        """
        Cuando se hace switch en el notebook, se selecciona
        la unidad de montaje a la cual refiere.
        """

        model = self.unidades.get_model()
        item = model.get_iter_first()

        while item:

            if model.get_value(item, 2) == montaje:
                self.unidades.get_selection().select_iter(item)
                break

            item = model.iter_next(item)

    def __remove_explorers(self, widget, remove_explorers):
        """
        Cuando se desmonta una unidad, se cierran las lenguetas
        que refieren a ella y se verifican los paths en cortar y copiar.
        """

        paginas = self.notebookdirectorios.get_children()
        pags = []

        for pagina in paginas:
            directorio = pagina.get_child()

            for path in remove_explorers:
                if path in directorio.path:
                    pags.append(paginas.index(pagina))
                    break

        pags.reverse()

        for pag in pags:
            self.notebookdirectorios.remove_page(pag)

        copiando = self.notebookdirectorios.copiando
        cortando = self.notebookdirectorios.cortando

        for path in remove_explorers:

            if copiando:
                if path in copiando:
                    self.notebookdirectorios.copiando = False

            if cortando:
                path_cortando = self.notebookdirectorios.cortando[0]

                if path in path_cortando:
                    self.notebookdirectorios.cortando = False

    def __emit_borrar(self, widget, direccion, modelo, iter):
        """
        Cuando se selecciona borrar en el menu de un item.
        """

        self.emit('borrar', direccion, modelo, iter)

    def __emit_cargar(self, widget, tipo):
        """
        Cuando se hace click en infowidget se pasa
        los datos a la ventana principal.
        """

        self.emit('cargar', tipo)

    def __emit_info(self, widget, path):
        """
        Cuando el usuario selecciona un archivo
        o directorio en la estructura de directorios,
        pasa la informacion del mismo a la ventana principal.
        """

        self.emit('info', path)

    def __area_izquierda_del_panel(self):

        self.unidades = Unidades()

        panel_izquierdo = Gtk.Paned(
            orientation=Gtk.Orientation.VERTICAL)

        panel_izquierdo.pack1(
            self.unidades, resize=False, shrink=True)

        self.infowidget = InfoWidget()

        scrolled_window = Gtk.ScrolledWindow()
        scrolled_window.set_policy(
            Gtk.PolicyType.AUTOMATIC,
            Gtk.PolicyType.AUTOMATIC)

        scrolled_window.add_with_viewport(self.infowidget)

        panel_izquierdo.pack2(
            scrolled_window, resize=True, shrink=True)

        return panel_izquierdo

    def __leer(self, widget, directorio):
        """
        Cuando se selecciona una unidad en el panel izquierdo.
        """

        self.get_toplevel().set_sensitive(False)
        self.notebookdirectorios.load(directorio)
        self.get_toplevel().set_sensitive(True)

    def __add(self, widget, directorio):
        """
        Cuando se selecciona una unidad en el panel izquierdo.
        """

        self.get_toplevel().set_sensitive(False)
        self.notebookdirectorios.add_leer(directorio)
        self.get_toplevel().set_sensitive(True)
Example #4
0
class Navegador(gtk.HPaned):
    """
    Navegador de Archivos.
    """

    __gsignals__ = {
        "info": (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
                 (gobject.TYPE_PYOBJECT, )),
        "cargar":
        (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE, (gobject.TYPE_STRING, )),
        "borrar":
        (gobject.SIGNAL_RUN_LAST, gobject.TYPE_NONE,
         (gobject.TYPE_STRING, gobject.TYPE_PYOBJECT, gobject.TYPE_PYOBJECT))
    }

    def __init__(self):

        gtk.HPaned.__init__(self)

        self.modify_bg(0, gtk.gdk.color_parse("#e3f2f2"))

        # Izquierda
        panel_izquierdo = gtk.VPaned()
        self.unidades = Unidades()
        panel_izquierdo.pack1(self.unidades, resize=False, shrink=True)
        self.infowidget = InfoWidget()
        scrolled_window = gtk.ScrolledWindow()
        scrolled_window.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        scrolled_window.add_with_viewport(self.infowidget)
        panel_izquierdo.pack2(scrolled_window, resize=True, shrink=True)
        self.pack1(panel_izquierdo, resize=False, shrink=True)

        # Derecha
        self.notebookdirectorios = NoteBookDirectorios()
        self.pack2(self.notebookdirectorios, resize=True, shrink=True)

        self.show_all()

        self.unidades.connect('leer', self.__leer)
        self.unidades.connect('add-leer', self.__add)
        self.unidades.connect('info', self.__emit_info)
        self.unidades.connect('remove_explorers', self.__remove_explorers)

        self.notebookdirectorios.connect('info', self.__emit_info)
        self.notebookdirectorios.connect('borrar', self.__emit_borrar)
        self.notebookdirectorios.connect('montaje', self.__select_montaje)
        self.notebookdirectorios.connect('no-paginas', self.__select_home)

    def __select_home(self, widget):
        gobject.idle_add(self.unidades.select_home)

    def __select_montaje(self, widget, montaje):
        """
        Cuando se hace switch en el notebook, se selecciona
        la unidad de montaje a la cual refiere.
        """
        model = self.unidades.get_model()
        item = model.get_iter_first()
        while item:
            if model.get_value(item, 2) == montaje:
                self.unidades.get_selection().select_iter(item)
                break
            item = model.iter_next(item)

    def __remove_explorers(self, widget, remove_explorers):
        """
        Cuando se desmonta una unidad, se cierran las lenguetas
        que refieren a ella y se verifican los paths en cortar y copiar.
        """
        paginas = self.notebookdirectorios.get_children()
        pags = []
        for pagina in paginas:
            directorio = pagina.get_child()
            for path in remove_explorers:
                if path in directorio.path:
                    pags.append(paginas.index(pagina))
                    break

        pags.reverse()
        for pag in pags:
            self.notebookdirectorios.remove_page(pag)

        copiando = self.notebookdirectorios.copiando
        cortando = self.notebookdirectorios.cortando

        for path in remove_explorers:
            if copiando:
                if path in copiando:
                    self.notebookdirectorios.copiando = False
            if cortando:
                path_cortando = self.notebookdirectorios.cortando[0]
                if path in path_cortando:
                    self.notebookdirectorios.cortando = False

    def __emit_borrar(self, widget, direccion, modelo, iter):
        self.emit('borrar', direccion, modelo, iter)

    def __emit_info(self, widget, path):
        self.emit('info', path)

    def __leer(self, widget, directorio):
        self.get_toplevel().set_sensitive(False)
        self.notebookdirectorios.load(directorio)
        self.get_toplevel().set_sensitive(True)

    def __add(self, widget, directorio):
        self.get_toplevel().set_sensitive(False)
        self.notebookdirectorios.add_leer(directorio)
        self.get_toplevel().set_sensitive(True)