def mousePressEvent(self, event):
        siRight = event.button() == QtCore.Qt.RightButton
        p = event.pos()
        a1h8 = self.punto2a1h8(p)
        m = int(event.modifiers())
        is_ctrl = (m & QtCore.Qt.ControlModifier) > 0
        is_shift = (m & QtCore.Qt.ShiftModifier) > 0
        is_alt = (m & QtCore.Qt.AltModifier) > 0

        li_tareas = self.guion.tareasPosicion(p)

        if siRight and is_shift and is_alt:
            pz_borrar = self.board.dameNomPiezaEn(a1h8)
            menu = Controles.Menu(self.board)
            dicPieces = TrListas.dicNomPiezas()
            icoPiece = self.board.piezas.icono

            if pz_borrar or len(li_tareas):
                mrem = menu.submenu(_("Remove"), Iconos.Delete())
                if pz_borrar:
                    label = dicPieces[pz_borrar.upper()]
                    mrem.opcion(("rem_pz", None), label, icoPiece(pz_borrar))
                    mrem.separador()
                for pos_guion, tarea in li_tareas:
                    label = "%s - %s - %s" % (tarea.txt_tipo(), tarea.name(),
                                              tarea.info())
                    mrem.opcion(("rem_gr", pos_guion), label, Iconos.Delete())
                    mrem.separador()
                menu.separador()

            for pz in "KQRBNPkqrbnp":
                if pz != pz_borrar:
                    if pz == "k":
                        menu.separador()
                    menu.opcion(("create", pz), dicPieces[pz.upper()],
                                icoPiece(pz))
            resp = menu.lanza()
            if resp is not None:
                orden, arg = resp
                if orden == "rem_gr":
                    self.w.g_guion.goto(arg, 0)
                    self.w.borrar_lista()
                elif orden == "rem_pz":
                    self.w.creaTarea("B", pz_borrar, a1h8, -1)

                elif orden == "create":
                    self.w.creaTarea("C", arg, a1h8, -1)
            return True

        if self.director:
            return self.mousePressEvent_Drop(event)

        self.w.boardPress(event, a1h8, siRight, is_shift, is_alt, is_ctrl)

        return True
    def mousePressEvent(self, event):
        p = event.pos()
        a1h8 = self.punto2a1h8(p)
        if event.button() == QtCore.Qt.LeftButton:
            m = int(event.modifiers())
            siCtrl = (m & QtCore.Qt.ControlModifier) > 0
            if siCtrl:
                li_tareas = self.guion.tareasPosicion(p)
                if li_tareas:
                    pos_guion, tarea = li_tareas[0]
                    self.w.g_guion.goto(pos_guion, 0)
                    self.w.gborrar([
                        pos_guion,
                    ])
                    return
                a1h8 = self.punto2a1h8(p)
                pz_borrar = self.tablero.dameNomPiezaEn(a1h8)
                if pz_borrar:
                    self.w.creaTarea("B", pz_borrar, a1h8, -1)
                    return

        elif event.button() == QtCore.Qt.RightButton:
            m = int(event.modifiers())
            siCtrl = (m & QtCore.Qt.ControlModifier) > 0
            li_tareas = self.guion.tareasPosicion(p)
            if siCtrl and len(li_tareas) > 0:
                pos_guion, tarea = li_tareas[0]
                self.w.gborrar([
                    pos_guion,
                ])
                return

            pz_borrar = self.tablero.dameNomPiezaEn(a1h8)
            menu = Controles.Menu(self.tablero)
            dicPieces = TrListas.dicNomPiezas()
            icoPiece = self.tablero.piezas.icono

            if pz_borrar or len(li_tareas):
                mrem = menu.submenu(_("Remove"), Iconos.Delete())
                if pz_borrar:
                    rotulo = dicPieces[pz_borrar.upper()]
                    mrem.opcion(("rem_pz", None), rotulo, icoPiece(pz_borrar))
                    mrem.separador()
                for pos_guion, tarea in li_tareas:
                    rotulo = "%s - %s - %s" % (tarea.txt_tipo(),
                                               tarea.nombre(), tarea.info())
                    mrem.opcion(("rem_gr", pos_guion), rotulo, Iconos.Delete())
                    mrem.separador()
                menu.separador()

            for pz in "KQRBNPkqrbnp":
                if pz != pz_borrar:
                    if pz == "k":
                        menu.separador()
                    menu.opcion(("create", pz), dicPieces[pz.upper()],
                                icoPiece(pz))
            resp = menu.lanza()
            if resp is not None:
                orden, arg = resp
                if orden == "rem_gr":
                    self.w.g_guion.goto(arg, 0)
                    self.w.gborrar()
                elif orden == "rem_pz":
                    self.w.creaTarea("B", pz_borrar, a1h8, -1)

                elif orden == "create":
                    self.w.creaTarea("C", arg, a1h8, -1)

            return True

        if self.director:
            return self.mousePressEvent_Drop(event)

        self.w.tableroPress(event, a1h8)

        return True
