示例#1
0
 def cambios(self):
     if hasattr(self, "form"):
         li = self.form.get()
         n = 1 if self.siNombre else 0
         for flecha in self.liEjemplos:
             regFlecha = flecha.bloqueDatos
             if self.siNombre:
                 regFlecha.nombre = li[0]
             regFlecha.forma = li[n]
             regFlecha.tipo = li[n + 1]
             regFlecha.color = li[n + 2]
             regFlecha.colorinterior = li[n + 3]
             # regFlecha.colorinterior2 = li[4]
             regFlecha.opacidad = (100.0 - float(li[n + 4])) / 100.0
             regFlecha.redondeos = li[n + 5]
             regFlecha.grosor = li[n + 6]
             regFlecha.altocabeza = li[n + 7]
             regFlecha.ancho = li[n + 8]
             regFlecha.vuelo = li[n + 9]
             regFlecha.descuelgue = li[n + 10]
             regFlecha.destino = li[n + 11]
             regFlecha.posicion.orden = li[n + 12]
             flecha.posicion2xy()  # posible cambio en destino
             flecha.setOpacity(regFlecha.opacidad)
             flecha.setZValue(regFlecha.posicion.orden)
         self.tablero.escena.update()
         QTUtil.refreshGUI()
示例#2
0
    def micRecord(self):
        self.ponToolBar(( self.ks_cancelmic, None, self.ks_stopmic ))
        self.siGrabando = True
        self.siCancelado = False

        self.mesa.ponCentesimas(0)

        self.taller.micInicio()

        iniTime = time.clock()

        while self.siGrabando:
            self.taller.micGraba()
            QTUtil.refreshGUI()
            t = time.clock() - iniTime
            self.mesa.ponCentesimas(t * 100)
            if t > self.maxTime:
                break

        self.siGrabando = False
        self.taller.micFinal()
        if self.siCancelado:
            self.taller.limpiar()
            self.mesa.ponCentesimas(0)
        else:
            self.mesa.ponCentesimas(self.taller.centesimas)

        self.ponBaseTB()
示例#3
0
 def ponContinuar(self):
     self.btCancelarSeguir.ponTexto(_("Continue"))
     self.btCancelarSeguir.conectar(self.continuar)
     self.btCancelarSeguir.ponFuente(self.fontB)
     self.btCancelarSeguir.ponIcono(Iconos.Aceptar())
     self.btCancelarSeguir.setDisabled(False)
     QTUtil.refreshGUI()
示例#4
0
    def ponLayout(self, siBlancasAbajo):
        layout = self.layout()
        if layout:
            while True:
                item = layout.takeAt(0)
                if item:
                    del item
                else:
                    break
        else:
            layout = Colocacion.V().margen(0)
            self.setLayout(layout)

        dlayout = {}
        for color in (True, False):
            ly = dlayout[color] = Colocacion.V().margen(0)
            for pieza, numero in self.li:
                if color == False:
                    pieza = pieza.lower()
                for i in range(numero):
                    ly.control(self.dic[pieza][i])
        ly0, ly1 = dlayout[siBlancasAbajo], dlayout[not siBlancasAbajo]

        layout.otro(ly0).relleno().otro(ly1)
        QTUtil.refreshGUI()
示例#5
0
    def siguiente(self):
        resp = self.sts.siguientePosicion(self.work)
        if resp:
            self.ngroup, self.nfen, self.elem = resp
            if not self.hideBoard:
                cp = ControlPosicion.ControlPosicion()
                cp.leeFen(self.elem.fen)
                self.tablero.ponPosicion(cp)
                self.xengine.ponGuiDispatch(self.dispatch)
                xpt, xa1h8 = self.elem.bestA1H8()
                self.tablero.quitaFlechas()
                self.tablero.creaFlechaTmp(xa1h8[:2], xa1h8[2:], False)
            if not self.playing:
                return
            t0 = time.time()
            mrm = self.xengine.analiza(self.elem.fen)
            t1 = time.time()-t0
            if mrm:
                rm = mrm.mejorMov()
                if rm:
                    mov = rm.movimiento()
                    if mov:
                        if not self.hideBoard:
                            self.tablero.creaFlechaTmp(rm.desde, rm.hasta, True)
                        self.sts.setResult(self.work, self.ngroup, self.nfen, mov, t1)
                        self.grid.refresh()

        else:
            self.tb.setAccionVisible(self.pause, False)
            self.tb.setAccionVisible(self.run, False)
            self.playing = False

        QTUtil.refreshGUI()
    def dispatchR(valor):
        if reg.form is None:
            if isinstance(valor, FormLayout.FormTabWidget):
                reg.form = valor
                reg.wtime = valor.getWidget(0, 1)
                reg.wdepth = valor.getWidget(0, 2)
                reg.wdt = valor.getWidget(0, 3)
            elif isinstance(valor, FormLayout.FormWidget):
                reg.form = valor
                reg.wtime = valor.getWidget(1)
                reg.wdepth = valor.getWidget(2)
                reg.wdt = valor.getWidget(3)
        else:
            sender = reg.form.sender()
            if not reg.wdt.isChecked():
                if sender == reg.wtime:
                    if reg.wtime.textoFloat() > 0:
                        reg.wdepth.setCurrentIndex(0)
                elif sender == reg.wdepth:
                    if reg.wdepth.currentIndex() > 0:
                        reg.wtime.ponFloat(0.0)
                elif sender == reg.wdt:
                    if reg.wtime.textoFloat() > 0:
                        reg.wdepth.setCurrentIndex(0)
                    elif reg.wdepth.currentIndex() > 0:
                        reg.wtime.ponFloat(0.0)

                QTUtil.refreshGUI()
示例#7
0
    def preparaColoresPGN(self):
        self.colorMateNegativo = QTUtil.qtColorRGB(0, 0, 0)
        self.colorMatePositivo = QTUtil.qtColorRGB(159, 0, 159)
        self.colorNegativo = QTUtil.qtColorRGB(255, 0, 0)
        self.colorPositivo = QTUtil.qtColorRGB(0, 0, 255)

        self.colorBlanco = QTUtil.qtColorRGB(255, 255, 255)
示例#8
0
 def mover(self):
     if self.siMover:
         self.guardarVideo()
     self.siMover = not self.siMover
     self.setWindowFlags(self.flags[self.siMover])
     self.show()
     QTUtil.refreshGUI()
示例#9
0
    def actualiza(self, leidos, erroneos, duplicados, importados):
        def pts(x): return "{:,}".format(x).replace(",", ".")

        self.lbLeidos.ponTexto(pts(leidos))
        self.lbErroneos.ponTexto(pts(erroneos))
        self.lbDuplicados.ponTexto(pts(duplicados))
        self.lbImportados.ponTexto(pts(importados))
        QTUtil.refreshGUI()
        return not self.siCancelado
示例#10
0
 def elegir(self):
     f = self.grid.recno()
     mt = self.liMotoresActivos[f]
     if mt.siJugable:
         self.resultado = mt
         self.guardarVideo()
         self.accept()
     else:
         QTUtil.beep()
示例#11
0
    def cambiadoRM(self, fila):
        self.um.ponPosRMactual(fila)
        self.lbPuntuacion.ponTexto(self.um.puntuacionActual())

        self.lbPGN.ponTexto(self.um.pgnActual())

        self.ponTablero()
        self.owner.adjustSize()
        QTUtil.refreshGUI()
示例#12
0
    def playBeep(self):
        if self.replayBeep is None:
            db = Util.DicBLOB(VarGen.configuracion.ficheroSounds, "general")
            keys = db.keys()
            self.replayBeep = "MC" in keys

        if self.replayBeep:
            self.playClave("MC", False)
        else:
            QTUtil.beep()
示例#13
0
    def __init__(self, gestor, xmotor, nombreOP, posicion, mrm, rmOP, rmUsu, analisis):
        self.siCompetitivo = gestor.siCompetitivo
        self.nombreOP = nombreOP
        self.posicion = posicion
        self.rmOP = rmOP
        self.rmUsu = rmUsu
        self.mrm = mrm
        self.analisis = analisis
        self.xmotor = xmotor
        self.gestor = gestor

        self.listaRM, self.posOP = self.hazListaRM()
        self.posicion = posicion

        titulo = _("Analysis")
        icono = Iconos.Analizar()
        extparam = "jzgm"
        QTVarios.WDialogo.__init__(self, gestor.pantalla, titulo, icono, extparam)

        self.colorNegativo = QTUtil.qtColorRGB(255, 0, 0)
        self.colorImpares = QTUtil.qtColorRGB(231, 244, 254)

        self.lbComentario = Controles.LB(self, "").ponTipoLetra(puntos=10).alinCentrado()

        confTablero = VarGen.configuracion.confTablero("JUICIO", 32)
        self.tablero = Tablero.Tablero(self, confTablero)
        self.tablero.crea()
        self.tablero.ponerPiezasAbajo(posicion.siBlancas)

        self.lbMotor = Controles.LB(self).alinCentrado()
        self.lbTiempo = Controles.LB(self).alinCentrado()

        liMas = ( (_("Close"), "close", Iconos.Delete() ), )
        lyBM, tbBM = QTVarios.lyBotonesMovimiento(self, "", siLibre=True, tamIcon=24, siMas=True, liMasAcciones=liMas)

        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("POSREAL", "#", 40, siCentrado=True)
        oColumnas.nueva("JUGADAS", "%d %s" % (len(self.listaRM), _("Moves")), 120, siCentrado=True)
        oColumnas.nueva("PLAYER", _("Player"), 120)

        self.grid = Grid.Grid(self, oColumnas, siSelecFilas=True)

        lyT = Colocacion.V().control(self.tablero).otro(lyBM).control(self.lbComentario)

        # Layout
        layout = Colocacion.H().otro(lyT).control(self.grid)

        self.setLayout(layout)

        self.grid.setFocus()

        self.grid.goto(self.posOP, 0)
        self.siMoviendoTiempo = False

        self.ponPuntos()
