Example #1
0
    def __init__(self, parent, gestorsalida, gestortemas):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_VentanaSalida()
        self.ui.setupUi(self)
        # VARIABLES PUBLICAS
        self.__parent = parent
        # VARIABLES PRIVADAS
        self.__gestortemas = gestortemas
        self.__gestorsalida = gestorsalida
        self.__contenido = []

        self.__inittoolbar()
        self.__conexiones()
Example #2
0
class VSalida(QtGui.QMainWindow):
    """Ventana que muestra los resultados de las operaciones solicitadas. 
    Permite al usuario exportar o guardar los resultados ya obtenidos"""

    def __init__(self, parent, gestorsalida, gestortemas):
        QtGui.QMainWindow.__init__(self)
        self.ui = Ui_VentanaSalida()
        self.ui.setupUi(self)
        # VARIABLES PUBLICAS
        self.__parent = parent
        # VARIABLES PRIVADAS
        self.__gestortemas = gestortemas
        self.__gestorsalida = gestorsalida
        self.__contenido = []

        self.__inittoolbar()
        self.__conexiones()

    # FUNCIONES PUBLICAS

    def ana_res(self, objeto):
        """Añade un resultado al dialogo, para ser mostrado"""
        self.__contenido.append(objeto)

    def __myUpdate(self):
        """Actualiza el contenido de la ventana"""
        cadenasalida = ""
        i = 1
        for resultado in self.__contenido:
            cadenasalida += "<a name=" + str(i) + "></a>"
            cadenasalida += resultado.html().encode("iso-8859-1", "replace")
            i += 1
        self.ui.textBrowser.setText(cadenasalida)
        self.ui.textBrowser.scrollToAnchor(str(len(self.__contenido)))
        self.__actualizar_lista()

    def closeEvent(self, event):
        """Redefinicion del closeEvent de qt"""
        QWidget.closeEvent(self, event)
        if not self.__parent.vprincipal.isVisible():
            qApp.exit(0)
        else:
            self.hide()

    def showEvent(self, ev):
        """Redefinicion del método show de VentanaSalida, 
        muestra todos los resultados almacenados"""
        self.__myUpdate()

    # FUNCIONES PRIVADAS

    def __conexiones(self):
        """Bloque de conexiones"""
        from PyQt4.QtCore import SIGNAL

        self.connect(self.ui.actionAbrir, SIGNAL("triggered()"), self.__dabrirfichero)
        self.connect(self.ui.actionGuardar, SIGNAL("triggered()"), self.__dguardarfichero)
        self.connect(self.ui.actionExportar, SIGNAL("triggered()"), self.__dexportar)
        self.connect(self.ui.actionSalir, SIGNAL("triggered()"), self.hide)
        self.connect(self.__boton1, SIGNAL("clicked()"), self.__dabrirfichero)
        self.connect(self.__boton2, SIGNAL("clicked()"), self.__dguardarfichero)
        self.connect(self.__boton3, SIGNAL("clicked()"), self.__dexportar)
        # self.connect(self.__boton4,SIGNAL("clicked()"),self.__parent.vprincipal.show)
        # self.connect(self.ui.pushButton1,SIGNAL("clicked()"),self.__borrar_elemento)

    def __inittoolbar(self):
        """Inicializa la toolbar"""
        self.__boton1 = QToolButton(self.ui.toolBar)
        # TODO Pendiente Qt4
        # self.boton1.setTextLabel("Abrir fichero")
        # iconos=QIconSet()
        # iconos.setIconSize(QIconSet.Small,QSize(100,100))
        # iconos.setPixmap(self.__gestortemas.iconoabrir(),QIconSet.Small)
        # self.boton1.setOn(True)
        # self.boton1.setIconSet(iconos)
        self.__boton2 = QToolButton(self.ui.toolBar)
        # self.boton2.setTextLabel("Guardar en fichero")
        # iconos=QIconSet()
        # iconos.setIconSize(QIconSet.Small,QSize(100,100))
        # iconos.setPixmap(self.__gestortemas.iconoguardar(),QIconSet.Small)
        # self.boton2.setOn(True)
        # self.boton2.setIconSet(iconos)
        self.__boton3 = QToolButton(self.ui.toolBar)
        # self.boton3.setTextLabel("Exportar a html")
        # iconos=QIconSet()
        # iconos.setIconSize(QIconSet.Small,QSize(100,100))
        # iconos.setPixmap(self.__gestortemas.iconoexportar(),QIconSet.Small)
        # self.boton3.setOn(True)
        # self.boton3.setIconSet(iconos)
        self.__boton4 = QToolButton(self.ui.toolBar)

    def __dabrirfichero(self):
        """Pregunta al usuario que fichero cargar"""
        filterlist = ""
        for fmt in ["dro"]:  # Candidata al fichero de listas
            filterlist = filterlist + "%s files (*.%s);;" % (fmt, string.lower(fmt))
        nombrefichero = QFileDialog.getOpenFileName(QString.null, filterlist, self, None, "Dialogo abrir fichero", "")
        filename = str(nombrefichero)
        if filename:
            try:
                self.__contenido = self.__gestorsalida.cargar(filename)
            except AttributeError:
                QErrorMessage(self, "Error").message(u"Error en la carga de fichero, Probablemente versión anterior")
            else:
                self.__myUpdate()

    def __dguardarfichero(self):
        """Pregunta al usuario en que fichero guardar"""
        filterlist = ""
        for fmt in ["dro"]:  # Candidata al fichero de listas
            filterlist = filterlist + "%s files (*.%s);;" % (fmt, string.lower(fmt))
        nombrefichero = QFileDialog.getSaveFileName(QString.null, filterlist, self)
        filename = str(nombrefichero)
        if filename:
            from Driza.excepciones import FicheroExisteException, FicheroTipoDesconocidoException
            import re

            extension = re.compile(".*\..*")
            if not extension.match(filename):
                filename += ".dro"
            try:
                self.__gestorsalida.guardar(self.__contenido, filename)
            except FicheroExisteException, fichero:
                codigoretorno = QMessageBox.information(
                    self,
                    "Atencion:",
                    "El fichero" + fichero.fichero + " ya existe",
                    "Sobreescribir",
                    "Otro nombre",
                    "Cancelar",
                    0,
                    1,
                )
                if codigoretorno == 0:
                    self.__gestorsalida.guardar(self.__contenido, filename, True)
                elif codigoretorno == 1:
                    self.__dguardarfichero()
            except FicheroTipoDesconocidoException:
                QMessageBox.warning(
                    self, u"Atención", u"La extensión del fichero es incorrecta.\nPruebe con otra extensión"
                )