|
|
|
|
@ -16,8 +16,8 @@ GtkTreeIter *yon_category_check(GtkTreeStore *target,char *category){
|
|
|
|
|
GtkTreeIter *yon_subcategory_check(GtkTreeStore *target, GtkTreeIter *parent_iter, char *category){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
GtkTreeIter *ret_iter = NULL;
|
|
|
|
|
gtk_tree_model_iter_children(target,&iter,parent_iter);
|
|
|
|
|
for(int valid = 1; valid; valid = gtk_tree_model_iter_next(target,&iter)){
|
|
|
|
|
gtk_tree_model_iter_children(GTK_TREE_MODEL(target),&iter,parent_iter);
|
|
|
|
|
for(int valid = 1; valid; valid = gtk_tree_model_iter_next(GTK_TREE_MODEL(target),&iter)){
|
|
|
|
|
char *cur_category;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(target),&iter,0,&cur_category,-1);
|
|
|
|
|
if (!strcmp(cur_category,category)){
|
|
|
|
|
@ -51,16 +51,19 @@ void yon_packages_tab_init(main_window *widgets){
|
|
|
|
|
|
|
|
|
|
void yon_on_packages_chosen(GtkTreeStore *, char *path, main_window *widgets){
|
|
|
|
|
GtkTreeIter iter, chiter;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(widgets->PackagesList,&iter,path);
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PackagesList),&iter,path);
|
|
|
|
|
GtkTreePath *cur_path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->PackagesList),&iter);
|
|
|
|
|
int depth = gtk_tree_path_get_depth(cur_path);
|
|
|
|
|
if (depth<2){
|
|
|
|
|
GtkTreeIter *cur_parent, *cur_iter;
|
|
|
|
|
cur_parent = gtk_tree_iter_copy(&iter);
|
|
|
|
|
cur_iter = gtk_tree_iter_copy(&chiter);
|
|
|
|
|
switch(depth){
|
|
|
|
|
case 0:
|
|
|
|
|
gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&chiter,&iter);
|
|
|
|
|
|
|
|
|
|
gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),cur_iter,&iter);
|
|
|
|
|
__attribute__((fallthrough));
|
|
|
|
|
case 1:
|
|
|
|
|
gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&chiter,&iter);
|
|
|
|
|
gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),cur_iter,cur_parent);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|