#include "ubinstall-gtk.h" int yon_kernel_save(main_window *widgets){ GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox)); char *install_modules = ""; char *enabled_module = NULL; for(GList *iter = list;iter;iter = iter->next){ kernel_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_unite(install_modules,!yon_char_is_empty(install_modules)?" ":"",row->modules,NULL); if (!yon_char_is_empty(install_modules)) free(install_modules); install_modules = temp; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){ enabled_module = row->package; } } } if (!yon_char_is_empty(install_modules)){ yon_config_register(modules_extra_parameter,modules_extra_parameter_command,install_modules); } else { yon_config_remove_by_key(modules_extra_parameter); } yon_config_register(KERNEL_BOOT_parameter,KERNEL_BOOT_parameter_command,enabled_module); return 1; } int yon_kernel_addon_save(main_window *widgets){ GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox)); char *install_modules = ""; for(GList *iter = list;iter;iter = iter->next){ kernel_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_unite(install_modules,!yon_char_is_empty(install_modules)?" ":"",row->modules,NULL); if (!yon_char_is_empty(install_modules)) free(install_modules); install_modules = temp; } } if (!yon_char_is_empty(install_modules)){ char *parameter = config(modules_extra_parameter); char *parameter_new = yon_char_unite(!yon_char_is_empty(parameter)?parameter:"",!yon_char_is_empty(parameter)?",":"",install_modules,NULL); yon_config_register(modules_extra_parameter,modules_extra_parameter_command,parameter_new); free(parameter_new); } return 1; } int yon_os_components_save(main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->OSSoftwareList); int size = 0; config_str modules = NULL; for_iter(model,&iter){ char *target; int status; gtk_tree_model_get(model,&iter,0,&status,1,&target,-1); if (status){ yon_char_parsed_add_or_create_if_exists(modules,&size,target); } } if (size){ char *final = yon_char_parsed_to_string(modules,size,","); yon_config_register(modules_parameter,modules_parameter_command,final); } else { yon_config_remove_by_key(modules_parameter); } return 1; } void yon_os_components_init(main_window *widgets){ GtkTreeIter iter; if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->OSSoftwareList),&iter)){ int base_size; config_str base = yon_file_ls(system_base_modules_path,&base_size); for (int i=0;iOSSoftwareList,&iter); gtk_list_store_set(widgets->OSSoftwareList,&iter,0,0,1,base[i],2,version,3,description,-1); } int modules_size; config_str modules = yon_file_ls(system_modules_path,&modules_size); for (int i=0;iOSSoftwareList,&iter); char *version = yon_packages_get_version(YON_PACKAGES_SYNC,base[i]); char *description = yon_packages_get_description(YON_PACKAGES_SYNC,base[i]); gtk_list_store_set(widgets->OSSoftwareList,&iter,0,0,1,modules[i],2,version,3,description,-1); } } char *modules = config(modules_parameter); if (!yon_char_is_empty(modules)){ int parsed_size; config_str parsed = yon_char_parse(modules,&parsed_size,","); GtkTreeIter iter; for_iter (GTK_TREE_MODEL(widgets->OSSoftwareList),&iter){ char *target; gtk_tree_model_get(GTK_TREE_MODEL(widgets->OSSoftwareList),&iter,1,&target,-1); if (yon_char_parsed_check_exist(parsed,parsed_size,target)>-1){ gtk_list_store_set(widgets->OSSoftwareList,0,1,-1); } else { gtk_list_store_set(widgets->OSSoftwareList,0,0,-1); } } yon_char_parsed_free(parsed,parsed_size); } } int yon_software_save(main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->AdditionalSoftwareList); int size = 0; config_str modules = NULL; for_iter(model,&iter){ char *target; int status; gtk_tree_model_get(model,&iter,0,&status,1,&target,-1); if (status){ yon_char_parsed_add_or_create_if_exists(modules,&size,target); } } if (size){ char *final = yon_char_parsed_to_string(modules,size,","); char *parameter = config(modules_extra_parameter); char *parameter_new = yon_char_unite(!yon_char_is_empty(parameter)?parameter:"",!yon_char_is_empty(parameter)?",":"",final,NULL); yon_config_register(modules_extra_parameter,modules_extra_parameter_command,parameter_new); free(parameter_new); } return 1; } void yon_software_init(main_window *widgets){ GtkTreeIter iter; if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter)){ int size; config_str parsed = NULL; parsed = yon_resource_open_file(additional_software_path,&size); for (int i=1;iAdditionalSoftwareList,&iter); gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,1,module_parsed[0],2,module_parsed[1],3,module_parsed[2],-1); //2,module_parsed[2] yon_char_parsed_free(module_parsed,module_size); } } if (size) yon_char_parsed_free(parsed,size); } char *modules = config(modules_extra_parameter); int size; config_str parsed = yon_char_parse(modules,&size,","); for_iter(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter){ char *target; gtk_tree_model_get(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,1,&target); if (yon_char_parsed_check_exist(parsed,size,target)>-1){ gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,-1); } else { gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,0,-1); } } yon_char_parsed_free(parsed,size); } int yon_pacman_software_save(main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList); int size; config_str parameters = 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); } return 1; } void yon_pacman_init(main_window *widgets){ char *pacman_packages = config(packages_parameter); int size; config_str parsed = yon_char_parse(pacman_packages,&size,","); for (int i=0;iPacmanSoftwareChosenList,&iter); gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,description,-1); } yon_char_parsed_free(parsed,size); }