From bf7bf26ad66e338b4b7fd0e1bdda222ac489415c Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 2 Jul 2025 18:00:44 +0600 Subject: [PATCH] WIP code structure changes --- source/CMakeLists.txt | 11 + source/ubinstall-gtk-bootloader.c | 27 + source/ubinstall-gtk-components.c | 91 + source/ubinstall-gtk-grub.c | 49 + source/ubinstall-gtk-installation.c | 220 ++ source/ubinstall-gtk-keyboard.c | 224 ++ source/ubinstall-gtk-network.c | 21 + source/ubinstall-gtk-page-switch.c | 192 ++ source/ubinstall-gtk-region.c | 43 + source/ubinstall-gtk-separate.c | 26 + source/ubinstall-gtk-users.c | 89 + source/ubinstall-gtk.c | 3948 +++++++++------------- source/ubinstall-gtk.h | 238 +- source/ubl-strings.h | 8 +- ubinstall-gtk-advanced-box.glade | 416 +++ ubinstall-gtk-network-box.glade | 300 ++ ubinstall-gtk.css | 7 + ubinstall-gtk.glade | 4698 ++++++++++++++++----------- 18 files changed, 6307 insertions(+), 4301 deletions(-) create mode 100644 source/ubinstall-gtk-bootloader.c create mode 100644 source/ubinstall-gtk-components.c create mode 100644 source/ubinstall-gtk-grub.c create mode 100644 source/ubinstall-gtk-installation.c create mode 100644 source/ubinstall-gtk-keyboard.c create mode 100644 source/ubinstall-gtk-network.c create mode 100644 source/ubinstall-gtk-page-switch.c create mode 100644 source/ubinstall-gtk-region.c create mode 100644 source/ubinstall-gtk-separate.c create mode 100644 source/ubinstall-gtk-users.c create mode 100644 ubinstall-gtk-advanced-box.glade create mode 100644 ubinstall-gtk-network-box.glade diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index a3e0cae..c81cf69 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -105,6 +105,16 @@ endif() set(SOURCE_FILES ubinstall-gtk.c + ubinstall-gtk-page-switch.c + ubinstall-gtk-keyboard.c + ubinstall-gtk-region.c + ubinstall-gtk-bootloader.c + ubinstall-gtk-components.c + ubinstall-gtk-grub.c + ubinstall-gtk-installation.c + ubinstall-gtk-network.c + ubinstall-gtk-separate.c + ubinstall-gtk-users.c ubinstall-gtk.h ubl-strings.h ) @@ -118,6 +128,7 @@ set(LIBRARIES pthread ublsettings ublsettings-gtk3 + ublsettingsui-gtk3 ) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c new file mode 100644 index 0000000..367d126 --- /dev/null +++ b/source/ubinstall-gtk-bootloader.c @@ -0,0 +1,27 @@ +#include "ubinstall-gtk.h" + +int yon_bootloader_save(main_window *widgets){ + if (gtk_switch_get_active(GTK_SWITCH(widgets->BootloadTimerSwitch))){ + // long time = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->BootloadTimerSpin)); + // yon_config_register(,,yon_char_from_long(time)); + } + char *OS = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->BootloadDefaultOSEntry)); + if (strcmp(OS,DEFAULT_BOOTLOAD_MENU_ITEM_LABEL)){ + // yon_config_register(,,OS); + } else { + // yon_config_remove_by_key(); + } + if (gtk_switch_get_active(GTK_SWITCH(widgets->BootloadNoPasswordSwitch))){ + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->BootloadUsersList); + for_iter(model,&iter){ + int is_admin; + char *username, *password; + gtk_tree_model_get(model,&iter,0,&is_admin,1,&username,2,&password,-1); + // yon_config_register(,,); + } + } else { + // yon_config_remove_by_key(); + } + return 1; +} \ No newline at end of file diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c new file mode 100644 index 0000000..245bd14 --- /dev/null +++ b/source/ubinstall-gtk-components.c @@ -0,0 +1,91 @@ +#include "ubinstall-gtk.h" + +int yon_kernel_save(main_window *widgets){ + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->KernelsList); + int size = 0; + config_str kernels = NULL; + for_iter(model,&iter){ + char *target; + int status,loaded; + gtk_tree_model_get(model,&iter,0,&status,1,&loaded,2,&target,-1); + if (status){ + yon_char_parsed_add_or_create_if_exists(kernels,&size,target); + } + } + if (!size){ + return 0; + } + return 1; + +} + +int yon_os_components_save(main_window *widgets){ + + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->OSSoftwareList); + int size = 0; + config_str modules = NULL; + for_iter(model,&iter){ + char *target; + int status; + gtk_tree_model_get(model,&iter,0,&status,1,&target,-1); + if (status){ + yon_char_parsed_add_or_create_if_exists(modules,&size,target); + } + } + if (size){ + char *final = yon_char_parsed_to_string(modules,size,","); + yon_config_register(modules_parameter,modules_parameter_command,final); + } else { + yon_config_remove_by_key(modules_parameter); + } + return 1; +} + +int yon_software_save(main_window *widgets){ + + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->AdditionalSoftwareList); + int size = 0; + config_str modules = NULL; + for_iter(model,&iter){ + char *target; + int status; + gtk_tree_model_get(model,&iter,0,&status,1,&target,-1); + if (status){ + yon_char_parsed_add_or_create_if_exists(modules,&size,target); + } + } + if (size){ + char *final = yon_char_parsed_to_string(modules,size,","); + yon_config_register(modules_extra_parameter,modules_extra_parameter_command,final); + } else { + yon_config_remove_by_key(modules_extra_parameter); + } + return 1; +} + +int yon_startup_save(main_window *widgets){ + + + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->StartupList); + int size = 0; + config_str modules = NULL; + for_iter(model,&iter){ + char *target; + int status; + gtk_tree_model_get(model,&iter,0,&status,1,&target,-1); + if (status){ + yon_char_parsed_add_or_create_if_exists(modules,&size,target); + } + } + if (size){ + // char *final = yon_char_parsed_to_string(modules,size,","); + // yon_config_register(modules_extra_parameter,modules_extra_parameter_command,final); + } else { + // yon_config_remove_by_key(modules_extra_parameter); + } + return 1; +} \ No newline at end of file diff --git a/source/ubinstall-gtk-grub.c b/source/ubinstall-gtk-grub.c new file mode 100644 index 0000000..ea8b0fa --- /dev/null +++ b/source/ubinstall-gtk-grub.c @@ -0,0 +1,49 @@ +#include "ubinstall-gtk.h" + +int yon_grub_install_save(main_window *widgets){ + GtkTreeIter iter; + GtkTreeModel *model; + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubInstallDevicesTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubInstallDevicesTree)); + return 0; + } + char *cur_device; + gtk_tree_model_get(model,&iter,0,&cur_device,-1); + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubInstallPartitionTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubInstallPartitionTree)); + return 0; + } + char *partition; + gtk_tree_model_get(model,&iter,0,&partition,-1); + yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); + yon_config_register(part_parameter,part_parameter_command,partition); + yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_install"); + yon_config_remove_by_key(part_parameter); + return 1; +} + +int yon_grub_update_save(main_window *widgets){ + GtkTreeIter iter; + GtkTreeModel *model; + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubUpdateDevicesTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubUpdateDevicesTree)); + return 0; + } + char *cur_device; + gtk_tree_model_get(model,&iter,0,&cur_device,-1); + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubUpdatePartitionTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubUpdatePartitionTree)); + return 0; + } + char *partition; + gtk_tree_model_get(model,&iter,0,&partition,-1); + yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); + yon_config_register(part_parameter,part_parameter_command,partition); + yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update"); + yon_config_remove_by_key(part_parameter); + return 1; +} \ No newline at end of file diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c new file mode 100644 index 0000000..6f2c073 --- /dev/null +++ b/source/ubinstall-gtk-installation.c @@ -0,0 +1,220 @@ +#include "ubinstall-gtk.h" + +int yon_install_common_save(main_window *widgets){ + GtkTreeModel *model; + GtkTreeIter iter; + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->CommonInstallationDevicesTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); + return 0; + } + char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->CommonInstallationFilesystemTypeCombo)); + char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->CommonInstallationSectionNameEntry)); + char *device; + yon_config_remove_by_key(part_size_parameter); + 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); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->CommonSectionSensitiveCheck))){ + yon_config_register(device_label_parameter,device_label_parameter_command,device_name); + } else { + yon_config_remove_by_key(device_label_parameter); + } + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->CommonFilesystemSensitiveCheck))){ + yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); + } else { + yon_config_remove_by_key(part_type_parameter); + } + return 1; +} + +int yon_install_separate_save(main_window *widgets){ + GtkTreeModel *model; + GtkTreeIter iter; + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->InstallationNearSysDevicesTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); + return 0; + } + char *device; + gtk_tree_model_get(model,&iter,0,&device,-1); + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->InstallationNearSysSectionTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); + return 0; + } + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextSizeSensitiveCheck))){ + double part_size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)); + if (part_size){ + char *size_letter = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin)); + char *size_final = yon_char_append(yon_char_from_long((long)part_size),size_letter); + yon_config_register(part_size_parameter,part_size_parameter_command,size_final); + } else yon_config_remove_by_key(part_size_parameter); + } else yon_config_remove_by_key(part_size_parameter); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextLabelSensitiveCheck))){ + char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry)); + yon_config_register(device_label_parameter,device_label_parameter_command,device_name); + } else { + yon_config_remove_by_key(device_label_parameter); + } + char *part; + gtk_tree_model_get(model,&iter,0,&part,-1); + yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next"); + yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device); + yon_config_register(part_parameter,part_parameter_command,part); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextFSTypeSensitiveCheck))){ + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))){ + yon_config_register(device_format_parameter,device_format_parameter_command,"no"); + yon_config_remove_by_key(part_type_parameter); + } else { + char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->NextInstallationFilesystemTypeCombo)); + yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); + yon_config_remove_by_key(device_format_parameter); + } + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))) + yon_config_register(device_format_parameter,device_format_parameter_command,"no"); + } else { + yon_config_remove_by_key(part_type_parameter); + yon_config_remove_by_key(device_format_parameter); + } + return 1; +} + +int yon_install_same_partition_save(main_window *widgets){ + GtkTreeModel *model; + GtkTreeIter iter; + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlaceDeviceTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); + return 0; + } + char *device; + gtk_tree_model_get(model,&iter,0,&device,-1); + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlacePartTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); + return 0; + } + yon_config_remove_by_key(part_size_parameter); + 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(part_parameter,part_parameter_command,part); + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameLabelSensitiveCheck))){ + char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry)); + yon_config_register(device_label_parameter,device_label_parameter_command,device_name); + } else { + yon_config_remove_by_key(device_label_parameter); + } + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameFSTypeSensitiveCheck))){ + if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck))){ + yon_config_register(device_format_parameter,device_format_parameter_command,"no"); + yon_config_remove_by_key(part_type_parameter); + } else { + char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->SameInstallationFilesystemTypeCombo)); + yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); + yon_config_remove_by_key(device_format_parameter); + } + } else { + yon_config_remove_by_key(device_format_parameter); + yon_config_remove_by_key(part_type_parameter); + + } + return 1; +} + +int yon_advanced_sections_save(dictionary *dict){ + if (!dict) return 0; + advanced_section *first_section = yon_dictionary_get_data(dict->first,advanced_section*); + advanced_section *last_section = NULL; + if (dict->first->next){ + last_section = yon_dictionary_get_data(dict->first->next,advanced_section*); + } + + char *part_first = first_section->part; + char *part_last = last_section?last_section->part:NULL; + char *part = yon_char_unite(part_first,last_section?",":NULL,part_last,NULL); + yon_config_register(part_parameter,part_parameter_command,part); + + char * format_first = gtk_switch_get_active(GTK_SWITCH(first_section->FormatSwitch))?"yes":"no"; + char * format_last = last_section?gtk_switch_get_active(GTK_SWITCH(last_section->FormatSwitch))?"yes":"no":NULL; + char *format = yon_char_unite(format_first,part_last?",":NULL,format_last,NULL); + yon_config_register(part_format_parameter,part_format_parameter_command,format); + + if (!yon_char_is_empty(format)){ + char *size_first = g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(first_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(first_section->SizeCombo)))); + char *size_last = last_section&&!strcmp(format_last,"yes")?g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(last_section->SizeSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(last_section->SizeCombo)))):NULL; + char *size = yon_char_unite(size_first,size_last?",":NULL,size_last,NULL); + yon_config_register(part_size_parameter,part_size_parameter_command,size); + + char *device_label_first = gtk_entry_get_text(GTK_ENTRY(first_section->SectionMarkEntry)); + char *device_label_last = last_section&&!strcmp(format_last,"yes")?gtk_entry_get_text(GTK_ENTRY(last_section->SectionMarkEntry)):NULL; + char *device_label = yon_char_unite(device_label_first,device_label_last?",":NULL,device_label_last,NULL); + yon_config_register(device_label_parameter,device_label_parameter_command,device_label); + + char *fs_label_first = gtk_entry_get_text(GTK_ENTRY(first_section->FileSystemMarkentry)); + char *fs_label_last = last_section&&!strcmp(format_last,"yes")?gtk_entry_get_text(GTK_ENTRY(last_section->FileSystemMarkentry)):NULL; + char *fs_label = yon_char_unite(fs_label_first,fs_label_last?",":NULL,fs_label_last,NULL); + yon_config_register(part_fs_label_parameter,part_fs_label_parameter_command,fs_label); + + char *fs_type_first = gtk_combo_box_get_active_id(GTK_COMBO_BOX(first_section->FileSystemTypeCombo)); + char *fs_type_last = last_section&&!strcmp(format_last,"yes")?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); + + char *part_crypt_first = gtk_combo_box_get_active(first_section->EncryptionCombo)?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(last_section->EncryptionCombo)?gtk_entry_get_text(GTK_ENTRY(first_section->EncryptionEntry)):NULL; + char *part_crypt = NULL; + if (part_crypt_first||part_crypt_last){ + part_crypt = yon_char_unite(part_crypt_first,part_crypt_last?",":NULL,part_crypt_last,NULL); + } + if (part_crypt){ + yon_config_register(part_crypt_parameter,part_crypt_parameter_command,part_crypt); + } else { + yon_config_remove_by_key(part_crypt_parameter); + } + } + return 1; +} + +int yon_install_advanced_save(main_window *widgets){ + + GtkTreeModel *model; + GtkTreeIter iter; + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->AdvancedDeviceTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->AdvancedDeviceTree)); + return 0; + } + char *device; + gtk_tree_model_get(model,&iter,0,&device,-1); + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->AdvancedPartitionTree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->AdvancedPartitionTree)); + return 0; + } + yon_config_remove_by_key(part_size_parameter); + char *part; + gtk_tree_model_get(model,&iter,0,&part,-1); + + yon_advanced_section_get_string(widgets->advanced_sections); + + if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedSwapSwitch))){ + if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedSwapAutoSwitch))){ + yon_config_register(swap_parameter,swap_parameter_command,"auto"); + } else if (gtk_switch_get_active(GTK_SWITCH(widgets->AdvancedSwapRamSwitch))){ + yon_config_register(swap_parameter,swap_parameter_command,"yes"); + yon_config_register(swap_size_parameter,swap_size_parameter_command,"ram"); + } else { + yon_config_register(swap_parameter,swap_parameter_command,"yes"); + char *swap = g_strdup_printf("%d%s",gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgets->AdvancedSwapFixedSpin)),yon_size_get_mod(gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->AdvancedSwapFixedSizeSwitch))+1)); + yon_config_register(swap_size_parameter,swap_size_parameter_command,swap); + } + } + + return 1; +} \ No newline at end of file diff --git a/source/ubinstall-gtk-keyboard.c b/source/ubinstall-gtk-keyboard.c new file mode 100644 index 0000000..b83ea1e --- /dev/null +++ b/source/ubinstall-gtk-keyboard.c @@ -0,0 +1,224 @@ +#include "ubinstall-gtk.h" + +int yon_keyboard_save(main_window *widgets){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){ + GtkTreeIter iter; + if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LayoutList),&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),LAYOUTS_CHOSEN_BUT_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(widgets->ManualLayoutRadio); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->LayoutTree)); + return 0; + } + } + char *layouts_list=""; + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck))){ + GtkTreeModel *layouts_model=GTK_TREE_MODEL(widgets->LayoutList); + GtkTreeIter iter; + char *cur_layout=NULL; + for_iter(layouts_model,&iter){ + int chosen=0; + gtk_tree_model_get(layouts_model,&iter,0,&cur_layout,3,&chosen,-1); + if (chosen) + layouts_list = yon_char_unite(layouts_list,yon_char_is_empty(layouts_list)?"":",",cur_layout,NULL); + } + } + + if (yon_char_is_empty(layouts_list)&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck))) + yon_config_register(xkblayout_parameter,xkblayout_parameter_command,layouts_list); + else + yon_config_remove_by_key(xkblayout_parameter); + + if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo))&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->KeyboardModelSensitiveCheck))){ + char *model = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->KeyboardModelCombo)); + if (!yon_char_is_empty(model)) + yon_config_register(xkbmodel_parameter,xkbmodel_parameter_command,model); + } else{ + yon_config_remove_by_key(xkbmodel_parameter); + } + + if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->LayoutBindingCombo))&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OptionsSensitiveCheck))){ + char *options = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LayoutBindingCombo)); + if (options){}; + yon_config_register(xkboptions_parameter,xkboptions_parameter_command,options); + } else { + yon_config_remove_by_key(xkboptions_parameter); + } + return 1; +} + +ubinstall_keyboard_window *yon_ubinstall_keyboard_new(){ +void on_additional_software_toggled(); + ubinstall_keyboard_window *window = malloc(sizeof(ubinstall_keyboard_window)); + GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_keyboard); + window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow"); + window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); + window->headerBar=yon_gtk_builder_get_widget(builder,"headerBar"); + window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); + window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton"); + window->LayoutsTree=yon_gtk_builder_get_widget(builder,"LayoutsTree"); + window->ActiveToggle = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ActiveToggle")); + + g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); + +return window; +} + +void on_keyboard_removed(GtkWidget *, main_window *widgets){ + GtkTreeModel *model; + GtkTreeIter iter, childiter; + if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LayoutTree)),&model,&iter)){ + gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),&childiter,&iter); + gtk_tree_store_set(widgets->LayoutList,&childiter,3,0,-1); + } +} + +void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window){ + GtkTreeIter iter; + int state; + + if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->liststore1),&iter,path)){ + gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&state,-1); + gtk_list_store_set(window->liststore1,&iter,0,!state,-1); + } +} + +void on_language_window_accept(GtkWidget *,dictionary *dict){ + main_window *widgets= yon_dictionary_get_data(dict->first,main_window*); + ubinstall_language_window *window = yon_dictionary_get_data(dict->first->next,ubinstall_language_window*); + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultCheck))){ + gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); + GtkTreeIter iter; + int size; + config_str lang_parsed = default_langs(&size); + + char *final = ""; + for_iter(widgets->LanguagesList,&iter){ + char *code, *labl; + gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&labl,2,&code,-1); + if (yon_char_parsed_check_exist(lang_parsed,size,code)!=-1){ + gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1); + char *tmp = yon_char_unite(final,!yon_char_is_empty(final)?";":"",labl,NULL); + if (!yon_char_is_empty(final)) free(final); + final = tmp; + } else + gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1); + } + if (!yon_char_is_empty(final)){ + gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),final); + } + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguagesCombo),-1); + gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter)); + } else { + yon_gtk_list_store_copy_full(widgets->LanguagesList,window->liststore1); + gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter)); + config_str parsed = NULL; + int size; + GtkTreeIter iter; + for_iter(GTK_TREE_MODEL(window->liststore1),&iter){ + char *current; + int status; + gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,¤t,-1); + if (status) + yon_char_parsed_add_or_create_if_exists(parsed,&size,current); + } + if (parsed){ + char *final = yon_char_parsed_to_string(parsed,size,"; "); + gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),!yon_char_is_empty(final)?final:""); + if (yon_char_is_empty(final)) { + gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguagesCombo),-1); + } + if (final) free(final); + yon_char_parsed_free(parsed,size); + } else + gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); + + } + on_subwindow_close(window->MainWindow); + free(window); +} + +ubinstall_language_window *yon_ubinstall_language_new(){ + ubinstall_language_window *window = malloc(sizeof(ubinstall_language_window)); + GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_language); + window->liststore1=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); + window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow"); + window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); + window->DefaultCheck=yon_gtk_builder_get_widget(builder,"DefaultCheck"); + window->LanguagesTree=yon_gtk_builder_get_widget(builder,"LanguagesTree"); + window->headerBar=yon_gtk_builder_get_widget(builder,"headerBar"); + window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); + window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton"); + window->ToggleRenderer=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleRenderer")); + + g_signal_connect(G_OBJECT(window->DefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->LanguagesTree); + g_signal_connect(G_OBJECT(window->ToggleRenderer),"toggled",G_CALLBACK(yon_language_selection_changed),window); + g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); +return window; +} + +void on_language_clicked(GtkWidget *, main_window *widgets){ + ubinstall_language_window *window = yon_ubinstall_language_new(); + g_object_ref(G_OBJECT(window->liststore1)); + gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),NULL); + yon_gtk_list_store_copy_full(window->liststore1,widgets->LanguagesList); + gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),GTK_TREE_MODEL(window->liststore1)); + yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),TITLE_LABEL,icon_path,"language-chooser-window"); + + if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AvailableLanguagesEntry)))){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1); + } + + int size; + int found=0; + int statusfound=0; + config_str langs = default_langs(&size); + GtkTreeIter iter; + for_iter(widgets->LanguagesList,&iter){ + char *cur; + int status; + gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,0,&status,2,&cur,-1); + if (status){ + statusfound++; + if (yon_char_parsed_check_exist(langs,size,cur)>-1) + found++; + } + } + if ((found==size)&&statusfound==size){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1); + } + + dictionary *dict=NULL; + yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); + yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); + g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_language_window_accept),dict); + gtk_widget_show(window->MainWindow); + +} + + +void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window){ + GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->LayoutsTree)); + GtkTreeIter iter; + if (gtk_tree_model_get_iter_from_string(model,&iter,path)){ + int status=0; + gtk_tree_model_get(model,&iter,3,&status,-1); + gtk_tree_store_set(GTK_TREE_STORE(model),&iter,3,!status,-1); + } +} + + +void on_keyboard_accept(GtkWidget *self,main_window *widgets){ + gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter)); + on_subwindow_close(self); +} + + +void on_keyboard_clicked (GtkWidget *, main_window *widgets){ + ubinstall_keyboard_window *window = yon_ubinstall_keyboard_new(); + yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),KEYBOARD_TITLE_LABEL,icon_path,"keyboard-window"); + gtk_tree_view_set_model(GTK_TREE_VIEW(window->LayoutsTree),GTK_TREE_MODEL(widgets->LayoutList)); + + 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); +} \ No newline at end of file diff --git a/source/ubinstall-gtk-network.c b/source/ubinstall-gtk-network.c new file mode 100644 index 0000000..6df7f1f --- /dev/null +++ b/source/ubinstall-gtk-network.c @@ -0,0 +1,21 @@ +#include "ubinstall-gtk.h" + +network_info *yon_network_info_new(){ + network_info *info = new(network_info); + GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_network_info); + info->MainBox = yon_gtk_builder_get_widget(builder,"MainBox"); + info->TypeCombo = yon_gtk_builder_get_widget(builder,"TypeCombo"); + info->ConnectionCombo = yon_gtk_builder_get_widget(builder,"ConnectionCombo"); + info->EnabledSwitch = yon_gtk_builder_get_widget(builder,"EnabledSwitch"); + info->RemoveButton = yon_gtk_builder_get_widget(builder,"RemoveButton"); + info->AutoGetIPSwitch = yon_gtk_builder_get_widget(builder,"AutoGetIPSwitch"); + info->IpAdressEntry = yon_gtk_builder_get_widget(builder,"IpAdressEntry"); + info->GatewayEntry = yon_gtk_builder_get_widget(builder,"GatewayEntry"); + info->MaskEntry = yon_gtk_builder_get_widget(builder,"MaskEntry"); + info->DNSEntry = yon_gtk_builder_get_widget(builder,"DNSEntry"); + + g_object_set_data(G_OBJECT(info->RemoveButton),"network_info",info); + g_object_set_data(G_OBJECT(info->MainBox),"network_info",info); + + return info; +} \ No newline at end of file diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c new file mode 100644 index 0000000..102f13f --- /dev/null +++ b/source/ubinstall-gtk-page-switch.c @@ -0,0 +1,192 @@ +#include "ubinstall-gtk.h" + +enum YON_PAGES yon_page_get_next(main_window *widgets, enum YON_PAGES page){ + switch (page){ + case YON_PAGE_WELCOME: return YON_PAGE_LICENCE; break; + case YON_PAGE_LICENCE: return YON_PAGE_SECTIONS; break; + case YON_PAGE_SECTIONS: return yon_sections_get_next_page(widgets); break; + case YON_PAGE_OS_COMPONENTS: return YON_PAGE_INSTALLATION_BEGIN; break; + case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_KERNEL; break; + case YON_PAGE_KERNEL: return YON_PAGE_SOFTWARE; break; + case YON_PAGE_SOFTWARE: return YON_PAGE_REGION; break; + case YON_PAGE_REGION: return YON_PAGE_KEYBOARD; break; + case YON_PAGE_KEYBOARD: return YON_PAGE_USERS; break; + case YON_PAGE_USERS: return YON_PAGE_STARTUP; break; + case YON_PAGE_STARTUP: return YON_PAGE_BOOTLOADER; break; + case YON_PAGE_BOOTLOADER: return YON_PAGE_NETWORK; break; + case YON_PAGE_NETWORK: return YON_PAGE_INSTALLATION; break; + case YON_PAGE_INSTALL_COMMON: return YON_PAGE_KERNEL; break; + case YON_PAGE_INSTALL_SEPARATE: return YON_PAGE_KERNEL; break; + case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_KERNEL; break; + case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_KERNEL; break; + case YON_PAGE_INSTALL_RECOVERY: return yon_recovery_get_next(widgets); break; + case YON_PAGE_RECOVERY_GRUB_INSTALL: return YON_PAGE_INSTALLATION; break; + case YON_PAGE_RECOVERY_GRUB_UPDATE: return YON_PAGE_INSTALLATION; break; + case YON_PAGE_RECOVERY_OS_ONLY: return YON_PAGE_INSTALLATION; break; + case YON_PAGE_RECOVERY_USRDATA_ONLY: return YON_PAGE_INSTALLATION; break; + default:return YON_PAGE_WELCOME; + } + return YON_PAGE_WELCOME; +} + +enum YON_PAGES yon_page_get_prev(enum YON_PAGES page){ + switch (page){ + case YON_PAGE_WELCOME: return YON_PAGE_WELCOME; break; + case YON_PAGE_LICENCE: return YON_PAGE_WELCOME; break; + case YON_PAGE_SECTIONS: return YON_PAGE_LICENCE; break; + case YON_PAGE_OS_COMPONENTS: return YON_PAGE_SECTIONS; break; + case YON_PAGE_INSTALLATION_BEGIN: return YON_PAGE_SECTIONS; break; + case YON_PAGE_KERNEL: return YON_PAGE_SECTIONS; break; + case YON_PAGE_SOFTWARE: return YON_PAGE_KERNEL; break; + case YON_PAGE_REGION: return YON_PAGE_SOFTWARE; break; + case YON_PAGE_KEYBOARD: return YON_PAGE_REGION; break; + case YON_PAGE_USERS: return YON_PAGE_KEYBOARD; break; + case YON_PAGE_STARTUP: return YON_PAGE_USERS; break; + case YON_PAGE_BOOTLOADER: return YON_PAGE_STARTUP; break; + case YON_PAGE_NETWORK: return YON_PAGE_BOOTLOADER; break; + case YON_PAGE_INSTALLATION: return YON_PAGE_INSTALLATION; break; + case YON_PAGE_CONFIGURE_END: return YON_PAGE_CONFIGURE_END; break; + case YON_PAGE_INSTALL_COMMON: return YON_PAGE_SECTIONS; break; + case YON_PAGE_INSTALL_SEPARATE: return YON_PAGE_SECTIONS; break; + case YON_PAGE_INSTALL_SAME_PARTITION: return YON_PAGE_SECTIONS; break; + case YON_PAGE_INSTALL_ADVANCED: return YON_PAGE_SECTIONS; break; + case YON_PAGE_INSTALL_RECOVERY: return YON_PAGE_SECTIONS; break; + case YON_PAGE_RECOVERY_GRUB_INSTALL: return YON_PAGE_INSTALL_RECOVERY; break; + case YON_PAGE_RECOVERY_GRUB_UPDATE: return YON_PAGE_INSTALL_RECOVERY; break; + case YON_PAGE_RECOVERY_OS_ONLY: return YON_PAGE_INSTALL_RECOVERY; break; + case YON_PAGE_RECOVERY_USRDATA_ONLY: return YON_PAGE_INSTALL_RECOVERY; break; + default:return YON_PAGE_WELCOME; + } + return YON_PAGE_WELCOME; +} + +enum YON_PAGES yon_page_get_current(GtkNotebook *target){ + enum YON_PAGES page = gtk_notebook_get_current_page(target); + return page; +} + +void yon_navigation_buttons_set_sensetiveness(main_window *widgets){ + enum YON_PAGES page = yon_page_get_current(GTK_NOTEBOOK(widgets->Notebook)); + + switch(page){ + case YON_PAGE_WELCOME: + gtk_widget_hide(widgets->BackButton); + gtk_widget_set_sensitive(widgets->NextButton,1); + break; + case YON_PAGE_LICENCE: + gtk_widget_show(widgets->BackButton); + gtk_widget_set_sensitive(widgets->BackButton,1); + gtk_widget_set_sensitive(widgets->NextButton,1); + gtk_widget_set_sensitive(widgets->CancelInstallButton,1); + break; + case YON_PAGE_INSTALLATION: + gtk_widget_set_sensitive(widgets->NextButton,0); + gtk_widget_set_sensitive(widgets->BackButton,0); + break; + case YON_PAGE_KERNEL: + gtk_widget_set_sensitive(widgets->BackButton,0); + break; + case YON_PAGE_COMPLETED: + case YON_PAGE_INSTALL_ERROR: + case YON_PAGE_CONFIGURE_SAVE: + case YON_PAGE_CONFIGURE_END: + case YON_PAGE_COMPLETION: + gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL); + gtk_widget_set_sensitive(widgets->BackButton,0); + break; + default: + gtk_widget_set_sensitive(widgets->BackButton,1); + gtk_widget_set_sensitive(widgets->NextButton,1); + gtk_widget_set_sensitive(widgets->CancelInstallButton,1); + break; + } +} + +int yon_page_save(main_window *widgets, enum YON_PAGES page){ + switch (page){ + case YON_PAGE_OS_COMPONENTS: + return yon_os_components_save(widgets); + break; + case YON_PAGE_KERNEL: + return yon_kernel_save(widgets); + break; + case YON_PAGE_SOFTWARE: + return yon_software_save(widgets); + break; + case YON_PAGE_REGION: + return yon_region_save(widgets); + break; + case YON_PAGE_KEYBOARD: + return yon_keyboard_save(widgets); + break; + case YON_PAGE_USERS: + return yon_users_save(widgets); + break; + case YON_PAGE_STARTUP: + return yon_startup_save(widgets); + break; + case YON_PAGE_BOOTLOADER: + return yon_bootloader_save(widgets); + break; + case YON_PAGE_NETWORK: + // return yon_network_save(widgets); + break; + case YON_PAGE_INSTALL_COMMON: + return yon_install_common_save(widgets); + break; + case YON_PAGE_INSTALL_SEPARATE: + return yon_install_separate_save(widgets); + break; + case YON_PAGE_INSTALL_SAME_PARTITION: + return yon_install_same_partition_save(widgets); + break; + case YON_PAGE_INSTALL_ADVANCED: + return yon_install_advanced_save(widgets); + break; + case YON_PAGE_RECOVERY_GRUB_INSTALL: + return yon_grub_install_save(widgets); + break; + case YON_PAGE_RECOVERY_GRUB_UPDATE: + return yon_grub_update_save(widgets); + break; + case YON_PAGE_RECOVERY_OS_ONLY: + return yon_install_options_save(widgets->OSDevicesTree,widgets->OSSysSectionTree,"system_only",widgets); + break; + case YON_PAGE_RECOVERY_USRDATA_ONLY: + return yon_install_options_save(widgets->UserdataDevicesTree,widgets->UserdataSysSectionTree,"data_only",widgets); + break; + default:return 1; + } + return 1; +} + +void yon_page_update(main_window *widgets){ + yon_navigation_buttons_set_sensetiveness(widgets); + yon_switch_page_render(widgets); +} + +enum YON_PAGES yon_sections_get_next_page(main_window *widgets){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio))) + return YON_PAGE_INSTALL_COMMON; + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationNearRadio))) + return YON_PAGE_INSTALL_SEPARATE; + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio))) + return YON_PAGE_INSTALL_SAME_PARTITION; + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio))) + return YON_PAGE_INSTALL_ADVANCED; + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationOptionsRadio))) + return YON_PAGE_INSTALL_RECOVERY; + return YON_PAGE_SECTIONS; +} + +enum YON_PAGES yon_recovery_get_next(main_window *widgets){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubInstallRadio))) + return YON_PAGE_RECOVERY_GRUB_INSTALL; + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubUpdateRadio))) + return YON_PAGE_RECOVERY_GRUB_UPDATE; + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSRadio))) + return YON_PAGE_RECOVERY_OS_ONLY; + else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio))) + return YON_PAGE_RECOVERY_USRDATA_ONLY; + return YON_PAGE_SECTIONS; +} \ No newline at end of file diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c new file mode 100644 index 0000000..80439cb --- /dev/null +++ b/source/ubinstall-gtk-region.c @@ -0,0 +1,43 @@ +#include "ubinstall-gtk.h" + +int yon_region_save(main_window *widgets){ + if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->RegionCombo))==-1){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),REGION_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(widgets->RegionCombo); + return 0; + } else if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ZoneCombo))==-1){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),ZONE_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(widgets->ZoneCombo); + return 0; + } + char *languages = ""; + GtkTreeIter iter; + GtkTreeModel *model = GTK_TREE_MODEL(widgets->LanguagesFilter); + char *lang_code=NULL; + for_iter(model,&iter){ + gtk_tree_model_get(model,&iter,2,&lang_code,-1); + languages = yon_char_unite(languages,!yon_char_is_empty(languages)?",":"",lang_code,NULL); + } + if (yon_char_is_empty(languages)||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->MainLanguageSensitiveCheck))){ + yon_config_remove_by_key(locale_parameter); + } else { + yon_config_register(locale_parameter,locale_parameter_command,languages); + free(languages); + } + if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->LanguagesCombo))==-1||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck))){ + yon_config_remove_by_key(lang_parameter); + } else { + char *language = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LanguagesCombo)); + yon_config_register(lang_parameter,lang_parameter_command,language); + } + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck))){ + char *region = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo)); + char *zone = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo)); + yon_debug_output("%s",region); + yon_debug_output("/%s\n\n",zone); + yon_config_register(zone_parameter,zone_parameter_command,yon_char_unite(region,"/",zone,NULL)); + } else { + yon_config_remove_by_key(zone_parameter); + } + return 1; +} \ No newline at end of file diff --git a/source/ubinstall-gtk-separate.c b/source/ubinstall-gtk-separate.c new file mode 100644 index 0000000..61a7a64 --- /dev/null +++ b/source/ubinstall-gtk-separate.c @@ -0,0 +1,26 @@ +#include "ubinstall-gtk.h" + +int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *mode,main_window *widgets){ + GtkTreeIter iter,itar; + GtkTreeModel *model,*model2; + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(device_tree)),&model,&iter)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(device_tree)); + return 0; + } + if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&model2,&itar)){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(part_tree)); + return 0; + } + 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(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,mode); + yon_config_register(part_parameter,part_parameter_command,cur_section); + + if(cur_section) free(cur_section); + if(cur_device) free(cur_device); + return 1; +} \ No newline at end of file diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c new file mode 100644 index 0000000..14d4d3a --- /dev/null +++ b/source/ubinstall-gtk-users.c @@ -0,0 +1,89 @@ +#include "ubinstall-gtk.h" + +int yon_users_save(main_window *widgets){ + if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)))||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UsernameSensitiveCheck))){ + yon_config_remove_by_key(user_gecos_parameter); + } else { + char *username = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)); + if (username){}; + yon_config_register(user_gecos_parameter,user_gecos_parameter_command,username); + } + + if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->LoginEntry)))||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LoginSensitiveCheck))){ + yon_config_remove_by_key(user_name_parameter); + } else { + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserRootOnlyCheck))){ + yon_config_register(user_name_parameter,user_name_parameter_command,"root"); + } else { + char *login = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->LoginEntry)); + if (login){}; + yon_config_register(user_name_parameter,user_name_parameter_command,login); + } + } + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PasswordSensitiveCheck))){ + if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->PasswordCombo))==1){ + if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->PasswordEntry)))){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(widgets->PasswordEntry); + return 0; + } else { + char *password = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->PasswordEntry)); + if (password){}; + + yon_config_register(user_password_parameter,user_password_parameter_command,password); + + } + } else { + yon_config_remove_by_key(user_password_parameter); + } + }else { + yon_config_remove_by_key(user_password_parameter); + + } + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RootPasswordSensitiveCheck))){ + if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->AdminPasswordCombo))==1){ + if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AdminPasswordEntry)))){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); + yon_ubl_status_highlight_incorrect(widgets->AdminPasswordEntry); + return 0; + } else { + char *root_password = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->AdminPasswordEntry)); + if (root_password){}; + yon_config_register(root_password_parameter,root_password_parameter_command,root_password); + + } + } else { + yon_config_remove_by_key(root_password_parameter); + } + } else { + yon_config_remove_by_key(root_password_parameter); + } + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck))){ + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){ + yon_config_register(hostname_parameter,hostname_parameter_command,"auto"); + } else { + if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry)))){ + char *hostname = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry)); + if (hostname){}; + yon_config_register(hostname_parameter,hostname_parameter_command,hostname); + + } else { + yon_config_remove_by_key(hostname_parameter); + + } + } + } else { + yon_config_remove_by_key(hostname_parameter); + } + + if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutologinSensitiveCheck))){ + char *autologin = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck))?"yes":"no"; + yon_config_register(autologin_parameter,autologin_parameter_command,autologin); + } else { + yon_config_remove_by_key(autologin_parameter); + } + return 1; +} \ No newline at end of file diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 0d43cb0..97f7898 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -2,2275 +2,1432 @@ config main_config; -//functions - -void on_layout_toggle_button_switch(GtkWidget *self, main_window *widgets){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self))){ - gtk_widget_set_sensitive(widgets->DefaultLayoutRadio,1); - gtk_widget_set_sensitive(widgets->ManualLayoutRadio,1); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){ - gtk_widget_set_sensitive(widgets->LayoutTree,1); - gtk_widget_set_sensitive(widgets->AddButton,1); - gtk_widget_set_sensitive(widgets->RemoveButton,1); - } else { - gtk_widget_set_sensitive(widgets->LayoutTree,0); - gtk_widget_set_sensitive(widgets->AddButton,0); - gtk_widget_set_sensitive(widgets->RemoveButton,0); - } - } else { - gtk_widget_set_sensitive(widgets->DefaultLayoutRadio,0); - gtk_widget_set_sensitive(widgets->ManualLayoutRadio,0); - gtk_widget_set_sensitive(widgets->LayoutTree,0); - gtk_widget_set_sensitive(widgets->AddButton,0); - gtk_widget_set_sensitive(widgets->RemoveButton,0); +int cur_slide=0; - } -} +// //functions + +// void on_layout_toggle_button_switch(GtkWidget *self, main_window *widgets){ +// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self))){ +// gtk_widget_set_sensitive(widgets->DefaultLayoutRadio,1); +// gtk_widget_set_sensitive(widgets->ManualLayoutRadio,1); +// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){ +// gtk_widget_set_sensitive(widgets->LayoutTree,1); +// gtk_widget_set_sensitive(widgets->AddButton,1); +// gtk_widget_set_sensitive(widgets->RemoveButton,1); +// } else { +// gtk_widget_set_sensitive(widgets->LayoutTree,0); +// gtk_widget_set_sensitive(widgets->AddButton,0); +// gtk_widget_set_sensitive(widgets->RemoveButton,0); +// } +// } else { +// gtk_widget_set_sensitive(widgets->DefaultLayoutRadio,0); +// gtk_widget_set_sensitive(widgets->ManualLayoutRadio,0); +// gtk_widget_set_sensitive(widgets->LayoutTree,0); +// gtk_widget_set_sensitive(widgets->AddButton,0); +// gtk_widget_set_sensitive(widgets->RemoveButton,0); +// +// } +// } void on_toggle_button_switch_on(GtkWidget *, GtkToggleButton *toggle){ gtk_toggle_button_set_active(toggle,1); } -void on_autohostname_check(GtkWidget *, main_window *widgets){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){ - gtk_widget_set_sensitive(widgets->HotnameEntry,0); - gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->HotnameEntry),"auto"); - }else{ - gtk_widget_set_sensitive(widgets->HotnameEntry,1); - gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->HotnameEntry),"ublinux-install"); - } -} - -void yon_password_set_sensitive_from_toggle(GtkWidget *self, main_window *widgets); -void yon_password_set_sensitive_from_toggle(GtkWidget *self, main_window *widgets){ - GtkWidget *combo = NULL; - GtkWidget *entry = NULL; - if (self == widgets->PasswordSensitiveCheck){ - combo = widgets->PasswordCombo; - entry = widgets->PasswordEntry; - } else { - combo = widgets->AdminPasswordCombo; - entry = widgets->AdminPasswordEntry; - } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self))){ - gtk_widget_set_sensitive(combo,1); - if (gtk_combo_box_get_active(GTK_COMBO_BOX(combo))){ - gtk_widget_set_sensitive(entry,1); - } else { - gtk_widget_set_sensitive(entry,0); - } - } else { - gtk_widget_set_sensitive(combo,0); - gtk_widget_set_sensitive(entry,0); - - } -} - -void yon_password_combo_set_sensitive(GtkWidget *self, main_window *widgets); -void yon_password_combo_set_sensitive(GtkWidget *self, main_window *widgets){ - GtkWidget *entry = NULL; - GtkWidget *toggle = NULL; - if (self == widgets->PasswordCombo){ - entry = widgets->PasswordEntry; - toggle = widgets->PasswordSensitiveCheck; - } else if (self == widgets->AdminPasswordCombo){ - entry = widgets->AdminPasswordEntry; - toggle = widgets->RootPasswordSensitiveCheck; - } - if (gtk_combo_box_get_active(GTK_COMBO_BOX(self))&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle))){ - gtk_widget_set_sensitive(entry,1); - } else { - gtk_widget_set_sensitive(entry,0); - - } -} - -void on_autohostname_sensitiveness_check(GtkWidget *, main_window *widgets){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck))){ - gtk_widget_set_sensitive(widgets->AutoHostnameCheck,1); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){ - gtk_widget_set_sensitive(widgets->HotnameEntry,0); - } else - gtk_widget_set_sensitive(widgets->HotnameEntry,1); - } else { - gtk_widget_set_sensitive(widgets->HotnameEntry,0); - gtk_widget_set_sensitive(widgets->AutoHostnameCheck,0); - } -} - -void on_hostname_entry_changed (GtkWidget *, main_window *widgets){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),0); -} - -void _yon_saving_threaded(char *final_command); -void _yon_saving_threaded(char *final_command){ - FILE *file = popen(final_command,"r"); - int file_save; - config_str file_return = yon_config_load_file(file,&file_save); - pclose(file); - file_return = yon_char_parsed_append(file_return,&file_save,final_command); - char *result = yon_char_parsed_to_string(file_return,file_save,""); - yon_debug_output("%s\n",result); - yon_char_parsed_free(file_return,file_save); - free(result); -} - -void yon_save_proceed(char *path, YON_CONFIG_TYPE type); -void yon_save_proceed(char *path, YON_CONFIG_TYPE type){ - yon_debug_output("%s\n",yon_config_save_simple(type,path)); -} +// void on_autohostname_check(GtkWidget *, main_window *widgets){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1); +// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){ +// gtk_widget_set_sensitive(widgets->HotnameEntry,0); +// gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->HotnameEntry),"auto"); +// }else{ +// gtk_widget_set_sensitive(widgets->HotnameEntry,1); +// gtk_entry_set_placeholder_text(GTK_ENTRY(widgets->HotnameEntry),"ublinux-install"); +// } +// } + +// void yon_password_set_sensitive_from_toggle(GtkWidget *self, main_window *widgets){ +// GtkWidget *combo = NULL; +// GtkWidget *entry = NULL; +// if (self == widgets->PasswordSensitiveCheck){ +// combo = widgets->PasswordCombo; +// entry = widgets->PasswordEntry; +// } else { +// combo = widgets->AdminPasswordCombo; +// entry = widgets->AdminPasswordEntry; +// } +// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(self))){ +// gtk_widget_set_sensitive(combo,1); +// if (gtk_combo_box_get_active(GTK_COMBO_BOX(combo))){ +// gtk_widget_set_sensitive(entry,1); +// } else { +// gtk_widget_set_sensitive(entry,0); +// } +// } else { +// gtk_widget_set_sensitive(combo,0); +// gtk_widget_set_sensitive(entry,0); +// +// } +// } + +// void yon_password_combo_set_sensitive(GtkWidget *self, main_window *widgets){ +// GtkWidget *entry = NULL; +// GtkWidget *toggle = NULL; +// if (self == widgets->PasswordCombo){ +// entry = widgets->PasswordEntry; +// toggle = widgets->PasswordSensitiveCheck; +// } else if (self == widgets->AdminPasswordCombo){ +// entry = widgets->AdminPasswordEntry; +// toggle = widgets->RootPasswordSensitiveCheck; +// } +// if (gtk_combo_box_get_active(GTK_COMBO_BOX(self))&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle))){ +// gtk_widget_set_sensitive(entry,1); +// } else { +// gtk_widget_set_sensitive(entry,0); +// +// } +// } + +// void on_autohostname_sensitiveness_check(GtkWidget *, main_window *widgets){ +// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck))){ +// gtk_widget_set_sensitive(widgets->AutoHostnameCheck,1); +// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){ +// gtk_widget_set_sensitive(widgets->HotnameEntry,0); +// } else +// gtk_widget_set_sensitive(widgets->HotnameEntry,1); +// } else { +// gtk_widget_set_sensitive(widgets->HotnameEntry,0); +// gtk_widget_set_sensitive(widgets->AutoHostnameCheck,0); +// } +// } + +// void on_hostname_entry_changed (GtkWidget *, main_window *widgets){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),0); +// } + +// void _yon_saving_threaded(char *final_command){ +// FILE *file = popen(final_command,"r"); +// int file_save; +// config_str file_return = yon_config_load_file(file,&file_save); +// pclose(file); +// file_return = yon_char_parsed_append(file_return,&file_save,final_command); +// char *result = yon_char_parsed_to_string(file_return,file_save,""); +// yon_debug_output("%s\n",result); +// yon_char_parsed_free(file_return,file_save); +// free(result); +// } + +// void yon_save_proceed(char *path, YON_CONFIG_TYPE type){ +// yon_debug_output("%s\n",yon_config_save_simple(type,path)); +// } -void yon_load_proceed(YON_CONFIG_TYPE type); -void yon_load_proceed(YON_CONFIG_TYPE type){ - yon_config_clean(); - if (!yon_char_is_empty(config_get_default_command)) - yon_config_load_config(YON_CONFIG_DEFAULT,yon_debug_output("%s\n",config_get_default_command),NULL); - if (type==YON_CONFIG_GLOBAL){ - yon_config_load_config(type,yon_debug_output("%s\n",config_get_global_command),NULL); - } else if (type==YON_CONFIG_LOCAL){ - yon_config_load_config(type,yon_debug_output("%s\n",config_get_local_command),NULL); - } else if (type==YON_CONFIG_CUSTOM){ - char *path=""; - GtkWidget *dialog = gtk_file_chooser_dialog_new(TITLE_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL); - yon_gtk_window_setup(GTK_WINDOW(dialog),NULL,TITLE_LABEL,icon_path,"FileChooserWindow"); - textdomain(LocaleName); - gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ubinstall"); - gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL); - GtkFileFilter *filter = gtk_file_filter_new(); - gtk_file_filter_add_pattern(filter,"*.ini"); - gtk_file_filter_set_name(filter, "*.ini"); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter); - gtk_widget_show(dialog); - int response = gtk_dialog_run(GTK_DIALOG(dialog)); - if (response == GTK_RESPONSE_ACCEPT){ - char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); - if (!yon_char_is_empty(file)){ - path=yon_char_unite("'",file,"'",NULL); - free(file); - } - gtk_widget_destroy(dialog); - } else { - gtk_widget_destroy(dialog); - } - yon_config_load_config(type,yon_debug_output("%s\n",yon_config_get_custom_command(path)),NULL); - if (path) free(path); - } -} - -void yon_interface_update(main_window *widgets){ - if (widgets){}; - enum YON_PAGES page=YON_PAGE_COMPLETED; - char *type = config(AUTOINSTALL_TYPE_INSTALL); - if (!yon_char_is_empty(type)){ - if (!strcmp(type,"fast")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio),1); - page = YON_PAGE_INSTALL_COMMON; - } else if (!strcmp(type,"next")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationNearRadio),1); - page = YON_PAGE_INSTALL_SEPARATE; - } else if (!strcmp(type,"part")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio),1); - page = YON_PAGE_INSTALL_SAME_PARTITION; - } else if (!strcmp(type,"grub_install")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->GrubInstallRadio),1); - page = YON_PAGE_OPTIONS_GRUB_INSTALL; - } else if (!strcmp(type,"grub_update")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->GrubUpdateRadio),1); - page = YON_PAGE_OPTIONS_GRUB_UPDATE; - } else if (!strcmp(type,"system_only")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OSRadio),1); - page = YON_PAGE_OPTIONS_OS_ONLY; - } else if (!strcmp(type,"data_only")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio),1); - page = YON_PAGE_OPTIONS_USRDATA_ONLY; - } else if (!strcmp(type,"custom")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->SeparateRadio),1); - page = YON_PAGE_OPTIONS_SEPARATE; - } - } - char *device = config(AUTOINSTALL_DEVICE); - char *part = NULL; - if (page!=YON_PAGE_INSTALL_COMMON) - part = config(part_parameter); - char *fs_type = config(part_type_parameter); - char *device_label = config(device_label_parameter); - char *format = config(device_format_parameter); - char *part_size = config(part_size_parameter); - GtkListStore *device_list = widgets->DevicesList; - GtkListStore *part_list=widgets->PartitionsList; - GtkWidget *device_tree=NULL; - GtkWidget *part_tree=NULL; - switch (page){ - case YON_PAGE_INSTALL_COMMON:{ - device_tree = widgets->CommonInstallationDevicesTree; - } break; - - case YON_PAGE_INSTALL_SEPARATE:{ - device_tree = widgets->InstallationNearSysDevicesTree; - part_tree = widgets->InstallationNearSysSectionTree; - if (!yon_char_is_empty(part_size)){ - gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),atof(part_size)); - if (part_size[strlen(part_size)-1]=='M') gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin),0); - if (part_size[strlen(part_size)-1]=='G') gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin),1); - if (part_size[strlen(part_size)-1]=='T') gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin),2); - } - if (format&&!strcmp(format,"yes")) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck),1); - else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck),main_config.format_default); - if (!yon_char_is_empty(fs_type)) - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->NextInstallationFilesystemTypeCombo),fs_type); - if (device_label) - gtk_entry_set_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry),device_label); - else - gtk_entry_set_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry),""); - - } break; - - case YON_PAGE_INSTALL_SAME_PARTITION:{ - device_tree = widgets->SamePlaceDeviceTree; - part_tree = widgets->SamePlacePartTree; - if (!yon_char_is_empty(fs_type)) - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->SameInstallationFilesystemTypeCombo),fs_type); - if (format&&!strcmp(format,"yes")) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck),1); - else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck),main_config.format_default); - if (device_label) - gtk_entry_set_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry),device_label); - else - gtk_entry_set_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry),""); - - } break; - case YON_PAGE_OPTIONS_GRUB_INSTALL:{ - device_tree = widgets->GrubInstallDevicesTree; - } break; - - case YON_PAGE_OPTIONS_GRUB_UPDATE:{ - device_tree = widgets->GrubUpdateDevicesTree; - } break; - - case YON_PAGE_OPTIONS_SEPARATE:{ - GtkTreeIter iter; - device_tree = widgets->SeparateDevicesTree; - part_tree = widgets->SeparateSysSectionTree; - for_iter(GTK_TREE_MODEL(device_list),&iter){ - char *cur_device; - gtk_tree_model_get(GTK_TREE_MODEL(device_list),&iter, 0,&cur_device,-1); - if (!strcmp(cur_device,device)){ - gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(device_tree)),&iter); - break; - } - } - on_near_installation_device_changed(device_tree,widgets); - for_iter(GTK_TREE_MODEL(part_list),&iter){ - char *cur_part; - gtk_tree_model_get(GTK_TREE_MODEL(device_list),&iter, 0,&cur_part,-1); - if (!strcmp(cur_part,part)){ - gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&iter); - } - } - } break; - - case YON_PAGE_OPTIONS_OS_ONLY:{ - device_tree = widgets->OSDevicesTree; - part_tree = widgets->OSSysSectionTree; - } break; - - case YON_PAGE_OPTIONS_USRDATA_ONLY:{ - device_tree = widgets->UserdataDevicesTree; - part_tree = widgets->UserdataSysSectionTree; - } break; - - default:{}break; - } - GtkTreeIter iter; - char *cur_device=""; - if (page!=YON_PAGE_OPTIONS_SEPARATE && !yon_char_is_empty(device)){ - for_iter (widgets->DevicesList,&iter){ - gtk_tree_model_get(GTK_TREE_MODEL(widgets->DevicesList),&iter,0,&cur_device,-1); - if (!strcmp(device,cur_device)){ - gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(device_tree)),&iter); - break; - } - } - on_near_installation_device_changed(device_tree,widgets); - if (!yon_char_is_empty(part)){ - for_iter (widgets->PartitionsList,&iter){ - gtk_tree_model_get(GTK_TREE_MODEL(widgets->PartitionsList),&iter,0,&part,-1); - if (!strcmp(device,cur_device)){ - gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&iter); - break; - } - } - } - } - char *system_locale = config(locale_parameter); - if (!yon_char_is_empty(system_locale)){ - char *chosen_langs = ""; - for_iter(widgets->LanguagesList,&iter){ - char *cur=NULL, *render = NULL; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&render,2,&cur,-1); - if (strstr(system_locale,cur)){ - gtk_list_store_set((widgets->LanguagesList),&iter,0,1,-1); - chosen_langs = yon_char_unite(chosen_langs,!yon_char_is_empty(chosen_langs)?";":"",render,NULL); - } else { - gtk_list_store_set((widgets->LanguagesList),&iter,0,0,-1); - } - } - if (!yon_char_is_empty(chosen_langs)){ - gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),chosen_langs); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),1); - free(chosen_langs); - } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0); - gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); - } - } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0); - gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0); - int langsize; - config_str lang = default_langs(&langsize); - for_iter(widgets->LanguagesList,&iter){ - char *cur=NULL; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,2,&cur,-1); - if (lang&&yon_char_parsed_check_exist(lang,langsize,cur)>-1){ - gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1); - } else { - gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1); - } - if (cur) free(cur); - } - if (langsize) yon_char_parsed_free(lang,langsize); - } - char *zone = config(zone_parameter); - char *region = NULL; - - if (!yon_char_is_empty(zone)) region = yon_char_divide_search(zone,"/",-1); else {gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck),0);} - if (!yon_char_is_empty(region)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region); - } else { - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),"Europe"); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck),0); - } - if (!yon_char_is_empty(zone)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),zone); - } else { - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),"Moscow"); - } - char *language = config(lang_parameter); - if (!yon_char_is_empty(language)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguageCombo),language); - } else { - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->MainLanguageSensitiveCheck),0); - } - char *kbmodel = config (xkbmodel_parameter); - char *optinos = config(xkboptions_parameter); - char *layout = config(xkblayout_parameter); - if (!yon_char_is_empty(kbmodel)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->KeyboardModelCombo),kbmodel); - } else { - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo),0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->KeyboardModelSensitiveCheck),0); - - } - if (!yon_char_is_empty(optinos)){ - gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LayoutBindingCombo),optinos); - } else { - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LayoutBindingCombo),0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OptionsSensitiveCheck),0); - } - if (!yon_char_is_empty(layout)){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio),1); - for_iter(widgets->LayoutList,&iter){ - char *cur=NULL; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutList),&iter,0,&cur,-1); - if (strstr(layout,cur)){ - gtk_tree_store_set(widgets->LayoutList,&iter,3,1,-1); - } else { - gtk_tree_store_set(widgets->LayoutList,&iter,3,0,-1); - } - } - } else { - for_iter(widgets->LayoutList,&iter){ - char *id; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutList),&iter,0,&id,-1); - if (!strcmp(id,"ru")||!strcmp(id,"us")){ - gtk_tree_store_set(widgets->LayoutList,&iter,3,1,-1); - } else { - gtk_tree_store_set((widgets->LayoutList),&iter,3,0,-1); - } - } - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck),0); - } - char *user_name = config(user_name_parameter); - char *user_gecos = config(user_gecos_parameter); - char *user_password = config(user_password_parameter); - char *root_password = config(root_password_parameter); - char *autologin = config(autologin_parameter); - char *hostname = config(hostname_parameter); - if (!yon_char_is_empty(user_name)){ - if (!strcmp(user_name,"root")){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UserRootOnlyCheck),1); - } else { - gtk_entry_set_text(GTK_ENTRY(widgets->LoginEntry),user_name); - } - } else { - gtk_entry_set_text(GTK_ENTRY(widgets->LoginEntry),""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LoginSensitiveCheck),0); - } - if (!yon_char_is_empty(user_gecos)){ - gtk_entry_set_text(GTK_ENTRY(widgets->UserNameEntry),_(user_gecos)); - } else { - gtk_entry_set_text(GTK_ENTRY(widgets->UserNameEntry),""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UsernameSensitiveCheck),0); - } - int def_size=0; - config_str default_password = NULL; - if (!getuid()){ - default_password = yon_config_load(yon_debug_output("%s\n",get_default_password_command), &def_size); - if (def_size>0&&default_password){ - yon_char_remove_last_symbol(default_password[0],'\n'); - } - } - if ((def_size>0&&!strcmp(default_password[0],user_password))||yon_char_is_empty(user_password)){ - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->PasswordCombo),0); - gtk_entry_set_text(GTK_ENTRY(widgets->PasswordEntry),""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->PasswordSensitiveCheck),0); - - } else if (!yon_char_is_empty(user_password)){ - gtk_entry_set_text(GTK_ENTRY(widgets->PasswordEntry),user_password); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->PasswordCombo),1); - } - if ((def_size>0&&!strcmp(default_password[0],user_password))||yon_char_is_empty(user_password)){ - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->AdminPasswordCombo),0); - gtk_entry_set_text(GTK_ENTRY(widgets->AdminPasswordEntry),""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RootPasswordSensitiveCheck),0); - - } else if (!yon_char_is_empty(root_password)){ - gtk_entry_set_text(GTK_ENTRY(widgets->AdminPasswordEntry),root_password); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->AdminPasswordCombo),1); - } - if (!yon_char_is_empty(autologin)){ - if (!strcmp(autologin,"yes")) - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck),1); - else - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck),0); - } else { - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck),main_config.autologin_default); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinSensitiveCheck),0); - } - if (!yon_char_is_empty(hostname)){ - if (strcmp(hostname,"auto")){ - gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),hostname); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),0); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1); - } else{ - gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),""); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),1); - } - } else { - gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),""); - g_signal_handlers_block_by_func(G_OBJECT(widgets->AutoHostnameCheck),on_autohostname_check,widgets); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),1); - g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AutoHostnameCheck),on_autohostname_check,widgets); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),0); - } -} - -void on_config_local_load(GtkWidget *,main_window *widgets); -void on_config_local_load(GtkWidget *,main_window *widgets){ - yon_load_proceed(YON_CONFIG_LOCAL); - yon_interface_update(widgets); - main_config.load_mode=1; -} - -void on_config_global_load(GtkWidget *,main_window *); -void on_config_global_load(GtkWidget *,main_window *widgets){ - yon_load_proceed(YON_CONFIG_GLOBAL); - yon_interface_update(widgets); - main_config.load_mode=0; -} - -void on_config_custom_load(GtkWidget *,main_window *); -void on_config_custom_load(GtkWidget *,main_window *widgets){ - yon_load_proceed(YON_CONFIG_CUSTOM); - yon_interface_update(widgets); - main_config.load_mode=3; -} - -void on_config_global_local_save(GtkWidget *,main_window *widgets); -void on_config_global_local_save(GtkWidget *,main_window *widgets){ - yon_save_proceed(NULL,YON_CONFIG_BOTH); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETED); -} - -void on_config_local_save(GtkWidget *,main_window *widgets); -void on_config_local_save(GtkWidget *,main_window *widgets){ - yon_save_proceed("system",YON_CONFIG_LOCAL); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETED); - -} - -void on_config_global_save(GtkWidget *,main_window *widgets); -void on_config_global_save(GtkWidget *,main_window *widgets){ - yon_save_proceed("global",YON_CONFIG_GLOBAL); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETED); - -} - -void on_config_custom_save(GtkWidget *, main_window *widgets); -void on_config_custom_save(GtkWidget *, main_window *widgets){ - char *path = NULL; - GtkWidget *dialog = gtk_file_chooser_dialog_new(TITLE_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,SAVE_LABEL,GTK_RESPONSE_ACCEPT,NULL); - textdomain(TITLE_LABEL); - GtkFileFilter *filter = gtk_file_filter_new(); - gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",LocaleName)); - gtk_file_filter_add_pattern(filter,"*.ini"); - gtk_file_filter_set_name(filter, "*.ini"); - gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter); - int response = gtk_dialog_run(GTK_DIALOG(dialog)); - if (response == GTK_RESPONSE_ACCEPT){ - char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); - if (!yon_char_is_empty(file)){ - if (!strstr(file,".ini")) file = yon_char_append(file,".ini"); - if (access(file,0)!=F_OK){ - char *command_creation = ubconfig_file_create(file); - int a = system(yon_debug_output("%s\n",command_creation)); - if (access(file,0)!=F_OK||a){ - yon_ubl_status_box_render(CUSTOM_CONFIG_CREATION_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); - return; - } - } - } - path = yon_char_unite("'",file,"'",NULL); - free(file); - gtk_widget_destroy(dialog); - } else { - gtk_widget_destroy(dialog); - return; - } - yon_save_proceed(path,YON_CONFIG_CUSTOM); - if (path) free(path); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETED); -} - -void yon_open_browser(GtkWidget *, char *link); -void yon_open_browser(GtkWidget *, char *link){ - GtkWidget *window = yon_ubl_browser_window_open(link,TITLE_LABEL); - if (window) - gtk_window_set_icon_name(GTK_WINDOW(window),yon_char_append("com.ublinux.",LocaleName)); -} - -void on_open_documentation_confirmation(GtkWidget *self, char *link); -void on_open_documentation_confirmation(GtkWidget *self, char *link){ - if (main_config.always_open_documentation==0){ - GtkBuilder *builder = gtk_builder_new_from_resource(ui_glade_path_documentation); - documentation_confirmation_window *window = malloc(sizeof(documentation_confirmation_window)); - window->Window = yon_gtk_builder_get_widget(builder,"helpConfirmationWindow"); - window->AcceptButton = yon_gtk_builder_get_widget(builder,"ReadHelpButton"); - window->CloseButton = yon_gtk_builder_get_widget(builder,"CancelHelpButton"); - window->HeaderLabel = yon_gtk_builder_get_widget(builder,"webHeaderNameLabel"); - window->AlwaysOpenCheck = yon_gtk_builder_get_widget(builder,"AlwaysOpenDocumentationCheckbox"); - gtk_label_set_text(GTK_LABEL(window->HeaderLabel),TITLE_LABEL); - gtk_widget_show_all(window->Window); - g_signal_connect(G_OBJECT(window->CloseButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); - g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(yon_open_browser),yon_char_new(link)); - g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); - - - } else { - yon_open_browser(self,link); - } -} - -void on_link(GtkWidget *self, char* uri); -void on_link(GtkWidget *self, char* uri){ - gtk_widget_destroy(self); - on_open_documentation_confirmation(self,uri); -} - -void on_about(GtkWidget *); -void on_about(GtkWidget *){ - GtkBuilder *builder=gtk_builder_new_from_resource(ui_glade_path_about); - GtkWidget *window=yon_gtk_builder_get_widget(builder,"AboutWindow"); - GtkWidget *title=yon_gtk_builder_get_widget(builder,"headerAboutTopic"); - GtkWidget *hideButtonBox=yon_gtk_builder_get_widget(builder,"buttonBoxHide"); - gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(window),version_application); - gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(window),TITLE_LABEL); - gtk_about_dialog_set_logo_icon_name(GTK_ABOUT_DIALOG(window),yon_char_append("com.ublinux.",LocaleName)); - gtk_window_set_icon_name(GTK_WINDOW(window),yon_char_append("com.ublinux.",LocaleName)); - gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(window),LocaleName); - gtk_label_set_text(GTK_LABEL(title),TITLE_LABEL); - g_signal_connect(G_OBJECT(window),"activate-link",G_CALLBACK(on_link),WIKI_LINK); - gtk_widget_set_visible(hideButtonBox,0); - gtk_widget_destroy(hideButtonBox); - gtk_widget_show(window); -} - -double yon_size_long_convert_automatic(unsigned long bytes, char *size); -double yon_size_long_convert_automatic(unsigned long bytes, char *size){ - int repeats; - double byte_float=bytes; - for (repeats=-1;byte_float>1024;repeats++){ - byte_float=byte_float/1024; - } - if (repeats==-1) { - repeats=0; - byte_float=byte_float/1024; - } - switch(repeats){ - case 0: (*size)='K'; - break; - case 1: (*size)='M'; - break; - case 2: (*size)='G'; - break; - case 3: (*size)='T'; - break; - } - return byte_float; -} - -// standard functions - -void on_keyboard_accept(GtkWidget *self,main_window *widgets); -void on_keyboard_accept(GtkWidget *self,main_window *widgets){ - gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter)); - on_subwindow_close(self); -} - -void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window); -void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window){ - GtkTreeModel *model = gtk_tree_view_get_model(GTK_TREE_VIEW(window->LayoutsTree)); - GtkTreeIter iter; - if (gtk_tree_model_get_iter_from_string(model,&iter,path)){ - int status=0; - gtk_tree_model_get(model,&iter,3,&status,-1); - gtk_tree_store_set(GTK_TREE_STORE(model),&iter,3,!status,-1); - } -} - -ubinstall_keyboard_window *yon_ubinstall_keyboard_new(){ - ubinstall_keyboard_window *window = malloc(sizeof(ubinstall_keyboard_window)); - GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_keyboard); - window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow"); - window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); - window->headerBar=yon_gtk_builder_get_widget(builder,"headerBar"); - window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); - window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton"); - window->LayoutsTree=yon_gtk_builder_get_widget(builder,"LayoutsTree"); - window->ActiveToggle = GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ActiveToggle")); - - g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); - -return window; -} - -void on_keyboard_clicked (GtkWidget *, main_window *widgets); -void on_keyboard_clicked (GtkWidget *, main_window *widgets){ - ubinstall_keyboard_window *window = yon_ubinstall_keyboard_new(); - yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),KEYBOARD_TITLE_LABEL,icon_path,"keyboard-window"); - gtk_tree_view_set_model(GTK_TREE_VIEW(window->LayoutsTree),GTK_TREE_MODEL(widgets->LayoutList)); - - 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 on_keyboard_removed(GtkWidget *, main_window *widgets); -void on_keyboard_removed(GtkWidget *, main_window *widgets){ - GtkTreeModel *model; - GtkTreeIter iter, childiter; - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LayoutTree)),&model,&iter)){ - gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),&childiter,&iter); - gtk_tree_store_set(widgets->LayoutList,&childiter,3,0,-1); - } -} - -void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window); -void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window){ - GtkTreeIter iter; - int state; - - if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(window->liststore1),&iter,path)){ - gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&state,-1); - gtk_list_store_set(window->liststore1,&iter,0,!state,-1); - } -} - -void on_language_window_accept(GtkWidget *,dictionary *dict); -void on_language_window_accept(GtkWidget *,dictionary *dict){ - main_window *widgets= yon_dictionary_get_data(dict->first,main_window*); - ubinstall_language_window *window = yon_dictionary_get_data(dict->first->next,ubinstall_language_window*); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->DefaultCheck))){ - gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); - GtkTreeIter iter; - int size; - config_str lang_parsed = default_langs(&size); - - char *final = ""; - for_iter(widgets->LanguagesList,&iter){ - char *code, *labl; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&labl,2,&code,-1); - if (yon_char_parsed_check_exist(lang_parsed,size,code)!=-1){ - gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1); - char *tmp = yon_char_unite(final,!yon_char_is_empty(final)?";":"",labl,NULL); - if (!yon_char_is_empty(final)) free(final); - final = tmp; - } else - gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1); - } - if (!yon_char_is_empty(final)){ - gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),final); - } - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguagesCombo),-1); - gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter)); - } else { - yon_gtk_list_store_copy_full(widgets->LanguagesList,window->liststore1); - gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter)); - config_str parsed = NULL; - int size; - GtkTreeIter iter; - for_iter(GTK_TREE_MODEL(window->liststore1),&iter){ - char *current; - int status; - gtk_tree_model_get(GTK_TREE_MODEL(window->liststore1),&iter,0,&status,1,¤t,-1); - if (status) - yon_char_parsed_add_or_create_if_exists(parsed,&size,current); - } - if (parsed){ - char *final = yon_char_parsed_to_string(parsed,size,"; "); - gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),!yon_char_is_empty(final)?final:""); - if (yon_char_is_empty(final)) { - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguagesCombo),-1); - } - if (final) free(final); - yon_char_parsed_free(parsed,size); - } else - gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); - - } - on_subwindow_close(window->MainWindow); - free(window); -} - -ubinstall_language_window *yon_ubinstall_language_new(){ - ubinstall_language_window *window = malloc(sizeof(ubinstall_language_window)); - GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_ubinstall_language); - window->liststore1=GTK_LIST_STORE(gtk_builder_get_object(builder,"liststore1")); - window->MainWindow=yon_gtk_builder_get_widget(builder,"MainWindow"); - window->StatusBox=yon_gtk_builder_get_widget(builder,"StatusBox"); - window->DefaultCheck=yon_gtk_builder_get_widget(builder,"DefaultCheck"); - window->LanguagesTree=yon_gtk_builder_get_widget(builder,"LanguagesTree"); - window->headerBar=yon_gtk_builder_get_widget(builder,"headerBar"); - window->CancelButton=yon_gtk_builder_get_widget(builder,"CancelButton"); - window->SaveButton=yon_gtk_builder_get_widget(builder,"SaveButton"); - window->ToggleRenderer=GTK_CELL_RENDERER(gtk_builder_get_object(builder,"ToggleRenderer")); - - g_signal_connect(G_OBJECT(window->DefaultCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),window->LanguagesTree); - g_signal_connect(G_OBJECT(window->ToggleRenderer),"toggled",G_CALLBACK(yon_language_selection_changed),window); - g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); -return window; -} - -void on_language_clicked(GtkWidget *, main_window *widgets); -void on_language_clicked(GtkWidget *, main_window *widgets){ - ubinstall_language_window *window = yon_ubinstall_language_new(); - g_object_ref(G_OBJECT(window->liststore1)); - gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),NULL); - yon_gtk_list_store_copy_full(window->liststore1,widgets->LanguagesList); - gtk_tree_view_set_model(GTK_TREE_VIEW(window->LanguagesTree),GTK_TREE_MODEL(window->liststore1)); - yon_gtk_window_setup(GTK_WINDOW(window->MainWindow),GTK_WINDOW(widgets->MainWindow),TITLE_LABEL,icon_path,"language-chooser-window"); - - if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AvailableLanguagesEntry)))){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1); - } - - int size; - int found=0; - int statusfound=0; - config_str langs = default_langs(&size); - GtkTreeIter iter; - for_iter(widgets->LanguagesList,&iter){ - char *cur; - int status; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,0,&status,2,&cur,-1); - if (status){ - statusfound++; - if (yon_char_parsed_check_exist(langs,size,cur)>-1) - found++; - } - } - if ((found==size)&&statusfound==size){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1); - } - - dictionary *dict=NULL; - yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); - yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); - g_signal_connect(G_OBJECT(window->SaveButton),"clicked",G_CALLBACK(on_language_window_accept),dict); - gtk_widget_show(window->MainWindow); - -} - -/**config_init() - * [EN] - * - * [RU] - * Функция инициализации всех параметров конфигурации -*/ -void config_init(){ - main_config.always_open_documentation=0; - main_config.socket_id=-1; - main_config.save_socket_id=-1; - main_config.load_socket_id=-1; - main_config.lock_help=0; - main_config.lock_help=0; - main_config.lock_load_global=0; - main_config.lock_save_global=0; - main_config.lock_save_local=0; - main_config.debug_mode=0; - main_config.slider_thread=0; - main_config.install_thread=0; - main_config.progress_thread=0; - main_config.install_complete=0; - main_config.save_done=0; - main_config.save_configured=0; - main_config.configure_mode=0; - main_config.load_mode=-1; - main_config.log_progress_buzy=0; - main_config.log_end=0; - main_config.exit_accepted=0; -} - -void on_root_get_root(char *argline); -void on_root_get_root(char *argline){ - yon_launch(argline); -} - -void on_configuration_mode_switch(GtkWidget *self,main_window *widgets); -void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){ - if (getuid()) { - if (main_config.configure_mode==1){ - char *argline = LocaleName; - for (int i=1;iMainWindow); - } - } - } - main_config.configure_mode = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(self)); -} - -int cur_slide=0; - -int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled); -int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled){ - int width = gtk_widget_get_allocated_width((gtk_widget_get_parent(GTK_WIDGET(target)))); - int height = gtk_widget_get_allocated_height((gtk_widget_get_parent(GTK_WIDGET(target)))); - - int newImgWidthDef = (width <= 217) ? width : width - 30; - int newImgHeightDef = (height <= 120) ? height : height - 80; - - int originalWidth = gdk_pixbuf_get_width(pixbuf_unscaled); - int originalHeight = gdk_pixbuf_get_height(pixbuf_unscaled); - int newImgHeight = (int)(originalHeight / ((double) originalWidth / newImgWidthDef)); - - if (newImgHeight > newImgHeightDef) { - newImgHeight = newImgHeightDef; - newImgWidthDef = (int)(originalWidth / ((double) originalHeight / newImgHeight)); - } - int newImageWidth = (int)(originalWidth / ((double) originalHeight / newImgHeight)); - - GdkPixbuf *scaledPixBuf = gdk_pixbuf_scale_simple(pixbuf_unscaled, newImageWidth, newImgHeight, GDK_INTERP_BILINEAR); - gtk_image_set_from_pixbuf(target, scaledPixBuf); - - g_object_unref(scaledPixBuf); - - return 1; -} - -void on_region_resized(GtkWidget *,main_window *widgets); -void on_region_resized(GtkWidget *,main_window *widgets){ - yon_image_resize_from_container(GTK_IMAGE(widgets->SlidesImage), (GdkPixbuf*)g_list_nth_data(widgets->slides_original,cur_slide)); - yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original); - yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original); -} - -void yon_switch_page_render(main_window *widgets, int page); -void yon_switch_page_render(main_window *widgets, int page){ - if (widgets&&page){}; - GtkContainer *parent = GTK_CONTAINER(gtk_widget_get_parent(widgets->UsersToggle)); - GList *list = gtk_container_get_children(parent); - for (guint i=0;iSlidesImage),(GdkPixbuf*)g_list_nth_data(widgets->slides_original,cur_slide)); - // gtk_widget_queue_draw(widgets->SlidesImage); - if (cur_slideInstallationLabel), current_copy); - gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress), fraction / 100); - gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->PackageInstallationProgress), 0); - gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel), ""); - } else { - gtk_widget_show(gtk_widget_get_parent(widgets->PackageInstallationProgress)); - - config_str parsed = yon_char_parse(current_copy, &size, " "); - if (size >= 3) { - double fraction = atof(parsed[2]) / 100; - gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->PackageInstallationProgress), fraction); - gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel), yon_char_parsed_to_string(parsed, size, " ")); - } - } - - } - yon_char_parsed_free(text, size); - } - - g_mutex_lock(&main_config.install_mutex); - if (main_config.install_thread) { - g_mutex_unlock(&main_config.install_mutex); - return 1; - } else { - g_mutex_unlock(&main_config.install_mutex); - gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel), ""); - return 0; - } -} - -void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets); -void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){ - if (widgets){}; +// void yon_load_proceed(YON_CONFIG_TYPE type){ +// yon_config_clean(); +// if (!yon_char_is_empty(config_get_default_command)) +// yon_config_load_config(YON_CONFIG_DEFAULT,yon_debug_output("%s\n",config_get_default_command),NULL); +// if (type==YON_CONFIG_GLOBAL){ +// yon_config_load_config(type,yon_debug_output("%s\n",config_get_global_command),NULL); +// } else if (type==YON_CONFIG_LOCAL){ +// yon_config_load_config(type,yon_debug_output("%s\n",config_get_local_command),NULL); +// } else if (type==YON_CONFIG_CUSTOM){ +// char *path=""; +// GtkWidget *dialog = gtk_file_chooser_dialog_new(TITLE_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,OPEN_LABEL,GTK_RESPONSE_ACCEPT,NULL); +// yon_gtk_window_setup(GTK_WINDOW(dialog),NULL,TITLE_LABEL,icon_path,"FileChooserWindow"); +// textdomain(LocaleName); +// gtk_window_set_icon_name(GTK_WINDOW(dialog),"com.ublinux.ubinstall"); +// gtk_window_set_title(GTK_WINDOW(dialog),TITLE_LABEL); +// GtkFileFilter *filter = gtk_file_filter_new(); +// gtk_file_filter_add_pattern(filter,"*.ini"); +// gtk_file_filter_set_name(filter, "*.ini"); +// gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter); +// gtk_widget_show(dialog); +// int response = gtk_dialog_run(GTK_DIALOG(dialog)); +// if (response == GTK_RESPONSE_ACCEPT){ +// char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); +// if (!yon_char_is_empty(file)){ +// path=yon_char_unite("'",file,"'",NULL); +// free(file); +// } +// gtk_widget_destroy(dialog); +// } else { +// gtk_widget_destroy(dialog); +// } +// yon_config_load_config(type,yon_debug_output("%s\n",yon_config_get_custom_command(path)),NULL); +// if (path) free(path); +// } +// } + +// void yon_interface_update(main_window *widgets){ +// if (widgets){}; +// enum YON_PAGES page=YON_PAGE_COMPLETED; +// char *type = config(AUTOINSTALL_TYPE_INSTALL); +// if (!yon_char_is_empty(type)){ +// if (!strcmp(type,"fast")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio),1); +// page = YON_PAGE_INSTALL_COMMON; +// } else if (!strcmp(type,"next")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationNearRadio),1); +// page = YON_PAGE_INSTALL_SEPARATE; +// } else if (!strcmp(type,"part")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio),1); +// page = YON_PAGE_INSTALL_SAME_PARTITION; +// } else if (!strcmp(type,"grub_install")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->GrubInstallRadio),1); +// page = YON_PAGE_OPTIONS_GRUB_INSTALL; +// } else if (!strcmp(type,"grub_update")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->GrubUpdateRadio),1); +// page = YON_PAGE_OPTIONS_GRUB_UPDATE; +// } else if (!strcmp(type,"system_only")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OSRadio),1); +// page = YON_PAGE_OPTIONS_OS_ONLY; +// } else if (!strcmp(type,"data_only")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio),1); +// page = YON_PAGE_OPTIONS_USRDATA_ONLY; +// } else if (!strcmp(type,"custom")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio),1); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->SeparateRadio),1); +// page = YON_PAGE_OPTIONS_SEPARATE; +// } +// } +// char *device = config(AUTOINSTALL_DEVICE); +// char *part = NULL; +// if (page!=YON_PAGE_INSTALL_COMMON) +// part = config(part_parameter); +// char *fs_type = config(part_type_parameter); +// char *device_label = config(device_label_parameter); +// char *format = config(device_format_parameter); +// char *part_size = config(part_size_parameter); +// GtkListStore *device_list = widgets->DevicesList; +// GtkListStore *part_list=widgets->PartitionsList; +// GtkWidget *device_tree=NULL; +// GtkWidget *part_tree=NULL; +// switch (page){ +// case YON_PAGE_INSTALL_COMMON:{ +// device_tree = widgets->CommonInstallationDevicesTree; +// } break; +// +// case YON_PAGE_INSTALL_SEPARATE:{ +// device_tree = widgets->InstallationNearSysDevicesTree; +// part_tree = widgets->InstallationNearSysSectionTree; +// if (!yon_char_is_empty(part_size)){ +// gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),atof(part_size)); +// if (part_size[strlen(part_size)-1]=='M') gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin),0); +// if (part_size[strlen(part_size)-1]=='G') gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin),1); +// if (part_size[strlen(part_size)-1]=='T') gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin),2); +// } +// if (format&&!strcmp(format,"yes")) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck),1); +// else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck),main_config.format_default); +// if (!yon_char_is_empty(fs_type)) +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->NextInstallationFilesystemTypeCombo),fs_type); +// if (device_label) +// gtk_entry_set_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry),device_label); +// else +// gtk_entry_set_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry),""); +// +// } break; +// +// case YON_PAGE_INSTALL_SAME_PARTITION:{ +// device_tree = widgets->SamePlaceDeviceTree; +// part_tree = widgets->SamePlacePartTree; +// if (!yon_char_is_empty(fs_type)) +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->SameInstallationFilesystemTypeCombo),fs_type); +// if (format&&!strcmp(format,"yes")) gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck),1); +// else gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck),main_config.format_default); +// if (device_label) +// gtk_entry_set_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry),device_label); +// else +// gtk_entry_set_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry),""); +// +// } break; +// case YON_PAGE_OPTIONS_GRUB_INSTALL:{ +// device_tree = widgets->GrubInstallDevicesTree; +// } break; +// +// case YON_PAGE_OPTIONS_GRUB_UPDATE:{ +// device_tree = widgets->GrubUpdateDevicesTree; +// } break; +// +// case YON_PAGE_OPTIONS_SEPARATE:{ +// GtkTreeIter iter; +// device_tree = widgets->SeparateDevicesTree; +// part_tree = widgets->SeparateSysSectionTree; +// for_iter(GTK_TREE_MODEL(device_list),&iter){ +// char *cur_device; +// gtk_tree_model_get(GTK_TREE_MODEL(device_list),&iter, 0,&cur_device,-1); +// if (!strcmp(cur_device,device)){ +// gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(device_tree)),&iter); +// break; +// } +// } +// on_near_installation_device_changed(device_tree,widgets); +// for_iter(GTK_TREE_MODEL(part_list),&iter){ +// char *cur_part; +// gtk_tree_model_get(GTK_TREE_MODEL(device_list),&iter, 0,&cur_part,-1); +// if (!strcmp(cur_part,part)){ +// gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&iter); +// } +// } +// } break; +// +// case YON_PAGE_OPTIONS_OS_ONLY:{ +// device_tree = widgets->OSDevicesTree; +// part_tree = widgets->OSSysSectionTree; +// } break; +// +// case YON_PAGE_OPTIONS_USRDATA_ONLY:{ +// device_tree = widgets->UserdataDevicesTree; +// part_tree = widgets->UserdataSysSectionTree; +// } break; +// +// default:{}break; +// } +// GtkTreeIter iter; +// char *cur_device=""; +// if (page!=YON_PAGE_OPTIONS_SEPARATE && !yon_char_is_empty(device)){ +// for_iter (widgets->DevicesList,&iter){ +// gtk_tree_model_get(GTK_TREE_MODEL(widgets->DevicesList),&iter,0,&cur_device,-1); +// if (!strcmp(device,cur_device)){ +// gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(device_tree)),&iter); +// break; +// } +// } +// on_near_installation_device_changed(device_tree,widgets); +// if (!yon_char_is_empty(part)){ +// for_iter (widgets->PartitionsList,&iter){ +// gtk_tree_model_get(GTK_TREE_MODEL(widgets->PartitionsList),&iter,0,&part,-1); +// if (!strcmp(device,cur_device)){ +// gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&iter); +// break; +// } +// } +// } +// } +// char *system_locale = config(locale_parameter); +// if (!yon_char_is_empty(system_locale)){ +// char *chosen_langs = ""; +// for_iter(widgets->LanguagesList,&iter){ +// char *cur=NULL, *render = NULL; +// gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&render,2,&cur,-1); +// if (strstr(system_locale,cur)){ +// gtk_list_store_set((widgets->LanguagesList),&iter,0,1,-1); +// chosen_langs = yon_char_unite(chosen_langs,!yon_char_is_empty(chosen_langs)?";":"",render,NULL); +// } else { +// gtk_list_store_set((widgets->LanguagesList),&iter,0,0,-1); +// } +// } +// if (!yon_char_is_empty(chosen_langs)){ +// gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),chosen_langs); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),1); +// free(chosen_langs); +// } else { +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0); +// gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); +// } +// } else { +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0); +// gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),""); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0); +// int langsize; +// config_str lang = default_langs(&langsize); +// for_iter(widgets->LanguagesList,&iter){ +// char *cur=NULL; +// gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,2,&cur,-1); +// if (lang&&yon_char_parsed_check_exist(lang,langsize,cur)>-1){ +// gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1); +// } else { +// gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1); +// } +// if (cur) free(cur); +// } +// if (langsize) yon_char_parsed_free(lang,langsize); +// } +// char *zone = config(zone_parameter); +// char *region = NULL; +// +// if (!yon_char_is_empty(zone)) region = yon_char_divide_search(zone,"/",-1); else {gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck),0);} +// if (!yon_char_is_empty(region)){ +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),region); +// } else { +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->RegionCombo),"Europe"); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck),0); +// } +// if (!yon_char_is_empty(zone)){ +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),zone); +// } else { +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->ZoneCombo),"Moscow"); +// } +// char *language = config(lang_parameter); +// if (!yon_char_is_empty(language)){ +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguageCombo),language); +// } else { +// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->MainLanguageSensitiveCheck),0); +// } +// char *kbmodel = config (xkbmodel_parameter); +// char *optinos = config(xkboptions_parameter); +// char *layout = config(xkblayout_parameter); +// if (!yon_char_is_empty(kbmodel)){ +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->KeyboardModelCombo),kbmodel); +// } else { +// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo),0); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->KeyboardModelSensitiveCheck),0); +// +// } +// if (!yon_char_is_empty(optinos)){ +// gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LayoutBindingCombo),optinos); +// } else { +// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LayoutBindingCombo),0); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OptionsSensitiveCheck),0); +// } +// if (!yon_char_is_empty(layout)){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio),1); +// for_iter(widgets->LayoutList,&iter){ +// char *cur=NULL; +// gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutList),&iter,0,&cur,-1); +// if (strstr(layout,cur)){ +// gtk_tree_store_set(widgets->LayoutList,&iter,3,1,-1); +// } else { +// gtk_tree_store_set(widgets->LayoutList,&iter,3,0,-1); +// } +// } +// } else { +// for_iter(widgets->LayoutList,&iter){ +// char *id; +// gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutList),&iter,0,&id,-1); +// if (!strcmp(id,"ru")||!strcmp(id,"us")){ +// gtk_tree_store_set(widgets->LayoutList,&iter,3,1,-1); +// } else { +// gtk_tree_store_set((widgets->LayoutList),&iter,3,0,-1); +// } +// } +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck),0); +// } +// char *user_name = config(user_name_parameter); +// char *user_gecos = config(user_gecos_parameter); +// char *user_password = config(user_password_parameter); +// char *root_password = config(root_password_parameter); +// char *autologin = config(autologin_parameter); +// char *hostname = config(hostname_parameter); +// if (!yon_char_is_empty(user_name)){ +// if (!strcmp(user_name,"root")){ +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UserRootOnlyCheck),1); +// } else { +// gtk_entry_set_text(GTK_ENTRY(widgets->LoginEntry),user_name); +// } +// } else { +// gtk_entry_set_text(GTK_ENTRY(widgets->LoginEntry),""); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LoginSensitiveCheck),0); +// } +// if (!yon_char_is_empty(user_gecos)){ +// gtk_entry_set_text(GTK_ENTRY(widgets->UserNameEntry),_(user_gecos)); +// } else { +// gtk_entry_set_text(GTK_ENTRY(widgets->UserNameEntry),""); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->UsernameSensitiveCheck),0); +// } +// int def_size=0; +// config_str default_password = NULL; +// if (!getuid()){ +// default_password = yon_config_load(yon_debug_output("%s\n",get_default_password_command), &def_size); +// if (def_size>0&&default_password){ +// yon_char_remove_last_symbol(default_password[0],'\n'); +// } +// } +// if ((def_size>0&&!strcmp(default_password[0],user_password))||yon_char_is_empty(user_password)){ +// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->PasswordCombo),0); +// gtk_entry_set_text(GTK_ENTRY(widgets->PasswordEntry),""); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->PasswordSensitiveCheck),0); +// +// } else if (!yon_char_is_empty(user_password)){ +// gtk_entry_set_text(GTK_ENTRY(widgets->PasswordEntry),user_password); +// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->PasswordCombo),1); +// } +// if ((def_size>0&&!strcmp(default_password[0],user_password))||yon_char_is_empty(user_password)){ +// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->AdminPasswordCombo),0); +// gtk_entry_set_text(GTK_ENTRY(widgets->AdminPasswordEntry),""); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->RootPasswordSensitiveCheck),0); +// +// } else if (!yon_char_is_empty(root_password)){ +// gtk_entry_set_text(GTK_ENTRY(widgets->AdminPasswordEntry),root_password); +// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->AdminPasswordCombo),1); +// } +// if (!yon_char_is_empty(autologin)){ +// if (!strcmp(autologin,"yes")) +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck),1); +// else +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck),0); +// } else { +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck),main_config.autologin_default); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutologinSensitiveCheck),0); +// } +// if (!yon_char_is_empty(hostname)){ +// if (strcmp(hostname,"auto")){ +// gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),hostname); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),0); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),1); +// } else{ +// gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),""); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),1); +// } +// } else { +// gtk_entry_set_text(GTK_ENTRY(widgets->HotnameEntry),""); +// g_signal_handlers_block_by_func(G_OBJECT(widgets->AutoHostnameCheck),on_autohostname_check,widgets); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck),1); +// g_signal_handlers_unblock_by_func(G_OBJECT(widgets->AutoHostnameCheck),on_autohostname_check,widgets); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck),0); +// } +// } + +// void on_config_local_load(GtkWidget *,main_window *widgets){ +// yon_load_proceed(YON_CONFIG_LOCAL); +// yon_interface_update(widgets); +// main_config.load_mode=1; +// } + +// void on_config_global_load(GtkWidget *,main_window *widgets){ +// yon_load_proceed(YON_CONFIG_GLOBAL); +// yon_interface_update(widgets); +// main_config.load_mode=0; +// } + +// void on_config_custom_load(GtkWidget *,main_window *widgets){ +// yon_load_proceed(YON_CONFIG_CUSTOM); +// yon_interface_update(widgets); +// main_config.load_mode=3; +// } + +// void on_config_global_local_save(GtkWidget *,main_window *widgets){ +// yon_save_proceed(NULL,YON_CONFIG_BOTH); +// gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETED); +// } + +// void on_config_local_save(GtkWidget *,main_window *widgets){ +// yon_save_proceed("system",YON_CONFIG_LOCAL); +// gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETED); +// +// } + +// void on_config_global_save(GtkWidget *,main_window *widgets){ +// yon_save_proceed("global",YON_CONFIG_GLOBAL); +// gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETED); +// +// } + +// void on_config_custom_save(GtkWidget *, main_window *widgets){ +// char *path = NULL; +// GtkWidget *dialog = gtk_file_chooser_dialog_new(TITLE_LABEL,NULL,GTK_FILE_CHOOSER_ACTION_SAVE,CANCEL_LABEL,GTK_RESPONSE_CANCEL,SAVE_LABEL,GTK_RESPONSE_ACCEPT,NULL); +// textdomain(TITLE_LABEL); +// GtkFileFilter *filter = gtk_file_filter_new(); +// gtk_window_set_icon_name(GTK_WINDOW(dialog),yon_char_append("com.ublinux.",LocaleName)); +// gtk_file_filter_add_pattern(filter,"*.ini"); +// gtk_file_filter_set_name(filter, "*.ini"); +// gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter); +// int response = gtk_dialog_run(GTK_DIALOG(dialog)); +// if (response == GTK_RESPONSE_ACCEPT){ +// char *file = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); +// if (!yon_char_is_empty(file)){ +// if (!strstr(file,".ini")) file = yon_char_append(file,".ini"); +// if (access(file,0)!=F_OK){ +// char *command_creation = ubconfig_file_create(file); +// int a = system(yon_debug_output("%s\n",command_creation)); +// if (access(file,0)!=F_OK||a){ +// yon_ubl_status_box_render(CUSTOM_CONFIG_CREATION_ERROR_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); +// return; +// } +// } +// } +// path = yon_char_unite("'",file,"'",NULL); +// free(file); +// gtk_widget_destroy(dialog); +// } else { +// gtk_widget_destroy(dialog); +// return; +// } +// yon_save_proceed(path,YON_CONFIG_CUSTOM); +// if (path) free(path); +// gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETED); +// } +// +// void yon_open_browser(GtkWidget *, char *link); +// void yon_open_browser(GtkWidget *, char *link){ +// GtkWidget *window = yon_ubl_browser_window_open(link,TITLE_LABEL); +// if (window) +// gtk_window_set_icon_name(GTK_WINDOW(window),yon_char_append("com.ublinux.",LocaleName)); +// } + +// void on_open_documentation_confirmation(GtkWidget *self, char *link); +// void on_open_documentation_confirmation(GtkWidget *self, char *link){ +// if (main_config.always_open_documentation==0){ +// GtkBuilder *builder = gtk_builder_new_from_resource(ui_glade_path_documentation); +// documentation_confirmation_window *window = malloc(sizeof(documentation_confirmation_window)); +// window->Window = yon_gtk_builder_get_widget(builder,"helpConfirmationWindow"); +// window->AcceptButton = yon_gtk_builder_get_widget(builder,"ReadHelpButton"); +// window->CloseButton = yon_gtk_builder_get_widget(builder,"CancelHelpButton"); +// window->HeaderLabel = yon_gtk_builder_get_widget(builder,"webHeaderNameLabel"); +// window->AlwaysOpenCheck = yon_gtk_builder_get_widget(builder,"AlwaysOpenDocumentationCheckbox"); +// gtk_label_set_text(GTK_LABEL(window->HeaderLabel),TITLE_LABEL); +// gtk_widget_show_all(window->Window); +// g_signal_connect(G_OBJECT(window->CloseButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); +// g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(yon_open_browser),yon_char_new(link)); +// g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); +// +// +// } else { +// yon_open_browser(self,link); +// } +// } + +// void on_link(GtkWidget *self, char* uri); +// void on_link(GtkWidget *self, char* uri){ +// gtk_widget_destroy(self); +// on_open_documentation_confirmation(self,uri); +// } + +// void on_about(GtkWidget *); +// void on_about(GtkWidget *){ +// GtkBuilder *builder=gtk_builder_new_from_resource(ui_glade_path_about); +// GtkWidget *window=yon_gtk_builder_get_widget(builder,"AboutWindow"); +// GtkWidget *title=yon_gtk_builder_get_widget(builder,"headerAboutTopic"); +// GtkWidget *hideButtonBox=yon_gtk_builder_get_widget(builder,"buttonBoxHide"); +// gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(window),version_application); +// gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(window),TITLE_LABEL); +// gtk_about_dialog_set_logo_icon_name(GTK_ABOUT_DIALOG(window),yon_char_append("com.ublinux.",LocaleName)); +// gtk_window_set_icon_name(GTK_WINDOW(window),yon_char_append("com.ublinux.",LocaleName)); +// gtk_about_dialog_set_program_name(GTK_ABOUT_DIALOG(window),LocaleName); +// gtk_label_set_text(GTK_LABEL(title),TITLE_LABEL); +// g_signal_connect(G_OBJECT(window),"activate-link",G_CALLBACK(on_link),WIKI_LINK); +// gtk_widget_set_visible(hideButtonBox,0); +// gtk_widget_destroy(hideButtonBox); +// gtk_widget_show(window); +// } + +// double yon_size_long_convert_automatic(unsigned long bytes, char *size){ +// int repeats; +// double byte_float=bytes; +// for (repeats=-1;byte_float>1024;repeats++){ +// byte_float=byte_float/1024; +// } +// if (repeats==-1) { +// repeats=0; +// byte_float=byte_float/1024; +// } +// switch(repeats){ +// case 0: (*size)='K'; +// break; +// case 1: (*size)='M'; +// break; +// case 2: (*size)='G'; +// break; +// case 3: (*size)='T'; +// break; +// } +// return byte_float; +// } + +// // standard functions +// /**config_init() +// * [EN] +// * +// * [RU] +// * Функция инициализации всех параметров конфигурации +// */ +// void config_init(){ +// main_config.always_open_documentation=0; +// main_config.socket_id=-1; +// main_config.save_socket_id=-1; +// main_config.load_socket_id=-1; +// main_config.lock_help=0; +// main_config.lock_help=0; +// main_config.lock_load_global=0; +// main_config.lock_save_global=0; +// main_config.lock_save_local=0; +// main_config.debug_mode=0; +// main_config.slider_thread=0; +// main_config.install_thread=0; +// main_config.progress_thread=0; +// main_config.install_complete=0; +// main_config.save_done=0; +// main_config.save_configured=0; +// main_config.configure_mode=0; +// main_config.load_mode=-1; +// main_config.log_progress_buzy=0; +// main_config.log_end=0; +// main_config.exit_accepted=0; +// } + +// void on_root_get_root(char *argline){ +// yon_launch(argline); +// } + +// void on_configuration_mode_switch(GtkWidget *self,main_window *widgets){ +// if (getuid()) { +// if (main_config.configure_mode==1){ +// char *argline = LocaleName; +// for (int i=1;iMainWindow); +// } +// } +// } +// main_config.configure_mode = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(self)); +// } + +// int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled){ +// int width = gtk_widget_get_allocated_width((gtk_widget_get_parent(GTK_WIDGET(target)))); +// int height = gtk_widget_get_allocated_height((gtk_widget_get_parent(GTK_WIDGET(target)))); +// +// int newImgWidthDef = (width <= 217) ? width : width - 30; +// int newImgHeightDef = (height <= 120) ? height : height - 80; +// +// int originalWidth = gdk_pixbuf_get_width(pixbuf_unscaled); +// int originalHeight = gdk_pixbuf_get_height(pixbuf_unscaled); +// int newImgHeight = (int)(originalHeight / ((double) originalWidth / newImgWidthDef)); +// +// if (newImgHeight > newImgHeightDef) { +// newImgHeight = newImgHeightDef; +// newImgWidthDef = (int)(originalWidth / ((double) originalHeight / newImgHeight)); +// } +// int newImageWidth = (int)(originalWidth / ((double) originalHeight / newImgHeight)); +// +// GdkPixbuf *scaledPixBuf = gdk_pixbuf_scale_simple(pixbuf_unscaled, newImageWidth, newImgHeight, GDK_INTERP_BILINEAR); +// gtk_image_set_from_pixbuf(target, scaledPixBuf); +// +// g_object_unref(scaledPixBuf); +// +// return 1; +// } + +// void on_region_resized(GtkWidget *,main_window *widgets){ +// yon_image_resize_from_container(GTK_IMAGE(widgets->SlidesImage), (GdkPixbuf*)g_list_nth_data(widgets->slides_original,cur_slide)); +// yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original); +// yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original); +// } + +void yon_switch_page_render(main_window *widgets){ + + enum YON_PAGES page = yon_page_get_current(GTK_NOTEBOOK(widgets->Notebook)); switch(page){ - case YON_PAGE_WELCOME: { - gtk_widget_hide(widgets->SaveButton); - gtk_widget_set_sensitive(widgets->CancelInstallButton,0); - gtk_widget_set_sensitive(widgets->BackButton,0); - gtk_widget_set_sensitive(widgets->NextButton,1); - textdomain(LocaleName); - gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_LABEL); - gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),CANCEL_LABEL); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))),"com.ublinux.ubinstall-gtk.arrow-right-symbolic",GTK_ICON_SIZE_BUTTON); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->CancelInstallButton))),"com.ublinux.ubinstall-gtk.circle-exit-symbolic",GTK_ICON_SIZE_BUTTON); - gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,1); - yon_switch_page_render(widgets,0); - } break; - - case YON_PAGE_LICENCE:{ - gtk_widget_set_sensitive(widgets->CancelInstallButton,1); - gtk_widget_set_sensitive(widgets->BackButton,1); - yon_switch_page_render(widgets,1); - } break; - - case YON_PAGE_REGION: { - yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original); - yon_switch_page_render(widgets,4); - } break; - - case YON_PAGE_KEYBOARD: { - - yon_switch_page_render(widgets,5); - yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original); - } break; - - case YON_PAGE_OS_COMPONENTS: - case YON_PAGE_SOFTWARE: - case YON_PAGE_INSTALLATION_BEGIN: - yon_switch_page_render(widgets,3); - - break; - case YON_PAGE_INSTALLATION:{ - yon_switch_page_render(widgets,3); - gtk_widget_set_sensitive(widgets->BackButton,0); - if ((!main_config.configure_mode)) - gtk_widget_set_sensitive(widgets->CancelInstallButton,0); - if (!main_config.progress_thread&&!main_config.configure_mode) - main_config.progress_thread = gdk_threads_add_timeout(500,(GSourceFunc)yon_installation_progress_update,widgets); - - if (!main_config.slider_thread&&!main_config.configure_mode) - main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets); - gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress)); - } break; - - case YON_PAGE_USERS: - yon_switch_page_render(widgets,6); - gtk_widget_set_sensitive(widgets->NextButton,1); - gtk_widget_hide(widgets->SaveButton); + case YON_PAGE_WELCOME: + page = 0; break; - - case YON_PAGE_INSTALL_ERROR:{ - on_summary_log_view((GtkWidget*)NULL,widgets); - - yon_switch_page_render(widgets,7); - gtk_widget_set_sensitive(widgets->BackButton,0); - gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); - gtk_widget_hide(widgets->InstallationLabel); - gtk_widget_hide(widgets->PackageInstallationLabel); - gtk_widget_set_sensitive(widgets->NextButton,1); - gtk_widget_set_sensitive(widgets->CancelInstallButton,1); - g_mutex_lock(&main_config.install_mutex); - main_config.install_complete=0; - g_mutex_unlock(&main_config.install_mutex); - main_config.save_done=0; - textdomain(LocaleName); - gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL); - gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))), - "com.ublinux.ubinstall-gtk.sync-symbolic",GTK_ICON_SIZE_BUTTON); - - } break; - case YON_PAGE_COMPLETION:{ - yon_switch_page_render(widgets,7); - gtk_widget_set_sensitive(widgets->BackButton,0); - gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); - gtk_widget_hide(widgets->InstallationLabel); - gtk_widget_hide(widgets->PackageInstallationLabel); - gtk_widget_set_sensitive(widgets->NextButton,1); - gtk_widget_set_sensitive(widgets->CancelInstallButton,1); - g_mutex_lock(&main_config.install_mutex); - main_config.install_complete=0; - g_mutex_unlock(&main_config.install_mutex); - main_config.save_done=0; - textdomain(LocaleName); - gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL); - gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))), - "com.ublinux.ubinstall-gtk.sync-symbolic",GTK_ICON_SIZE_BUTTON); - } - gtk_widget_hide(gtk_widget_get_parent(widgets->InstallationProgress)); - gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); + case YON_PAGE_LICENCE: + page = 1; break; - - case YON_PAGE_COMPLETED:{ - yon_switch_page_render(widgets,7); - gtk_widget_set_sensitive(widgets->BackButton,1); - gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); - gtk_widget_hide(widgets->InstallationLabel); - gtk_widget_hide(widgets->PackageInstallationLabel); - gtk_widget_set_sensitive(widgets->NextButton,0); - gtk_widget_set_sensitive(widgets->CancelInstallButton,1); - g_mutex_lock(&main_config.install_mutex); - main_config.install_complete=0; - g_mutex_unlock(&main_config.install_mutex); - main_config.save_done=0; - textdomain(LocaleName); - gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); - gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))), - "com.ublinux.ubinstall-gtk.sync-symbolic",GTK_ICON_SIZE_BUTTON); - - }break; - case YON_PAGE_SECTIONS: + case YON_PAGE_OS_COMPONENTS: case YON_PAGE_INSTALL_COMMON: - case YON_PAGE_INSTALL_SEPARATE: case YON_PAGE_INSTALL_SAME_PARTITION: - case YON_PAGE_INSTALL_OPTIONS: - case YON_PAGE_OPTIONS_GRUB_INSTALL: - case YON_PAGE_OPTIONS_GRUB_UPDATE: - case YON_PAGE_OPTIONS_SEPARATE: - case YON_PAGE_OPTIONS_SEPARATE_USRDATA: - case YON_PAGE_OPTIONS_OS_ONLY: - case YON_PAGE_OPTIONS_USRDATA_ONLY: { - yon_switch_page_render(widgets,2); - } break; - case YON_PAGE_CONFIGURE_END: { - gtk_widget_set_sensitive(widgets->BackButton,1); - gtk_widget_set_sensitive(widgets->NextButton,0); - gtk_widget_set_sensitive(widgets->CancelInstallButton,1); - gtk_widget_show(widgets->SaveButton); - } + case YON_PAGE_INSTALL_SEPARATE: + case YON_PAGE_INSTALL_ADVANCED: + case YON_PAGE_INSTALL_RECOVERY: + case YON_PAGE_INSTALLATION_BEGIN: + case YON_PAGE_KERNEL: + case YON_PAGE_SOFTWARE: + case YON_PAGE_RECOVERY_GRUB_INSTALL: + case YON_PAGE_RECOVERY_GRUB_UPDATE: + case YON_PAGE_RECOVERY_OS_ONLY: + case YON_PAGE_RECOVERY_USRDATA_ONLY: + page = 2; + break; + case YON_PAGE_REGION: + page = 3; + break; + case YON_PAGE_KEYBOARD: + page = 4; + break; + case YON_PAGE_USERS: + page = 5; + break; + case YON_PAGE_BOOTLOADER: + case YON_PAGE_STARTUP: + case YON_PAGE_NETWORK: + page = 6; + break; + case YON_PAGE_INSTALLATION: + page = 7; + break; + case YON_PAGE_COMPLETED: + case YON_PAGE_COMPLETION: + case YON_PAGE_INSTALL_ERROR: + case YON_PAGE_CONFIGURE_END: + case YON_PAGE_CONFIGURE_SAVE: + page=8; + break; } -} - -gboolean on_install_success(main_window *widgets){ - gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),""); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETION); - - return 0; -} -gboolean on_install_error(main_window *widgets){ - gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),""); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_ERROR); - return 0; -} - -void *on_setup_system_configuration(void * data){ - yon_debug_output("%s\n","Entered thread"); - main_window *widgets = (main_window*)data; if (widgets){}; - int size; - config_str all_parameters = yon_config_get_selection_by_key(&size, - user_name_parameter, - user_gecos_parameter, - user_password_parameter, - root_password_parameter, - autologin_parameter, - xkbmodel_parameter, - xkblayout_parameter, - xkbvariant_parameter, - xkboptions_parameter, - hostname_parameter, - zone_parameter, - lang_parameter, - locale_parameter, - NULL); - if (all_parameters){ - char *parameter_string = yon_char_parsed_to_string(all_parameters,size," "); - char *command = set_user_config_command(parameter_string); - if (system(yon_debug_output("%s\n",command))){}; - yon_char_parsed_free(all_parameters,size); - free(command); - if (parameter_string) free(parameter_string); - } - g_idle_add((GSourceFunc)on_install_success,widgets); - return NULL; -} - -void on_log_closed(GtkWidget *, dictionary *dict); -void on_log_closed(GtkWidget *, dictionary *dict){ - main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); - log_window *window = yon_dictionary_get_data(dict->first->next,log_window*); - - gtk_widget_set_sensitive(widgets->ReadFullLogButton,1); - gtk_widget_set_sensitive(widgets->ReadShortLogButton,1); - - free(window->command); - window->Window=NULL; -} - -log_window *yon_log_window_new(); -log_window *yon_log_window_new(){ - log_window *window = malloc(sizeof(log_window)); - GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_log_view); - window->Window = yon_gtk_builder_get_widget(builder,"MainWindow"); - window->ScrollWindow = yon_gtk_builder_get_widget(builder,"ScrollWindow"); - window->HeadLabel = yon_gtk_builder_get_widget(builder,"headerTopic"); - window->LogLabel = yon_gtk_builder_get_widget(builder,"LogLabel"); - window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); - window->ScrollToEndCheck = yon_gtk_builder_get_widget(builder,"ScrollToEndCheck"); - gtk_widget_show(window->Window); - return window; -} - -gboolean yon_read_log(void *data); -gboolean yon_read_log(void *data){ - log_window *window = (log_window*)data; - if (window->Window){ - int size; - g_mutex_lock(&main_config.progress_mutex); - config_str parsed = yon_file_open(window->command,&size); - g_mutex_unlock(&main_config.progress_mutex); - if (size){ - char *final = yon_char_parsed_to_string(parsed,size,""); - gtk_label_set_text(GTK_LABEL(window->LogLabel),final); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){ - gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow)),gtk_adjustment_get_upper(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow)))); - } - free(final); - yon_char_parsed_free(parsed,size); - } - g_mutex_lock(&main_config.install_mutex); - if (!main_config.install_complete){ - g_mutex_unlock(&main_config.install_mutex); - return 1; - } else { - g_mutex_unlock(&main_config.install_mutex); - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck),0); - gtk_widget_set_sensitive(window->ScrollToEndCheck,0); - } - } -return 0; -} - -void on_process_log_view(GtkWidget *,main_window *widgets); -void on_process_log_view(GtkWidget *,main_window *widgets){ - log_window *window = yon_log_window_new(); - dictionary *dict=NULL; - yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); - yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); - g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_log_closed),dict); - gtk_widget_set_sensitive(widgets->ReadFullLogButton,0); - gtk_widget_set_sensitive(widgets->ReadShortLogButton,0); - yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,INSTALL_LOG_LABEL,icon_path,"log_viewer"); - window->command = yon_char_new(short_log_path); - gdk_threads_add_timeout(500,(GSourceFunc)yon_read_log,window); -} - -void on_summary_log_view(GtkWidget *,main_window *widgets){ - log_window *window = yon_log_window_new(); - dictionary *dict=NULL; - yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); - yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); - g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_log_closed),dict); - gtk_widget_set_sensitive(widgets->ReadFullLogButton,0); - gtk_widget_set_sensitive(widgets->ReadShortLogButton,0); - yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,PROGRESS_LOG_LABEL,icon_path,"log_viewer"); - window->command = yon_char_new(full_log_path); - gdk_threads_add_timeout(500,(GSourceFunc)yon_read_log,window); - -} - -void yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *mode,main_window *widgets); -void yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *mode,main_window *widgets){ - GtkTreeIter iter,itar; - GtkTreeModel *model,*model2; - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(device_tree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(device_tree)); - return; - } - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&model2,&itar)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(part_tree)); - return; - } - 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(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,mode); - yon_config_register(part_parameter,part_parameter_command,cur_section); - - if(cur_section) free(cur_section); - if(cur_device) free(cur_device); - if (!main_config.configure_mode) - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); - else - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION); -} - -void on_page_navigation_clicked(GtkWidget *self, main_window *widgets); -void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ - int mode = self==widgets->NextButton ? 1 : self == widgets->BackButton ? -1 : self==widgets->CancelInstallButton?-2:0; - int page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); - switch (mode){ - case 1: { // Next - switch (page){ - case YON_PAGE_WELCOME:{ - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_LICENCE); - gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,0); - } break; - - case YON_PAGE_SECTIONS:{ //sections - int active_id=-1; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio))) - active_id=0; - else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationNearRadio))) - active_id=1; - else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationLinuxRadio))) - active_id=2; - else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationWindowsRadio))) - active_id=3; - else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->InstallationRadio))) - active_id=4; - main_config.install_mode=active_id; - switch (active_id){ - case 0:{ // normal installation - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_COMMON); - } break; - case 1: - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_SEPARATE); - break; - case 2: - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_SAME_PARTITION); - break; - case 3: - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_OPTIONS); - } - }break; - case YON_PAGE_REGION:{ //region - gtk_widget_set_sensitive(widgets->BackButton,1); - if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->RegionCombo))==-1){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),REGION_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(widgets->RegionCombo); - return; - } else if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->ZoneCombo))==-1){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),ZONE_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(widgets->ZoneCombo); - return; - } - char *languages = ""; - GtkTreeIter iter; - GtkTreeModel *model = GTK_TREE_MODEL(widgets->LanguagesFilter); - char *lang_code=NULL; - for_iter(model,&iter){ - gtk_tree_model_get(model,&iter,2,&lang_code,-1); - languages = yon_char_unite(languages,!yon_char_is_empty(languages)?",":"",lang_code,NULL); - } - if (yon_char_is_empty(languages)||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->MainLanguageSensitiveCheck))){ - yon_config_remove_by_key(locale_parameter); - } else { - yon_config_register(locale_parameter,locale_parameter_command,languages); - free(languages); - } - if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->LanguagesCombo))==-1||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck))){ - yon_config_remove_by_key(lang_parameter); - } else { - char *language = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LanguagesCombo)); - yon_config_register(lang_parameter,lang_parameter_command,language); - } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RegionSensitiveCheck))){ - char *region = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->RegionCombo)); - char *zone = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ZoneCombo)); - yon_debug_output("%s",region); - yon_debug_output("/%s\n\n",zone); - yon_config_register(zone_parameter,zone_parameter_command,yon_char_unite(region,"/",zone,NULL)); - } else { - yon_config_remove_by_key(zone_parameter); - } - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1); - }break; - - case YON_PAGE_KEYBOARD: { //keyboard - gtk_widget_set_sensitive(widgets->BackButton,1); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))){ - GtkTreeIter iter; - if (!gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LayoutList),&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),LAYOUTS_CHOSEN_BUT_EMPTY_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(widgets->ManualLayoutRadio); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->LayoutTree)); - } - } - char *layouts_list=""; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->ManualLayoutRadio))&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck))){ - GtkTreeModel *layouts_model=GTK_TREE_MODEL(widgets->LayoutList); - GtkTreeIter iter; - char *cur_layout=NULL; - for_iter(layouts_model,&iter){ - int chosen=0; - gtk_tree_model_get(layouts_model,&iter,0,&cur_layout,3,&chosen,-1); - if (chosen) - layouts_list = yon_char_unite(layouts_list,yon_char_is_empty(layouts_list)?"":",",cur_layout,NULL); - } - } else { - yon_config_remove_by_key(xkblayout_parameter); - } - if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->KeyboardModelCombo))&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->KeyboardModelSensitiveCheck))){ - char *model = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->KeyboardModelCombo)); - // char *layout_switch; - if (!yon_char_is_empty(model)) - yon_config_register(xkbmodel_parameter,xkbmodel_parameter_command,model); - } else{ - yon_config_remove_by_key(xkbmodel_parameter); - } - if (yon_char_is_empty(layouts_list)&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck))) - yon_config_register(xkblayout_parameter,xkblayout_parameter_command,layouts_list); - else - yon_config_remove_by_key(xkblayout_parameter); - - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1); - } break; - - default:{ // all other pages - gtk_widget_set_sensitive(widgets->BackButton,1); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page+1); - }break; - - case YON_PAGE_INSTALL_COMMON: { - GtkTreeModel *model; - GtkTreeIter iter; - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->CommonInstallationDevicesTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); - return; - } - char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->CommonInstallationFilesystemTypeCombo)); - char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->CommonInstallationSectionNameEntry)); - char *device; - yon_config_remove_by_key(part_size_parameter); - 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); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->CommonSectionSensitiveCheck))){ - yon_config_register(device_label_parameter,device_label_parameter_command,device_name); - } else { - yon_config_remove_by_key(device_label_parameter); - } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->CommonFilesystemSensitiveCheck))){ - yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); - } else { - yon_config_remove_by_key(part_type_parameter); - } - - if (!main_config.configure_mode) - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); - else - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION); - }break; - - case YON_PAGE_INSTALL_SEPARATE: - { - GtkTreeModel *model; - GtkTreeIter iter; - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->InstallationNearSysDevicesTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); - return; - } - char *device; - gtk_tree_model_get(model,&iter,0,&device,-1); - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->InstallationNearSysSectionTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); - return; - } - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextSizeSensitiveCheck))){ - double part_size = gtk_spin_button_get_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)); - if (part_size){ - char *size_letter = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin)); - char *size_final = yon_char_append(yon_char_from_long((long)part_size),size_letter); - yon_config_register(part_size_parameter,part_size_parameter_command,size_final); - } else yon_config_remove_by_key(part_size_parameter); - } else yon_config_remove_by_key(part_size_parameter); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextLabelSensitiveCheck))){ - char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->NextInstallationSectionNameEntry)); - yon_config_register(device_label_parameter,device_label_parameter_command,device_name); - } else { - yon_config_remove_by_key(device_label_parameter); - } - char *part; - gtk_tree_model_get(model,&iter,0,&part,-1); - yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"next"); - yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,device); - yon_config_register(part_parameter,part_parameter_command,part); - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextFSTypeSensitiveCheck))){ - if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))){ - yon_config_register(device_format_parameter,device_format_parameter_command,"no"); - yon_config_remove_by_key(part_type_parameter); - } else { - char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->NextInstallationFilesystemTypeCombo)); - yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); - yon_config_remove_by_key(device_format_parameter); - } - if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->NextInstallationFormatCheck))) - yon_config_register(device_format_parameter,device_format_parameter_command,"no"); - } else { - yon_config_remove_by_key(part_type_parameter); - yon_config_remove_by_key(device_format_parameter); - } - if (!main_config.configure_mode) - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); - else - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION); - } - break; - - case YON_PAGE_INSTALL_SAME_PARTITION: - { - GtkTreeModel *model; - GtkTreeIter iter; - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlaceDeviceTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); - return; - } - char *device; - gtk_tree_model_get(model,&iter,0,&device,-1); - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlacePartTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->CommonInstallationDevicesTree)); - return; - } - yon_config_remove_by_key(part_size_parameter); - 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(part_parameter,part_parameter_command,part); - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameLabelSensitiveCheck))){ - char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry)); - yon_config_register(device_label_parameter,device_label_parameter_command,device_name); - } else { - yon_config_remove_by_key(device_label_parameter); - } - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameFSTypeSensitiveCheck))){ - if (!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SameInstallationFormatCheck))){ - yon_config_register(device_format_parameter,device_format_parameter_command,"no"); - yon_config_remove_by_key(part_type_parameter); - } else { - char *file_system_type = (char*)gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widgets->SameInstallationFilesystemTypeCombo)); - yon_config_register(part_type_parameter,part_type_parameter_command,file_system_type); - yon_config_remove_by_key(device_format_parameter); - } - } else { - yon_config_remove_by_key(device_format_parameter); - yon_config_remove_by_key(part_type_parameter); - - } - - if (!main_config.configure_mode) - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); - else - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION); - }break; - - case YON_PAGE_USERS:{ //users - - if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)))||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UsernameSensitiveCheck))){ - yon_config_remove_by_key(user_gecos_parameter); - } else { - char *username = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->UserNameEntry)); - if (username){}; - yon_config_register(user_gecos_parameter,user_gecos_parameter_command,username); - } - - if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->LoginEntry)))||!gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LoginSensitiveCheck))){ - yon_config_remove_by_key(user_name_parameter); - } else { - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserRootOnlyCheck))){ - yon_config_register(user_name_parameter,user_name_parameter_command,"root"); - } else { - char *login = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->LoginEntry)); - if (login){}; - yon_config_register(user_name_parameter,user_name_parameter_command,login); - } - } - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->PasswordSensitiveCheck))){ - if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->PasswordCombo))==1){ - if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->PasswordEntry)))){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(widgets->PasswordEntry); - return; - } else { - char *password = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->PasswordEntry)); - if (password){}; - - yon_config_register(user_password_parameter,user_password_parameter_command,password); - - } - } else { - yon_config_remove_by_key(user_password_parameter); - } - }else { - yon_config_remove_by_key(user_password_parameter); - - } - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->RootPasswordSensitiveCheck))){ - if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->AdminPasswordCombo))==1){ - if (yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->AdminPasswordEntry)))){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),EMPTY_IMPORTANT_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(widgets->AdminPasswordEntry); - return; - } else { - char *root_password = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->AdminPasswordEntry)); - if (root_password){}; - yon_config_register(root_password_parameter,root_password_parameter_command,root_password); - - } - } else { - yon_config_remove_by_key(root_password_parameter); - } - } else { - yon_config_remove_by_key(root_password_parameter); - } - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->HostnameSensitiveCheck))){ - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutoHostnameCheck))){ - yon_config_register(hostname_parameter,hostname_parameter_command,"auto"); - } else { - if (!yon_char_is_empty(gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry)))){ - char *hostname = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->HotnameEntry)); - if (hostname){}; - yon_config_register(hostname_parameter,hostname_parameter_command,hostname); - - } else { - yon_config_remove_by_key(hostname_parameter); - - } - } - } else { - yon_config_remove_by_key(hostname_parameter); - } - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutologinSensitiveCheck))){ - char *autologin = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->AutologinCheck))?"yes":"no"; - if (autologin){}; - yon_config_register(autologin_parameter,autologin_parameter_command,autologin); - } else { - yon_config_remove_by_key(autologin_parameter); - } - - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->LayoutSensitiveCheck))){ - GtkTreeIter iter; - if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->LayoutsFilter),&iter)){ - char *locales=""; - for_iter (GTK_TREE_MODEL(widgets->LayoutsFilter),&iter){ - char *id; - int status; - gtk_tree_model_get(GTK_TREE_MODEL(widgets->LayoutsFilter),&iter,0,&id,3,&status,-1); - if (status){ - char *temp = yon_char_unite(locales,!yon_char_is_empty(locales)?",":"",id,NULL); - locales=temp; - } - } - if (!yon_char_is_empty(locales)){ - printf("%s\n",locales); - yon_config_register(xkblayout_parameter,xkblayout_parameter_command,locales); - } else { - yon_config_remove_by_key(xkblayout_parameter); - } - } - } else { - yon_config_remove_by_key(xkblayout_parameter); - } - - if (gtk_combo_box_get_active(GTK_COMBO_BOX(widgets->LayoutBindingCombo))&>k_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OptionsSensitiveCheck))){ - char *options = (char*)gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LayoutBindingCombo)); - if (options){}; - yon_config_register(xkboptions_parameter,xkboptions_parameter_command,options); - } else { - yon_config_remove_by_key(xkboptions_parameter); - } - - if (!main_config.configure_mode){ - g_mutex_lock(&main_config.install_mutex); - if (main_config.install_complete){ - g_mutex_unlock(&main_config.install_mutex); - yon_debug_output("%s\n","Entered saving before installation done"); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION); - gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),CONFIGURATION_LABEL); - yon_debug_output("%s\n","installation ending configuration startup"); - pthread_t tid; - pthread_create(&tid,NULL,on_setup_system_configuration,widgets); - - gtk_widget_set_sensitive(widgets->CancelInstallButton,0); - gtk_widget_set_sensitive(widgets->NextButton,0); - gtk_widget_set_sensitive(widgets->BackButton,0); - main_config.save_done=1; - } - else if (!main_config.install_complete){ - g_mutex_unlock(&main_config.install_mutex); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION); - - gtk_widget_set_sensitive(widgets->CancelInstallButton,0); - gtk_widget_set_sensitive(widgets->NextButton,0); - gtk_widget_set_sensitive(widgets->BackButton,0); - main_config.save_configured=1; - } - } else { - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END); - } - }break; - - case YON_PAGE_INSTALLATION_BEGIN:{ - g_mutex_lock(&main_config.install_mutex); - if (!main_config.install_thread){ - pthread_attr_t attr; - pthread_attr_init(&attr); - pthread_t tid; - - pthread_create(&tid,&attr,on_config_save,widgets); - memcpy(&main_config.install_thread,&tid,sizeof(pthread_t)); - g_mutex_unlock(&main_config.install_mutex); - } - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION); - } break; - - case YON_PAGE_INSTALL_ERROR: - case YON_PAGE_COMPLETION:{ - confirmation_window *window = yon_confirmation_window_new(); - dictionary *dict = NULL; - yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); - yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); - g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_reboot_accepted),dict); - gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow)); - gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL); - gtk_window_set_icon_name(GTK_WINDOW(window->Window),icon_path); - gtk_label_set_text(GTK_LABEL(window->TextLabel),WARNING_REBOOT_TEXT_LABEL); - gtk_label_set_text(GTK_LABEL(window->TitleLabel),WARNING_TITLE_LABEL); - gtk_widget_show(window->Window); - } - break; - - case YON_PAGE_INSTALL_OPTIONS: { - int mode = -1; - if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubInstallRadio))){ - mode = 0; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubUpdateRadio))){ - mode = 1; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->SeparateRadio))){ - mode = 2; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSRadio))){ - mode = 3; - } else if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio))){ - mode = 4; - } - switch(mode){ - case 0: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_GRUB_INSTALL); - break; - case 1: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_GRUB_UPDATE); - break; - case 2: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_SEPARATE); - break; - case 3: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_OS_ONLY); - break; - case 4: gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_USRDATA_ONLY); - break; - } - } break; - - case YON_PAGE_OPTIONS_GRUB_INSTALL:{ - GtkTreeIter iter; - GtkTreeModel *model; - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubInstallDevicesTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubInstallDevicesTree)); - return; - } - char *cur_device; - gtk_tree_model_get(model,&iter,0,&cur_device,-1); - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubInstallPartitionTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubInstallPartitionTree)); - return; - } - char *partition; - gtk_tree_model_get(model,&iter,0,&partition,-1); - yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); - yon_config_register(part_parameter,part_parameter_command,partition); - yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_install"); - yon_config_remove_by_key(part_parameter); - if (!main_config.configure_mode) - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); - else - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END); - - } break; - - case YON_PAGE_OPTIONS_GRUB_UPDATE:{ - GtkTreeIter iter; - GtkTreeModel *model; - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubUpdateDevicesTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubUpdateDevicesTree)); - return; - } - char *cur_device; - gtk_tree_model_get(model,&iter,0,&cur_device,-1); - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GrubUpdatePartitionTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->GrubUpdatePartitionTree)); - return; - } - char *partition; - gtk_tree_model_get(model,&iter,0,&partition,-1); - yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); - yon_config_register(part_parameter,part_parameter_command,partition); - yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update"); - yon_config_remove_by_key(part_parameter); - if (!main_config.configure_mode) - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); - else - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END); - }break; - - case YON_PAGE_OPTIONS_SEPARATE:{ - GtkTreeModel *model; - GtkTreeIter iter; - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateDevicesTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->SeparateDevicesTree)); - return; - } - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateSysSectionTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->SeparateSysSectionTree)); - return; - } - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_SEPARATE_USRDATA); - }break; - - case YON_PAGE_OPTIONS_SEPARATE_USRDATA:{ - GtkTreeIter iter,itar; - GtkTreeModel *model,*model2; - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->OSSysSectionTree)),&model,&iter)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->OSSysSectionTree)); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_OPTIONS_OS_ONLY); - return; - } - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateUserDevicesTree)),&model2,&itar)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->SeparateUserDevicesTree)); - return; - } - if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateUserSysSectionTree)),&model2,&itar)){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(gtk_widget_get_parent(widgets->SeparateUserSysSectionTree)); - return; - } - char *cur_device, *system_section, *user_section; - gtk_tree_model_get(model,&iter,0,&cur_device,-1); - gtk_tree_model_get(model2,&itar,0,&system_section,-1); - - gtk_tree_model_get(model2,&itar,0,&user_section,-1); - yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); - char *installation_parts = yon_char_unite(system_section,",",user_section,NULL); - yon_config_register(part_parameter,part_parameter_command,installation_parts); - free(installation_parts); - yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"custom"); - if (!main_config.configure_mode) - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); - else - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_REGION); - - } break; - - case YON_PAGE_OPTIONS_OS_ONLY:{ - yon_install_options_save(widgets->OSDevicesTree,widgets->OSSysSectionTree,"system_only",widgets); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END); - } break; - - case YON_PAGE_OPTIONS_USRDATA_ONLY:{ - yon_install_options_save(widgets->UserdataDevicesTree,widgets->UserdataSysSectionTree,"data_only",widgets); - } break; - } - } break; - case -1: { // Previous - switch (page){ - case YON_PAGE_REGION: { - if (!main_config.configure_mode){ - gtk_widget_set_sensitive(widgets->BackButton,0); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1); - } else { - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_SECTIONS); - } - }break; - - case YON_PAGE_INSTALL_COMMON: - case YON_PAGE_INSTALL_SEPARATE: - case YON_PAGE_INSTALL_SAME_PARTITION: - case YON_PAGE_INSTALL_OPTIONS: - { - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_SECTIONS); - } break; - - case YON_PAGE_OPTIONS_GRUB_INSTALL: - case YON_PAGE_OPTIONS_GRUB_UPDATE: - case YON_PAGE_OPTIONS_SEPARATE: - case YON_PAGE_OPTIONS_OS_ONLY: - case YON_PAGE_OPTIONS_USRDATA_ONLY: - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_OPTIONS); - break; - - case YON_PAGE_INSTALLATION_BEGIN: - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_SECTIONS); - break; - - case YON_PAGE_CONFIGURE_END:{ - if (main_config.install_mode==3&&(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubInstallRadio))||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->GrubUpdateRadio))||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSRadio)))){ - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_OPTIONS); - gtk_widget_set_sensitive(widgets->BackButton,1); - gtk_widget_set_sensitive(widgets->NextButton,1); - gtk_widget_set_sensitive(widgets->CancelInstallButton,1); - - } else { //||||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio)) - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_USERS); - } - } break; - - case YON_PAGE_COMPLETED:{ - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_USERS); - } break; - - default:{ - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page-1); - } - } - - } break; - case -2: { // Cancel/repeat - switch (page){ - case YON_PAGE_COMPLETION: - case YON_PAGE_INSTALL_ERROR:{ - gtk_main_quit(); - }break; - default:{ - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),0); - } - } - }break; - } -} - -void on_region_changed(GtkComboBox *self, main_window *widgets); -void on_region_changed(GtkComboBox *self, main_window *widgets){ - char *active = (char*)gtk_combo_box_get_active_id(self); - active = yon_char_append("/usr/share/zoneinfo/",active); - int size; - gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo)); - if (yon_file_is_directory(active)){ - config_str parsed = yon_file_ls(active,&size); - for (int i=0;iZoneCombo),parsed[i],_(parsed[i])); - } - if (size) yon_char_parsed_free(parsed,size); - gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ZoneCombo),0); - } - free(active); -} - -void on_locale_changed(GtkWidget *,main_window *); -void on_locale_changed(GtkWidget *,main_window *){ - -} - -void on_additional_software_toggled(); -void on_additional_software_toggled(){ - -} - -void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_size, GtkComboBox *size_type); -void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_size, GtkComboBox *size_type){ - GtkTreeModel *model; - GtkTreeIter iter; - char *selected_size=NULL; - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(table),&model,&iter)){ - gtk_tree_model_get(model,&iter,2,&selected_size,-1); - if (yon_char_is_empty(selected_size)) - gtk_tree_model_get(model,&iter,1,&selected_size,-1); - if (!yon_char_is_empty(selected_size)){ - int size = gtk_combo_box_get_active(size_type); - double cur_size = atof(selected_size); - char cur_size_letter = selected_size[strlen(selected_size)-1]; - int cur_size_type=0; - switch (cur_size_letter){ - case 'M': - cur_size_type=0; - break; - case 'G': - cur_size_type=1; - break; - case 'T': - cur_size_type=2; - break; - } - if (size-cur_size_type>0){ - for (int i=0;iInstallationNearSysSectionTree) - yon_set_max_size_from_partition(GTK_TREE_VIEW(widgets->InstallationNearSysSectionTree),GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin)); - -} - -void on_separate_installation_changed(GtkWidget *self, main_window *widgets); -void on_separate_installation_changed(GtkWidget *self, main_window *widgets){ - - gtk_list_store_clear(widgets->PartitionsList); - GtkTreeIter iter; - GtkTreeModel *model; - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){ - gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateUserDevicesTree)),&iter); - char *disk_path=""; - gtk_tree_model_get(model,&iter,0,&disk_path,-1); - int size; - config_str parsed; - parsed = yon_config_load(yon_debug_output("%s\n",get_parts_and_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); - 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 *type, *path, *size, *model, *fstype, *fsused; - - json_object_object_get_ex(device, "type", &type); - if (strcmp("part",json_object_get_string(type))) - continue; - json_object_object_get_ex(device, "path", &path); - if (!strstr(json_object_get_string(path),disk_path)){ - continue; - } - json_object_object_get_ex(device, "size", &size); - json_object_object_get_ex(device, "model", &model); - json_object_object_get_ex(device, "fstype", &fstype); - json_object_object_get_ex(device, "fsused", &fsused); - - double free_space=0; - char *free_space_string=""; - if (size&&fsused){ - char *fsused_str = (char*)json_object_get_string(fsused); - double fsused_kbytes = atof(fsused_str); - for (int i=0;i1024;sz=sz+1){ - free_space=free_space/1024; - } - if (sz==-1) { - sz=0; - free_space=free_space/1024; - } - free_space_string = yon_char_append(yon_char_from_double(free_space)," "); - free_space_string[strlen(free_space_string)-1]=*(yon_size_get_mod(sz)); - } - gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0); - gtk_list_store_append(widgets->PartitionsList,&iter); - gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),-1); - } - yon_char_parsed_free(parsed,size); - } -} - -void on_near_installation_device_changed(GtkWidget *self, main_window *widgets){ - gtk_list_store_clear(widgets->PartitionsList); - GtkTreeIter iter; - GtkTreeModel *model; - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){ - char *disk_path=""; - gtk_tree_model_get(model,&iter,0,&disk_path,-1); - int size; - config_str parsed; - parsed = yon_config_load((get_parts_and_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); - 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 *type, *path, *size, *model, *fstype, *fsused, *label; - - json_object_object_get_ex(device, "type", &type); - if (strcmp("part",json_object_get_string(type))) - continue; - json_object_object_get_ex(device, "path", &path); - if (!strstr(json_object_get_string(path),disk_path)){ - continue; - } - json_object_object_get_ex(device, "size", &size); - json_object_object_get_ex(device, "model", &model); - json_object_object_get_ex(device, "label", &label); - json_object_object_get_ex(device, "fstype", &fstype); - json_object_object_get_ex(device, "fsused", &fsused); - - double free_space=0; - char *free_space_string=""; - if (size&&fsused){ - char *fsused_str = (char*)json_object_get_string(fsused); - double fsused_kbytes = atof(fsused_str); - for (int i=0;iUsersToggle)); + GList *list = gtk_container_get_children(parent); + for (guint i=0;i1024;sz=sz+1){ - free_space=free_space/1024; - } - if (sz==-1) { - sz=0; - free_space=free_space/1024; - } - free_space_string = yon_char_append(yon_char_from_double(free_space)," "); - free_space_string[strlen(free_space_string)-1]=*(yon_size_get_mod(sz)); - } - // gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),0.0); - gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0); - gtk_list_store_append(widgets->PartitionsList,&iter); - gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),4,json_object_get_string(label),-1); } - yon_char_parsed_free(parsed,size); } + g_list_free(list); } -void on_same_installation_device_changed(GtkWidget *, main_window *widgets); -void on_same_installation_device_changed(GtkWidget *, main_window *widgets){ - gtk_list_store_clear(widgets->PartitionsList); - GtkTreeIter iter; - GtkTreeModel *model; - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlaceDeviceTree)),&model,&iter)){ - char *disk_path=""; - gtk_tree_model_get(model,&iter,0,&disk_path,-1); - int size; - config_str parsed; - parsed = yon_config_load(yon_debug_output("%s\n",get_parts_and_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); - 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 *type, *path, *size, *model, *vendor, *serial; - - json_object_object_get_ex(device, "type", &type); - if (strcmp("part",json_object_get_string(type))) - continue; - json_object_object_get_ex(device, "path", &path); - if (!strstr(json_object_get_string(path),disk_path)){ - continue; - } - 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->PartitionsList,&iter); - gtk_list_store_set(widgets->PartitionsList,&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); - } +// gboolean on_image_slide(void *data){ +// main_window *widgets = (main_window*)data; +// int size; +// config_str target = yon_char_parsed_new(&size,slide_repeat_path); +// if (size) +// yon_char_parsed_free(target,size); +// gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),(GdkPixbuf*)g_list_nth_data(widgets->slides_original,cur_slide)); +// // gtk_widget_queue_draw(widgets->SlidesImage); +// if (cur_slideInstallationLabel), current_copy); +// gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->InstallationProgress), fraction / 100); +// gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->PackageInstallationProgress), 0); +// gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel), ""); +// } else { +// gtk_widget_show(gtk_widget_get_parent(widgets->PackageInstallationProgress)); +// +// config_str parsed = yon_char_parse(current_copy, &size, " "); +// if (size >= 3) { +// double fraction = atof(parsed[2]) / 100; +// gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(widgets->PackageInstallationProgress), fraction); +// gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel), yon_char_parsed_to_string(parsed, size, " ")); +// } +// } +// +// } +// yon_char_parsed_free(text, size); +// } +// +// g_mutex_lock(&main_config.install_mutex); +// if (main_config.install_thread) { +// g_mutex_unlock(&main_config.install_mutex); +// return 1; +// } else { +// g_mutex_unlock(&main_config.install_mutex); +// gtk_label_set_text(GTK_LABEL(widgets->PackageInstallationLabel), ""); +// return 0; +// } +// } + +// void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){ +// if (widgets){}; +// switch(page){ +// case YON_PAGE_WELCOME: { +// gtk_widget_hide(widgets->SaveButton); +// gtk_widget_set_sensitive(widgets->CancelInstallButton,0); +// gtk_widget_set_sensitive(widgets->BackButton,0); +// gtk_widget_set_sensitive(widgets->NextButton,1); +// textdomain(LocaleName); +// gtk_button_set_label(GTK_BUTTON(widgets->NextButton),NEXT_LABEL); +// gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),CANCEL_LABEL); +// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))),"com.ublinux.ubinstall-gtk.arrow-right-symbolic",GTK_ICON_SIZE_BUTTON); +// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->CancelInstallButton))),"com.ublinux.ubinstall-gtk.circle-exit-symbolic",GTK_ICON_SIZE_BUTTON); +// gtk_widget_set_sensitive(widgets->ConfigurationModeMenuItem,1); +// yon_switch_page_render(widgets,0); +// } break; +// +// case YON_PAGE_LICENCE:{ +// gtk_widget_set_sensitive(widgets->CancelInstallButton,1); +// gtk_widget_set_sensitive(widgets->BackButton,1); +// yon_switch_page_render(widgets,1); +// } break; +// +// case YON_PAGE_REGION: { +// yon_image_resize_from_container(GTK_IMAGE(widgets->RegionImage), widgets->regions_original); +// yon_switch_page_render(widgets,4); +// } break; +// +// case YON_PAGE_KEYBOARD: { +// +// yon_switch_page_render(widgets,5); +// yon_image_resize_from_container(GTK_IMAGE(widgets->KeyboardImage), widgets->keyboard_original); +// } break; +// +// case YON_PAGE_OS_COMPONENTS: +// case YON_PAGE_SOFTWARE: +// case YON_PAGE_INSTALLATION_BEGIN: +// yon_switch_page_render(widgets,3); +// +// break; +// case YON_PAGE_INSTALLATION:{ +// yon_switch_page_render(widgets,3); +// gtk_widget_set_sensitive(widgets->BackButton,0); +// if ((!main_config.configure_mode)) +// gtk_widget_set_sensitive(widgets->CancelInstallButton,0); +// if (!main_config.progress_thread&&!main_config.configure_mode) +// main_config.progress_thread = gdk_threads_add_timeout(500,(GSourceFunc)yon_installation_progress_update,widgets); +// +// if (!main_config.slider_thread&&!main_config.configure_mode) +// main_config.slider_thread = g_timeout_add(5000,(GSourceFunc)on_image_slide,widgets); +// gtk_widget_show(gtk_widget_get_parent(widgets->InstallationProgress)); +// } break; +// +// case YON_PAGE_USERS: +// yon_switch_page_render(widgets,6); +// gtk_widget_set_sensitive(widgets->NextButton,1); +// gtk_widget_hide(widgets->SaveButton); +// break; +// +// case YON_PAGE_INSTALL_ERROR:{ +// on_summary_log_view((GtkWidget*)NULL,widgets); +// +// yon_switch_page_render(widgets,7); +// gtk_widget_set_sensitive(widgets->BackButton,0); +// gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); +// gtk_widget_hide(widgets->InstallationLabel); +// gtk_widget_hide(widgets->PackageInstallationLabel); +// gtk_widget_set_sensitive(widgets->NextButton,1); +// gtk_widget_set_sensitive(widgets->CancelInstallButton,1); +// g_mutex_lock(&main_config.install_mutex); +// main_config.install_complete=0; +// g_mutex_unlock(&main_config.install_mutex); +// main_config.save_done=0; +// textdomain(LocaleName); +// gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL); +// gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); +// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))), +// "com.ublinux.ubinstall-gtk.sync-symbolic",GTK_ICON_SIZE_BUTTON); +// +// } break; +// case YON_PAGE_COMPLETION:{ +// yon_switch_page_render(widgets,7); +// gtk_widget_set_sensitive(widgets->BackButton,0); +// gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); +// gtk_widget_hide(widgets->InstallationLabel); +// gtk_widget_hide(widgets->PackageInstallationLabel); +// gtk_widget_set_sensitive(widgets->NextButton,1); +// gtk_widget_set_sensitive(widgets->CancelInstallButton,1); +// g_mutex_lock(&main_config.install_mutex); +// main_config.install_complete=0; +// g_mutex_unlock(&main_config.install_mutex); +// main_config.save_done=0; +// textdomain(LocaleName); +// gtk_button_set_label(GTK_BUTTON(widgets->NextButton),RESTART_LABEL); +// gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); +// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))), +// "com.ublinux.ubinstall-gtk.sync-symbolic",GTK_ICON_SIZE_BUTTON); +// } +// gtk_widget_hide(gtk_widget_get_parent(widgets->InstallationProgress)); +// gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); +// break; +// +// case YON_PAGE_COMPLETED:{ +// yon_switch_page_render(widgets,7); +// gtk_widget_set_sensitive(widgets->BackButton,1); +// gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); +// gtk_widget_hide(widgets->InstallationLabel); +// gtk_widget_hide(widgets->PackageInstallationLabel); +// gtk_widget_set_sensitive(widgets->NextButton,0); +// gtk_widget_set_sensitive(widgets->CancelInstallButton,1); +// g_mutex_lock(&main_config.install_mutex); +// main_config.install_complete=0; +// g_mutex_unlock(&main_config.install_mutex); +// main_config.save_done=0; +// textdomain(LocaleName); +// gtk_button_set_label(GTK_BUTTON(widgets->CancelInstallButton),EXIT_LABEL); +// gtk_image_set_from_icon_name(GTK_IMAGE(gtk_button_get_image(GTK_BUTTON(widgets->NextButton))), +// "com.ublinux.ubinstall-gtk.sync-symbolic",GTK_ICON_SIZE_BUTTON); +// +// }break; +// +// case YON_PAGE_SECTIONS: +// case YON_PAGE_INSTALL_COMMON: +// case YON_PAGE_INSTALL_SEPARATE: +// case YON_PAGE_INSTALL_SAME_PARTITION: +// case YON_PAGE_INSTALL_RECOVERY: +// case YON_PAGE_OPTIONS_GRUB_INSTALL: +// case YON_PAGE_OPTIONS_GRUB_UPDATE: +// case YON_PAGE_OPTIONS_SEPARATE: +// case YON_PAGE_OPTIONS_SEPARATE_USRDATA: +// case YON_PAGE_OPTIONS_OS_ONLY: +// case YON_PAGE_OPTIONS_USRDATA_ONLY: { +// yon_switch_page_render(widgets,2); +// } break; +// case YON_PAGE_CONFIGURE_END: { +// gtk_widget_set_sensitive(widgets->BackButton,1); +// gtk_widget_set_sensitive(widgets->NextButton,0); +// gtk_widget_set_sensitive(widgets->CancelInstallButton,1); +// gtk_widget_show(widgets->SaveButton); +// } +// } +// } + +// gboolean on_install_success(main_window *widgets){ +// gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),""); +// gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_COMPLETION); +// +// return 0; +// } + +// gboolean on_install_error(main_window *widgets){ +// gtk_label_set_text(GTK_LABEL(widgets->InstallationLabel),""); +// gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALL_ERROR); +// return 0; +// } + +// void *on_setup_system_configuration(void * data){ +// yon_debug_output("%s\n","Entered thread"); +// main_window *widgets = (main_window*)data; +// if (widgets){}; +// int size; +// config_str all_parameters = yon_config_get_selection_by_key(&size, +// user_name_parameter, +// user_gecos_parameter, +// user_password_parameter, +// root_password_parameter, +// autologin_parameter, +// xkbmodel_parameter, +// xkblayout_parameter, +// xkbvariant_parameter, +// xkboptions_parameter, +// hostname_parameter, +// zone_parameter, +// lang_parameter, +// locale_parameter, +// NULL); +// if (all_parameters){ +// char *parameter_string = yon_char_parsed_to_string(all_parameters,size," "); +// char *command = set_user_config_command(parameter_string); +// if (system(yon_debug_output("%s\n",command))){}; +// yon_char_parsed_free(all_parameters,size); +// free(command); +// if (parameter_string) free(parameter_string); +// } +// g_idle_add((GSourceFunc)on_install_success,widgets); +// return NULL; +// } + +// void on_log_closed(GtkWidget *, dictionary *dict){ +// main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); +// log_window *window = yon_dictionary_get_data(dict->first->next,log_window*); +// +// gtk_widget_set_sensitive(widgets->ReadFullLogButton,1); +// gtk_widget_set_sensitive(widgets->ReadShortLogButton,1); +// +// free(window->command); +// window->Window=NULL; +// } + +// log_window *yon_log_window_new(){ +// log_window *window = malloc(sizeof(log_window)); +// GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_log_view); +// window->Window = yon_gtk_builder_get_widget(builder,"MainWindow"); +// window->ScrollWindow = yon_gtk_builder_get_widget(builder,"ScrollWindow"); +// window->HeadLabel = yon_gtk_builder_get_widget(builder,"headerTopic"); +// window->LogLabel = yon_gtk_builder_get_widget(builder,"LogLabel"); +// window->StatusBox = yon_gtk_builder_get_widget(builder,"StatusBox"); +// window->ScrollToEndCheck = yon_gtk_builder_get_widget(builder,"ScrollToEndCheck"); +// gtk_widget_show(window->Window); +// return window; +// } + +// gboolean yon_read_log(void *data){ +// log_window *window = (log_window*)data; +// if (window->Window){ +// int size; +// g_mutex_lock(&main_config.progress_mutex); +// config_str parsed = yon_file_open(window->command,&size); +// g_mutex_unlock(&main_config.progress_mutex); +// if (size){ +// char *final = yon_char_parsed_to_string(parsed,size,""); +// gtk_label_set_text(GTK_LABEL(window->LogLabel),final); +// if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck))){ +// gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow)),gtk_adjustment_get_upper(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(window->ScrollWindow)))); +// } +// free(final); +// yon_char_parsed_free(parsed,size); +// } +// g_mutex_lock(&main_config.install_mutex); +// if (!main_config.install_complete){ +// g_mutex_unlock(&main_config.install_mutex); +// return 1; +// } else { +// g_mutex_unlock(&main_config.install_mutex); +// gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->ScrollToEndCheck),0); +// gtk_widget_set_sensitive(window->ScrollToEndCheck,0); +// } +// } +// return 0; +// } + +// void on_process_log_view(GtkWidget *,main_window *widgets){ +// log_window *window = yon_log_window_new(); +// dictionary *dict=NULL; +// yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); +// yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); +// g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_log_closed),dict); +// gtk_widget_set_sensitive(widgets->ReadFullLogButton,0); +// gtk_widget_set_sensitive(widgets->ReadShortLogButton,0); +// yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,INSTALL_LOG_LABEL,icon_path,"log_viewer"); +// window->command = yon_char_new(short_log_path); +// gdk_threads_add_timeout(500,(GSourceFunc)yon_read_log,window); +// } + +// void on_summary_log_view(GtkWidget *,main_window *widgets){ +// log_window *window = yon_log_window_new(); +// dictionary *dict=NULL; +// yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); +// yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); +// g_signal_connect(G_OBJECT(window->Window),"destroy",G_CALLBACK(on_log_closed),dict); +// gtk_widget_set_sensitive(widgets->ReadFullLogButton,0); +// gtk_widget_set_sensitive(widgets->ReadShortLogButton,0); +// yon_gtk_window_setup(GTK_WINDOW(window->Window),NULL,PROGRESS_LOG_LABEL,icon_path,"log_viewer"); +// window->command = yon_char_new(full_log_path); +// gdk_threads_add_timeout(500,(GSourceFunc)yon_read_log,window); +// +// } + + +// void on_region_changed(GtkComboBox *self, main_window *widgets){ +// char *active = (char*)gtk_combo_box_get_active_id(self); +// active = yon_char_append("/usr/share/zoneinfo/",active); +// int size; +// gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo)); +// if (yon_file_is_directory(active)){ +// config_str parsed = yon_file_ls(active,&size); +// for (int i=0;iZoneCombo),parsed[i],_(parsed[i])); +// } +// if (size) yon_char_parsed_free(parsed,size); +// gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ZoneCombo),0); +// } +// free(active); +// } + +// void on_locale_changed(GtkWidget *,main_window *){ +// +// } + +// void on_additional_software_toggled(){ +// +// } + +// void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_size, GtkComboBox *size_type){ +// GtkTreeModel *model; +// GtkTreeIter iter; +// char *selected_size=NULL; +// if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(table),&model,&iter)){ +// gtk_tree_model_get(model,&iter,2,&selected_size,-1); +// if (yon_char_is_empty(selected_size)) +// gtk_tree_model_get(model,&iter,1,&selected_size,-1); +// if (!yon_char_is_empty(selected_size)){ +// int size = gtk_combo_box_get_active(size_type); +// double cur_size = atof(selected_size); +// char cur_size_letter = selected_size[strlen(selected_size)-1]; +// int cur_size_type=0; +// switch (cur_size_letter){ +// case 'M': +// cur_size_type=0; +// break; +// case 'G': +// cur_size_type=1; +// break; +// case 'T': +// cur_size_type=2; +// break; +// } +// if (size-cur_size_type>0){ +// for (int i=0;iInstallationNearSysSectionTree) +// yon_set_max_size_from_partition(GTK_TREE_VIEW(widgets->InstallationNearSysSectionTree),GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),GTK_COMBO_BOX(widgets->InstallationNearSizeTypeSpin)); +// +// } + +// void on_separate_installation_changed(GtkWidget *self, main_window *widgets){ +// +// gtk_list_store_clear(widgets->PartitionsList); +// GtkTreeIter iter; +// GtkTreeModel *model; +// if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){ +// gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateUserDevicesTree)),&iter); +// char *disk_path=""; +// gtk_tree_model_get(model,&iter,0,&disk_path,-1); +// int size; +// config_str parsed; +// parsed = yon_config_load(yon_debug_output("%s\n",get_parts_and_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); +// 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 *type, *path, *size, *model, *fstype, *fsused; +// +// json_object_object_get_ex(device, "type", &type); +// if (strcmp("part",json_object_get_string(type))) +// continue; +// json_object_object_get_ex(device, "path", &path); +// if (!strstr(json_object_get_string(path),disk_path)){ +// continue; +// } +// json_object_object_get_ex(device, "size", &size); +// json_object_object_get_ex(device, "model", &model); +// json_object_object_get_ex(device, "fstype", &fstype); +// json_object_object_get_ex(device, "fsused", &fsused); +// +// double free_space=0; +// char *free_space_string=""; +// if (size&&fsused){ +// char *fsused_str = (char*)json_object_get_string(fsused); +// double fsused_kbytes = atof(fsused_str); +// for (int i=0;i1024;sz=sz+1){ +// free_space=free_space/1024; +// } +// if (sz==-1) { +// sz=0; +// free_space=free_space/1024; +// } +// free_space_string = yon_char_append(yon_char_from_double(free_space)," "); +// free_space_string[strlen(free_space_string)-1]=*(yon_size_get_mod(sz)); +// } +// gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0); +// gtk_list_store_append(widgets->PartitionsList,&iter); +// gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),-1); +// } +// yon_char_parsed_free(parsed,size); +// } +// } + +// void on_near_installation_device_changed(GtkWidget *self, main_window *widgets){ +// gtk_list_store_clear(widgets->PartitionsList); +// GtkTreeIter iter; +// GtkTreeModel *model; +// if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(self)),&model,&iter)){ +// char *disk_path=""; +// gtk_tree_model_get(model,&iter,0,&disk_path,-1); +// int size; +// config_str parsed; +// parsed = yon_config_load((get_parts_and_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); +// 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 *type, *path, *size, *model, *fstype, *fsused, *label; +// +// json_object_object_get_ex(device, "type", &type); +// if (strcmp("part",json_object_get_string(type))) +// continue; +// json_object_object_get_ex(device, "path", &path); +// if (!strstr(json_object_get_string(path),disk_path)){ +// continue; +// } +// json_object_object_get_ex(device, "size", &size); +// json_object_object_get_ex(device, "model", &model); +// json_object_object_get_ex(device, "label", &label); +// json_object_object_get_ex(device, "fstype", &fstype); +// json_object_object_get_ex(device, "fsused", &fsused); +// +// double free_space=0; +// char *free_space_string=""; +// if (size&&fsused){ +// char *fsused_str = (char*)json_object_get_string(fsused); +// double fsused_kbytes = atof(fsused_str); +// for (int i=0;i1024;sz=sz+1){ +// free_space=free_space/1024; +// } +// if (sz==-1) { +// sz=0; +// free_space=free_space/1024; +// } +// free_space_string = yon_char_append(yon_char_from_double(free_space)," "); +// free_space_string[strlen(free_space_string)-1]=*(yon_size_get_mod(sz)); +// } +// // gtk_spin_button_set_value(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin),0.0); +// gtk_adjustment_set_upper(gtk_spin_button_get_adjustment(GTK_SPIN_BUTTON(widgets->InstallationNearSizeSpin)),0.0); +// gtk_list_store_append(widgets->PartitionsList,&iter); +// gtk_list_store_set(widgets->PartitionsList,&iter,0,json_object_get_string(path),1,json_object_get_string(size),2,free_space_string,3,json_object_get_string(fstype),4,json_object_get_string(label),-1); +// } +// yon_char_parsed_free(parsed,size); +// } +// } + +// void on_same_installation_device_changed(GtkWidget *, main_window *widgets){ +// gtk_list_store_clear(widgets->PartitionsList); +// GtkTreeIter iter; +// GtkTreeModel *model; +// if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SamePlaceDeviceTree)),&model,&iter)){ +// char *disk_path=""; +// gtk_tree_model_get(model,&iter,0,&disk_path,-1); +// int size; +// config_str parsed; +// parsed = yon_config_load(yon_debug_output("%s\n",get_parts_and_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); +// 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 *type, *path, *size, *model, *vendor, *serial; +// +// json_object_object_get_ex(device, "type", &type); +// if (strcmp("part",json_object_get_string(type))) +// continue; +// json_object_object_get_ex(device, "path", &path); +// if (!strstr(json_object_get_string(path),disk_path)){ +// continue; +// } +// 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->PartitionsList,&iter); +// gtk_list_store_set(widgets->PartitionsList,&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 on_page_next_clicked(GtkWidget *, main_window *widgets){ + enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); + page = yon_page_get_next(widgets,page); + if ((int)page!=-1){ + gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page); + } + yon_page_update(widgets); +} + +void on_page_prev_clicked(GtkWidget *, main_window *widgets){ + enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); + page = yon_page_get_prev(page); + if ((int)page!=-1){ + gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page); + } + yon_page_update(widgets); } -void on_gparted_open(); void on_gparted_open(){ yon_launch_app_with_arguments(open_gparted_command,NULL); } -gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets); -void on_reboot_accepted(GtkWidget *,dictionary *dict){ - main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); - confirmation_window *window = yon_dictionary_get_data(dict->first->next,confirmation_window*); +void on_reboot_accepted(main_window *widgets){ g_mutex_lock(&main_config.install_mutex); if (main_config.install_thread){ pthread_cancel((pthread_t)main_config.install_thread); @@ -2278,16 +1435,11 @@ void on_reboot_accepted(GtkWidget *,dictionary *dict){ } main_config.exit_accepted=1; g_signal_emit_by_name(G_OBJECT(widgets->MainWindow),"delete-event"); - free(window); - yon_dictionary_free_all(dict,NULL); - free(dict); + while(gtk_events_pending()) gtk_main_iteration(); if (system("reboot")){}; } -void on_exit_accepted(GtkWidget *,dictionary *dict); -void on_exit_accepted(GtkWidget *,dictionary *dict){ - main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); - confirmation_window *window = yon_dictionary_get_data(dict->first->next,confirmation_window*); +void on_exit_accepted(main_window *widgets){ g_mutex_lock(&main_config.install_mutex); if (main_config.install_thread){ pthread_cancel((pthread_t)main_config.install_thread); @@ -2295,38 +1447,19 @@ void on_exit_accepted(GtkWidget *,dictionary *dict){ } main_config.exit_accepted=1; g_signal_emit_by_name(G_OBJECT(widgets->MainWindow),"delete-event"); - free(window); - yon_dictionary_free_all(dict,NULL); - free(dict); + while(gtk_events_pending()) gtk_main_iteration(); gtk_widget_destroy(widgets->MainWindow); } -confirmation_window *yon_confirmation_window_new(){ - confirmation_window *window = malloc(sizeof(confirmation_window)); - GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_confirmation); - window->Window = yon_gtk_builder_get_widget(builder,"MainWindow"); - window->TitleLabel = yon_gtk_builder_get_widget(builder,"TitleLabel"); - window->TextLabel = yon_gtk_builder_get_widget(builder,"TextLabel"); - window->AcceptButton = yon_gtk_builder_get_widget(builder,"AcceptButton"); - window->CancelButton = yon_gtk_builder_get_widget(builder,"CancelButton"); - g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); - return window; -} - gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){ if (!main_config.exit_accepted||(main_config.save_done&&main_config.install_complete)){ if (widgets){}; - confirmation_window *window = yon_confirmation_window_new(); - dictionary *dict = NULL; - yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets); - yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window); - g_signal_connect(G_OBJECT(window->AcceptButton),"clicked",G_CALLBACK(on_exit_accepted),dict); - gtk_window_set_transient_for(GTK_WINDOW(window->Window),GTK_WINDOW(widgets->MainWindow)); - gtk_window_set_title(GTK_WINDOW(window->Window),TITLE_LABEL); - gtk_window_set_icon_name(GTK_WINDOW(window->Window),icon_path); - gtk_label_set_text(GTK_LABEL(window->TextLabel),WARNING_TEXT_LABEL); - gtk_label_set_text(GTK_LABEL(window->TitleLabel),WARNING_TITLE_LABEL); - gtk_widget_show(window->Window); + dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); + data->action_text=WARNING_TEXT_LABEL; + data->title=WARNING_TITLE_LABEL; + if (yon_confirmation_dialog_call(widgets->MainWindow,data)==GTK_RESPONSE_ACCEPT ){ + on_exit_accepted(widgets); + } return 1; @@ -2511,6 +1644,50 @@ main_window *yon_main_window_complete(){ widgets->SameFSTypeSensitiveCheck = yon_gtk_builder_get_widget(builder,"SameFSTypeSensitiveCheck"); widgets->SameLabelSensitiveCheck = yon_gtk_builder_get_widget(builder,"SameLabelSensitiveCheck"); + widgets->KernelsList = GTK_LIST_STORE(gtk_builder_get_object(builder,"KernelsList")); + widgets->KernelsTree = yon_gtk_builder_get_widget(builder,"KernelsTree"); + + widgets->OSSoftwareTree = yon_gtk_builder_get_widget(builder,"OSSoftwareTree"); + widgets->OSSoftwareList = GTK_LIST_STORE(gtk_builder_get_object(builder,"OSSoftwareList")); + + widgets->StartupServicesTree = yon_gtk_builder_get_widget(builder,"StartupServicesTree"); + widgets->StartupList = GTK_LIST_STORE(gtk_builder_get_object(builder,"StartupList")); + + widgets->BootloadTimerSwitch = yon_gtk_builder_get_widget(builder,"BootloadTimerSwitch"); + widgets->BootloadTimerSpin = yon_gtk_builder_get_widget(builder,"BootloadTimerSpin"); + widgets->BootloadDefaultOSEntry = yon_gtk_builder_get_widget(builder,"BootloadDefaultOSEntry"); + widgets->BootloadDefaulOSButton = yon_gtk_builder_get_widget(builder,"BootloadDefaulOSButton"); + widgets->BootloadNoPasswordSwitch = yon_gtk_builder_get_widget(builder,"BootloadNoPasswordSwitch"); + widgets->BootloadUserTree = yon_gtk_builder_get_widget(builder,"BootloadUserTree"); + widgets->BootloadUserAddButton = yon_gtk_builder_get_widget(builder,"BootloadUserAddButton"); + widgets->BootloadUserRemoveButton = yon_gtk_builder_get_widget(builder,"BootloadUserRemoveButton"); + widgets->BootloadUsersList = GTK_LIST_STORE(gtk_builder_get_object(builder,"BootloadUsersList")); + + widgets->NetworkDomainSwitch = yon_gtk_builder_get_widget(builder,"NetworkDomainSwitch"); + widgets->NetworkDomainNameEntry = yon_gtk_builder_get_widget(builder,"NetworkDomainNameEntry"); + widgets->NetworkDomainAdminEntry = yon_gtk_builder_get_widget(builder,"NetworkDomainAdminEntry"); + widgets->DomainPasswordEntry = yon_gtk_builder_get_widget(builder,"DomainPasswordEntry"); + widgets->NetworkNTPServerSwitch = yon_gtk_builder_get_widget(builder,"NetworkNTPServerSwitch"); + widgets->NetworkNTPCombo = yon_gtk_builder_get_widget(builder,"NetworkNTPCombo"); + widgets->NetworkNTPEntry = yon_gtk_builder_get_widget(builder,"NetworkNTPEntry"); + widgets->NetworkConnectionsBox = yon_gtk_builder_get_widget(builder,"NetworkConnectionsBox"); + widgets->NetworkConnectionsAddButton = yon_gtk_builder_get_widget(builder,"NetworkConnectionsAddButton"); + widgets->network_connections = NULL; + + 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"); + widgets->AdvancedPartitionAddBox = yon_gtk_builder_get_widget(builder,"AdvancedPartitionAddBox"); + widgets->AdvancedAddButton = yon_gtk_builder_get_widget(builder,"AdvancedAddButton"); + widgets->AdvancedLoadTypeSwitch = yon_gtk_builder_get_widget(builder,"AdvancedLoadTypeSwitch"); + widgets->AdvancedBiosSectorSwitch = yon_gtk_builder_get_widget(builder,"AdvancedBiosSectorSwitch"); + widgets->AdvancedEFISwitch = yon_gtk_builder_get_widget(builder,"AdvancedEFISwitch"); + widgets->AdvancedSwapSwitch = yon_gtk_builder_get_widget(builder,"AdvancedSwapSwitch"); + widgets->AdvancedSwapAutoSwitch = yon_gtk_builder_get_widget(builder,"AdvancedSwapAutoSwitch"); + widgets->AdvancedSwapRamSwitch = yon_gtk_builder_get_widget(builder,"AdvancedSwapRamSwitch"); + widgets->AdvancedSwapFixedSwitch = yon_gtk_builder_get_widget(builder,"AdvancedSwapFixedSwitch"); + widgets->AdvancedSwapFixedSpin = yon_gtk_builder_get_widget(builder,"AdvancedSwapFixedSpin"); + g_signal_connect(G_OBJECT(widgets->MainWindow),"delete-event",G_CALLBACK(on_yon_exit),widgets); GtkWidget *menu = yon_gtk_builder_get_widget(builder,"menu2"); gtk_style_context_add_class(gtk_widget_get_style_context(widgets->DocumentationMenuItem),"menuitemmiddle"); @@ -2518,66 +1695,66 @@ main_window *yon_main_window_complete(){ gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->DocumentationMenuItem); gtk_menu_shell_append(GTK_MENU_SHELL(menu),widgets->AboutMenuItem); - g_signal_connect(G_OBJECT(widgets->LoadGlobalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets); - g_signal_connect(G_OBJECT(widgets->LoadLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets); - g_signal_connect(G_OBJECT(widgets->LoadExternalConfigurationMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets); + // g_signal_connect(G_OBJECT(widgets->LoadGlobalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_load),widgets); + // g_signal_connect(G_OBJECT(widgets->LoadLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_local_load),widgets); + // g_signal_connect(G_OBJECT(widgets->LoadExternalConfigurationMenuItem),"activate",G_CALLBACK(on_config_custom_load),widgets); - g_signal_connect(G_OBJECT(widgets->SaveGlobalLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_local_save),widgets); - g_signal_connect(G_OBJECT(widgets->SaveGlobalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets); - g_signal_connect(G_OBJECT(widgets->SaveLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_local_save),widgets); - g_signal_connect(G_OBJECT(widgets->SaveExternalConfigurationMenuItem),"activate",G_CALLBACK(on_config_custom_save),widgets); + // g_signal_connect(G_OBJECT(widgets->SaveGlobalLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_local_save),widgets); + // g_signal_connect(G_OBJECT(widgets->SaveGlobalConfigurationMenuItem),"activate",G_CALLBACK(on_config_global_save),widgets); + // g_signal_connect(G_OBJECT(widgets->SaveLocalConfigurationMenuItem),"activate",G_CALLBACK(on_config_local_save),widgets); + // g_signal_connect(G_OBJECT(widgets->SaveExternalConfigurationMenuItem),"activate",G_CALLBACK(on_config_custom_save),widgets); - g_signal_connect(G_OBJECT(widgets->ReadFullLogButton),"clicked",G_CALLBACK(on_process_log_view),widgets); - g_signal_connect(G_OBJECT(widgets->ReadShortLogButton),"clicked",G_CALLBACK(on_summary_log_view),widgets); + // g_signal_connect(G_OBJECT(widgets->ReadFullLogButton),"clicked",G_CALLBACK(on_process_log_view),widgets); + // g_signal_connect(G_OBJECT(widgets->ReadShortLogButton),"clicked",G_CALLBACK(on_summary_log_view),widgets); g_signal_connect(G_OBJECT(widgets->GpartedCommonButton),"clicked",G_CALLBACK(on_gparted_open),NULL); g_signal_connect(G_OBJECT(widgets->GpartedSameButton),"clicked",G_CALLBACK(on_gparted_open),NULL); g_signal_connect(G_OBJECT(widgets->GpartedNearButton),"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->BackButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->NextButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->CancelInstallButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->AvailableLanguagesButton),"clicked",G_CALLBACK(on_language_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),widgets); - g_signal_connect(G_OBJECT(widgets->LayoutSensitiveCheck),"toggled",G_CALLBACK(on_layout_toggle_button_switch),widgets); - g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_keyboard_clicked),widgets); - g_signal_connect(G_OBJECT(widgets->RemoveButton),"clicked",G_CALLBACK(on_keyboard_removed),widgets); - - g_signal_connect(G_OBJECT(widgets->GrubInstallDevicesTree),"cursor-changed",G_CALLBACK(on_separate_installation_changed),widgets); - g_signal_connect(G_OBJECT(widgets->GrubUpdateDevicesTree),"cursor-changed",G_CALLBACK(on_separate_installation_changed),widgets); - g_signal_connect(G_OBJECT(widgets->InstallationNearSysDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); - g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); - g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); - g_signal_connect(G_OBJECT(widgets->OSDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); - g_signal_connect(G_OBJECT(widgets->SeparateDevicesTree),"cursor-changed",G_CALLBACK(on_separate_installation_changed),widgets); - - g_signal_connect(G_OBJECT(widgets->ConfigurationModeMenuItem),"toggled",G_CALLBACK(on_configuration_mode_switch),widgets); - g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),widgets); - g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),widgets); - - g_signal_connect(G_OBJECT(widgets->SamePlacePartTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets); - g_signal_connect(G_OBJECT(widgets->InstallationNearSysSectionTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets); - gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),3); - - g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets); - g_signal_connect(G_OBJECT(widgets->AdditionalSoftwareCell),"toggled",G_CALLBACK(on_additional_software_toggled),widgets); - - g_signal_connect(G_OBJECT(widgets->ManualLayoutRadio),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),gtk_widget_get_parent(gtk_widget_get_parent(widgets->AddButton))); + // 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); + // g_signal_connect(G_OBJECT(widgets->CancelInstallButton),"clicked",G_CALLBACK(on_page_navigation_clicked),widgets); + // g_signal_connect(G_OBJECT(widgets->AvailableLanguagesButton),"clicked",G_CALLBACK(on_language_clicked),widgets); + // g_signal_connect(G_OBJECT(widgets->RegionCombo),"changed",G_CALLBACK(on_region_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->LayoutSensitiveCheck),"toggled",G_CALLBACK(on_layout_toggle_button_switch),widgets); + // g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_keyboard_clicked),widgets); + // g_signal_connect(G_OBJECT(widgets->RemoveButton),"clicked",G_CALLBACK(on_keyboard_removed),widgets); + + // g_signal_connect(G_OBJECT(widgets->GrubInstallDevicesTree),"cursor-changed",G_CALLBACK(on_separate_installation_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->GrubUpdateDevicesTree),"cursor-changed",G_CALLBACK(on_separate_installation_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->InstallationNearSysDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->OSDevicesTree),"cursor-changed",G_CALLBACK(on_near_installation_device_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->SeparateDevicesTree),"cursor-changed",G_CALLBACK(on_separate_installation_changed),widgets); + + // g_signal_connect(G_OBJECT(widgets->ConfigurationModeMenuItem),"toggled",G_CALLBACK(on_configuration_mode_switch),widgets); + // g_signal_connect(G_OBJECT(widgets->DocumentationMenuItem),"activate",G_CALLBACK(on_open_documentation_confirmation),widgets); + // g_signal_connect(G_OBJECT(widgets->AboutMenuItem),"activate",G_CALLBACK(on_about),widgets); + + // g_signal_connect(G_OBJECT(widgets->SamePlacePartTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->InstallationNearSysSectionTree),"cursor-changed",G_CALLBACK(on_partition_changed),widgets); + // gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),3); + + // g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets); + // g_signal_connect(G_OBJECT(widgets->AdditionalSoftwareCell),"toggled",G_CALLBACK(on_additional_software_toggled),widgets); + + // g_signal_connect(G_OBJECT(widgets->ManualLayoutRadio),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),gtk_widget_get_parent(gtk_widget_get_parent(widgets->AddButton))); - g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->HotnameEntry); - - g_signal_connect(G_OBJECT(widgets->NextInstallationFormatCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->NextInstallationFilesystemTypeCombo); - g_signal_connect(G_OBJECT(widgets->SameInstallationFormatCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->SameInstallationFilesystemTypeCombo); - g_signal_connect(G_OBJECT(widgets->HostnameSensitiveCheck),"toggled",G_CALLBACK(on_autohostname_sensitiveness_check),widgets); - g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(on_autohostname_check),widgets); - g_signal_connect(G_OBJECT(widgets->HotnameEntry),"changed",G_CALLBACK(on_hostname_entry_changed),widgets); - - g_signal_connect(G_OBJECT(widgets->PasswordCombo),"changed",G_CALLBACK(yon_password_combo_set_sensitive),widgets); - g_signal_connect(G_OBJECT(widgets->AdminPasswordCombo),"changed",G_CALLBACK(yon_password_combo_set_sensitive),widgets); - g_signal_connect(G_OBJECT(widgets->RootPasswordSensitiveCheck),"toggled",G_CALLBACK(yon_password_set_sensitive_from_toggle),widgets); - g_signal_connect(G_OBJECT(widgets->PasswordSensitiveCheck),"toggled",G_CALLBACK(yon_password_set_sensitive_from_toggle),widgets); + // g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button_inversed),widgets->HotnameEntry); + + // g_signal_connect(G_OBJECT(widgets->NextInstallationFormatCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->NextInstallationFilesystemTypeCombo); + // g_signal_connect(G_OBJECT(widgets->SameInstallationFormatCheck),"toggled",G_CALLBACK(yon_gtk_widget_set_sensitive_from_toggle_button),widgets->SameInstallationFilesystemTypeCombo); + // g_signal_connect(G_OBJECT(widgets->HostnameSensitiveCheck),"toggled",G_CALLBACK(on_autohostname_sensitiveness_check),widgets); + // g_signal_connect(G_OBJECT(widgets->AutoHostnameCheck),"toggled",G_CALLBACK(on_autohostname_check),widgets); + // g_signal_connect(G_OBJECT(widgets->HotnameEntry),"changed",G_CALLBACK(on_hostname_entry_changed),widgets); + + // g_signal_connect(G_OBJECT(widgets->PasswordCombo),"changed",G_CALLBACK(yon_password_combo_set_sensitive),widgets); + // g_signal_connect(G_OBJECT(widgets->AdminPasswordCombo),"changed",G_CALLBACK(yon_password_combo_set_sensitive),widgets); + // g_signal_connect(G_OBJECT(widgets->RootPasswordSensitiveCheck),"toggled",G_CALLBACK(yon_password_set_sensitive_from_toggle),widgets); + // g_signal_connect(G_OBJECT(widgets->PasswordSensitiveCheck),"toggled",G_CALLBACK(yon_password_set_sensitive_from_toggle),widgets); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(widgets->PasswordEntry)); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(widgets->AdminPasswordEntry)); @@ -2744,103 +1921,32 @@ main_window *yon_main_window_complete(){ } 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_load_proceed(YON_CONFIG_DEFAULT); + // yon_interface_update(widgets); return widgets; } - + int main(int argc, char *argv[]){ - local=setlocale(LC_ALL, ""); - textdomain (LocaleName); - config_init(); - int option_index=0; - int show_help=0; - { - struct option long_options[] = { - {"help", 0, 0, 'h'}, - {"version", 0, 0, 'V'}, - {"lock-help", 0,0, 1}, - {"lock-save", 0,0, 2}, - {"lock-save-local", 0,0, 3}, - {"lock-save-global", 0,0, 4}, - {"lock-load-global", 0,0, 5}, - {"socket-id", 1, 0, 's'}, - {"socket-ext-id", 1,0, 'e'}, - {"socket-trd-id", 1,0, 't'}, - {"clear-config", 0,0, 'c'}, - {"debug", 0,0, 'd'}, - { NULL, 0, NULL, 0 } - }; - for (int i=0;iMainWindow)); - char *window_config_path = config_path; - yon_window_config_load(window_config_path); - free(window_config_path); - GtkCssProvider *css=gtk_css_provider_new(); - gtk_css_provider_load_from_resource(css,CssPath); - gtk_style_context_add_provider_for_screen(gdk_screen_get_default(), - GTK_STYLE_PROVIDER(css), - -1); - gtk_main(); - free(widgets); + widgets = yon_main_window_complete(); + if (widgets){}; + char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); + yon_window_config_load(path); + main_config.launch_arguments=yon_char_parsed_copy(argv,argc); + main_config.launch_size=argc; + if (getuid()!=0){ + textdomain(template_ui_LocaleName); + yon_ubl_status_box_render(ROOT_WARNING_LABEL,BACKGROUND_IMAGE_FAIL_TYPE); + textdomain(LocaleName); + } + gtk_main(); + return 0; } \ No newline at end of file diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index d538577..25442ae 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -11,6 +11,7 @@ #include #include #include +#include #ifdef WEBKIT_FOUND #include #endif @@ -23,10 +24,8 @@ #define glade_path "/com/ublinux/ui/ubinstall-gtk.glade" #define glade_path_ubinstall_keyboard "/com/ublinux/ui/ubinstall-gtk-keyboard.glade" #define glade_path_ubinstall_language "/com/ublinux/ui/ubinstall-gtk-language.glade" +#define glade_path_network_info "/com/ublinux/ui/ubinstall-gtk-network-box.glade" #define glade_path_log_view "/com/ublinux/ui/ubinstall-gtk-log-view.glade" -#define ui_glade_path_about "/com/ublinux/ui/ubinstall-gtk-about.glade" -#define ui_glade_path_documentation "/com/ublinux/ui/ubinstall-gtk-documentation.glade" -#define glade_path_confirmation "/com/ublinux/ui/ubinstall-gtk-warning.glade" #define CssPath "/com/ublinux/css/ubinstall-gtk.css" #define config_path yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL) @@ -84,6 +83,12 @@ NULL #define part_parameter "AUTOINSTALL[part]" #define part_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part]" +#define modules_parameter "AUTOINSTALL[modules]" +#define modules_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[modules]" + +#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]" @@ -118,6 +123,16 @@ NULL #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_format_parameter "AUTOINSTALL[part_format]" +#define part_format_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_format]" +#define part_fs_label_parameter "AUTOINSTALL[part_fs_label]" +#define part_fs_label_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_fs_label]" +#define part_crypt_parameter "AUTOINSTALL[part_crypt]" +#define part_crypt_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part_crypt]" +#define swap_parameter "AUTOINSTALL[swap]" +#define swap_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[swap]" +#define swap_size_parameter "AUTOINSTALL[swap_size]" +#define swap_size_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[swap_size]" #define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ",parameters, "; nice ubinstall2 --debug autoinstall", NULL) @@ -154,57 +169,52 @@ NULL #define default_langs(size) yon_char_parsed_new(size,"en_US.UTF-8","ru_RU.UTF-8",NULL); typedef char* string; +__attribute__((unused)) static \ string version_application; -char *local; - +extern int cur_slide; + enum YON_PAGES { YON_PAGE_WELCOME = 0, YON_PAGE_LICENCE, YON_PAGE_SECTIONS, YON_PAGE_OS_COMPONENTS, - YON_PAGE_SOFTWARE, YON_PAGE_INSTALLATION_BEGIN, - YON_PAGE_INSTALLATION, + YON_PAGE_KERNEL, + YON_PAGE_SOFTWARE, YON_PAGE_REGION, YON_PAGE_KEYBOARD, YON_PAGE_USERS, + YON_PAGE_STARTUP, + YON_PAGE_BOOTLOADER, + YON_PAGE_NETWORK, + YON_PAGE_INSTALLATION, YON_PAGE_COMPLETION, YON_PAGE_COMPLETED, + YON_PAGE_INSTALL_ERROR, + YON_PAGE_CONFIGURE_END, + YON_PAGE_CONFIGURE_SAVE, + YON_PAGE_INSTALL_COMMON, YON_PAGE_INSTALL_SEPARATE, YON_PAGE_INSTALL_SAME_PARTITION, - YON_PAGE_INSTALL_OPTIONS, - YON_PAGE_OPTIONS_GRUB_INSTALL, - YON_PAGE_OPTIONS_GRUB_UPDATE, - YON_PAGE_OPTIONS_SEPARATE, - YON_PAGE_OPTIONS_SEPARATE_USRDATA, - YON_PAGE_OPTIONS_OS_ONLY, - YON_PAGE_OPTIONS_USRDATA_ONLY, - YON_PAGE_INSTALL_ERROR, - YON_PAGE_CONFIGURE_END + YON_PAGE_INSTALL_ADVANCED, + YON_PAGE_INSTALL_RECOVERY, + + YON_PAGE_RECOVERY_GRUB_INSTALL, + YON_PAGE_RECOVERY_GRUB_UPDATE, + YON_PAGE_RECOVERY_OS_ONLY, + YON_PAGE_RECOVERY_USRDATA_ONLY }; typedef struct { - int socket_id; - int load_socket_id; - int save_socket_id; - - int lock_help; - int lock_save_local; - int lock_save_global; - int lock_load_global; - - int always_open_documentation; - - int password_min_length; - + template_config_fields + config_str launch_arguments; + int launch_size; int save_done; int save_configured; - int load_mode; int install_complete; - int debug_mode; guint slider_thread; int install_mode; unsigned long install_thread; @@ -221,6 +231,18 @@ typedef struct { int arg_size; config_str arg_target; } config; + +extern config main_config; + +typedef struct { + GtkWidget *CommonInstallationDevicesTree; + GtkWidget *GpartedCommonButton; + GtkWidget *CommonFilesystemSensitiveCheck; + GtkWidget *CommonInstallationFilesystemTypeCombo; + GtkWidget *CommonSectionSensitiveCheck; + GtkWidget *CommonInstallationSectionNameEntry; + GtkListStore *DevicesList; +} install_common_page; typedef struct { GtkBuilder *builder; @@ -392,8 +414,69 @@ typedef struct { GtkWidget *SameFSTypeSensitiveCheck; GtkWidget *SameLabelSensitiveCheck; + GtkWidget *KernelsTree; + GtkListStore *KernelsList; + GtkWidget *OSSoftwareTree; + GtkListStore *OSSoftwareList; + GtkWidget *StartupServicesTree; + GtkListStore *StartupList; + + GtkWidget *BootloadTimerSwitch; + GtkWidget *BootloadTimerSpin; + GtkWidget *BootloadDefaultOSEntry; + GtkWidget *BootloadDefaulOSButton; + GtkWidget *BootloadNoPasswordSwitch; + GtkWidget *BootloadUserAddButton; + GtkWidget *BootloadUserRemoveButton; + GtkWidget *BootloadUserTree; + GtkListStore *BootloadUsersList; + + GtkWidget *NetworkDomainSwitch; + GtkWidget *NetworkDomainNameEntry; + GtkWidget *NetworkDomainAdminEntry; + GtkWidget *DomainPasswordEntry; + GtkWidget *NetworkNTPServerSwitch; + GtkWidget *NetworkNTPCombo; + GtkWidget *NetworkNTPEntry; + GtkWidget *NetworkConnectionsBox; + GtkWidget *NetworkConnectionsAddButton; + dictionary *network_connections; + + GtkWidget *AdvancedDeviceTree; + GtkWidget *AdvancedVirtualDeviceCombo; + GtkWidget *AdvancedPartitionTree; + GtkWidget *AdvancedPartitionAddBox; + GtkWidget *AdvancedAddButton; + GtkWidget *AdvancedLoadTypeSwitch; + GtkWidget *AdvancedBiosSectorSwitch; + GtkWidget *AdvancedEFISwitch; + GtkWidget *AdvancedSwapSwitch; + GtkWidget *AdvancedSwapAutoSwitch; + GtkWidget *AdvancedSwapRamSwitch; + GtkWidget *AdvancedSwapFixedSpin; + GtkWidget *AdvancedSwapFixedSwitch; + GtkWidget *AdvancedSwapFixedSizeSwitch; + dictionary *advanced_sections; } main_window; +typedef struct { + GtkWidget *MainBox; + GtkWidget *SystemSectionToggle; + GtkWidget *UserDataSectionToggle; + GtkWidget *RemoveButton; + GtkWidget *FormatSwitch; + GtkWidget *FormatExpander; + GtkWidget *SizeSpin; + GtkWidget *SizeCombo; + GtkWidget *SectionMarkEntry; + GtkWidget *FileSystemTypeCombo; + GtkWidget *FileSystemMarkentry; + GtkWidget *EncryptionCombo; + GtkWidget *EncryptionEntry; + GtkWidget *EncryptionButton; + + char *part; +} advanced_section; typedef struct { GtkWidget *Window; @@ -458,6 +541,19 @@ typedef struct { GtkWidget *CancelButton; } confirmation_window; +typedef struct { + GtkWidget *MainBox; + GtkWidget *TypeCombo; + GtkWidget *ConnectionCombo; + GtkWidget *EnabledSwitch; + GtkWidget *RemoveButton; + GtkWidget *AutoGetIPSwitch; + GtkWidget *IpAdressEntry; + GtkWidget *GatewayEntry; + GtkWidget *MaskEntry; + GtkWidget *DNSEntry; +} network_info; + void config_init(); main_window *yon_main_window_complete(); ubinstall_language_window *yon_ubinstall_language_new(); @@ -467,7 +563,6 @@ ubinstall_keyboard_window *yon_ubinstall_keyboard_new(); password_window *yon_password_new(); void on_password_accept(GtkWidget *self, dictionary *dict); -char* yon_debug_output(char *pattern,char*text); void yon_interface_update(main_window *widgets); @@ -484,8 +579,77 @@ gboolean on_install_success(main_window *widgets); gboolean on_install_error(main_window *widgets); -confirmation_window *yon_confirmation_window_new(); - -void on_reboot_accepted(GtkWidget *,dictionary *dict); - -void on_layout_toggle_button_switch(GtkWidget *self, main_window *widgets); \ No newline at end of file +// confirmation_window *yon_confirmation_window_new(); + +void on_reboot_accepted(main_window *widgets); + +void on_keyboard_clicked (GtkWidget *, main_window *widgets); +void on_keyboard_accept(GtkWidget *self,main_window *widgets); +void on_layout_toggle(GtkCellRendererToggle*, gchar* path, ubinstall_keyboard_window *window); +void on_language_clicked(GtkWidget *, main_window *widgets); +void yon_language_selection_changed(GtkCellRenderer *, char *path, ubinstall_language_window *window); +void on_language_window_accept(GtkWidget *,dictionary *dict); +void on_keyboard_removed(GtkWidget *, main_window *widgets); +void on_exit_accepted(main_window *widgets); +void on_gparted_open(); +void on_same_installation_device_changed(GtkWidget *, main_window *widgets); +void on_separate_installation_changed(GtkWidget *self, main_window *widgets); +void on_partition_changed(GtkWidget *self, main_window *widgets); +void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_size, GtkComboBox *size_type); +gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets); +void on_locale_changed(GtkWidget *,main_window *); +void on_region_changed(GtkComboBox *self, main_window *widgets); +void on_page_navigation_clicked(GtkWidget *self, main_window *widgets); +int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char *mode,main_window *widgets); +void on_process_log_view(GtkWidget *,main_window *widgets); +gboolean yon_read_log(void *data); +log_window *yon_log_window_new(); +void on_log_closed(GtkWidget *, dictionary *dict); +void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets); +gboolean yon_installation_progress_update(void *data); +void *on_config_save(void *data); +gboolean on_image_slide(void *data); +void on_region_resized(GtkWidget *,main_window *widgets); +int yon_image_resize_from_container(GtkImage *target, GdkPixbuf *pixbuf_unscaled); +void on_configuration_mode_switch(GtkWidget *self,main_window *widgets); +double yon_size_long_convert_automatic(unsigned long bytes, char *size); +void on_root_get_root(char *argline); +void on_config_custom_save(GtkWidget *, main_window *widgets); +void on_config_global_save(GtkWidget *,main_window *widgets); +void on_config_local_save(GtkWidget *,main_window *widgets); +void on_config_global_local_save(GtkWidget *,main_window *widgets); +void on_config_custom_load(GtkWidget *,main_window *); +void on_config_global_load(GtkWidget *,main_window *); +void on_config_local_load(GtkWidget *,main_window *widgets); +// void yon_save_proceed(char *path, YON_CONFIG_TYPE type); +void on_page_next_clicked(GtkWidget *, main_window *widgets); +void on_page_prev_clicked(GtkWidget *, main_window *widgets); +void yon_load_proceed(YON_CONFIG_TYPE type); +void _yon_saving_threaded(char *final_command); +void yon_password_combo_set_sensitive(GtkWidget *self, main_window *widgets); +void yon_password_set_sensitive_from_toggle(GtkWidget *self, main_window *widgets); +void on_layout_toggle_button_switch(GtkWidget *self, main_window *widgets); +enum YON_PAGES yon_page_get_next(main_window *widgets,enum YON_PAGES page); +enum YON_PAGES yon_page_get_prev(enum YON_PAGES page); +enum YON_PAGES yon_sections_get_next_page(main_window *widgets); +enum YON_PAGES yon_recovery_get_next(main_window *widgets); +enum YON_PAGES yon_page_get_current(GtkNotebook *target); +void yon_switch_page_render(main_window *widgets); +void yon_page_update(main_window *); +void yon_navigation_buttons_set_sensetiveness(main_window *widgets); +int yon_region_save(main_window *widgets); +int yon_keyboard_save(main_window *widgets); +int yon_install_common_save(main_window *widgets); +int yon_install_separate_save(main_window *widgets); +int yon_install_same_partition_save(main_window *widgets); +int yon_grub_install_save(main_window *widgets); +int yon_grub_update_save(main_window *widgets); +int yon_os_components_save(main_window *widgets); +int yon_software_save(main_window *widgets); +int yon_kernel_save(main_window *widgets); +int yon_page_save(main_window *widgets, enum YON_PAGES page); +int yon_users_save(main_window *widgets); +int yon_bootloader_save(main_window *widgets); +int yon_startup_save(main_window *widgets); +network_info *yon_network_info_new(); +int yon_install_advanced_save(main_window *widgets); \ No newline at end of file diff --git a/source/ubl-strings.h b/source/ubl-strings.h index 11c6e08..114ba74 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -1,5 +1,3 @@ -#define VERSION_LABEL yon_char_unite(_("Version:")," ",!yon_char_is_empty(version_application)?version_application:"","\n",NULL) -#define HELP_LABEL(rest) yon_char_unite(LocaleName,_(" version:")," ", !yon_char_is_empty(version_application)?version_application:"","\n",TITLE_LABEL,"\n",_("Usage:"), " ",LocaleName," ",_("[OPTIONS]"),"\n",_("Options:"),"\n\t--help, -h\t\t\t",_("Show this help"),"\n\t--version, -V\t\t\t",_("Show package version"),"\n\t--lock-help\t\t\t",_("Lock this help menu"),"\n\t--lock-save\t\t\t",_("Lock configuration saving"),"\n\t--lock-save-local\t\t",_("Lock local configration saving"),"\n\t--lock-save-global\t\t",_("Lock global configration saving"),"\n\t--lock-load-global\t\t",_("Lock global configration loading"),"\n\t--clear-config\t\t\t",_("Reset application settings"),"\n",!yon_char_is_empty(rest)?rest:NULL,NULL) #define TITLE_LABEL _("UBLinux installation") @@ -107,7 +105,7 @@ #define SECTION_NAME_LABEL _("Section name:") #define FORMAT_LABEL _("Format") -#define SUCCESS_LABEL _("You have UBLinux installed on your computer.\nYou can reboot and use your new system\nor continue working in the UBLinux Live environment.") +#define INSTALL_SUCCESS_LABEL _("You have UBLinux installed on your computer.\nYou can reboot and use your new system\nor continue working in the UBLinux Live environment.") #define LANGUAGES_TITLE_LABEL _("Available languages in the system") #define LAYOUTS_TITLE_LABEL _("Keyboard layout language") @@ -185,4 +183,6 @@ #define WARNING_TITLE_LABEL _("Warning") #define WARNING_TEXT_LABEL _("Are you sure want to exit and\ninterrupt installation process?") -#define WARNING_REBOOT_TEXT_LABEL _("Are you sure want to reboot system?") \ No newline at end of file +#define WARNING_REBOOT_TEXT_LABEL _("Are you sure want to reboot system?") + +#define DEFAULT_BOOTLOAD_MENU_ITEM_LABEL _("Default (Use last succeeded)") \ No newline at end of file diff --git a/ubinstall-gtk-advanced-box.glade b/ubinstall-gtk-advanced-box.glade new file mode 100644 index 0000000..0a883d0 --- /dev/null +++ b/ubinstall-gtk-advanced-box.glade @@ -0,0 +1,416 @@ + + + + + + + True + False + com.ublinux.libublsettingsui-gtk3.trash-symbolic + + + True + False + gtk-missing-image + + + True + False + gtk-missing-image + + + True + False + com.ublinux.libublsettingsui-gtk3.edit-symbolic + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + vertical + 5 + + + True + False + 5 + + + True + False + New section at + + + False + True + 0 + + + + + True + False + /dev/sdb + + + False + True + 1 + + + + + True + True + True + image1 + + + + False + True + end + 2 + + + + + "/ublinux-data/" user data section + True + True + True + image2 + + + False + True + end + 3 + + + + + "/ublinux/" system section + True + True + True + image3 + + + False + True + end + 5 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + + + False + True + 0 + + + + + True + False + Format + + + False + True + 1 + + + + + False + True + 1 + + + + + True + True + True + + + True + False + vertical + 5 + + + True + False + + + False + True + 0 + + + + + True + False + 5 + + + True + False + Size: + 0 + + + False + True + 0 + + + + + True + True + + + False + True + 1 + + + + + True + False + + Mb + Gb + Tb + + + + False + True + 2 + + + + + True + False + Part label: + 0 + + + False + True + 3 + + + + + True + True + + + False + True + 4 + + + + + True + False + File system type: + + + False + True + 5 + + + + + True + False + + Default + + + + False + True + 6 + + + + + False + True + 1 + + + + + True + False + 5 + + + True + False + File system label: + 0 + + + False + True + 0 + + + + + True + True + + + False + True + 1 + + + + + True + False + Encryption: + 0 + + + False + True + 2 + + + + + True + False + + Off + + + + False + True + 3 + + + + + True + False + Encryption password: + + + False + True + 4 + + + + + True + True + + + False + True + 5 + + + + + True + True + True + image4 + + + False + True + 6 + + + + + False + True + 2 + + + + + + + + + + False + True + 2 + + + + + True + True + 0 + + + + + + + + + + + + + + + + + diff --git a/ubinstall-gtk-network-box.glade b/ubinstall-gtk-network-box.glade new file mode 100644 index 0000000..0f37eda --- /dev/null +++ b/ubinstall-gtk-network-box.glade @@ -0,0 +1,300 @@ + + + + + + + True + False + com.ublinux.libublsettingsui-gtk3.trash-symbolic + + + True + False + vertical + + + True + False + 5 + 5 + 5 + 5 + vertical + 5 + + + True + False + 5 + + + True + False + Connection type: + + + False + True + 0 + + + + + True + False + + + False + True + 1 + + + + + True + False + + + False + True + 2 + + + + + True + False + Enabled: + + + False + True + 3 + + + + + True + True + + + False + True + 4 + + + + + True + True + True + image1 + + + + False + True + end + 5 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + + + False + True + 0 + + + + + True + False + Automatically get IP adress with DHCP + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + + + False + True + 2 + + + + + True + False + 5 + + + True + False + IP adress: + 0 + + + False + True + 0 + + + + + True + True + + + True + True + 1 + + + + + True + False + Gateway: + 0 + + + False + True + 2 + + + + + True + True + + + True + True + 3 + + + + + False + True + 3 + + + + + True + False + 5 + + + True + False + Mask: + 0 + + + False + True + 0 + + + + + True + True + + + True + True + 1 + + + + + True + False + DNS-server: + 0 + + + False + True + 2 + + + + + True + True + + + True + True + 3 + + + + + False + True + 4 + + + + + True + True + 0 + + + + + + + + + + + + + + + + + diff --git a/ubinstall-gtk.css b/ubinstall-gtk.css index 6d28543..9b28bc6 100644 --- a/ubinstall-gtk.css +++ b/ubinstall-gtk.css @@ -217,4 +217,11 @@ treeview row:nth-child(even) { background-color: #ffffff; } } .menubox *{ color:@theme_base_color; +} +.bggrey{ + border-radius:5px; + border-color:@theme_text_color; + border-style:solid; + border-width:0.3px; + box-shadow: 1px 1px 2px rgba(0, 0, 0, 0.15); } \ No newline at end of file diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 2ad950d..ac0bfe8 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -15,6 +15,18 @@ + + + + + + + + + + + + @@ -29,6 +41,20 @@ + + + + + + + + + + + + + + @@ -57,6 +83,18 @@ LayoutList + + + + + + + + + + + + @@ -71,6 +109,18 @@ + + + + + + + + + + + + True False @@ -84,12 +134,12 @@ 1 10 - - True - False - com.ublinux.libublsettingsui-gtk3.properties-symbolic + + 60 + 1 + 10 - + True False com.ublinux.libublsettingsui-gtk3.properties-symbolic @@ -124,22 +174,37 @@ False com.ublinux.ubinstall.properties-symbolic + + True + False + com.ublinux.libublsettingsui-gtk3.increase-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.trash-symbolic + + + True + False + com.ublinux.libublsettingsui-gtk3.settings-symbolic + True False com.ublinux.libublsettingsui-gtk3.properties-symbolic - + True False com.ublinux.libublsettingsui-gtk3.properties-symbolic - + True False com.ublinux.libublsettingsui-gtk3.properties-symbolic - + True False com.ublinux.libublsettingsui-gtk3.properties-symbolic @@ -352,7 +417,7 @@ False True - 1 + 0 @@ -377,11 +442,11 @@ agreement False True - 2 + 1 - + True False False @@ -390,7 +455,7 @@ agreement True False - Sections + Preparation 0 @@ -401,11 +466,11 @@ agreement False True - 2 + 3 - + True False False @@ -414,7 +479,7 @@ agreement True False - Installation + Location 0 @@ -425,11 +490,11 @@ agreement False True - 3 + 4 - + True False False @@ -438,7 +503,7 @@ agreement True False - Location + Keyboard 0 @@ -449,11 +514,11 @@ agreement False True - 4 + 5 - + True False False @@ -462,7 +527,7 @@ agreement True False - Keyboard + Users 0 @@ -473,11 +538,11 @@ agreement False True - 5 + 6 - + True False False @@ -486,7 +551,7 @@ agreement True False - Users + Additional 0 @@ -497,7 +562,31 @@ agreement False True - 6 + 7 + + + + + True + False + False + True + + + True + False + Installation + 0 + + + + + + False + True + 8 @@ -560,7 +649,6 @@ agreement 5 5 left - False True @@ -1007,6 +1095,7 @@ and help you install UBLinux on your computer + True True False True @@ -1083,6 +1172,7 @@ and help you install UBLinux on your computer + True True False True @@ -1233,17 +1323,16 @@ and help you install UBLinux on your computer True in - + True True - AdditionalSoftwareList + OSSorfwareList 0 - Chosen @@ -1265,7 +1354,7 @@ and help you install UBLinux on your computer - Tag + Type @@ -1331,7 +1420,62 @@ and help you install UBLinux on your computer True False - Installation completion + end + Installation configuration has ended + + + + + + + True + True + 1 + + + + + True + False + start + UBLinux OS installation is about to begin + + + + + + True + True + 2 + + + + + 4 + + + + + True + False + Configuration end + + + 4 + False + + + + + True + False + vertical + 5 + + + True + False + Choose system kernel @@ -1364,17 +1508,16 @@ and help you install UBLinux on your computer True in - + True True - AdditionalSoftwareList + KernelsList 0 - Chosen @@ -1385,18 +1528,20 @@ and help you install UBLinux on your computer - Module name + Load - + + True + - 1 + 1 - Tag + Kernel @@ -1407,7 +1552,7 @@ and help you install UBLinux on your computer - Description + Modules @@ -1416,6 +1561,17 @@ and help you install UBLinux on your computer + + + Description + + + + 4 + + + + @@ -1437,61 +1593,6 @@ and help you install UBLinux on your computer - - 4 - - - - - True - False - Additional software - - - 4 - False - - - - - True - False - vertical - 5 - - - True - False - end - Installation configuration has ended - - - - - - - True - True - 1 - - - - - True - False - start - UBLinux OS installation is about to begin - - - - - - True - True - 2 - - - 5 @@ -1500,7 +1601,7 @@ and help you install UBLinux on your computer True False - page 6 + Kernel 5 @@ -1517,7 +1618,7 @@ and help you install UBLinux on your computer True False - Installation + Choose additional components @@ -1531,26 +1632,106 @@ and help you install UBLinux on your computer - + True False - - - False - True - 1 - - - - - 6 - - - - - True - False - Installation + 0.019999999552965164 + in + + + True + False + 5 + 5 + 5 + 5 + + + True + True + in + + + True + True + AdditionalSoftwareList + 0 + + + + + + + + + 0 + + + + + + + Module name + + + + 1 + + + + + + + Type + + + + 2 + + + + + + + Description + + + + 3 + + + + + + + + + + + + + True + False + Selecting additional software to install from the repository via the Internet + + + + + True + True + 1 + + + + + 6 + + + + + True + False + Additional components 6 @@ -2714,7 +2895,7 @@ and help you install UBLinux on your computer True False - Installation completion + Startup services @@ -2729,25 +2910,86 @@ and help you install UBLinux on your computer - + + True False + 0 + none + + + True + False + + + + + - True + False True 1 - + True - False - end - Success - - - - + True + in + + + True + True + StartupList + + + + + + Autostart + + + + 0 + + + + + + + Unit + + + + 1 + + + + + + + Service + + + + 2 + + + + + + + Description + + + + 3 + + + + + + True @@ -2755,26 +2997,6 @@ and help you install UBLinux on your computer 2 - - - True - False - start - You have UBLinux installed on your computer. -You can reboot and use your new system -or continue working in the UBLinux Live environment. - center - True - - - - - - True - True - 3 - - 10 @@ -2784,7 +3006,7 @@ or continue working in the UBLinux Live environment. True False - Completion + Startup configuration 10 @@ -2801,7 +3023,7 @@ or continue working in the UBLinux Live environment. True False - Completion + Boot load @@ -2816,173 +3038,250 @@ or continue working in the UBLinux Live environment. - - False - - - True - True - 1 - - - - + True False - end - Configuration has been saved - - - - + 0 + none + + + True + False + + + + + - True + False True - 2 + 1 - + True False - start - You can safely exit configurator or return and create new configuration file. - center - True - - - - - - True - True - 3 - - - - - 11 - - - - - True - False - Completed - - - 11 - False - - - - - True - False - vertical - 5 - - - True - False - Installation parameters - - - - - - - - False - True - 0 - - - - - True - True + vertical + 5 - + True False - 10 - 5 + 5 - + + True + True + + + False + True + 0 + + + + True False - vertical - 5 + Boot selection menu timer: + + + False + True + 1 + + + + + True + True + adjustment2 + + + False + True + 2 + + + + + True + False + seconds + + + False + True + 3 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + False + Default OS: + + + False + True + 0 + + + + + True + True + + + True + True + 1 + + + + + True + True + True + image19 + + + + False + True + 2 + + + + + False + True + 1 + + + + + True + False + 5 + + + True + True + + + False + True + 0 + + + + + True + False + Login without password request + + + False + True + 1 + + + + + False + True + 2 + + + + + True + False + 0.019999999552965164 + in + + + True + False + 5 + 5 + 5 + 5 True False - vertical 5 - + True - False - 5 - - - True - False - /com/ublinux/images/clear_install_disk.png - - - False - True - 0 - - + True + in + 64 + 256 - + True - False - vertical - 5 + True + BootloadUsersList + + + - - True - False - Installation - 0 - - - + + Administrator + + + + 0 + + - - False - True - 0 - - - True - False - Deleting all data on the selected disk and then installing the UBLinux system - 0 + + Username + + + + 1 + + + + + + + Password + + + + 3 + + - - False - True - 1 - - - True - True - 1 - - False + True True 0 @@ -2991,13 +3290,17 @@ or continue working in the UBLinux Live environment. True False + vertical 5 - + True - False - Select device: - 0 + True + True + image17 + False @@ -3006,12 +3309,11 @@ or continue working in the UBLinux Live environment. - + True True True - Start GParted - image5 + image18 @@ -3019,7 +3321,6 @@ or continue working in the UBLinux Live environment. False True - end 1 @@ -3030,220 +3331,44 @@ or continue working in the UBLinux Live environment. 1 - - - True - True - in - 105 - - - True - True - DevicesList - 0 - - - - - - Device - - - - 0 - - - - - - - Description - - - - 1 - - - - - - - Label - - - - 2 - - - - - - - Size - - - - 3 - - - - - - - Serial - - - - 4 - - - - - - - - - True - True - 2 - - - - - True - True - 0 - - - - - True - False - 5 - - - True - True - False - True - - - - True - False - Choose file system type for the section: - - - - - False - True - 0 - - - - - True - False - True - 1 - - ext3 - ext4 - fat16 - fat32 - exfat - riserfs - udf - xfs - zfs - - - - - True - True - 2 - - - - - False - True - 1 - - - - - True - False - 5 - - - True - True - False - True - - - - True - False - Section name: - - - - - False - True - 0 - - - - - True - False - True - - - - True - True - 2 - - - - False - True - 2 - + + + True + False + Bootloader menu users + + + + False + True + 3 + - True + False True - 1 + 2 - 12 + 11 True False - Common Installation + Bootloader - 12 + 11 False @@ -3257,9 +3382,10 @@ or continue working in the UBLinux Live environment. True False - Installation parameters + Network + @@ -3271,30 +3397,1138 @@ or continue working in the UBLinux Live environment. - + True - True + False + 0 + none - + True False - 10 - 5 + + + + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + True + False + 5 - + + True + True + + + False + True + 0 + + + + True False - vertical - 5 - - - True - False - vertical - 5 - - - True + Domain name: + + + False + True + 1 + + + + + True + True + 10 + + + False + True + 2 + + + + + True + False + Domain administrator: + + + False + True + 3 + + + + + True + True + 10 + + + False + True + 4 + + + + + True + False + Password: + + + False + True + 5 + + + + + True + True + 10 + + + False + True + 6 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + + + False + True + 0 + + + + + True + False + NTP Server: + + + False + True + 1 + + + + + True + False + + + False + True + 2 + + + + + True + True + + + True + True + 3 + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + + + + + + True + True + True + + + + False + True + end + 1 + + + + + False + True + 2 + + + + + False + True + 2 + + + + + 12 + + + + + True + False + Network + + + 12 + False + + + + + True + False + vertical + 5 + + + True + False + Installation + + + + + + + + False + True + 0 + + + + + True + False + + + False + True + 1 + + + + + 13 + + + + + True + False + Installation process + + + 13 + False + + + + + True + False + vertical + 5 + + + True + False + Installation completion + + + + + + + + + False + True + 0 + + + + + False + + + True + True + 1 + + + + + True + False + end + Success + + + + + + + True + True + 2 + + + + + True + False + start + You have UBLinux installed on your computer. +You can reboot and use your new system +or continue working in the UBLinux Live environment. + center + True + + + + + + True + True + 3 + + + + + 14 + + + + + True + False + Completion + + + 14 + False + + + + + True + False + vertical + 5 + + + True + False + Completion + + + + + + + + + False + True + 0 + + + + + False + + + True + True + 1 + + + + + True + False + end + Configuration has been saved + + + + + + + True + True + 2 + + + + + True + False + start + You can safely exit configurator or return and create new configuration file. + center + True + + + + + + True + True + 3 + + + + + 15 + + + + + True + False + Completed + + + 15 + False + + + + + True + False + vertical + 5 + + + True + False + Installation error + + + + + + + + + False + True + 0 + + + + + False + + + False + True + 1 + + + + + True + False + end + Error + + + + + + + True + True + 2 + + + + + True + False + start + Error has occured while installation process + center + True + + + + + + True + True + 3 + + + + + 16 + + + + + True + False + Configuration error + + + 16 + False + + + + + True + False + vertical + 5 + + + True + False + Configuration + + + + + + + + + False + True + 0 + + + + + False + + + False + True + 1 + + + + + True + False + end + Installer configuration has been finished + + + + + + + True + True + 2 + + + + + True + False + start + Choose a save option on the header bar + center + True + + + + + + True + True + 3 + + + + + 17 + + + + + True + False + Configuration end + + + 17 + False + + + + + True + False + vertical + 5 + + + True + False + Configuration + + + + + + + + + False + True + 0 + + + + + False + + + False + True + 1 + + + + + True + False + end + Configuration has been saved + + + + + + + True + True + 2 + + + + + True + False + start + You can safely exit configurator or return and create new configuration file. + center + True + + + + + + True + True + 3 + + + + + 18 + + + + + True + False + Configuration saved + + + 18 + False + + + + + True + False + vertical + 5 + + + True + False + Installation parameters + + + + + + + + False + True + 0 + + + + + True + True + + + True + False + 10 + 5 + + + True + False + vertical + 5 + + + True + False + vertical + 5 + + + True + False + 5 + + + True + False + /com/ublinux/images/clear_install_disk.png + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + Installation + 0 + + + + + + False + True + 0 + + + + + True + False + Deleting all data on the selected disk and then installing the UBLinux system + 0 + + + False + True + 1 + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + False + Select device: + 0 + + + False + True + 0 + + + + + True + True + True + Start GParted + image5 + + + + False + True + end + 1 + + + + + False + True + 1 + + + + + True + True + in + 105 + 350 + + + True + True + DevicesList + 0 + + + + + + Device + + + + 0 + + + + + + + Description + + + + 1 + + + + + + + Label + + + + 2 + + + + + + + Size + + + + 3 + + + + + + + Serial + + + + 4 + + + + + + + + + False + True + 2 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + True + False + True + + + + True + False + Choose file system type for the section: + + + + + False + True + 0 + + + + + True + False + True + 1 + + ext3 + ext4 + fat16 + fat32 + exfat + riserfs + udf + xfs + zfs + + + + + True + True + 2 + + + + + False + True + 1 + + + + + True + False + 5 + + + True + True + False + True + + + + True + False + Section name: + + + + + False + True + 0 + + + + + True + False + True + + + + True + True + 2 + + + + + False + True + 2 + + + + + + + + + True + True + 1 + + + + + 19 + + + + + True + False + Common Installation + + + 19 + False + + + + + True + False + vertical + 5 + + + True + False + Installation parameters + + + + + + + + False + True + 0 + + + + + True + True + + + True + False + 10 + 5 + + + True + False + vertical + 5 + + + True + False + vertical + 5 + + + True False 5 @@ -3443,6 +4677,7 @@ installed. True in 105 + 350 True @@ -3511,14 +4746,14 @@ installed. - True + False True 1 - True + False True 0 @@ -3547,6 +4782,7 @@ installed. True in 128 + 350 True @@ -3615,14 +4851,14 @@ installed. - True + False True 1 - True + False True 1 @@ -3697,7 +4933,7 @@ installed. - True + False True 1 @@ -3834,7 +5070,7 @@ installed. - 13 + 20 @@ -3844,7 +5080,7 @@ installed. Installation next to system - 13 + 20 False @@ -4367,7 +5603,7 @@ installed. - 14 + 21 @@ -4377,7 +5613,7 @@ installed. Installation on same partition - 14 + 21 False @@ -4391,7 +5627,7 @@ installed. True False - Installation options + Installation parameters @@ -4405,22 +5641,319 @@ installed. - + True - True + False + vertical + 5 + + + True + False + 5 + + + True + False + /com/ublinux/images/manual_install_disk.png + + + False + True + 0 + + + + + True + False + vertical + + + True + False + Advanced installation mode + 0 + + + + + + False + True + 0 + + + + + True + False + Installing OS files, user data on different partitions, creating RAID, etc. + 0 + + + False + True + 1 + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + <b>Attention!</b> The selected OS UBLinux components will be installed +separately into the selected partition. + True + 0 + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + True + False + vertical + 5 + + + True + False + 5 + + + True + False + Select device: + 0 + + + False + True + 0 + + + + + True + True + True + image20 + + + + False + True + end + 1 + + + + + False + True + 0 + + + + + True + True + in + + + True + True + + + + + + + + False + True + 1 + + + + + False + True + 0 + + + + + True + False + 5 + + + True + False + Virtual device type: + 0 + + + False + True + 0 + + + + + True + False + 0 + + No + + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + True + False + Select partiton: + 0 + + + False + True + 0 + + + + + True + True + in + + + True + True + + + + + + + + False + True + 1 + + + + + False + True + 2 + + + + + True + False + vertical + 5 + + + + + + + + True + True + True + + + + False + True + 2 + + + + + False + True + 3 + + - + True False + 5 - + True False - vertical + start + 0 + none True False + 5 + 5 + 5 + 5 vertical 5 @@ -4429,341 +5962,74 @@ installed. False 5 - + True False - /com/ublinux/images/manual_install_disk.png + Load type False - True - 0 - - - - - True - False - vertical - - - True - False - Advanced installation mode - 0 - - - - - - False - True - 0 - - - - - True - False - Installing OS files, user data on different partitions, creating RAID, etc. - 0 - - - False - True - 1 - - - - - True - True - 1 - - - - - False - True - 0 - - - - - True - False - <b>Attention!</b> The selected OS UBLinux components will be installed -separately into the selected partition. - True - 0 - - - False - True - 1 - - - - - False - True - 1 - - - - - True - False - vertical - 5 - - - True - True - False - True - True - - - True - False - 5 - - - True - False - gtk-missing-image - - - False - True - 0 - - - - - True - False - vertical - 5 - - - True - False - GRUB install - 0 - - - - - - - False - True - 0 - - - - - True - False - Install the GRUB bootloader - 0 - - - False - True - 1 - - - - - True - True - 1 - - - - - - - False - True - 0 - - - - - True - True - False - True - True - GrubInstallRadio - - - True - False - 5 - - - True - False - gtk-missing-image - - - False - True - 0 - - - - - True - False - vertical - 5 - - - True - False - GRUB update - 0 - - - - - - - False - True - 0 - - - - - True - False - Update (reinstall) the GRUB bootloader - 0 - - - False - True - 1 - - - - - True - True - 1 - - - - - - - False - True - 1 - - - - - True - True - False - True - True - GrubInstallRadio + True + 0 + + - + True - False - 5 - - - True - False - gtk-missing-image - - - False - True - 0 - - + True + False + True - - True - False - vertical - 5 - - - True - False - Separate installation - 0 - - - - - - - False - True - 0 - - - - - True - False - Installing OS components and user data on different disk partitions - 0 - - - False - True - 1 - - - - - True - True - 1 - + + + + + False + True + end + 1 + + + + + True + True + + False + True + end + 2 + False True - 2 + 0 - + True - True - False - True - True - GrubInstallRadio + False + none + True True False + vertical 5 - + True False - gtk-missing-image False @@ -4775,18 +6041,12 @@ separately into the selected partition. True False - vertical 5 True False - OS only - 0 - - - - + BIOS Boot sector False @@ -4795,75 +6055,45 @@ separately into the selected partition. - + True - False - Installing only OS components without user data - 0 + True False True - 1 + end + 2 - True + False True 1 - - - - - False - True - 3 - - - - - True - True - False - True - True - GrubInstallRadio - - - True - False - 5 - + True False - gtk-missing-image False True - 0 + 2 True False - vertical 5 True False - User data only - 0 - - - - + EFI section False @@ -4872,23 +6102,22 @@ separately into the selected partition. - + True - False - Installing only user data without OS components - 0 + True False True - 1 + end + 2 - True + False True - 1 + 4 @@ -4897,102 +6126,114 @@ separately into the selected partition. False True - 4 + 1 - - False - True - 2 - + + + + + + True + True + 0 + - - - - - True - True - 3 - - - - - 15 - - - - - True - False - Advanced installation - - - 15 - False - - - - - True - False - vertical - 5 - - - True - False - vertical - 5 - - - True - False - Installation parameters - - - - - - - - False - True - 0 - - - - - True - True - + True False + 0 + none True False + 5 + 5 + 5 + 5 vertical 5 - + + True + False + 5 + + + True + False + Swap file + + + False + True + 0 + + + + + True + True + False + True + + + + + + + False + True + end + 1 + + + + + True + True + + + False + True + end + 2 + + + + + False + True + 0 + + + + True False - vertical - 5 + none + True True False + vertical 5 - + True False - /com/ublinux/images/clear_install_disk.png False @@ -5004,17 +6245,12 @@ separately into the selected partition. True False - vertical 5 True False - GRUB install - 0 - - - + Automatically False @@ -5023,256 +6259,165 @@ separately into the selected partition. - + True - False - Install the GRUB bootloader - 0 + True False True - 1 + end + 2 - True + False True 1 - - - False - True - 0 - - - - - True - False - 5 - + True False - Select device: - 0 False True - 0 + 2 - + True - True - True - image2 - + False + 5 + + + True + False + Corresponds to RAM size + + + False + True + 0 + + + + + True + True + + + False + True + end + 2 + + False True - end - 1 + 3 - - - False - True - 1 - - - - - True - True - in - 128 - + True - True - DevicesList - 0 - - - - - - Device - - - - 0 - - - - - - - Description - - - - 1 - - - - - - - Mark - - - - 2 - - - - - - - Size - - - - 3 - - - - - - - Free - - - - 4 - - - - + False + + False + True + 4 + - - - False - True - 2 - - - - - False - True - 0 - - - - - True - False - vertical - - - True - False - Choose a section: - 0 - - - False - True - 0 - - - - - True - True - in - 128 - + True - True - PartitionsList - 0 - - + False + 5 + + + True + False + Fixed size: + + + False + True + 0 + - - Section - - - - 0 - - + + True + True + + False + True + 1 + - - Capacity - - - - 1 - - + + True + True + + False + True + end + 2 + - - Free space - - - - 2 - - + + True + False + Mb + + False + True + 3 + - - File system - - - - 3 - - + + True + True + + False + True + 4 + - - Mark - - - - 4 - - + + True + False + Gb + + False + True + 5 + + + False + True + 5 + - - False - True - 1 - @@ -5283,35 +6428,46 @@ separately into the selected partition. + + + + + + True + True + 1 + - True + False True - 1 + 4 - True + False True - 1 + 2 - 16 + 22 True False - GRUB install + Advanced section - 16 + 22 False @@ -5325,7 +6481,7 @@ separately into the selected partition. True False - Installation parameters + Installation options @@ -5351,7 +6507,6 @@ separately into the selected partition. True False vertical - 5 True @@ -5367,7 +6522,7 @@ separately into the selected partition. True False - /com/ublinux/images/clear_install_disk.png + /com/ublinux/images/manual_install_disk.png False @@ -5380,12 +6535,11 @@ separately into the selected partition. True False vertical - 5 True False - GRUB update + Advanced installation mode 0 @@ -5401,63 +6555,202 @@ separately into the selected partition. True False - Update (reinstall) the GRUB bootloader + Installing OS files, user data on different partitions, creating RAID, etc. 0 - False + False + True + 1 + + + + + True + True + 1 + + + + + False + True + 0 + + + + + True + False + <b>Attention!</b> The selected OS UBLinux components will be installed +separately into the selected partition. + True + 0 + + + False + True + 1 + + + + + False + True + 1 + + + + + True + False + vertical + 5 + + + True + True + False + True + True + + + True + False + 5 + + + True + False + gtk-missing-image + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + GRUB install + 0 + + + + + + + False + True + 0 + + + + + True + False + Install the GRUB bootloader + 0 + + + False + True + 1 + + + + + True + True + 1 + + + + + + + False + True + 0 + + + + + True + True + False + True + True + GrubInstallRadio + + + True + False + 5 + + + True + False + gtk-missing-image + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + GRUB update + 0 + + + + + + + False + True + 0 + + + + + True + False + Update (reinstall) the GRUB bootloader + 0 + + + False + True + 1 + + + + + True True 1 - - True - True - 1 - - - - - False - True - 0 - - - - - True - False - 5 - - - True - False - Select device: - 0 - - - False - True - 0 - - - - - True - True - True - image3 - - - - False - True - end - 1 - @@ -5467,74 +6760,72 @@ separately into the selected partition. - + True True - in - 128 + False + True + True + GrubInstallRadio - + True - True - DevicesList - 0 - - - - - - Device - - - - 0 - - - - - - - Description - - - - 1 - - - - + False + 5 - - Mark - - - - 2 - - + + True + False + gtk-missing-image + + False + True + 0 + - - Size + + True + False + vertical + 5 - - - 3 - + + True + False + OS only + 0 + + + + + + + False + True + 0 + - - - - - Free - - - 4 - + + True + False + Installing only OS components without user data + 0 + + + False + True + 1 + + + True + True + 1 + @@ -5542,103 +6833,76 @@ separately into the selected partition. False True - 2 - - - - - False - True - 0 - - - - - True - False - vertical - - - True - False - Choose a section: - 0 - - - False - True - 0 + 3 - + True True - in - 128 + False + True + True + GrubInstallRadio - + True - True - PartitionsList - 0 - - - - - - Section - - - - 0 - - - - - - - Capacity - - - - 1 - - - - + False + 5 - - Free space - - - - 2 - - + + True + False + gtk-missing-image + + False + True + 0 + - - File system + + True + False + vertical + 5 - - - 3 - + + True + False + User data only + 0 + + + + + + + False + True + 0 + - - - - - Mark - - - 4 - + + True + False + Installing only user data without OS components + 0 + + + False + True + 1 + + + True + True + 1 + @@ -5646,14 +6910,14 @@ separately into the selected partition. False True - 1 + 4 False True - 1 + 2 @@ -5664,22 +6928,22 @@ separately into the selected partition. True True - 1 + 3 - 17 + 23 True False - GRUB update + Recovery section - 17 + 23 False @@ -5690,36 +6954,36 @@ separately into the selected partition. vertical 5 - + True False - Installation parameters - - - - - - - - False - True - 0 - - - - - True - True + vertical + 5 - + True False + Installation parameters + + + + + + + + False + True + 0 + + + + + True + True - + True False - vertical - 5 True @@ -5730,12 +6994,67 @@ separately into the selected partition. True False + vertical 5 - + True False - /com/ublinux/images/clear_install_disk.png + 5 + + + True + False + /com/ublinux/images/clear_install_disk.png + + + False + True + 0 + + + + + True + False + vertical + 5 + + + True + False + GRUB install + 0 + + + + + + False + True + 0 + + + + + True + False + Install the GRUB bootloader + 0 + + + False + True + 1 + + + + + True + True + 1 + + False @@ -5747,17 +7066,13 @@ separately into the selected partition. True False - vertical 5 True False - Separate installation + Select device: 0 - - - False @@ -5766,172 +7081,109 @@ separately into the selected partition. - + True - False - Installing OS components and user data on different disk partitions - 0 + True + True + image2 + False True + end 1 - - True - True - 1 - - - - - False - True - 0 - - - - - True - False - 5 - - - True - False - Select device: - 0 - - - False - True - 0 - - - - - True - True - True - image4 - - False True - end 1 - - - False - True - 1 - - - - - True - True - in - 128 - + True True - DevicesList - 0 - - - + in + 128 - - Device - - - - 0 - + + True + True + DevicesList + 0 + + + + + + Device + + + + 0 + + + - - - - - Description - - - 1 - + + Description + + + + 1 + + + - - - - - Mark - - - 2 - + + Mark + + + + 2 + + + - - - - - Size - - - 3 - + + Size + + + + 3 + + + - - - - - Free - - - 4 - + + Free + + + + 4 + + + + + False + True + 2 + - - False - True - 2 - - - - - False - True - 0 - - - - - True - False - vertical - - - True - False - Choose a section: - 0 - False True @@ -5939,76 +7191,101 @@ separately into the selected partition. - + True - True - in - 128 + False + vertical + + + True + False + Choose a section: + 0 + + + False + True + 0 + + - + True True - PartitionsList - 0 - - - + in + 128 - - Section + + True + True + PartitionsList + 0 + + + - - - 0 - + + Section + + + + 0 + + + - - - - - Capacity - - - 1 - + + Capacity + + + + 1 + + + - - - - - Free space - - - 2 - + + Free space + + + + 2 + + + - - - - - File system - - - 3 - + + File system + + + + 3 + + + - - - - - Mark - - - 4 - + + Mark + + + + 4 + + + + + False + True + 1 + @@ -6018,15 +7295,15 @@ separately into the selected partition. - - False - True - 1 - + + True + True + 1 + @@ -6037,17 +7314,17 @@ separately into the selected partition. - 18 + 24 True False - Separate installation + GRUB install - 18 + 24 False @@ -6121,7 +7398,7 @@ separately into the selected partition. True False - Separate installation + GRUB update 0 @@ -6137,7 +7414,7 @@ separately into the selected partition. True False - Installing OS components and user data on different disk partitions + Update (reinstall) the GRUB bootloader 0 @@ -6179,11 +7456,11 @@ separately into the selected partition. - + True True True - image10 + image3 @@ -6209,9 +7486,8 @@ separately into the selected partition. in 128 - + True - False True DevicesList 0 @@ -6314,7 +7590,7 @@ separately into the selected partition. in 128 - + True True PartitionsList @@ -6406,17 +7682,17 @@ separately into the selected partition. - 19 + 25 True False - Separate installation - userdata + GRUB update - 19 + 25 False @@ -6774,7 +8050,7 @@ separately into the selected partition. - 20 + 26 @@ -6784,7 +8060,7 @@ separately into the selected partition. OS only - 20 + 26 False @@ -7142,7 +8418,7 @@ separately into the selected partition. - 21 + 27 @@ -7152,262 +8428,7 @@ separately into the selected partition. User data only - 21 - False - - - - - True - False - vertical - 5 - - - True - False - Installation error - - - - - - - - - False - True - 0 - - - - - False - - - False - True - 1 - - - - - True - False - end - Error - - - - - - - True - True - 2 - - - - - True - False - start - Error has occured while installation process - center - True - - - - - - True - True - 3 - - - - - 22 - - - - - True - False - Installation error - - - 22 - False - - - - - True - False - vertical - 5 - - - True - False - Configuration - - - - - - - - - False - True - 0 - - - - - False - - - False - True - 1 - - - - - True - False - end - Installer configuration has been finished - - - - - - - True - True - 2 - - - - - True - False - start - Choose a save option on the header bar - center - True - - - - - - True - True - 3 - - - - - 23 - - - - - True - False - Configuration ended - - - 23 - False - - - - - True - False - vertical - 5 - - - True - False - Configuration - - - - - - - - - False - True - 0 - - - - - False - - - False - True - 1 - - - - - True - False - end - Configuration has been saved - - - - - - - True - True - 2 - - - - - True - False - start - You can safely exit configurator or return and create new configuration file. - center - True - - - - - - True - True - 3 - - - - - 24 - - - - - True - False - Configuration saved - - - 24 + 27 False @@ -7446,7 +8467,6 @@ separately into the selected partition. Back - True False True True