From 03ad0347521298ead7437b430a061291eef7034f Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 29 Jul 2025 18:02:17 +0600 Subject: [PATCH] Test parameters loading; Advanced installation parameters loading WIP --- source/ubinstall-gtk-components.c | 98 ++++++++++- source/ubinstall-gtk-installation.c | 242 ++++++++++++++++++++++++++-- source/ubinstall-gtk-kernel.c | 32 ++++ source/ubinstall-gtk-keyboard.c | 45 ++++++ source/ubinstall-gtk-page-switch.c | 19 +++ source/ubinstall-gtk-region.c | 40 +++++ source/ubinstall-gtk-saving.c | 2 +- source/ubinstall-gtk-users.c | 53 ++++++ source/ubinstall-gtk.c | 178 ++++---------------- source/ubinstall-gtk.h | 54 +++++-- ubinstall-gtk.glade | 174 ++++++++++++++++---- 11 files changed, 732 insertions(+), 205 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index fed11dd..0890614 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -47,7 +47,6 @@ int yon_kernel_addon_save(main_window *widgets){ } int yon_os_components_save(main_window *widgets){ - GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->OSSoftwareList); int size = 0; @@ -69,6 +68,47 @@ int yon_os_components_save(main_window *widgets){ return 1; } +void yon_os_components_init(main_window *widgets){ + GtkTreeIter iter; + if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->OSSoftwareList),&iter)){ + int base_size; + config_str base = yon_file_ls(system_base_modules_path,&base_size); + for (int i=0;iOSSoftwareList,&iter); + gtk_list_store_set(widgets->OSSoftwareList,&iter,0,0,1,base[i],2,version,3,description,-1); + } + int modules_size; + config_str modules = yon_file_ls(system_modules_path,&modules_size); + for (int i=0;iOSSoftwareList,&iter); + char *version = yon_packages_get_version(YON_PACKAGES_SYNC,base[i]); + char *description = yon_packages_get_description(YON_PACKAGES_SYNC,base[i]); + gtk_list_store_set(widgets->OSSoftwareList,&iter,0,0,1,modules[i],2,version,3,description,-1); + } + } + + char *modules = config(modules_parameter); + if (!yon_char_is_empty(modules)){ + int parsed_size; + config_str parsed = yon_char_parse(modules,&parsed_size,","); + GtkTreeIter iter; + for_iter (GTK_TREE_MODEL(widgets->OSSoftwareList),&iter){ + char *target; + gtk_tree_model_get(GTK_TREE_MODEL(widgets->OSSoftwareList),&iter,1,&target,-1); + if (yon_char_parsed_check_exist(parsed,parsed_size,target)>-1){ + gtk_list_store_set(widgets->OSSoftwareList,0,1,-1); + } else { + gtk_list_store_set(widgets->OSSoftwareList,0,0,-1); + } + } + yon_char_parsed_free(parsed,parsed_size); + } +} + int yon_software_save(main_window *widgets){ GtkTreeIter iter; @@ -93,6 +133,40 @@ int yon_software_save(main_window *widgets){ return 1; } +void yon_software_init(main_window *widgets){ + GtkTreeIter iter; + if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter)){ + int size; + config_str parsed = NULL; + parsed = yon_resource_open_file(additional_software_path,&size); + for (int i=1;iAdditionalSoftwareList,&iter); + gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,1,module_parsed[0],2,module_parsed[1],3,module_parsed[2],-1); //2,module_parsed[2] + yon_char_parsed_free(module_parsed,module_size); + } + } + if (size) yon_char_parsed_free(parsed,size); + } + + char *modules = config(modules_extra_parameter); + + int size; + config_str parsed = yon_char_parse(modules,&size,","); + for_iter(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter){ + char *target; + gtk_tree_model_get(GTK_TREE_MODEL(widgets->AdditionalSoftwareList),&iter,1,&target); + if (yon_char_parsed_check_exist(parsed,size,target)>-1){ + gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,-1); + } else { + gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,0,-1); + } + } + yon_char_parsed_free(parsed,size); +} + int yon_pacman_software_save(main_window *widgets){ GtkTreeIter iter; GtkTreeModel *model = GTK_TREE_MODEL(widgets->PacmanSoftwareChosenList); @@ -106,10 +180,24 @@ int yon_pacman_software_save(main_window *widgets){ char *final = yon_char_parsed_to_string(parameters,size,","); yon_char_parsed_free(parameters,size); if (!yon_char_is_empty(final)){ - char *parameter = config(modules_extra_parameter); - char *parameter_new = yon_char_unite(!yon_char_is_empty(parameter)?parameter:"",!yon_char_is_empty(parameter)?",":"",final,NULL); - yon_config_register(modules_extra_parameter,modules_extra_parameter_command,parameter_new); - free(parameter_new); + yon_config_register(packages_parameter,packages_parameter_command,final); + } else { + yon_config_remove_by_key(packages_parameter); } return 1; +} + +void yon_pacman_init(main_window *widgets){ + char *pacman_packages = config(packages_parameter); + + int size; + config_str parsed = yon_char_parse(pacman_packages,&size,","); + for (int i=0;iPacmanSoftwareChosenList,&iter); + gtk_list_store_set(widgets->PacmanSoftwareChosenList,&iter,0,1,1,parsed[i],2,version,3,description,-1); + } + yon_char_parsed_free(parsed,size); } \ No newline at end of file diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c index f95e88d..6fb2980 100644 --- a/source/ubinstall-gtk-installation.c +++ b/source/ubinstall-gtk-installation.c @@ -24,9 +24,9 @@ int yon_install_common_save(main_window *widgets){ char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->CommonInstallationFilesystemTypeCombo)); if (!yon_char_is_empty(file_system_type)){ - yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); + yon_config_register(part_fs_type_parameter,part_fs_type_parameter_command,file_system_type); } else { - yon_config_remove_by_key(part_type_parameter); + yon_config_remove_by_key(part_fs_type_parameter); } return 1; } @@ -67,18 +67,18 @@ int yon_install_separate_save(main_window *widgets){ char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->NextInstallationFilesystemTypeCombo)); if (!yon_char_is_empty(file_system_type)){ - yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); + yon_config_register(part_fs_type_parameter,part_fs_type_parameter_command,file_system_type); } else { - yon_config_remove_by_key(part_type_parameter); + yon_config_remove_by_key(part_fs_type_parameter); } } else { yon_config_register(part_format_parameter,part_format_parameter_command,"no"); yon_config_remove_by_key(part_label_parameter); - yon_config_remove_by_key(part_type_parameter); + yon_config_remove_by_key(part_fs_type_parameter); yon_config_remove_by_key(part_format_parameter); - yon_config_remove_by_key(part_type_parameter); + yon_config_remove_by_key(part_fs_type_parameter); yon_config_remove_by_key(part_format_parameter); } @@ -123,16 +123,16 @@ int yon_install_same_partition_save(main_window *widgets){ char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->SameInstallationFilesystemTypeCombo)); if (!yon_char_is_empty(file_system_type)){ - yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); + yon_config_register(part_fs_type_parameter,part_fs_type_parameter_command,file_system_type); } else { - yon_config_remove_by_key(part_type_parameter); + yon_config_remove_by_key(part_fs_type_parameter); } } else { yon_config_register(part_format_parameter,part_format_parameter_command,"no"); yon_config_remove_by_key(part_label_parameter); yon_config_remove_by_key(part_format_parameter); - yon_config_remove_by_key(part_type_parameter); + yon_config_remove_by_key(part_fs_type_parameter); } return 1; } @@ -174,7 +174,7 @@ int yon_advanced_sections_save(dictionary *dict){ char *fs_type_first = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(first_section->FileSystemTypeCombo)); char *fs_type_last = last_section&&!strcmp(format_last,"yes")?(char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(last_section->FileSystemTypeCombo)):NULL; char *fs_type = yon_char_unite(fs_type_first,fs_type_last?",":NULL,fs_type_last,NULL); - yon_config_register(part_type_parameter,part_type_parameter_command,fs_type); + yon_config_register(part_fs_type_parameter,part_fs_type_parameter_command,fs_type); char *part_crypt_first = gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->EncryptionCombo))?(char*)gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL; char *part_crypt_last = last_section&&!strcmp(format_last,"yes")&>k_combo_box_get_active(GTK_COMBO_BOX(last_section->EncryptionCombo))?(char*)gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL; @@ -245,6 +245,11 @@ int yon_install_advanced_save(main_window *widgets){ return 1; } +void yon_install_advanced_init(main_window *){ + // char *boot = config(boot_parameter); + // char *swap = config(swap_parameter); +} + void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_button, GtkComboBox *spin_combo){ GtkTreeModel *model; GtkTreeIter iter; @@ -330,3 +335,220 @@ void on_device_selection_changed(GtkWidget *self, main_window *widgets){ gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->NextInstallationSizeSpin)),0.0); } } + +void yon_devices_setup(main_window *widgets){ + GtkTreeIter iter; + if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->DevicesList),&iter)) return; + int size; + config_str parsed = NULL; + parsed = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size); + char *string = yon_char_parsed_to_string(parsed,size,""); + struct json_object *root; + struct json_object *blockdevices; + root = json_tokener_parse(string); + free(string); + json_object_object_get_ex(root, "blockdevices", &blockdevices); + for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) { + struct json_object *device = json_object_array_get_idx(blockdevices, i); + struct json_object *path, *size, *model, *vendor, *serial; + + json_object_object_get_ex(device, "path", &path); + json_object_object_get_ex(device, "size", &size); + json_object_object_get_ex(device, "model", &model); + json_object_object_get_ex(device, "vendor", &vendor); + json_object_object_get_ex(device, "serial", &serial); + + gtk_list_store_append(widgets->DevicesList,&iter); + gtk_list_store_set(widgets->DevicesList,&iter,0,json_object_get_string(path),1,json_object_get_string(model),2,json_object_get_string(serial),3,json_object_get_string(size),4,json_object_get_string(vendor),-1); + + } + yon_char_parsed_free(parsed,size); +} + +void yon_install_init(main_window *widgets, enum YON_PAGES page){ + yon_devices_setup(widgets); + + GtkWidget *device_tree = NULL; + GtkWidget *partition_tree = NULL; + GtkWidget *format_switch = NULL; + GtkWidget *device_label = NULL; + GtkWidget *fs_type_combo = NULL; + GtkWidget *partition_size_spin = NULL; + GtkWidget *partition_size_combo = NULL; + GtkWidget *partition_mark_entry = NULL; + GtkWidget *partition_fs_mark_entry = NULL; + GtkWidget *partition_encryption_combo = NULL; + GtkWidget *partition_encryption_entry = NULL; + + switch(page){ + case YON_PAGE_INSTALL_COMMON: + device_tree = widgets->CommonInstallationDevicesTree; + device_label = widgets->CommonInstallationSectionNameEntry; + format_switch = widgets->CommonFormatSwitch; + fs_type_combo = widgets->CommonInstallationFilesystemTypeCombo; + break; + case YON_PAGE_INSTALL_SAME_PARTITION: + device_tree = widgets->NextInstallationSysDevicesTree; + partition_tree = widgets->NextInstallationSysSectionTree; + format_switch = widgets->NextInstallationFormatSwitch; + partition_size_spin = widgets->NextInstallationSizeSpin; + partition_size_combo = widgets->NextInstallationSizeTypeSpin; + partition_mark_entry = widgets->NextInstallationSectionNameEntry; + fs_type_combo = widgets->NextInstallationFilesystemTypeCombo; + break; + case YON_PAGE_INSTALL_SEPARATE: + device_tree = widgets->SamePlaceDeviceTree; + partition_tree = widgets->SamePlacePartTree; + format_switch = widgets->SameInstallationFormatSwitch; + partition_mark_entry = widgets->SameInstallationSectionNameEntry; + fs_type_combo = widgets->SameInstallationFilesystemTypeCombo; + + break; + case YON_PAGE_INSTALL_ADVANCED: + yon_install_advanced_init(widgets); + return; + break; + case YON_PAGE_RECOVERY_GRUB_INSTALL: + device_tree = widgets->GrubInstallDevicesTree; + partition_tree = widgets->GrubInstallPartitionTree; + + break; + case YON_PAGE_RECOVERY_GRUB_UPDATE: + device_tree = widgets->GrubUpdateDevicesTree; + partition_tree = widgets->GrubUpdatePartitionTree; + + break; + case YON_PAGE_RECOVERY_OS_ONLY: + device_tree = widgets->OSDevicesTree; + partition_tree = widgets->OSSysSectionTree; + format_switch = widgets->OSFormatSwitch; + partition_size_spin = widgets->OSFormatSizeSpin; + partition_size_combo = widgets->OSFormatSizeCombo; + partition_mark_entry = widgets->OSFormatPartitionEntry; + fs_type_combo = widgets->OSFilesystemTypeCombo; + partition_fs_mark_entry = widgets->OSFormatFSMarkEntry; + partition_encryption_combo = widgets->OSFormatEncryptionCombo; + partition_encryption_entry = widgets->OSFormatEncryptionEntry; + + break; + case YON_PAGE_RECOVERY_USRDATA_ONLY: + device_tree = widgets->UserdataDevicesTree; + partition_tree = widgets->UserdataSysSectionTree; + format_switch = widgets->OSFormatSwitch; + partition_size_spin = widgets->UserdataFormatSwitch; + partition_size_combo = widgets->UserdataFormatSizeCombo; + partition_mark_entry = widgets->UserdataFormatPartitionEntry; + fs_type_combo = widgets->UserdataFilesystemTypeCombo; + partition_fs_mark_entry = widgets->UserdataFormatFSMarkEntry; + partition_encryption_combo = widgets->UserdataFormatEncryptionCombo; + partition_encryption_entry = widgets->UserdataFormatEncryptionEntry; + break; + default:return; + } + + + char *device = config(AUTOINSTALL_DEVICE); + char *part = config(part_parameter); + + + if (!yon_char_is_empty(device)){ + 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)&&!strcmp(target,device)){ + gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(device_tree)),&iter); + break; + } + } + if (partition_tree&&!yon_char_is_empty(part)){ + 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)&&!strcmp(target,device)){ + gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(partition_tree)),&iter); + break; + } + } + } + } + if (format_switch){ + char *format = config(part_format_parameter); + if (!strcmp(format,"yes")){ + gtk_switch_set_active(GTK_SWITCH(format_switch),1); + if (device_label){ + char *parameter = config(part_label_parameter); + if (!yon_char_is_empty(parameter)){ + gtk_entry_set_text(GTK_ENTRY(device_label),parameter); + } else { + gtk_entry_set_text(GTK_ENTRY(device_label),""); + } + } + if (fs_type_combo){ + char *parameter = config(part_fs_type_parameter); + if (!yon_char_is_empty(parameter)){ + gtk_combo_box_set_active_id(GTK_COMBO_BOX(fs_type_combo),parameter); + } else { + gtk_combo_box_set_active(GTK_COMBO_BOX(fs_type_combo),0); + } + } + if (partition_size_spin&&partition_size_combo){ + char *parameter = config(part_size_parameter); + if (!yon_char_is_empty(parameter)){ + gtk_spin_button_set_value(GTK_SPIN_BUTTON(partition_size_spin),atol(parameter)); + gtk_combo_box_set_active(GTK_COMBO_BOX(partition_size_combo),yon_get_size_get_from_letter(parameter[strlen(parameter)-1])); + } else { + gtk_spin_button_set_value(GTK_SPIN_BUTTON(partition_size_spin),0); + gtk_combo_box_set_active(GTK_COMBO_BOX(partition_size_combo),0); + } + } + if (partition_mark_entry){ + char *parameter = config(part_fs_label_parameter); + if (!yon_char_is_empty(parameter)){ + gtk_entry_set_text(GTK_ENTRY(partition_mark_entry),parameter); + } else { + gtk_entry_set_text(GTK_ENTRY(partition_mark_entry),""); + } + } + if (partition_fs_mark_entry){ + char *parameter = config(part_fs_label_parameter); + if (!yon_char_is_empty(parameter)){ + gtk_entry_set_text(GTK_ENTRY(partition_fs_mark_entry),parameter); + } else { + gtk_entry_set_text(GTK_ENTRY(partition_fs_mark_entry),""); + } + } + if (partition_encryption_combo && partition_encryption_entry){ + char *parameter = config(part_crypt_parameter); + if (!yon_char_is_empty(parameter)&&!strstr(parameter,",")){ + char *password = yon_char_new(parameter); + char *crypt = yon_char_divide_search(password,":",-1); + gtk_combo_box_set_active_id(GTK_COMBO_BOX(partition_encryption_combo),crypt); + gtk_entry_set_text(GTK_ENTRY(partition_encryption_entry),password); + free(password); + free(crypt); + } else { + gtk_combo_box_set_active(GTK_COMBO_BOX(partition_encryption_combo),0); + gtk_entry_set_text(GTK_ENTRY(partition_encryption_entry),""); + } + } + } else { + gtk_switch_set_active(GTK_SWITCH(format_switch),0); + } + } + +} + +void on_install_advanced_add_new(GtkWidget *, main_window *){ + +} + +void on_install_advanced_device_chosen(GtkCellRenderer, gchar *, main_window *){ + +} + +void on_install_advanced_partition_chosen(GtkCellRenderer, gchar *, main_window *){ + +} \ No newline at end of file diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index ab6f9d2..04e0f5a 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -191,6 +191,15 @@ void yon_kernel_setup(main_window *widgets){ } g_list_free(list); + char *modules = config(modules_extra_parameter); + char *enabled = config(KERNEL_BOOT_parameter); + + int parsed_size; + config_str modules_parsed = NULL; + if (!yon_char_is_empty(modules)){ + modules_parsed = yon_char_parse(modules,&parsed_size,","); + } + int size; config_str kernels = yon_resource_open_file(kernel_list_path,&size); gtk_size_group_add_widget(widgets->KernelSizeGroup,widgets->KernelTagsLabel); @@ -212,6 +221,15 @@ void yon_kernel_setup(main_window *widgets){ yon_kernel_row_setup(row,name,modules,package,tags,description); yon_char_parsed_free(parsed,parsed_size); + + if (yon_char_parsed_check_exist(modules_parsed,parsed_size,name)>-1){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); + } + if (!yon_char_is_empty(enabled)&&!strcmp(name,enabled)){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->EnableRadio),1); + } } yon_kernel_resize(widgets); @@ -234,6 +252,14 @@ void yon_kernel_addon_setup(main_window *widgets){ } g_list_free(list); + char *modules = config(modules_extra_parameter); + + int parsed_size; + config_str modules_parsed = NULL; + if (!yon_char_is_empty(modules)){ + modules_parsed = yon_char_parse(modules,&parsed_size,","); + } + int size; config_str kernels = yon_resource_open_file(kernel_list_addon_path,&size); @@ -256,6 +282,12 @@ void yon_kernel_addon_setup(main_window *widgets){ yon_kernel_row_setup(row,name,modules,package,tags,description); yon_char_parsed_free(parsed,parsed_size); + + if (yon_char_parsed_check_exist(modules_parsed,parsed_size,name)>-1){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); + } else { + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); + } } yon_kernel_addon_resize(widgets); diff --git a/source/ubinstall-gtk-keyboard.c b/source/ubinstall-gtk-keyboard.c index 0d4c290..b9c92d9 100644 --- a/source/ubinstall-gtk-keyboard.c +++ b/source/ubinstall-gtk-keyboard.c @@ -244,4 +244,49 @@ void on_keyboard_clicked (GtkWidget *, main_window *widgets){ g_signal_connect(G_OBJECT(window->ActiveToggle),"toggled",G_CALLBACK(on_layout_toggle),window); g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_keyboard_accept),widgets); gtk_widget_show(window->MainWindow); +} + +void yon_keyboard_init(main_window *widgets){ + int size; + config_str parsed = NULL; + GtkTreeIter iter; + parsed = yon_config_load(yon_debug_output("%s\n",get_layouts_command),&size); + GtkTreeIter itar; + for (int i=0;iLayoutList,&iter,NULL); + gtk_tree_store_set(widgets->LayoutList,&iter,0,layout[0],1,_(layout[1]),2,1,-1); + yon_char_parsed_free(layout,layout_size); + char *command = get_layouts_local_command(layout_id); + config_str layout_local = yon_config_load(yon_debug_output("%s\n",command),&layout_size); + free(command); + free(layout_id); + for (int j=0;jLayoutList,&itar,&iter); + gtk_tree_store_set(widgets->LayoutList,&itar,0,layouts_parsed[0],1,_(layouts_parsed[1]),2,1,3,0,-1); + yon_char_parsed_free(layouts_parsed,parsed_size); + } + } + if (layout_size==-1) { + gtk_tree_store_set(widgets->LayoutList,&iter,2,1,-1); + } + yon_char_parsed_free(layout_local,layout_size); + } + } + yon_char_parsed_free(parsed,size); + config_str models = yon_config_load(yon_debug_output("%s\n",get_models_command),&size); + for (int i=0;iKeyboardModelCombo),models[i],_(models[i+1])); + } + if (size) yon_char_parsed_free(models,size); } \ No newline at end of file diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index edad637..2a441de 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -293,14 +293,32 @@ enum YON_PAGES yon_recovery_get_next(main_window *widgets){ void yon_page_init(main_window *widgets, enum YON_PAGES page){ switch(page){ case YON_PAGE_OS_COMPONENTS: + yon_os_components_init(widgets); + break; case YON_PAGE_KERNEL: + yon_kernel_setup(widgets); + break; case YON_PAGE_KERNEL_ADDON: + yon_kernel_addon_setup(widgets); + break; case YON_PAGE_SOFTWARE: + yon_software_init(widgets); + break; case YON_PAGE_PACMAN_SOFTWARE: + yon_pacman_init(widgets); + break; case YON_PAGE_REGION: + yon_region_init(widgets); + break; case YON_PAGE_KEYBOARD: + yon_keyboard_init(widgets); + break; case YON_PAGE_USERS: + yon_user_init(widgets); + break; case YON_PAGE_STARTUP: + yon_startup_services_setup(widgets); + break; case YON_PAGE_BOOTLOADER: yon_bootloader_init(widgets); break; @@ -316,6 +334,7 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){ case YON_PAGE_RECOVERY_OS_ONLY: case YON_PAGE_RECOVERY_USRDATA_ONLY: case YON_PAGE_INSTALLATION_BEGIN: + yon_install_init(widgets,page); break; default: break; } diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index 2c3fce1..7612327 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -63,3 +63,43 @@ void on_region_changed(GtkComboBox *self, main_window *widgets){ } free(active); } + +void yon_region_init(main_window *widgets){ + int size; + config_str parsed = NULL; + int langsize; + config_str lang = default_langs(&langsize); + + GtkTreeIter iter; + gtk_list_store_clear(widgets->LanguagesList); + parsed = yon_file_open(languages_path,&size); + for (int i=0;iLanguagesList,&iter); + gtk_list_store_set(widgets->LanguagesList,&iter,0,0,1,_(cur[1]),2,cur[0],-1); + } + yon_char_parsed_free(cur,cur_size); + } + yon_char_parsed_free(parsed,size); + if (lang) + yon_char_parsed_free(lang,langsize); + + parsed = yon_dir_get_contents(zone_path,&size); + for (int i=0;iRegionCombo),parsed[i],_(parsed[i])); + } + free(path); + } + } + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0); + yon_char_parsed_free(parsed,size); + + gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter),0); + gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter)); +} \ No newline at end of file diff --git a/source/ubinstall-gtk-saving.c b/source/ubinstall-gtk-saving.c index a62e573..14e77a3 100644 --- a/source/ubinstall-gtk-saving.c +++ b/source/ubinstall-gtk-saving.c @@ -172,7 +172,7 @@ // char *part = NULL; // if (page!=YON_PAGE_INSTALL_COMMON) // part = config(part_parameter); -// char *fs_type = config(part_type_parameter); +// char *fs_type = config(part_fs_type_parameter); // char *device_label = config(device_label_parameter); // char *format = config(part_format_parameter); // char *part_size = config(part_size_parameter); diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index 53b045c..d49303c 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -101,4 +101,57 @@ yon_user_struct *yon_user_struct_new(){ g_signal_connect(G_OBJECT(user->PasswordButton),"clicked",G_CALLBACK(yon_password_new),user); g_signal_connect(G_OBJECT(user->RemoveButton),"clicked",G_CALLBACK(on_user_remove_clicked),user); return user; +} + +void yon_user_init(main_window *widgets){ + yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(widgets->UserRootPasswordEntry)); + char *root_password = config(root_password_parameter); + char *autologin = config(autologin_parameter); + if (!yon_char_is_empty(root_password)){ + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UserRootPasswordCombo),1); + gtk_entry_set_text(GTK_ENTRY(widgets->UserRootPasswordEntry),root_password); + } else { + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->UserRootPasswordCombo),0); + gtk_entry_set_text(GTK_ENTRY(widgets->UserRootPasswordEntry),""); + } + if (!yon_char_is_empty(autologin)&&(!strcmp(autologin,"yes")||!strcmp(autologin,"enable"))){ + gtk_switch_set_active(GTK_SWITCH(widgets->UserAutologinSwitch),1); + } else { + gtk_switch_set_active(GTK_SWITCH(widgets->UserAutologinSwitch),0); + } + + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->UserAddBox)); + GList *iter; + for (iter = list; iter; iter = iter->next){ + yon_user_struct *user = g_object_get_data(G_OBJECT(iter->data),"yon_user_struct"); + gtk_widget_destroy(user->MainBox); + free(user); + } + int users_size; + config_str users = yon_config_get_all_by_key(USERADD_parameter_search,&users_size); + if (!users_size){ + yon_user_struct *user = yon_user_struct_new(); + gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); + gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL); + gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),"superadmin"); + } + for (int i=0;iUserAddBox),user->MainBox,0,0,0); + + int parsed_size; + char *parameter = yon_char_new(users[i]); + char *parameter_name = yon_char_divide_search(parameter,"=",-1); + char *key = yon_config_parameter_get_key(parameter_name); + config_str parsed = yon_char_parse(parameter,&parsed_size,":"); + + gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),key); + if (parsed_size>0) + gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),parsed[0]); + if (parsed_size>5){ + gtk_entry_set_text(GTK_ENTRY(user->PasswordEntry),parsed[5]); + gtk_combo_box_set_active(GTK_COMBO_BOX(user->PasswordCombo),1); + } + gtk_widget_show(user->MainBox); + } } \ No newline at end of file diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index e03540b..4ef6110 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -348,6 +348,7 @@ main_window *yon_main_window_complete(){ widgets->CommonInstallationDevicesTree = yon_gtk_builder_get_widget(builder,"CommonInstallationDevicesTree"); widgets->CommonInstallationFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"CommonInstallationFilesystemTypeCombo"); widgets->CommonInstallationSectionNameEntry = yon_gtk_builder_get_widget(builder,"CommonInstallationSectionNameEntry"); + widgets->CommonFormatSwitch = yon_gtk_builder_get_widget(builder,"CommonFormatSwitch"); widgets->GpartedCommonButton = yon_gtk_builder_get_widget(builder,"GpartedCommonButton"); widgets->SamePlaceDeviceTree = yon_gtk_builder_get_widget(builder,"SamePlaceDeviceTree"); @@ -368,6 +369,8 @@ main_window *yon_main_window_complete(){ widgets->NextInstallationSysSectionTree = yon_gtk_builder_get_widget(builder,"NextInstallationSysSectionTree"); widgets->GpartedNextInstallationButton = yon_gtk_builder_get_widget(builder,"GpartedNextInstallationButton"); + widgets->AdvancedDevicesCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdvancedDevicesCell")); + widgets->AdvancedPartitionsCell = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"AdvancedPartitionsCell")); widgets->AdvancedDeviceTree = yon_gtk_builder_get_widget(builder,"AdvancedDeviceTree"); widgets->AdvancedVirtualDeviceCombo = yon_gtk_builder_get_widget(builder,"AdvancedVirtualDeviceCombo"); widgets->AdvancedPartitionTree = yon_gtk_builder_get_widget(builder,"AdvancedPartitionTree"); @@ -393,10 +396,26 @@ main_window *yon_main_window_complete(){ widgets->OSDevicesTree = yon_gtk_builder_get_widget(builder,"OSDevicesTree"); widgets->OSSysSectionTree = yon_gtk_builder_get_widget(builder,"OSSysSectionTree"); widgets->GpartedOSButton = yon_gtk_builder_get_widget(builder,"GpartedOSButton"); + widgets->OSFormatSwitch = yon_gtk_builder_get_widget(builder,"OSFormatSwitch"); + widgets->OSFormatSizeSpin = yon_gtk_builder_get_widget(builder,"OSFormatSizeSpin"); + widgets->OSFormatSizeCombo = yon_gtk_builder_get_widget(builder,"OSFormatSizeCombo"); + widgets->OSFormatPartitionEntry = yon_gtk_builder_get_widget(builder,"OSFormatPartitionEntry"); + widgets->OSFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"OSFilesystemTypeCombo"); + widgets->OSFormatFSMarkEntry = yon_gtk_builder_get_widget(builder,"OSFormatFSMarkEntry"); + widgets->OSFormatEncryptionCombo = yon_gtk_builder_get_widget(builder,"OSFormatEncryptionCombo"); + widgets->OSFormatEncryptionEntry = yon_gtk_builder_get_widget(builder,"OSFormatEncryptionEntry"); widgets->UserdataDevicesTree = yon_gtk_builder_get_widget(builder,"UserdataDevicesTree"); widgets->UserdataSysSectionTree = yon_gtk_builder_get_widget(builder,"UserdataSysSectionTree"); widgets->GpartedUserdataButton = yon_gtk_builder_get_widget(builder,"UserdataGpartedButton"); + widgets->UserdataFormatSwitch = yon_gtk_builder_get_widget(builder,"UserdataFormatSwitch"); + widgets->UserdataFormatSizeSpin = yon_gtk_builder_get_widget(builder,"UserdataFormatSizeSpin"); + widgets->UserdataFormatSizeCombo = yon_gtk_builder_get_widget(builder,"UserdataFormatSizeCombo"); + widgets->UserdataFormatPartitionEntry = yon_gtk_builder_get_widget(builder,"UserdataFormatPartitionEntry"); + widgets->UserdataFilesystemTypeCombo = yon_gtk_builder_get_widget(builder,"UserdataFilesystemTypeCombo"); + widgets->UserdataFormatFSMarkEntry = yon_gtk_builder_get_widget(builder,"UserdataFormatFSMarkEntry"); + widgets->UserdataFormatEncryptionCombo = yon_gtk_builder_get_widget(builder,"UserdataFormatEncryptionCombo"); + widgets->UserdataFormatEncryptionEntry = yon_gtk_builder_get_widget(builder,"UserdataFormatEncryptionEntry"); widgets->LanguagesFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LanguagesFilter")); widgets->LayoutsFilter = GTK_TREE_MODEL(gtk_builder_get_object(builder,"LayoutsFilter")); @@ -539,7 +558,6 @@ main_window *yon_main_window_complete(){ g_signal_connect(G_OBJECT(widgets->GpartedSameButton),"clicked",G_CALLBACK(on_gparted_open),NULL); g_signal_connect(G_OBJECT(widgets->GpartedNextInstallationButton),"clicked",G_CALLBACK(on_gparted_open),NULL); - // g_signal_connect(G_OBJECT(widgets->Notebook),"switch-page",G_CALLBACK(on_page_changed),widgets); // g_signal_connect(G_OBJECT(widgets->MainWindow),"check-resize",G_CALLBACK(on_region_resized),widgets); g_signal_connect(G_OBJECT(widgets->NextButton),"clicked",G_CALLBACK(on_page_next_clicked),widgets); g_signal_connect(G_OBJECT(widgets->BackButton),"clicked",G_CALLBACK(on_page_prev_clicked),widgets); @@ -612,15 +630,12 @@ main_window *yon_main_window_complete(){ g_signal_connect(G_OBJECT(widgets->NetworkConnectionsAddButton),"clicked",G_CALLBACK(on_connection_add),widgets); g_signal_connect(G_OBJECT(widgets->NetworkNTPCombo),"changed",G_CALLBACK(on_ntp_sync),widgets); - { - yon_user_struct *user = yon_user_struct_new(); - gtk_box_pack_start(GTK_BOX(widgets->UserAddBox),user->MainBox,0,0,0); - gtk_entry_set_text(GTK_ENTRY(user->UsernameEntry),ADMINISTRATOR_LABEL); - gtk_entry_set_text(GTK_ENTRY(user->LoginEntry),"superadmin"); - } + g_signal_connect(G_OBJECT(widgets->AdvancedAddButton),"clicked",G_CALLBACK(on_install_advanced_add_new),widgets); + g_signal_connect(G_OBJECT(widgets->AdvancedDevicesCell),"toggled",G_CALLBACK(on_install_advanced_device_chosen),widgets); + g_signal_connect(G_OBJECT(widgets->AdvancedPartitionsCell),"toggled",G_CALLBACK(on_install_advanced_partition_chosen),widgets); + { - yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(widgets->UserRootPasswordEntry)); if (main_config.lock_load_global == 1){ gtk_widget_set_sensitive(widgets->LoadGlobalConfigurationMenuItem,0); @@ -637,12 +652,11 @@ main_window *yon_main_window_complete(){ gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(widgets->ConfigurationModeMenuItem),1); } - gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter),0); - gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter)); gtk_window_set_title(GTK_WINDOW(widgets->MainWindow),TITLE_LABEL); gtk_window_set_icon_name(GTK_WINDOW(widgets->MainWindow),icon_path); - + } + { int size; config_str parsed = NULL; parsed = yon_file_open(licence_path,&size); @@ -652,7 +666,9 @@ main_window *yon_main_window_complete(){ free(licence); yon_char_parsed_free(parsed,size); } - + } + { + int size; config_str slides = yon_char_parsed_new(&size,slide_repeat_path); widgets->regions_original = gdk_pixbuf_new_from_resource(regions_path,NULL); widgets->keyboard_original = gdk_pixbuf_new_from_resource(keyboard_path,NULL); @@ -675,142 +691,10 @@ main_window *yon_main_window_complete(){ pix = gdk_pixbuf_scale_simple((GdkPixbuf*)g_list_nth_data(widgets->slides_original,0),600,400,GDK_INTERP_BILINEAR); gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),pix); g_object_unref(pix); - - int langsize; - config_str lang = default_langs(&langsize); - - GtkTreeIter iter; - gtk_list_store_clear(widgets->LanguagesList); - parsed = yon_file_open(languages_path,&size); - for (int i=0;iLanguagesList,&iter); - gtk_list_store_set(widgets->LanguagesList,&iter,0,0,1,_(cur[1]),2,cur[0],-1); - } - yon_char_parsed_free(cur,cur_size); - } - yon_char_parsed_free(parsed,size); - if (lang) - yon_char_parsed_free(lang,langsize); - - parsed = yon_dir_get_contents(zone_path,&size); - for (int i=0;iRegionCombo),parsed[i],_(parsed[i])); - } - free(path); - } - } - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->RegionCombo),0); - yon_char_parsed_free(parsed,size); - parsed = yon_config_load(yon_debug_output("%s\n",get_layouts_command),&size); - GtkTreeIter itar; - for (int i=0;iLayoutList,&iter,NULL); - gtk_tree_store_set(widgets->LayoutList,&iter,0,layout[0],1,_(layout[1]),2,1,-1); - yon_char_parsed_free(layout,layout_size); - char *command = get_layouts_local_command(layout_id); - config_str layout_local = yon_config_load(yon_debug_output("%s\n",command),&layout_size); - free(command); - free(layout_id); - for (int j=0;jLayoutList,&itar,&iter); - gtk_tree_store_set(widgets->LayoutList,&itar,0,layouts_parsed[0],1,_(layouts_parsed[1]),2,1,3,0,-1); - yon_char_parsed_free(layouts_parsed,parsed_size); - } - } - if (layout_size==-1) { - gtk_tree_store_set(widgets->LayoutList,&iter,2,1,-1); - } - yon_char_parsed_free(layout_local,layout_size); - } - } - yon_char_parsed_free(parsed,size); - { - parsed = yon_config_load(yon_debug_output("%s\n",get_devices_command),&size); - char *string = yon_char_parsed_to_string(parsed,size,""); - struct json_object *root; - struct json_object *blockdevices; - root = json_tokener_parse(string); - free(string); - json_object_object_get_ex(root, "blockdevices", &blockdevices); - for (long unsigned int i = 0; i < json_object_array_length(blockdevices); i++) { - struct json_object *device = json_object_array_get_idx(blockdevices, i); - struct json_object *path, *size, *model, *vendor, *serial; - - json_object_object_get_ex(device, "path", &path); - json_object_object_get_ex(device, "size", &size); - json_object_object_get_ex(device, "model", &model); - json_object_object_get_ex(device, "vendor", &vendor); - json_object_object_get_ex(device, "serial", &serial); - - gtk_list_store_append(widgets->DevicesList,&iter); - gtk_list_store_set(widgets->DevicesList,&iter,0,json_object_get_string(path),1,json_object_get_string(model),2,json_object_get_string(serial),3,json_object_get_string(size),4,json_object_get_string(vendor),-1); - - } - yon_char_parsed_free(parsed,size); - } - { - int base_size; - config_str base = yon_file_ls(system_base_modules_path,&base_size); - for (int i=0;iOSSoftwareList,&iter); - gtk_list_store_set(widgets->OSSoftwareList,&iter,0,0,1,base[i],2,version,3,description,-1); - } - int modules_size; - config_str modules = yon_file_ls(system_modules_path,&modules_size); - for (int i=0;iOSSoftwareList,&iter); - char *version = yon_packages_get_version(YON_PACKAGES_SYNC,base[i]); - char *description = yon_packages_get_description(YON_PACKAGES_SYNC,base[i]); - gtk_list_store_set(widgets->OSSoftwareList,&iter,0,0,1,modules[i],2,version,3,description,-1); - } - } - - parsed = yon_resource_open_file(additional_software_path,&size); - for (int i=1;iAdditionalSoftwareList,&iter); - gtk_list_store_set(widgets->AdditionalSoftwareList,&iter,0,1,1,module_parsed[0],2,module_parsed[1],3,module_parsed[2],-1); //2,module_parsed[2] - yon_char_parsed_free(module_parsed,module_size); - } - } - if (size) yon_char_parsed_free(parsed,size); - - config_str models = yon_config_load(yon_debug_output("%s\n",get_models_command),&size); - for (int i=0;iKeyboardModelCombo),models[i],_(models[i+1])); - } - if (size) yon_char_parsed_free(models,size); - gtk_builder_connect_signals(builder,NULL); - // yon_load_proceed(YON_CONFIG_DEFAULT); - // yon_interface_update(widgets); - yon_kernel_setup(widgets); - yon_kernel_addon_setup(widgets); - yon_startup_services_setup(widgets); } + gtk_builder_connect_signals(builder,NULL); + // yon_load_proceed(YON_CONFIG_DEFAULT); + // yon_interface_update(widgets); return widgets; } diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index cac61ba..94fd98c 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -113,6 +113,7 @@ NULL #define modules_extra_parameter "AUTOINSTALL[modules_extra]" #define modules_extra_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules_extra]" +/*------------------------------------------------------------*/ #define user_name_parameter "AUTOINSTALL[user_name]" #define user_name_parameter_command "ubconfig --source global --conarg get [autoinstall] AUTOINSTALL[user_name]" #define user_gecos_parameter "AUTOINSTALL[user_gecos]" @@ -139,10 +140,12 @@ NULL #define lang_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[lang]" #define locale_parameter "AUTOINSTALL[locale]" #define locale_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[locale]" +/*------------------------------------------------------------*/ + #define part_size_parameter "AUTOINSTALL[part_size]" #define part_size_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_size]" -#define part_type_parameter "AUTOINSTALL[part_fs_type]" -#define part_type_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_fs_type]" +#define part_fs_type_parameter "AUTOINSTALL[part_fs_type]" +#define part_fs_type_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_fs_type]" #define part_format_parameter "AUTOINSTALL[part_format]" #define part_format_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_format]" #define part_label_parameter "AUTOINSTALL[part_label]" @@ -168,6 +171,7 @@ NULL #define DOMAIN_admanger_parameter "AOUTINSTALL['ubconfig set [network] DOMAIN[admanger]']" #define DOMAIN_admanger_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL['ubconfig set [network] DOMAIN[admanger]']" #define USERADD_parameter_all "AUTOINSTALL['ubconfig set [users] USERADD[*]']" +#define USERADD_parameter_search "AUTOINSTALL['ubconfig set [users] USERADD[" #define USERADD_parameter(target) yon_char_unite("AUTOINSTALL['ubconfig set [users] USERADD[",target,"]']",NULL) #define USERADD_parameter_command(target) yon_char_unite("ubconfig --source global get autoinstall AUTOINSTALL['ubconfig set [users] USERADD[",target,"]']",NULL) #define KERNEL_BOOT_parameter "AUTOINSTALL['ubconfig set [boot] KERNEL_BOOT']" @@ -233,7 +237,7 @@ NULL AUTOINSTALL_DEVICE,\ part_format_parameter,\ part_label_parameter,\ - part_type_parameter + part_fs_type_parameter #define install_part_parameters \ AUTOINSTALL_TYPE_INSTALL,\ @@ -241,7 +245,7 @@ NULL part_format_parameter,\ part_fs_label_parameter,\ part_parameter,\ - part_type_parameter,\ + part_fs_type_parameter,\ part_fs_label_parameter #define install_next_parameters \ @@ -250,7 +254,7 @@ NULL part_format_parameter,\ part_fs_label_parameter,\ part_parameter,\ - part_type_parameter,\ + part_fs_type_parameter,\ part_size_parameter #define install_advanced_parameters \ @@ -259,7 +263,7 @@ NULL part_format_parameter,\ part_label_parameter,\ part_parameter,\ - part_type_parameter,\ + part_fs_type_parameter,\ part_size_parameter #define install_grub_install_update_parameters \ @@ -273,7 +277,7 @@ NULL part_format_parameter,\ part_label_parameter,\ part_parameter,\ - part_type_parameter,\ + part_fs_type_parameter,\ part_size_parameter,\ part_crypt_parameter @@ -283,7 +287,7 @@ NULL part_format_parameter,\ part_label_parameter,\ part_parameter,\ - part_type_parameter,\ + part_fs_type_parameter,\ part_size_parameter,\ part_crypt_parameter @@ -455,6 +459,7 @@ typedef struct { GtkWidget *CommonInstallationDevicesTree; GtkWidget *CommonInstallationFilesystemTypeCombo; GtkWidget *CommonInstallationSectionNameEntry; + GtkWidget *CommonFormatSwitch; GtkWidget *GpartedCommonButton; GtkWidget *NextInstallationSysDevicesTree; @@ -508,10 +513,26 @@ typedef struct { GtkWidget *GpartedOSButton; GtkWidget *OSDevicesTree; GtkWidget *OSSysSectionTree; + GtkWidget *OSFormatSwitch; + GtkWidget *OSFormatSizeSpin; + GtkWidget *OSFormatSizeCombo; + GtkWidget *OSFormatPartitionEntry; + GtkWidget *OSFilesystemTypeCombo; + GtkWidget *OSFormatFSMarkEntry; + GtkWidget *OSFormatEncryptionCombo; + GtkWidget *OSFormatEncryptionEntry; GtkWidget *GpartedUserdataButton; GtkWidget *UserdataDevicesTree; GtkWidget *UserdataSysSectionTree; + GtkWidget *UserdataFormatSwitch; + GtkWidget *UserdataFormatSizeSpin; + GtkWidget *UserdataFormatSizeCombo; + GtkWidget *UserdataFormatPartitionEntry; + GtkWidget *UserdataFilesystemTypeCombo; + GtkWidget *UserdataFormatFSMarkEntry; + GtkWidget *UserdataFormatEncryptionCombo; + GtkWidget *UserdataFormatEncryptionEntry; GtkTreeModel *LanguagesFilter; GtkTreeModel *LayoutsFilter; @@ -595,6 +616,8 @@ typedef struct { GtkWidget *NetworkConnectionsAddButton; GHashTable *network_connections; + GtkCellRenderer *AdvancedDevicesCell; + GtkCellRenderer *AdvancedPartitionsCell; GtkWidget *AdvancedDeviceTree; GtkWidget *AdvancedVirtualDeviceCombo; GtkWidget *AdvancedPartitionTree; @@ -611,6 +634,7 @@ typedef struct { GtkWidget *AdvancedSwapFixedSizeSwitch; dictionary *advanced_sections; + GFile *install_progress_file; GFileMonitor *install_progress_monitor; GFile *install_info_file; @@ -964,4 +988,16 @@ void on_type_changed(GtkComboBox *self,network_info *info); void yon_network_init(main_window *widgets); void yon_page_init(main_window *widgets, enum YON_PAGES page); void yon_bootloader_init(main_window *widgets); -void on_kernel_install_enabled(GtkWidget *, kernel_row *row); \ No newline at end of file +void on_kernel_install_enabled(GtkWidget *, kernel_row *row); +void yon_user_init(main_window *widgets); +void yon_region_init(main_window *widgets); +void yon_keyboard_init(main_window *widgets); +void yon_install_init(main_window *widgets, enum YON_PAGES page); +void yon_install_advanced_init(main_window *widgets); +void yon_os_components_init(main_window *widgets); +void yon_pacman_init(main_window *widgets); +void yon_software_init(main_window *widgets); +void on_install_advanced_add_new(GtkWidget *, main_window *widgets); +void on_install_advanced_device_chosen(GtkCellRenderer, gchar *path, main_window *widgets); +void on_install_advanced_partition_chosen(GtkCellRenderer, gchar *path, main_window *widgets); +void yon_devices_setup(main_window *widgets); \ No newline at end of file diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index d7adb0a..b5b1e9d 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -34,15 +34,15 @@ - + - + - + - + - + @@ -5330,15 +5330,15 @@ or continue working in the UBLinux Live environment. False 1 - ext3 - ext4 - fat16 - fat32 - exfat - riserfs - udf - xfs - zfs + ext3 + ext4 + fat16 + fat32 + exfat + riserfs + udf + xfs + zfs @@ -5700,7 +5700,7 @@ installed. True False - Choose a section: + Choose a partition: 0 @@ -6381,7 +6381,7 @@ installed. True False - Choose a section: + Choose a partition: 0 @@ -6646,15 +6646,15 @@ installed. False 1 - ext3 - ext4 - fat16 - fat32 - exfat - riserfs - udf - xfs - zfs + ext3 + ext4 + fat16 + fat32 + exfat + riserfs + udf + xfs + zfs @@ -6909,8 +6909,62 @@ separately into the selected partition. True True - - + DevicesList + 0 + + + Device + + + + 0 + + + + + + + Description + + + + 1 + + + + + + + Label + + + + 2 + + + + + + + Size + + + + 3 + + + + + + + Serial + + + + 4 + + + @@ -7003,8 +7057,62 @@ separately into the selected partition. True True - - + PartitionsList + 0 + + + Section + + + + 0 + + + + + + + Capacity + + + + 1 + + + + + + + Free space + + + + 2 + + + + + + + File system + + + + 3 + + + + + + + Label + + + + 4 + + + @@ -8319,7 +8427,7 @@ separately into the selected partition. True False - Choose a section: + Choose a partition: 0 @@ -8694,7 +8802,7 @@ separately into the selected partition. True False - Choose a section: + Choose a partition: 0 @@ -9062,7 +9170,7 @@ separately into the selected partition. True False - Choose a section: + Choose a partition: 0 @@ -9789,7 +9897,7 @@ separately into the selected partition. True False - Choose a section: + Choose a partition: 0