示例#14
0
    def recuperarVideo(self, siTam=True, anchoDefecto=None, altoDefecto=None):

        dic = self.recuperarDicVideo()
        wE, hE = QTUtil.tamEscritorio()
        if dic:
            wE, hE = QTUtil.tamEscritorio()
            x, y = dic["_POSICION_"].split(",")
            x = int(x)
            y = int(y)
            if not ( 0 <= x <= (wE - 50) ):
                x = 0
            if not ( 0 <= y <= (hE - 50) ):
                y = 0
            self.move(x, y)
            if siTam:
                if "_SIZE_" not in dic:
                    w, h = self.width(),self.height()
                    for k in dic:
                        if k.startswith( "_TAMA" ):
                            w, h = dic[k].split(",")
                else:
                    w, h = dic["_SIZE_"].split(",")
                w = int(w)
                h = int(h)
                if w > wE:
                    w = wE
                elif w < 20:
                    w = 20
                if h > (hE - 40):
                    h = hE - 40
                elif h < 20:
                    h = 20
                self.resize(w, h)
            for grid in self.liGrids:
                grid.recuperarVideo(dic)
                grid.ponAnchosColumnas()
            for sp, name in self.liSplitters:
                k = "SP_%s" % name
                if k in dic:
                    sp.setSizes(dic[k])
            return True
        else:
            if anchoDefecto or altoDefecto:
                if anchoDefecto is None:
                    anchoDefecto = self.width()
                if altoDefecto is None:
                    altoDefecto = self.height()
                if anchoDefecto > wE:
                    anchoDefecto = wE
                if altoDefecto > (hE - 40):
                    altoDefecto = hE - 40
                self.resize(anchoDefecto, altoDefecto)

        return False
示例#15
0
 def gridPonValor(self, grid, fila, columna, valor):
     campo = columna.clave
     valor = valor.strip()
     usuario = self.liUsuarios[fila]
     if campo == "USUARIO":
         if valor:
             usuario.nombre = valor
         else:
             QTUtil.beep()
     else:
         usuario.password = valor
示例#16
0
 def inicio(self, parent, mensaje, siCancelar=False, siMuestraYa=True, opacity=0.80,
            posicion="c", fixedSize=256, titCancelar=None, background=None, pmImagen=None):
     QTUtil.refreshGUI()
     if self.me:
         self.final()
     if background is None:
         background = "#79b600"
     self.me = MensEspera(parent, mensaje, siCancelar, siMuestraYa, opacity, posicion, fixedSize, titCancelar,
                          background, pmImagen)
     QTUtil.refreshGUI()
     return self
示例#17
0
 def portapapelesUltJug(self):
     if self.liData and self.siAnalizar():
         una = self.liData[-1]
         pgn = una["pgn"]
         li = pgn.split(" ")
         n = 2 if "..." in pgn else 1
         resp = " ".join(li[0:n])
         resp += self.comentario(una)
         if len(li) > n:
             resp += " ".join(li[n:])
         QTUtil.ponPortapapeles(resp)
示例#18
0
    def guardar(self):
        nrecs = self.dbf.reccount()
        if nrecs == 0:
            return
        elif nrecs > 1:
            menu = QTVarios.LCMenu(self)
            menu.opcion("all", _("All games"), Iconos.PuntoNaranja())
            menu.separador()
            menu.opcion("selected", _("Selected games"), Iconos.PuntoAzul())
            resp = menu.lanza()
            if resp is None:
                return
            elif resp == "all":
                liSelected = range(nrecs)
            else:
                liSelected = self.grid.recnosSeleccionados()
        else:
            liSelected = [0]

        extension = "pgn"
        resp = QTUtil2.salvaFichero(self, _("File to save"), self.gestor.configuracion.dirSalvados,
                                    _("File") + " %s (*.%s)" % (extension, extension), False)
        if resp:
            antSelect = self.dbf.select
            nueSelect = antSelect + ",PGN"
            self.dbf.ponSelect(nueSelect)
            self.dbf.leer()
            self.dbf.gotop()
            li = []
            for i in liSelected:
                self.dbf.goto(i)
                dic = self.dbf.dicValores()
                li.append(dic["PGN"])
            dato = "\n\n".join(li)
            try:
                modo = "w"
                if Util.existeFichero(resp):
                    modo = "a"
                    dato = "\n" * 2 + dato
                f = codecs.open(resp, modo, 'utf-8', 'ignore')
                f.write(dato.replace("\n", "\r\n"))
                f.close()
                QTUtil2.mensaje(self, _X(_("Saved to %1"), resp))
                direc = os.path.dirname(resp)
                if direc != self.gestor.configuracion.dirSalvados:
                    self.gestor.configuracion.dirSalvados = direc
                    self.gestor.configuracion.graba()
            except:
                QTUtil.ponPortapapeles(dato)
                QTUtil2.mensError(self, "%s : %s\n\n%s" % (
                    _("Unable to save"), resp, _("It is saved in the clipboard to paste it wherever you want.") ))

            self.dbf.ponSelect(antSelect)
示例#19
0
    def portapapelesUltJug(self):
        if self.liData and self.siAnalizar():
            una = self.liData[-1]
            pgn = una["pgn"]
            if "..." in pgn:
                pgn = pgn.lstrip("0123456789. ")
            li = pgn.split(" ")
            resp = self.pgn1 + " " + li[0]
            resp += self.comentario(una)
            if len(li) > 1:
                resp += " ".join(li[1:])

            QTUtil.ponPortapapeles(resp)
示例#20
0
    def beginListen(self):
        self.setEstado(self.ST_LISTENING)

        self.siSeguimos = True
        tallerSonido = Sonido.TallerSonido(None)
        tallerSonido.leeWAV(self.ficheroWav)
        tallerSonido.playInicio(0,tallerSonido.centesimas)
        siSeguir = True
        while self.siSeguimos and siSeguir:
            siSeguir, pos = tallerSonido.play()
            QTUtil.refreshGUI()
        tallerSonido.playFinal()
        self.endListen()
示例#21
0
 def portapapelesUltJug(self):
     if self.liData and self.siAnalizar():
         rm = self.liData[0]
         p = Partida.Partida(fen=self.fen)
         p.leerPV(rm.pv)
         pgn = p.pgnSP()
         li = pgn.split(" ")
         n = 2 if "..." in pgn else 1
         resp = " ".join(li[0:n])
         resp += " {%s D%s} " % (rm.abrTexto(), rm.depth)
         if len(li) > n:
             resp += " ".join(li[n:])
         QTUtil.ponPortapapeles(resp)
示例#22
0
 def paint(self, painter, option, widget):
     bl = self.bloqueCaja
     pen = QtGui.QPen()
     pen.setColor(QTUtil.qtColor(bl.color))
     pen.setWidth(bl.grosor)
     pen.setStyle(bl.tipoqt())
     painter.setPen(pen)
     if bl.colorRelleno != -1:
         painter.setBrush(QTUtil.qtBrush(bl.colorRelleno))
     if bl.redEsquina:
         painter.drawRoundedRect(self.rect, bl.redEsquina, bl.redEsquina)
     else:
         painter.drawRect(self.rect)
示例#23
0
    def muestra(self):
        self.show()

        v = self.owner
        s = self.size()
        if self.posicion == "c":
            x = v.x() + (v.width() - s.width()) / 2
            y = v.y() + (v.height() - s.height()) / 2
        elif self.posicion == "ad":
            x = v.x() + v.width() - s.width()
            y = v.y() + 4
        self.move(x, y)
        QTUtil.refreshGUI()
        return self
示例#24
0
 def cambios(self):
     if hasattr(self, "form"):
         li = self.form.get()
         for n, svg in enumerate(self.liEjemplos):
             regSVG = svg.bloqueDatos
             regSVG.nombre = li[0]
             regSVG.opacidad = (100.0 - float(li[1])) / 100.0
             regSVG.psize = li[2]
             regSVG.posicion.orden = li[3]
             svg.setOpacity(regSVG.opacidad)
             svg.setZValue(regSVG.posicion.orden)
             svg.update()
         self.tablero.escena.update()
         QTUtil.refreshGUI()
示例#25
0
 def cambios(self):
     if hasattr(self, "form"):
         li = self.form.get()
         for n, marker in enumerate(self.liEjemplos):
             regMarker = marker.bloqueDatos
             regMarker.nombre = li[0]
             regMarker.opacidad = (100.0 - float(li[1])) / 100.0
             regMarker.psize = li[2]
             regMarker.poscelda = li[3]
             regMarker.posicion.orden = li[4]
             marker.setOpacity(regMarker.opacidad)
             marker.setZValue(regMarker.posicion.orden)
             marker.update()
         self.tablero.escena.update()
         QTUtil.refreshGUI()
示例#26
0
    def paint(self, painter, option, widget):

        pen = QtGui.QPen()

        painter.setBrush(QtGui.QBrush(QtGui.QColor(self.bloqueDatos.colorFondo)))
        painter.drawRect(self.rect)

        nColor = self.bloqueDatos.colorTexto if self.bloqueDatos.colorTexto != -1 else 0
        if self.bloqueDatos.colorFondo != -1:
            painter.setBrush(QtGui.QBrush())
        pen.setColor(QTUtil.qtColor(nColor))
        painter.setPen(pen)
        painter.setFont(self.font)
        painter.drawText(self.rect, self.texto(), self.textOption)
        linea = self.bloqueDatos.linea
        if linea:
            r = self.rect
            x, y, w, h = r.x(), r.y(), r.width(), r.height()
            if linea == "a":
                y = y + h
                w = 1
                h = 50
            elif linea == "d":
                x = x + w
                y = y - 10
                w = 1
                h = 32
            elif linea == "i":
                y = y - 10
                w = 1
                h = 32
            rect = QtCore.QRectF(x, y, w, h)
            painter.drawRect(rect)
