Fix language detection bit swap in T42 header parsing

Correctly map C12 and C13 control bits to fix misidentification of Swedish/Finnish (010) and German (001).
Also ensures Page model, Renderer, and UI properly propagate and display the detected language.
This commit is contained in:
2026-01-11 11:40:20 +01:00
parent 783e5006f7
commit 8c393c8f9e
4 changed files with 37 additions and 5 deletions

View File

@@ -127,10 +127,22 @@ class MainWindow(QMainWindow):
self.status_label = QLabel("Ready")
self.status_bar.addWidget(self.status_label)
self.language_label = QLabel("Lang: English")
self.status_bar.addPermanentWidget(self.language_label)
self.language_names = ["English", "German", "Swedish/Finnish", "Italian", "French", "Portuguese/Spanish", "Turkish", "Romania"]
# Menus
self.create_menus()
def update_language_label(self):
idx = self.canvas.subset_idx
if 0 <= idx < len(self.language_names):
self.language_label.setText(f"Lang: {self.language_names[idx]}")
else:
self.language_label.setText(f"Lang: Unknown ({idx})")
def set_modified(self, modified: bool):
self.is_modified = modified
title = "Teletext Editor"
@@ -222,8 +234,7 @@ class MainWindow(QMainWindow):
view_menu = menu_bar.addMenu("View")
lang_menu = view_menu.addMenu("Language")
langs = ["English", "German", "Swedish/Finnish", "Italian", "French", "Portuguese/Spanish", "Turkish", "Romania"]
for i, lang in enumerate(langs):
for i, lang in enumerate(self.language_names):
action = QAction(lang, self)
action.setData(i)
action.triggered.connect(self.set_language)
@@ -236,6 +247,7 @@ class MainWindow(QMainWindow):
self.canvas.subset_idx = idx
self.canvas.redraw()
self.canvas.update()
self.update_language_label()
def prev_subpage(self):
count = self.subpage_combo.count()
@@ -516,6 +528,7 @@ class MainWindow(QMainWindow):
if isinstance(page, Page):
self.current_page = page
self.canvas.set_page(page)
self.update_language_label()
self.canvas.setFocus()
def insert_char(self, char_code):