Fixed packages deselecting

pull/291/head
parent 2b573cf6dd
commit 7cf5aa212b

@ -22,6 +22,10 @@ int yon_kernel_save(main_window *widgets){
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){
enabled_module = row->package; 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"); 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))){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){
yon_config_append_element(packages_parameter,row->modules,","); 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,",")){ if (!yon_char_check_element(config_val,target,",")){
yon_config_append_element(packages_parameter,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); g_list_free(list);
@ -382,7 +394,6 @@ gboolean yon_software_insert(struct row_data *row_input){
} else { } else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); 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; return G_SOURCE_REMOVE;
} }
@ -395,7 +406,6 @@ void yon_software_init(main_window *widgets){
gtk_widget_destroy(GTK_WIDGET(iter->data)); gtk_widget_destroy(GTK_WIDGET(iter->data));
} }
int base_size; 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); config_str base = yon_packages_find(YON_PACKAGES_ALL,"ubm-",(gsize*)&base_size);
for (int i=0;i<base_size;i++){ for (int i=0;i<base_size;i++){
struct row_data *row = malloc(sizeof(struct row_data)); struct row_data *row = malloc(sizeof(struct row_data));
@ -434,10 +444,9 @@ int yon_pacman_software_save(main_window *widgets){
if (!yon_installation_check_packages_size(widgets)) return 0; if (!yon_installation_check_packages_size(widgets)) return 0;
GtkTreeIter iter; GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList); GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList);
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){ for_iter(model,&iter){
char *target; char *target;
gtk_tree_model_get(model,&iter,1,&target,-1); gtk_tree_model_get(model,&iter,1,&target,-1);

@ -4,6 +4,7 @@ int yon_packages_tab_save(main_window *widgets){
GtkTreeIter parentiter, subiter,packiter; GtkTreeIter parentiter, subiter,packiter;
if (yon_char_is_empty(config(packages_parameter))){ if (yon_char_is_empty(config(packages_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(widgets->PackagesList,&parentiter){ 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)){ 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); gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&subiter,0,&status,1,&package,3,&selectable,-1);
if (selectable&&status){ if (selectable&&status){
yon_config_append_element(packages_parameter,package,","); yon_config_append_element(packages_parameter,package,",");
}else if (selectable&&!status){
yon_config_remove_elements(packages_parameter,package,",");
} else { } 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)){ 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); gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,-1);
if (status){ if (status){
yon_config_append_element(packages_parameter,package,","); yon_config_append_element(packages_parameter,package,",");
} else {
yon_config_remove_elements(packages_parameter,package,",");
} }
} }
} }

Loading…
Cancel
Save