diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 150e9e8..edc1857 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -1085,21 +1085,8 @@ void on_repo_accept_clicked(GtkWidget *, dictionary *dict){ return; } - char *sign_level= ""; - if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->SignDefaultCheck))){ - GtkTreeModel *model = GTK_TREE_MODEL(window->SignList); - GtkTreeIter iter; - for_iter (model,&iter){ - int status; - char *target; - gtk_tree_model_get(model,&iter,0,&status,1,&target,-1); - if (status){ - char *temp = yon_char_unite(sign_level,!yon_char_is_empty(sign_level)?",":"",target,NULL); - if (!yon_char_is_empty(sign_level)) free(sign_level); - sign_level= temp; - } - } - } + char *sign_level= (char*)gtk_entry_get_text(GTK_ENTRY(window->SignLevelCheckEntry)); + char *usage = ""; if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->UsageDefaultCheck))){ usage = "All"; @@ -1506,14 +1493,32 @@ void on_sign_cell_toggled(GtkWidget *, char *path, repo_add_window *window){ GtkTreeIter check_iter; if (gtk_tree_model_get_iter_from_string(model,&check_iter,path)){ int check_status; - gtk_tree_model_get(model,&check_iter,0,&check_status,-1); + char *target; + gtk_tree_model_get(model,&check_iter,0,&check_status,1,&target,-1); gtk_list_store_set(window->SignList,&check_iter,0,!check_status,-1); + char *active_signs = yon_char_new((char*)gtk_entry_get_text(GTK_ENTRY(window->SignLevelCheckEntry))); + if (!check_status){ + char *temp = yon_char_unite(active_signs,!yon_char_is_empty(active_signs)?",":"",target,NULL); + gtk_entry_set_text(GTK_ENTRY(window->SignLevelCheckEntry),temp); + } else { + int parsed_size; + config_str parsed = yon_char_parse(active_signs,&parsed_size,","); + if (parsed_size){ + int found = yon_char_parsed_check_exist(parsed,parsed_size,target); + if (found>-1){ + parsed = yon_char_parsed_rip(parsed,&parsed_size,found); + } + char *temp = yon_char_parsed_to_string(parsed,parsed_size,","); + gtk_entry_set_text(GTK_ENTRY(window->SignLevelCheckEntry),temp); + } + } } } void on_sign_check_toggled(GtkToggleButton *self, repo_add_window *window){ int status = gtk_toggle_button_get_active(self); gtk_widget_set_sensitive(window->SignTree,!status); + } repo_add_window *yon_repo_add_window_new(){ @@ -1542,6 +1547,7 @@ repo_add_window *yon_repo_add_window_new(){ window->RepoSourceAddButton = yon_gtk_builder_get_widget(builder,"RepoSourceAddButton"); window->SignDefaultCheck = yon_gtk_builder_get_widget(builder,"SignDefaultCheck"); window->SignTree = yon_gtk_builder_get_widget(builder,"SignTree"); + window->SignLevelCheckEntry = yon_gtk_builder_get_widget(builder,"SignLevelCheckEntry"); window->SignCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"SignCell")); window->SignList = GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); @@ -1663,6 +1669,8 @@ mirror_add_window *yon_mirror_add_window_new(){ window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); window->HeadLabel = yon_gtk_builder_get_widget(builder,"HeadLabel"); window->PathBox = yon_gtk_builder_get_widget(builder,"PathBox"); + yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->NameEntry)); + yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->TypeEntry)); window->sections = NULL; window->name=NULL; diff --git a/source/ubl-settings-update.h b/source/ubl-settings-update.h index f2ab223..3608cc8 100644 --- a/source/ubl-settings-update.h +++ b/source/ubl-settings-update.h @@ -44,10 +44,10 @@ #define sha256_encrypt_command(target) yon_char_unite("echo -n \"",target,"\" | sha256sum | cut -f 1 -d ' '",NULL) #define sha512_encrypt_command(target) yon_char_unite("echo -n \"",target,"\" | sha512sum | cut -f 1 -d ' '",NULL) -#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]",NULL -#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]",NULL -#define config_get_default_command "ubconfig --source default get update AUTOUPDATE[repos] AUTOUPDATE[interval] AUTOUPDATE[mode] AUTOUPDATE",NULL +#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]",NULL +#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]",NULL +#define config_get_default_command "ubconfig --source default get [update] AUTOUPDATE[repos] AUTOUPDATE[interval] AUTOUPDATE[mode] AUTOUPDATE",NULL #define config_get_command_no_repos(config,target) yon_char_unite("ubconfig --source ",config," get update",target,NULL) #define config_get_global_only_parameters "" @@ -176,6 +176,7 @@ typedef struct { GtkWidget *SignDefaultCheck; GtkWidget *SignTree; + GtkWidget *SignLevelCheckEntry; GtkCellRenderer *SignCell; GtkListStore *SignList; diff --git a/ubl-settings-update-repo-add.glade b/ubl-settings-update-repo-add.glade index 179149d..50f3c2b 100644 --- a/ubl-settings-update-repo-add.glade +++ b/ubl-settings-update-repo-add.glade @@ -463,6 +463,42 @@ Configuration - configuration path 1 + + + True + False + 5 + + + True + False + Sign level: + + + False + True + 0 + + + + + True + False + Required,DatabaseOptional + + + True + True + 1 + + + + + False + True + 2 + + diff --git a/ubl-settings-update.glade b/ubl-settings-update.glade index f0abaab..53d7722 100644 --- a/ubl-settings-update.glade +++ b/ubl-settings-update.glade @@ -610,6 +610,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 0 + + + True + False + + + False + True + 1 + + 26 @@ -643,7 +654,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 1 + 2 @@ -678,7 +689,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 2 + 3 + + + + + True + False + + + False + True + 4 @@ -697,7 +719,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 3 + 5 @@ -717,7 +739,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 4 + 6 @@ -737,7 +759,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 5 + 7 @@ -1117,6 +1139,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 0 + + + True + False + + + False + True + 1 + + 26 @@ -1133,7 +1166,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 1 + 2 @@ -1153,7 +1186,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 2 + 3 @@ -1173,7 +1206,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 3 + 4 @@ -1420,7 +1453,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. True False vertical - 5 + 7 26 @@ -1440,6 +1473,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 0 + + + True + False + + + False + True + 1 + + 26 @@ -1456,7 +1500,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 1 + 2 @@ -1476,7 +1520,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 2 + 3 @@ -1496,7 +1540,18 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 3 + 4 + + + + + True + False + + + False + True + 5 @@ -1515,7 +1570,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. False True - 4 + 6