Exemplo n.º 3
0
    def __init__(self, owner, nomPiezasOri):

        titulo = _("Blindfold") + " - " + _("Configuration")
        icono = Iconos.Ojo()
        extparam = "wblindfold"
        QTVarios.WDialogo.__init__(self, owner, titulo, icono, extparam)

        self.config = BlindfoldConfig(nomPiezasOri)
        self.nomPiezasOri = nomPiezasOri

        lbWhite = Controles.LB(self, _("White")).ponTipoLetra(peso=75, puntos=10)
        lbBlack = Controles.LB(self, _("Black")).ponTipoLetra(peso=75, puntos=10)

        self.dicWidgets = collections.OrderedDict()
        self.dicImgs = {}

        li_options = ((_("Hide"), HIDE), (_("Green"), GREY), (_("Checker"), CHECKER), (_("Show"), SHOW))
        dicNomPiezas = TrListas.dicNomPiezas()

        def haz(pz):
            tpW = self.config.dicPiezas[pz.upper()]
            tpB = self.config.dicPiezas[pz]
            lbPZw = Controles.LB(self)
            cbPZw = Controles.CB(self, li_options, tpW).capture_changes(self.reset)
            lbPZ = Controles.LB(self, dicNomPiezas[pz.upper()]).ponTipoLetra(peso=75, puntos=10)
            lbPZb = Controles.LB(self)
            cbPZb = Controles.CB(self, li_options, tpB).capture_changes(self.reset)
            self.dicWidgets[pz] = [lbPZw, cbPZw, lbPZ, lbPZb, cbPZb, None, None]

        for pz in "kqrbnp":
            haz(pz)

        btAllW = Controles.PB(self, _("All White"), self.allWhite, plano=False)
        self.cbAll = Controles.CB(self, li_options, HIDE)
        btAllB = Controles.PB(self, _("All Black"), self.allBlack, plano=False)

        btSwap = Controles.PB(self, _("Swap"), self.swap, plano=False)

        li_acciones = (
            (_("Save"), Iconos.Grabar(), "grabar"),
            None,
            (_("Cancel"), Iconos.Cancelar(), "cancelar"),
            None,
            (_("Configurations"), Iconos.Opciones(), "configurations"),
            None,
        )
        tb = Controles.TB(self, li_acciones)

        ly = Colocacion.G()
        ly.controlc(lbWhite, 0, 1).controlc(lbBlack, 0, 3)
        row = 1
        for pz in "kqrbnp":
            lbPZw, cbPZw, lbPZ, lbPZb, cbPZb, tipoW, tipoB = self.dicWidgets[pz]
            ly.control(cbPZw, row, 0)
            ly.controlc(lbPZw, row, 1)
            ly.controlc(lbPZ, row, 2)
            ly.controlc(lbPZb, row, 3)
            ly.control(cbPZb, row, 4)
            row += 1

        ly.filaVacia(row, 20)
        row += 1

        ly.controld(btAllW, row, 0, 1, 2)
        ly.control(self.cbAll, row, 2)
        ly.control(btAllB, row, 3, 1, 2)
        ly.controlc(btSwap, row + 1, 0, 1, 5)
        ly.margen(20)

        layout = Colocacion.V().control(tb).otro(ly)

        self.setLayout(layout)

        self.reset()
