window: special case one-way pages
This commit is contained in:
@@ -14,7 +14,7 @@ class Page:
|
||||
Called before the page is shown.
|
||||
Pages can overwrite this to receive a call every time.
|
||||
Specialld handled return values are:
|
||||
"load_prev", "pass", "prevent_back_navigation".
|
||||
"load_prev", "pass".
|
||||
'''
|
||||
pass
|
||||
|
||||
|
||||
@@ -86,5 +86,3 @@ class SummaryPage(Gtk.Box, Page):
|
||||
reset_model(self.feature_model, features)
|
||||
else:
|
||||
self.feature_stack.set_visible_child_name('none')
|
||||
|
||||
return "prevent_back_navigation"
|
||||
|
||||
@@ -55,6 +55,9 @@ page_name_to_type = {
|
||||
}
|
||||
|
||||
|
||||
non_returnable_pages = ['done', 'failed', 'summary']
|
||||
|
||||
|
||||
forward = 1
|
||||
backwards = -1
|
||||
|
||||
@@ -203,8 +206,9 @@ class OsInstallerWindow(Adw.ApplicationWindow):
|
||||
case "pass":
|
||||
self._load_next_page(offset + (1 if offset > 0 else -1))
|
||||
return
|
||||
case "prevent_back_navigation":
|
||||
self._remove_all_but_one_page(page_name)
|
||||
|
||||
if page_name in non_returnable_pages:
|
||||
self._remove_all_but_one_page(page_name)
|
||||
|
||||
self.main_stack.set_visible_child(page_to_load)
|
||||
self._reload_title_image()
|
||||
@@ -278,7 +282,6 @@ class OsInstallerWindow(Adw.ApplicationWindow):
|
||||
self._load_next_page(backwards)
|
||||
case "load_next":
|
||||
self._load_next_page()
|
||||
# ignore case "prevent_back_navigation"
|
||||
|
||||
def _show_about_page(self, _, __):
|
||||
with self.navigation_lock:
|
||||
|
||||
Reference in New Issue
Block a user