Fixed kernel packages constantly saving

pull/398/head
parent e48fcd4449
commit d6b3e7b770

@ -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){

@ -496,3 +496,80 @@ void yon_kernel_addon_init(main_window *widgets){
}
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;
}
Loading…
Cancel
Save