@ -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_element s ( 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_element s ( packages_parameter , package , " , " ) ;
} else {
yon_config_remove_elements ( packages_parameter , package , " , " ) ;
}
@ -28,15 +28,7 @@ int yon_packages_tab_save(main_window *widgets){
}
}
if ( ! main_config . configure_mode ) {
int size ;
config_str parameters = yon_config_get_save_parameters_by_key ( & size , packages_parameter , NULL ) ;
if ( parameters ) {
char * command_parameters = yon_char_parsed_to_string ( parameters , size , " -- " ) ;
char * command = yon_char_unite ( ubconfig_dull_command , " --target system " , command_parameters , NULL ) ;
if ( ! system ( yon_debug_output ( " %s \n " , command ) ) ) { }
free ( command ) ;
yon_char_parsed_free ( parameters , size ) ;
}
yon_config_save_args_simple ( main_config . config_load_path , packages_parameter , NULL ) ;
}
return 1 ;
}
@ -71,7 +63,28 @@ GtkTreeIter *yon_subcategory_check(GtkTreeStore *target, GtkTreeIter *parent_ite
}
void yon_packages_tab_init ( main_window * widgets ) {
if ( ! main_config . configure_mode ) {
yon_config_update_by_args ( packages_parameter , NULL ) ;
}
if ( ! main_config . configure_mode ) {
yon_config_remove_by_args ( packages_parameter , NULL ) ;
char * command = yon_config_parameter_prepare_command ( packages_parameter_command , main_config . config_load_path , NULL , NULL ) ;
yon_config_load_config ( YON_CONFIG_CUSTOM , command , NULL ) ;
free ( command ) ;
}
gtk_tree_store_clear ( widgets - > PackagesList ) ;
char * modules = config ( modules_parameter ) ;
if ( modules & & ! strcmp ( modules , " auto " ) ) {
int final_size ;
config_str final = NULL ;
for ( int i = 0 ; i < main_config . modules_size ; i + + ) {
int parsed_size = 0 ;
config_str parsed = yon_char_parse ( main_config . modules [ i ] , & parsed_size , " ; " ) ;
yon_char_parsed_add_or_create_if_exists ( final , & final_size , parsed [ 1 ] ) ;
yon_char_parsed_free ( parsed , parsed_size ) ;
}
modules = yon_char_parsed_to_string ( final , final_size , " , " ) ;
}
int size ;
char * config_packages = config ( packages_parameter ) ;
@ -80,14 +93,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 ] , " , " ) , 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 ] , " , " ) , 5 , parsed [ 2 ] , - 1 ) ;
free ( full_string ) ;
gtk_tree_iter_free ( subcategory_iter ) ;
} else {
@ -96,15 +110,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 ] , " , " ) , 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 ] , " , " ) , 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 ] , " , " ) , 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 ] , " , " ) , 5 , parsed [ 2 ] , - 1 ) ;
free ( full_string ) ;
}
gtk_tree_iter_free ( category_iter ) ;
@ -118,8 +132,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 ;
@ -127,12 +141,13 @@ 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 ] , " , " ) , 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 ] , " , " ) , 5 , parsed [ 2 ] , - 1 ) ;
free ( full_string ) ;
}
}
}
if ( ! yon_char_is_empty ( modules ) ) free ( modules ) ;
gtk_tree_view_expand_all ( GTK_TREE_VIEW ( widgets - > PackagesTree ) ) ;
}
@ -165,14 +180,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 ) ;
}
}