示例#1
0
 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)
示例#2
0
    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()
示例#3
0
 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)
示例#4
0
    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()
示例#5
0
    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()
示例#6
0
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)