def informacion(self): menu = QTVarios.LCMenu(self.main_window) f = Controles.TipoLetra(puntos=10, peso=75) menu.ponFuente(f) siOpening = False for key, valor in self.game.li_tags: trad = TrListas.pgnLabel(key) if trad != key: key = trad menu.opcion(key, "%s : %s" % (key, valor), Iconos.PuntoAzul()) if key.upper() == "OPENING": siOpening = True if not siOpening: opening = self.game.opening if opening: menu.separador() nom = opening.trNombre ape = _("Opening") label = nom if ape.upper() in nom.upper() else ("%s : %s" % (ape, nom)) menu.opcion("opening", label, Iconos.PuntoNaranja()) menu.separador() menu.opcion("pgn", _("Edit PGN labels"), Iconos.PGN()) resp = menu.lanza() if resp: self.editEtiquetasPGN()
def rehaz_columnas(self): li_tags = self.dbGames.li_tags() o_columns = self.grid.o_columns si_cambios = False li_remove = [] for n, col in enumerate(o_columns.liColumnas): clave = col.clave if not (clave in li_tags) and not (clave in ("__num__", "rowid")): li_remove.append(n) if li_remove: si_cambios = True li_remove.sort(reverse=True) for n in li_remove: del o_columns.liColumnas[n] dcabs = self.dbGames.recuperaConfig("dcabs", DBgames.drots.copy()) st100 = {"Event", "Site", "White", "Black"} stActual = {col.clave for col in self.grid.o_columns.liColumnas} for tag in li_tags: if not (tag in stActual): rotulo = TrListas.pgnLabel(tag) if rotulo == tag: rotulo = dcabs.get(rotulo, rotulo) o_columns.nueva(tag, rotulo, 100 if tag in st100 else 70, centered=not (tag in ("Event", "Site"))) si_cambios = True if si_cambios: self.dbGames.reset_cache() self.grid.releerColumnas()
def informacion(self): menu = QTVarios.LCMenu(self.pantalla) f = Controles.TipoLetra(puntos=10, peso=75) menu.ponFuente(f) siOpening = False for clave, valor in self.partida.liTags: trad = TrListas.pgnLabel(clave) if trad != clave: clave = trad menu.opcion(clave, "%s : %s" % (clave, valor), Iconos.PuntoAzul()) if clave.upper() == "OPENING": siOpening = True if not siOpening: apertura = self.partida.apertura if apertura: menu.separador() nom = apertura.trNombre ape = _("Opening") rotulo = nom if ape.upper() in nom.upper() else ("%s : %s" % (ape, nom)) menu.opcion("opening", rotulo, Iconos.PuntoNaranja()) menu.separador() menu.opcion("pgn", _("Edit PGN labels"), Iconos.PGN()) resp = menu.lanza() if resp: self.editarEtiquetasPGN()
def informacion(self): menu = QTVarios.LCMenu(self.pantalla) f = Controles.TipoLetra(puntos=10, peso=75) menu.ponFuente(f) siOpening = False for clave, valor in self.liPGN: siFecha = clave.upper().endswith("DATE") trad = TrListas.pgnLabel(clave) if trad != clave: clave = trad # else: # clave = clave[0].upper()+clave[1:].lower() if siFecha: valor = valor.replace(".??", "") menu.opcion(clave, "%s : %s" % (clave, valor), Iconos.PuntoAzul()) if clave.upper() == "OPENING": siOpening = True if not siOpening: apertura = self.partida.apertura if apertura: menu.separador() nom = apertura.trNombre ape = _("Opening") rotulo = nom if ape.upper() in nom.upper() else ("%s : %s" % (ape, nom)) menu.opcion(clave, rotulo, Iconos.PuntoNaranja()) menu.separador() menu.opcion("pgn", _("Edit PGN labels"), Iconos.PGN()) resp = menu.lanza() if resp: self.editarEtiquetasPGN()
def __init__(self, procesador, winBookGuide, dbGamesFEN): QtGui.QWidget.__init__(self) self.winBookGuide = winBookGuide self.dbGamesFEN = dbGamesFEN self.procesador = procesador self.configuracion = procesador.configuracion self.infoMove = None # <-- setInfoMove self.numJugada = 0 # Se usa para indicarla al mostrar el pgn en infoMove self.terminado = False # singleShot self.liFiltro = [] self.where = None # Grid oColumnas = Columnas.ListaColumnas() oColumnas.nueva("numero", _("N."), 70, siCentrado=True) liBasic = dbGamesFEN.liCamposBase for clave in liBasic: if clave == "FEN": continue rotulo = TrListas.pgnLabel(clave) siCentrado = clave != "EVENT" ancho = 140 if clave == "FEN" else 70 # para que sirva con WBG_GamesFEN oColumnas.nueva(clave, rotulo, ancho, siCentrado=siCentrado) self.grid = Grid.Grid(self, oColumnas, siSelecFilas=True, siSeleccionMultiple=True, xid="wgamesfen") # Status bar self.status = QtGui.QStatusBar(self) self.status.setFixedHeight(22) # ToolBar liAccionesWork = [ (_("Close"), Iconos.MainMenu(), self.tw_terminar), None, (_("Database"), Iconos.DatabaseC(), self.tg_file), None, (_("New"), Iconos.Nuevo(), self.tw_nuevo, _("Add a new game")), None, (_("Edit"), Iconos.Modificar(), self.tw_editar), None, (_("First"), Iconos.Inicio(), self.tw_gotop), None, (_("Last"), Iconos.Final(), self.tw_gobottom), None, (_("Filter"), Iconos.Filtrar(), self.tw_filtrar), None, (_("Remove"), Iconos.Borrar(), self.tw_borrar),None, ] self.tbWork = Controles.TBrutina(self, liAccionesWork, tamIcon=24) self.lbName = Controles.LB(self, "").ponWrap().alinCentrado().ponColorFondoN("white", "#4E5A65").ponTipoLetra(puntos=16) lyNT = Colocacion.H().control(self.lbName) lyTB = Colocacion.H().control(self.tbWork) layout = Colocacion.V().otro(lyNT).otro(lyTB).control(self.grid).control(self.status).margen(1) self.setLayout(layout) self.setNameToolBar()
def __init__(self, procesador): titulo = _("Play against a game") super().__init__(parent=procesador.pantalla, titulo=titulo, icono=Iconos.Law(), extparam="playgame") self.procesador = procesador self.configuracion = procesador.configuracion self.recno = None self.db = PlayPGNs(self.configuracion.ficheroPlayPGN) # Historico oColumnas = Columnas.ListaColumnas() def creaCol(clave, rotulo, siCentrado=True): oColumnas.nueva(clave, rotulo, 80, siCentrado=siCentrado) # # Claves segun orden estandar liBasic = ("EVENT", "SITE", "DATE", "ROUND", "WHITE", "BLACK", "RESULT", "ECO", "FEN", "WHITEELO", "BLACKELO") for clave in liBasic: rotulo = TrListas.pgnLabel(clave) creaCol(clave, rotulo, clave != "EVENT") self.grid = Grid.Grid(self, oColumnas, siSelecFilas=True, siSeleccionMultiple=True) self.grid.setMinimumWidth(self.grid.anchoColumnas() + 20) # Tool bar liAcciones = ( (_("Close"), Iconos.MainMenu(), self.terminar), None, (_("Play"), Iconos.Empezar(), self.empezar), (_("New"), Iconos.Nuevo(), self.nuevo), None, (_("Remove"), Iconos.Borrar(), self.borrar), None, ) self.tb = Controles.TBrutina(self, liAcciones) # Colocamos lyTB = Colocacion.H().control(self.tb).margen(0) ly = Colocacion.V().otro(lyTB).control(self.grid).margen(3) self.setLayout(ly) self.registrarGrid(self.grid) self.recuperarVideo(siTam=False) self.grid.gotop()
def __init__(self, procesador): titulo = _("Play against a game") QTVarios.WDialogo.__init__(self, procesador.main_window, titulo, Iconos.Law(), "playgame") self.procesador = procesador self.configuracion = procesador.configuracion self.recno = None self.db = DBPlayGame(self.configuracion.file_play_game()) # Historico o_columns = Columnas.ListaColumnas() def creaCol(key, rotulo, centered=True): o_columns.nueva(key, rotulo, 80, centered=centered) # # Claves segun orden estandar liBasic = ("EVENT", "SITE", "DATE", "ROUND", "WHITE", "BLACK", "RESULT", "ECO", "FEN", "WHITEELO", "BLACKELO") for key in liBasic: rotulo = TrListas.pgnLabel(key) creaCol(key, rotulo, key != "EVENT") self.grid = Grid.Grid(self, o_columns, siSelecFilas=True, siSeleccionMultiple=True) self.grid.setMinimumWidth(self.grid.anchoColumnas() + 20) # Tool bar li_acciones = ( (_("Close"), Iconos.MainMenu(), self.terminar), None, (_("Play"), Iconos.Empezar(), self.play), (_("New"), Iconos.Nuevo(), self.new), None, (_("Remove"), Iconos.Borrar(), self.remove), None, ) self.tb = QTVarios.LCTB(self, li_acciones) # Colocamos lyTB = Colocacion.H().control(self.tb).margen(0) ly = Colocacion.V().otro(lyTB).control(self.grid).margen(3) self.setLayout(ly) self.register_grid(self.grid) self.restore_video(siTam=False) self.grid.gotop()
def __init__(self, procesador): titulo = _("Learn a game") QTVarios.WDialogo.__init__(self, procesador.pantalla, titulo, Iconos.PGN(), "learngame") self.procesador = procesador self.configuracion = procesador.configuracion self.db = LearnPGNs(self.configuracion.ficheroLearnPGN) # Historico oColumnas = Columnas.ListaColumnas() def creaCol(clave, rotulo, siCentrado=True): oColumnas.nueva(clave, rotulo, 80, siCentrado=siCentrado) # # Claves segun orden estandar liBasic = ("EVENT", "SITE", "DATE", "ROUND", "WHITE", "BLACK", "RESULT", "ECO", "FEN", "WHITEELO", "BLACKELO") for clave in liBasic: rotulo = TrListas.pgnLabel(clave) creaCol(clave, rotulo, clave != "EVENT") self.grid = Grid.Grid(self, oColumnas, siSelecFilas=True, siSeleccionMultiple=True) self.grid.setMinimumWidth(self.grid.anchoColumnas() + 20) # Tool bar liAcciones = ( (_("Quit"), Iconos.MainMenu(), "terminar"), None, (_("New"), Iconos.TutorialesCrear(), "nuevo"), None, (_("Remove"), Iconos.Borrar(), "borrar"), None, (_("Start"), Iconos.Empezar(), "empezar"), ) self.tb = Controles.TB(self, liAcciones) # Colocamos lyTB = Colocacion.H().control(self.tb).margen(0) ly = Colocacion.V().otro(lyTB).control(self.grid).margen(3) self.setLayout(ly) self.registrarGrid(self.grid) self.recuperarVideo(siTam=False) self.grid.gotop()
def gridDato(self, grid, fila, oColumna): if oColumna.clave == "ETIQUETA": lb = self.liPGN[fila][0] ctra = lb.upper() trad = TrListas.pgnLabel(lb) if trad != ctra: clave = trad else: if lb: clave = lb # [0].upper()+lb[1:].lower() else: clave = "" return clave return self.liPGN[fila][1]
def grid_dato(self, grid, row, o_column): if o_column.key == "ETIQUETA": lb, value = self.li_labels[row] ctra = lb.upper() trad = TrListas.pgnLabel(lb) if trad != ctra: key = trad else: if lb: key = lb else: key = "" return key return self.li_labels[row][1]
def grid_dato(self, grid, fila, oColumna): if oColumna.clave == "ETIQUETA": lb = self.li_labels[fila][0] ctra = lb.upper() trad = TrListas.pgnLabel(lb) if trad != ctra: key = trad else: if lb: key = lb # [0].upper()+lb[1:].lower() else: key = "" return key return self.li_labels[fila][1]
def grid_dato(self, grid, row, o_column): if o_column.key == "ETIQUETA": lb = self.liPGN[row][0] ctra = lb.upper() trad = TrListas.pgnLabel(lb) if trad != ctra: key = trad else: if lb: key = lb # [0].upper()+lb[1:].lower() else: key = "" return key if row < len(self.liPGN): return self.liPGN[row][1]
def lista_columnas(self): dcabs = self.dbGames.recuperaConfig("dcabs", DBgames.drots.copy()) o_columns = Columnas.ListaColumnas() o_columns.nueva("__num__", _("N."), 60, centered=True) li_tags = self.dbGames.li_tags() st100 = {"Event", "Site", "White", "Black"} for tag in li_tags: rotulo = TrListas.pgnLabel(tag) if rotulo == tag: rotulo = dcabs.get(rotulo, rotulo) centered = not (tag in ("Event", "Site")) ancho = 100 if tag in st100 else 80 o_columns.nueva(tag, rotulo, ancho, centered=centered) o_columns.nueva("rowid", _("Row ID"), 60, centered=True) return o_columns
def __init__(self, procesador): titulo = _("Learn a game") QTVarios.WDialogo.__init__(self, procesador.pantalla, titulo, Iconos.PGN(), "learngame") self.procesador = procesador self.configuracion = procesador.configuracion self.db = LearnPGNs(self.configuracion.ficheroLearnPGN) # Historico oColumnas = Columnas.ListaColumnas() def creaCol(clave, rotulo, siCentrado=True): oColumnas.nueva(clave, rotulo, 80, siCentrado=siCentrado) # # Claves segun orden estandar liBasic = ("EVENT", "SITE", "DATE", "ROUND", "WHITE", "BLACK", "RESULT", "ECO", "FEN", "WHITEELO", "BLACKELO" ) for clave in liBasic: rotulo = TrListas.pgnLabel(clave) creaCol(clave, rotulo, clave != "EVENT") self.grid = Grid.Grid(self, oColumnas, siSelecFilas=True, siSeleccionMultiple=True) self.grid.setMinimumWidth(self.grid.anchoColumnas() + 20) # Tool bar liAcciones = ( ( _("Quit"), Iconos.MainMenu(), "terminar" ), None, ( _("New"), Iconos.TutorialesCrear(), "nuevo" ), None, ( _("Remove"), Iconos.Borrar(), "borrar" ), None, ( _("Start"), Iconos.Empezar(), "empezar" ), ) self.tb = Controles.TB(self, liAcciones) # Colocamos lyTB = Colocacion.H().control(self.tb).margen(0) ly = Colocacion.V().otro(lyTB).control(self.grid).margen(3) self.setLayout(ly) self.registrarGrid(self.grid) self.recuperarVideo(siTam=False) self.grid.gotop()
def aceptar(self): dic_rev = {} for eti in self.listandard: dic_rev[TrListas.pgnLabel(eti.upper())] = eti for n, (eti, val) in enumerate(self.liPGN): if eti in dic_rev: self.liPGN[n][0] = dic_rev[eti] li = [] st = set() for n, (eti, val) in enumerate(self.liPGN): val = val.strip() if eti not in st and val: st.add(eti) li.append((eti, val)) self.liPGN = li self.guardarVideo() self.accept()
def __init__(self, procesador, winBookGuide, dbGames, wsummary, siMoves=True): QtGui.QWidget.__init__(self) self.winBookGuide = winBookGuide self.dbGames = dbGames # <--setdbGames self.procesador = procesador self.configuracion = procesador.configuracion self.siMoves = siMoves self.wsummary = wsummary self.infoMove = None # <-- setInfoMove self.summaryActivo = None # movimiento activo en summary self.numJugada = 0 # Se usa para indicarla al mostrar el pgn en infoMove self.terminado = False # singleShot self.ap = AperturasStd.ap self.liFiltro = [] self.where = None self.last_opening = None # Grid oColumnas = Columnas.ListaColumnas() oColumnas.nueva("numero", _("N."), 70, siCentrado=True) liBasic = dbGames.liCamposBase ancho = 70 for clave in liBasic: rotulo = TrListas.pgnLabel(clave) oColumnas.nueva(clave, rotulo, ancho, siCentrado=True) oColumnas.nueva("rowid", _("Row ID"), 70, siCentrado=True) oColumnas.nueva("opening", _("Opening"), 140) self.grid = Grid.Grid(self, oColumnas, siSelecFilas=True, siSeleccionMultiple=True, xid="wgames") # Status bar self.status = QtGui.QStatusBar(self) self.status.setFixedHeight(22) # ToolBar liAccionesWork = [ (_("Close"), Iconos.MainMenu(), self.tw_terminar), None, (_("File"), Iconos.File(), self.tg_file), None, (_("New"), Iconos.Nuevo(), self.tw_nuevo, _("Add a new game")), None, (_("Edit"), Iconos.Modificar(), self.tw_editar), None, (_("First"), Iconos.Inicio(), self.tw_gotop), None, (_("Last"), Iconos.Final(), self.tw_gobottom), None, (_("Filter"), Iconos.Filtrar(), self.tw_filtrar), None, (_("Remove"), Iconos.Borrar(), self.tw_borrar),None, (_("Move up"), Iconos.Arriba(), self.tw_up), None, (_("Move down"), Iconos.Abajo(), self.tw_down), None, (_("Config"), Iconos.Configurar(), self.tw_configure), None, (_("Utilities"), Iconos.Utilidades(), self.tw_utilities), None, ] self.tbWork = Controles.TBrutina(self, liAccionesWork, tamIcon=24, puntos=12) self.lbName = Controles.LB(self, "").ponWrap().alinCentrado().ponColorFondoN("white", "#4E5A65").ponTipoLetra(puntos=16) lyNT = Colocacion.H().control(self.lbName) if not siMoves: self.lbName.hide() lyTB = Colocacion.H().control(self.tbWork) layout = Colocacion.V().otro(lyNT).otro(lyTB).control(self.grid).control(self.status).margen(1) self.setLayout(layout) self.setNameToolBar() self.recuperaOrden()
def __init__(self, procesador, winBookGuide, dbGames, wsummary, siMoves=True, siFEN=False): QtGui.QWidget.__init__(self) self.winBookGuide = winBookGuide self.dbGames = dbGames # <--setdbGames self.procesador = procesador self.configuracion = procesador.configuracion self.siMoves = siMoves self.wsummary = wsummary self.infoMove = None # <-- setInfoMove self.summaryActivo = None # movimiento activo en summary self.numJugada = 0 # Se usa para indicarla al mostrar el pgn en infoMove self.liFiltro = [] self.siFiltro = False # Grid oColumnas = Columnas.ListaColumnas() oColumnas.nueva("numero", _("N."), 70, siCentrado=True) liBasic = dbGames.liCamposBase ancho = 70 for clave in liBasic: rotulo = TrListas.pgnLabel(clave) siCentrado = clave != "EVENT" if siFEN: ancho = 140 if clave == "FEN" else 70 # para que sirva con WBG_GamesFEN oColumnas.nueva(clave, rotulo, ancho, siCentrado=siCentrado) self.grid = Grid.Grid(self, oColumnas, siSelecFilas=True, siSeleccionMultiple=True, id="wgames") # Status bar self.status = QtGui.QStatusBar(self) self.btLeerMas = Controles.PB(self, _("Show more games"), rutina=self.leerMas, plano=False) self.btLeerMas.setFixedHeight(18) self.status.addPermanentWidget(self.btLeerMas) self.status.setFixedHeight(22) # ToolBar liAccionesWork = [ ( _("Close"), Iconos.MainMenu(), self.tw_terminar ), None, ( _("New"), Iconos.Nuevo(), self.tw_nuevo ), None, ( _("Edit"), Iconos.Modificar(), self.tw_editar ), None, ( _("First"), Iconos.Inicio(), self.tw_gotop ), None, ( _("Last"), Iconos.Final(), self.tw_gobottom ), None, ( _("Filter"), Iconos.Filtrar(), self.tw_filtrar ), None, ( _("Remove"), Iconos.Borrar(), self.tw_borrar ), None, None, ( _("Change"), Iconos.DatabaseF() if siFEN else Iconos.DatabaseC(), self.tg_change ), None, ( _("Import"), Iconos.MasDoc(), self.tg_importar ), None, ( _("Export"), Iconos.Grabar(), self.tg_exportar ), None, ] if not siFEN: liAccionesWork.extend([( _("Utilities"), Iconos.Utilidades(), self.tw_utilidades ), None]) self.tbWork = Controles.TBrutina(self, liAccionesWork, tamIcon=24) self.lbName = Controles.LB(self, "").ponWrap().alinCentrado().ponColorFondoN("white", "#4E5A65").ponTipoLetra( puntos=16) lyNT = Colocacion.H().control(self.lbName) if not siMoves: self.lbName.hide() lyTB = Colocacion.H().control(self.tbWork).relleno() # .control(self.tbGen) layout = Colocacion.V().otro(lyNT).otro(lyTB).control(self.grid).control(self.status).margen(1) self.setLayout(layout) self.setNameToolBar()
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()
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()