From fa195f2695d59d6d7776116e3ed0cecf87edea3c Mon Sep 17 00:00:00 2001 From: Daniel Dybing Date: Sat, 31 Jan 2026 13:11:12 +0100 Subject: [PATCH] Implement session-based language overrides for the viewer --- src/teletext/ui.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/teletext/ui.py b/src/teletext/ui.py index 731ab3f..7e7fe7e 100644 --- a/src/teletext/ui.py +++ b/src/teletext/ui.py @@ -126,6 +126,7 @@ class MainWindow(QMainWindow): self.undo_stack = [] self.redo_stack = [] self.is_modified = False + self.language_overrides = {} # Session-based viewer overrides: (mag, pnum) -> lang_idx # UI Components self.central_widget = QWidget() @@ -442,6 +443,12 @@ class MainWindow(QMainWindow): if action: idx = action.data() self.canvas.subset_idx = idx + + # Store session override for the current page (magazine + page number) + if self.current_page: + key = (self.current_page.magazine, self.current_page.page_number) + self.language_overrides[key] = idx + self.canvas.redraw() self.canvas.update() self.update_language_label() @@ -480,6 +487,7 @@ class MainWindow(QMainWindow): self.undo_stack.clear() self.redo_stack.clear() + self.language_overrides.clear() self.status_label.setText("File closed.") QTimer.singleShot(3000, lambda: self.status_label.setText("Ready")) @@ -770,6 +778,14 @@ class MainWindow(QMainWindow): if isinstance(page, Page): self.current_page = page self.canvas.set_page(page) + + # Apply session language override if it exists for this page + key = (page.magazine, page.page_number) + if key in self.language_overrides: + self.canvas.subset_idx = self.language_overrides[key] + self.canvas.redraw() + self.canvas.update() + self.update_language_label() self.canvas.setFocus()