コード例 #1
0
    def grabar(self):
        if not self.lee_filtro_actual():
            return
        with Util.DicSQL(self.dbSaveNom, tabla="Filters") as dbc:
            liConf = dbc.keys(siOrdenados=True)
            if len(liConf) == 0 and len(self.liFiltro) == 0:
                return
            menu = Controles.Menu(self)
            SELECCIONA, BORRA, GRABA = range(3)
            for x in liConf:
                menu.opcion((SELECCIONA, x), x, Iconos.PuntoAzul())
            menu.separador()

            if len(self.liFiltro) > 0:
                submenu = menu.submenu(_("Save current"), Iconos.Mas())
                if liConf:
                    for x in liConf:
                        submenu.opcion((GRABA, x), x, Iconos.PuntoAmarillo())
                submenu.separador()
                submenu.opcion((GRABA, None), _("New"), Iconos.NuevoMas())

            if liConf:
                menu.separador()
                submenu = menu.submenu(_("Remove"), Iconos.Delete())
                for x in liConf:
                    submenu.opcion((BORRA, x), x, Iconos.PuntoRojo())
            resp = menu.lanza()

            if resp:
                op, nombre = resp

                if op == SELECCIONA:
                    liFiltro = dbc[nombre]
                    self.lee_filtro(liFiltro)
                elif op == BORRA:
                    if QTUtil2.pregunta(self, _X(_("Delete %1 ?"), nombre)):
                        del dbc[nombre]
                elif op == GRABA:
                    if self.lee_filtro_actual():
                        if nombre is None:
                            liGen = [FormLayout.separador]
                            liGen.append((_("Name") + ":", ""))

                            resultado = FormLayout.fedit(liGen,
                                                         title=_("Filter"),
                                                         parent=self,
                                                         icon=Iconos.Libre())
                            if resultado:
                                accion, liGen = resultado

                                nombre = liGen[0].strip()
                                if nombre:
                                    dbc[nombre] = self.liFiltro
                        else:
                            dbc[nombre] = self.liFiltro
コード例 #2
0
    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
コード例 #3
0
ファイル: Motores.py プロジェクト: garyliu33/lucaschess
    def menu(self, parent):
        menu = Controles.Menu(parent)

        rp = QTVarios.rondoPuntos()

        submenu = menu.submenu(_("Internal engines"), self.dicIconos[INTERNO])
        for cm in self.liMotoresInternos:
            clave = INTERNO, cm
            texto = cm.nombre
            icono = rp.otro()
            elo = cm.elo
            submenu.opcion(clave, "%s (%d)" % (texto, elo), icono)
        menu.separador()
        submenu = menu.submenu(_("External engines"), self.dicIconos[EXTERNO])
        for cm in self.liMotoresExternos:
            clave = EXTERNO, cm
            texto = cm.clave
            icono = rp.otro()
            submenu.opcion(clave, texto, icono)
        submenu.separador()
        clave = EXTERNO, None
        texto = _("Edition")
        icono = Iconos.Mas()
        submenu.opcion(clave, texto, icono)

        menu.separador()
        submenu = menu.submenu(_("GM engines"), self.dicIconos[MICGM])
        for gm, li in self.dicMotoresGM.iteritems():
            icono = rp.otro()
            submenuGM = submenu.submenu(gm, icono)
            for cm in li:
                clave = MICGM, cm
                texto = cm.alias.split(" ")[2]
                submenuGM.opcion(clave, texto, icono)
            submenuGM.separador()

        menu.separador()
        menu.opcion(( MICPER, None), _("Tourney engines"), self.dicIconos[MICPER])

        menu.separador()
        submenu = menu.submenu(_("Engines with fixed elo"), self.dicIconos[FIXED])
        li = self.dicMotoresFixedElo.keys()
        li.sort()
        for elo in li:
            icono = rp.otro()
            submenuElo = submenu.submenu(str(elo), icono)
            lien = self.dicMotoresFixedElo[elo]
            lien.sort(key=lambda x: x.nombre)
            for cm in lien:
                clave = FIXED, cm
                texto = cm.nombre
                submenuElo.opcion(clave, texto, icono)
            submenuElo.separador()

        return menu.lanza()
コード例 #4
0
    def historico(self):
        if self.li_histo:
            menu = Controles.Menu(self.parent, puntos=8)
            menu.setToolTip(_("To choose: <b>left button</b> <br>To erase: <b>right button</b>"))
            for file in self.li_histo:
                menu.opcion(file, file, Iconos.PuntoAzul())

            resp = menu.lanza()
            if resp:
                if menu.siIzq:
                    self.boton.ponFichero(resp)
                elif menu.siDer:
                    if QTUtil2.pregunta(self.parent, _("Do you want to remove file %s from the list?") % resp):
                        del self.li_histo[self.li_histo.index(resp)]
