Added info for storage, repo and architecture selection

pull/41/head
parent ceedcc136e
commit 09716940b7

@ -1237,38 +1237,92 @@ void yon_config_load_update(main_window *widgets){
yon_char_parsed_free(storages,size);
}
void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){
config_str yon_tree_store_storage_get_archs(GtkTreeStore *target, GtkTreeIter *storage, int *size){
config_str final = NULL;
GtkTreeIter iter,itar;
int repos_valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(target),&iter,storage);
for (;repos_valid;repos_valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(target),&iter)){
int archs_valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(target),&itar,&iter);
for (;archs_valid;archs_valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(target),&itar)){
char *current;
gtk_tree_model_get(GTK_TREE_MODEL(target),&itar,2,&current,-1);
if (yon_char_parsed_check_exist(final,*size,current)==-1)
yon_char_parsed_add_or_create_if_exists(final,size,current);
}
}
return final;
}
config_str yon_tree_store_repo_get_archs(GtkTreeStore *target, GtkTreeIter *repo, int *size){
config_str final = NULL;
GtkTreeIter iter;
int repos_valid = gtk_tree_model_iter_children(GTK_TREE_MODEL(target),&iter,repo);
for (;repos_valid;repos_valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(target),&iter)){
char *current;
gtk_tree_model_get(GTK_TREE_MODEL(target),&iter,2,&current,-1);
if (yon_char_parsed_check_exist(final,*size,current)==-1)
yon_char_parsed_add_or_create_if_exists(final,size,current);
}
return final;
}
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);
GtkTreeIter iter,itar;
GtkTreeModel *model=NULL;
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ReposTree)),&model,&iter)){
GtkTreePath *path = gtk_tree_model_get_path(model,&iter);
int depth = gtk_tree_path_get_depth(path);
char *target;
gtk_tree_model_get(model, &iter,3,&target,-1);
char *target, *name;
gtk_tree_model_get(model, &iter,2,&name,3,&target,-1);
switch (depth){
case 1:{
int size, arch_size;
config_str repos = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&size,2,2);
config_str archs = yon_tree_store_storage_get_archs(widgets->RepoList,&iter,&arch_size);
char *repo_string = yon_char_parsed_to_string(repos,size,", ");
char *archs_string = yon_char_parsed_to_string(archs,arch_size,", ");
char *info = get_storage_info_label(target,repo_string,archs_string);
gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info);
int lvlsize;
config_str level = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&lvlsize,2,2);
for (int i=0;i<lvlsize;i++){
gtk_list_store_append(widgets->RepoFileList,&itar);
gtk_list_store_set(widgets->RepoFileList,&itar,1,level[i],-1);
}
free(repo_string);
free(archs_string);
free(info);
yon_char_parsed_free(repos,size);
yon_char_parsed_free(archs,arch_size);
}
break;
case 2:{
int size, arch_size;
config_str archs = yon_tree_store_repo_get_archs(widgets->RepoList,&iter,&arch_size);
char *archs_string = yon_char_parsed_to_string(archs,arch_size,", ");
char *info = get_repo_info_label(name,archs_string);
gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info);
int lvlsize;
config_str level = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&lvlsize,2,3);
for (int i=0;i<lvlsize;i++){
gtk_list_store_append(widgets->RepoFileList,&itar);
gtk_list_store_set(widgets->RepoFileList,&itar,1,level[i],-1);
}
free(archs_string);
free(info);
yon_char_parsed_free(archs,arch_size);
}
break;
case 3:{
GtkTreeIter itor;
gtk_tree_model_iter_parent(GTK_TREE_MODEL(widgets->RepoList),&itor,&iter);
char *trg;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->RepoList),&itor,2,&trg,-1);
char *info = get_arch_info_label(trg,name,"","");
gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info);
char *packages;
int size;
config_str parsed = yon_file_ls(target,&size);
@ -1288,6 +1342,7 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){
}
}
}
free(info);
}
break;
}

@ -69,6 +69,12 @@ typedef char* string;
#define get_package_info_command(filename) yon_char_unite("pacman -Q --info --file ",filename," 2>/dev/null|sed -e 's/ */ /g' -e 's/ : /: /g' -e 's/\\n/ /g' -e 's/^ /\\t/g'",NULL)
#define get_storage_info_label(path, repos, archs) yon_char_unite(STORAGE_PATH_LABEL,": ", path,"\n\n", REPOS_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL)
#define get_repo_info_label(repos, archs) yon_char_unite(REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,NULL)
#define get_arch_info_label(repos, archs,sign,sign_status) yon_char_unite(REPO_NAME_LABEL,": ",repos,"\n\n",ARCHS_LABEL,": ",archs,"\n\n",SIGNATURE_LABEL," ",sign,"\n\n",SIGN_STATUS_LABEL,": ",sign_status,NULL)
#define yon_generate_key_command(type,name,email,strength,comment,expire,password) yon_char_unite("gpg --batch --gen-key <<EOF\n\
%echo Generating a basic OpenPGP key\n\
Key-Type: ",type,"\n\

@ -144,4 +144,16 @@
#define PASSWORD_INCORRECT_LABEL _("Passwords do not match")
#define SEARCH_LABEL _("Package search")
#define SEARCH_LABEL _("Package search")
#define STORAGE_PATH_LABEL _("Storage path")
#define REPOS_LABEL _("Repository")
#define ARCHS_LABEL _("Architecture")
#define REPO_NAME_LABEL _("Repository name")
#define SIGNATURE_INFO_LABEL _("Signature")
#define SIGN_STATUS_LABEL _("Signature status")

@ -484,3 +484,27 @@ msgstr ""
#: source/ubl-strings.h:147
msgid "Package search"
msgstr ""
#: source/ubl-strings.h:149
msgid "Storage path"
msgstr ""
#: source/ubl-strings.h:151
msgid "Repository"
msgstr ""
#: source/ubl-strings.h:153
msgid "Architecture"
msgstr ""
#: source/ubl-strings.h:155
msgid "Repository name"
msgstr ""
#: source/ubl-strings.h:157
msgid "Signature"
msgstr ""
#: source/ubl-strings.h:159
msgid "Signature status"
msgstr ""

@ -496,3 +496,27 @@ msgstr "Пароли не совпадают"
#: source/ubl-strings.h:147
msgid "Package search"
msgstr "Поиск пакетов"
#: source/ubl-strings.h:149
msgid "Storage path"
msgstr "Расположение хранилища"
#: source/ubl-strings.h:151
msgid "Repository"
msgstr "Репозиторий"
#: source/ubl-strings.h:153
msgid "Architecture"
msgstr "Архитектура"
#: source/ubl-strings.h:155
msgid "Repository name"
msgstr "Имя репозитория"
#: source/ubl-strings.h:157
msgid "Signature"
msgstr "Подпись"
#: source/ubl-strings.h:159
msgid "Signature status"
msgstr "Статус подписи"

Loading…
Cancel
Save