diff --git a/src/global_state.py b/src/global_state.py index 4a1d0f6..00d7234 100644 --- a/src/global_state.py +++ b/src/global_state.py @@ -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() diff --git a/src/ui/pages/language.py b/src/ui/pages/language.py index ad220b9..ae76dc0 100644 --- a/src/ui/pages/language.py +++ b/src/ui/pages/language.py @@ -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 ### diff --git a/src/ui/window.py b/src/ui/window.py index e67de26..52bcf35 100644 --- a/src/ui/window.py +++ b/src/ui/window.py @@ -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: