Exemplo n.º 1
0
class InterfazQt3(QApplication):
    """Clase principal de la interfaz de Qt3"""
    def __init__(self, interfazconfig, portero, idu, idf, interfazproyectos, \
            interfazoperaciones, gestorpaquetes, options, esnuevo):
        QApplication.__init__(self, [])
        self.__options = options
        self.__nuevo = esnuevo
        gestortemas = temas.GestorTemas()
        gestorsalida = gestores.GestorSalida()
        LOG.info('Cargado modulo de temas')
        self.__gestorconfig = interfazconfig
        self.__gestorproyectos = interfazproyectos
        self.__ioperaciones = interfazoperaciones
        self.vprincipal = VPrincipal(self, self.__gestorconfig, portero, \
                idu, self.__gestorproyectos, gestortemas, interfazoperaciones)
        self.vsalida = VSalida(self, gestorsalida, gestortemas)
        self.dcrevar = DCrevar(self.vprincipal, idu, interfazconfig, gestorpaquetes)
        LOG.info('Cargado dialogo de creación de variables')
        self.__dsplash = DSplash(self.vprincipal, gestortemas, self.__gestorconfig, self.vsalida)
        self.doperaciones = DOperaciones(self.vprincipal, idu, interfazoperaciones, self.vsalida)
        self.dimportartexto = DImportarTexto(self.vprincipal, idf)
        self.vprincipal.conexiones()

    def loop(self):
        """ 
        Procedimiento Bucle principal. 
        Lanza la ventana splash despues de la principal para que obtenga el foco
        Despues espera nuevos eventos por parte del usuario
        """
        self.vprincipal.show()
        if self.__options.vsplash == None: 
            if (self.__gestorconfig.configuracion["vsplash"] and not self.__gestorproyectos.fichero):
                self.__dsplash.show()
        elif self.__options.vsplash:
            self.__dsplash.show()
        if self.__nuevo:
            #Es la primera vez que se ejecuta el programa
            QMessageBox.information(self.vprincipal, 'Bienvenido', 'Parece que es la primera vez que ejecutas Driza')
        if self.__ioperaciones.listamodulosdefectuosos:
            ristra = u""
            for modulo in self.__ioperaciones.listamodulosdefectuosos:
                ristra += unicode(modulo) + "\n"
            mensaje = u"Las siguientes operaciones no han podido ser cargadas:\n" + ristra
            QMessageBox.information(self.vprincipal, "Error en la carga de operaciones", mensaje)
        logging.info('Lanzando Bucle Principal')
        self.exec_loop() 
        return