From 595d6452340f89ece6340022bb15e909781a2289 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 13 Mar 2026 15:55:45 +0600 Subject: [PATCH 1/2] Config mode removed dialog before main window opened --- source/ubinstall-gtk-startup-apps.c | 1 - source/ubinstall-gtk-startup-services.c | 18 +++++++++--------- source/ubinstall-gtk-ui-lang.c | 4 ++-- source/ubinstall-gtk.c | 8 ++------ source/ubl-strings.h | 2 +- 5 files changed, 14 insertions(+), 19 deletions(-) diff --git a/source/ubinstall-gtk-startup-apps.c b/source/ubinstall-gtk-startup-apps.c index 0a37ec6..d150db4 100644 --- a/source/ubinstall-gtk-startup-apps.c +++ b/source/ubinstall-gtk-startup-apps.c @@ -159,7 +159,6 @@ startup_service_window *yon_startup_app_window_new(){ g_signal_connect(G_OBJECT(window->CancelButton),"clicked",G_CALLBACK(on_subwindow_close),NULL); g_object_set_data(G_OBJECT(window->AcceptButton),"startup_service_window",window); - return window; } diff --git a/source/ubinstall-gtk-startup-services.c b/source/ubinstall-gtk-startup-services.c index 45dbe95..fbc1bd7 100644 --- a/source/ubinstall-gtk-startup-services.c +++ b/source/ubinstall-gtk-startup-services.c @@ -52,16 +52,16 @@ void on_startup_services_remove(GtkWidget *self,main_window *widgets){ void yon_startup_services_setup(main_window *widgets){ GtkTreeIter iter; gtk_list_store_clear(widgets->StartupList); - int size; - config_str services = yon_resource_open_file(services_list_path,&size); - for (int i=1;iStartupList,&iter); - gtk_list_store_set(widgets->StartupList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1); - } + int size; + config_str services = yon_resource_open_file(services_list_path,&size); + for (int i=1;iStartupList,&iter); + gtk_list_store_set(widgets->StartupList,&iter,0,1,1,parsed[0],2,yon_char_return_if_exist(parsed[1],""),3,yon_char_return_if_exist(_(parsed[2]),""),-1); } + } char *startup = config(SERVICES_ENABLE_parameter); if (!yon_char_is_empty(startup)){ diff --git a/source/ubinstall-gtk-ui-lang.c b/source/ubinstall-gtk-ui-lang.c index 32e61b8..57ffe2b 100644 --- a/source/ubinstall-gtk-ui-lang.c +++ b/source/ubinstall-gtk-ui-lang.c @@ -73,14 +73,14 @@ void yon_startup_language_init(){ } if (size>1&&!yon_char_is_empty(parsed[1])&&strcmp(parsed[1],"(null)\n")){ yon_char_remove_last_symbol(parsed[1],'\n'); - if (strstr(parsed[0],"=")) + if (strstr(parsed[1],"=")) free(yon_char_divide_search(parsed[1],"=",-1)); yon_char_remove_brackets(parsed[1]); yon_config_register(installer_locale_parameter,installer_locale_parameter_command,parsed[1]); } if (size>2&&!yon_char_is_empty(parsed[2])&&strcmp(parsed[2],"(null)\n")){ yon_char_remove_last_symbol(parsed[2],'\n'); - if (strstr(parsed[0],"=")) + if (strstr(parsed[2],"=")) free(yon_char_divide_search(parsed[2],"=",-1)); yon_char_remove_brackets(parsed[2]); yon_config_register(installer_locale_parameter,installer_locale_parameter_command,parsed[2]); diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index d95c7ac..f61ce03 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -920,6 +920,7 @@ void yon_main_window_create(main_window *widgets){ } } if (main_config.force_ini){ + while(gtk_events_pending()) gtk_main_iteration(); if (yon_configuration_path_check(main_config.config_save_path)){ GList *box = gtk_container_get_children(GTK_CONTAINER(widgets->ConfigurationModeMenuItem)); GList *children = gtk_container_get_children(GTK_CONTAINER(box->data)); @@ -964,7 +965,7 @@ void *yon_maximize(main_window *widgets){ */ main_window *yon_main_window_complete(){ if (main_config.force_ini){ //Check if config path exists - if (yon_configuration_path_check(main_config.config_save_path)){ + if (!yon_char_is_empty(main_config.config_save_path)){ { main_config.configure_mode=1; } @@ -974,11 +975,6 @@ main_window *yon_main_window_complete(){ widgets = malloc(sizeof(main_window)); memset(widgets,0,sizeof(main_window)); yon_main_window_create(widgets); - - // yon_set_locales_list(widgets); - // yon_main_window_update_locale(widgets); - // // yon_window_config_custom_window_setup(GTK_WINDOW(widgets->MainWindow),"MainWindow"); - return widgets; } diff --git a/source/ubl-strings.h b/source/ubl-strings.h index d90f427..0bd55e2 100644 --- a/source/ubl-strings.h +++ b/source/ubl-strings.h @@ -6,7 +6,7 @@ #define ADDITIONAL_ARGS yon_char_unite(\ " --dry-run ",_("Dry run; Installation will not start"),"\n",\ - " --ini ", _("Set ini file for configuration mode"),\ + " --file ", _("Set ini file for configuration mode"),\ NULL) #define KEYBOARD_TITLE_LABEL _("Keyboard layout") -- 2.35.1 From 7cf5aa212ba7145c2f3f40d1243026b37514fd90 Mon Sep 17 00:00:00 2001 From: Ivan Dmitrievich Yartsev Date: Fri, 13 Mar 2026 17:29:47 +0600 Subject: [PATCH 2/2] Fixed packages deselecting --- source/ubinstall-gtk-components.c | 21 +++++++++++++++------ source/ubinstall-gtk-packages.c | 5 +++++ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/source/ubinstall-gtk-components.c b/source/ubinstall-gtk-components.c index 7dadc0a..0b1f27a 100644 --- a/source/ubinstall-gtk-components.c +++ b/source/ubinstall-gtk-components.c @@ -22,6 +22,10 @@ int yon_kernel_save(main_window *widgets){ if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->EnableRadio))){ enabled_module = row->package; } + } else { + char *append_str = yon_char_replace(row->modules," ",","); + yon_config_remove_elements(packages_parameter,append_str,","); + free(append_str); } } @@ -56,6 +60,10 @@ int yon_kernel_addon_save(main_window *widgets){ kernel_addon_row *row = g_object_get_data(G_OBJECT(iter->data),"kernel_row"); if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(row->InstallCheck))){ yon_config_append_element(packages_parameter,row->modules,","); + } else { + char *append_str = yon_char_replace(row->modules," ",","); + yon_config_remove_elements(packages_parameter,row->modules,","); + free(append_str); } } @@ -315,6 +323,10 @@ int yon_software_save(main_window *widgets){ if (!yon_char_check_element(config_val,target,",")){ yon_config_append_element(packages_parameter,target,","); } + } else{ + char *append_str = yon_char_replace(target," ",","); + yon_config_remove_elements(packages_parameter,target,","); + free(append_str); } } g_list_free(list); @@ -382,7 +394,6 @@ gboolean yon_software_insert(struct row_data *row_input){ } else { gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); } - // gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(row->InstallCheck),0); return G_SOURCE_REMOVE; } @@ -395,7 +406,6 @@ void yon_software_init(main_window *widgets){ gtk_widget_destroy(GTK_WIDGET(iter->data)); } int base_size; - // config_str base = yon_config_load(get_available_modules_command,&base_size); config_str base = yon_packages_find(YON_PACKAGES_ALL,"ubm-",(gsize*)&base_size); for (int i=0;iPacmanSoftwareChosenList); - char *config_parameter = config(packages_parameter); - if (yon_char_is_empty(config_parameter)){ - yon_config_register(packages_parameter,packages_parameter_command,NULL); - } + yon_config_register(packages_parameter,packages_parameter_command,NULL); + yon_config_set_status(packages_parameter,-1); + for_iter(model,&iter){ char *target; gtk_tree_model_get(model,&iter,1,&target,-1); diff --git a/source/ubinstall-gtk-packages.c b/source/ubinstall-gtk-packages.c index 40f02b3..fa821bc 100644 --- a/source/ubinstall-gtk-packages.c +++ b/source/ubinstall-gtk-packages.c @@ -4,6 +4,7 @@ int yon_packages_tab_save(main_window *widgets){ GtkTreeIter parentiter, subiter,packiter; if (yon_char_is_empty(config(packages_parameter))){ yon_config_register(packages_parameter,packages_parameter_command,NULL); + yon_config_set_status(packages_parameter,-1); } for_iter(widgets->PackagesList,&parentiter){ for (int valid2 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&subiter,&parentiter);valid2;valid2 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&subiter)){ @@ -12,11 +13,15 @@ int yon_packages_tab_save(main_window *widgets){ gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&subiter,0,&status,1,&package,3,&selectable,-1); if (selectable&&status){ yon_config_append_element(packages_parameter,package,","); + }else if (selectable&&!status){ + yon_config_remove_elements(packages_parameter,package,","); } else { for (int valid3 = gtk_tree_model_iter_children(GTK_TREE_MODEL(widgets->PackagesList),&packiter,&subiter);valid3;valid3 = gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->PackagesList),&packiter)){ gtk_tree_model_get(GTK_TREE_MODEL(widgets->PackagesList),&packiter,0,&status,1,&package,3,&selectable,-1); if (status){ yon_config_append_element(packages_parameter,package,","); + } else { + yon_config_remove_elements(packages_parameter,package,","); } } } -- 2.35.1