コード例 #5
0
    def configuraciones(self):
        fichero = self.configuracion.ficheroEntMaquinaConf
        dbc = Util.DicSQL(fichero)
        liConf = dbc.keys(siOrdenados=True)
        menu = Controles.Menu(self)
        SELECCIONA, BORRA, AGREGA = range(3)
        for x in liConf:
            menu.opcion((SELECCIONA, x), x, Iconos.PuntoAzul())
        menu.separador()
        menu.opcion((AGREGA, None), _("Save current configuration"),
                    Iconos.Mas())
        if liConf:
            menu.separador()
            submenu = menu.submenu(_("Remove"), Iconos.Delete())
            for x in liConf:
                submenu.opcion((BORRA, x), x, Iconos.PuntoRojo())
        resp = menu.lanza()

        if resp:
            op, k = resp

            if op == SELECCIONA:
                dic = dbc[k]
                self.muestraDic(dic)
            elif op == BORRA:
                if QTUtil2.pregunta(self, _X(_("Delete %1 ?"), k)):
                    del dbc[k]
            elif op == AGREGA:
                liGen = [(None, None)]

                liGen.append((_("Name") + ":", ""))

                resultado = FormLayout.fedit(liGen,
                                             title=_("Name"),
                                             parent=self,
                                             icon=Iconos.Libre())
                if resultado:
                    accion, liGen = resultado

                    nombre = liGen[0].strip()
                    if nombre:
                        dbc[nombre] = self.creaDic()

        dbc.close()
コード例 #6
0
def pide_usuario(liUsuarios):
    # Miramos si alguno tiene key, si es asi, lanzamos ventana
    siPass = False
    for usuario in liUsuarios:
        if usuario.password:
            siPass = True
    if siPass:
        intentos = 3
        while True:
            w = WPassword(liUsuarios)
            if w.exec_():
                usuario = w.resultado()
                if usuario:
                    break
            else:
                sys.exit()
                return None
            intentos -= 1
            if intentos == 0:
                return None
    else:
        if len(liUsuarios) <= 1:
            return None
        else:
            menu = Controles.Menu(
                None
            )  # No puede ser LCmenu, ya que todavia no existe la configuration
            menu.ponFuente(Controles.TipoLetra(puntos=14))
            menu.opcion(None, _("Select your user"), Iconos.Usuarios())
            menu.separador()

            for usuario in liUsuarios:
                menu.opcion(
                    usuario, usuario.name,
                    Iconos.Naranja() if usuario.number > 0 else Iconos.Verde())
                menu.separador()

            usuario = menu.lanza()

    return usuario
コード例 #7
0
ファイル: Gui.py プロジェクト: gamaBHC/lucaschessR
def pide_usuario(liUsuarios):
    # Miramos si alguno tiene key, si es asi, lanzamos ventana
    siPass = False
    for usuario in liUsuarios:
        if usuario.password:
            siPass = True
    if siPass:
        intentos = 3
        while True:
            w = WPassword(liUsuarios)
            if w.exec_():
                usuario = w.resultado()
                if usuario:
                    break
            else:
                return None
            intentos -= 1
            if intentos == 0:
                return None
    else:
        if len(liUsuarios) == 1:
            usuario = liUsuarios[0]
        else:
            menu = Controles.Menu(
                None
            )  # No puede ser LCmenu, ya que todavia no existe la configuration
            menu.separador()

            for usuario in liUsuarios:
                menu.opcion(usuario, usuario.name, Iconos.PuntoNaranja())
                menu.separador()

            usuario = menu.lanza()
            if usuario is None:
                return None

    return usuario
コード例 #8
0
    def menu(self, parent):
        menu = Controles.Menu(parent)

        rp = QTVarios.rondoPuntos()

        submenu = menu.submenu(_("Internal engines"), self.dicIconos[INTERNO])
        for cm in self.liMotoresInternos:
            clave = INTERNO, cm
            texto = cm.nombre
            icono = rp.otro()
            elo = cm.elo
            submenu.opcion(clave, "%s (%d)" % (texto, elo), icono)
        menu.separador()
        submenu = menu.submenu(_("External engines"), self.dicIconos[EXTERNO])
        for cm in self.liMotoresExternos:
            clave = EXTERNO, cm
            texto = cm.clave
            icono = rp.otro()
            submenu.opcion(clave, texto, icono)
        submenu.separador()
        clave = EXTERNO, None
        texto = _("Edition")
        icono = Iconos.Mas()
        submenu.opcion(clave, texto, icono)

        menu.separador()
        submenu = menu.submenu(_("GM engines"), self.dicIconos[MICGM])
        for cm in self.liMotoresGM:
            icono = rp.otro()
            clave = MICGM, cm
            texto = cm.nombre
            submenu.opcion(clave, texto, icono)
            submenu.separador()

        menu.separador()
        menu.opcion((MICPER, None), _("Tourney engines"),
                    self.dicIconos[MICPER])

        menu.separador()
        submenu = menu.submenu(_("Engines with fixed elo"),
                               self.dicIconos[FIXED])
        li = self.dicMotoresFixedElo.keys()
        li.sort()
        for elo in li:
            icono = rp.otro()
            submenuElo = submenu.submenu(str(elo), icono)
            lien = self.dicMotoresFixedElo[elo]
            lien.sort(key=lambda x: x.nombre)
            for cm in lien:
                clave = FIXED, cm
                texto = cm.nombre
                submenuElo.opcion(clave, texto, icono)
            submenuElo.separador()

        menu.separador()
        menu1 = menu.submenu(_("Opponents for young players"),
                             Iconos.RivalesMP())
        for cm in self.liIrina:
            menu1.opcion((IRINA, cm), cm.nombre, cm.icono)

        menu.separador()
        menu1 = menu.submenu(_("Lucas-Elo"), Iconos.Elo())
        ico = QTVarios.rondoPuntos()
        limenus = []
        for x in range(1000, 2250, 250):
            limenus.append(menu1.submenu("%d - %d" % (x, x + 250), ico.otro()))

        for cm in self.liElo:
            submenu = limenus[cm.elo / 250 - 4]
            submenu.opcion((ELO, cm), cm.nombre, ico.otro())

        return menu.lanza()
コード例 #9
0
    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