示例#27
0
 def recuperarVideo(self, dicVideo):
     if dicVideo:
         wE, hE = QTUtil.tamEscritorio()
         x, y = dicVideo["_POSICION_"].split(",")
         x = int(x)
         y = int(y)
         if not ( 0 <= x <= (wE - 50) ):
             x = 0
         if not ( 0 <= y <= (hE - 50) ):
             y = 0
         self.move(x, y)
         if "_SIZE_" not in dicVideo:
             w, h = self.width(),self.height()
             for k in dicVideo:
                 if k.startswith( "_TAMA" ):
                     w, h = dicVideo[k].split(",")
         else:
             w, h = dicVideo["_SIZE_"].split(",")
         w = int(w)
         h = int(h)
         if w > wE:
             w = wE
         elif w < 20:
             w = 20
         if h > hE:
             h = hE
         elif h < 20:
             h = 20
         self.resize(w, h)
示例#28
0
    def ponToolBar(self, liAcciones, separator=False):

        # liAcciones = list(liAcciones) # Martin debug
        # liAcciones.append( 999 )

        self.tb.clear()
        for k in liAcciones:
            self.dicTB[k].setVisible(True)
            self.dicTB[k].setEnabled(True)
            self.tb.addAction(self.dicTB[k])
            if separator:
                self.tb.addSeparator()

        self.tb.liAcciones = liAcciones
        self.tb.update()
        QTUtil.refreshGUI()
示例#29
0
    def movimientosPiezas(self, liMovs):
        """
        Hace los movimientos de piezas en el tablero
        """
        for movim in liMovs:
            if movim[0] == "b":
                self.w.tablero.borraPieza(movim[1])
            elif movim[0] == "m":
                self.w.tablero.muevePieza(movim[1], movim[2])
            elif movim[0] == "c":
                self.w.tablero.cambiaPieza(movim[1], movim[2])

        self.w.tablero.desactivaTodas()

        self.w.tablero.escena.update()
        self.w.update()
        QTUtil.xrefreshGUI()
示例#30
0
 def pulsado(self):
     ncolor = self.rut_actual()
     color = QTUtil.qtColor(ncolor)
     color = QtGui.QColorDialog.getColor(color, self.parent, _("Choose a color"))
     if color.isValid():
         self.rut_actual(color.rgba())
         self.rut_actualiza()
         self.ponColor()
示例#31
0
    def muestra_resultado(self):
        self.state = ST_ENDGAME
        self.disable_all()
        self.human_is_playing = False

        mensaje, beep, player_win = self.game.label_resultado_player(self.human_side)

        self.beepResultado(beep)
        QTUtil.refresh_gui()

        QTUtil2.message(self.main_window, mensaje)

        li_options = [TB_CLOSE, TB_CONFIG, TB_UTILITIES]
        if player_win:
            li_options.insert(1, TB_REINIT)
        self.main_window.pon_toolbar(li_options)
        self.remove_hints()

        self.game.set_tag("HintsUsed", self.engine.hints_current)
        self.autosave()
        if player_win:
            self.saveGame(True)
        else:
            self.cancelGame()
示例#32
0
    def play(self):
        self.mesa.activaEdicion(False)
        self.ponToolBar(( self.ks_stopplay, ))

        centDesde, centHasta = self.mesa.limites(False)
        self.taller.playInicio(centDesde, centHasta)

        self.siPlay = True

        while self.siPlay:
            siSeguir, centActual = self.taller.play()
            if siSeguir:
                self.mesa.ponCentesimasActual(centActual)
                QTUtil.refreshGUI()
            else:
                self.mesa.ponCentesimasActual(centDesde)
                QTUtil.refreshGUI()
                break

        self.siPlay = False

        self.taller.playFinal()

        self.ponBaseTB()
示例#33
0
 def start(
     self,
     parent,
     mensaje,
     siCancelar=False,
     siMuestraYa=True,
     opacity=0.90,
     physical_pos="c",
     fixedSize=None,
     titCancelar=None,
     background=None,
     pmImagen=None,
     puntos=11,
     conImagen=True,
 ):
     QTUtil.refresh_gui()
     if self.me:
         self.final()
     if background is None:
         background = "#D3E3EC"
     self.me = MensEspera(
         parent,
         mensaje,
         siCancelar,
         siMuestraYa,
         opacity,
         physical_pos,
         fixedSize,
         titCancelar,
         background,
         pmImagen,
         puntos,
         conImagen,
     )
     QTUtil.refresh_gui()
     return self
示例#34
0
    def __init__(self, procesador):
        super(WAbout, self).__init__(procesador.pantalla)

        self.setWindowTitle(_("About"))
        self.setWindowIcon(Iconos.Aplicacion())
        self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint)
        self.setMaximumWidth(QTUtil.anchoEscritorio())

        f = Controles.TipoLetra(puntos=10)  # 0, peso=75 )

        cabecera = '<span style="font-size:30pt; font-weight="700"; font-family:arial; color:#2D2B2B">%s</span><br>' % _(
            "Lucas Chess")
        cabecera += '<span style="font-size:15pt;">%s</span><br>' % _X(
            _("version %1"), procesador.version)
        cabecera += '<span style="font-size:10pt;color:2D2B2B">%s: %s</span>' % (
            _("Author"),
            '<a href="mailto:[email protected]">Lucas Monge</a>')
        cabecera += ' - <a style="font-size:10pt; color:2D2B2B" href="%s">%s</a>' % (
            procesador.web, procesador.web)
        cabecera += ' - <a style="font-size:10pt; color:2D2B2B" href="%s">Blog : Fresh news</a><br>' % (
            procesador.blog, )
        cabecera += '%s <a style="font-size:10pt; color:2D2B2B" href="http://www.gnu.org/copyleft/gpl.html"> GPL</a>' % _(
            "License")

        lbIco = Controles.LB(self).ponImagen(Iconos.pmAplicacion64())
        lbTitulo = Controles.LB(self, cabecera)
        btSeguir = Controles.PB(self, _("Continue"),
                                self.accept).ponPlano(False)

        # Tabs
        tab = Controles.Tab()
        tab.ponFuente(f)

        ib = InfoBase.ThanksTo()

        for n, (k, titulo) in enumerate(ib.dic.iteritems()):
            txt = ib.texto(k)
            lb = Controles.LB(self, txt)
            lb.ponFondoN("#F6F3EE")
            lb.ponFuente(f)
            tab.addTab(lb, titulo)

        lyV1 = Colocacion.H().control(lbIco).espacio(15).control(
            lbTitulo).relleno()
        layout = Colocacion.V().otro(lyV1).espacio(10).control(tab).control(
            btSeguir).margen(10)

        self.setLayout(layout)
示例#35
0
    def __init__(self, owner, themes: Themes.Themes, current_move: Move.Move):
        title = _("Select themes")
        extparam = "selelectthemes"

        self.owner = owner
        self.current_move = current_move

        self.st_current_themes = set(self.current_move.li_themes)

        icono = Iconos.Themes()
        QTVarios.WDialogo.__init__(self, owner, title, icono, extparam)

        self.themes = themes

        self.themes.check(self.st_current_themes)
        self.qt_custom = QTUtil.qtColor("#bf5b16")

        self.configuration = Code.configuration

        li_options = [
            (_("Save"), Iconos.GrabarFichero(), self.aceptar),
            None,
            (_("Cancel"), Iconos.Cancelar(), self.reject),
            None,
            (_("Clear all"), Iconos.Borrar(), self.clear_themes),
            None,
        ]
        tb = QTVarios.LCTB(self, li_options, icon_size=24)

        # Grid
        o_columns = Columnas.ListaColumnas()
        o_columns.nueva("SELECTED", "", 20, siChecked=True)
        o_columns.nueva("THEME", "", 280)

        self.o_columnas = o_columns
        self.grid = Grid.Grid(self, o_columns, siEditable=True, altoCabecera=3)
        font = Controles.TipoLetra(puntos=Code.configuration.x_pgn_fontpoints)
        self.grid.ponFuente(font)

        lb_right_click = Controles.LB(
            self, " * %s" % _("More options with right-click"))

        layout = Colocacion.V().control(tb).control(
            self.grid).control(lb_right_click).margen(3)
        self.setLayout(layout)

        self.restore_video(anchoDefecto=self.grid.anchoColumnas() + 48)
示例#36
0
    def __init__(self, escena, bloqueTexto, rutina=None):

        BloqueSC.__init__(self, escena, bloqueTexto.position)

        self.bloqueDatos = self.bloqueTexto = bloqueTexto

        self.font = Controles.TipoLetra(txt=str(bloqueTexto.tipoLetra))
        self.textOption = QtGui.QTextOption(QTUtil.qtAlineacion("c"))
        self.rutina = rutina
        self.minimo = bloqueTexto.min
        self.maximo = bloqueTexto.max
        self.inicialx = bloqueTexto.position.x
        self.rutina = bloqueTexto.rutina

        self.siFinal = self.maximo == self.inicialx

        self.centesimas = 0
示例#37
0
 def paste(self):
     texto = QTUtil.traePortapapeles()
     if texto:
         pgn = PGN.UnPGN()
         try:
             pgn.leeTexto(str(texto))
         except:
             pgn.siError = True
         if pgn.siError:
             QTUtil2.mensError(
                 self.pantalla,
                 _("The text from the clipboard does not contain a chess game in PGN format"
                   ))
             self.finPartida()
             return
         self.pgnPaste = texto
         self.mostrar(pgn, False)
