@ -527,8 +527,11 @@ int yon_pacman_software_save(main_window *widgets){
for_iter ( model , & iter ) {
char * target ;
gtk_tree_model_get ( model , & iter , 1 , & target , - 1 ) ;
yon_config_append_element ( packages_parameter , target , " , " ) ;
int sensitive = 0 ;
gtk_tree_model_get ( model , & iter , 1 , & target , 6 , & sensitive , - 1 ) ;
if ( sensitive ) {
yon_config_append_element ( packages_parameter , target , " , " ) ;
}
}
if ( ! main_config . configure_mode ) {
int size ;
@ -551,8 +554,9 @@ void yon_pacman_init(main_window *widgets){
}
gtk_list_store_clear ( widgets - > PacmanSoftwareChosenList ) ;
char * pacman_packages = config ( packages_parameter ) ;
char * modules_packages = config ( modules_parameter ) ;
int size ;
int size = 0 ;
config_str parsed = yon_char_parse ( pacman_packages , & size , " , " ) ;
for ( int i = 0 ; i < size ; i + + ) {
char * description = yon_packages_get_description ( YON_PACKAGES_SYNC , parsed [ i ] ) ;
@ -563,7 +567,35 @@ void yon_pacman_init(main_window *widgets){
char * size_str = yon_char_unite ( yon_char_from_double ( size_converted ) , " " , yon_size_get_name_from_letter ( mod ) , NULL ) ;
GtkTreeIter iter ;
gtk_list_store_append ( widgets - > PacmanSoftwareChosenList , & iter ) ;
gtk_list_store_set ( widgets - > PacmanSoftwareChosenList , & iter , 0 , 1 , 1 , parsed [ i ] , 2 , version , 3 , _ ( description ) , 4 , size_str , - 1 ) ;
gtk_list_store_set ( widgets - > PacmanSoftwareChosenList , & iter , 0 , 1 , 1 , parsed [ i ] , 2 , version , 3 , _ ( description ) , 4 , size_str , 6 , 1 , - 1 ) ;
free ( size_str ) ;
}
yon_char_parsed_free ( parsed , size ) ;
size = 0 ;
if ( modules_packages & & ! strcmp ( modules_packages , " 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_packages = yon_char_parsed_to_string ( final , final_size , " , " ) ;
}
parsed = yon_char_parse ( modules_packages , & size , " , " ) ;
for ( int i = 1 ; i < size ; i + + ) {
char * description = yon_packages_get_description ( YON_PACKAGES_SYNC , parsed [ i ] ) ;
char * version = yon_packages_get_version ( YON_PACKAGES_SYNC , parsed [ i ] ) ;
long pkgsize = yon_packages_get_installed_size ( YON_PACKAGES_SYNC , parsed [ i ] ) ;
char mod = ' \n ' ;
double size_converted = yon_size_long_convert_automatic ( pkgsize , & mod ) ;
char * size_str = yon_char_unite ( yon_char_from_double ( size_converted ) , " " , yon_size_get_name_from_letter ( mod ) , NULL ) ;
GtkTreeIter iter ;
gtk_list_store_append ( widgets - > PacmanSoftwareChosenList , & iter ) ;
gtk_list_store_set ( widgets - > PacmanSoftwareChosenList , & iter , 0 , 1 , 1 , parsed [ i ] , 2 , version , 3 , _ ( description ) , 4 , size_str , 6 , 0 , - 1 ) ;
free ( size_str ) ;
}
yon_pacman_software_update_overall_size ( widgets ) ;
@ -590,9 +622,12 @@ void yon_pacman_software_update_overall_size(main_window *widgets){
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > PacmanSoftwareChosenList ) ;
for_iter ( model , & iter ) {
char * name ;
gtk_tree_model_get ( model , & iter , 1 , & name , - 1 ) ;
long size = yon_packages_get_installed_size ( YON_PACKAGES_ALL , name ) ;
pacman_size + = size ;
int sensitive = 0 ;
gtk_tree_model_get ( model , & iter , 1 , & name , 6 , & sensitive , - 1 ) ;
if ( sensitive ) {
long size = yon_packages_get_installed_size ( YON_PACKAGES_ALL , name ) ;
pacman_size + = size ;
}
}
char * overall_str = NULL ;
if ( pacman_size ) {
@ -627,13 +662,16 @@ void yon_pacman_software_update_overall_size(main_window *widgets){
void on_pacman_software_chosen_toggled ( GtkWidget * , char * path , main_window * widgets ) {
GtkTreeIter iter ;
char * name , * type , * description , * size_str ;
int sensitive = 0 ;
gtk_tree_model_get_iter_from_string ( GTK_TREE_MODEL ( widgets - > PacmanSoftwareChosenList ) , & iter , path ) ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > PacmanSoftwareChosenList ) , & iter , 1 , & name , 2 , & type , 3 , & description , 4 , & size_str , - 1 ) ;
gtk_list_store_remove ( widgets - > PacmanSoftwareChosenList , & iter ) ;
gtk_list_store_append ( widgets - > PacmanSoftwareAllList , & iter ) ;
gtk_list_store_set ( widgets - > PacmanSoftwareAllList , & iter , 0 , 0 , 1 , name , 2 , type , 3 , description , 4 , size_str , - 1 ) ;
g_hash_table_remove ( widgets - > pacmanchosen , name ) ;
yon_pacman_software_update_overall_size ( widgets ) ;
gtk_tree_model_get ( GTK_TREE_MODEL ( widgets - > PacmanSoftwareChosenList ) , & iter , 1 , & name , 2 , & type , 3 , & description , 4 , & size_str , 6 , & sensitive , - 1 ) ;
if ( sensitive ) {
gtk_list_store_remove ( widgets - > PacmanSoftwareChosenList , & iter ) ;
gtk_list_store_append ( widgets - > PacmanSoftwareAllList , & iter ) ;
gtk_list_store_set ( widgets - > PacmanSoftwareAllList , & iter , 0 , 0 , 1 , name , 2 , type , 3 , description , 4 , size_str , - 1 ) ;
g_hash_table_remove ( widgets - > pacmanchosen , name ) ;
yon_pacman_software_update_overall_size ( widgets ) ;
}
}
gboolean yon_pacman_fill ( struct pacman_struct * pacman ) {