Example #1
0
    def leeGuion(self, nomGuion, siFenInicial):
        li = self.dbGuiones.get(nomGuion, TabVisual.Guion())
        self.guion = TabVisual.Guion()
        if li:
            self.tablero.dicMovibles = {}
            # self.tableroOwner.borraMovibles()
            self.tablero.crea()
            for reg in li:
                if reg._registro:
                    tp, id, a1h8 = reg._registro
                    tarea, fila = self.creaTareaBase(tp, id, a1h8, -1)
                    if tarea is None:
                        continue
                    tarea.recupera(reg)
                    if hasattr(reg, "_bloqueDatos"):
                        sc = tarea.itemSC()
                        sc.bloqueDatos = reg._bloqueDatos
                        sc.update()
                        sc.setVisible(False)
                    tarea.marcado(False)

                else:
                    tarea = self.guion.recuperaReg(reg)
                    tarea._marcado = False
        if siFenInicial:
            cp = ControlPosicion.ControlPosicion()
            cp.leeFen(self.fenInicial)
            self.tablero.ponPosicionBase(cp)
        self.tablero.activaTodas()
        self.nomGuion = nomGuion
Example #2
0
    def importaOtroTablero(self):
        if self.tableroOwner.dicMovibles:
            for k, v in self.tableroOwner.dicMovibles.iteritems():
                xobj = str(v)
                if "Marco" in xobj:
                    sc = self.tablero.creaMarco(v.bloqueDatos)
                    tarea = TabVisual.GT_Marco()
                elif "Flecha" in xobj:
                    sc = self.tablero.creaFlecha(v.bloqueDatos)
                    tarea = TabVisual.GT_Flecha()
                elif "SVG" in xobj:
                    sc = self.tablero.creaSVG(v.bloqueDatos)
                    tarea = TabVisual.GT_SVG()
                elif "Marker" in xobj:
                    sc = self.tablero.creaMarker(v.bloqueDatos)
                    tarea = TabVisual.GT_Marker()
                else:
                    continue
                sc.ponRutinaPulsada(self.pulsadoItemSC, tarea.id())
                tarea.itemSC(sc)
                tarea.itemSCOwner(v)
                self.guion.nuevaTarea(tarea)

        self.tablero.copiaPosicionDe(self.tableroOwner)
        self.fenInicial = self.tablero.fenActual()
        self.tablero.activaTodas()
        self.g_guion.gotop()
    def __init__(self, owner, regSVG, xml=None, nombre=None):

        QtGui.QDialog.__init__(self, owner)

        self.setWindowTitle(_("Image"))
        self.setWindowFlags(QtCore.Qt.WindowCloseButtonHint | QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint)

        self.configuracion = VarGen.configuracion

        if not regSVG:
            regSVG = TabVisual.PSVG()
            regSVG.xml = xml
            if nombre:
                regSVG.nombre = nombre

        liAcciones = [(_("Save"), Iconos.Aceptar(), "grabar"), None,
                      (_("Cancel"), Iconos.Cancelar(), "reject"), None,
                      ]
        tb = Controles.TB(self, liAcciones)

        # Tablero
        confTablero = owner.tablero.confTablero
        self.tablero = Tablero.Tablero(self, confTablero, siDirector=False)
        self.tablero.crea()
        self.tablero.copiaPosicionDe(owner.tablero)

        # Datos generales
        liGen = []

        # nombre del svg que se usara en los menus del tutorial
        config = FormLayout.Editbox(_("Name"), ancho=120)
        liGen.append((config, regSVG.nombre))

        # ( "opacidad", "n", 1.0 ),
        config = FormLayout.Dial(_("Degree of transparency"), 0, 99)
        liGen.append((config, 100 - int(regSVG.opacidad * 100)))

        # ( "psize", "n", 100 ),
        config = FormLayout.Spinbox(_("Size") + " %", 1, 1600, 50)
        liGen.append((config, regSVG.psize))

        # orden
        config = FormLayout.Combobox(_("Order concerning other items"), QTUtil2.listaOrdenes())
        liGen.append((config, regSVG.posicion.orden))

        self.form = FormLayout.FormWidget(liGen, dispatch=self.cambios)

        # Layout
        layout = Colocacion.H().control(self.form).relleno().control(self.tablero)
        layout1 = Colocacion.V().control(tb).otro(layout)
        self.setLayout(layout1)

        # Ejemplos
        liMovs = ["b4c4", "e2e2", "e4g7"]
        self.liEjemplos = []
        for a1h8 in liMovs:
            regSVG.a1h8 = a1h8
            regSVG.siMovible = True
            svg = self.tablero.creaSVG(regSVG, siEditando=True)
            self.liEjemplos.append(svg)
 def addText(self):
     self.guion.cierraPizarra()
     tarea = TabVisual.GT_Texto(self.guion)
     fila = self.guion.nuevaTarea(tarea, -1)
     self.ponMarcado(fila, True)
     self.ponSiGrabar()
     self.guion.pizarra.show()
     self.guion.pizarra.mensaje.setFocus()
    def gmas(self, siInsertar):
        ta = TabVisual.GT_Action(None)
        liActions = [(_F(txt), Iconos.PuntoRojo(), "GTA_%s" % action)
                     for action, txt in ta.dicTxt.iteritems()]

        # tc = TabVisual.GT_Configuration(None)
        # liConfigurations = [(txt, Iconos.PuntoVerde(), "GTC_%s" % configuration) for configuration, txt in tc.dicTxt.iteritems()]

        liMore = [
            (_("Text"), Iconos.Texto(), TabVisual.TP_TEXTO),
            (_("Actions"), Iconos.Run(), liActions),
            # (_("Configuration"), Iconos.Configurar(), liConfigurations),
        ]
        resp = self.selectBanda.menuParaExterior(liMore)
        if resp:
            xid = resp
            fila = self.g_guion.recno() if siInsertar else -1
            if xid == TabVisual.TP_TEXTO:
                tarea = TabVisual.GT_Texto(self.guion)
                fila = self.guion.nuevaTarea(tarea, fila)
                self.ponMarcado(fila, True)
                self.ponSiGrabar()
            elif resp.startswith("GTA_"):
                self.creaAction(resp[4:], fila)
            # elif resp.startswith("GTC_"):
            #     key = resp[4:]
            #     txt = tc.dicTxt[key]
            #     if not self.creaConfiguration(txt, key, fila):
            #         return
            else:
                li = xid.split("_")
                tp = li[1]
                xid = int(li[2])
                desde, hasta = self.desdeHasta(_("Director"), self.ultDesde,
                                               self.ultHasta)
                if desde:
                    self.creaTarea(tp, xid, desde + hasta, fila)
            if siInsertar:
                self.g_guion.goto(fila, 0)
            else:
                self.g_guion.gobottom()