示例#38
0
    def recuperarVideo(self):

        if Util.tamFichero(self.ficheroVideo) > 0:
            dic = Util.recuperaDIC(self.ficheroVideo)
            if dic:
                wE, hE = QTUtil.tamEscritorio()
                x, y = dic["_POSICION_"].split(",")
                x = int(x)
                y = int(y)
                if not (0 <= x <= (wE - 50)):
                    x = 0
                if not (0 <= y <= (hE - 50)):
                    y = 0
                self.move(x, y)
                if "_SIZE_" not in dic:
                    w, h = self.width(), self.height()
                    for k in dic:
                        if k.startswith("_TAMA"):
                            w, h = dic[k].split(",")
                else:
                    w, h = dic["_SIZE_"].split(",")
                w = int(w)
                h = int(h)
                if w > wE:
                    w = wE
                elif w < 20:
                    w = 20
                if h > hE:
                    h = hE
                elif h < 20:
                    h = 20
                self.resize(w, h)
                self.siShowTablero = dic.get("SHOW_TABLERO", self.siShowTablero)
                self.nArrows = dic.get("NARROWS", self.nArrows)
                self.siTop = dic.get("SITOP", self.siTop)

                if not self.siShowTablero:
                    if self.siWidgets:
                        self.tablero.hide()
示例#39
0
    def paint(self, painter, option, widget):

        pen = QtGui.QPen()

        if self.bloqueTexto.colorFondo != -1:
            painter.setBrush(QtGui.QBrush(QtGui.QColor(self.bloqueTexto.colorFondo)))

        nColor = self.bloqueTexto.colorTexto if self.bloqueTexto.colorTexto != -1 else 0
        if self.bloqueTexto.colorFondo != -1:
            painter.setBrush(QtGui.QBrush())
        pen.setColor(QTUtil.qtColor(nColor))
        painter.setPen(pen)
        painter.setFont(self.font)
        painter.drawText(self.rect, self.bloqueTexto.valor, self.textOption)

        if self.siRecuadro:
            pen = QtGui.QPen()
            pen.setColor(QtGui.QColor("blue"))
            pen.setWidth(1)
            pen.setStyle(QtCore.Qt.DashLine)
            painter.setPen(pen)
            painter.drawRect(self.rect)
示例#40
0
    def seguir(self):
        self.set_position()
        self.lb_result.set_text("")
        for wm in self.liwm_captures:
            wm.limpia()
        for wm in self.liwm_threats:
            wm.limpia()

        self.tb.setEnabled(False)

        # Mostramos los movimientos según depth
        depth = self.capture.current_depth
        if depth:
            txt_ant = ""
            for x in range(depth):
                if not self.configuration.x_captures_showall:
                    if x != depth - 1:
                        continue
                move = self.capture.game.move(self.capture.current_posmove + x)
                txt = move.pgn_translated()
                if txt == txt_ant:
                    self.board.pon_texto("", 1)
                    QTUtil.refresh_gui()
                    time.sleep(0.3)
                txt_ant = txt
                self.board.pon_texto(txt, 0.9)
                QTUtil.refresh_gui()
                dif = depth - x
                factor = 1.0 - dif * 0.1
                if factor < 0.7:
                    factor = 0.7
                time.sleep(2.6 * factor * factor)
                self.board.pon_texto("", 1)
                QTUtil.refresh_gui()

        # Ponemos el toolbar
        self.show_tb(self.check, self.terminar)

        # Activamos capturas
        self.gb_captures.setEnabled(True)
        self.gb_threats.setEnabled(True)

        # Marcamos el tiempo
        self.time_base = time.time()

        self.liwm_captures[0].activa()
示例#41
0
    def scanner(self):
        pos = QTUtil.escondeWindow(self.wparent)
        seguir = True
        if self.chb_scanner_ask.valor() and not QTUtil2.pregunta(
                None,
                _("Bring the window to scan to front"),
                label_yes=_("Accept"),
                label_no=_("Cancel"),
                si_top=True):
            seguir = False
        if seguir:
            fich_png = self.configuration.ficheroTemporal("png")
            if not self.is_scan_init:
                self.scanner_init()
                self.is_scan_init = True

            sc = Scanner.Scanner(self.configuration.carpetaScanners, fich_png)
            sc.exec_()

            self.vars_scanner.read()
            self.vars_scanner.tolerance = self.sb_scanner_tolerance.valor(
            )  # releemos la variable
            self.vars_scanner.tolerance_learns = min(
                self.sb_scanner_tolerance_learns.valor(),
                self.vars_scanner.tolerance)

            if os.path.isfile(fich_png) and Util.filesize(fich_png):
                self.scanner_read_png(fich_png)
                self.pixmap = QtGui.QPixmap(fich_png)
                tc = self.board.width_square * 8
                pm = self.pixmap.scaled(tc, tc)
                self.lb_scanner.ponImagen(pm)
                self.lb_scanner.show()
                self.gb_scanner.show()
                self.scanner_deduce()

        self.wparent.move(pos)
        self.setFocus()
示例#42
0
    def scanner(self):
        pos = QTUtil.escondeWindow(self.wparent)
        seguir = True
        if self.chb_scanner_ask.valor() and not QTUtil2.pregunta(
                None,
                _("Bring the window to scan to front"),
                etiSi=_("Accept"),
                etiNo=_("Cancel"),
                si_top=True):
            seguir = False
        if seguir:
            fich_png = self.configuracion.ficheroTemporal("png")
            if not self.is_scan_init:
                self.scanner_init()
                self.is_scan_init = True

            sc = Scanner.Scanner(self.configuracion.carpetaScanners, fich_png)
            sc.exec_()

            self.vars_scanner.read()
            self.vars_scanner.tolerance = self.sb_scanner_tolerance.valor(
            )  # releemos la variable

            if os.path.isfile(fich_png):
                if Util.tamFichero(fich_png):
                    self.scanner_read_png(fich_png)
                    self.pixmap = QtGui.QPixmap(fich_png)
                    tc = self.tablero.anchoCasilla * 8
                    pm = self.pixmap.scaled(tc, tc)
                    self.lb_scanner.ponImagen(pm)
                    self.lb_scanner.show()
                    self.gb_scanner.show()
                    self.scanner_deduce()

        self.wparent.move(pos)
        self.setFocus()
示例#43
0
def voyager_position(wowner, position, si_esconde: bool = True, wownerowner=None):
    pos_ownerowner = None
    pos = None
    if si_esconde:
        pos = QTUtil.escondeWindow(wowner)
        if wownerowner:
            pos_ownerowner = QTUtil.escondeWindow(wownerowner)
    game = Game.Game(ini_posicion=position)
    dlg = Voyager(wowner, False, game)
    resp = dlg.resultado if dlg.exec_() else None
    if si_esconde:
        if wownerowner:
            wownerowner.show()
            wownerowner.move(pos_ownerowner)
            QTUtil.refresh_gui()
            time.sleep(0.01)

        wowner.show()
        wowner.move(pos)
        QTUtil.refresh_gui()
        time.sleep(0.01)
    return resp
示例#44
0
 def ponColor(self):
     ncolor = self.rut_actual()
     self.setStyleSheet("QWidget { background: %s }" % QTUtil.qtColor(ncolor).name())
