From 086fdd76977e88a4a89a83ba807adf9ff13e62c8 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 20 Feb 2025 09:43:54 +0600 Subject: [PATCH] Fixes --- source/ubl-settings-update.c | 80 +++++++++++++++++++++++++++--------- source/ubl-settings-update.h | 1 + ubl-settings-update.glade | 7 ++++ 3 files changed, 68 insertions(+), 20 deletions(-) diff --git a/source/ubl-settings-update.c b/source/ubl-settings-update.c index 33f7b44..37c4896 100644 --- a/source/ubl-settings-update.c +++ b/source/ubl-settings-update.c @@ -97,7 +97,29 @@ void on_toggle_button_toggled(GtkWidget *self, main_window *widgets){ } 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))){ + int disable_repo_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck)); + GtkTreeModel *model = GTK_TREE_MODEL(widgets->ReposList); + GtkTreeIter iter; + int size; + config_str parsed = yon_config_load(get_all_standard_repos,&size); + for(int i=0;iReposList,&iter,5,!disable_repo_active,-1); + } else { + + } + } + } + if (disable_repo_active){ yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"only"); } else { yon_config_register(REPOSITORY_parameter,REPOSITORY_parameter_command,"enable"); @@ -233,6 +255,25 @@ void yon_interface_update(main_window *widgets){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck),0); if (!yon_char_is_empty(repo_config)){ + config_str repos = yon_config_get_all_by_key(REPOSITORY_search,&size); + for (int i=0;iReposList,&iter); + char *temp = strstr(parsed[0],",")?yon_char_replace(parsed[0],",","\n"):parsed[0]; + parsed[0] = temp; + gtk_list_store_set(widgets->ReposList,&iter,0,(cur_size>3&&!strcmp(parsed[3],""))||cur_size<3?1:0,1,key,2,parsed[0],3,cur_size>1?parsed[1]:"",4,cur_size>2?parsed[2]:"",5,1,-1); + + } + free(key); + free(current); + } + yon_char_parsed_free(repos,size); if (!strcmp(repo_config,"disable")){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),0); } else if (!strcmp(repo_config,"enable")){ @@ -240,28 +281,27 @@ void yon_interface_update(main_window *widgets){ }else if (!strcmp(repo_config,"only")){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck),1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesRepoListConfigurationCheck),1); + int disable_repo_active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RepositoriesDisableSystemReposCheck)); + GtkTreeModel *model = GTK_TREE_MODEL(widgets->ReposList); + GtkTreeIter iter; + int size; + config_str parsed = yon_config_load(get_all_standard_repos,&size); + for(int i=0;iReposList,&iter,5,!disable_repo_active,-1); + } + } } } - config_str repos = yon_config_get_all_by_key(REPOSITORY_search,&size); - for (int i=0;iReposList,&iter); - char *temp = strstr(parsed[0],",")?yon_char_replace(parsed[0],",","\n"):parsed[0]; - parsed[0] = temp; - gtk_list_store_set(widgets->ReposList,&iter,0,(cur_size>3&&!strcmp(parsed[3],""))||cur_size<3?1:0,1,key,2,parsed[0],3,cur_size>1?parsed[1]:"",4,cur_size>2?parsed[2]:"",-1); - - } - free(key); - free(current); - } - yon_char_parsed_free(repos,size); } { int repos_size; diff --git a/source/ubl-settings-update.h b/source/ubl-settings-update.h index e3e409f..e262540 100644 --- a/source/ubl-settings-update.h +++ b/source/ubl-settings-update.h @@ -53,6 +53,7 @@ #define config_get_global_only_parameters "" #define config_get_local_only_parameters "" +#define get_all_standard_repos "ubconfig --source default get [update] REPOSITORY[*]" #define get_publication_list_command "sed -rn \"/^[[:blank:]]*\\[options\\][[:blank:]]*$/d;s/^\\[(.*)\\]$/\\1/p\" /etc/pacman.conf" #define REPOSITORY(target) yon_char_unite("REPOSITORY[",target,"]",NULL) diff --git a/ubl-settings-update.glade b/ubl-settings-update.glade index 5c4160d..f8febc6 100644 --- a/ubl-settings-update.glade +++ b/ubl-settings-update.glade @@ -55,6 +55,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + @@ -791,6 +793,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + 5 0 @@ -806,6 +809,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. end + 5 1 @@ -821,6 +825,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. end + 5 2 @@ -837,6 +842,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 125 + 5 3 @@ -850,6 +856,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. end + 5 4