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 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()
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())