示例#45
0
def dameCategoria(wParent, configuracion, procesador):
    rival = configuracion.rival

    menu = QTVarios.LCMenu(wParent)

    menu.opcion(
        None,
        "%s: %d %s" % (_("Total score"), configuracion.puntuacion(), _("pts")),
        Iconos.NuevaPartida())
    menu.separador()
    menu.opcion(None,
                "%s: %s" % (_("Opponent"), rival.rotuloPuntos()),
                Iconos.Motor(),
                siDeshabilitado=False)
    menu.separador()

    # ---------- CATEGORIAS
    ant = 1
    for x in range(6):
        cat = rival.categorias.numero(x)
        txt = cat.nombre()
        nm = cat.nivelHecho

        nh = cat.hecho

        if nm > 0:
            txt += " %s %d" % (_("Level"), nm)
        if nh:
            if "B" in nh:
                txt += " +%s:%d" % (_("White"), nm + 1)
            if "N" in nh:
                txt += " +%s:%d" % (_("Black"), nm + 1)

                # if "B" not in nh:
                # txt += "  ...  %s:%d"%( _( "White" )[0],nm+1)
                # elif "N" not in nh:
                # txt += "  ...  %s:%d"%( _( "Black" )[0],nm+1)
                # else:
                # txt += "  ...  %s:%d"%( _( "White" )[0],nm+1)

        siDesHabilitado = (ant == 0)
        ant = nm
        menu.opcion(str(x), txt, cat.icono(), siDeshabilitado=siDesHabilitado)

    # ----------- RIVAL
    menu.separador()
    menuRival = menu.submenu(_("Change opponent"))

    puntuacion = configuracion.puntuacion()

    icoNo = Iconos.Motor_No()
    icoSi = Iconos.Motor_Si()
    icoActual = Iconos.Motor_Actual()
    grpNo = Iconos.Grupo_No()
    grpSi = Iconos.Grupo_Si()

    for grupo in configuracion.grupos.liGrupos:
        nombre = _X(_("%1 group"), grupo.nombre)
        if grupo.minPuntos > 0:
            nombre += " (+%d %s)" % (grupo.minPuntos, _("pts"))

        siDes = (grupo.minPuntos > puntuacion)
        if siDes:
            icoG = grpNo
            icoM = icoNo
        else:
            icoG = grpSi
            icoM = icoSi
        submenu = menuRival.submenu(nombre, icoG)

        for rv in grupo.liRivales:
            siActual = rv.clave == rival.clave
            ico = icoActual if siActual else icoM
            submenu.opcion("MT_" + rv.clave, rv.rotuloPuntos(), ico, siDes
                           or siActual)
        menuRival.separador()

    # ----------- RIVAL
    menu.separador()
    menu.opcion("ayuda", _("Help"), Iconos.Ayuda())

    cursor = QtGui.QCursor.pos()
    resp = menu.lanza()
    if resp is None:
        return None
    elif resp == "ayuda":
        titulo = _("Competition")
        ancho, alto = QTUtil.tamEscritorio()
        ancho = min(ancho, 700)
        txt = _(
            "<br><b>The aim is to obtain the highest possible score</b> :<ul><li>The current point score is displayed in the title bar.</li><li>To obtain points it is necessary to win on different levels in different categories.</li><li>To overcome a level it is necessary to win against the engine with white and with black.</li><li>The categories are ranked in the order of the following table:</li><ul><li><b>Beginner</b> : 5</li><li><b>Amateur</b> : 10</li><li><b>Master candidate</b> : 20</li><li><b>Master</b> : 40</li><li><b>Grandmaster candidate</b> : 80</li><li><b>Grandmaster</b> : 160</li></ul><li>The score for each game is calculated by multiplying the playing level with the score of the category.</li><li>The engines are divided into groups.</li><li>To be able to play with an opponent of a particular group a minimum point score is required. The required score is shown next to the group label.</li></ul>"
        )
        Info.info(wParent, _("Lucas Chess"), titulo, txt, ancho,
                  Iconos.pmAyudaGR())
        return None

    elif resp.startswith("MT_"):
        procesador.cambiaRival(resp[3:])
        QtGui.QCursor.setPos(cursor)
        procesador.competicion()
        return None
    else:
        categoria = rival.categorias.numero(int(resp))
        return categoria
    def __init__(self, procesador, winBookGuide, dbGames):
        QtGui.QWidget.__init__(self)

        self.winBookGuide = winBookGuide
        self.procesador = procesador
        self.data = [[], [], [], []]
        self.movesWhite = []
        self.movesBlack = []
        self.lastFilterMoves = {"white": "", "black": ""}
        self.configuracion = procesador.configuracion

        self.infoMove = None  # <-- setInfoMove

        self.ap = AperturasStd.ap

        self.gridOpeningWhite = self.gridOpeningBlack = self.gridMovesWhite = self.gridMovesBlack = 0

        # GridOpening
        ancho = 54
        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("opening", _("Opening"), 200)
        oColumnas.nueva("games", _("Games"), ancho, siDerecha=True)
        oColumnas.nueva("pgames", "% " + _("Games"), 70, siDerecha=True)
        oColumnas.nueva("win", _("Win"), ancho, siDerecha=True)
        oColumnas.nueva("draw", _("Draw"), ancho, siDerecha=True)
        oColumnas.nueva("lost", _("Loss"), ancho, siDerecha=True)
        oColumnas.nueva("pwin", "% " + _("Win"), ancho, siDerecha=True)
        oColumnas.nueva("pdraw", "% " + _("Draw"), ancho, siDerecha=True)
        oColumnas.nueva("plost", "% " + _("Loss"), ancho, siDerecha=True)
        oColumnas.nueva("pdrawwin", "%% %s" % _("W+D"), ancho, siDerecha=True)
        oColumnas.nueva("pdrawlost", "%% %s" % _("L+D"), ancho, siDerecha=True)

        self.gridOpeningWhite = Grid.Grid(self, oColumnas, siSelecFilas=True)
        self.gridOpeningBlack = Grid.Grid(self, oColumnas, siSelecFilas=True)

        # GridWhite/GridBlack
        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("games", _("Games"), ancho, siDerecha=True)
        oColumnas.nueva("win", _("Win"), ancho, siDerecha=True)
        oColumnas.nueva("draw", _("Draw"), ancho, siDerecha=True)
        oColumnas.nueva("lost", _("Loss"), ancho, siDerecha=True)
        oColumnas.nueva("pwin", "% " + _("Win"), ancho, siDerecha=True)
        oColumnas.nueva("pdraw", "% " + _("Draw"), ancho, siDerecha=True)
        oColumnas.nueva("plost", "% " + _("Loss"), ancho, siDerecha=True)

        ancho_col = 40
        siFigurinesPGN = self.configuracion.figurinesPGN
        for x in range(1, 50):
            num = (x - 1) * 2
            oColumnas.nueva(str(num),
                            "%d." % x,
                            ancho_col,
                            siCentrado=True,
                            edicion=Delegados.EtiquetaPOS(siFigurinesPGN,
                                                          siLineas=False))
            oColumnas.nueva(str(num + 1),
                            "...",
                            ancho_col,
                            siCentrado=True,
                            edicion=Delegados.EtiquetaPOS(siFigurinesPGN,
                                                          siLineas=False))

        self.gridMovesWhite = Grid.Grid(self, oColumnas, siSelecFilas=True)
        self.gridMovesBlack = Grid.Grid(self, oColumnas, siSelecFilas=True)

        wWhite = QtGui.QWidget(self)
        tbmovesw = ToolbarMoves("white", self.dispatchMoves)
        ly = Colocacion.V().control(tbmovesw).control(
            self.gridMovesWhite).margen(3)
        wWhite.setLayout(ly)

        wblack = QtGui.QWidget(self)
        tbmovesb = ToolbarMoves("black", self.dispatchMoves)
        ly = Colocacion.V().control(tbmovesb).control(
            self.gridMovesBlack).margen(3)
        wblack.setLayout(ly)

        tabs = Controles.Tab(self)
        tabs.nuevaTab(self.gridOpeningWhite, _("White openings"))
        tabs.nuevaTab(self.gridOpeningBlack, _("Black openings"))
        tabs.nuevaTab(wWhite, _("White moves"))
        tabs.nuevaTab(wblack, _("Black moves"))

        # ToolBar
        liAccionesWork = [
            (_("Close"), Iconos.MainMenu(), self.tw_terminar),
            None,
            ("", Iconos.Usuarios(), self.tw_changeplayer),
            None,
            (_("Rebuild"), Iconos.Reindexar(), self.tw_rebuild),
            None,
        ]

        self.tbWork = Controles.TBrutina(self,
                                         liAccionesWork,
                                         tamIcon=24,
                                         puntos=12)
        self.tbWork.setToolButtonStyle(QtCore.Qt.ToolButtonTextBesideIcon)

        lyTB = Colocacion.H().control(self.tbWork)
        layout = Colocacion.V().otro(lyTB).control(tabs).margen(1)

        self.setLayout(layout)
        self.qtColor = (QTUtil.qtColorRGB(221, 255, 221),
                        QTUtil.qtColorRGB(247, 247, 247),
                        QTUtil.qtColorRGB(255, 217, 217))

        self.setdbGames(dbGames)
        self.setPlayer(self.leeVariable("PLAYER", ""))
示例#47
0
    def __init__(self, owner, name, title, icono, folder, li_tam_blocks):

        self.tol = TurnOnLights.read_tol(name, title, folder, li_tam_blocks)
        self.reinit = False

        titulo = _("Turn on the lights") + ": " + title
        if self.tol.is_calculation_mode():
            tipo = _("Calculation mode")
            background = "#88AA3A"
        else:
            tipo = _("Memory mode")
            background = "#BDDBE8"

        extparam = "tol%s-%d" % (name, self.tol.work_level)

        QTVarios.WDialogo.__init__(self, owner, titulo, icono, extparam)

        self.colorTheme = QTUtil.qtColor("#F0F0F0")

        lb = Controles.LB(self, tipo)
        lb.ponFondoN(background).alinCentrado().ponTipoLetra(puntos=14)

        # Toolbar
        tb = Controles.TBrutina(self)
        tb.new(_("Close"), Iconos.MainMenu(), self.terminar)
        anterior, siguiente = self.tol.prev_next()
        if anterior:
            tb.new(_("Previous"), Iconos.Anterior(), self.goto_previous)
        if siguiente:
            tb.new(_("Next"), Iconos.Siguiente(), self.goto_next)
        tb.new(_("Config"), Iconos.Configurar(), self.config)
        tb.new(_("Information"), Iconos.Informacion(), self.colors)

        # Lista
        oColumnas = Columnas.ListaColumnas()
        work_level = self.tol.work_level + 1
        oColumnas.nueva("THEME",
                        _("Level %d/%d") % (work_level, self.tol.num_levels),
                        175)

        edicionIconos = Delegados.PmIconosColor()
        self.dicIconos = {}
        for k, pm in edicionIconos.dicpmIconos.iteritems():
            self.dicIconos[k] = QtGui.QIcon(pm)

        for x in range(self.tol.num_blocks):
            oColumnas.nueva("BLOCK%d" % x,
                            "%d" % (x + 1, ),
                            42,
                            siCentrado=True,
                            edicion=edicionIconos)

        self.grid = grid = Grid.Grid(self,
                                     oColumnas,
                                     altoFila=42,
                                     background="white")
        self.grid.setAlternatingRowColors(False)
        self.grid.tipoLetra(puntos=10, peso=500)
        nAnchoPgn = self.grid.anchoColumnas() + 20
        self.grid.setMinimumWidth(nAnchoPgn)
        self.registrarGrid(grid)

        # Colocamos ---------------------------------------------------------------
        ly = Colocacion.V().control(lb).control(tb).control(self.grid)

        self.setLayout(ly)

        alto = self.tol.num_themes * 42 + 146
        self.recuperarVideo(siTam=True,
                            altoDefecto=alto,
                            anchoDefecto=nAnchoPgn)
