diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 19310fc..1211675 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -27,118 +27,130 @@ void on_save_done(main_window *, config_str output, int size){ } -void yon_save_interface( main_window *widgets){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoUpdateCheck))){ - yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"enable"); - } else { - yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"disable"); - } - int save_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateModeCombo)); - switch (save_mode){ - case 0: yon_config_remove_by_key(AUTOUPDATE_mode); - break; - case 1:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"modsys"); - break; - case 2:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"modules"); - break; - case 3:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"system"); - break; - } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UpdateIntervalDefaultCheck))){ - yon_config_remove_by_key(AUTOUPDATE_interval); - } else { - char *int_str = yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->UpdateIntervalSpin))); - char *interval = ""; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->BootCheck))) interval = "boot"; - switch(gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo))){ - case 0: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"min",NULL); +void on_toggle_button_toggled(GtkWidget *self, main_window *widgets){ + if (self == widgets->AutoUpdateCheck){ + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoUpdateCheck))){ + yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"enable"); + } else { + yon_config_register(AUTOUPDATE,AUTOUPDATE_command,"disable"); + } + + } else if (self == widgets->UpdateModeCombo){ + int save_mode = gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateModeCombo)); + switch (save_mode){ + case 0: yon_config_remove_by_key(AUTOUPDATE_mode); break; - case 1: interval = yon_char_unite(int_str,"h",NULL); + case 1:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"modsys"); break; - case 2: interval = yon_char_unite(int_str,"d",NULL); + case 2:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"modules"); break; - case 3: interval = yon_char_unite(int_str,"M",NULL); + case 3:yon_config_register(AUTOUPDATE_mode,AUTOUPDATE_mode_command,"system"); break; } - yon_config_register(AUTOUPDATE_interval,AUTOUPDATE_interval_command,interval); + + } else if (self == widgets->UpdateIntervalDefaultCheck){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UpdateIntervalDefaultCheck))){ + yon_config_remove_by_key(AUTOUPDATE_interval); + } else { + char *int_str = yon_char_from_long(gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->UpdateIntervalSpin))); + char *interval = ""; + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->BootCheck))) interval = "boot"; + switch(gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->UpdateIntervalCombo))){ + case 0: interval = yon_char_unite(!yon_char_is_empty(interval)?interval:"",!yon_char_is_empty(interval)?",":"",int_str,"min",NULL); + break; + case 1: interval = yon_char_unite(int_str,"h",NULL); + break; + case 2: interval = yon_char_unite(int_str,"d",NULL); + break; + case 3: interval = yon_char_unite(int_str,"M",NULL); + break; + } + yon_config_register(AUTOUPDATE_interval,AUTOUPDATE_interval_command,interval); - } - if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UpdateRepoListCheck))){ - yon_config_remove_by_key(AUTOUPDATE_repos); - } else { - char *repos = ""; - GtkTreeIter iter; - for_iter(GTK_TREE_MODEL(widgets->UpdateRepoList),&iter){ - char *target; - int status; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->UpdateRepoList),&iter,0,&status,1,&target,-1); - if (status){ - char *temp = yon_char_unite(repos,!yon_char_is_empty(repos)?",":"",target,NULL); - if (!yon_char_is_empty(repos)) free(repos); - repos = temp; - } } - yon_config_register(AUTOUPDATE_repos,AUTOUPDATE_repos_command,repos); - } - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck))){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck))){ - yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"only"); + + } else if (self == widgets->UpdateRepoListCheck){ + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UpdateRepoListCheck))){ + yon_config_remove_by_key(AUTOUPDATE_repos); } else { - yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"enable"); - } - } else { - yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"disable"); - } - char *repo_net = ""; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PublicationConnectPublicCheck))){ - repo_net = NULL; - repo_net = "enable"; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RecieveDBFromNetCheck))){ - if (!repo_net) repo_net = ",db"; - else repo_net = yon_char_unite(repo_net,",","db",NULL); - }else { - repo_net = yon_char_unite(repo_net,",",NULL); + char *repos = ""; + GtkTreeIter iter; + for_iter(GTK_TREE_MODEL(widgets->UpdateRepoList),&iter){ + char *target; + int status; + gtk_tree_model_get(GTK_TREE_MODEL(widgets->UpdateRepoList),&iter,0,&status,1,&target,-1); + if (status){ + char *temp = yon_char_unite(repos,!yon_char_is_empty(repos)?",":"",target,NULL); + if (!yon_char_is_empty(repos)) free(repos); + repos = temp; + } + } + yon_config_register(AUTOUPDATE_repos,AUTOUPDATE_repos_command,repos); } - } else { - repo_net = "disable"; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RecieveDBFromNetCheck))){ - if (!repo_net) repo_net = ",db"; - else repo_net = yon_char_unite(repo_net,",","db",NULL); + + } else if (self == widgets->RepositoriesRepoListConfigurationCheck||self == widgets->RepositoriesDisableSystemReposCheck){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck))){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck))){ + yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"only"); + } else { + yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"enable"); + } } else { - repo_net = yon_char_unite(repo_net,",",NULL); + yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"disable"); } - } - - if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PublicationCheck))){ - yon_config_remove_by_key(REPOPUBLIC_NET_parameter); - } else { - char *repos = ""; - GtkTreeIter iter; - for_iter(GTK_TREE_MODEL(widgets->PublicationList),&iter){ - char *target; - int status; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->PublicationList),&iter,0,&status,1,&target,-1); - if (status){ - char *temp = yon_char_unite(repos,!yon_char_is_empty(repos)?",":"",target,NULL); - if (!yon_char_is_empty(repos)) free(repos); - repos = temp; + + } else if (self == widgets->PublicationConnectPublicCheck||self == widgets->RecieveDBFromNetCheck){ + char *repo_net = ""; + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PublicationConnectPublicCheck))){ + repo_net = NULL; + repo_net = "enable"; + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RecieveDBFromNetCheck))){ + if (!repo_net) repo_net = ",db"; + else repo_net = yon_char_unite(repo_net,",","db",NULL); + }else { + repo_net = yon_char_unite(repo_net,",",NULL); + } + } else { + repo_net = "disable"; + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RecieveDBFromNetCheck))){ + if (!repo_net) repo_net = ",db"; + else repo_net = yon_char_unite(repo_net,",","db",NULL); + } else { + repo_net = yon_char_unite(repo_net,",",NULL); } } - if (!yon_char_is_empty(repos)){ - repo_net = yon_char_unite(repo_net,",",repos,NULL); + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PublicationCheck))){ + yon_config_remove_by_key(REPOPUBLIC_NET_parameter); + } else { + char *repos = ""; + GtkTreeIter iter; + for_iter(GTK_TREE_MODEL(widgets->PublicationList),&iter){ + char *target; + int status; + gtk_tree_model_get(GTK_TREE_MODEL(widgets->PublicationList),&iter,0,&status,1,&target,-1); + if (status){ + char *temp = yon_char_unite(repos,!yon_char_is_empty(repos)?",":"",target,NULL); + if (!yon_char_is_empty(repos)) free(repos); + repos = temp; + } + } + if (!yon_char_is_empty(repos)){ + repo_net = yon_char_unite(repo_net,",",repos,NULL); + } } - } - yon_config_register(REPOPUBLIC_NET_parameter,REPOPUBLIC_NET_parameter_command,repo_net); - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->MirrorPublicCheck))){ - yon_config_register(REPOPUBLIC_CACHE,REPOPUBLIC_CACHE_command,"enable"); - } else { - yon_config_register(REPOPUBLIC_CACHE,REPOPUBLIC_CACHE_command,"disable"); - - } + yon_config_register(REPOPUBLIC_NET_parameter,REPOPUBLIC_NET_parameter_command,repo_net); + + } else if (self == widgets->MirrorPublicCheck){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->MirrorPublicCheck))){ + yon_config_register(REPOPUBLIC_CACHE,REPOPUBLIC_CACHE_command,"enable"); + } else { + yon_config_register(REPOPUBLIC_CACHE,REPOPUBLIC_CACHE_command,"disable"); + } + + } } void yon_load_proceed(YON_CONFIG_TYPE type){ @@ -439,30 +451,26 @@ void on_web_user_check(GtkToggleButton *self, web_publication_add_window *window gtk_widget_set_sensitive(window->UserPasswordEntry,(status&&status2)); } -void on_config_save(GtkWidget *, main_window *widgets){ +void on_config_save(GtkWidget *, main_window *){ main_config.save_config=2; - yon_save_interface(widgets); template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_BOTH,yon_config_get_custom_command("global"),NULL); if (window){}; } -void on_config_global_save(GtkWidget *, main_window *widgets){ +void on_config_global_save(GtkWidget *, main_window *){ main_config.save_config=0; - yon_save_interface(widgets); template_saving_window *window = yon_save_proceed("global",YON_CONFIG_GLOBAL,yon_config_get_custom_command("global"),NULL); if (window){}; } -void on_config_local_save(GtkWidget *, main_window *widgets){ +void on_config_local_save(GtkWidget *, main_window *){ main_config.save_config=1; - yon_save_interface(widgets); template_saving_window *window = yon_save_proceed("system",YON_CONFIG_LOCAL,yon_config_get_custom_command("system"),NULL); if (window){}; } -void on_config_custom_save(GtkWidget *, main_window *widgets){ +void on_config_custom_save(GtkWidget *, main_window *){ main_config.save_config=1; - yon_save_interface(widgets); template_saving_window *window = yon_save_proceed(NULL,YON_CONFIG_CUSTOM,yon_config_get_custom_command("system"),NULL); if (window){}; } @@ -1604,6 +1612,16 @@ void yon_main_window_complete(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->UpdateIntervalDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->UpdateIntervalSpin); + g_signal_connect(G_OBJECT(widgets->AutoUpdateCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->UpdateModeCombo),"changed",G_CALLBACK(on_toggle_button_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->UpdateIntervalDefaultCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->UpdateRepoListCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->RepositoriesRepoListConfigurationCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->RepositoriesDisableSystemReposCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->PublicationConnectPublicCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->RecieveDBFromNetCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); + g_signal_connect(G_OBJECT(widgets->MirrorPublicCheck),"toggled",G_CALLBACK(on_toggle_button_toggled),widgets); + GList *list = gtk_tree_view_get_columns(GTK_TREE_VIEW(widgets->WebPublicationTree)); for (unsigned int i=0;i