Example #6
0
    def creaTareaBase(self, tp, id, a1h8, fila):

        tpid = tp, id
        if tp == "P":
            tarea = TabVisual.GT_PiezaMueve()
            tarea.desdeHasta(a1h8[:2], a1h8[2:])
        elif tp == "C":
            tarea = TabVisual.GT_PiezaCrea()
            tarea.desde(a1h8)
            tarea.pieza(id)
        elif tp == "B":
            tarea = TabVisual.GT_PiezaBorra()
            tarea.desde(a1h8)
            tarea.pieza(id)
        else:
            if tp == "F":
                regFlecha = self.dbFlechas[id]
                if regFlecha is None:
                    return None, None
                regFlecha.tpid = tpid
                regFlecha.a1h8 = a1h8
                sc = self.tablero.creaFlecha(regFlecha)
                tarea = TabVisual.GT_Flecha()
            elif tp == "M":
                regMarco = self.dbMarcos[id]
                if regMarco is None:
                    return None, None
                regMarco.tpid = tpid
                regMarco.a1h8 = a1h8
                sc = self.tablero.creaMarco(regMarco)
                tarea = TabVisual.GT_Marco()
            elif tp == "S":
                regSVG = self.dbSVGs[id]
                if regSVG is None:
                    return None, None
                regSVG.tpid = tpid
                regSVG.a1h8 = a1h8
                sc = self.tablero.creaSVG(regSVG, siEditando=True)
                tarea = TabVisual.GT_SVG()
            elif tp == "X":
                regMarker = self.dbMarkers[id]
                if regMarker is None:
                    return None, None
                regMarker.tpid = tpid
                regMarker.a1h8 = a1h8
                sc = self.tablero.creaMarker(regMarker, siEditando=True)
                tarea = TabVisual.GT_Marker()
            sc.ponRutinaPulsada(self.pulsadoItemSC, tarea.id())
            tarea.itemSC(sc)

        tarea.marcado(True)
        tarea.registro((tp, id, a1h8))
        fila = self.guion.nuevaTarea(tarea, fila)

        return tarea, fila
    def __init__(self, owner, regFlecha, siNombre):

        QtGui.QDialog.__init__(self, owner)

        self.setWindowTitle(_("Arrow"))
        self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint)

        self.siNombre = siNombre

        if not regFlecha:
            regFlecha = TabVisual.PFlecha()

        liAcciones = [
            (_("Save"), Iconos.Aceptar(), "grabar"),
            None,
            (_("Cancel"), Iconos.Cancelar(), "reject"),
            None,
        ]
        tb = Controles.TB(self, liAcciones)

        # Tablero
        confTablero = owner.tablero.confTablero.copia(
            owner.tablero.confTablero.id())
        confTablero.anchoPieza(32)
        self.tablero = Tablero.TableroVisual(self, confTablero)
        self.tablero.crea()
        self.tablero.copiaPosicionDe(owner.tablero)

        # Datos generales
        liGen = []

        if siNombre:
            # nombre de la flecha que se usara en los menus del tutorial
            config = FormLayout.Editbox(_("Name"), ancho=120)
            liGen.append((config, regFlecha.nombre))

        # ( "forma", "t", "a" ), # a = abierta -> , c = cerrada la cabeza, p = poligono cuadrado,
        liFormas = (
            (_("Opened"), "a"),
            (_("Head closed"), "c"),
            (_("Polygon  1"), "1"),
            (_("Polygon  2"), "2"),
            (_("Polygon  3"), "3"),
        )
        config = FormLayout.Combobox(_("Form"), liFormas)
        liGen.append((config, regFlecha.forma))

        # ( "tipo", "n", Qt.SolidLine ), #1=SolidLine, 2=DashLine, 3=DotLine, 4=DashDotLine, 5=DashDotDotLine
        config = FormLayout.Combobox(_("Line Type"), QTUtil2.tiposDeLineas())
        liGen.append((config, regFlecha.tipo))

        # liGen.append( (None,None) )

        # ( "color", "n", 0 ),
        config = FormLayout.Colorbox(_("Color"), 80, 20)
        liGen.append((config, regFlecha.color))

        # ( "colorinterior", "n", -1 ), # si es cerrada
        config = FormLayout.Colorbox(_("Internal color"),
                                     80,
                                     20,
                                     siChecked=True)
        liGen.append((config, regFlecha.colorinterior))

        # ( "opacidad", "n", 1.0 ),
        config = FormLayout.Dial(_("Degree of transparency"), 0, 99)
        liGen.append((config, 100 - int(regFlecha.opacidad * 100)))

        # liGen.append( (None,None) )

        # ( "redondeos", "l", False ),
        liGen.append((_("Rounded edges"), regFlecha.redondeos))

        # ( "grosor", "n", 1 ), # ancho del trazo
        config = FormLayout.Spinbox(_("Thickness"), 1, 20, 50)
        liGen.append((config, regFlecha.grosor))

        # liGen.append( (None,None) )

        # ( "altocabeza", "n", 1 ), # altura de la cabeza
        config = FormLayout.Spinbox(_("Head height"), 0, 100, 50)
        liGen.append((config, regFlecha.altocabeza))

        # ( "ancho", "n", 10 ), # ancho de la base de la flecha si es un poligono
        config = FormLayout.Spinbox(_("Base width"), 1, 100, 50)
        liGen.append((config, regFlecha.ancho))

        # ( "vuelo", "n", 5 ), # vuelo de la flecha respecto al ancho de la base
        config = FormLayout.Spinbox(
            _("Additional width of the base of the head"), 1, 100, 50)
        liGen.append((config, regFlecha.vuelo))

        # ( "descuelgue", "n", 2 ), # vuelo hacia arriba
        config = FormLayout.Spinbox(_("Height of the base angle of the head"),
                                    -100, 100, 50)
        liGen.append((config, regFlecha.descuelgue))

        # liGen.append( (None,None) )

        # ( "destino", "t", "c" ), # c = centro, m = minimo
        config = FormLayout.Combobox(_("Target position"), tiposDestino())
        liGen.append((config, regFlecha.destino))

        # liGen.append( (None,None) )

        # orden
        config = FormLayout.Combobox(_("Order concerning other items"),
                                     QTUtil2.listaOrdenes())
        liGen.append((config, regFlecha.posicion.orden))

        self.form = FormLayout.FormWidget(liGen, dispatch=self.cambios)

        # Layout
        layout = Colocacion.H().control(self.form).relleno().control(
            self.tablero)
        layout1 = Colocacion.V().control(tb).otro(layout)
        self.setLayout(layout1)

        # Ejemplos
        liMovs = ["d2d6", "a8h8", "h5b7"]
        self.liEjemplos = []
        for a1h8 in liMovs:
            regFlecha.a1h8 = a1h8
            regFlecha.siMovible = True
            flecha = self.tablero.creaFlecha(regFlecha)
            self.liEjemplos.append(flecha)
    def __init__(self, owner, regMarco):

        QtWidgets.QDialog.__init__(self, owner)

        self.setWindowTitle(_("Box"))
        self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint)

        if not regMarco:
            regMarco = TabVisual.PMarco()

        liAcciones = [
            (_("Save"), Iconos.Aceptar(), "grabar"),
            None,
            (_("Cancel"), Iconos.Cancelar(), "reject"),
            None,
        ]
        tb = Controles.TB(self, liAcciones)

        # Tablero
        confTablero = owner.tablero.confTablero
        self.tablero = Tablero.Tablero(self, confTablero, siDirector=False)
        self.tablero.crea()
        self.tablero.copiaPosicionDe(owner.tablero)

        # Datos generales
        liGen = []

        # nombre del marco que se usara en los menus del tutorial
        config = FormLayout.Editbox(_("Name"), ancho=120)
        liGen.append((config, regMarco.nombre))

        # ( "tipo", "n", Qt.SolidLine ), #1=SolidLine, 2=DashLine, 3=DotLine, 4=DashDotLine, 5=DashDotDotLine
        config = FormLayout.Combobox(_("Line Type"), QTUtil2.tiposDeLineas())
        liGen.append((config, regMarco.tipo))

        # ( "color", "n", 0 ),
        config = FormLayout.Colorbox(_("Color"), 80, 20)
        liGen.append((config, regMarco.color))

        # ( "colorinterior", "n", -1 ),
        config = FormLayout.Colorbox(_("Internal color"),
                                     80,
                                     20,
                                     siChecked=True)
        liGen.append((config, regMarco.colorinterior))

        # ( "opacidad", "n", 1.0 ),
        config = FormLayout.Dial(_("Degree of transparency"), 0, 99)
        liGen.append((config, 100 - int(regMarco.opacidad * 100)))

        # ( "grosor", "n", 1 ), # ancho del trazo
        config = FormLayout.Spinbox(_("Thickness"), 1, 20, 50)
        liGen.append((config, regMarco.grosor))

        # ( "redEsquina", "n", 0 ),
        config = FormLayout.Spinbox(_("Rounded corners"), 0, 100, 50)
        liGen.append((config, regMarco.redEsquina))

        # orden
        config = FormLayout.Combobox(_("Order concerning other items"),
                                     QTUtil2.listaOrdenes())
        liGen.append((config, regMarco.posicion.orden))

        self.form = FormLayout.FormWidget(liGen, dispatch=self.cambios)

        # Layout
        layout = Colocacion.H().control(self.form).relleno().control(
            self.tablero)
        layout1 = Colocacion.V().control(tb).otro(layout)
        self.setLayout(layout1)

        # Ejemplos
        liMovs = ["b4c4", "e2e2", "e4g7"]
        self.liEjemplos = []
        for a1h8 in liMovs:
            regMarco.a1h8 = a1h8
            regMarco.siMovible = True
            marco = self.tablero.creaMarco(regMarco)
            self.liEjemplos.append(marco)
    def __init__(self, owner, regMarker, xml=None, nombre=None):

        QtGui.QDialog.__init__(self, owner)

        self.setWindowTitle(_("Marker"))
        self.setWindowFlags(QtCore.Qt.Dialog | QtCore.Qt.WindowTitleHint)

        self.configuracion = VarGen.configuracion

        if not regMarker:
            regMarker = TabVisual.PMarker()
            regMarker.xml = xml
            if nombre:
                regMarker.nombre = nombre

        liAcciones = [
            (_("Save"), Iconos.Aceptar(), self.grabar),
            None,
            (_("Cancel"), Iconos.Cancelar(), self.reject),
            None,
        ]
        tb = Controles.TBrutina(self, liAcciones)

        # Tablero
        confTablero = owner.tablero.confTablero
        self.tablero = Tablero.TableroVisual(self, confTablero)
        self.tablero.crea()
        self.tablero.copiaPosicionDe(owner.tablero)

        # Datos generales
        liGen = []

        # nombre del svg que se usara en los menus del tutorial
        config = FormLayout.Editbox(_("Name"), ancho=120)
        liGen.append((config, regMarker.nombre))

        # ( "opacidad", "n", 1.0 ),
        config = FormLayout.Dial(_("Degree of transparency"), 0, 99)
        liGen.append((config, 100 - int(regMarker.opacidad * 100)))

        # ( "psize", "n", 100 ),
        config = FormLayout.Spinbox(_("Size") + " %", 1, 1600, 50)
        liGen.append((config, regMarker.psize))

        # ( "poscelda", "n", 1 ),
        li = (
            ("%s-%s" % (_("Top"), _("Left")), 0),
            ("%s-%s" % (_("Top"), _("Right")), 1),
            ("%s-%s" % (_("Bottom"), _("Left")), 2),
            ("%s-%s" % (_("Bottom"), _("Right")), 3),
        )
        config = FormLayout.Combobox(_("Position in the square"), li)
        liGen.append((config, regMarker.poscelda))

        # orden
        config = FormLayout.Combobox(_("Order concerning other items"),
                                     QTUtil2.listaOrdenes())
        liGen.append((config, regMarker.posicion.orden))

        self.form = FormLayout.FormWidget(liGen, dispatch=self.cambios)

        # Layout
        layout = Colocacion.H().control(self.form).relleno().control(
            self.tablero)
        layout1 = Colocacion.V().control(tb).otro(layout)
        self.setLayout(layout1)

        # Ejemplos
        liMovs = ["b4c4", "e2e2", "e4g7"]
        self.liEjemplos = []
        for a1h8 in liMovs:
            regMarker.a1h8 = a1h8
            regMarker.siMovible = True
            marker = self.tablero.creaMarker(regMarker, siEditando=True)
            self.liEjemplos.append(marker)
 def creaAction(self, action, fila):
     tarea = TabVisual.GT_Action(self.guion)
     tarea.action(action)
     fila = self.guion.nuevaTarea(tarea, fila)
     self.ponSiGrabar()
     self.refresh_guion()
    def __init__(self, owner, tablero):
        self.owner = owner
        self.posicion = tablero.ultPosicion
        self.tablero = tablero
        self.configuracion = tablero.configuracion
        self.fenM2 = self.posicion.fenM2()
        self.origin_new = None

        self.leeRecursos()

        titulo = _("Director")
        icono = Iconos.Script()
        extparam = "tabvisualscript"
        QTVarios.WDialogo.__init__(self, tablero, titulo, icono, extparam)

        self.siGrabar = False
        self.ant_foto = None

        self.guion = TabVisual.Guion(tablero, self)

        # Guion
        liAcciones = [(_("Close"), Iconos.MainMenu(), self.terminar),
                      (_("Cancel"), Iconos.Cancelar(), self.cancelar),
                      (_("Save"), Iconos.Grabar(), self.grabar),
                      (_("New"), Iconos.Nuevo(), self.gnuevo),
                      (_("Insert"), Iconos.Insertar(), self.ginsertar),
                      (_("Remove"), Iconos.Borrar(), self.gborrar), None,
                      (_("Up"), Iconos.Arriba(), self.garriba),
                      (_("Down"), Iconos.Abajo(), self.gabajo), None,
                      (_("Mark"), Iconos.Marcar(), self.gmarcar), None,
                      (_("File"), Iconos.Recuperar(), self.gfile), None]
        self.tb = Controles.TBrutina(self,
                                     liAcciones,
                                     siTexto=False,
                                     tamIcon=24)
        self.tb.setAccionVisible(self.grabar, False)
        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("NUMERO", _("N."), 20, siCentrado=True)
        oColumnas.nueva("MARCADO", "", 20, siCentrado=True, siChecked=True)
        oColumnas.nueva("TIPO", _("Type"), 50, siCentrado=True)
        oColumnas.nueva("NOMBRE",
                        _("Name"),
                        100,
                        siCentrado=True,
                        edicion=Delegados.LineaTextoUTF8())
        oColumnas.nueva("INFO", _("Information"), 100, siCentrado=True)
        self.g_guion = Grid.Grid(self,
                                 oColumnas,
                                 siCabeceraMovible=False,
                                 siEditable=True,
                                 siSeleccionMultiple=True)
        self.g_guion.fixMinWidth()

        self.registrarGrid(self.g_guion)

        # Visuales
        self.selectBanda = PantallaTab.SelectBanda(self)

        lySG = Colocacion.H().control(self.selectBanda).control(self.g_guion)
        layout = Colocacion.V().control(self.tb).otro(lySG).margen(3)
        self.setLayout(layout)

        self.recuperarVideo()

        self.recuperar()
        self.ant_foto = self.foto()

        self.actualizaBandas()
        li = self.dbConfig["SELECTBANDA"]
        if li:
            self.selectBanda.recuperar(li)
        num_lb = self.dbConfig["SELECTBANDANUM"]
        if num_lb is not None:
            self.selectBanda.seleccionarNum(num_lb)

        self.ultDesde = "d4"
        self.ultHasta = "e5"

        self.g_guion.gotop()
    def creaTareaBase(self, tp, xid, a1h8, fila):
        # if tp != TabVisual.TP_FLECHA: # Se indica al terminar en porque puede que no se grabe
        # self.ponSiGrabar()
        tpid = tp, xid
        if tp == "P":
            tarea = TabVisual.GT_PiezaMueve(self.guion)
            desde, hasta = a1h8[:2], a1h8[2:]
            borra = self.tablero.dameNomPiezaEn(hasta)
            tarea.desdeHastaBorra(desde, hasta, borra)
            self.tablero.activaTodas()
        elif tp == "C":
            tarea = TabVisual.GT_PiezaCrea(self.guion)
            borra = self.tablero.dameNomPiezaEn(a1h8)
            tarea.desde(a1h8, borra)
            tarea.pieza(xid)
            self.tablero.activaTodas()
        elif tp == "B":
            tarea = TabVisual.GT_PiezaBorra(self.guion)
            tarea.desde(a1h8)
            tarea.pieza(xid)
        else:
            if tp == TabVisual.TP_FLECHA:
                regFlecha = self.dbFlechas[xid]
                if regFlecha is None:
                    return None, None
                regFlecha.tpid = tpid
                regFlecha.a1h8 = a1h8
                sc = self.tablero.creaFlecha(regFlecha)
                tarea = TabVisual.GT_Flecha(self.guion)
            elif tp == TabVisual.TP_MARCO:
                regMarco = self.dbMarcos[xid]
                if regMarco is None:
                    return None, None
                regMarco.tpid = tpid
                regMarco.a1h8 = a1h8
                sc = self.tablero.creaMarco(regMarco)
                tarea = TabVisual.GT_Marco(self.guion)
            elif tp == TabVisual.TP_SVG:
                regSVG = self.dbSVGs[xid]
                if regSVG is None:
                    return None, None
                regSVG.tpid = tpid
                regSVG.a1h8 = a1h8
                sc = self.tablero.creaSVG(regSVG, siEditando=True)
                tarea = TabVisual.GT_SVG(self.guion)
            elif tp == TabVisual.TP_MARKER:
                regMarker = self.dbMarkers[xid]
                if regMarker is None:
                    return None, None
                regMarker.tpid = tpid
                regMarker.a1h8 = a1h8
                sc = self.tablero.creaMarker(regMarker, siEditando=True)
                tarea = TabVisual.GT_Marker(self.guion)
            sc.ponRutinaPulsada(None, tarea.id())
            tarea.itemSC(sc)

        tarea.marcado(True)
        tarea.registro((tp, xid, a1h8))
        fila = self.guion.nuevaTarea(tarea, fila)

        return tarea, fila
