def createPlayerUIGlobals(discoverer): global playerItems global analyzerItems global allEngineItems playerItems = [] analyzerItems = [] allEngineItems = [] for variantClass in variants.values(): playerItems += [[(ipeople, _("Human Being"))]] for engine in discoverer.getEngines(): name = engine["name"] c = discoverer.getCountry(engine) path = addDataPrefix("flags/%s.png" % c) if c and os.path.isfile(path): flag_icon = get_pixbuf(path) else: path = addDataPrefix("flags/unknown.png") flag_icon = get_pixbuf(path) allEngineItems.append((flag_icon, name)) for variant in discoverer.getEngineVariants(engine): playerItems[variant] += [(flag_icon, name)] if discoverer.is_analyzer(engine): analyzerItems.append((flag_icon, name))
def getEngineVariants(self, engine): UCI_without_standard_variant = False engine_variants = [] for variantClass in variants.values(): if variantClass.standard_rules: engine_variants.append(variantClass.variant) else: if engine.get("variants"): if variantClass.cecp_name in engine.get("variants"): engine_variants.append(variantClass.variant) # UCI knows Chess960 only if engine.get("options"): for option in engine["options"]: if option["name"] == "UCI_Chess960" and \ variantClass.cecp_name == "fischerandom": engine_variants.append(variantClass.variant) elif option["name"] == "UCI_Variant": UCI_without_standard_variant = "chess" not in option["choices"] if variantClass.cecp_name in option["choices"] or \ variantClass.cecp_name.lower().replace("-", "") in option["choices"]: engine_variants.append(variantClass.variant) if UCI_without_standard_variant: engine_variants.remove(NORMALCHESS) return engine_variants
def getEngineVariants(self, engine): UCI_without_standard_variant = False engine_variants = [] for variantClass in variants.values(): if variantClass.standard_rules: engine_variants.append(variantClass.variant) else: if engine.get("variants"): if variantClass.cecp_name in engine.get("variants"): engine_variants.append(variantClass.variant) # UCI knows Chess960 only if engine.get("options"): for option in engine["options"]: if option["name"] == "UCI_Chess960" and \ variantClass.cecp_name == "fischerandom": engine_variants.append(variantClass.variant) elif option["name"] == "UCI_Variant": UCI_without_standard_variant = "chess" not in option[ "choices"] if variantClass.cecp_name in option["choices"] or \ variantClass.cecp_name.lower().replace("-", "") in option["choices"]: engine_variants.append(variantClass.variant) # Fix #1444 Unsupported variant on the home screen if UCI_without_standard_variant: # this fix causes problems in TaskerManager and newGameDialog # TODO: create correct fix if 0: engine_variants.remove(NORMALCHESS) return engine_variants
def getEngineVariants(self, engine): UCI_without_standard_variant = False engine_variants = [] for variantClass in variants.values(): if variantClass.standard_rules: engine_variants.append(variantClass.variant) else: if engine.get("variants"): if variantClass.cecp_name in engine.get("variants"): engine_variants.append(variantClass.variant) # UCI knows Chess960 only if engine.get("options"): for option in engine["options"]: if option["name"] == "UCI_Chess960" and \ variantClass.cecp_name == "fischerandom": engine_variants.append(variantClass.variant) elif option["name"] == "UCI_Variant": UCI_without_standard_variant = "chess" not in option["choices"] if variantClass.cecp_name in option["choices"] or \ variantClass.cecp_name.lower().replace("-", "") in option["choices"]: engine_variants.append(variantClass.variant) # Fix #1444 Unsupported variant on the home screen if UCI_without_standard_variant: # this fix causes problems in TaskerManager and newGameDialog # TODO: create correct fix if 0: engine_variants.remove(NORMALCHESS) return engine_variants
def getEngineVariants(self, engine): UCI_without_standard_variant = False engine_variants = [] for variantClass in variants.values(): if variantClass.standard_rules: engine_variants.append(variantClass.variant) else: if engine.get("variants"): if variantClass.cecp_name in engine.get("variants"): engine_variants.append(variantClass.variant) # UCI knows Chess960 only if engine.get("options"): for option in engine["options"]: if option["name"] == "UCI_Chess960" and \ variantClass.cecp_name == "fischerandom": engine_variants.append(variantClass.variant) elif option["name"] == "UCI_Variant": UCI_without_standard_variant = "chess" not in option[ "choices"] if variantClass.cecp_name in option["choices"] or \ variantClass.cecp_name.lower().replace("-", "") in option["choices"]: engine_variants.append(variantClass.variant) if UCI_without_standard_variant: engine_variants.remove(NORMALCHESS) return engine_variants
def createPlayerUIGlobals(discoverer): global playerItems global analyzerItems global allEngineItems playerItems = [] analyzerItems = [] allEngineItems = [] for variantClass in variants.values(): playerItems += [[(ipeople, _("Human Being"))]] for engine in discoverer.getEngines(): name = engine["name"] c = discoverer.getCountry(engine) path = addDataPrefix("flags/%s.png" % c) if c and os.path.isfile(path): flag_icon = get_pixbuf(path) else: path = addDataPrefix("flags/unknown.png") flag_icon = get_pixbuf(path) allEngineItems.append((flag_icon, name)) for variant in discoverer.getEngineVariants(engine): playerItems[variant] += [(flag_icon, name)] if discoverer.is_analyzer(engine): analyzerItems.append((flag_icon, name))
def __initVariantRadio(cls, confid, radiobutton, configImage, default): model = Gtk.TreeStore(str) treeview = Gtk.TreeView(model) treeview.set_headers_visible(False) treeview.append_column( Gtk.TreeViewColumn(None, Gtk.CellRendererText(), text=0)) alignment = Gtk.Alignment.new(1, 1, 1, 1) alignment.set_padding(6, 6, 12, 12) alignment.add(treeview) ImageMenu.switchWithImage(configImage, alignment) groupNames = { VARIANTS_BLINDFOLD: _("Blindfold"), VARIANTS_ODDS: _("Odds"), VARIANTS_SHUFFLE: _("Shuffle"), VARIANTS_OTHER: _("Other (standard rules)"), VARIANTS_OTHER_NONSTANDARD: _("Other (non standard rules)"), VARIANTS_ASEAN: _("Asian variants"), } specialVariants = [ v for v in variants.values() if v != NormalBoard and v.variant not in UNSUPPORTED ] specialVariants = sorted(specialVariants, key=attrgetter("variant_group")) groups = groupby(specialVariants, attrgetter("variant_group")) pathToVariant = {} variantToPath = {} for i, (id, group) in enumerate(groups): iter = model.append(None, (groupNames[id], )) for variant in group: subiter = model.append(iter, (variant.name, )) path = model.get_path(subiter) pathToVariant[path.to_string()] = variant.variant variantToPath[variant.variant] = path.to_string() treeview.expand_row(Gtk.TreePath(i), True) selection = treeview.get_selection() selection.set_mode(Gtk.SelectionMode.BROWSE) def selfunc(selection, store, path, path_selected, data): return path.get_depth() > 1 selection.set_select_function(selfunc, None) variant = conf.get(confid, default) if variant in variantToPath: selection.select_path(variantToPath[variant]) def callback(selection): model, iter = selection.get_selected() if iter: radiobutton.set_label("%s" % model.get(iter, 0) + _(" chess")) path = model.get_path(iter) variant = pathToVariant[path.to_string()] conf.set(confid, variant) selection.connect("changed", callback) callback(selection)
def __initVariantRadio(cls, confid, radiobutton, configImage): model = Gtk.TreeStore(str) treeview = Gtk.TreeView(model) treeview.set_headers_visible(False) treeview.append_column(Gtk.TreeViewColumn(None, Gtk.CellRendererText(), text=0)) alignment = Gtk.Alignment.new(1, 1, 1, 1) alignment.set_padding(6, 6, 12, 12) alignment.add(treeview) ImageMenu.switchWithImage(configImage, alignment) groupNames = {VARIANTS_BLINDFOLD: _("Blindfold"), VARIANTS_ODDS: _("Odds"), VARIANTS_SHUFFLE: _("Shuffle"), VARIANTS_OTHER: _("Other (standard rules)"), VARIANTS_OTHER_NONSTANDARD: _("Other (non standard rules)"), VARIANTS_ASEAN: _("Asian variants"), } specialVariants = [v for v in variants.values() if v != NormalBoard and v.variant not in UNSUPPORTED ] specialVariants = sorted(specialVariants, key=attrgetter("variant_group")) groups = groupby(specialVariants, attrgetter("variant_group")) pathToVariant = {} variantToPath = {} for i, (id, group) in enumerate(groups): iter = model.append(None, (groupNames[id], )) for variant in group: subiter = model.append(iter, (variant.name, )) path = model.get_path(subiter) pathToVariant[path.to_string()] = variant.variant variantToPath[variant.variant] = path.to_string() treeview.expand_row(Gtk.TreePath(i), True) selection = treeview.get_selection() selection.set_mode(Gtk.SelectionMode.BROWSE) def selfunc(selection, store, path, path_selected, data): return path.get_depth() > 1 selection.set_select_function(selfunc, None) variant = conf.get(confid) if variant in variantToPath: selection.select_path(variantToPath[variant]) def callback(selection): model, iter = selection.get_selected() if iter: radiobutton.set_label("%s" % model.get(iter, 0) + _(" chess")) path = model.get_path(iter) variant = pathToVariant[path.to_string()] conf.set(confid, variant) selection.connect("changed", callback) callback(selection)
def setOptionVariant (self, variant): if self.features["variants"] is None: log.warning("setOptionVariant: engine doesn't support variants", extra={"task":self.defname}) return if variant in variants.values() and not variant.standard_rules: assert variant.cecp_name in self.features["variants"], \ "%s doesn't support %s variant" % (self, variant.cecp_name) self.optionQueue.append("variant %s" % variant.cecp_name)
def setOptionVariant (self, variant): if self.features["variants"] is None: log.warning("setOptionVariant: engine doesn't support variants", extra={"task":self.defname}) return if variant in variants.values() and not variant.standard_rules: assert variant.cecp_name in self.features["variants"], \ "%s doesn't support %s variant" % (self, variant.cecp_name) self.optionQueue.append("variant %s" % variant.cecp_name)
def getEngineVariants (self, engine): for variantClass in variants.values(): if variantClass.standard_rules: yield variantClass.board.variant else: if engine.get("variants"): if variantClass.cecp_name in engine.get("variants"): yield variantClass.board.variant # UCI knows Chess960 only if variantClass.cecp_name == "fischerandom" and engine.get("options"): for option in engine["options"]: if option["name"] == "UCI_Chess960": yield variantClass.board.variant
def getEngineVariants (self, engine): for variantClass in variants.values(): if variantClass.standard_rules: yield variantClass.board.variant else: for feature in engine.findall("cecp-features/feature"): if feature.get("name") == "variants": if variantClass.cecp_name in feature.get('value'): yield variantClass.board.variant # UCI knows Chess960 only if variantClass.cecp_name == "fischerandom": for option in engine.findall('options/check-option'): if option.get("name") == "UCI_Chess960": yield variantClass.board.variant
def getEngineVariants(self, engine): for variantClass in variants.values(): if variantClass.standard_rules: yield variantClass.board.variant else: for feature in engine.findall("cecp-features/feature"): if feature.get("name") == "variants": if variantClass.cecp_name in feature.get('value'): yield variantClass.board.variant # UCI knows Chess960 only if variantClass.cecp_name == "fischerandom": for option in engine.findall('options/check-option'): if option.get("name") == "UCI_Chess960": yield variantClass.board.variant
def createPlayerUIGlobals (discoverer): global playerItems global smallPlayerItems for variantClass in variants.values(): playerItems += [ [(ipeople, _("Human Being"))] ] smallPlayerItems += [ [(speople, _("Human Being"))] ] for engine in discoverer.getEngines().values(): name = discoverer.getName(engine) c = discoverer.getCountry(engine) path = addDataPrefix("flags/%s.png" % c) if c and os.path.isfile(path): flag_icon = gtk.gdk.pixbuf_new_from_file(path) else: flag_icon = inotebook for variant in discoverer.getEngineVariants(engine): playerItems[variant] += [(flag_icon, name)] smallPlayerItems[variant] += [(snotebook, name)]
def getEngineVariants (self, engine): for variantClass in variants.values(): if variantClass.standard_rules: yield variantClass.board.variant else: if engine.get("variants"): if variantClass.cecp_name in engine.get("variants"): yield variantClass.board.variant # UCI knows Chess960 only if engine.get("options"): for option in engine["options"]: if option["name"] == "UCI_Chess960" and variantClass.cecp_name == "fischerandom": yield variantClass.board.variant elif option["name"] == "UCI_Variant": if variantClass.cecp_name in option["choices"] or \ variantClass.cecp_name.lower().replace("-", "") in option["choices"]: yield variantClass.board.variant
def getEngineVariants (self, engine): for variantClass in variants.values(): if variantClass.standard_rules: yield variantClass.variant else: if engine.get("variants"): if variantClass.cecp_name in engine.get("variants"): yield variantClass.variant # UCI knows Chess960 only if engine.get("options"): for option in engine["options"]: if option["name"] == "UCI_Chess960" and variantClass.cecp_name == "fischerandom": yield variantClass.variant elif option["name"] == "UCI_Variant": if variantClass.cecp_name in option["choices"] or \ variantClass.cecp_name.lower().replace("-", "") in option["choices"]: yield variantClass.variant
def __initVariantRadio (cls, confid, radiobutton, configImage, default): model = gtk.TreeStore(str) treeview = gtk.TreeView(model) treeview.set_headers_visible(False) treeview.append_column(gtk.TreeViewColumn(None, gtk.CellRendererText(), text=0)) alignment = gtk.Alignment(1,1,1,1) alignment.set_padding(6,6,12,12) alignment.add(treeview) ImageMenu.switchWithImage(configImage, alignment) groupNames = {VARIANTS_BLINDFOLD: _("Blindfold"), VARIANTS_ODDS: _("Odds"), VARIANTS_SHUFFLE: _("Shuffle"), VARIANTS_OTHER: _("Other (standard rules)"), VARIANTS_OTHER_NONSTANDARD: _("Other (non standard rules)"), } specialVariants = [v for v in variants.values() if v != NormalChess and v.board.variant not in UNSUPPORTED] groups = groupby(specialVariants, attrgetter("variant_group")) pathToVariant = {} variantToPath = {} for i, (id, group) in enumerate(groups): iter = model.append(None, (groupNames[id],)) for variant in group: subiter = model.append(iter, (variant.name,)) path = model.get_path(subiter) pathToVariant[path] = variant.board.variant variantToPath[variant.board.variant] = path treeview.expand_row((i,), True) selection = treeview.get_selection() selection.set_mode(gtk.SELECTION_BROWSE) selection.set_select_function(lambda path: len(path) > 1) selection.select_path(variantToPath[conf.get(confid, default)]) def callback (selection): model, iter = selection.get_selected() if iter: radiobutton.set_label("%s" % model.get(iter, 0) + _(" chess")) path = model.get_path(iter) variant = pathToVariant[path] conf.set(confid, variant) selection.connect("changed", callback) callback(selection)
def __initVariantRadio (cls, confid, radiobutton, configImage, default): model = gtk.TreeStore(str) treeview = gtk.TreeView(model) treeview.set_headers_visible(False) treeview.append_column(gtk.TreeViewColumn(None, gtk.CellRendererText(), text=0)) alignment = gtk.Alignment(1,1,1,1) alignment.set_padding(6,6,12,12) alignment.add(treeview) ImageMenu.switchWithImage(configImage, alignment) groupNames = {VARIANTS_BLINDFOLD: _("Blindfold"), VARIANTS_ODDS: _("Odds"), VARIANTS_SHUFFLE: _("Shuffle"), VARIANTS_OTHER: _("Other")} specialVariants = [v for v in variants.values() if v != NormalChess] groups = groupby(specialVariants, attrgetter("variant_group")) pathToVariant = {} variantToPath = {} for i, (id, group) in enumerate(groups): iter = model.append(None, (groupNames[id],)) for variant in group: subiter = model.append(iter, (variant.name,)) path = model.get_path(subiter) pathToVariant[path] = variant.board.variant variantToPath[variant.board.variant] = path treeview.expand_row((i,), True) selection = treeview.get_selection() selection.set_mode(gtk.SELECTION_BROWSE) selection.set_select_function(lambda path: len(path) > 1) selection.select_path(variantToPath[conf.get(confid, default)]) def callback (selection): model, iter = selection.get_selected() if iter: radiobutton.set_label("%s" % model.get(iter, 0) + _(" chess")) path = model.get_path(iter) variant = pathToVariant[path] conf.set(confid, variant) selection.connect("changed", callback) callback(selection)