def table_row_selected(self, fila):
        """Acciones a tomar cuando una fila de la tabla es seleccionada"""

        # Si no se selecciona una fila valida
        if fila == None:
            print "Nada seleccionado."
            return
        else:
            self.fila_selec = fila

        # BTN_NUEVA
        if is_free(fila):
            # Activar solo si hay menos de 4 particiones primarias
            if is_primary(fila) and self.count_primary() < 4:
                self.btn_nueva.set_sensitive(True)
            # o si la part. libre es logica
            elif is_logic(fila) and self.count_logical() < 11:
                self.btn_nueva.set_sensitive(True)
            else:
                self.btn_nueva.set_sensitive(False)
        else:
            self.btn_nueva.set_sensitive(False)

        # BTN_USAR
        if is_usable(self.fila_selec):
            self.btn_editar.set_sensitive(True)
        else:
            self.btn_editar.set_sensitive(False)

        # BTN_REDIMENSION
        # Si la particion NO es libre
        # si el filesystem tiene redimensionador
        # y no se ha marcado la aprticion para usarla
        # y si hay espacio para redimensionar dentro de la particion
        if (
            fila[TblCol.FORMATO] != msj.particion.libre
            and is_resizable(fila[TblCol.FORMATO])
            and fila[TblCol.ESTADO] != PStatus.USED
            and floatify(fila[TblCol.TAMANO]) > floatify(fila[TblCol.USADO])
        ):
            self.btn_redimension.set_sensitive(True)
        else:
            self.btn_redimension.set_sensitive(False)

        # BTN_ELIMINAR
        # Solo se pueden eliminar particiones, no los espacios libres
        # TODO: Eliminar part. extendidas (necesita verificar part. logicas)
        if not is_free(fila):
            self.btn_eliminar.set_sensitive(True)
        else:
            self.btn_eliminar.set_sensitive(False)
示例#2
0
    def table_row_selected(self, fila):
        '''Acciones a tomar cuando una fila de la tabla es seleccionada'''

        # Si no se selecciona una fila valida
        if fila == None:
            print "Nada seleccionado."
            return
        else:
            self.fila_selec = fila

        # BTN_NUEVA
        if is_free(fila):
            # Activar solo si hay menos de 4 particiones primarias
            if is_primary(fila) and self.count_primary() < 4:
                self.btn_nueva.set_sensitive(True)
            # o si la part. libre es logica
            elif is_logic(fila) and self.count_logical() < 11:
                self.btn_nueva.set_sensitive(True)
            else:
                self.btn_nueva.set_sensitive(False)
        else:
            self.btn_nueva.set_sensitive(False)

        # BTN_USAR
        if is_usable(self.fila_selec):
            self.btn_editar.set_sensitive(True)
        else:
            self.btn_editar.set_sensitive(False)

        #BTN_REDIMENSION
        # Si la particion NO es libre
        # si el filesystem tiene redimensionador
        # y no se ha marcado la aprticion para usarla
        # y si hay espacio para redimensionar dentro de la particion
        if fila[TblCol.FORMATO] != msj.particion.libre \
        and is_resizable(fila[TblCol.FORMATO]) \
        and fila[TblCol.ESTADO] != PStatus.USED \
        and floatify(fila[TblCol.TAMANO]) > floatify(fila[TblCol.USADO]):
            self.btn_redimension.set_sensitive(True)
        else:
            self.btn_redimension.set_sensitive(False)

        # BTN_ELIMINAR
        # Solo se pueden eliminar particiones, no los espacios libres
        #TODO: Eliminar part. extendidas (necesita verificar part. logicas)
        if not is_free(fila):
            self.btn_eliminar.set_sensitive(True)
        else:
            self.btn_eliminar.set_sensitive(False)
    def initialize(self, data):
        '''
        Inicializa todas las variables
        '''
        self.lista = []         # Lista de las particiones hechas
        self.acciones = []      # Almacena las acciones pendientes a realizar
        self.fila_selec = None  # Ultima fila seleccionada de la tabla
        self.raiz = False

        self.set_buttons_insensitives()

        # Llenar la tabla con el contenido actual del disco
        if self.tabla != None:

            #l_part = Particiones().lista_particiones(self.disco)
            for particion in self.data['particiones']:
                p_disp = particion[0]
                p_ini = particion[1]
                p_fin = particion[2]
                p_tam = particion[3]
                p_format = particion[4]
                p_tipo = particion[5]
                p_usado = particion[7]
                p_libre = particion[8]
                p_num = particion[10]

                fila = [
                       msj.particion.get_dispositivo(p_disp, p_num),
                       msj.particion.get_tipo(p_tipo),
                       msj.particion.get_formato(p_format),
                       '',
                       humanize(floatify(p_tam)),
                       humanize(p_usado),
                       humanize(p_libre),
                       p_ini,
                       p_fin,
                       False,
                       PStatus.NORMAL,
                   ]
                self.lista.append(fila)

            self.fill_table()
