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
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 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()
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)]
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()
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
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
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()
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