Example #13
0
    def execMenuSP(self, tipo, siInsertar):
        if siInsertar:
            fila = self.g_guion.recno()
            filaIni = fila
        else:
            fila = -1
            filaIni = len(self.guion)

        if tipo == "PI":
            fen = self.tablero.fenActual()
            fen = WinPosition.editarPosicion(self, VarGen.configuracion, fen)
            if fen is None:
                return None

            nombre = self.editaNombre(_("Start position"))
            if nombre is None:
                return

            tarea = TabVisual.GT_Posicion()
            if not fen:
                fen = ControlPosicion.FEN_INICIAL
            tarea.fen(fen)
            tarea.nombre(nombre)
            self.guion.nuevaTarea(tarea, fila)
            self.gridPonValor(None, filaIni, None, True)

        elif tipo == "PP":
            texto = QTUtil.traePortapapeles()
            if texto:
                cp = ControlPosicion.ControlPosicion()
                try:
                    nombre = self.editaNombre(_("Start position"))
                    if nombre is None:
                        return
                    cp.leeFen(str(texto))
                    tarea = TabVisual.GT_Posicion()
                    tarea.fen(cp.fen())
                    tarea.nombre(nombre)
                    self.guion.nuevaTarea(tarea, fila)
                    self.gridPonValor(None, filaIni, None, True)
                except:
                    return None
        elif tipo == "PA":
            nombre = self.editaNombre(_("Start position"))
            if nombre is None:
                return
            tarea = TabVisual.GT_Posicion()
            tarea.fen(self.tablero.fenActual())
            tarea.nombre(nombre)
            self.guion.nuevaTarea(tarea, fila)
        else:
            if tipo == "PGNF":
                unpgn = PantallaPGN.eligePartida(self)
                partida = unpgn.partida if unpgn else None
            else:
                pgn = QTUtil.traePortapapeles()
                partida = PantallaTabVPartidas.texto2partida(
                    self, pgn) if pgn else None
            if partida and partida.numJugadas():
                w = PantallaTabVPartidas.W_EligeMovimientos(self, partida)
                if w.exec_():
                    for jg in w.resultado:
                        tarea = TabVisual.GT_Jugada()
                        tarea.jugada(jg)
                        self.guion.nuevaTarea(tarea, fila)
                        if fila != -1:
                            fila += 1
                else:
                    return None
            else:
                return None

        self.g_guion.goto(filaIni, 0)
        self.g_guion.refresh()
