diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index e54952a..01a493f 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -68,7 +68,10 @@ void yon_interface_update(main_window *widgets){ config_str parsed = yon_char_parse(current,&cur_size,";"); if (cur_size){ gtk_list_store_append(widgets->ReposList,&iter); - gtk_list_store_set(widgets->ReposList,&iter,0,cur_size>3?0:1,1,key,2,parsed[0],3,cur_size>1?parsed[1]:"",4,cur_size>2?parsed[2]:"",-1); + char *temp = yon_char_replace(parsed[0],",","\n"); + free(parsed[0]); + parsed[0] = temp; + gtk_list_store_set(widgets->ReposList,&iter,0,cur_size>3&&!strcmp(parsed[3],"")?1:0,1,key,2,parsed[0],3,cur_size>1?parsed[1]:"",4,cur_size>2?parsed[2]:"",-1); } free(key); @@ -109,27 +112,23 @@ void yon_interface_update(main_window *widgets){ } } - // config_str mirror_list = yon_config_get_all_by_key(REPOPUBLIC_CACHE_search,&size); - // if (size){ - // for (int i=0;iMirrorList,&iter); - // gtk_list_store_set(widgets->MirrorList,&iter,,-1); - // } - // } - // } + config_str mirror_list = yon_config_get_all_by_key(REPOPUBLIC_CACHE_search,&size); + if (size){ + for (int i=0;iMirrorList,&iter); + int cur_size; + config_str parsed = yon_char_parse(cur,&cur_size,","); + if (cur_size){ + gtk_list_store_set(widgets->MirrorList,&iter,0,key,2,yon_char_parsed_to_string(parsed,cur_size,"\n"),-1); + } + } + } char *autoupdate_config = config(AUTOUPDATE); if (!yon_char_is_empty(autoupdate_config)&&!strcmp(autoupdate_config,"enable")){ @@ -147,6 +146,18 @@ void yon_interface_update(main_window *widgets){ } } + char *autoupdate_repos = config(AUTOUPDATE_repos); + if (!yon_char_is_empty(autoupdate_repos)){ + int parsed_size; + GtkTreeIter iter; + config_str parsed = yon_char_parse(autoupdate_repos,&parsed_size,","); + for (int i=0;iUpdateRepoList),&iter); + gtk_list_store_set(widgets->UpdateRepoList,&iter,1,parsed[i],-1); + } + yon_char_parsed_free(parsed,parsed_size); + } + autoupdate_config = config(AUTOUPDATE_interval); if (!yon_char_is_empty(autoupdate_config)){ if (!strcmp(autoupdate_config,"boot")){ @@ -172,11 +183,11 @@ void yon_interface_update(main_window *widgets){ char *key = yon_char_divide_search(cur,"=",-1); free(yon_char_divide_search(key,"[",-1)); key[strlen(key)-1]='\0'; - char *path = yon_char_divide_search(key,":",-1); + char *path = !strstr(key,"=") ? NULL : yon_char_divide_search(key,":",-1); int repos_size; - config_str repos = yon_char_parse(key,&repos_size,","); + config_str repos = yon_char_parse(path,&repos_size,","); - gtk_list_store_set(widgets->WebPublicationList,&iter,1,path,2,yon_char_parsed_to_string(repos,repos_size,"\n"),-1); + gtk_list_store_set(widgets->WebPublicationList,&iter,1,key,2,yon_char_parsed_to_string(repos,repos_size,"\n"),-1); int cur_size; config_str parsed = yon_char_parse(cur,&cur_size,":"); if (cur_size){ @@ -395,7 +406,7 @@ void on_repo_accept_clicked(GtkWidget *, dictionary *dict){ // int usage_level_enable_install = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageEnableInsallCheck)); // int usage_level_sysupgrade = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageSysupgradeCheck)); - char *final = yon_char_unite(sources,";",sign_level_package,",",sign_level_condiition,";",enabled?"":"disable",NULL); + char *final = yon_char_unite(sources,";",sign_level_package,",",sign_level_condiition,";",";",enabled?"":"disable",NULL); yon_config_register(REPOSITORY(repo_name),REOSITORY_command(repo_name),final); yon_interface_update(widgets); @@ -418,10 +429,24 @@ void on_web_publish_accept(GtkWidget *, dictionary *dict){ char *username = (char*)gtk_entry_get_text(GTK_ENTRY(window->UsernameEntry)); char *user_password = (char*)gtk_entry_get_text(GTK_ENTRY(window->UserPasswordEntry)); - char *name = ""; + char *name = (char*)gtk_entry_get_text(GTK_ENTRY(window->PathEntry)); + char *full_name = ""; + GtkTreeIter iter; + for_iter (GTK_TREE_MODEL(window->list),&iter){ + int chosen; + char *repos; + gtk_tree_model_get(GTK_TREE_MODEL(window->list),0,&chosen,1,&repos,-1); + if (chosen){ + char *temp = yon_char_unite(full_name,yon_char_is_empty(full_name)?"":",",repos,NULL); + if (!yon_char_is_empty(full_name)) free(full_name); + full_name = temp; + } + } + char *final_name = yon_char_is_empty(full_name) ? name : yon_char_unite(name,":",full_name,NULL); char *final = yon_char_unite(enabled?"enable":"disable",":",enable_browser?"listing":"",":",port_enabled?port:"",":",username_check?username:"",username_check?user_password:"",NULL); - yon_config_register(REPOPUBLIC_WEB_full(name),REPOPUBLIC_WEB_command(name),final); + yon_config_register(REPOPUBLIC_WEB_full(final_name),REPOPUBLIC_WEB_command(final_name),final); yon_interface_update(widgets); + gtk_widget_destroy(window->Window); } void on_mirror_accept(GtkWidget *,dictionary *dict){ @@ -432,7 +457,7 @@ void on_mirror_accept(GtkWidget *,dictionary *dict){ GList *list = gtk_container_get_children(GTK_CONTAINER(window->PathBox)); for (guint i=0;iWindow); } void on_mirror_path_removed(GtkWidget *, GtkWidget *target){ @@ -483,7 +509,7 @@ void on_mirror_path_add(GtkWidget *, mirror_add_window *window){ } void on_repo_source_add(GtkWidget *, repo_add_window *window){ - const char *target = gtk_entry_get_text(GTK_ENTRY(window->RepoSourceEntry)); + char *target = (char*)gtk_entry_get_text(GTK_ENTRY(window->RepoSourceEntry)); if (yon_char_is_empty(target)){ yon_ubl_status_box_spawn(GTK_CONTAINER(window->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); yon_ubl_status_highlight_incorrect(window->RepoSourceEntry); @@ -549,6 +575,7 @@ web_publication_add_window *yon_web_publication_add_window_new(){ window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton"); window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel"); + window->list = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); gtk_widget_show(window->Window); diff --git a/source/ubl-settings-update.h b/source/ubl-settings-update.h index 3425ebb..faafbbc 100644 --- a/source/ubl-settings-update.h +++ b/source/ubl-settings-update.h @@ -41,7 +41,7 @@ #define yon_config_get_custom_command(target) yon_char_unite("ubconfig --source ",target," get update REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]",NULL) #define config_get_local_command "ubconfig --source system get update REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]" #define config_get_global_command "ubconfig --source global get update REPOPUBLIC_NET REPOPUBLIC_WEB REPOSITORY[*] REPOPUBLIC_WEB REPOPUBLIC_WEB[*] REPOPUBLIC_CACHE REPOPUBLIC_CACHE[*] AUTOUPDATE AUTOUPDATE[mode] AUTOUPDATE[interval] AUTOUPDATE[repos] AUTOUPDATE[timestamp]" -#define config_get_default_command "REPOSITORY[*]" +#define config_get_default_command "ubconfig --source global get update AUTOUPDATE[repos]" #define config_get_global_only_parameters "" #define config_get_local_only_parameters "" @@ -161,6 +161,7 @@ typedef struct { GtkWidget *UserPasswordEntry; GtkWidget *AcceptButton; GtkWidget *CancelButton; + GtkListStore *list; } web_publication_add_window; typedef struct { diff --git a/ubl-settings-update.glade b/ubl-settings-update.glade index c6f70a6..36b38ed 100644 --- a/ubl-settings-update.glade +++ b/ubl-settings-update.glade @@ -159,12 +159,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. True False - 5 - 5 - 5 - 5 - 5 - 5 True True vertical