diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index ad5e9b1..de06fca 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -1,83 +1,5 @@ #include "ubinstall-gtk.h" - -int yon_kernel_save(main_window *widgets){ - GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox)); - char *config_val = config(packages_parameter); - if (yon_char_is_empty(config_val)) { - char *old_packages = config(packages_parameter); - yon_config_register(packages_parameter,packages_parameter_command,NULL); - int status = yon_char_is_empty(old_packages); - yon_config_set_status(packages_parameter,status-1); - } - char *enabled_module = NULL; - int overall_size = 0; - int active_size = 0; - for(GList *iter = list;iter;iter = iter->next){ - overall_size++; - kernel_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_widget_get_sensitive(row->InstallCheck)){ - char *append_str = yon_char_replace(row->modules," ",","); - yon_config_append_elements(packages_parameter,append_str,","); - free(append_str); - active_size++; - } - 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); - } - } - - if (!yon_char_is_empty(enabled_module)){ - yon_config_register(KERNEL_BOOT_parameter,KERNEL_BOOT_parameter_command,enabled_module); - } else { - yon_config_remove_by_key(KERNEL_BOOT_parameter); - } - - if (!main_config.configure_mode){ - yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,packages_parameter, KERNEL_BOOT_parameter,NULL)); - } - return 1; -} - -int yon_kernel_addon_save(main_window *widgets){ - char *parameter = config(packages_parameter); - GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox)); - 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))){ - if (gtk_widget_get_sensitive(row->InstallCheck)){ - yon_config_append_elements(packages_parameter,row->modules,","); - } - } else { - char *append_str = yon_char_replace(row->modules," ",","); - yon_config_remove_elements(packages_parameter,row->modules,","); - free(append_str); - } - } - - if (!main_config.configure_mode){ - int size; - config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter,NULL); - if (parameters){ - char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); - char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); - if (!system(yon_debug_output("%s\n",command))){} - free(command); - yon_char_parsed_free(parameters,size); - } - } - return 1; -} - void on_os_components_uncheck_all(GtkWidget *,main_window *widgets){ int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck)); switch(active){ diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index 87392f9..682f16b 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -495,4 +495,81 @@ void yon_kernel_addon_init(main_window *widgets){ yon_char_parsed_free(kernels,size); +} +int yon_kernel_save(main_window *widgets){ + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelListBox)); + char *config_val = config(packages_parameter); + if (yon_char_is_empty(config_val)) { + char *old_packages = config(packages_parameter); + yon_config_register(packages_parameter,packages_parameter_command,NULL); + int status = yon_char_is_empty(old_packages); + yon_config_set_status(packages_parameter,status-1); + } + char *enabled_module = NULL; + int overall_size = 0; + int active_size = 0; + for(GList *iter = list;iter;iter = iter->next){ + overall_size++; + kernel_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_widget_get_sensitive(row->InstallCheck)){ + char *append_str = yon_char_replace(row->modules," ",","); + yon_config_append_elements(packages_parameter,append_str,","); + free(append_str); + active_size++; + } + 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); + } + } + + if (!yon_char_is_empty(enabled_module)){ + yon_config_register(KERNEL_BOOT_parameter,KERNEL_BOOT_parameter_command,enabled_module); + } else { + yon_config_remove_by_key(KERNEL_BOOT_parameter); + } + + if (!main_config.configure_mode){ + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,packages_parameter, KERNEL_BOOT_parameter,NULL)); + } + return 1; +} + +int yon_kernel_addon_save(main_window *widgets){ + char *parameter = config(packages_parameter); + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->KernelAddonListBox)); + 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))){ + if (gtk_widget_get_sensitive(row->InstallCheck)){ + yon_config_append_elements(packages_parameter,row->modules,","); + } + } else { + char *append_str = yon_char_replace(row->modules," ",","); + yon_config_remove_elements(packages_parameter,row->modules,","); + free(append_str); + } + } + + if (!main_config.configure_mode){ + int size; + config_str parameters = yon_config_get_save_parameters_by_key(&size,packages_parameter,NULL); + if (parameters){ + char *command_parameters = yon_char_parsed_to_string(parameters,size," -- "); + char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); + if (!system(yon_debug_output("%s\n",command))){} + free(command); + yon_char_parsed_free(parameters,size); + } + } + return 1; } \ No newline at end of file