def mostrar_info(self): #Tipo de Instalación msg = "Tipo de instalación: " if self.cfg['tipo'] == 'particion_1': msg = msg + "Realizar la instalación en una sola partición" elif self.cfg['tipo'] == 'particion_2': msg = msg + "Separar la partición /home" elif self.cfg['tipo'] == 'particion_3': msg = msg + "Separar las particiones /home, /usr y /boot" elif self.cfg['tipo'] == 'particion_3': msg = msg + "Particionado manual" self.lbltipo.set_text(msg) #Método if self.cfg['metodo'] == 'todo': msg = "Dispositivo a usar: {0}".format(self.cfg['disco']) self.lblmetodo.set_text(msg) elif self.cfg['metodo'] == 'vacio': pass else: #msg = "partición a usar: {0}".format(self.cfg['particion']) #self.lblmetodo.set_text(msg) msg = "Tamaño Anterior de la Partición: {0}".format(gen.hum(gen.h2kb(self.cfg['fin']))) self.lbltam.set_text(msg) msg = "Nuevo Tamaño de la Partición: {0}".format(gen.hum(gen.h2kb(self.cfg['nuevo_fin']))) self.lblnuevo.set_text(msg) #Nombre completo msg = "Nombre completo del usuario: {0}".format(self.cfg['nombre']) self.lblnombre.set_text(msg) #Nombre de usuario msg = "Nombre de usuario: {0}".format(self.cfg['usuario']) self.lblusuario.set_text(msg) #Máquina msg = "Nombre de la maquina: {0}".format(self.cfg['maquina']) self.lblmaquina.set_text(msg)
def expose(self, widget=None, event=None): # Establece ancho y alto self.ancho = gen.h2kb(self.get_size_request()[0]) self.alto = gen.h2kb(self.get_size_request()[1]) self.total = gen.h2kb(self.par.total) self.particiones = self.par.particiones w = 0 cr = self.window.cairo_create() cr.rectangle(0, 0, self.ancho, self.alto) cr.set_source_rgb(0.925490196, 0.91372549, 0.847058824) cr.fill() # print 'part, ini, fin, tam, fs, tipo, flags, usado, libre, total, num' for p in self.particiones: ini = gen.h2kb(p[1]) fin = gen.h2kb(p[2]) tipo = p[5] fs = p[4] if tipo == 'logical': y1 = 3 y2 = self.alto - 3 elif tipo == 'extended' or tipo == 'primary': y1 = 0 y2 = self.alto x1 = ((ini * self.ancho) / self.total) + 1 x2 = ((fin * self.ancho) / self.total) - 2 if x2 - x1 > 1.5: self.draw_rounded(cr, (x1, y1, x2, y2), 5) cr.set_source(self.set_color(fs)) cr.fill()
def mostrar_info(self): #Tipo de Instalación msg = "Tipo de instalación: " if self.cfg['tipo'] == 'particion_1': msg = msg + "Realizar la instalación en una sola partición" elif self.cfg['tipo'] == 'particion_2': msg = msg + "Separar la partición /home" elif self.cfg['tipo'] == 'particion_3': msg = msg + "Separar las particiones /home, /usr y /boot" elif self.cfg['tipo'] == 'particion_3': msg = msg + "Particionado manual" self.lbltipo.set_text(msg) #Método if self.cfg['metodo'] == 'todo': msg = "Dispositivo a usar: {0}".format(self.cfg['disco']) self.lblmetodo.set_text(msg) elif self.cfg['metodo'] == 'vacio': pass else: #msg = "partición a usar: {0}".format(self.cfg['particion']) #self.lblmetodo.set_text(msg) msg = "Tamaño Anterior de la Partición: {0}".format( gen.hum(gen.h2kb(self.cfg['fin']))) self.lbltam.set_text(msg) msg = "Nuevo Tamaño de la Partición: {0}".format( gen.hum(gen.h2kb(self.cfg['nuevo_fin']))) self.lblnuevo.set_text(msg) #Nombre completo msg = "Nombre completo del usuario: {0}".format(self.cfg['nombre']) self.lblnombre.set_text(msg) #Nombre de usuario msg = "Nombre de usuario: {0}".format(self.cfg['usuario']) self.lblusuario.set_text(msg) #Máquina msg = "Nombre de la maquina: {0}".format(self.cfg['maquina']) self.lblmaquina.set_text(msg)
def __init__(self, cfg): gtk.Fixed.__init__(self) self.cfg = cfg #print self.cfg altura = 260 inc = 20 msg = "Distribución del Teclado: {0}".format(self.cfg['teclado']) self.lbldist = gtk.Label(msg) self.lbldist.set_size_request(590, 30) self.put(self.lbldist, 0, altura) self.lbldist.set_alignment(0, 0) self.lbldist.show() altura = altura - inc msg = "Tipo de instalación: " if self.cfg['tipo'] == 'particion_1': msg = msg + "Realizar la instalación en una sola partición" elif self.cfg['tipo'] == 'particion_2': msg = msg + "Separar la partición /home" elif self.cfg['tipo'] == 'particion_3': msg = msg + "Separar las particiones /home, /usr y /boot" elif self.cfg['tipo'] == 'particion_3': msg = msg + "Particionado manual" self.lbltipo = gtk.Label(msg) self.lbltipo.set_size_request(590, 30) self.put(self.lbltipo, 0, altura) self.lbltipo.set_alignment(0, 0) self.lbltipo.show() altura = altura - inc if self.cfg['metodo'] == 'todo': msg = "Dispositivo a usar: {0}".format(self.cfg['disco']) self.lblmetodo = gtk.Label(msg) self.lblmetodo.set_size_request(590, 30) self.put(self.lblmetodo, 0, altura) self.lblmetodo.set_alignment(0, 0) self.lblmetodo.show() altura = altura - inc elif self.cfg['metodo'] == 'vacio': pass else: msg = "partición a usar: {0}".format(self.cfg['particion']) self.lblparticion = gtk.Label(msg) self.lblparticion.set_size_request(590, 30) self.put(self.lblparticion, 0, altura) self.lblparticion.set_alignment(0, 0) self.lblparticion.show() altura = altura - inc msg = "Tamaño Anterior de la Partición: {0}".format( gen.hum(gen.h2kb(self.cfg['fin']))) self.lbltam = gtk.Label(msg) self.lbltam.set_size_request(590, 30) self.put(self.lbltam, 0, altura) self.lbltam.set_alignment(0, 0) self.lbltam.show() altura = altura - inc msg = "Nuevo Tamaño de la Partición: {0}".format( gen.hum(gen.h2kb(self.cfg['nuevo_fin']))) self.lblnuevo = gtk.Label(msg) self.lblnuevo.set_size_request(590, 30) self.put(self.lblnuevo, 0, altura) self.lblnuevo.set_alignment(0, 0) self.lblnuevo.show() altura = altura - inc msg = "Nombre completo del usuario: {0}".format(self.cfg['nombre']) self.lblnombre = gtk.Label(msg) self.lblnombre.set_size_request(590, 30) self.put(self.lblnombre, 0, altura) self.lblnombre.set_alignment(0, 0) self.lblnombre.show() altura = altura - inc msg = "Nombre de usuario: {0}".format(self.cfg['usuario']) self.lblusuario = gtk.Label(msg) self.lblusuario.set_size_request(590, 30) self.put(self.lblusuario, 0, altura) self.lblusuario.set_alignment(0, 0) self.lblusuario.show() altura = altura - inc msg = "Nombre de la maquina: {0}".format(self.cfg['maquina']) self.lblmaquina = gtk.Label(msg) self.lblmaquina.set_size_request(590, 30) self.put(self.lblmaquina, 0, altura) self.lblmaquina.set_alignment(0, 0) self.lblmaquina.show() altura = altura - inc self.linea = gtk.HSeparator() self.linea.set_size_request(590, 10) self.put(self.linea, 0, altura) self.linea.show() altura = altura - inc msg = 'Confirme que todos los datos son correctos, al hacer click en ' msg = msg + 'siguiente comenzará la\ninstalación y ya no podrá dar ' msg = msg + 'marcha atrás.' self.lblmsg = gtk.Label(msg) self.lblmsg.set_size_request(590, (260 - altura)) self.put(self.lblmsg, 0, 0) #self.lbl1.set_alignment(0, 0) self.lblmsg.show()
def __init__(self, cfg): gtk.Fixed.__init__(self) self.cfg = cfg #print self.cfg altura = 260 inc = 20 msg = "Distribución del Teclado: {0}".format(self.cfg['teclado']) self.lbldist = gtk.Label(msg) self.lbldist.set_size_request(590, 30) self.put(self.lbldist, 0, altura) self.lbldist.set_alignment(0, 0) self.lbldist.show() altura = altura - inc msg = "Tipo de instalación: " if self.cfg['tipo'] == 'particion_1': msg = msg + "Realizar la instalación en una sola partición" elif self.cfg['tipo'] == 'particion_2': msg = msg + "Separar la partición /home" elif self.cfg['tipo'] == 'particion_3': msg = msg + "Separar las particiones /home, /usr y /boot" elif self.cfg['tipo'] == 'particion_3': msg = msg + "Particionado manual" self.lbltipo = gtk.Label(msg) self.lbltipo.set_size_request(590, 30) self.put(self.lbltipo, 0, altura) self.lbltipo.set_alignment(0, 0) self.lbltipo.show() altura = altura - inc if self.cfg['metodo'] == 'todo': msg = "Dispositivo a usar: {0}".format(self.cfg['disco']) self.lblmetodo = gtk.Label(msg) self.lblmetodo.set_size_request(590, 30) self.put(self.lblmetodo, 0, altura) self.lblmetodo.set_alignment(0, 0) self.lblmetodo.show() altura = altura - inc elif self.cfg['metodo'] == 'vacio': pass else: msg = "partición a usar: {0}".format(self.cfg['particion']) self.lblparticion = gtk.Label(msg) self.lblparticion.set_size_request(590, 30) self.put(self.lblparticion, 0, altura) self.lblparticion.set_alignment(0, 0) self.lblparticion.show() altura = altura - inc msg = "Tamaño Anterior de la Partición: {0}".format(gen.hum(gen.h2kb(self.cfg['fin']))) self.lbltam = gtk.Label(msg) self.lbltam.set_size_request(590, 30) self.put(self.lbltam, 0, altura) self.lbltam.set_alignment(0, 0) self.lbltam.show() altura = altura - inc msg = "Nuevo Tamaño de la Partición: {0}".format(gen.hum(gen.h2kb(self.cfg['nuevo_fin']))) self.lblnuevo = gtk.Label(msg) self.lblnuevo.set_size_request(590, 30) self.put(self.lblnuevo, 0, altura) self.lblnuevo.set_alignment(0, 0) self.lblnuevo.show() altura = altura - inc msg = "Nombre completo del usuario: {0}".format(self.cfg['nombre']) self.lblnombre = gtk.Label(msg) self.lblnombre.set_size_request(590, 30) self.put(self.lblnombre, 0, altura) self.lblnombre.set_alignment(0, 0) self.lblnombre.show() altura = altura - inc msg = "Nombre de usuario: {0}".format(self.cfg['usuario']) self.lblusuario = gtk.Label(msg) self.lblusuario.set_size_request(590, 30) self.put(self.lblusuario, 0, altura) self.lblusuario.set_alignment(0, 0) self.lblusuario.show() altura = altura - inc msg = "Nombre de la maquina: {0}".format(self.cfg['maquina']) self.lblmaquina = gtk.Label(msg) self.lblmaquina.set_size_request(590, 30) self.put(self.lblmaquina, 0, altura) self.lblmaquina.set_alignment(0, 0) self.lblmaquina.show() altura = altura - inc self.linea = gtk.HSeparator() self.linea.set_size_request(590, 10); self.put(self.linea, 0, altura) self.linea.show() altura = altura - inc msg = 'Confirme que todos los datos son correctos, al hacer click en ' msg = msg + 'siguiente comenzará la\ninstalación y ya no podrá dar ' msg = msg + 'marcha atrás.' self.lblmsg = gtk.Label(msg) self.lblmsg.set_size_request(590, (260 - altura)) self.put(self.lblmsg, 0, 0) #self.lbl1.set_alignment(0, 0) self.lblmsg.show()
class Main(gtk.Fixed): disco = '' total = '' metodo = '' discos = [] particiones = [] libres = [] metodos = {} cfg = {} minimo = gen.h2kb('1GB') lbl_info = gtk.Label('') cmb_discos = gtk.combo_box_new_text() cmb_metodo = gtk.combo_box_new_text() barra_part = gtk.DrawingArea() part = clases.particiones.Main() def __init__(self, parent): gtk.Fixed.__init__(self) self.par = parent self.Iniciar() def Iniciar(self): # Listar Discos self.discos = self.part.lista_discos() print 'Se han encontrado los siguientes discos: {0}'.format( self.discos) self.lbl1 = gtk.Label( 'Seleccione el disco donde desea instalar Canaima:') self.lbl1.set_size_request(690, 20) self.lbl1.set_alignment(0, 0) self.put(self.lbl1, 0, 0) for d in self.discos: self.cmb_discos.append_text(d) self.cmb_discos.set_active(0) self.cmb_discos.set_size_request(690, 30) self.put(self.cmb_discos, 0, 25) self.cmb_discos.connect('changed', self.seleccionar_disco) self.barra_part = barra.Main(self) self.barra_part.set_size_request(690, 100) self.put(self.barra_part, 0, 60) self.lbl2 = gtk.Label('Seleccione el método de instalación:') self.lbl2.set_size_request(690, 20) self.lbl2.set_alignment(0, 0) self.put(self.lbl2, 0, 165) self.cmb_metodo.set_size_request(690, 30) self.put(self.cmb_metodo, 0, 190) self.cmb_metodo.connect('changed', self.establecer_metodo) self.lbl4 = gtk.Label() self.lbl4.set_size_request(690, 90) self.lbl4.set_alignment(0, 0) self.lbl4.set_line_wrap(True) self.put(self.lbl4, 0, 225) self.show_all() self.seleccionar_disco() def seleccionar_disco(self, widget=None): self.disco = self.cmb_discos.get_active_text() print '{0} seleccionado'.format(self.disco) self.particiones = self.part.lista_particiones(self.disco) if len(self.particiones) == 0: MessageBox(self, self.par, self.disco) else: self.total = self.particiones[0][9] try: self.barra_part.expose() except: pass self.lista_metodos() self.establecer_metodo() self.barra_part.show() self.cmb_metodo.show() self.lbl4.show() def lista_metodos(self): ''' Crea una lista de los metodos de instalación disponibles para la partición ''' i = 0 self.metodos = {} self.cmb_metodo.get_model().clear() total = self.total minimo = self.minimo tini = self.particiones[0][1] tfin = self.particiones[0][2] for t in self.particiones: ini = t[1] fin = t[2] if tini > ini: tini = ini if tfin < fin: tfin = fin if t[5] == 'primary' and t[4] != 'free': i += 1 if total > minimo: self.metodos[ 'MANUAL'] = 'Instalar editando particiones manualmente' if i < 4: for p in self.particiones: tam = p[3] libre = p[8] ini = p[1] fin = p[2] part = p[0] fs = p[5] if fs != 'free' and libre >= minimo: msg = 'Instalar redimensionando {0} para liberar espacio ({1} libres)' met = 'REDIM:{0}:{1}:{2}'.format(part, ini, fin) self.metodos[met] = msg.format(part, gen.hum(libre)) if fs == 'free' and tam >= minimo: msg = 'Instalar usando espacio libre disponible ({0})' met = 'LIBRE:{0}:{1}:{2}'.format(part, ini, fin) self.metodos[met] = msg.format(gen.hum(tam)) met = 'TODO:{0}:{1}:{2}'.format(self.disco, tini, tfin) msg = 'Instalar usando todo el disco ({0})' self.metodos[met] = msg.format(gen.hum(total)) else: self.metodos['NONE'] = 'El tamaño del disco no es suficiente' for l1, l2 in self.metodos.items(): self.cmb_metodo.append_text(l2) self.cmb_metodo.set_active(0) def establecer_metodo(self, widget=None): m = self.cmb_metodo.get_model() a = self.cmb_metodo.get_active() if a < 0: return None self.metodo = [k for k, v in self.metodos.iteritems() if v == m[a][0]][0] if self.metodo.split(':')[0] == 'TODO': msg = 'Si escoge esta opción tenga en cuenta que se borrarán todos \ los datos en el disco que ha seleccionado, Este borrado no se hará hasta que \ confirme que realmente quiere hacer los cambios.' self.ini = self.metodo.split(':')[2] self.fin = self.metodo.split(':')[3] elif self.metodo.split(':')[0] == 'LIBRE': msg = 'Si escoge esta opción se instalará el sistema en la \ partición sin usar que mide {0}'.format(gen.hum(2)) self.ini = self.metodo.split(':')[2] self.fin = self.metodo.split(':')[3] elif self.metodo.split(':')[0] == 'REDIM': msg = 'Si escoge esta opción se redimensionará la partición {0} \ para realizar la instalación.'.format(self.metodo) elif self.metodo == 'MANUAL': msg = 'Si escoge esta opción se instalará el sistema en la \ partición sin usar que mide {0}'.format(gen.hum(2)) elif self.metodo == 'NONE': msg = 'Si escoge esta opción se instalará el sistema en la \ partición sin usar que mide {0}'.format(gen.hum(2)) else: pass self.lbl4.set_text(msg)