@ -362,6 +362,7 @@ void yon_pacman_init(main_window *widgets){
gtk_list_store_set ( widgets - > PacmanSoftwareChosenList , & iter , 0 , 1 , 1 , parsed [ i ] , 2 , version , 3 , _ ( description ) , 4 , size_str , - 1 ) ;
free ( size_str ) ;
}
yon_pacman_software_update_overall_size ( widgets ) ;
yon_char_parsed_free ( parsed , size ) ;
}
@ -374,9 +375,33 @@ void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widget
gtk_list_store_append ( widgets - > PacmanSoftwareChosenList , & iter ) ;
gtk_list_store_set ( widgets - > PacmanSoftwareChosenList , & iter , 0 , 1 , 1 , name , 2 , type , 3 , description , 4 , size_str , - 1 ) ;
g_hash_table_add ( widgets - > pacmanchosen , yon_char_new ( name ) ) ;
yon_pacman_software_update_overall_size ( widgets ) ;
}
void yon_pacman_software_update_overall_size ( main_window * widgets ) {
GtkTreeIter iter ;
GtkTreeModel * model = GTK_TREE_MODEL ( widgets - > PacmanSoftwareChosenList ) ;
long overall_size = 0 ;
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 ) ;
overall_size + = size ;
}
char * overall_str = NULL ;
if ( overall_size ) {
char mod = ' \0 ' ;
double size_converted = yon_size_long_convert_automatic ( overall_size , & mod ) ;
char * size_str = yon_char_from_double ( size_converted ) ;
overall_str = yon_char_unite ( size_str , " " , yon_size_get_name_from_letter ( mod ) , NULL ) ;
free ( size_str ) ;
} else {
overall_str = yon_char_unite ( " 0 " , yon_size_get_name_from_letter ( ' K ' ) , NULL ) ;
}
gtk_label_set_text ( GTK_LABEL ( widgets - > PacmanOverallSizeLabel ) , overall_str ) ;
}
void on_pacman_software_chosen_toggled ( GtkWidget * , char * path , main_window * widgets ) {
GtkTreeIter iter ;
char * name , * type , * description , * size_str ;
@ -386,6 +411,7 @@ void on_pacman_software_chosen_toggled(GtkWidget *, char *path, main_window *wid
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 ) {
@ -408,6 +434,7 @@ gboolean yon_pacman_fill(struct pacman_struct *pacman){
if ( ! yon_char_is_empty ( version ) ) free ( version ) ;
if ( ! yon_char_is_empty ( description ) ) free ( description ) ;
}
yon_pacman_software_update_overall_size ( widgets ) ;
yon_char_parsed_free ( loaded , size ) ;
gtk_widget_set_sensitive ( widgets - > PacmanSoftwareSearchEntry , 1 ) ;
gtk_widget_set_sensitive ( widgets - > PacmanSoftwareChosenPackagesTree , 1 ) ;