From 04fbf51b49c8805cdc67bded44b667335f32e2a9 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Mon, 15 Sep 2025 18:08:07 +0600 Subject: [PATCH] WIP saving --- source/ubinstall-gtk-bootloader.c | 10 ++++++++++ source/ubinstall-gtk-installation.c | 7 +++++++ source/ubl-settings-advanced.c | 28 +++++++++++++++++++++++++--- 3 files changed, 42 insertions(+), 3 deletions(-) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index 0782600..8d7dbb5 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -41,6 +41,16 @@ 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)){} + } + yon_bootloader_interface_update(widgets); return 1; } diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c index cf14e1f..f8f0522 100644 --- a/source/ubinstall-gtk-installation.c +++ b/source/ubinstall-gtk-installation.c @@ -28,6 +28,13 @@ int yon_install_common_save(main_window *widgets){ } else { yon_config_remove_by_key(part_fs_type_parameter); } + + 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)){} + } return 1; } diff --git a/source/ubl-settings-advanced.c b/source/ubl-settings-advanced.c index 19d8f0b..57c7fed 100644 --- a/source/ubl-settings-advanced.c +++ b/source/ubl-settings-advanced.c @@ -24,16 +24,38 @@ advanced_section *yon_advanced_section_new(){ advanced_section *section = malloc(sizeof(advanced_section)); memset(section,0,sizeof(advanced_section)); sections[sections_size] = section; + sections_size++; return section; } +void yon_advanced_section_remove(int pos){ + switch(pos){ + case 0: + free(sections[0]); + if (sections[1]){ + sections[0]=sections[1]; + sections[1]=NULL; + } else { + sections[0]=NULL; + } + sections_size--; + break; + case 1: + if (sections[1]){ + free(sections[1]); + sections[1]=NULL; + sections_size--; + } + break; + default: return; + } +} + // add section from tree view void yon_advanced_add(main_window *widgets){ - if (sections_size<2){ - - } + } //new section from button