From 7420b67d3143ff09c07a45ca663942d9774a5468 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 31 Mar 2026 10:20:54 +0600 Subject: [PATCH] Fixed recovery navigation --- source/ubinstall-gtk-page-switch.c | 20 +++++++++++++++----- source/ubinstall-gtk.h | 1 - 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index f41ba7b..260fd4a 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -8,10 +8,18 @@ enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){ case YON_PAGE_WELCOME: return YON_PAGE_LICENCE; break; case YON_PAGE_LICENCE: return YON_PAGE_SECTIONS; break; case YON_PAGE_SECTIONS: return yon_sections_get_next_page(widgets); break; - case YON_PAGE_OS_COMPONENTS: return main_config.configure_mode?YON_PAGE_CONFIG_HUB:YON_PAGE_INSTALLATION_BEGIN; break; + case YON_PAGE_OS_COMPONENTS: return main_config.configure_mode?YON_PAGE_CONFIG_HUB: strcmp(config(AUTOINSTALL_TYPE_INSTALL),"system_only") ? YON_PAGE_INSTALLATION_BEGIN : YON_PAGE_RECOVERY_BEGIN; break; case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_CONFIG_HUB; break; case YON_PAGE_SOFTWARE: return YON_PAGE_CONFIG_HUB; break; - case YON_PAGE_CONFIG_HUB: return main_config.configure_mode? YON_PAGE_CONFIGURE_END:YON_PAGE_INSTALLATION; break; + case YON_PAGE_CONFIG_HUB: { + if (main_config.configure_mode){ + return YON_PAGE_CONFIGURE_END; + } else if (strcmp(config(AUTOINSTALL_TYPE_INSTALL),"data_only")){ + return YON_PAGE_INSTALLATION; + } else { + return YON_PAGE_RECOVERY_PROCESS; + } + } break; case YON_PAGE_KERNEL: return YON_PAGE_CONFIG_HUB; break; case YON_PAGE_KERNEL_ADDON: return YON_PAGE_CONFIG_HUB; break; case YON_PAGE_PACMAN_SOFTWARE: return YON_PAGE_CONFIG_HUB; break; @@ -33,7 +41,7 @@ enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){ case YON_PAGE_RECOVERY_GRUB_UPDATE: return main_config.configure_mode?YON_PAGE_CONFIGURE_END:YON_PAGE_RECOVERY_BEGIN; break; case YON_PAGE_RECOVERY_OS_ONLY: return main_config.configure_mode?YON_PAGE_CONFIGURE_END:YON_PAGE_OS_COMPONENTS; break; case YON_PAGE_RECOVERY_USRDATA_ONLY: return main_config.configure_mode?YON_PAGE_CONFIGURE_END:YON_PAGE_RECOVERY_BEGIN; break; - case YON_PAGE_RECOVERY_BEGIN: main_config.save_configured = 1; return YON_PAGE_RECOVERY_PROCESS; break; + case YON_PAGE_RECOVERY_BEGIN: main_config.save_configured = 1; return strcmp(config(AUTOINSTALL_TYPE_INSTALL),"data_only") ? YON_PAGE_RECOVERY_PROCESS: YON_PAGE_CONFIG_HUB; break; case YON_PAGE_RECOVERY_PROCESS: return YON_PAGE_RECOVERY_COMPLETION; break; case YON_PAGE_INSTALLATION: return YON_PAGE_COMPLETION; break; case YON_PAGE_CONFIGURE_SAVE: @@ -186,8 +194,6 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){ gtk_widget_set_sensitive(widgets->BackButton,1); gtk_widget_set_sensitive(widgets->NextButton,1); gtk_widget_set_sensitive(widgets->CancelInstallButton,1); - gtk_widget_set_sensitive(widgets->LoadLocalConfigurationMenuItem,0); - gtk_widget_set_sensitive(widgets->LoadExternalConfigurationMenuItem,0); gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); if (!yon_char_is_empty(config(AUTOINSTALL_TYPE_INSTALL))&&!main_config.configure_mode){ gtk_widget_show(widgets->StartScenarioButton); @@ -217,6 +223,8 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){ case YON_PAGE_BOOTLOADER: case YON_PAGE_PACKAGES: case YON_PAGE_NETWORK:{ + gtk_widget_set_sensitive(widgets->LoadLocalConfigurationMenuItem,0); + gtk_widget_set_sensitive(widgets->LoadExternalConfigurationMenuItem,0); gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),CANCEL_LABEL); gtk_widget_show(widgets->NextButton); gtk_widget_hide(widgets->BackButton); @@ -225,6 +233,8 @@ void yon_navigation_buttons_set_sensetiveness(main_window *widgets){ gtk_image_set_from_icon_name(GTK_IMAGE(image),arrow_left_icon_path,GTK_ICON_SIZE_BUTTON); } break; case YON_PAGE_CONFIG_HUB:{ + gtk_widget_set_sensitive(widgets->LoadLocalConfigurationMenuItem,0); + gtk_widget_set_sensitive(widgets->LoadExternalConfigurationMenuItem,0); gtk_widget_show(widgets->NextButton); gtk_widget_hide(widgets->BackButton); gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_LABEL); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index b7989bb..0e1f77f 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -449,7 +449,6 @@ typedef struct int install_complete; guint slider_thread; - int install_mode; unsigned long install_thread; guint progress_thread; int configure_mode;