|
|
|
@ -1237,38 +1237,92 @@ void yon_config_load_update(main_window *widgets){
|
|
|
|
yon_char_parsed_free(storages,size);
|
|
|
|
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,¤t,-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,¤t,-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);
|
|
|
|
gtk_list_store_clear(widgets->RepoFileList);
|
|
|
|
GtkTreeIter iter,itar;
|
|
|
|
GtkTreeIter iter,itar;
|
|
|
|
GtkTreeModel *model=NULL;
|
|
|
|
GtkTreeModel *model=NULL;
|
|
|
|
if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->ReposTree)),&model,&iter)){
|
|
|
|
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);
|
|
|
|
GtkTreePath *path = gtk_tree_model_get_path(model,&iter);
|
|
|
|
int depth = gtk_tree_path_get_depth(path);
|
|
|
|
int depth = gtk_tree_path_get_depth(path);
|
|
|
|
char *target;
|
|
|
|
char *target, *name;
|
|
|
|
gtk_tree_model_get(model, &iter,3,&target,-1);
|
|
|
|
gtk_tree_model_get(model, &iter,2,&name,3,&target,-1);
|
|
|
|
switch (depth){
|
|
|
|
switch (depth){
|
|
|
|
case 1:{
|
|
|
|
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;
|
|
|
|
int lvlsize;
|
|
|
|
config_str level = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&lvlsize,2,2);
|
|
|
|
config_str level = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&lvlsize,2,2);
|
|
|
|
for (int i=0;i<lvlsize;i++){
|
|
|
|
for (int i=0;i<lvlsize;i++){
|
|
|
|
gtk_list_store_append(widgets->RepoFileList,&itar);
|
|
|
|
gtk_list_store_append(widgets->RepoFileList,&itar);
|
|
|
|
gtk_list_store_set(widgets->RepoFileList,&itar,1,level[i],-1);
|
|
|
|
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;
|
|
|
|
break;
|
|
|
|
case 2:{
|
|
|
|
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;
|
|
|
|
int lvlsize;
|
|
|
|
config_str level = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&lvlsize,2,3);
|
|
|
|
config_str level = yon_tree_store_get_all_at_level(widgets->RepoList,&iter,&lvlsize,2,3);
|
|
|
|
for (int i=0;i<lvlsize;i++){
|
|
|
|
for (int i=0;i<lvlsize;i++){
|
|
|
|
gtk_list_store_append(widgets->RepoFileList,&itar);
|
|
|
|
gtk_list_store_append(widgets->RepoFileList,&itar);
|
|
|
|
gtk_list_store_set(widgets->RepoFileList,&itar,1,level[i],-1);
|
|
|
|
gtk_list_store_set(widgets->RepoFileList,&itar,1,level[i],-1);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
free(archs_string);
|
|
|
|
|
|
|
|
free(info);
|
|
|
|
|
|
|
|
yon_char_parsed_free(archs,arch_size);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 3:{
|
|
|
|
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;
|
|
|
|
char *packages;
|
|
|
|
int size;
|
|
|
|
int size;
|
|
|
|
config_str parsed = yon_file_ls(target,&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;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|