From 4c1a82fa44d19faeddd1c099e5cc0cf80562de02 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 16 Sep 2025 15:29:38 +0600 Subject: [PATCH] Save changes --- source/ubinstall-gtk-bootloader.c | 21 ++++++---- source/ubinstall-gtk-components.c | 51 +++++++++++++++++++++++++ source/ubinstall-gtk-grub.c | 20 ++++++++++ source/ubinstall-gtk-installation.c | 32 ++++++++++++++-- source/ubinstall-gtk-keyboard.c | 11 ++++++ source/ubinstall-gtk-network.c | 15 ++++++++ source/ubinstall-gtk-region.c | 10 +++++ source/ubinstall-gtk-separate.c | 10 +++++ source/ubinstall-gtk-startup-services.c | 10 +++++ source/ubinstall-gtk-users.c | 15 ++++++++ source/ubinstall-gtk.c | 14 +++++-- source/ubinstall-gtk.h | 8 ++-- 12 files changed, 199 insertions(+), 18 deletions(-) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index 8d7dbb5..ee5106a 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -41,14 +41,21 @@ int yon_bootloader_save(main_window *widgets){ yon_config_remove_by_key(GRUB_PASSWORD_parameter_all); yon_config_remove_by_key(GRUB_SUPERUSERS_parameter); } + if (!main_config.configure_mode){ - int size,users_size,final_size; - config_str grub_users = yon_config_get_all_by_key(GRUB_PASSWORD_parameter_search,&users_size); - config_str parameters = yon_config_get_selection_by_key(&size,GRUB_TIMEOUT_parameter,GRUB_DEFAULT_parameter,AUTOLOGINUSER_parameter,GRUB_SUPERUSERS_parameter,NULL); - config_str final_parameters = yon_char_parsed_merge(parameters,size,grub_users,users_size,&final_size); - - char *command = ubconfig_set_command_full(main_config.config_save_path,"[autoinstall]",yon_char_parsed_to_string(final_parameters,final_size," ")); - if (!system(command)){} + int size, users_size, final_size, save_size; + config_str grub_users = yon_config_find_keys(GRUB_PASSWORD_parameter_search,&users_size); + config_str save_parameters = yon_char_parsed_new(&size,GRUB_TIMEOUT_parameter,GRUB_DEFAULT_parameter,AUTOLOGINUSER_parameter,GRUB_SUPERUSERS_parameter,NULL); + config_str final = yon_char_parsed_merge(save_parameters,size,grub_users,users_size,&final_size); + config_str parameters = yon_config_get_save_parameters_by_list(&save_size,final,final_size); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,save_size); + } + if (grub_users) yon_char_parsed_free(grub_users,users_size); + if (save_parameters) yon_char_parsed_free(save_parameters,size); } yon_bootloader_interface_update(widgets); diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 3731c0b..b2b054f 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -27,6 +27,17 @@ int yon_kernel_save(main_window *widgets){ yon_config_remove_by_key(modules_extra_parameter); } yon_config_register(KERNEL_BOOT_parameter,KERNEL_BOOT_parameter_command,enabled_module); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_extra_parameter,KERNEL_BOOT_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } + return 1; } @@ -49,6 +60,16 @@ int yon_kernel_addon_save(main_window *widgets){ yon_config_register(modules_extra_parameter,modules_extra_parameter_command,parameter_new); free(parameter_new); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_extra_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -72,6 +93,16 @@ int yon_os_components_save(main_window *widgets){ } else { yon_config_remove_by_key(modules_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -189,6 +220,16 @@ int yon_software_save(main_window *widgets){ yon_config_register(modules_extra_parameter,modules_extra_parameter_command,parameter_new); free(parameter_new); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,modules_extra_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -243,6 +284,16 @@ int yon_pacman_software_save(main_window *widgets){ } else { yon_config_remove_by_key(packages_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } diff --git a/source/ubinstall-gtk-grub.c b/source/ubinstall-gtk-grub.c index 8999484..d07a041 100644 --- a/source/ubinstall-gtk-grub.c +++ b/source/ubinstall-gtk-grub.c @@ -20,6 +20,16 @@ int yon_grub_install_save(main_window *widgets){ yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); yon_config_register(part_parameter,part_parameter_command,partition); yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_install"); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOINSTALL_DEVICE,part_parameter,AUTOINSTALL_TYPE_INSTALL,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -43,5 +53,15 @@ int yon_grub_update_save(main_window *widgets){ yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); yon_config_register(part_parameter,part_parameter_command,partition); yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update"); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOINSTALL_DEVICE,part_parameter,AUTOINSTALL_TYPE_INSTALL,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c index f8f0522..ddc0813 100644 --- a/source/ubinstall-gtk-installation.c +++ b/source/ubinstall-gtk-installation.c @@ -31,9 +31,13 @@ int yon_install_common_save(main_window *widgets){ if (!main_config.configure_mode){ int size; - config_str parameters = yon_config_get_selection_by_key(&size,AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_DEVICE,part_label_parameter,part_fs_type_parameter,NULL); - char *command = ubconfig_set_command_full(main_config.config_save_path,"[autoinstall]",yon_char_parsed_to_string(parameters,size," ")); - if (!system(command)){} + config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_DEVICE,part_label_parameter,part_fs_type_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } } return 1; } @@ -94,6 +98,16 @@ int yon_install_separate_save(main_window *widgets){ yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next"); yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device); yon_config_register(part_parameter,part_parameter_command,part); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_DEVICE,part_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -141,6 +155,16 @@ int yon_install_same_partition_save(main_window *widgets){ yon_config_remove_by_key(part_format_parameter); yon_config_remove_by_key(part_fs_type_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_size_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_DEVICE,part_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } @@ -508,7 +532,7 @@ void yon_install_init(main_window *widgets, enum YON_PAGES page){ if (!yon_char_is_empty(parameter)){ gtk_combo_box_set_active_id(GTK_COMBO_BOX(fs_type_combo),parameter); } else { - gtk_combo_box_set_active(GTK_COMBO_BOX(fs_type_combo),1); + gtk_combo_box_set_active(GTK_COMBO_BOX(fs_type_combo),0); } } if (partition_size_spin&&partition_size_combo){ diff --git a/source/ubinstall-gtk-keyboard.c b/source/ubinstall-gtk-keyboard.c index da83e14..1b786d8 100644 --- a/source/ubinstall-gtk-keyboard.c +++ b/source/ubinstall-gtk-keyboard.c @@ -51,6 +51,17 @@ int yon_keyboard_save(main_window *widgets){ } else { yon_config_remove_by_key(xkboptions_parameter); } + + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,xkbvariant_parameter,xkblayout_parameter,xkbmodel_parameter,xkboptions_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } diff --git a/source/ubinstall-gtk-network.c b/source/ubinstall-gtk-network.c index e57eeda..27014a1 100644 --- a/source/ubinstall-gtk-network.c +++ b/source/ubinstall-gtk-network.c @@ -282,6 +282,21 @@ int yon_network_save(main_window *widgets){ } } + if (!main_config.configure_mode){ + int size, users_size, final_size, save_size; + config_str users = yon_config_find_keys(NETWORK_parameter_search,&users_size); + config_str save_parameters = yon_char_parsed_new(&size,DOMAIN_parameter,DOMAIN_admanger_parameter,NTPSERVERS_parameter,hostname_parameter,NULL); + config_str final = yon_char_parsed_merge(save_parameters,size,users,users_size,&final_size); + config_str parameters = yon_config_get_save_parameters_by_list(&save_size,final,final_size); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,save_size); + } + if (users)yon_char_parsed_free(users,users_size); + if (save_parameters)yon_char_parsed_free(save_parameters,size); + } return 1; } diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index e6e6d9e..ff003e1 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -39,6 +39,16 @@ int yon_region_save(main_window *widgets){ } else { yon_config_remove_by_key(zone_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,locale_parameter,lang_parameter,zone_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } diff --git a/source/ubinstall-gtk-separate.c b/source/ubinstall-gtk-separate.c index 61a7a64..824861e 100644 --- a/source/ubinstall-gtk-separate.c +++ b/source/ubinstall-gtk-separate.c @@ -22,5 +22,15 @@ int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char * if(cur_section) free(cur_section); if(cur_device) free(cur_device); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOINSTALL_DEVICE,AUTOINSTALL_TYPE_INSTALL,part_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-startup-services.c b/source/ubinstall-gtk-startup-services.c index 2c5ee87..25f19ac 100644 --- a/source/ubinstall-gtk-startup-services.c +++ b/source/ubinstall-gtk-startup-services.c @@ -210,5 +210,15 @@ int yon_startup_save(main_window *widgets){ } else { yon_config_remove_by_key(SERVICES_ENABLE_parameter); } + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,SERVICES_ENABLE_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index e399ded..7607204 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -32,6 +32,21 @@ int yon_users_save(main_window *widgets){ } } + if (!main_config.configure_mode){ + int size, users_size, final_size, save_size; + config_str users = yon_config_find_keys(USERADD_parameter_search,&users_size); + config_str save_parameters = yon_char_parsed_new(&size,root_password_parameter,autologin_parameter,NULL); + config_str final = yon_char_parsed_merge(save_parameters,size,users,users_size,&final_size); + config_str parameters = yon_config_get_save_parameters_by_list(&save_size,final,final_size); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,save_size); + } + if (users)yon_char_parsed_free(users,users_size); + if (save_parameters)yon_char_parsed_free(save_parameters,size); + } yon_debug_output("%s\n",yon_config_get_all_info()); return 1; } diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 7e47a95..a6a21e3 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -196,6 +196,16 @@ void on_source_accept(GtkWidget *,source_window *window){ free(parameter_string); on_subwindow_close(window->Window); + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,locale_parameter,lang_parameter,zone_parameter,NULL); + if (parameters){ + char *command = yon_char_parsed_to_string(parameters,size,";"); + if (!system(command)){} + free(command); + yon_char_parsed_free(parameters,size); + } + } } source_window *yon_source_window_new(){ @@ -830,9 +840,7 @@ int main(int argc, char *argv[]){ GTK_STYLE_PROVIDER(css), -1); if (getuid()!=0){ - textdomain(template_ui_LocaleName); - yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); - textdomain(LocaleName); + yon_ubl_status_box_render(yon_char_get_localised_from_lib(ROOT_WARNING_LABEL),BACKGROUND_IMAGE_FAIL_TYPE); } gtk_main(); return 0; diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 8cf58b8..b3b14a4 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -51,10 +51,10 @@ #define regions_path "/com/ublinux/images/map-time-zone.png" #define keyboard_path "/com/ublinux/images/keyboard.png" -#define users_path "/com/ublinux/images/clear_install_disk.png" -#define startup_path "/com/ublinux/images/clear_install_disk.png" -#define bootloader_path "/com/ublinux/images/clear_install_disk.png" -#define network_icon_path "/com/ublinux/images/clear_install_disk.png" +#define users_path "/com/ublinux/images/keyboard.png" +#define startup_path "/com/ublinux/images/keyboard.png" +#define bootloader_path "/com/ublinux/images/keyboard.png" +#define network_icon_path "/com/ublinux/images/keyboard.png" #define licence_path "/usr/share/ublinux/agreement/EULA.txt"