Exemplo n.º 4
0
    def __init__(self, owner, nomPiezasOri):

        titulo = _("Blindfold") + " - " + _("Configuration")
        icono = Iconos.Ojo()
        extparam = "wblindfold"
        QTVarios.WDialogo.__init__(self, owner, titulo, icono, extparam)

        self.config = BlindfoldConfig(nomPiezasOri)
        self.nomPiezasOri = nomPiezasOri

        lbWhite = Controles.LB(self, _("White")).ponTipoLetra(peso=75, puntos=10)
        lbBlack = Controles.LB(self, _("Black")).ponTipoLetra(peso=75, puntos=10)

        self.dicWidgets = collections.OrderedDict()
        self.dicImgs = {}

        liOpciones = (
            ( _("Hide"), HIDE ),
            ( _("Green"), GREY ),
            ( _("Checker"), CHECKER ),
            ( _("Show"), SHOW ),
        )
        dicNomPiezas = TrListas.dicNomPiezas()

        def haz(pz):
            tpW = self.config.dicPiezas[pz.upper()]
            tpB = self.config.dicPiezas[pz]
            lbPZw = Controles.LB(self)
            cbPZw = Controles.CB(self, liOpciones, tpW).capturaCambiado(self.reset)
            lbPZ = Controles.LB(self, dicNomPiezas[pz.upper()]).ponTipoLetra(peso=75, puntos=10)
            lbPZb = Controles.LB(self)
            cbPZb = Controles.CB(self, liOpciones, tpB).capturaCambiado(self.reset)
            self.dicWidgets[pz] = [lbPZw, cbPZw, lbPZ, lbPZb, cbPZb, None, None]

        for pz in "kqrbnp":
            haz(pz)

        btAllW = Controles.PB(self, _("All White"), self.allWhite, plano=False)
        self.cbAll = Controles.CB(self, liOpciones, HIDE)
        btAllB = Controles.PB(self, _("All Black"), self.allBlack, plano=False)

        btSwap = Controles.PB(self, _("Swap"), self.swap, plano=False)

        liAcciones = (  ( _("Save"), Iconos.Grabar(), "grabar" ), None,
                        ( _("Cancel"), Iconos.Cancelar(), "cancelar" ), None,
                        ( _("Configurations"), Iconos.Opciones(), "configurations" ), None,
        )
        tb = Controles.TB(self, liAcciones)

        ly = Colocacion.G()
        ly.controlc(lbWhite, 0, 1).controlc(lbBlack, 0, 3)
        fila = 1
        for pz in "kqrbnp":
            lbPZw, cbPZw, lbPZ, lbPZb, cbPZb, tipoW, tipoB = self.dicWidgets[pz]
            ly.control(cbPZw, fila, 0)
            ly.controlc(lbPZw, fila, 1)
            ly.controlc(lbPZ, fila, 2)
            ly.controlc(lbPZb, fila, 3)
            ly.control(cbPZb, fila, 4)
            fila += 1

        ly.filaVacia(fila, 20)
        fila += 1

        ly.controld(btAllW, fila, 0, 1, 2)
        ly.control(self.cbAll, fila, 2)
        ly.control(btAllB, fila, 3, 1, 2)
        ly.controlc(btSwap, fila + 1, 0, 1, 5)
        ly.margen(20)

        layout = Colocacion.V().control(tb).otro(ly)

        self.setLayout(layout)

        self.reset()