|
|
|
|
@ -1268,6 +1268,38 @@ config_str yon_tree_store_repo_get_archs(GtkTreeStore *target, GtkTreeIter *repo
|
|
|
|
|
return final;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
char *yon_signature_get(GtkTreeView *target, GtkTreeIter *iter){
|
|
|
|
|
GtkTreeIter itar;
|
|
|
|
|
GtkTreeModel *model = gtk_tree_view_get_model(target);
|
|
|
|
|
char *full_path = gtk_tree_model_get_string_from_iter(GTK_TREE_MODEL(model),iter);
|
|
|
|
|
int size;
|
|
|
|
|
config_str parsed = yon_char_parse(full_path,&size,":");
|
|
|
|
|
if (size==2){
|
|
|
|
|
char *storage_path = parsed[0];
|
|
|
|
|
char *repo_path = yon_char_unite(parsed[0],":",parsed[1],NULL);
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model),&itar,storage_path);
|
|
|
|
|
char *path;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(model),&itar,3,&path,-1);
|
|
|
|
|
char *repo;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(model),&itar,repo_path);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(model),&itar,2,&repo,-1);
|
|
|
|
|
int status_size;
|
|
|
|
|
config_str status = yon_config_load(yon_repo_get_signature(path,repo),&status_size);
|
|
|
|
|
char *final_string = NULL;
|
|
|
|
|
if (status_size>4){
|
|
|
|
|
final_string = yon_char_unite(status[0],status[1],status[2],status[3],NULL);
|
|
|
|
|
}
|
|
|
|
|
free(full_path);
|
|
|
|
|
free(path);
|
|
|
|
|
free(repo);
|
|
|
|
|
yon_char_parsed_free(parsed,size);
|
|
|
|
|
yon_char_parsed_free(status,status_size);
|
|
|
|
|
|
|
|
|
|
return final_string;
|
|
|
|
|
}
|
|
|
|
|
return NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
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);
|
|
|
|
|
@ -1304,7 +1336,8 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
|
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);
|
|
|
|
|
char *sign = yon_signature_get(GTK_TREE_VIEW(widgets->ReposTree),&iter);
|
|
|
|
|
char *info = get_repo_info_label(name,archs_string,sign);
|
|
|
|
|
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);
|
|
|
|
|
@ -1323,7 +1356,7 @@ void on_main_tree_selection_changed(GtkWidget *self, main_window *widgets){
|
|
|
|
|
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,"","");
|
|
|
|
|
char *info = get_arch_info_label(trg,name);
|
|
|
|
|
gtk_label_set_text(GTK_LABEL(widgets->InformationLabel),info);
|
|
|
|
|
char *packages;
|
|
|
|
|
int size;
|
|
|
|
|
|