Fixed packages by group activation

pull/300/head
parent b2d08bfe49
commit a0adf14293

@ -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);
gtk_tree_store_set(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_store_set(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);
}
}

@ -207,7 +207,7 @@
<columns>
<!-- column-name Chosen -->
<column type="gboolean"/>
<!-- column-name Name -->
<!-- column-name Name Render -->
<column type="gchararray"/>
<!-- column-name Description -->
<column type="gchararray"/>
@ -215,6 +215,8 @@
<column type="gboolean"/>
<!-- column-name Sensitive -->
<column type="gboolean"/>
<!-- column-name Packages -->
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="PacmanSoftwareAllList">

Loading…
Cancel
Save