示例#48
0
    def __init__(self, manager, tutor, siRival, siOpenings, is_white,
                 siPuntos):
        titulo = _("Analyzing your move")
        icono = Iconos.Tutor()
        extparam = "tutor"
        QTVarios.WDialogo.__init__(self, manager.main_window, titulo, icono,
                                   extparam)

        self.tutor = tutor
        self.manager = manager
        self.respLibro = None
        self.siElegidaOpening = False

        self.x_tutor_view = manager.configuration.x_tutor_view

        # ~ self.setStyleSheet("QDialog,QGroupBox { background: #f0f0f0; }")

        f = Controles.TipoLetra(puntos=12, peso=75)
        flb = Controles.TipoLetra(puntos=10)
        flba = Controles.TipoLetra(puntos=8)

        ae = QTUtil.anchoEscritorio()
        mx = 32 if ae > 1000 else 20
        config_board = Code.configuration.config_board("TUTOR", mx)

        # Boards

        def create_board(name, si=True, siLibre=True, siMas=False):
            if not si:
                return None, None, None
            board = Board.Board(self, config_board)
            board.crea()
            board.ponerPiezasAbajo(is_white)
            lytb, tb = QTVarios.lyBotonesMovimiento(self,
                                                    name,
                                                    siLibre,
                                                    siMas=siMas)
            return board, lytb, tb

        self.boardTutor, lytbtutor, self.tbtutor = create_board("tutor")
        self.boardUsuario, lytbuser, self.tbuser = create_board("user")
        self.boardRival, lytbRival, self.tbRival = create_board(
            "rival", siRival)
        self.boardOpening, lytbOpening, self.tbOpening = create_board(
            "opening", siOpenings, siLibre=False)
        tutor.ponBoardsGUI(self.boardTutor, self.boardUsuario, self.boardRival,
                           self.boardOpening)

        # Puntuaciones
        self.lbTutorPuntuacion = Controles.LB(self).align_center().ponFuente(
            flb)
        self.lbUsuarioPuntuacion = Controles.LB(self).align_center().ponFuente(
            flb)
        if siRival:
            self.lbRivalPuntuacion = Controles.LB(
                self).align_center().ponFuente(flb)

        # Openings
        if siOpenings:
            li_options = self.tutor.opcionesOpenings()
            self.cbOpenings = Controles.CB(self, li_options, 0)
            self.cbOpenings.setFont(flba)
            self.connect(self.cbOpenings,
                         QtCore.SIGNAL("currentIndexChanged(int)"),
                         self.tutor.cambiarOpening)

        # RM
        liRM = []
        for n, uno in enumerate(tutor.list_rm):
            liRM.append((uno[1], n))

        self.cbRM, self.lbRM = QTUtil2.comboBoxLB(self, liRM, liRM[0][1],
                                                  _("Moves analyzed"))
        self.connect(self.cbRM, QtCore.SIGNAL("currentIndexChanged (int)"),
                     tutor.cambiadoRM)
        lyRM = Colocacion.H().control(self.lbRM).control(self.cbRM)

        lyTutor = Colocacion.V().relleno().control(
            self.lbTutorPuntuacion).relleno()
        gbTutor = Controles.GB(self, _("Tutor's suggestion"),
                               lyTutor).ponFuente(f).align_center()
        if siPuntos:
            gbTutor.to_connect(self.elegirTutor)
            self.lbTutorPuntuacion.setEnabled(True)

        lyUsuario = Colocacion.V().relleno().control(
            self.lbUsuarioPuntuacion).relleno()
        gbUsuario = Controles.GB(
            self, _("Your move"),
            lyUsuario).ponFuente(f).align_center().to_connect(
                self.elegirUsuario)
        self.lbUsuarioPuntuacion.setEnabled(True)
        btLibros = Controles.PB(self, _("Consult a book"),
                                self.consultaLibro).ponPlano(False)

        if siRival:
            lyRival = Colocacion.V().relleno().control(
                self.lbRivalPuntuacion).relleno()
            gbRival = Controles.GB(self, _("Opponent's prediction"),
                                   lyRival).ponFuente(f).align_center()

        if siOpenings:
            lyOpenings = Colocacion.V().relleno().control(
                self.cbOpenings).relleno()
            gbOpenings = Controles.GB(self, _("Opening"),
                                      lyOpenings).align_center().ponFuente(f)
            if siPuntos:
                gbOpenings.to_connect(self.elegirOpening)
            self.cbOpenings.setEnabled(True)
            self.tutor.cambiarOpening(0)

        dicVista = {
            POS_TUTOR_HORIZONTAL: ((0, 1), (0, 2)),
            POS_TUTOR_HORIZONTAL_2_1: ((0, 1), (4, 0)),
            POS_TUTOR_HORIZONTAL_1_2: ((4, 0), (4, 1)),
            POS_TUTOR_VERTICAL: ((4, 0), (8, 0)),
        }

        usu, riv = dicVista[self.x_tutor_view]

        fu, cu = usu
        fr, cr = riv

        layout = Colocacion.G()
        layout.controlc(gbTutor, 0, 0).controlc(self.boardTutor, 1,
                                                0).otro(lytbtutor, 2,
                                                        0).otroc(lyRM, 3, 0)
        layout.controlc(gbUsuario, fu,
                        cu).controlc(self.boardUsuario, fu + 1,
                                     cu).otro(lytbuser, fu + 2, cu).controlc(
                                         btLibros, fu + 3, cu)
        if siRival:
            layout.controlc(gbRival, fr,
                            cr).controlc(self.boardRival, fr + 1,
                                         cr).otro(lytbRival, fr + 2, cr)
        elif siOpenings:
            layout.controlc(gbOpenings, fr,
                            cr).controlc(self.boardOpening, fr + 1,
                                         cr).otro(lytbOpening, fr + 2, cr)

        layout.margen(8)

        self.setLayout(layout)

        self.restore_video(siTam=False)
示例#49
0
def lanzaGUI(procesador):
    """
    Lanzador del interfaz grafico de la aplicacion.
    """

    # Comprobamos el lenguaje
    app = QtGui.QApplication([])

    liUsuarios = Usuarios.Usuarios().lista
    usuario = None
    if liUsuarios:
        usuario = pideUsuario(liUsuarios)
        if usuario is None:
            return
        user = str(usuario.numero) if usuario.numero else ""
    else:
        user = ""

    activeFolder = Configuracion.activeFolder()
    siPedirLenguaje = not os.path.isdir(activeFolder) or not os.listdir(
        activeFolder)
    procesador.iniciaConUsuario(user)
    configuracion = procesador.configuracion
    if usuario:
        if not configuracion.jugador:
            configuracion.jugador = usuario.nombre
            configuracion.graba()
        elif configuracion.jugador != usuario.nombre:
            for usu in liUsuarios:
                if usu.numero == usuario.numero:
                    usu.nombre = configuracion.jugador
                    Usuarios.Usuarios().guardaLista(liUsuarios)

    # Comprobamos el lenguaje
    if siPedirLenguaje and not configuracion.traductor:
        if user:
            confMain = Configuracion.Configuracion("")
            ori = confMain.ficheroMExternos
            confMain.lee()
            confMain.limpia(usuario.nombre)
            confMain.ponCarpetas(user)
            confMain.graba()
            procesador.configuracion = confMain

            Util.copiaFichero(ori, confMain.carpeta)

        else:
            li = configuracion.listaTraducciones()
            menu = QTVarios.LCMenu(None)

            nico = QTVarios.rondoPuntos()
            for k, nombre, porc, author in li:
                rotulo = nombre
                if porc != "100":
                    rotulo += " (%s%%)" % porc
                menu.opcion(k, nombre, nico.otro())
            resp = menu.lanza()
            if resp:
                configuracion.traductor = resp
                configuracion.graba()

    # Estilo
    app.setStyle(QtGui.QStyleFactory.create(configuracion.estilo))

    if configuracion.palette:
        qpalette = QtGui.QPalette()
        palette = configuracion.palette

        def cl(tipo):
            return QtGui.QColor(palette[tipo])

        qpalette.setColor(QtGui.QPalette.Window, cl("Window"))
        qpalette.setColor(QtGui.QPalette.WindowText, cl("WindowText"))

        qpalette.setColor(QtGui.QPalette.Base, cl("Base"))
        qpalette.setColor(QtGui.QPalette.Text, cl("Text"))
        qpalette.setColor(QtGui.QPalette.AlternateBase, cl("AlternateBase"))

        qpalette.setColor(QtGui.QPalette.ToolTipBase, cl("ToolTipBase"))
        qpalette.setColor(QtGui.QPalette.ToolTipText, cl("ToolTipText"))

        qpalette.setColor(QtGui.QPalette.Button, cl("Button"))
        qpalette.setColor(QtGui.QPalette.ButtonText, cl("ButtonText"))
        qpalette.setColor(QtGui.QPalette.BrightText, cl("BrightText"))

        qpalette.setColor(QtGui.QPalette.Link, cl("Link"))

    else:
        qpalette = QtGui.QApplication.style().standardPalette()

    app.setPalette(qpalette)

    app.setEffectEnabled(QtCore.Qt.UI_AnimateMenu)

    # QtGui.QFontDatabase.addApplicationFont('IntFiles/ChessAlpha2.ttf') # TODO

    if configuracion.familia:
        font = Controles.TipoLetra(configuracion.familia)
        app.setFont(font)

    VarGen.gc = QTUtil.GarbageCollector()

    # Lanzamos la pantalla
    procesador.iniciarGUI()

    resp = app.exec_()

    return resp