Example #14
0
    def __init__(self, tableroOwner):

        self.leeRecursos()

        self.tableroOwner = tableroOwner
        titulo = _("Director")
        icono = Iconos.Director()
        extparam = "tabdirector"
        QTVarios.WDialogo.__init__(self, tableroOwner, titulo, icono, extparam)

        liAcciones = [
            (_("Quit"), Iconos.MainMenu(), self.terminar),
            None,
            (_("Arrows"), Iconos.Flechas(), self.flechas),
            None,
            (_("Boxes"), Iconos.Marcos(), self.marcos),
            None,
            (_("Images"), Iconos.SVGs(), self.svgs),
            None,
            (_("Markers"), Iconos.Markers(), self.markers),
            None,
            None,
            (_("Clipboard"), Iconos.Clip(), self.portapapeles),
            None,
            (_("Save") + " png", Iconos.GrabarFichero(), self.grabarFichero),
            None,
        ]
        tb = Controles.TBrutina(self, liAcciones, siTexto=False, tamIcon=32)

        pbLimpia = Controles.PB(self,
                                _("Clean main board"),
                                self.limpiaTableroOwner,
                                plano=False)
        self.siTabCoord = self.dbConfig["COORDINADOS"]
        if self.siTabCoord is None:
            self.siTabCoord = self.dbConfig["COORDINADOS"] = True
        self.chTabCoord = Controles.CHB(self, _("Boards coordinated"),
                                        self.siTabCoord)
        self.chTabCoord.capturaCambiado(self, self.cambiadoTabCoord)
        pbCoordina = Controles.PB(self, "", self.coordinaTableros).ponIcono(
            Iconos.Coordina()).anchoFijo(30)

        # Tablero
        confTablero = VarGen.configuracion.confTablero(
            "Director", 24, padre=tableroOwner.confTablero.id())
        self.tablero = Tablero.TableroDirector(self, confTablero)
        self.tablero.crea()
        self.tablero.ponDispatchEventos(self.dispatch)
        self.tablero.dispatchSize(self.tableroCambiadoTam)
        self.tablero.baseCasillasSC.setAcceptDrops(True)
        self.tablero.ponMensajero(self.muevePieza)

        self.tablero.activaTodas()

        self.guion = TabVisual.Guion()
        self.nomGuion = ""

        # Tools
        listaPiezas = QTVarios.ListaPiezas(self,
                                           "P,N,B,R,Q,K,p,n,b,r,q,k",
                                           self.tablero,
                                           18,
                                           margen=0)

        # Guion
        liAcciones = [
            (_("New"), Iconos.Nuevo(), self.gnuevo),
            (_("Insert"), Iconos.Insertar(), self.ginsertar),
            (_("Copy"), Iconos.Copiar(), self.gcopiar), None,
            (_("Remove"), Iconos.Borrar(), self.gborrar), None,
            (_("Up"), Iconos.Arriba(), self.garriba),
            (_("Down"), Iconos.Abajo(), self.gabajo), None,
            (_("Mark"), Iconos.Marcar(), self.gmarcar), None,
            (_("Save"), Iconos.Grabar(), self.ggrabarGuion),
            (_("Open"), Iconos.Recuperar(), self.grecuperarGuion), None,
            (_("Remove script"), Iconos.Delete(), self.geliminarGuion)
        ]
        tbGuion = Controles.TBrutina(self,
                                     liAcciones,
                                     siTexto=False,
                                     tamIcon=20)
        oColumnas = Columnas.ListaColumnas()
        oColumnas.nueva("DIRECTOR", "0", 20, siCentrado=True, siChecked=True)
        oColumnas.nueva("MARCADO", "1", 20, siCentrado=True, siChecked=True)
        oColumnas.nueva("TIPO", _("Type"), 50, siCentrado=True)
        oColumnas.nueva("NOMBRE",
                        _("Name"),
                        100,
                        siCentrado=True,
                        edicion=Delegados.LineaTextoUTF8())
        oColumnas.nueva("INFO", _("Information"), 100, siCentrado=True)
        self.g_guion = Grid.Grid(self,
                                 oColumnas,
                                 siCabeceraMovible=False,
                                 siEditable=True,
                                 siSeleccionMultiple=True)
        self.g_guion.gotop()
        self.g_guion.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                   QtGui.QSizePolicy.Expanding)

        self.registrarGrid(self.g_guion)

        # Visuales
        self.dragBanda = QTVarios.DragBanda(self, (5, 5), 32, margen=0)

        # Botones
        lyLC = Colocacion.H().control(pbLimpia).control(pbCoordina).control(
            self.chTabCoord)

        lyTB = Colocacion.V()
        lyTB.controlc(self.dragBanda)
        lyTB.control(self.tablero)
        lyTB.control(listaPiezas)
        lyTB.otro(lyLC)
        lyTB.control(tbGuion)
        lyTB.control(self.g_guion)
        lyTB.margen(0)

        # Layout
        layout = Colocacion.V().control(tb).otro(lyTB).margen(3)
        self.setLayout(layout)

        self.recuperarVideo()

        self.actualizaBandas()
        li = self.dbConfig["DRAGBANDA"]
        if li:
            self.dragBanda.recuperar(li)

        self.ultDesde = "d4"
        self.ultHasta = "e5"

        self.compruebaTabCoord()

        self.tablero.setFocus()

        self.importaOtroTablero()