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:
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user