From 465d475d6b8c5bb97c434492b0ce471282e0c720 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 5 Jun 2024 14:24:28 +0600 Subject: [PATCH] Fixes --- source/ubl-settings-repomanager.c | 33 +++++++++++++++++++++++++------ source/ubl-settings-repomanager.h | 10 +++++----- ubl-settings-repomanager.glade | 4 ++-- 3 files changed, 34 insertions(+), 13 deletions(-) diff --git a/source/ubl-settings-repomanager.c b/source/ubl-settings-repomanager.c index 14add2d..2e5841f 100644 --- a/source/ubl-settings-repomanager.c +++ b/source/ubl-settings-repomanager.c @@ -820,6 +820,25 @@ void on_add_clicked(GtkWidget *self, main_window *widgets){ g_signal_connect(G_OBJECT(window->RemoveButton),"clicked",G_CALLBACK(on_remove_package),window); g_signal_connect(G_OBJECT(window->RepositoryCombo),"changed",G_CALLBACK(on_repo_sign_load),window); yon_add_window_set_selected(widgets,window); + GtkTreeModel *model; + GList *list = NULL; + char *full_path; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ReposTree)),NULL,&iter)){ + gtk_tree_model_get(GTK_TREE_MODEL(widgets->RepoList),&iter,3,&full_path,-1); + if (list = gtk_tree_selection_get_selected_rows(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->RepoPackagesTree)),&model)){ + for (int i=0; iPackagesList,&itar); + char *temp = yon_char_unite(full_path,"/",path,NULL); + free(full_path); + full_path = temp; + gtk_list_store_set(window->PackagesList,&itar,1,path,2,full_path,-1); + } + } + } gtk_widget_show(window->MainWindow); } @@ -1303,6 +1322,7 @@ char *yon_signature_get(GtkTreeView *target, GtkTreeIter *iter){ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){ gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),""); gtk_list_store_clear(widgets->RepoFileList); + gtk_list_store_clear(widgets->RepoPackagesList); GtkTreeIter iter,itar; GtkTreeModel *model=NULL; if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ReposTree)),&model,&iter)){ @@ -1360,28 +1380,29 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){ gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info); char *packages; int size; - char *repo = yon_char_divide(target,yon_char_find_last(target,'/')); + char *arch = yon_char_new(target); + char *repo = yon_char_divide(arch,yon_char_find_last(arch,'/')); char *storage = yon_char_divide(repo,yon_char_find_last(repo,'/')); - char *command = yon_get_packages_command(storage,repo,target); + char *command = yon_get_packages_command(storage,repo,arch); yon_debug_output("%s\n",command); config_str parsed = yon_config_load(command,&size); for (int i=0;i0){ yon_char_remove_last_symbol(load[0],'\n'); gtk_list_store_append(widgets->RepoFileList,&itar); - gtk_list_store_set(widgets->RepoFileList,&itar,0,line[1][0]!='-'&&line[1][1]!='\0'? document_added : "",1,line[0],2,line[1],-1); + gtk_list_store_set(widgets->RepoFileList,&itar,1,line[0],2,line[1],-1); yon_char_parsed_free(load,load_size); } } else { gtk_list_store_append(widgets->RepoPackagesList,&itar); - gtk_list_store_set(widgets->RepoPackagesList,&itar,0,document_deleted,1,line[1],-1); + gtk_list_store_set(widgets->RepoPackagesList,&itar,1,line[1],-1); } } free(info); diff --git a/source/ubl-settings-repomanager.h b/source/ubl-settings-repomanager.h index 6cb71ce..0642c48 100644 --- a/source/ubl-settings-repomanager.h +++ b/source/ubl-settings-repomanager.h @@ -51,10 +51,10 @@ typedef char* string; #define get_gpg_keys_command yon_char_unite(yon_ubl_check_root()==1 ? yon_char_unite("su - ",yon_ubl_root_user_get()," -c \"gpg --list-signatures\"",NULL):"gpg --list-signatures"," | grep '^sig 3' | cut -d' ' -f10,11,13- | sort -u |sed -e 's/[0-9]*-[0-9]*-[0-9]* //g'",NULL) #define create_storage_command(path,name) yon_char_unite("repo-manager add -r '",name,"' -d '", path,"'",NULL) -#define add_packages_command(path,arch,name,packages_path) yon_char_unite("repo-manager add -r '",name,"' -a '",arch,"' -d '", path,"' ",packages_path,NULL) -#define add_packages_sign_command(path,arch,name,repo_sign,pack_sign,packages_path) yon_char_unite("repo-manager add -r '",name,"' -a '",arch,"' -d '", path,"' -S '",repo_sign,"' -s '",pack_sign,"' ",packages_path,NULL) -#define add_packages_package_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -r '",name,"' -a '",arch,"' -d '", path,"' -S '",sign,"' ",packages_path,NULL) -#define add_packages_repo_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -r '",name,"' -a '",arch,"' -d '", path,"' -S '",sign,"' ",packages_path,NULL) +#define add_packages_command(path,arch,name,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' ",packages_path,NULL) +#define add_packages_sign_command(path,arch,name,repo_sign,pack_sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",repo_sign,"' -s '",pack_sign,"' ",packages_path,NULL) +#define add_packages_package_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",sign,"' ",packages_path,NULL) +#define add_packages_repo_sign_command(path,arch,name,sign,packages_path) yon_char_unite("repo-manager add -f -r '",name,"' -a '",arch,"' -d '", path,"' -S '",sign,"' ",packages_path,NULL) #define remove_packages_command(path,arch,name,packages_path) yon_char_unite("repo-manager remove -r '",name,"' -a '",arch,"' -d '", path,"' ",packages_path,NULL) #define yon_move_packages_command(storage,arch, source_repo, target_repo, packages) yon_char_unite("repo-manager move -d '",storage,"' -a '",arch,"' -R '",source_repo,"' -r '",target_repo,"' ", packages,NULL) @@ -63,7 +63,7 @@ typedef char* string; #define ubl_settings_update_command "ubl-settings-update" -#define yon_get_packages_command(path,repo,arch) yon_char_unite("repo-manager show --quiet -d ",path," -a ",arch," -r ",repo," | sed -E 's/(\\S+)(\\s+)(\\S+)/\\1:\\3/g'",NULL) +#define yon_get_packages_command(path,repo,arch) yon_char_unite("repo-manager show --quiet -d ",path," -a ",arch," -r ",repo," | sed -E 's/(\\S+)(\\s+)(\\S+)/\\1 \\3/g'",NULL) #define yon_repo_get_signature(path, repo) yon_char_unite("repo-manager verify --quiet -d ",path," -r ",repo," . 2>&1 | cut -d: -f2 |sed -E 's/ *//g'",NULL) diff --git a/ubl-settings-repomanager.glade b/ubl-settings-repomanager.glade index f1c515f..3bf77ed 100644 --- a/ubl-settings-repomanager.glade +++ b/ubl-settings-repomanager.glade @@ -359,13 +359,13 @@ - 2 + 0 - 3 + 1