WIP davanced installation loading

pull/250/head
parent f545f6d59b
commit 394d610b4b

@ -212,7 +212,6 @@ void on_advanced_partition_create(GtkWidget *, main_window *widgets){
sections_size++;
}
}
}
if (!found&&last_unvalid){
char *target;
@ -253,7 +252,36 @@ void on_advanced_partition_add(GtkWidget *, char *path, main_window *widgets){
}
void yon_advanced_device_choose(main_window *widgets, const char *device){
if (yon_char_is_empty(device)) return;
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->DevicesList);
for_iter(model, &iter){
char *target;
gtk_tree_model_get(model,&iter,0,&target,-1);
if (!yon_char_is_empty(target)&&strstr(device,target)){
char *path = gtk_tree_model_get_string_from_iter(model,&iter);
g_signal_emit_by_name(G_OBJECT(widgets->AdvancedDeviceChosenCell),"toggled",path,NULL);
}
}
}
void yon_advanced_part_choose(main_window *widgets, const char *part){
if (yon_char_is_empty(part)) return;
GtkTreeIter iter;
GtkTreeModel *model = GTK_TREE_MODEL(widgets->PartitionsList);
for_iter(model, &iter){
char *target;
gtk_tree_model_get(model,&iter,0,&target,-1);
if (!yon_char_is_empty(target)&&strstr(part,target)){
char *path = gtk_tree_model_get_string_from_iter(model,&iter);
g_signal_emit_by_name(G_OBJECT(widgets->AdvancedPartChosenCell),"toggled",path,NULL);
}
}
}
void yon_install_advanced_init(main_window *widgets){
yon_advanced_partition_clear(widgets);
g_signal_handlers_block_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets);
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->AdvancedVirtualDeviceCombo));
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->AdvancedVirtualDeviceCombo),NO_LABEL);
@ -268,6 +296,146 @@ void yon_install_advanced_init(main_window *widgets){
}
yon_char_parsed_free(vmf_file,size);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AdvancedVirtualDeviceCombo),G_CALLBACK(on_advanced_virtual_device_changed),widgets);
char *device = config(device_parameter);
char *parts = config(part_parameter);
char *part_size = config(part_size_parameter);
char *part_label = config(part_label_parameter);
char *part_fs_type = config(part_fs_type_parameter);
char *part_fs_label = config(part_fs_label_parameter);
char *part_crypt = config(part_crypt_parameter);
char *part_format = config(part_format_parameter);
char *boot = config(boot_parameter);
char *swap = config(swap_parameter);
char *swap_size = config(swap_size_parameter);
if (yon_char_is_empty(device)&&yon_char_is_empty(parts)) return;
{
int size;
config_str device_parsed = yon_char_parse(device,&size,",");
if (size>0&&!yon_char_is_empty(device_parsed[0])){
yon_advanced_device_choose(widgets,device_parsed[0]);
// sections[0] = yon_advanced_section_new();
while(gtk_events_pending()) gtk_main_iteration();
sections[0]->device=device_parsed[0];
on_advanced_partition_create(NULL,widgets);
if (size>1&&!yon_char_is_empty(device_parsed[1])){
yon_advanced_device_choose(widgets,device_parsed[1]);
// sections[1] = yon_advanced_section_new();
while(gtk_events_pending()) gtk_main_iteration();
sections[1]->device=device_parsed[1];
on_advanced_partition_create(NULL,widgets);
}
free(device_parsed);
};
}
{
int size;
config_str part_parsed = yon_char_parse(parts,&size,",");
if (size>0){
// sections[0] = yon_advanced_section_new();
yon_advanced_device_choose(widgets,part_parsed[0]);
yon_advanced_part_choose(widgets,part_parsed[0]);
while(gtk_events_pending()) gtk_main_iteration();
sections[0]->partition=part_parsed[0];
if (size>1&&!yon_char_is_empty(part_parsed[1])){
// sections[1] = yon_advanced_section_new();
yon_advanced_device_choose(widgets,part_parsed[1]);
yon_advanced_part_choose(widgets,part_parsed[1]);
while(gtk_events_pending()) gtk_main_iteration();
sections[1]->device=part_parsed[1];
}
free(part_parsed);
};
}
{
if (!yon_char_is_empty(part_size)){
int size;
config_str parsed = yon_char_parse(part_size,&size,",");
if (size>0&&!yon_char_is_empty(parsed[0])){
sections[0]->size = atol(parsed[0]);
sections[0]->size_letter = parsed[0][strlen(parsed[0])-1];
if (size>1&&!yon_char_is_empty(parsed[1])){
sections[1]->size = atol(parsed[1]);
sections[1]->size_letter = parsed[1][strlen(parsed[1])-1];
}
}
free(parsed);
}
if (!yon_char_is_empty(part_label)){
int size;
config_str parsed = yon_char_parse(part_label,&size,",");
if (size>0&&!yon_char_is_empty(parsed[0])){
sections[0]->part_label = parsed[0];
if (size>1&&!yon_char_is_empty(parsed[1])){
sections[1]->part_label = parsed[1];
}
}
free(parsed);
}
if (!yon_char_is_empty(part_fs_type)){
int size;
config_str parsed = yon_char_parse(part_fs_type,&size,",");
if (size>0&&!yon_char_is_empty(parsed[0])){
sections[0]->fs_type = parsed[0];
if (size>1&&!yon_char_is_empty(parsed[1])){
sections[1]->fs_type = parsed[1];
}
}
free(parsed);
}
if (!yon_char_is_empty(part_fs_label)){
int size;
config_str parsed = yon_char_parse(part_fs_label,&size,",");
if (size>0&&!yon_char_is_empty(parsed[0])){
sections[0]->fs_label = parsed[0];
if (size>1&&!yon_char_is_empty(parsed[1])){
sections[1]->fs_label = parsed[1];
}
}
free(parsed);
}
if (!yon_char_is_empty(part_crypt)){
int size;
config_str parsed = yon_char_parse(part_crypt,&size,",");
if (size>0&&!yon_char_is_empty(parsed[0])){
sections[0]->encryption = parsed[0];
if (size>1&&!yon_char_is_empty(parsed[1])){
sections[1]->encryption = parsed[1];
}
}
free(parsed);
}
if (!yon_char_is_empty(part_format)){
int size;
config_str parsed = yon_char_parse(part_format,&size,",");
if (size>0&&!yon_char_is_empty(parsed[0])){
if (!strcmp(parsed[0],"yes")){
sections[0]->format = 2;
} else if (!strcmp(parsed[0],"no")){
sections[0]->format = 1;
}
if (size>1&&!yon_char_is_empty(parsed[1])){
if (!strcmp(parsed[1],"yes")){
sections[1]->format = 2;
} else if (!strcmp(parsed[1],"no")){
sections[1]->format = 1;
}
}
}
free(parsed);
}
if (!yon_char_is_empty(boot)){
}
if (!yon_char_is_empty(swap)){
}
if (!yon_char_is_empty(swap_size)){
}
}
yon_advanced_update(widgets);
}
void on_install_advanced_partition_chosen(GtkCellRenderer*, gchar *path, main_window *widgets){
@ -656,7 +824,7 @@ int yon_advanced_save(main_window *widgets){
if (devices[0]||devices[1]){
char *devices_str = yon_char_parsed_to_string_full(devices,2,",");
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,devices_str);
yon_config_register(device_parameter,device_parameter_command,devices_str);
}
if (!yon_char_is_empty(parts[0])||!yon_char_is_empty(parts[1])){
char *parts_str = yon_char_parsed_to_string_full(parts,2,",");

@ -26,7 +26,7 @@ int yon_installation_check_packages_size(main_window *widgets){
}
if (!strcmp(install_mode,"fast")){
char *device = config(AUTOINSTALL_DEVICE);
char *device = config(device_parameter);
GtkTreeIter iter;
for_iter(widgets->DevicesList,&iter){
char *target;

@ -17,7 +17,7 @@ int yon_grub_install_save(main_window *widgets){
}
char *partition;
gtk_tree_model_get(model,&iter,0,&partition,-1);
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device);
yon_config_register(device_parameter,device_parameter_command,cur_device);
yon_config_register(part_parameter,part_parameter_command,partition);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_install");
return 1;
@ -40,7 +40,7 @@ int yon_grub_update_save(main_window *widgets){
}
char *partition;
gtk_tree_model_get(model,&iter,0,&partition,-1);
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device);
yon_config_register(device_parameter,device_parameter_command,cur_device);
yon_config_register(part_parameter,part_parameter_command,partition);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update");
return 1;

@ -13,7 +13,7 @@ int yon_install_common_save(main_window *widgets){
yon_config_remove_by_key(part_parameter);
gtk_tree_model_get(model,&iter,0,&device,-1);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"fast");
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
yon_config_register(device_parameter,device_parameter_command,device);
char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->CommonInstallationSectionNameEntry));
if (!yon_char_is_empty(device_name)){
@ -31,7 +31,7 @@ int yon_install_common_save(main_window *widgets){
if (!main_config.configure_mode){
int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_DEVICE,part_label_parameter,part_fs_type_parameter,NULL);
config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_label_parameter,part_fs_type_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);
@ -63,7 +63,7 @@ int yon_install_separate_save(main_window *widgets){
glong size,free_space;
gtk_tree_model_get(model,&iter,0,&part,5,&size,6,&free_space,-1);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next");
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
yon_config_register(device_parameter,device_parameter_command,device);
yon_config_register(part_parameter,part_parameter_command,part);
if (gtk_switch_get_active(GTK_SWITCH(widgets->NextInstallationFormatSwitch))){
yon_config_register(part_format_parameter,part_format_parameter_command,"yes");
@ -113,7 +113,7 @@ int yon_install_separate_save(main_window *widgets){
if (!main_config.configure_mode){
int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_DEVICE,part_parameter,NULL);
config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_label_parameter,part_fs_type_parameter,device_parameter,part_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);
@ -144,7 +144,7 @@ int yon_install_same_partition_save(main_window *widgets){
char *part;
gtk_tree_model_get(model,&iter,0,&part,-1);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"part");
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device);
yon_config_register(device_parameter,device_parameter_command,device);
yon_config_register(part_parameter,part_parameter_command,part);
if (gtk_switch_get_active(GTK_SWITCH(widgets->SameInstallationFormatSwitch))){
@ -171,7 +171,7 @@ int yon_install_same_partition_save(main_window *widgets){
}
if (!main_config.configure_mode){
int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_size_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_DEVICE,part_parameter,NULL);
config_str parameters = yon_config_get_save_parameters_by_key(&size,part_format_parameter,part_size_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_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);
@ -354,6 +354,7 @@ void on_device_selection_changed(GtkWidget *self, main_window *widgets){
void yon_devices_setup(main_window *widgets){
GtkTreeIter iter;
gtk_list_store_clear(widgets->DevicesList);
gtk_list_store_clear(widgets->PartitionsList);
// int size;
// config_str parameters = NULL;
// parameters = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size);
@ -475,7 +476,7 @@ void yon_install_init(main_window *widgets, enum YON_PAGES page){
default:return;
}
char *device = config(AUTOINSTALL_DEVICE);
char *device = config(device_parameter);
char *part = config(part_parameter);
if (!yon_char_is_empty(device)){

@ -468,8 +468,6 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
yon_packages_tab_init(widgets);
break;
case YON_PAGE_INSTALL_ADVANCED:
yon_install_advanced_init(widgets);
__attribute__((fallthrough));
case YON_PAGE_INSTALL_COMMON:
case YON_PAGE_INSTALL_SEPARATE:
case YON_PAGE_INSTALL_SAME_PARTITION:

@ -16,7 +16,7 @@ int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *
char *cur_device, *cur_section;
gtk_tree_model_get(model,&iter,0,&cur_device,-1);
gtk_tree_model_get(model2,&itar,0,&cur_section,-1);
yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device);
yon_config_register(device_parameter,device_parameter_command,cur_device);
yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,mode);
yon_config_register(part_parameter,part_parameter_command,cur_section);
@ -24,7 +24,7 @@ int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *
if(cur_device) free(cur_device);
if (!main_config.configure_mode){
int size;
config_str parameters = yon_config_get_save_parameters_by_key(&size,AUTOINSTALL_DEVICE,AUTOINSTALL_TYPE_INSTALL,part_parameter,NULL);
config_str parameters = yon_config_get_save_parameters_by_key(&size,device_parameter,AUTOINSTALL_TYPE_INSTALL,part_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);

@ -162,8 +162,8 @@ layout && /description:/ {\
#define AUTOINSTALL_TYPE_INSTALL "AUTOINSTALL[install_type]"
#define AUTOINSTALL_TYPE_INSTALL_command "ubconfig --source global get [autoinstall] AUTOINSTALL[install_type]"
#define AUTOINSTALL_DEVICE "AUTOINSTALL[device]"
#define AUTOINSTALL_DEVICE_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device]"
#define device_parameter "AUTOINSTALL[device]"
#define device_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device]"
#define part_parameter "AUTOINSTALL[part]"
#define part_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part]"
@ -311,14 +311,14 @@ layout && /description:/ {\
#define install_common_parameters \
AUTOINSTALL_TYPE_INSTALL, \
AUTOINSTALL_DEVICE, \
device_parameter, \
part_format_parameter, \
part_label_parameter, \
part_fs_type_parameter
#define install_part_parameters \
AUTOINSTALL_TYPE_INSTALL, \
AUTOINSTALL_DEVICE, \
device_parameter, \
part_format_parameter, \
part_fs_label_parameter, \
part_parameter, \
@ -327,7 +327,7 @@ layout && /description:/ {\
#define install_next_parameters \
AUTOINSTALL_TYPE_INSTALL, \
AUTOINSTALL_DEVICE, \
device_parameter, \
part_format_parameter, \
part_fs_label_parameter, \
part_parameter, \
@ -336,7 +336,7 @@ layout && /description:/ {\
#define install_advanced_parameters \
AUTOINSTALL_TYPE_INSTALL, \
AUTOINSTALL_DEVICE, \
device_parameter, \
part_format_parameter, \
part_label_parameter, \
part_parameter, \
@ -345,12 +345,12 @@ layout && /description:/ {\
#define install_grub_install_update_parameters \
AUTOINSTALL_TYPE_INSTALL, \
AUTOINSTALL_DEVICE, \
device_parameter, \
part_parameter
#define install_system_only_parameters \
AUTOINSTALL_TYPE_INSTALL, \
AUTOINSTALL_DEVICE, \
device_parameter, \
part_format_parameter, \
part_label_parameter, \
part_parameter, \
@ -360,7 +360,7 @@ layout && /description:/ {\
#define install_userdata_only_parameters \
AUTOINSTALL_TYPE_INSTALL, \
AUTOINSTALL_DEVICE, \
device_parameter, \
part_format_parameter, \
part_label_parameter, \
part_parameter, \
@ -1532,3 +1532,5 @@ gboolean yon_log_scroll(log_window *window);
gboolean on_log_window_exit(GtkWidget *,GdkEvent*, log_window *window);
void yon_modules_missed_func(main_window *widgets);
void yon_scroll_block_for_builder(GtkBuilder *builder);
void yon_advanced_device_choose(main_window *widgets, const char *device);
void yon_advanced_part_choose(main_window *widgets, const char *part);
Loading…
Cancel
Save