MCPcopy Create free account
hub / github.com/dialect-app/dialect / LanguagesListModel

Class LanguagesListModel

dialect/languages.py:37–72  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

35
36
37class LanguagesListModel(GObject.GObject, Gio.ListModel):
38 __gtype_name__ = "LanguagesListModel"
39
40 def __init__(self, names_func: Callable[[str], str | None] = get_lang_name):
41 super().__init__()
42
43 self.names_func = names_func
44 self.langs: list[LangObject] = []
45
46 def __iter__(self):
47 return iter(self.langs)
48
49 def do_get_item(self, position: int) -> LangObject:
50 return self.langs[position]
51
52 def do_get_item_type(self):
53 return LangObject
54
55 def do_get_n_items(self) -> int:
56 return len(self.langs)
57
58 def set_langs(self, langs: list[str], auto=False):
59 removed = len(self.langs)
60 self.langs.clear()
61
62 if auto:
63 self.langs.append(LangObject("auto", _("Auto")))
64
65 for code in langs:
66 self.langs.append(LangObject(code, self.names_func(code) or code))
67
68 self.items_changed(0, removed, len(self.langs))
69
70 def set_selected(self, code: str):
71 for item in self.langs:
72 item.props.selected = item.code == code

Callers 1

setup_selectorsMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected