diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 55dcc36..1005444 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -771,17 +771,27 @@ void on_repo_edit(GtkWidget *,main_window *widgets){ } } if (size>2&&!yon_char_is_empty(parsed[2])){ - if (!strcmp(parsed[2],"All")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck),1); - } else if (!strcmp(parsed[2],"Sync")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableUpdateCheck),1); - } else if (!strcmp(parsed[2],"Search")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableSearchCheck),1); - } else if (!strcmp(parsed[2],"Install")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableInsallCheck),1); - } else if (!strcmp(parsed[2],"Upgrade")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableInsallCheck),1); + int usage_size; + config_str usage = yon_char_parse(parsed[2],&usage_size,","); + for (int i=0;iUsageDefaultCheck),1); + } else { + if (!strcmp(usage[i],"Sync")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableUpdateCheck),1); + } + if (!strcmp(usage[i],"Search")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableSearchCheck),1); + } + if (!strcmp(usage[i],"Install")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableInsallCheck),1); + } + if (!strcmp(usage[i],"Upgrade")){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->UsageEnableInsallCheck),1); + } + } } + if (usage_size) yon_char_parsed_free(usage,usage_size); } //usage if (size<3||yon_char_is_empty(parsed[3])||strcmp(parsed[3],"disable")){ //disable gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->EnabledCheck),1); @@ -1019,14 +1029,25 @@ void on_repo_accept_clicked(GtkWidget *, dictionary *dict){ char *usage = ""; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck))){ usage = "All"; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageEnableUpdateCheck))){ - usage = "Sync"; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageEnableSearchCheck))){ - usage = "Search"; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageEnableInsallCheck))){ - usage = "Install"; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageSysupgradeCheck))){ - usage = "Upgrade"; + } else { + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageEnableUpdateCheck))){ + usage = yon_char_new("Sync"); + } + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageEnableSearchCheck))){ + char *temp = yon_char_unite(usage,!yon_char_is_empty(usage)?",":"","Search",NULL); + if (!yon_char_is_empty(usage)) free(usage); + usage=temp; + } + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageEnableInsallCheck))){ + char *temp = yon_char_unite(usage,!yon_char_is_empty(usage)?",":"","Install",NULL); + if (!yon_char_is_empty(usage)) free(usage); + usage=temp; + } + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageSysupgradeCheck))){ + char *temp = yon_char_unite(usage,!yon_char_is_empty(usage)?",":"","Upgrade",NULL); + if (!yon_char_is_empty(usage)) free(usage); + usage=temp; + } } char *final = yon_char_unite(sources,";",sign_level_package,",",sign_level_condiition,";",usage,";",enabled?"":"disable",NULL); @@ -1350,6 +1371,10 @@ repo_add_window *yon_repo_add_window_new(){ g_signal_connect(G_OBJECT(window->RepoSourceButton),"clicked",G_CALLBACK(on_file_chooser_open),window->RepoSourceEntry); g_signal_connect(G_OBJECT(window->RepoSourceAddButton),"clicked",G_CALLBACK(on_repo_source_add),window); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageEnableInsallCheck); + g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageEnableSearchCheck); + g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageEnableUpdateCheck); + g_signal_connect(G_OBJECT(window->UsageDefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->UsageSysupgradeCheck); gtk_widget_show(window->Window); return window; diff --git a/ubl-settings-update.glade b/ubl-settings-update.glade index 89e2950..393a112 100644 --- a/ubl-settings-update.glade +++ b/ubl-settings-update.glade @@ -1545,6 +1545,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. True True MirrorList + both