From facc544d82bd8a7c79fbe048eb0fde8cb518ae2e Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 10 Mar 2026 13:56:48 +0600 Subject: [PATCH] Fixed software by groups page saving --- source/ubinstall-gtk-components.c | 31 +++++++++++++------------------ source/ubinstall-gtk-packages.c | 4 +++- 2 files changed, 16 insertions(+), 19 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index a1a3b6a..c54406f 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -46,20 +46,20 @@ int yon_kernel_save(main_window *widgets){ int yon_kernel_addon_save(main_window *widgets){ char *parameter = config(packages_parameter); GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox)); - char *install_modules = yon_char_new(parameter); + if (yon_char_is_empty(parameter)){ + yon_config_register(packages_parameter,packages_parameter_command,NULL); + } for(GList *iter = list;iter;iter = iter->next){ kernel_addon_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ - char *temp = yon_char_append_element(install_modules,row->modules," "); - if (!yon_char_is_empty(install_modules)) free(install_modules); - install_modules = temp; + yon_config_append_element(packages_parameter,row->modules," "); } } - if (!yon_char_is_empty(install_modules)){ - yon_config_register(packages_parameter,packages_parameter_command,install_modules); - free(install_modules); - } + // if (!yon_char_is_empty(install_modules)){ + // yon_config_register(packages_parameter,packages_parameter_command,install_modules); + // free(install_modules); + // } return 1; } @@ -376,19 +376,14 @@ void yon_software_init(main_window *widgets){ int yon_pacman_software_save(main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList); - int size; - config_str parameters = NULL; + char *config_parameter = config(packages_parameter); + if (yon_char_is_empty(config_parameter)){ + yon_config_register(packages_parameter,packages_parameter_command,NULL); + } for_iter(model,&iter){ char *target; gtk_tree_model_get(model,&iter,1,&target,-1); - yon_char_parsed_add_or_create_if_exists(parameters,&size,target); - } - char *final = yon_char_parsed_to_string(parameters,size,","); - yon_char_parsed_free(parameters,size); - if (!yon_char_is_empty(final)){ - yon_config_register(packages_parameter,packages_parameter_command,final); - } else { - yon_config_remove_by_key(packages_parameter); + yon_config_append_element(packages_parameter,target,","); } return 1; } diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index bd062ea..93aaeba 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -15,7 +15,9 @@ int yon_packages_tab_save(main_window *widgets){ } else { for (int valid3 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&packiter,&subiter);valid3;valid3 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&packiter)){ gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,-1); - yon_config_append_element(packages_parameter,package,","); + if (status){ + yon_config_append_element(packages_parameter,package,","); + } } } }