|
|
|
|
@ -12,14 +12,14 @@ int yon_packages_tab_save(main_window *widgets){
|
|
|
|
|
char *package;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&subiter,0,&status,1,&package,3,&selectable,-1);
|
|
|
|
|
if (selectable&&status){
|
|
|
|
|
yon_config_append_element(packages_parameter,package,",");
|
|
|
|
|
yon_config_append_elements(packages_parameter,package,",");
|
|
|
|
|
}else if (selectable&&!status){
|
|
|
|
|
yon_config_remove_elements(packages_parameter,package,",");
|
|
|
|
|
} else {
|
|
|
|
|
for (int valid3 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&packiter,&subiter);valid3;valid3 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&packiter)){
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,-1);
|
|
|
|
|
if (status){
|
|
|
|
|
yon_config_append_element(packages_parameter,package,",");
|
|
|
|
|
yon_config_append_elements(packages_parameter,package,",");
|
|
|
|
|
} else {
|
|
|
|
|
yon_config_remove_elements(packages_parameter,package,",");
|
|
|
|
|
}
|
|
|
|
|
@ -92,14 +92,15 @@ void yon_packages_tab_init(main_window *widgets){
|
|
|
|
|
int parsed_size;
|
|
|
|
|
config_str parsed = yon_char_parse(packages[i],&parsed_size,";");
|
|
|
|
|
GtkTreeIter *category_iter = yon_category_check(widgets->PackagesList,parsed[0]);
|
|
|
|
|
char *name_render = yon_char_replace(parsed[2],","," ");
|
|
|
|
|
if (category_iter){
|
|
|
|
|
if (!yon_char_is_empty(parsed[1])){
|
|
|
|
|
GtkTreeIter *subcategory_iter = yon_subcategory_check(widgets->PackagesList,category_iter,parsed[1]);
|
|
|
|
|
if (subcategory_iter){
|
|
|
|
|
GtkTreeIter package_iter;
|
|
|
|
|
gtk_tree_store_append(widgets->PackagesList,&package_iter,subcategory_iter);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",parsed[2],"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,yon_char_check_element(modules,parsed[2],","),-1);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",name_render,"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),5,parsed[2],-1);
|
|
|
|
|
free(full_string);
|
|
|
|
|
gtk_tree_iter_free(subcategory_iter);
|
|
|
|
|
} else {
|
|
|
|
|
@ -108,15 +109,15 @@ void yon_packages_tab_init(main_window *widgets){
|
|
|
|
|
gtk_tree_store_append(widgets->PackagesList,&subcatiter,category_iter);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&subcatiter,1,parsed[1],2,_(parsed[3]),3,0,-1);
|
|
|
|
|
gtk_tree_store_append(widgets->PackagesList,&package_iter,&subcatiter);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",parsed[2],"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,yon_char_check_element(modules,parsed[2],","),-1);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",name_render,"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),5,parsed[2],-1);
|
|
|
|
|
free(full_string);
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
GtkTreeIter package_iter;
|
|
|
|
|
gtk_tree_store_append(widgets->PackagesList,&package_iter,category_iter);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",parsed[2],"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,yon_char_check_element(modules,parsed[2],","),-1);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",name_render,"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),5,parsed[2],-1);
|
|
|
|
|
free(full_string);
|
|
|
|
|
}
|
|
|
|
|
gtk_tree_iter_free(category_iter);
|
|
|
|
|
@ -130,8 +131,8 @@ void yon_packages_tab_init(main_window *widgets){
|
|
|
|
|
gtk_tree_store_append(widgets->PackagesList,&subcategory_iter,&catiter);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&subcategory_iter,1,parsed[1],2,_(parsed[1]),3,0,-1);
|
|
|
|
|
gtk_tree_store_append(widgets->PackagesList,&package_iter,&subcategory_iter);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",parsed[2],"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,1,parsed[2],2,full_string,3,1,-1);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",name_render,"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),-1);
|
|
|
|
|
free(full_string);
|
|
|
|
|
} else {
|
|
|
|
|
GtkTreeIter package_iter;
|
|
|
|
|
@ -139,8 +140,8 @@ void yon_packages_tab_init(main_window *widgets){
|
|
|
|
|
gtk_tree_store_append(widgets->PackagesList,&catiter,NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&catiter,1,parsed[0],2,_(parsed[0]),3,0,-1);
|
|
|
|
|
gtk_tree_store_append(widgets->PackagesList,&package_iter,&catiter);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",parsed[2],"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,yon_char_check_element(modules,parsed[2],","),-1);
|
|
|
|
|
char *full_string = yon_char_unite("<b>",name_render,"</b>\n",_(parsed[3]),NULL);
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&package_iter,0,!!yon_char_check_element(config_packages,parsed[2],",")||yon_char_check_element(modules,parsed[2],","),1,parsed[2],2,full_string,3,1,4,!yon_char_check_element(modules,parsed[2],","),5,parsed[2],-1);
|
|
|
|
|
free(full_string);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -178,14 +179,20 @@ void yon_on_packages_chosen(GtkWidget *, char *path, main_window *widgets){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PackagesList),&iter,path);
|
|
|
|
|
int status;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&iter,0,&status,-1);
|
|
|
|
|
int sensitive;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&iter,0,&status,4,&sensitive,-1);
|
|
|
|
|
if (sensitive){
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&iter,0,!status,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_on_packages_activated(GtkWidget *, GtkTreePath* path, GtkTreeViewColumn* , main_window *widgets){
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
gtk_tree_model_get_iter(GTK_TREE_MODEL(widgets->PackagesList),&iter,path);
|
|
|
|
|
int sensitive;
|
|
|
|
|
int status;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&iter,0,&status,-1);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&iter,0,&status,4,&sensitive,-1);
|
|
|
|
|
if (sensitive){
|
|
|
|
|
gtk_tree_store_set(widgets->PackagesList,&iter,0,!status,-1);
|
|
|
|
|
}
|
|
|
|
|
}
|