PageWrapper: Provide page name as method

This commit is contained in:
Peter Eisenmann
2024-07-21 01:43:57 +02:00
parent 50dc356e2d
commit b7700a5ffc
2 changed files with 9 additions and 4 deletions

View File

@@ -57,6 +57,7 @@ class PageWrapper(Adw.Bin):
super().__init__(**kwargs)
self.page = page_name_to_type[page_name]()
self.page_name = page_name
self.content.set_child(self.page)
def cleanup(self):
@@ -67,12 +68,16 @@ class PageWrapper(Adw.Bin):
def get_page(self):
return self.page
def get_page_name(self):
return self.page_name
def replace_page(self, page_name):
self.cleanup()
new_page = page_name_to_type[page_name]()
self.content.set_child(new_page)
del self.page
self.page = new_page
self.page_name = page_name
def image(self):
return self.page.image

View File

@@ -255,7 +255,8 @@ class OsInstallerWindow(Adw.ApplicationWindow):
self._load_page(previous_page_name)
def _create_title(self):
current_page_name = self.main_stack.get_visible_child_name()
current_page = self.main_stack.get_visible_child()
current_page_name = current_page.get_page_name()
title = page_name_to_title[current_page_name]
icon_name = page_name_to_image[current_page_name]
@@ -268,7 +269,6 @@ class OsInstallerWindow(Adw.ApplicationWindow):
label = ""
if icon_name == None:
current_page = self.main_stack.get_visible_child()
icon_name = current_page.image()
return LabeledImage(icon_name, label)
@@ -315,10 +315,10 @@ class OsInstallerWindow(Adw.ApplicationWindow):
def _reload_page(self, _, __):
with self.navigation_lock:
current_page_name = self.main_stack.get_visible_child_name()
wrapper = self.main_stack.get_visible_child()
current_page_name = wrapper.get_page_name()
if not current_page_name in reloadable_pages:
return
wrapper = self.main_stack.get_visible_child()
wrapper.replace_page(current_page_name)
match config.steal('page_navigation'):
case "load_prev":