示例#50
0
    def __init__(self, procesador, dbop):
        self.dbop = dbop
        title = dbop.gettitle()

        QTVarios.WDialogo.__init__(self, procesador.pantalla, title,
                                   Iconos.OpeningLines(), "studyOpening")

        self.procesador = procesador
        self.configuracion = procesador.configuracion
        self.partidabase = self.dbop.getpartidabase()
        self.num_jg_inicial = self.partidabase.numJugadas()
        self.num_jg_actual = None
        self.partida = None

        self.resultado = None
        siFigurinesPGN = self.configuracion.figurinesPGN

        liAcciones = (
            (_("Close"), Iconos.MainMenu(), self.terminar),
            None,
            (_("Remove"), Iconos.Borrar(), self.borrar),
            None,
            (_("Import"), Iconos.Mezclar(), self.importar),
            None,
            (_("Utilities"), Iconos.Utilidades(), self.utilidades),
            None,
            (_("Train"), Iconos.Study(), self.train),
            None,
        )
        self.tb = Controles.TBrutina(self, liAcciones)

        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("LINE",
                        _("Line"),
                        35,
                        edicion=Delegados.EtiquetaPOS(False, True))
        inicio = self.partidabase.numJugadas() / 2 + 1
        ancho_col = ((self.configuracion.anchoPGN - 35 - 20) / 2) * 80 // 100
        for x in range(inicio, 75):
            oColumnas.nueva(str(x),
                            str(x),
                            ancho_col,
                            edicion=Delegados.EtiquetaPOS(
                                siFigurinesPGN, True))
        self.glines = Grid.Grid(self, oColumnas, siCabeceraMovible=False)
        self.glines.setAlternatingRowColors(False)
        self.glines.tipoLetra(puntos=self.configuracion.puntosPGN)
        self.glines.ponAltoFila(self.configuracion.altoFilaPGN)

        self.pboard = POLBoard.BoardLines(self, self.configuracion)

        self.tabsanalisis = POLAnalisis.TabsAnalisis(self, self.procesador,
                                                     self.configuracion)

        splitter = QtGui.QSplitter(self)
        splitter.setOrientation(QtCore.Qt.Vertical)
        splitter.addWidget(self.glines)
        splitter.addWidget(self.tabsanalisis)

        sp = QtGui.QSizePolicy(QtGui.QSizePolicy.Expanding,
                               QtGui.QSizePolicy.Expanding)
        splitter.setSizePolicy(sp)

        self.registrarSplitter(splitter, "SPLITTER")

        lyLV = Colocacion.V().control(splitter)
        lyTB = Colocacion.V().control(self.tb).control(self.pboard)
        layout = Colocacion.H().otro(lyTB).otro(lyLV).margen(3)
        self.setLayout(layout)

        self.colorPar = QTUtil.qtColor("#DBDAD9")
        self.colorNon = QTUtil.qtColor("#F1EFE9")
        self.colorLine = QTUtil.qtColor("#CDCCCB")

        self.partida = self.partidabase

        self.pboard.MoverFinal()

        self.recuperarVideo()
示例#51
0
    def __init__(self, owner, dbf, dClaves, gestor, estado, siElegir):
        titulo = _("Choose a game to view") if siElegir else _("PGN viewer")
        icono = Iconos.PGN()
        extparam = "pgnelegir"
        QTVarios.WDialogo.__init__(self, owner, titulo, icono, extparam)

        self.siElegir = siElegir
        self.gestor = gestor
        self.dClaves = dClaves = copy.deepcopy(dClaves)
        self.seHaBorradoAlgo = False  # Para que se haga un touch antiguo al DB y lo regenere la proxima vez
        siRepite = estado is not None
        if siRepite:
            self.estado = estado
        else:
            self.estado = EstadoWpgn()
        self.dbf = dbf
        if siRepite:
            self.estado.recuperaDBF(dbf)
        else:
            self.dbf.leer()

        # Filtro
        self.liFiltro = self.estado.liFiltro if siRepite else []

        # Status bar-> antes que grid porque se actualiza en gridNumDatos
        self.status = QtGui.QStatusBar(self)
        self.status.setFixedHeight(22)

        # Lista
        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("numero", _("N."), 50, siCentrado=True)

        def creaCol(clave, rotulo, siCentrado=True):
            tam = max(dClaves[clave], len(rotulo), 11)
            oColumnas.nueva(clave, rotulo, tam * 6, siCentrado=siCentrado)

        # # Claves segun orden estandar
        liBasic = ("EVENT", "SITE", "DATE", "ROUND", "WHITE", "BLACK",
                   "RESULT", "ECO", "FEN", "WHITEELO", "BLACKELO")
        self.liOrdenClaves = [
        ]  # nos servira en el exterior, para paste pgn y para mostrar info
        for clave in liBasic:
            if clave in dClaves:
                rotulo = TrListas.pgnLabel(clave)
                creaCol(clave, rotulo, clave != "EVENT")
                self.liOrdenClaves.append(clave)
        for clave in dClaves:
            if clave.upper() not in liBasic:
                rotulo = TrListas.pgnLabel(clave)
                creaCol(clave.upper(), rotulo, clave != "EVENT")
                self.liOrdenClaves.append(clave.upper())

        dicVideoGrid = self.estado.dicVideoGrid if siRepite else None
        self.grid = Grid.Grid(self,
                              oColumnas,
                              siSelecFilas=True,
                              dicVideo=dicVideoGrid,
                              siSeleccionMultiple=True)

        if siRepite:
            self.grid.goto(self.estado.recno, 0)
        else:
            self.grid.gotop()

        if siRepite:
            self.estado.recuperaWindow(self)
        else:
            n = self.grid.anchoColumnas() + 20
            w, h = QTUtil.tamEscritorio()
            self.resize(min(w * 9 / 10, n), h * 8 / 10)

        # Toolbar
        if siElegir:
            liAcciones = [
                (_("Choose"), Iconos.Aceptar(), self.elegir),
                None,
                (_("Cancel"), Iconos.Cancelar(), self.cancelar),
                None,
                (_("First"), Iconos.Inicio(), self.grid.gotop),
                (_("Last"), Iconos.Final(), self.grid.gobottom),
                None,
                (_("Filter"), Iconos.Filtrar(), self.filtrar),
                None,
            ]
        else:
            liAcciones = [
                (_("Close"), Iconos.MainMenu(), self.cancelar), None,
                (_("View"), Iconos.Ver(), self.elegir), None,
                (_("Edit"), Iconos.Modificar(), self.editar), None,
                (_("Save"), Iconos.Grabar(), self.guardar), None,
                (_("First"), Iconos.Inicio(), self.grid.gotop),
                (_("Last"), Iconos.Final(), self.grid.gobottom), None,
                (_("Filter"), Iconos.Filtrar(), self.filtrar), None,
                (_("Remove"), Iconos.Borrar(), self.borrar), None,
                (_("Utilities"), Iconos.Utilidades(), self.utilidades), None
            ]
        tb = Controles.TBrutina(self, liAcciones)

        # Layout
        layout = Colocacion.V().control(tb).control(self.grid).control(
            self.status).margen(3)
        self.setLayout(layout)

        self.recuperarVideo(siTam=False)
        self.ponStatus()
示例#52
0
    def configurarGS(self):
        sep = (None, None, None)

        liMasOpciones = [
            ("rotacion", _("Auto-rotate board"), Iconos.JS_Rotacion()),
            sep,
            ("leerpgn", _("Read PGN"), Iconos.PGN_Importar()),
            sep,
            ("pastepgn", _("Paste PGN"), Iconos.Pegar16()),
            sep,
        ]
        if not self.siCompleta:
            liMasOpciones.extend([
                ("posicion", _("Start position"), Iconos.Datos()), sep,
                ("pasteposicion", _("Paste FEN position"), Iconos.Pegar16()),
                sep, ("voyager", _("Voyager 2"), Iconos.Voyager1())
            ])

        resp = self.configurar(liMasOpciones,
                               siCambioTutor=True,
                               siSonidos=True)

        if resp == "rotacion":
            self.siVolteoAutomatico = not self.siVolteoAutomatico
            siBlancas = self.partida.ultPosicion.siBlancas
            if self.siVolteoAutomatico:
                if siBlancas != self.tablero.siBlancasAbajo:
                    self.tablero.rotaTablero()

        elif resp == "posicion":
            ini_fen = self.partida.iniPosicion.fen()
            cur_fen = Voyager.voyagerFEN(self.pantalla, ini_fen)
            if cur_fen and cur_fen != ini_fen:
                self.partida.resetFEN(cur_fen)
                self.inicio(self.partida, self.siCompleta)

        elif resp == "pasteposicion":
            texto = QTUtil.traePortapapeles()
            if texto:
                cp = ControlPosicion.ControlPosicion()
                try:
                    cp.leeFen(str(texto))
                    self.fen = cp.fen()
                    self.posicApertura = None
                    self.reiniciar()
                except:
                    pass

        elif resp == "leerpgn":
            unpgn = PantallaPGN.eligePartida(self.pantalla)
            if unpgn:
                partida = unpgn.partida
                if self.siCompleta and not partida.siFenInicial():
                    return
                p = Partida.PartidaCompleta()
                p.leeOtra(partida)
                p.asignaApertura()
                p.setTags(unpgn.listaCabeceras())
                self.reinicio = p.save()
                self.reiniciar()

        elif resp == "pastepgn":
            texto = QTUtil.traePortapapeles()
            if texto:
                unpgn = PGN.UnPGN()
                unpgn.leeTexto(texto)
                if unpgn.siError:
                    QTUtil2.mensError(
                        self.pantalla,
                        _("The text from the clipboard does not contain a chess game in PGN format"
                          ))
                    return
                partida = unpgn.partida
                if self.siCompleta and not partida.siFenInicial():
                    return
                p = Partida.PartidaCompleta()
                p.leeOtra(partida)
                p.asignaApertura()
                p.setTags(unpgn.listaCabeceras())
                self.reinicio = p.save()
                self.reiniciar()

        elif resp == "voyager":
            ptxt = Voyager.voyagerPartida(self.pantalla, self.partida)
            if ptxt:
                dic = self.creaDic()
                dic["PARTIDA"] = ptxt
                p = self.partida.copia()
                p.recuperaDeTexto(ptxt)
                dic["FEN"] = None if p.siFenInicial() else p.iniPosicion.fen()
                dic["SIBLANCASABAJO"] = self.tablero.siBlancasAbajo
                self.reiniciar(dic)
