Ejemplo n.º 1
0
    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()
Ejemplo n.º 2
0
    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()
Ejemplo n.º 3
0
    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()
Ejemplo n.º 4
0
    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()
Ejemplo n.º 5
0
    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()
Ejemplo n.º 6
0
    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()
Ejemplo n.º 7
0
    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()
Ejemplo n.º 8
0
    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()
Ejemplo n.º 9
0
 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]
Ejemplo n.º 10
0
 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]
Ejemplo n.º 11
0
 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]
Ejemplo n.º 12
0
 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]
Ejemplo n.º 13
0
 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]
Ejemplo n.º 14
0
 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
Ejemplo n.º 15
0
    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()
Ejemplo n.º 16
0
    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()
Ejemplo n.º 17
0
    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()
Ejemplo n.º 18
0
    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()
Ejemplo n.º 19
0
    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()
Ejemplo n.º 20
0
    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()