diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 7dadc0a..0b1f27a 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -22,6 +22,10 @@ int yon_kernel_save(main_window *widgets){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){ enabled_module = row->package; } + } else { + char *append_str = yon_char_replace(row->modules," ",","); + yon_config_remove_elements(packages_parameter,append_str,","); + free(append_str); } } @@ -56,6 +60,10 @@ int yon_kernel_addon_save(main_window *widgets){ 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))){ yon_config_append_element(packages_parameter,row->modules,","); + } else { + char *append_str = yon_char_replace(row->modules," ",","); + yon_config_remove_elements(packages_parameter,row->modules,","); + free(append_str); } } @@ -315,6 +323,10 @@ int yon_software_save(main_window *widgets){ if (!yon_char_check_element(config_val,target,",")){ yon_config_append_element(packages_parameter,target,","); } + } else{ + char *append_str = yon_char_replace(target," ",","); + yon_config_remove_elements(packages_parameter,target,","); + free(append_str); } } g_list_free(list); @@ -382,7 +394,6 @@ gboolean yon_software_insert(struct row_data *row_input){ } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); } - // gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); return G_SOURCE_REMOVE; } @@ -395,7 +406,6 @@ void yon_software_init(main_window *widgets){ gtk_widget_destroy(GTK_WIDGET(iter->data)); } int base_size; - // config_str base = yon_config_load(get_available_modules_command,&base_size); config_str base = yon_packages_find(YON_PACKAGES_ALL,"ubm-",(gsize*)&base_size); for (int i=0;iPacmanSoftwareChosenList); - char *config_parameter = config(packages_parameter); - if (yon_char_is_empty(config_parameter)){ - yon_config_register(packages_parameter,packages_parameter_command,NULL); - } + yon_config_register(packages_parameter,packages_parameter_command,NULL); + yon_config_set_status(packages_parameter,-1); + for_iter(model,&iter){ char *target; gtk_tree_model_get(model,&iter,1,&target,-1); diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index 40f02b3..fa821bc 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -4,6 +4,7 @@ int yon_packages_tab_save(main_window *widgets){ GtkTreeIter parentiter, subiter,packiter; if (yon_char_is_empty(config(packages_parameter))){ yon_config_register(packages_parameter,packages_parameter_command,NULL); + yon_config_set_status(packages_parameter,-1); } for_iter(widgets->PackagesList,&parentiter){ for (int valid2 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&subiter,&parentiter);valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&subiter)){ @@ -12,11 +13,15 @@ int yon_packages_tab_save(main_window *widgets){ gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&subiter,0,&status,1,&package,3,&selectable,-1); if (selectable&&status){ yon_config_append_element(packages_parameter,package,","); + }else if (selectable&&!status){ + yon_config_remove_elements(packages_parameter,package,","); } 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); if (status){ yon_config_append_element(packages_parameter,package,","); + } else { + yon_config_remove_elements(packages_parameter,package,","); } } }