示例#4
0
    def initialize(self, data):
        '''
        Inicializa todas las variables
        '''
        self.lista = []  # Lista de las particiones hechas
        self.acciones = []  # Almacena las acciones pendientes a realizar
        self.fila_selec = None  # Ultima fila seleccionada de la tabla
        self.raiz = False

        self.set_buttons_insensitives()

        # Llenar la tabla con el contenido actual del disco
        if self.tabla != None:

            #l_part = Particiones().lista_particiones(self.disco)
            for particion in self.data['particiones']:
                p_disp = particion[0]
                p_ini = particion[1]
                p_fin = particion[2]
                p_tam = particion[3]
                p_format = particion[4]
                p_tipo = particion[5]
                p_usado = particion[7]
                p_libre = particion[8]
                p_num = particion[10]

                fila = [
                    msj.particion.get_dispositivo(p_disp, p_num),
                    msj.particion.get_tipo(p_tipo),
                    msj.particion.get_formato(p_format),
                    '',
                    humanize(floatify(p_tam)),
                    humanize(p_usado),
                    humanize(p_libre),
                    p_ini,
                    p_fin,
                    False,
                    PStatus.NORMAL,
                ]
                self.lista.append(fila)

            self.fill_table()
    def __init__(self, disco, lista, fila, acciones):
        self.sector = get_sector_size(disco)
        self.lista = lista
        self.acciones = acciones
        self.num_fila_act = get_row_index(lista, fila)
        self.dispositivo = fila[TblCol.DISPOSITIVO]
        self.formato = fila[TblCol.FORMATO]
        self.inicio = fila[TblCol.INICIO]
        self.fin = fila[TblCol.FIN]
        self.usado = floatify(fila[TblCol.USADO])

        gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
        gtk.Window.set_position(self, gtk.WIN_POS_CENTER_ALWAYS)

        self.set_title("Redimensionar Partición")
        self.set_size_request(400, 200)
        self.set_resizable(0)

        self.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
        self.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
        self.set_response_sensitive(gtk.RESPONSE_OK, False)
        self.set_default_response(gtk.RESPONSE_CANCEL)

        self.escala = gtk.HScale()
        self.escala.set_draw_value(False)
        adj = gtk.Adjustment(self.fin, self.inicio, self.get_maximum_size(),
                             1.0, 1024.0, 0.0)
        adj.connect("value-changed", self.escala_value_changed)
        self.escala.set_adjustment(adj)
        self.escala.show()

        self.lbl_dispositivo = gtk.Label("Partición '%s'" % self.dispositivo)
        self.lbl_dispositivo.show()

        self.lbl_tamano = gtk.Label('Tamaño')
        self.lbl_tamano_num = gtk.Label(humanize(
            self.get_new_partition_size()))
        self.vb_tamano = gtk.VBox()
        self.vb_tamano.add(self.lbl_tamano)
        self.vb_tamano.add(self.lbl_tamano_num)
        self.vb_tamano.show_all()

        self.lbl_usado = gtk.Label('Usado')
        self.lbl_usado_num = gtk.Label(humanize(self.usado))
        self.vb_usado = gtk.VBox()
        self.vb_usado.add(self.lbl_usado)
        self.vb_usado.add(self.lbl_usado_num)
        self.vb_usado.show_all()

        self.lbl_libre = gtk.Label('Libre')
        self.lbl_libre_num = gtk.Label(humanize(self.get_free_space()))
        self.vb_libre = gtk.VBox()
        self.vb_libre.add(self.lbl_libre)
        self.vb_libre.add(self.lbl_libre_num)
        self.vb_libre.show_all()

        self.lbl_sin_particion = gtk.Label('Sin Particionar')
        self.lbl_sin_particion_num = gtk.Label(
            humanize(self.get_unasigned_space()))
        self.vb_sin_particion = gtk.VBox()
        self.vb_sin_particion.add(self.lbl_sin_particion)
        self.vb_sin_particion.add(self.lbl_sin_particion_num)
        self.vb_sin_particion.show_all()

        self.hb_leyenda = gtk.HBox()
        self.hb_leyenda.add(self.vb_tamano)
        self.hb_leyenda.add(self.vb_usado)
        self.hb_leyenda.add(self.vb_libre)
        self.hb_leyenda.add(self.vb_sin_particion)
        self.hb_leyenda.show_all()

        self.cont = gtk.VBox()
        self.cont.add(self.lbl_dispositivo)
        self.cont.add(self.hb_leyenda)
        self.cont.add(self.escala)
        self.cont.show()

        self.vbox.pack_start(self.cont)

        self.process_response(self.run())
    def __init__(self, disco, lista, fila, acciones):
        self.sector = get_sector_size(disco)
        self.lista = lista
        self.acciones = acciones
        self.num_fila_act = get_row_index(lista, fila)
        self.dispositivo = fila[TblCol.DISPOSITIVO]
        self.formato = fila[TblCol.FORMATO]
        self.inicio = fila[TblCol.INICIO]
        self.fin = fila[TblCol.FIN]
        self.usado = floatify(fila[TblCol.USADO])

        gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL)
        gtk.Window.set_position(self, gtk.WIN_POS_CENTER_ALWAYS)

        self.set_title("Redimensionar Partición")
        self.set_size_request(400, 200)
        self.set_resizable(0)

        self.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
        self.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
        self.set_response_sensitive(gtk.RESPONSE_OK, False)
        self.set_default_response(gtk.RESPONSE_CANCEL)

        self.escala = gtk.HScale()
        self.escala.set_draw_value(False)
        adj = gtk.Adjustment(self.fin,
                            self.inicio,
                            self.get_maximum_size(),
                            1.0,
                            1024.0,
                            0.0)
        adj.connect("value-changed", self.escala_value_changed)
        self.escala.set_adjustment(adj)
        self.escala.show()

        self.lbl_dispositivo = gtk.Label("Partición '%s'" % self.dispositivo)
        self.lbl_dispositivo.show()

        self.lbl_tamano = gtk.Label('Tamaño')
        self.lbl_tamano_num = gtk.Label(humanize(self.get_new_partition_size()))
        self.vb_tamano = gtk.VBox()
        self.vb_tamano.add(self.lbl_tamano)
        self.vb_tamano.add(self.lbl_tamano_num)
        self.vb_tamano.show_all()

        self.lbl_usado = gtk.Label('Usado')
        self.lbl_usado_num = gtk.Label(humanize(self.usado))
        self.vb_usado = gtk.VBox()
        self.vb_usado.add(self.lbl_usado)
        self.vb_usado.add(self.lbl_usado_num)
        self.vb_usado.show_all()

        self.lbl_libre = gtk.Label('Libre')
        self.lbl_libre_num = gtk.Label(humanize(self.get_free_space()))
        self.vb_libre = gtk.VBox()
        self.vb_libre.add(self.lbl_libre)
        self.vb_libre.add(self.lbl_libre_num)
        self.vb_libre.show_all()

        self.lbl_sin_particion = gtk.Label('Sin Particionar')
        self.lbl_sin_particion_num = gtk.Label(humanize(self.get_unasigned_space()))
        self.vb_sin_particion = gtk.VBox()
        self.vb_sin_particion.add(self.lbl_sin_particion)
        self.vb_sin_particion.add(self.lbl_sin_particion_num)
        self.vb_sin_particion.show_all()

        self.hb_leyenda = gtk.HBox()
        self.hb_leyenda.add(self.vb_tamano)
        self.hb_leyenda.add(self.vb_usado)
        self.hb_leyenda.add(self.vb_libre)
        self.hb_leyenda.add(self.vb_sin_particion)
        self.hb_leyenda.show_all()

        self.cont = gtk.VBox()
        self.cont.add(self.lbl_dispositivo)
        self.cont.add(self.hb_leyenda)
        self.cont.add(self.escala)
        self.cont.show()

        self.vbox.pack_start(self.cont)

        self.process_response(self.run())