WIP part/device size compare with installed modules and packages

pull/228/head
parent b3ae703a28
commit edb0ba299d

@ -1,6 +1,65 @@
#include "ubinstall-gtk.h" #include "ubinstall-gtk.h"
int yon_installation_check_packages_size(main_window *widgets){
char *packages = config(packages_parameter);
char *modules = config(modules_parameter);
char *install_mode = config(AUTOINSTALL_TYPE_INSTALL);
long part_size = 0;
if (strcmp(install_mode,"fast")){
char *part = config(part_parameter);
for (int i=0;i<main_config.part_size;i++){
int parsed_size;
config_str parsed = yon_char_parse(main_config.partitions[i],&parsed_size,";");
if (!strcmp(parsed[0],part)&&parsed_size>3&&!yon_char_is_empty(parsed[3])){
part_size = atol(parsed[3]);
yon_char_parsed_free(parsed,parsed_size);
break;
}
yon_char_parsed_free(parsed,parsed_size);
}
} else {
char *device = config(AUTOINSTALL_DEVICE);
GtkTreeIter iter;
for_iter(widgets->DevicesList,&iter){
char *target;
long disk_size;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->DevicesList),&iter,0,&target,7,&disk_size,-1);
if (!strcmp(device,target)){
part_size = disk_size;
}
}
}
long packages_size = 0;
long modules_size = 0;
if (!yon_char_is_empty(packages)){
int parsed_size;
config_str parsed = yon_char_parse(packages,&parsed_size,",");
for (int i=0;i<parsed_size;i++){
packages_size += yon_packages_get_installed_size(YON_PACKAGES_ALL,parsed[i]);
}
yon_char_parsed_free(parsed,parsed_size);
}
if (!yon_char_is_empty(modules)){
int parsed_size;
config_str parsed = yon_char_parse(packages,&parsed_size,",");
for (int i=0;i<parsed_size;i++){
modules_size += yon_packages_get_installed_size(YON_PACKAGES_ALL,parsed[i]);
}
yon_char_parsed_free(parsed,parsed_size);
}
long overall_size = packages_size + modules_size;
if (overall_size>part_size){
yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NOT_ENOUGH_SPACE_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE);
return 0;
}
return 1;
}
int yon_configuration_hub_save(main_window *widgets){ int yon_configuration_hub_save(main_window *widgets){
if (!yon_installation_check_packages_size(widgets)) return 0;
char *finish_button = (char *)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ConfigHubRebootCombo)); char *finish_button = (char *)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ConfigHubRebootCombo));
if (!yon_char_is_empty(finish_button)){ if (!yon_char_is_empty(finish_button)){
yon_config_register(finish_parameter,finish_parameter_command,finish_button); yon_config_register(finish_parameter,finish_parameter_command,finish_button);

@ -372,7 +372,9 @@ void yon_devices_setup(main_window *widgets){
2,yon_char_return_if_exist(parsed[4],""), 2,yon_char_return_if_exist(parsed[4],""),
3,yon_char_return_if_exist(size_string,""), 3,yon_char_return_if_exist(size_string,""),
4,yon_char_return_if_exist(parsed[3],""), 4,yon_char_return_if_exist(parsed[3],""),
6,1,-1); 6,1,
7,atol(parsed[1]),
-1);
yon_char_parsed_free(parsed,parsed_size); yon_char_parsed_free(parsed,parsed_size);

@ -1512,4 +1512,5 @@ void on_partition_size_changed(GtkWidget *self, main_window *widgets);
void *yon_partitions_list_load(main_window *widgets); void *yon_partitions_list_load(main_window *widgets);
void *yon_modules_list_load(main_window *widgets); void *yon_modules_list_load(main_window *widgets);
void yon_size_changed(GtkSpinButton *self, main_window *widgets); void yon_size_changed(GtkSpinButton *self, main_window *widgets);
void yon_pacman_software_update_overall_size(main_window *widgets); void yon_pacman_software_update_overall_size(main_window *widgets);
int yon_installation_check_packages_size(main_window *widgets);

@ -3681,6 +3681,7 @@ agreement</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Chosen size:</property> <property name="label" translatable="yes">Chosen size:</property>
<property name="xalign">1</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>
@ -3731,6 +3732,7 @@ agreement</property>
<property name="visible">True</property> <property name="visible">True</property>
<property name="can-focus">False</property> <property name="can-focus">False</property>
<property name="label" translatable="yes">Overall size:</property> <property name="label" translatable="yes">Overall size:</property>
<property name="xalign">1</property>
<attributes> <attributes>
<attribute name="weight" value="bold"/> <attribute name="weight" value="bold"/>
</attributes> </attributes>

Loading…
Cancel
Save