explicitly create translated pages

This commit is contained in:
Peter Eisenmann
2022-10-04 00:13:15 +02:00
parent de148edb01
commit 0bf678a088
3 changed files with 15 additions and 13 deletions

View File

@@ -34,6 +34,9 @@ class GlobalState:
def advance_without_return(self, page):
self._uninitialized()
def load_translated_pages(self):
self._uninitialized()
def reload_title_image(self):
self._uninitialized()

View File

@@ -51,6 +51,7 @@ class LanguagePage(Gtk.Stack, Page):
global_state.get_config('language_code') != row.info.language_code):
self.language_chosen = True
set_system_language(row.info)
global_state.load_translated_pages()
global_state.advance(self)
### public methods ###

View File

@@ -65,6 +65,7 @@ class OsInstallerWindow(Adw.ApplicationWindow):
# set advancing functions in global state
global_state.advance = self.advance
global_state.advance_without_return = self.advance_without_return
global_state.load_translated_pages = self.load_translated_pages
global_state.reload_title_image = self._reload_title_image
global_state.installation_failed = self.show_failed_page
@@ -120,25 +121,12 @@ class OsInstallerWindow(Adw.ApplicationWindow):
self.main_stack.add_named(page, page_name)
self.pages.append(page_name)
def _initialize_pages_translated(self):
# delete pages that are not the language page
self._remove_pages(self.pages[1:])
self.pages = ['language']
for page_name in self.available_pages.keys():
if page_name != 'language':
self._initialize_page(page_name)
def _remove_pages(self, page_names):
for page_name in page_names:
child = self.main_stack.get_child_by_name(page_name)
self.main_stack.remove(child)
def _load_page(self, page_number):
# special case language page
if type(self.current_page) == LanguagePage:
self._initialize_pages_translated()
assert page_number >= 0, 'Tried to go to non-existent page (underflow)'
assert page_number < len(self.pages), 'Tried to go to non-existent page (overflow)'
@@ -209,6 +197,16 @@ class OsInstallerWindow(Adw.ApplicationWindow):
for page in previous_pages:
del page
def load_translated_pages(self):
with self.navigation_lock:
# delete pages that are not the language page
self._remove_pages(self.pages[1:])
self.pages = ['language']
for page_name in self.available_pages.keys():
if page_name != 'language':
self._initialize_page(page_name)
def navigate_backward(self):
with self.navigation_lock:
if self.current_page.can_navigate_backward: