Better - force selection, gray out button

This commit is contained in:
2026-02-02 15:08:03 +01:00
parent 7c899b8e86
commit 658040c138
2 changed files with 21 additions and 12 deletions

View File

@@ -65,6 +65,7 @@ class InstallerWindow(Adw.ApplicationWindow):
# Initialize Pages
self.welcome_page = WelcomePage()
self.storage_page = StoragePage()
self.storage_page.connect("disk-selected", self.on_disk_selected)
self.install_mode_page = InstallModePage()
self.partitioning_page = PartitioningPage()
self.modules_page = ModulesPage()
@@ -81,16 +82,29 @@ class InstallerWindow(Adw.ApplicationWindow):
# Initialize view
if self.page_ids:
self.stack.set_visible_child_name(self.page_ids[0])
self.update_buttons()
def add_page(self, widget, name):
self.stack.add_named(widget, name)
self.page_ids.append(name)
def on_disk_selected(self, page, device_name):
self.update_buttons()
def update_buttons(self):
# Back button state
self.back_button.set_sensitive(self.current_page_index > 0)
# Next button label/state
current_page_name = self.page_ids[self.current_page_index]
# Forced selection logic
forced_selection = True
if current_page_name == "storage":
forced_selection = self.storage_page.get_selected_disk() is not None
self.next_button.set_sensitive(forced_selection)
if self.current_page_index == len(self.page_ids) - 1:
self.next_button.set_label("Install")
self.next_button.add_css_class("destructive-action")
@@ -102,7 +116,7 @@ class InstallerWindow(Adw.ApplicationWindow):
def on_back_clicked(self, button):
current_page = self.page_ids[self.current_page_index]
# Default: go back one page
next_prev_index = self.current_page_index - 1
@@ -123,16 +137,6 @@ class InstallerWindow(Adw.ApplicationWindow):
if current_page_name == "storage":
selected_disk = self.storage_page.get_selected_disk()
if not selected_disk:
dialog = Adw.MessageDialog(
transient_for=self,
heading="No Disk Selected",
body="Please select a storage device to proceed."
)
dialog.add_response("ok", "OK")
dialog.present()
return
self.partitioning_page.load_partitions(selected_disk)
next_index = self.current_page_index + 1