Implement session-based language overrides for the viewer
This commit is contained in:
@@ -126,6 +126,7 @@ class MainWindow(QMainWindow):
|
|||||||
self.undo_stack = []
|
self.undo_stack = []
|
||||||
self.redo_stack = []
|
self.redo_stack = []
|
||||||
self.is_modified = False
|
self.is_modified = False
|
||||||
|
self.language_overrides = {} # Session-based viewer overrides: (mag, pnum) -> lang_idx
|
||||||
|
|
||||||
# UI Components
|
# UI Components
|
||||||
self.central_widget = QWidget()
|
self.central_widget = QWidget()
|
||||||
@@ -442,6 +443,12 @@ class MainWindow(QMainWindow):
|
|||||||
if action:
|
if action:
|
||||||
idx = action.data()
|
idx = action.data()
|
||||||
self.canvas.subset_idx = idx
|
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.redraw()
|
||||||
self.canvas.update()
|
self.canvas.update()
|
||||||
self.update_language_label()
|
self.update_language_label()
|
||||||
@@ -480,6 +487,7 @@ class MainWindow(QMainWindow):
|
|||||||
|
|
||||||
self.undo_stack.clear()
|
self.undo_stack.clear()
|
||||||
self.redo_stack.clear()
|
self.redo_stack.clear()
|
||||||
|
self.language_overrides.clear()
|
||||||
|
|
||||||
self.status_label.setText("File closed.")
|
self.status_label.setText("File closed.")
|
||||||
QTimer.singleShot(3000, lambda: self.status_label.setText("Ready"))
|
QTimer.singleShot(3000, lambda: self.status_label.setText("Ready"))
|
||||||
@@ -770,6 +778,14 @@ class MainWindow(QMainWindow):
|
|||||||
if isinstance(page, Page):
|
if isinstance(page, Page):
|
||||||
self.current_page = page
|
self.current_page = page
|
||||||
self.canvas.set_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.update_language_label()
|
||||||
self.canvas.setFocus()
|
self.canvas.setFocus()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user