From a811c96d74b459ffbd997bf97ba9a3b72f6ec264 Mon Sep 17 00:00:00 2001 From: jpirnay Date: Sun, 12 Apr 2026 22:34:28 +0200 Subject: [PATCH] Some comments --- scripts/gen_i18n.py | 63 +++++++++++++++-------------- scripts/generate_test_epub.py | 12 +++--- src/activities/MenuListActivity.cpp | 4 +- 3 files changed, 41 insertions(+), 38 deletions(-) diff --git a/scripts/gen_i18n.py b/scripts/gen_i18n.py index 38a8ea71..bd47b17e 100755 --- a/scripts/gen_i18n.py +++ b/scripts/gen_i18n.py @@ -289,7 +289,7 @@ def find_used_string_keys( escaped = False continue if quote_char is None: - if ch == '"' or ch == "'": + if ch in ['"', "'"]: quote_char = ch continue if ch == "/" and idx + 1 < len(line) and line[idx + 1] == "/": @@ -413,11 +413,7 @@ def format_cpp_string_literal(segments: List[str], indent: str = " ") -> List last_space = idx # Handle escapes to step correctly - if current[idx] == "\\": - idx += 2 - else: - idx += 1 - + idx += 2 if current[idx] == "\\" else 1 # If we found a space, split after it if last_space != -1: # Include the space in the first line @@ -479,17 +475,19 @@ def generate_keys_header( ] for code in languages: - lines.append(f"extern const char STRINGS_{code}_DATA[];") - lines.append(f"extern const uint16_t OFFSETS_{code}[];") - + lines.extend( + ( + f"extern const char STRINGS_{code}_DATA[];", + f"extern const uint16_t OFFSETS_{code}[];", + ) + ) lines.append("} // namespace i18n_strings") lines.append("") # Language enum lines.append("// Language enum") lines.append("enum class Language : uint8_t {") - for i, lang in enumerate(languages): - lines.append(f" {lang} = {i},") + lines.extend(f" {lang} = {i}," for i, lang in enumerate(languages)) lines.append(" _COUNT") lines.append("};") lines.append("") @@ -529,9 +527,11 @@ def generate_keys_header( lines.append("inline LangStrings getLanguageStrings(Language lang) {") lines.append(" switch (lang) {") for code in languages: - lines.append(f" case Language::{code}:") - lines.append( - f" return {{i18n_strings::STRINGS_{code}_DATA, i18n_strings::OFFSETS_{code}}};" + lines.extend( + ( + f" case Language::{code}:", + f" return {{i18n_strings::STRINGS_{code}_DATA, i18n_strings::OFFSETS_{code}}};", + ) ) first_code = languages[0] lines.append(" default:") @@ -559,8 +559,10 @@ def generate_keys_header( ) sorted_indices = [english_idx] + rest lines.append("// Sorted language indices by code (auto-generated by gen_i18n.py)") - for rank, idx in enumerate(sorted_indices): - lines.append(f"// {rank:>2}: {languages[idx]:<4} {language_names[idx]}") + lines.extend( + f"// {rank:>2}: {languages[idx]:<4} {language_names[idx]}" + for rank, idx in enumerate(sorted_indices) + ) lines.append( "constexpr uint8_t SORTED_LANGUAGE_INDICES[] = {" f"{', '.join(str(i) for i in sorted_indices)}" @@ -594,11 +596,13 @@ def generate_strings_header( ] for code in languages: - lines.append(f"extern const char STRINGS_{code}_DATA[];") - lines.append(f"extern const uint16_t OFFSETS_{code}[];") - - lines.append("") - lines.append("} // namespace i18n_strings") + lines.extend( + ( + f"extern const char STRINGS_{code}_DATA[];", + f"extern const uint16_t OFFSETS_{code}[];", + ) + ) + lines.extend(("", "} // namespace i18n_strings")) _write_file(output_path, lines, verbose) @@ -618,11 +622,10 @@ def generate_strings_cpp( "", "#include ", "", + "// Language codes", + "const char* const LANGUAGE_CODES[] = {", ] - # LANGUAGE_NAMES array - lines.append("// Language codes") - lines.append("const char* const LANGUAGE_CODES[] = {") for code in languages: _append_string_entry(lines, code) lines.append("};") @@ -686,13 +689,13 @@ def generate_strings_cpp( # Compile-time size checks lines.append("// Compile-time validation of array sizes") for code in languages: - lines.append( - f"static_assert(sizeof(i18n_strings::OFFSETS_{code}) " - f"/ sizeof(i18n_strings::OFFSETS_{code}[0]) ==" + lines.extend( + ( + f"static_assert(sizeof(i18n_strings::OFFSETS_{code}) / sizeof(i18n_strings::OFFSETS_{code}[0]) ==", + " static_cast(StrId::_COUNT),", + f' "OFFSETS_{code} size mismatch");', + ) ) - lines.append(" static_cast(StrId::_COUNT),") - lines.append(f' "OFFSETS_{code} size mismatch");') - _write_file(output_path, lines, verbose) diff --git a/scripts/generate_test_epub.py b/scripts/generate_test_epub.py index d8a7f4db..99868cf6 100644 --- a/scripts/generate_test_epub.py +++ b/scripts/generate_test_epub.py @@ -27,17 +27,17 @@ def get_font(size=20): import sys candidates = [] - if sys.platform == "win32": + if sys.platform == "darwin": + candidates = [ + "/System/Library/Fonts/Helvetica.ttc", + "/Library/Fonts/Arial.ttf", + ] + elif sys.platform == "win32": windir = os.environ.get("WINDIR", "C:\\Windows") candidates = [ os.path.join(windir, "Fonts", "arial.ttf"), os.path.join(windir, "Fonts", "calibri.ttf"), ] - elif sys.platform == "darwin": - candidates = [ - "/System/Library/Fonts/Helvetica.ttc", - "/Library/Fonts/Arial.ttf", - ] else: candidates = [ "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", diff --git a/src/activities/MenuListActivity.cpp b/src/activities/MenuListActivity.cpp index 829ee706..4fd19076 100644 --- a/src/activities/MenuListActivity.cpp +++ b/src/activities/MenuListActivity.cpp @@ -33,7 +33,7 @@ void MenuListActivity::handleNavigation() { void MenuListActivity::toggleCurrentItem() { if (selectedIndex < 0 || selectedIndex >= static_cast(menuItems.size())) return; - auto& item = menuItems[selectedIndex]; + const auto& item = menuItems[selectedIndex]; if (item.isSeparator) return; if (item.type == SettingType::ACTION) { @@ -41,7 +41,7 @@ void MenuListActivity::toggleCurrentItem() { return; } - item.toggleValue(); + menuItems[selectedIndex].toggleValue(); onSettingToggled(selectedIndex); requestUpdate(); }