示例#53
0
 def controlTeclado(self, nkey):
     if nkey == Qt.Key_V:  # V
         self.paste(QTUtil.traePortapapeles())
示例#54
0
 def go_next(self):
     if self.working:
         self.square_object, self.square_next = self.coordinates.next()
         self.board.pon_textos(self.square_object, self.square_next, 0.8)
         QTUtil.refresh_gui()
示例#55
0
 def muestra(self):
     QTUtil.refreshGUI()
     self.exec_()
     QTUtil.refreshGUI()
示例#56
0
 def show_tb(self, *lista):
     for opc in self.tb.dicTB:
         self.tb.setAccionVisible(opc, opc in lista)
     QTUtil.refresh_gui()
示例#57
0
def run_gui(procesador):
    app = QtWidgets.QApplication([])

    # Usuarios
    list_users = Usuarios.Usuarios().list_users
    if list_users:
        user = pide_usuario(list_users)
        if user is None:
            return
        if user == list_users[0]:
            user = None
    else:
        user = None

    active_folder = Configuration.active_folder()
    askfor_language = not os.path.isdir(active_folder) or not os.listdir(
        active_folder)

    procesador.start_with_user(user)
    configuration = procesador.configuration
    if user:
        if not configuration.x_player:
            configuration.x_player = user.name
            configuration.graba()
        elif configuration.x_player != user.name:
            for usu in list_users:
                if usu.number == user.number:
                    usu.name = configuration.x_player
                    Usuarios.Usuarios().save_list(list_users)

    # Comprobamos el lenguaje
    if askfor_language and not configuration.translator:
        if user:
            conf_main = Configuration.Configuration("")
            ori = conf_main.file_external_engines()
            conf_main.lee()
            conf_main.limpia(user.name)
            conf_main.set_folders()
            conf_main.graba()
            procesador.configuration = conf_main

            Util.file_copy(ori, conf_main.file_external_engines())

        else:
            li = configuration.list_translations()
            menu = QTVarios.LCMenuRondo(None)
            for k, name, porc, author in li:
                if porc != 100:
                    name += " (%d%%)" % porc
                menu.opcion(k, name)
            resp = menu.lanza()
            if resp:
                configuration.translator = resp
                configuration.graba()
                configuration.releeTRA()

    # Estilo
    # https://github.com/gmarull/qtmodern/blob/master/qtmodern/styles.py
    # https://stackoverflow.com/questions/15035767/is-the-qt-5-dark-fusion-theme-available-for-windows
    # darkPalette.setColor(QPalette.Window, QColor(53, 53, 53))
    # darkPalette.setColor(QPalette.WindowText, QColor(180, 180, 180))
    # darkPalette.setColor(QPalette.Base, QColor(42, 42, 42))
    # darkPalette.setColor(QPalette.Text, QColor(180, 180, 180))
    # darkPalette.setColor(QPalette.AlternateBase, QColor(66, 66, 66))
    # darkPalette.setColor(QPalette.ToolTipBase, QColor(53, 53, 53))
    # darkPalette.setColor(QPalette.ToolTipText, QColor(180, 180, 180))
    # darkPalette.setColor(QPalette.Button, QColor(53, 53, 53))
    # darkPalette.setColor(QPalette.ButtonText, QColor(180, 180, 180))
    # darkPalette.setColor(QPalette.BrightText, QColor(180, 180, 180))
    # darkPalette.setColor(QPalette.Link, QColor(56, 252, 196))
    #
    # darkPalette.setColor(QPalette.Light, QColor(180, 180, 180))
    # darkPalette.setColor(QPalette.Midlight, QColor(90, 90, 90))
    # darkPalette.setColor(QPalette.Dark, QColor(35, 35, 35))
    # darkPalette.setColor(QPalette.Shadow, QColor(20, 20, 20))
    # darkPalette.setColor(QPalette.Highlight, QColor(42, 130, 218))
    # darkPalette.setColor(QPalette.HighlightedText, QColor(180, 180, 180))
    #
    # # disabled
    # darkPalette.setColor(QPalette.Disabled, QPalette.WindowText,
    #                      QColor(127, 127, 127))
    # darkPalette.setColor(QPalette.Disabled, QPalette.Text,
    #                      QColor(127, 127, 127))
    # darkPalette.setColor(QPalette.Disabled, QPalette.ButtonText,
    #                      QColor(127, 127, 127))
    # darkPalette.setColor(QPalette.Disabled, QPalette.Highlight,
    #                      QColor(80, 80, 80))
    # darkPalette.setColor(QPalette.Disabled, QPalette.HighlightedText,
    #                      QColor(127, 127, 127))
    app.setStyle(QtWidgets.QStyleFactory.create(configuration.x_style))

    if configuration.palette:
        qpalette = QtGui.QPalette()
        palette = configuration.palette
        # palette_dark = {'Window': '#353535', 'WindowText': '#b4b4b4', 'Base': '#2a2a2a', 'Text': '#b4b4b4', 'AlternateBase': '#424242',
        #  'ToolTipBase': '#353535', 'ToolTipText': '#b4b4b4', 'Button': '#353535', 'ButtonText': '#b4b4b4', 'BrightText': '#b4b4b4',
        #  'Link': '#38fcc4'}

        for key, tp in (
            (QtGui.QPalette.Window, "Window"),
            (QtGui.QPalette.WindowText, "WindowText"),
            (QtGui.QPalette.Base, "Base"),
            (QtGui.QPalette.Text, "Text"),
            (QtGui.QPalette.AlternateBase, "AlternateBase"),
            (QtGui.QPalette.ToolTipBase, "ToolTipBase"),
            (QtGui.QPalette.ToolTipText, "ToolTipText"),
            (QtGui.QPalette.Button, "Button"),
            (QtGui.QPalette.ButtonText, "ButtonText"),
            (QtGui.QPalette.BrightText, "BrightText"),
            (QtGui.QPalette.Link, "Link"),
        ):
            qpalette.setColor(key, QtGui.QColor(palette[tp]))
    else:
        qpalette = QtWidgets.QApplication.style().standardPalette()

    app.setPalette(qpalette)

    app.setEffectEnabled(QtCore.Qt.UI_AnimateMenu)

    QtGui.QFontDatabase.addApplicationFont(
        Code.path_resource("IntFiles", "ChessAlpha2.ttf"))

    if configuration.x_font_family:
        font = Controles.TipoLetra(configuration.x_font_family)
        app.setFont(font)

    Code.gc = QTUtil.GarbageCollector()

    procesador.iniciar_gui()

    resp = app.exec_()

    return resp
示例#58
0
    def __init__(self, gestor, xmotor, nombreOP, posicion, mrm, rmOP, rmUsu,
                 analisis):
        self.siCompetitivo = gestor.siCompetitivo
        self.nombreOP = nombreOP
        self.posicion = posicion
        self.rmOP = rmOP
        self.rmUsu = rmUsu
        self.mrm = mrm
        self.analisis = analisis
        self.xmotor = xmotor
        self.gestor = gestor

        self.listaRM, self.posOP = self.hazListaRM()
        self.posicion = posicion

        titulo = _("Analysis")
        icono = Iconos.Analizar()
        extparam = "jzgm"
        QTVarios.WDialogo.__init__(self, gestor.pantalla, titulo, icono,
                                   extparam)

        self.colorNegativo = QTUtil.qtColorRGB(255, 0, 0)
        self.colorImpares = QTUtil.qtColorRGB(231, 244, 254)

        self.lbComentario = Controles.LB(
            self, "").ponTipoLetra(puntos=10).alinCentrado()

        confTablero = VarGen.configuracion.confTablero("JUICIO", 32)
        self.tablero = Tablero.Tablero(self, confTablero)
        self.tablero.crea()
        self.tablero.ponerPiezasAbajo(posicion.siBlancas)

        self.lbMotor = Controles.LB(self).alinCentrado()
        self.lbTiempo = Controles.LB(self).alinCentrado()

        liMas = ((_("Close"), "close", Iconos.Delete()), )
        lyBM, tbBM = QTVarios.lyBotonesMovimiento(self,
                                                  "",
                                                  siLibre=True,
                                                  tamIcon=24,
                                                  siMas=True,
                                                  liMasAcciones=liMas)

        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("POSREAL", "#", 40, siCentrado=True)
        oColumnas.nueva("JUGADAS",
                        "%d %s" % (len(self.listaRM), _("Moves")),
                        120,
                        siCentrado=True)
        oColumnas.nueva("PLAYER", _("Player"), 120)

        self.grid = Grid.Grid(self, oColumnas, siSelecFilas=True)

        lyT = Colocacion.V().control(self.tablero).otro(lyBM).control(
            self.lbComentario)

        # Layout
        layout = Colocacion.H().otro(lyT).control(self.grid)

        self.setLayout(layout)

        self.grid.setFocus()

        self.grid.goto(self.posOP, 0)
        self.siMoviendoTiempo = False

        self.ponPuntos()
示例#59
0
 def refresh(self):
     self.update()
     QTUtil.xrefreshGUI()
示例#60
0
 def mostrar(self):
     QTUtil.refreshGUI()
     self.exec_()
     QTUtil.refreshGUI()