From 20972038b7285eec9bb1a507e852f319e7bf4731 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 1 Oct 2024 09:16:51 +0600 Subject: [PATCH 1/9] Fix for configuration before all configuration pages are passed --- source/ubinstall-gtk.c | 4 +++- source/ubinstall-gtk.h | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index a00a755..eb1ef8f 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -846,6 +846,7 @@ void config_init(){ 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; @@ -978,7 +979,7 @@ void *on_config_save(void *data){ g_mutex_lock(&main_config.install_mutex); main_config.install_complete=1; g_mutex_unlock(&main_config.install_mutex); - if (!main_config.save_done){ + if (!main_config.save_done&&main_config.save_configured){ on_setup_system_configuration(widgets); } return 0; @@ -1742,6 +1743,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *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_configured=1; } } else { gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 67706dd..692c455 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -196,6 +196,7 @@ typedef struct { int password_min_length; int save_done; + int save_configured; int load_mode; int install_complete; From 740eda6e10680ac48c5eed29122ee3d4796ccf4a Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 1 Oct 2024 11:18:46 +0600 Subject: [PATCH 2/9] Fixed ignored parameters getting for saving --- source/ubinstall-gtk.c | 4 ++-- source/ubinstall-gtk.h | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index eb1ef8f..f16e13e 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -944,12 +944,12 @@ void *on_config_save(void *data){ main_window *widgets = (main_window*)data; int size=0; - config_str parameters = yon_config_get_selection_by_key(&size, + config_str parameters = yon_config_get_selection_by_key_no_ignored(&size, AUTOINSTALL_TYPE_INSTALL, AUTOINSTALL_DEVICE, device_format_parameter, device_label_parameter, - main_config.install_mode!=1||main_config.install_mode!=2?NULL:part_parameter, + main_config.install_mode!=1&&main_config.install_mode!=2?NULL:part_parameter, part_type_parameter, device_format_parameter, main_config.install_mode!=1?NULL:part_size_parameter, diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 692c455..b79da64 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -76,8 +76,13 @@ NULL #define get_parts_and_devices_command "lsblk --noheadings -Jo TYPE,PATH,SIZE,FSTYPE,LABEL,PARTLABEL,MOUNTPOINT,FSUSED,FSUSE% --exclude 7,253" #define AUTOINSTALL_TYPE_INSTALL "AUTOINSTALL[install_type]" +#define AUTOINSTALL_TYPE_INSTALL_command "ubconfig --source global get [autoinstall] AUTOINSTALL[install_type]" + #define AUTOINSTALL_DEVICE "AUTOINSTALL[device]" +#define AUTOINSTALL_DEVICE_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device]" + #define part_parameter "AUTOINSTALL[part]" +#define part_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part]" #define user_name_parameter "AUTOINSTALL[user_name]" #define user_name_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[user_name]" @@ -121,9 +126,6 @@ NULL #define open_gparted_command "gparted" -#define AUTOINSTALL_TYPE_INSTALL_command "ubconfig --source global get [autoinstall] AUTOINSTALL[install_type]" -#define AUTOINSTALL_DEVICE_command "ubconfig --source global get [autoinstall] AUTOINSTALL[device]" -#define part_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[part]" #define PASSWORD_DEFAULT "ublinux" From 1d14ee059f7b899a6fef2f680edeb9ce4738518b Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Tue, 1 Oct 2024 17:54:26 +0600 Subject: [PATCH 3/9] changed max partition size calculating logic --- source/ubinstall-gtk.c | 4 +++- ubinstall-gtk.glade | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index f16e13e..a5d042f 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -1984,7 +1984,9 @@ void yon_set_max_size_from_partition(GtkTreeView *table, GtkSpinButton *spin_siz 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,1,&selected_size,-1); + 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); diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index d0ed9eb..9428d6c 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -3640,7 +3640,6 @@ installed. 0,0 adjustment1 1 - False From 61ddb71578a510b45df4a45f177412bcb4bbfd3e Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Wed, 2 Oct 2024 17:57:10 +0600 Subject: [PATCH 4/9] Additional installation options WIP --- source/ubinstall-gtk.c | 149 +++++++++++++++++++++++------------------ ubinstall-gtk.glade | 6 +- 2 files changed, 85 insertions(+), 70 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index a5d042f..5409958 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -1310,29 +1310,29 @@ void yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char 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)){ - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(part_tree)),&model2,&itar)){ - 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); - } else { - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(part_tree); - } - } else { + 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(device_tree); + 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); @@ -1765,7 +1765,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ } break; case YON_PAGE_INSTALL_ERROR: - case YON_PAGE_COMPLETION: + 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); @@ -1777,6 +1777,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ 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: { @@ -1809,44 +1810,50 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ 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)){ - char *cur_device; - gtk_tree_model_get(model,&iter,0,&cur_device,-1); - yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); - 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_REGION); - } else { + 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(widgets->GrubInstallDevicesTree); + 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); + yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); + 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_REGION); + } 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)){ - char *cur_device; - gtk_tree_model_get(model,&iter,0,&cur_device,-1); - yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); - yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update"); - yon_config_remove_by_key(part_parameter); + 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); + yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); + 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_REGION); - } else { - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),NO_DEVICE_CHOSEN_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); - yon_ubl_status_highlight_incorrect(widgets->GrubUpdateDevicesTree); - } - }break; + }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)); @@ -1858,27 +1865,36 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ 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->SeparateDevicesTree)),&model,&iter)){ - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateSysSectionTree)),&model2,&itar)){ - 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); - if (gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->SeparateUserSysSectionTree)),&model2,&itar)){ - gtk_tree_model_get(model2,&itar,0,&user_section,-1); - yon_config_register(AUTOINSTALL_DEVICE,AUTOINSTALL_DEVICE_command,cur_device); - yon_config_register(part_parameter,part_parameter_command,yon_char_unite(system_section,",",user_section,NULL)); - yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"custom"); - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_INSTALLATION_BEGIN); - return; - } else { - - } - } else { - - } - } else { - + 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; @@ -1937,10 +1953,9 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ } break; case -2: { // Cancel/repeat - switch (page){ + switch (page){ case YON_PAGE_COMPLETION: case YON_PAGE_INSTALL_ERROR:{ - // GtkWidget *dialog = gtk_dialog_new(); gtk_main_quit(); }break; default:{ diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 9428d6c..eb2f302 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -998,6 +998,7 @@ and help you install UBLinux on your computer + True True False True @@ -4386,7 +4387,6 @@ installed. True True - in True @@ -4424,7 +4424,6 @@ installed. True False vertical - 5 True @@ -4472,8 +4471,9 @@ installed. True False - Attention! The selected OS UBLinux components will be installed + <b>Attention!</b> The selected OS UBLinux components will be installed separately into the selected partition. + True 0 From 24d01882081299a048c1bfae63fe37718ae5034f Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 3 Oct 2024 11:16:37 +0600 Subject: [PATCH 5/9] Fixed GRUB install and GRUB update installation --- source/ubinstall-gtk.c | 34 ++++++- source/ubinstall-gtk.h | 2 + ubinstall-gtk.glade | 208 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 241 insertions(+), 3 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 5409958..fab9f97 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -1817,13 +1817,21 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ } 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_REGION); + gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END); } break; @@ -1837,13 +1845,21 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ } 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_REGION); + gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_CONFIGURE_END); }break; case YON_PAGE_OPTIONS_SEPARATE:{ @@ -1939,7 +1955,15 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ break; case YON_PAGE_CONFIGURE_END:{ - gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_USERS); + 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_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->OSRadio))||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:{ @@ -2405,9 +2429,11 @@ main_window *yon_main_window_complete(){ widgets->GpartedGrubInstallButton = yon_gtk_builder_get_widget(builder,"GpartedGrubInstallButton"); widgets->GrubInstallDevicesTree = yon_gtk_builder_get_widget(builder,"GrubInstallDevicesTree"); + widgets->GrubInstallPartitionTree = yon_gtk_builder_get_widget(builder,"GrubInstallPartitionTree"); widgets->GpartedGrubUpdateButton = yon_gtk_builder_get_widget(builder,"GpartedGrubUpdateButton"); widgets->GrubUpdateDevicesTree = yon_gtk_builder_get_widget(builder,"GrubUpdateDevicesTree"); + widgets->GrubUpdatePartitionTree = yon_gtk_builder_get_widget(builder,"GrubUpdatePartitionTree"); widgets->GpartedSeparateButton = yon_gtk_builder_get_widget(builder,"GpartedSeparateButton"); widgets->SeparateDevicesTree = yon_gtk_builder_get_widget(builder,"SeparateDevicesTree"); @@ -2496,6 +2522,8 @@ main_window *yon_main_window_complete(){ 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); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index b79da64..6deb980 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -337,9 +337,11 @@ typedef struct { GtkWidget *GpartedGrubInstallButton; GtkWidget *GrubInstallDevicesTree; + GtkWidget *GrubInstallPartitionTree; GtkWidget *GpartedGrubUpdateButton; GtkWidget *GrubUpdateDevicesTree; + GtkWidget *GrubUpdatePartitionTree; GtkWidget *GpartedSeparateButton; GtkWidget *SeparateDevicesTree; diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index eb2f302..27f6c66 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -5156,6 +5156,110 @@ separately into the selected partition. 0 + + + True + False + vertical + + + True + False + Choose a section: + 0 + + + False + True + 0 + + + + + True + True + in + 128 + + + True + True + PartitionsList + 0 + + + + + + Section + + + + 0 + + + + + + + Capacity + + + + 1 + + + + + + + Free space + + + + 2 + + + + + + + File system + + + + 3 + + + + + + + Mark + + + + 4 + + + + + + + + + False + True + 1 + + + + + False + True + 1 + + @@ -5427,6 +5531,110 @@ separately into the selected partition. 0 + + + True + False + vertical + + + True + False + Choose a section: + 0 + + + False + True + 0 + + + + + True + True + in + 128 + + + True + True + PartitionsList + 0 + + + + + + Section + + + + 0 + + + + + + + Capacity + + + + 1 + + + + + + + Free space + + + + 2 + + + + + + + File system + + + + 3 + + + + + + + Mark + + + + 4 + + + + + + + + + False + True + 1 + + + + + False + True + 1 + + From 26d8007a86da54a524a63185c690b3dd4b27b220 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 3 Oct 2024 11:39:24 +0600 Subject: [PATCH 6/9] Fixed user data configuration showed for unwanted installation modes --- source/ubinstall-gtk.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index fab9f97..3df60cb 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -1916,6 +1916,7 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ 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:{ @@ -1955,13 +1956,13 @@ void on_page_navigation_clicked(GtkWidget *self, main_window *widgets){ 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)))){ + 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->OSRadio))||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio)) + } else { //||||gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->UserDataOnlyRadio)) gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),YON_PAGE_USERS); } } break; From b9bd2686eece43ffc4486823c703dcc20f957762 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Thu, 3 Oct 2024 15:53:41 +0600 Subject: [PATCH 7/9] Removed some debug messages. Progress bard are hidden at installation completion --- source/ubinstall-gtk.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 3df60cb..2c4331c 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -1113,7 +1113,6 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){ } break; case YON_PAGE_COMPLETION:{ - yon_debug_output("%s\n","Enter completion"); yon_switch_page_render(widgets,7); gtk_widget_set_sensitive(widgets->BackButton,0); gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); @@ -1121,19 +1120,18 @@ void on_page_changed(GtkWidget *,GtkWidget *,int page, main_window *widgets){ gtk_widget_hide(widgets->PackageInstallationLabel); gtk_widget_set_sensitive(widgets->NextButton,1); gtk_widget_set_sensitive(widgets->CancelInstallButton,1); - yon_debug_output("%s\n","Done widgets"); g_mutex_lock(&main_config.install_mutex); main_config.install_complete=0; g_mutex_unlock(&main_config.install_mutex); main_config.save_done=0; - yon_debug_output("%s\n","Done variables"); 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); - yon_debug_output("%s\n","Done labels and button icon"); } + gtk_widget_hide(gtk_widget_get_parent(widgets->InstallationProgress)); + gtk_widget_hide(gtk_widget_get_parent(widgets->PackageInstallationProgress)); break; case YON_PAGE_COMPLETED:{ From d388b734fc873a42757eda98fbe792ddd9994e46 Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 4 Oct 2024 09:45:15 +0600 Subject: [PATCH 8/9] Advanced installation options are hidden --- ubinstall-gtk.glade | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 27f6c66..033b9a1 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -71,6 +71,13 @@ + + True + False + + + + 999999 16 @@ -998,7 +1005,6 @@ and help you install UBLinux on your computer - True True False True @@ -1088,7 +1094,6 @@ and help you install UBLinux on your computer True False - gtk-missing-image False From c3b512471be7328fd8ee71522e09cc113d08ceff Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 4 Oct 2024 16:23:11 +0600 Subject: [PATCH 9/9] Fixed saving of parameters --- source/ubinstall-gtk.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 2c4331c..13a59c1 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -1193,20 +1193,20 @@ void *on_setup_system_configuration(void * data){ main_window *widgets = (main_window*)data; if (widgets){}; int size; - config_str all_parameters = yon_char_parsed_new(&size, - config(user_name_parameter), - config(user_gecos_parameter), - config(user_password_parameter), - config(root_password_parameter), - config(autologin_parameter), - config(xkbmodel_parameter), - config(xkblayout_parameter), - config(xkbvariant_parameter), - config(xkboptions_parameter), - config(hostname_parameter), - config(zone_parameter), - config(lang_parameter), - config(locale_parameter), + 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," ");