From 696f6079386fcc6b7abdf094e01e99e57b268ffb Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Thu, 9 Apr 2026 10:15:08 +0600 Subject: [PATCH] Fixed main components size getting source --- source/ubinstall-gtk-components.c | 16 ++++++++++------ source/ubinstall-gtk.h | 21 ++------------------- ubinstall-gtk-os-row.glade | 2 +- 3 files changed, 13 insertions(+), 26 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index b1e1723..78bb8b9 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -105,7 +105,7 @@ int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets){ for (listiter=list;listiter;listiter=listiter->next){ os_row *row = g_object_get_data(G_OBJECT(listiter->data),"kernel_row"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ - long cur_size = yon_packages_get_installed_size(YON_PACKAGES_ALL,row->name); + long cur_size = row->size_raw; pacman_size += cur_size; if (gtk_widget_get_sensitive(row->InstallCheck)){ gtk_widget_show(widgets->OSSoftwareUncheckAllCheck); @@ -200,6 +200,7 @@ os_row *yon_os_row_new(){ row->name=NULL; row->modules=NULL; row->version=NULL; + row->size_raw=0; gtk_overlay_add_overlay(GTK_OVERLAY(row->RowOverlay),row->NameLabel); g_signal_connect(G_OBJECT(row->NameLabel),"activate-link",G_CALLBACK(on_os_components_info),row); @@ -235,6 +236,7 @@ void *yon_modules_list_load(main_window *widgets){ char sizemod; char *temp = yon_char_from_double(yon_size_long_convert_automatic(atol(parsed[4]),&sizemod)); char *size_str = yon_size_get_name_from_letter(sizemod); + row->size_raw = (unsigned long)atol(parsed[4]); row->size = yon_char_unite(temp," ", size_str,NULL); free(temp); g_idle_add((GSourceFunc)yon_os_component_insert,row); @@ -279,6 +281,7 @@ gboolean yon_os_component_insert(struct row_data *row_input){ g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(yon_os_components_check_packages_size),widgets); gtk_list_box_insert(GTK_LIST_BOX(widgets->OSSoftwareListBox),row->row,-1); yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,!yon_char_is_empty(row_input->description)?(_(row_input->description)):"", row_input->source, row_input->size); + row->size_raw = row_input->size_raw; char *modules = config(modules_parameter); if (yon_char_is_empty(modules)||yon_char_check_element(modules,row_input->name,",")||!strcmp(modules,"auto")){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); @@ -424,7 +427,7 @@ int yon_software_check_packages_size(GtkWidget *, main_window *widgets){ for (listiter=list;listiter;listiter=listiter->next){ os_row *row = g_object_get_data(G_OBJECT(listiter->data),"kernel_row"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ - long cur_size = yon_packages_get_installed_size(YON_PACKAGES_ALL,row->name); + long cur_size = row->size_raw; pacman_size += cur_size; if (gtk_widget_get_sensitive(row->InstallCheck)){ gtk_widget_show(widgets->AdditionalComponentsUncheckAllCheck); @@ -461,6 +464,7 @@ gboolean yon_software_insert(struct row_data *row_input){ g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(yon_software_check_packages_size),widgets); gtk_list_box_insert(GTK_LIST_BOX(widgets->AdditionalComponentsList),row->row,-1); yon_os_row_setup(row,row_input->name,row_input->version,row_input->tags,_(row_input->description),NULL,row_input->size); + row->size_raw = row_input->size_raw; char *modules = config(packages_parameter); if (yon_char_check_element(modules,row_input->name,",")){ @@ -521,13 +525,13 @@ void yon_software_init(main_window *widgets){ row->name = yon_char_new(base[i]); row->tags = yon_packages_get_groups(YON_PACKAGES_ALL,base[i]); int parsed_size; - config_str tags_parsed = yon_char_parse(row->tags,&parsed_size," "); + config_str tags_parsed = yon_char_parse(row->tags,&parsed_size,", "); if (parsed_size){ int ubmodule_pos = yon_char_parsed_check_exist(tags_parsed,parsed_size,"ubmodule"); if (ubmodule_pos>-1){ free(tags_parsed[ubmodule_pos]); tags_parsed[ubmodule_pos] = NULL; - row->tags = yon_char_parsed_to_string(tags_parsed,parsed_size," "); + row->tags = yon_char_parsed_to_string(tags_parsed,parsed_size,", "); } yon_char_parsed_free(tags_parsed,parsed_size); @@ -651,7 +655,7 @@ void on_pacman_software_all_toggled(GtkWidget *, char *path, main_window *widget gtk_tree_model_get(GTK_TREE_MODEL(widgets->PacmanSoftwareAllList),&iter,1,&name,2,&type,3,&description,4,&size_str,-1); gtk_list_store_remove(widgets->PacmanSoftwareAllList,&iter); 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); + gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,name,2,type,3,description,4,size_str,6,1,-1); g_hash_table_add(widgets->pacmanchosen,yon_char_new(name)); yon_pacman_software_update_overall_size(widgets); @@ -686,7 +690,7 @@ void yon_pacman_software_update_overall_size(main_window *widgets){ for (listiter=list;listiter;listiter=listiter->next){ os_row *row = g_object_get_data(G_OBJECT(listiter->data),"kernel_row"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ - long cur_size = yon_packages_get_installed_size(YON_PACKAGES_ALL,row->name); + long cur_size = row->size_raw; pacman_size += cur_size; } } diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index e46e332..4c02b9a 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -1064,6 +1064,7 @@ typedef struct char *version; char *tags; char *description; + unsigned long size_raw; GtkWidget *RowOverlay; } os_row; @@ -1173,6 +1174,7 @@ struct row_data char *description; char *source; char *size; + unsigned long size_raw; }; typedef struct @@ -1452,27 +1454,8 @@ void on_installer_language_changed(GtkWidget *self, GtkTreePath *, GtkTreeViewCo gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *widgets); gboolean yon_os_component_insert(struct row_data *row_input); gboolean yon_spinner_switch_off(GtkSpinner *target); -// void on_advanced_added(GtkWidget *, char *, main_window *); -// void on_advanced_new(GtkWidget *, main_window *); -// int yon_advanced_section_get(char *partition); -// void yon_advanced_partition_set_from_section(advanced_part_widgets *part, advanced_part_widgets *section); -// void yon_advanced_update(main_window *widgets); -// void on_advanced_partition_create(GtkWidget *, main_window *widgets); -// void yon_advanced_parts_update(main_window *widgets); -// void on_advanced_partition_add(GtkWidget *, char *path, main_window *widgets); -// void yon_advanced_section_remove_all(); -// void on_advanced_section_toggled(GtkWidget *self, main_window *widgets); void yon_fs_type_setup(GtkComboBoxText *target); -// void yon_advanced_set_max_size_from_partition(advanced_part_widgets *part, main_window *widgets); -// void on_advanced_size_changed(GtkWidget *self, main_window *widgets); int yon_advanced_save(main_window *widgets); -// void yon_advanced_part_parameter_changed(GtkWidget *self, advanced_part_widgets *part); -// void yon_advanced_section_update(main_window *widgets); -// void yon_advanced_section_update_section(advanced_part_widgets *part, GtkWidget *cur_toggle, main_window *widgets); -// int yon_advanced_section_get_by_part(advanced_part_widgets *part); -// void yon_advanced_section_remove_by_name(char *part); -// void on_advanced_virtual_device_changed(GtkWidget *, main_window *widgets); -// int yon_advanced_section_append(advanced_part_widgets *section); void on_format_changed(GtkWidget *self, advanced_part_widgets *part); int yon_layouts_get(); void on_link(GtkWidget *self, char *uri, gpointer); diff --git a/ubinstall-gtk-os-row.glade b/ubinstall-gtk-os-row.glade index 21dd622..6da6790 100644 --- a/ubinstall-gtk-os-row.glade +++ b/ubinstall-gtk-os-row.glade @@ -52,7 +52,7 @@ - 15 + 18 True False center