From f5a2cb310059255c12d1a30ed67e2ad2f8f7c888 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Mon, 23 Mar 2026 16:40:49 +0600 Subject: [PATCH 01/11] Fixed Timezone page utc on zone --- source/ubinstall-gtk-region.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index a6080d3..464d731 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -31,7 +31,13 @@ void on_region_changed(GtkComboBox *self, main_window *widgets){ if (!yon_char_is_empty(active)){ config_str parsed = yon_timezone_get_zones_from_region(active,&size); for (size_t i=0;iZoneCombo),parsed[i],_(parsed[i])); + char *timezone = yon_char_unite(active,"/",parsed[i],NULL); + char *utc = yon_timezone_get_utc(timezone); + if (utc&&strlen(utc)>3) utc[3]='\0'; + char *zone_label = yon_char_unite("(UTC ",utc,") ",_(parsed[i]),NULL); + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->ZoneCombo),parsed[i],zone_label); + free(zone_label); + free(timezone); } if (size) yon_char_parsed_free(parsed,size); gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->ZoneCombo),0); -- 2.35.1 From 883f312038e799b983fdfdd284cc1c7737bc886a Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Mon, 23 Mar 2026 17:02:47 +0600 Subject: [PATCH 02/11] Test fix for Kernel addon page descriptions wrapping --- source/CMakeLists.txt | 2 +- ubinstall-gtk-kernel-addon-row.glade | 3 ++- ubinstall-gtk.glade | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 6b070d8..7bc1a19 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -105,7 +105,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Werror -Wmissing-declarations -O2 -pipe -fno-plt -fexceptions \ -Wformat -Werror=format-security \ -fstack-clash-protection -fcf-protection") - + string(FIND "${CMAKE_CXX_FLAGS}" "-D_FORTIFY_SOURCE" FORTIFY_FOUND) if(FORTIFY_FOUND EQUAL -1) diff --git a/ubinstall-gtk-kernel-addon-row.glade b/ubinstall-gtk-kernel-addon-row.glade index c418d9a..c8f3238 100644 --- a/ubinstall-gtk-kernel-addon-row.glade +++ b/ubinstall-gtk-kernel-addon-row.glade @@ -157,7 +157,8 @@ True False 5 - 0 + True + 1 False diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 65ecca6..4265cf8 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -3216,6 +3216,7 @@ Select a different installation source. True True + never in -- 2.35.1 From 129ca528948aff7fa9342886c600bb7615c39c4d Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Mon, 23 Mar 2026 18:05:43 +0600 Subject: [PATCH 03/11] Fixed format parameters --- source/ubinstall-gtk-installation.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c index 4a0d2d3..4c162da 100644 --- a/source/ubinstall-gtk-installation.c +++ b/source/ubinstall-gtk-installation.c @@ -132,7 +132,7 @@ int yon_install_same_partition_save(main_window *widgets){ yon_config_register(part_parameter,part_parameter_command,part); if (gtk_switch_get_active(GTK_SWITCH(widgets->SameInstallationFormatSwitch))){ - yon_config_register(part_format_parameter,part_format_parameter_command,"yes"); + yon_config_register(part_format_parameter,part_format_parameter_command,"no"); char *device_name = (char*)gtk_entry_get_text(GTK_ENTRY(widgets->SameInstallationSectionNameEntry)); if (!yon_char_is_empty(device_name)){ yon_config_register(part_label_parameter,part_label_parameter_command,device_name); @@ -148,7 +148,7 @@ int yon_install_same_partition_save(main_window *widgets){ } } else { - yon_config_register(part_format_parameter,part_format_parameter_command,"no"); + yon_config_register(part_format_parameter,part_format_parameter_command,"yes"); yon_config_remove_by_key(part_label_parameter); yon_config_remove_by_key(part_format_parameter); yon_config_remove_by_key(part_fs_type_parameter); -- 2.35.1 From 9c2181262c3ccd2e03bd4cbfd1a8fb3dbdd33245 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 24 Mar 2026 10:39:21 +0600 Subject: [PATCH 04/11] Added packages and modules existing checking --- source/ubinstall-gtk-kernel.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index 55d337c..2c30983 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -428,6 +428,13 @@ void yon_kernel_addon_init(main_window *widgets){ for (int i=1;iInstallCheck),0); } - if (yon_packages_check_installed(modules)||yon_packages_check_installed(package)){ - gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); - gtk_widget_set_sensitive(row->InstallCheck,0); - } + if (yon_packages_check_installed(modules)||yon_packages_check_installed(package)){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); + gtk_widget_set_sensitive(row->InstallCheck,0); + } + yon_char_parsed_free(parsed,parsed_size); } yon_kernel_addon_resize(widgets); -- 2.35.1 From ea730a0f9bf13d6874cb7e2e3e799f965f953a2a Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 24 Mar 2026 11:37:34 +0600 Subject: [PATCH 05/11] Removed kernel addon labels rmb menu --- source/ubinstall-gtk-kernel.c | 9 +++++++++ source/ubinstall-gtk.h | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/source/ubinstall-gtk-kernel.c b/source/ubinstall-gtk-kernel.c index 2c30983..9642e14 100644 --- a/source/ubinstall-gtk-kernel.c +++ b/source/ubinstall-gtk-kernel.c @@ -332,6 +332,13 @@ void on_kernel_addon_info(GtkLabel *self){ gtk_widget_show(window->Window); } +gboolean on_kernel_addon_menu_block(GObject *, GdkEventButton *event){ + if (event->button==3){ + return 1; + } + return 0; +} + kernel_addon_row *yon_kernel_addon_row_new(){ kernel_addon_row *row = new(kernel_addon_row); GtkBuilder *builder = gtk_builder_new_from_resource(glade_path_kernel_addon_row); @@ -349,6 +356,8 @@ kernel_addon_row *yon_kernel_addon_row_new(){ g_signal_connect(G_OBJECT(row->InstallCheck),"toggled",G_CALLBACK(on_kernel_addon_install_enabled),row); g_signal_connect(G_OBJECT(row->ModuleLabel),"activate-link",G_CALLBACK(on_kernel_addon_info),NULL); g_signal_connect(G_OBJECT(row->PackageLabel),"activate-link",G_CALLBACK(on_kernel_addon_info),NULL); + g_signal_connect(G_OBJECT(row->PackageLabel),"button-press-event",G_CALLBACK(on_kernel_addon_menu_block),row); + g_signal_connect(G_OBJECT(row->ModuleLabel),"button-press-event",G_CALLBACK(on_kernel_addon_menu_block),row); row->row = gtk_list_box_row_new(); gtk_container_add(GTK_CONTAINER(row->row),row->RowBox); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 00b04c7..bd1b0b9 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -1590,4 +1590,5 @@ void on_bootloader_admin_toggled(GtkWidget *, char *path, main_window *widgets); void on_bootloader_user_remove(GtkWidget *, main_window *widgets); void on_software_uncheck_all(GtkWidget *, main_window *widgets); gboolean on_kernel_enabled_toggled(GtkWidget *self, GdkEventButton *, kernel_row *row); -void on_status_update(GtkWidget *,main_window *widgets); \ No newline at end of file +void on_status_update(GtkWidget *,main_window *widgets); +gboolean on_kernel_addon_menu_block(GObject *self, GdkEventButton *event); \ No newline at end of file -- 2.35.1 From b529ad7d1479f32e3523e2a9e69d882994159581 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 24 Mar 2026 12:02:42 +0600 Subject: [PATCH 06/11] Test fix for package check size --- source/ubinstall-gtk-config-hub.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/source/ubinstall-gtk-config-hub.c b/source/ubinstall-gtk-config-hub.c index 2f717c5..a1c4cac 100644 --- a/source/ubinstall-gtk-config-hub.c +++ b/source/ubinstall-gtk-config-hub.c @@ -24,7 +24,9 @@ int yon_installation_check_packages_size(main_window *widgets){ config_str module_names = yon_os_components_get_modules(&modules_size); modules = yon_char_parsed_to_string(module_names,modules_size,","); } - + if (yon_char_is_empty(install_mode)){ + return 0; + } if (!strcmp(install_mode,"fast")){ char *device = config(device_parameter); GtkTreeIter iter; @@ -45,7 +47,7 @@ int yon_installation_check_packages_size(main_window *widgets){ for (int i=0;i3&&!yon_char_is_empty(parsed[3])){ + if (parsed&&parsed_size>2&&!strcmp(parsed[2],part)&&parsed_size>3&&!yon_char_is_empty(parsed[3])){ part_size = atol(parsed[3]); yon_char_parsed_free(parsed,parsed_size); @@ -59,7 +61,7 @@ int yon_installation_check_packages_size(main_window *widgets){ for (int i=0;i3&&!yon_char_is_empty(parsed[3])){ + if (parsed&&parsed_size>2&&!strcmp(parsed[2],part)&&parsed_size>3&&!yon_char_is_empty(parsed[3])){ part_size = atol(parsed[3]); yon_char_parsed_free(parsed,parsed_size); -- 2.35.1 From 415440b751559b24d60a2d5cc02a49d9b32d623a Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 24 Mar 2026 13:10:02 +0600 Subject: [PATCH 07/11] Fixed bootloader user allowed symbols --- source/ubinstall-gtk-bootloader.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index 3bd4bc4..8838db2 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -115,7 +115,7 @@ bootloader_user_window *yon_bootloader_user_window_new(){ g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_signal_connect(G_OBJECT(window->PasswordButton),"clicked",G_CALLBACK(yon_password_change),window); yon_gtk_entry_set_password_visibility_icon(GTK_ENTRY(window->PasswordEntry)); - yon_gtk_entry_block_restricted_symbols(GTK_ENTRY(window->UsernameEntry)); + yon_on_entry_set_allowed_symbols(GTK_ENTRY(window->UsernameEntry),"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_-*"); return window; } -- 2.35.1 From 816f77059ef277a566d06393a783bec53ac2810b Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 24 Mar 2026 13:56:02 +0600 Subject: [PATCH 08/11] Added debut output for saving commands --- source/ubinstall-gtk-bootloader.c | 2 +- source/ubinstall-gtk-components.c | 2 +- source/ubinstall-gtk-grub.c | 2 +- source/ubinstall-gtk-installation.c | 6 +++--- source/ubinstall-gtk-keyboard.c | 2 +- source/ubinstall-gtk-language.c | 2 +- source/ubinstall-gtk-network.c | 2 +- source/ubinstall-gtk-packages.c | 2 +- source/ubinstall-gtk-region.c | 2 +- source/ubinstall-gtk-separate.c | 2 +- source/ubinstall-gtk-source.c | 2 +- source/ubinstall-gtk-startup-apps.c | 2 +- source/ubinstall-gtk-startup-services.c | 2 +- source/ubinstall-gtk-users.c | 2 +- 14 files changed, 16 insertions(+), 16 deletions(-) diff --git a/source/ubinstall-gtk-bootloader.c b/source/ubinstall-gtk-bootloader.c index 8838db2..28762bf 100644 --- a/source/ubinstall-gtk-bootloader.c +++ b/source/ubinstall-gtk-bootloader.c @@ -38,7 +38,7 @@ int yon_bootloader_save(main_window *widgets){ config_str users = yon_config_get_all_keys_by_key(GRUB_PASSWORD_parameter_search,&user_size); yon_char_parsed_add_or_create_if_exists(users,&user_size,GRUB_SUPERUSERS_parameter); yon_char_parsed_add_or_create_if_exists(users,&user_size,GRUB_TIMEOUT_parameter); - yon_config_save_list_simple(users, user_size,main_config.config_load_path); + yon_debug_output("%s\n",yon_config_save_list_simple(users, user_size,main_config.config_load_path)); } yon_bootloader_interface_update(widgets); diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index bbddf47..5b1ff81 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -36,7 +36,7 @@ int yon_kernel_save(main_window *widgets){ } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,packages_parameter, KERNEL_BOOT_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,packages_parameter, KERNEL_BOOT_parameter,NULL)); } return 1; diff --git a/source/ubinstall-gtk-grub.c b/source/ubinstall-gtk-grub.c index 0e151f3..b987f8a 100644 --- a/source/ubinstall-gtk-grub.c +++ b/source/ubinstall-gtk-grub.c @@ -57,7 +57,7 @@ int yon_grub_update_save(main_window *widgets){ yon_config_register(AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL_command,"grub_update"); if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,device_parameter,part_parameter,AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,device_parameter,part_parameter,AUTOINSTALL_TYPE_INSTALL,AUTOINSTALL_TYPE_INSTALL,NULL)); } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-installation.c b/source/ubinstall-gtk-installation.c index 4c162da..0d714a0 100644 --- a/source/ubinstall-gtk-installation.c +++ b/source/ubinstall-gtk-installation.c @@ -30,7 +30,7 @@ int yon_install_common_save(main_window *widgets){ } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_label_parameter,part_fs_type_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_label_parameter,part_fs_type_parameter,NULL)); } return 1; } @@ -104,7 +104,7 @@ int yon_install_separate_save(main_window *widgets){ } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,part_format_parameter,part_label_parameter,part_fs_type_parameter,device_parameter,part_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,part_format_parameter,part_label_parameter,part_fs_type_parameter,device_parameter,part_parameter,NULL)); } return 1; } @@ -154,7 +154,7 @@ int yon_install_same_partition_save(main_window *widgets){ yon_config_remove_by_key(part_fs_type_parameter); } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,part_format_parameter,part_size_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,part_format_parameter,part_size_parameter,part_label_parameter,part_fs_type_parameter,AUTOINSTALL_TYPE_INSTALL,device_parameter,part_parameter,NULL)); } return 1; } diff --git a/source/ubinstall-gtk-keyboard.c b/source/ubinstall-gtk-keyboard.c index 7aa1ea6..a4714c7 100644 --- a/source/ubinstall-gtk-keyboard.c +++ b/source/ubinstall-gtk-keyboard.c @@ -48,7 +48,7 @@ int yon_keyboard_save(main_window *widgets){ yon_config_remove_by_key(num_lock_boot_parameter); } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,xkbmodel_parameter,num_lock_boot_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,xkbmodel_parameter,num_lock_boot_parameter,NULL)); } on_options_save(NULL,widgets); return 1; diff --git a/source/ubinstall-gtk-language.c b/source/ubinstall-gtk-language.c index 450d100..5a524e9 100644 --- a/source/ubinstall-gtk-language.c +++ b/source/ubinstall-gtk-language.c @@ -273,7 +273,7 @@ int yon_language_save(main_window *widgets){ yon_config_remove_by_key(locale_parameter); } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,lang_parameter,locale_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,lang_parameter,locale_parameter,NULL)); } return 1; diff --git a/source/ubinstall-gtk-network.c b/source/ubinstall-gtk-network.c index cad5d64..5212ee9 100644 --- a/source/ubinstall-gtk-network.c +++ b/source/ubinstall-gtk-network.c @@ -310,7 +310,7 @@ int yon_network_save(main_window *widgets){ yon_char_parsed_add_or_create_if_exists(connections,&connect_size,DOMAIN_admanger_parameter); yon_char_parsed_add_or_create_if_exists(connections,&connect_size,NTPSERVERS_parameter); yon_char_parsed_add_or_create_if_exists(connections,&connect_size,hostname_parameter); - yon_config_save_list_simple(connections,connect_size,main_config.config_load_path); + yon_debug_output("%s\n",yon_config_save_list_simple(connections,connect_size,main_config.config_load_path)); } return 1; } diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index b8bfc1b..3f5352b 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -28,7 +28,7 @@ int yon_packages_tab_save(main_window *widgets){ } } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,packages_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,packages_parameter,NULL)); } return 1; } diff --git a/source/ubinstall-gtk-region.c b/source/ubinstall-gtk-region.c index 464d731..3896c57 100644 --- a/source/ubinstall-gtk-region.c +++ b/source/ubinstall-gtk-region.c @@ -19,7 +19,7 @@ int yon_region_save(main_window *widgets){ yon_config_register(zone_parameter,zone_parameter_command,final); free(final); if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,zone_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,zone_parameter,NULL)); } return 1; } diff --git a/source/ubinstall-gtk-separate.c b/source/ubinstall-gtk-separate.c index 809e43b..b84b960 100644 --- a/source/ubinstall-gtk-separate.c +++ b/source/ubinstall-gtk-separate.c @@ -23,7 +23,7 @@ int yon_install_options_save(GtkWidget *device_tree, GtkWidget *part_tree,char * if(cur_section) free(cur_section); if(cur_device) free(cur_device); if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,device_parameter,AUTOINSTALL_TYPE_INSTALL,part_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,device_parameter,AUTOINSTALL_TYPE_INSTALL,part_parameter,NULL)); } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-source.c b/source/ubinstall-gtk-source.c index 8e1791e..77eb8e1 100644 --- a/source/ubinstall-gtk-source.c +++ b/source/ubinstall-gtk-source.c @@ -222,7 +222,7 @@ void on_source_accept(GtkWidget *,source_window *window){ yon_config_remove_by_key(source_parameter); } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,source_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,source_parameter,NULL)); } on_subwindow_close(window->Window); free(window); diff --git a/source/ubinstall-gtk-startup-apps.c b/source/ubinstall-gtk-startup-apps.c index a39af09..71489b1 100644 --- a/source/ubinstall-gtk-startup-apps.c +++ b/source/ubinstall-gtk-startup-apps.c @@ -216,7 +216,7 @@ int yon_startup_app_save(main_window *widgets){ yon_config_remove_by_key(AUTOEXEC_parameter); } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,AUTOEXEC_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,AUTOEXEC_parameter,NULL)); } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-startup-services.c b/source/ubinstall-gtk-startup-services.c index b03bffb..9d4a656 100644 --- a/source/ubinstall-gtk-startup-services.c +++ b/source/ubinstall-gtk-startup-services.c @@ -220,7 +220,7 @@ int yon_startup_save(main_window *widgets){ yon_config_remove_by_key(SERVICES_ENABLE_parameter); } if (!main_config.configure_mode){ - yon_config_save_args_simple(main_config.config_load_path,SERVICES_ENABLE_parameter,NULL); + yon_debug_output("%s\n",yon_config_save_args_simple(main_config.config_load_path,SERVICES_ENABLE_parameter,NULL)); } return 1; } \ No newline at end of file diff --git a/source/ubinstall-gtk-users.c b/source/ubinstall-gtk-users.c index 4c302d4..e20f7b7 100644 --- a/source/ubinstall-gtk-users.c +++ b/source/ubinstall-gtk-users.c @@ -37,7 +37,7 @@ int yon_users_save(main_window *widgets){ config_str users = yon_config_get_all_keys_by_key(USERADD_parameter_search,&users_size); yon_char_parsed_add_or_create_if_exists(users,&users_size,root_password_parameter); yon_char_parsed_add_or_create_if_exists(users,&users_size,autologin_parameter); - yon_config_save_list_simple(users,users_size,main_config.config_load_path); + yon_debug_output("%s\n",yon_config_save_list_simple(users,users_size,main_config.config_load_path)); } return 1; } -- 2.35.1 From 9e624c383382764a96677a446c31f4923d93f28d Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 24 Mar 2026 15:03:06 +0600 Subject: [PATCH 09/11] Added Uncheck all toggle on main components page --- source/ubinstall-gtk-components.c | 24 ++++++++++++++++++++++++ source/ubinstall-gtk.c | 2 ++ source/ubinstall-gtk.h | 4 +++- ubinstall-gtk.glade | 14 +++++++++++++- 4 files changed, 42 insertions(+), 2 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 5b1ff81..9427d8a 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -73,6 +73,27 @@ int yon_kernel_addon_save(main_window *widgets){ return 1; } +void on_os_components_uncheck_all(GtkWidget *,main_window *widgets){ + int active = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck)); + switch(active){ + case 1:{ + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); + GList *iter; + for(iter = list;iter;iter=iter->next){ + os_row *row = g_object_get_data(iter->data,"kernel_row"); + int sensitive = gtk_widget_get_sensitive(row->InstallCheck); + if (sensitive){ + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); + } + } + } break; + } + gtk_widget_hide(widgets->OSSoftwareUncheckAllCheck); + g_signal_handlers_block_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->OSSoftwareUncheckAllCheck),0); + g_signal_handlers_unblock_by_func(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),on_os_components_uncheck_all,widgets); +} + int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets){ long pacman_size = 0; { @@ -83,6 +104,9 @@ int yon_os_components_check_packages_size(GtkWidget *, main_window *widgets){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ long cur_size = yon_packages_get_installed_size(YON_PACKAGES_ALL,row->name); pacman_size += cur_size; + if (gtk_widget_get_sensitive(row->InstallCheck)){ + gtk_widget_show(widgets->OSSoftwareUncheckAllCheck); + } } } } diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index 059f475..69f7d9b 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -446,6 +446,7 @@ void yon_main_window_create(main_window *widgets){ widgets->OSFormatEncryptionEntry = yon_gtk_builder_get_widget(builder,"OSFormatEncryptionEntry"); widgets->OSFormatEncryptionButton = yon_gtk_builder_get_widget(builder,"OSFormatEncryptionButton"); widgets->OSComponentsOverallSizeLabel = yon_gtk_builder_get_widget(builder,"OSComponentsOverallSizeLabel"); + widgets->OSSoftwareUncheckAllCheck = yon_gtk_builder_get_widget(builder,"OSSoftwareUncheckAllCheck"); widgets->UserdataDevicesTree = yon_gtk_builder_get_widget(builder,"UserdataDevicesTree"); widgets->UserdataSysSectionTree = yon_gtk_builder_get_widget(builder,"UserdataSysSectionTree"); @@ -703,6 +704,7 @@ void yon_main_window_create(main_window *widgets){ g_signal_connect(G_OBJECT(widgets->SamePlaceDeviceTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); g_signal_connect(G_OBJECT(widgets->UserdataDevicesTree),"cursor-changed",G_CALLBACK(on_device_selection_changed),widgets); + g_signal_connect(G_OBJECT(widgets->OSSoftwareUncheckAllCheck),"toggled",G_CALLBACK(on_os_components_uncheck_all),widgets); g_signal_connect(G_OBJECT(widgets->AdditionalComponentsUncheckAllCheck),"toggled",G_CALLBACK(on_software_uncheck_all),widgets); g_signal_connect(G_OBJECT(widgets->NextInstallationSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets); g_signal_connect(G_OBJECT(widgets->UserdataFormatSizeSpin),"value-changed",G_CALLBACK(yon_size_changed),widgets); diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index bd1b0b9..f9dc4ee 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -665,6 +665,7 @@ typedef struct GtkWidget *OSSpinner; GtkWidget *OSOverlay; GtkWidget *OSComponentsOverallSizeLabel; + GtkWidget *OSSoftwareUncheckAllCheck; GtkWidget *UserdataGpartedButton; GtkWidget *UserdataUpdateGpartedButton; @@ -1591,4 +1592,5 @@ void on_bootloader_user_remove(GtkWidget *, main_window *widgets); void on_software_uncheck_all(GtkWidget *, main_window *widgets); gboolean on_kernel_enabled_toggled(GtkWidget *self, GdkEventButton *, kernel_row *row); void on_status_update(GtkWidget *,main_window *widgets); -gboolean on_kernel_addon_menu_block(GObject *self, GdkEventButton *event); \ No newline at end of file +gboolean on_kernel_addon_menu_block(GObject *self, GdkEventButton *event); +void on_os_components_uncheck_all(GtkWidget *,main_window *widgets); \ No newline at end of file diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index 4265cf8..f8a9ff0 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -2091,7 +2091,6 @@ agreement none - True False No modules were found. Select a different installation source. @@ -2136,6 +2135,19 @@ Select a different installation source. 5 5 5 + + + Uncheck all + True + False + True + + + False + True + 0 + + True -- 2.35.1 From 447b7432df65b070b60238e36e9e8d224c448268 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Tue, 24 Mar 2026 16:39:12 +0600 Subject: [PATCH 10/11] Main components loading fix --- source/ubinstall-gtk-components.c | 57 +++++++++++++++++-------------- source/ubinstall-gtk.h | 3 +- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 9427d8a..577c03d 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -231,6 +231,7 @@ void *yon_modules_list_load(main_window *widgets){ main_config.modules_size = size; } g_idle_add((GSourceFunc)yon_spinner_switch_off,widgets->OSSpinner); + g_idle_add((GSourceFunc)yon_os_components_load,widgets); g_thread_exit(NULL); } @@ -275,29 +276,10 @@ gboolean yon_spinner_switch_off(GtkSpinner *target){ return G_SOURCE_REMOVE; } -void yon_modules_missed_func(main_window *widgets){ - yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),MAIN_COMPONENTS_NOT_FOUND_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); -} - - -void yon_os_components_init(main_window *widgets){ - if (!main_config.configure_mode){ - yon_config_update_by_args(modules_parameter,NULL); - } - int size = 0; +gboolean yon_os_components_load(main_window *widgets){ + int size=0; GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); - GList *iter; - for (iter=list;iter;iter=iter->next){ - os_row *row = g_object_get_data(iter->data,"kernel_row"); - free(row); - gtk_widget_destroy(GTK_WIDGET(iter->data)); - } - gtk_overlay_add_overlay(GTK_OVERLAY(widgets->OSOverlay),widgets->OSSpinner); - gtk_spinner_start(GTK_SPINNER(widgets->OSSpinner)); - gtk_widget_show(widgets->OSSpinner); - g_thread_new("geag",(GThreadFunc)yon_modules_list_load,widgets); - while(gtk_events_pending()) gtk_main_iteration(); - list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); + GList *iter; for(iter = list;iter;iter=iter->next){ os_row *row = g_object_get_data(iter->data,"kernel_row"); int cur_size = 0; @@ -316,7 +298,7 @@ void yon_os_components_init(main_window *widgets){ config_str parsed = yon_char_parse(modules,&parsed_size,","); for(iter = list;iter;iter=iter->next){ os_row *row = g_object_get_data(iter->data,"kernel_row"); - char *target = row->name; + char *target = row->source; if (yon_char_parsed_check_exist(parsed,parsed_size,target)>-1){ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),1); } else { @@ -325,6 +307,30 @@ void yon_os_components_init(main_window *widgets){ } yon_char_parsed_free(parsed,parsed_size); } + return G_SOURCE_REMOVE; +} + +void yon_modules_missed_func(main_window *widgets){ + yon_ubl_status_box_spawn(GTK_CONTAINER(widgets->StatusBox),MAIN_COMPONENTS_NOT_FOUND_LABEL,5,BACKGROUND_IMAGE_FAIL_TYPE); +} + +void yon_os_components_init(main_window *widgets){ + if (!main_config.configure_mode){ + yon_config_update_by_args(modules_parameter,NULL); + } + // int size = 0; + GList *list = gtk_container_get_children(GTK_CONTAINER(widgets->OSSoftwareListBox)); + GList *iter; + for (iter=list;iter;iter=iter->next){ + os_row *row = g_object_get_data(iter->data,"kernel_row"); + free(row); + gtk_widget_destroy(GTK_WIDGET(iter->data)); + } + gtk_overlay_add_overlay(GTK_OVERLAY(widgets->OSOverlay),widgets->OSSpinner); + gtk_spinner_start(GTK_SPINNER(widgets->OSSpinner)); + gtk_widget_show(widgets->OSSpinner); + g_thread_new("geag",(GThreadFunc)yon_modules_list_load,widgets); + while(gtk_events_pending()) gtk_main_iteration(); } void on_software_uncheck_all(GtkWidget *, main_window *widgets){ @@ -437,8 +443,9 @@ gboolean yon_software_insert(struct row_data *row_input){ } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); } - char *modules_param = config(modules_parameter); - if (modules_param&&!strcmp(modules_param,"auto")){ + char *modules_prm = config(modules_parameter); + char *modules_param = NULL; + if (modules_prm&&!strcmp(modules_prm,"auto")){ int final_size; config_str final = NULL; for (int i=0;i Date: Tue, 24 Mar 2026 17:30:10 +0600 Subject: [PATCH 11/11] Fixed close postsave action combo box --- locale/ubinstall-gtk.pot | 3 +++ locale/ubinstall-gtk_ru.po | 5 ++++- source/ubinstall-gtk-page-switch.c | 9 ++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/locale/ubinstall-gtk.pot b/locale/ubinstall-gtk.pot index 49bdd66..e110b2b 100644 --- a/locale/ubinstall-gtk.pot +++ b/locale/ubinstall-gtk.pot @@ -5336,4 +5336,7 @@ msgstr "" #: source/libublsettingsui-gtk3.h:675 msgid "Uncheck all" +msgstr "" + +msgid "Close installer" msgstr "" \ No newline at end of file diff --git a/locale/ubinstall-gtk_ru.po b/locale/ubinstall-gtk_ru.po index 65f4f4a..2eac892 100644 --- a/locale/ubinstall-gtk_ru.po +++ b/locale/ubinstall-gtk_ru.po @@ -5531,4 +5531,7 @@ msgstr "Предоставить root-доступ" #: source/libublsettingsui-gtk3.h:675 msgid "Uncheck all" -msgstr "Снять всё" \ No newline at end of file +msgstr "Снять всё" + +msgid "Close installer" +msgstr "Закрыть установщик" \ No newline at end of file diff --git a/source/ubinstall-gtk-page-switch.c b/source/ubinstall-gtk-page-switch.c index aef5eda..1f01c48 100644 --- a/source/ubinstall-gtk-page-switch.c +++ b/source/ubinstall-gtk-page-switch.c @@ -301,7 +301,14 @@ int yon_page_save(main_window *widgets, enum YON_PAGES page){ return yon_installation_start(widgets); break; case YON_PAGE_CONFIGURE_END: - return yon_config_save(widgets); + int status = yon_config_save(widgets); + if (status){ + const char *endaction = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->ConfigHubRebootCombo)); + if (!yon_char_is_empty(endaction)&&!strcmp(endaction,"close")){ + on_exit_accepted(widgets); + } + } + return status; default:return 1; } return 1; -- 2.35.1