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; char *package;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&subiter,0,&status,1,&package,3,&selectable,-1); gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&subiter,0,&status,1,&package,3,&selectable,-1);
if (selectable&&status){ if (selectable&&status){
yon_config_append_element(packages_parameter,package,","); yon_config_append_elements(packages_parameter,package,",");
}else if (selectable&&!status){ }else if (selectable&&!status){
yon_config_remove_elements(packages_parameter,package,","); yon_config_remove_elements(packages_parameter,package,",");
} else { } 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)){ 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); gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,-1);
if (status){ if (status){
yon_config_append_element(packages_parameter,package,","); yon_config_append_elements(packages_parameter,package,",");
} else { } else {
yon_config_remove_elements(packages_parameter,package,","); yon_config_remove_elements(packages_parameter,package,",");
} }
@ -92,14 +92,15 @@ void yon_packages_tab_init(main_window *widgets){
int parsed_size; int parsed_size;
config_str parsed = yon_char_parse(packages[i],&parsed_size,";"); config_str parsed = yon_char_parse(packages[i],&parsed_size,";");
GtkTreeIter *category_iter = yon_category_check(widgets->PackagesList,parsed[0]); GtkTreeIter *category_iter = yon_category_check(widgets->PackagesList,parsed[0]);
char *name_render = yon_char_replace(parsed[2],","," ");
if (category_iter){ if (category_iter){
if (!yon_char_is_empty(parsed[1])){ if (!yon_char_is_empty(parsed[1])){
GtkTreeIter *subcategory_iter = yon_subcategory_check(widgets->PackagesList,category_iter,parsed[1]); GtkTreeIter *subcategory_iter = yon_subcategory_check(widgets->PackagesList,category_iter,parsed[1]);
if (subcategory_iter){ if (subcategory_iter){
GtkTreeIter package_iter; GtkTreeIter package_iter;
gtk_tree_store_append(widgets->PackagesList,&package_iter,subcategory_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); 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); 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); free(full_string);
gtk_tree_iter_free(subcategory_iter); gtk_tree_iter_free(subcategory_iter);
} else { } 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_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_set(widgets->PackagesList,&subcatiter,1,parsed[1],2,_(parsed[3]),3,0,-1);
gtk_tree_store_append(widgets->PackagesList,&package_iter,&subcatiter); gtk_tree_store_append(widgets->PackagesList,&package_iter,&subcatiter);
char *full_string = yon_char_unite("<b>",parsed[2],"</b>\n",_(parsed[3]),NULL); 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); 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); free(full_string);
} }
} else { } else {
GtkTreeIter package_iter; GtkTreeIter package_iter;
gtk_tree_store_append(widgets->PackagesList,&package_iter,category_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); 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); 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); free(full_string);
} }
gtk_tree_iter_free(category_iter); 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_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_set(widgets->PackagesList,&subcategory_iter,1,parsed[1],2,_(parsed[1]),3,0,-1);
gtk_tree_store_append(widgets->PackagesList,&package_iter,&subcategory_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); char *full_string = yon_char_unite("<b>",name_render,"</b>\n",_(parsed[3]),NULL);
gtk_tree_store_set(widgets->PackagesList,&package_iter,1,parsed[2],2,full_string,3,1,-1); 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); free(full_string);
} else { } else {
GtkTreeIter package_iter; 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_append(widgets->PackagesList,&catiter,NULL);
gtk_tree_store_set(widgets->PackagesList,&catiter,1,parsed[0],2,_(parsed[0]),3,0,-1); 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); gtk_tree_store_append(widgets->PackagesList,&package_iter,&catiter);
char *full_string = yon_char_unite("<b>",parsed[2],"</b>\n",_(parsed[3]),NULL); 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); 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); free(full_string);
} }
} }
@ -178,14 +179,20 @@ void yon_on_packages_chosen(GtkWidget *, char *path, main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PackagesList),&iter,path); gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(widgets->PackagesList),&iter,path);
int status; 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); gtk_tree_store_set(widgets->PackagesList,&iter,0,!status,-1);
} }
}
void yon_on_packages_activated(GtkWidget *, GtkTreePath* path, GtkTreeViewColumn* , main_window *widgets){ void yon_on_packages_activated(GtkWidget *, GtkTreePath* path, GtkTreeViewColumn* , main_window *widgets){
GtkTreeIter iter; GtkTreeIter iter;
gtk_tree_model_get_iter(GTK_TREE_MODEL(widgets->PackagesList),&iter,path); gtk_tree_model_get_iter(GTK_TREE_MODEL(widgets->PackagesList),&iter,path);
int sensitive;
int status; 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); gtk_tree_store_set(widgets->PackagesList,&iter,0,!status,-1);
} }
}

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

Loading…
Cancel
Save