From 368ae27920af3e1fbcf9729f153f08ed4071b03f Mon Sep 17 00:00:00 2001 From: Ivan Yarcev Date: Fri, 14 Nov 2025 16:35:59 +0600 Subject: [PATCH] Fixed locales loading --- sync_parameters.csv => csv/sync_parameters.csv | 0 source/CMakeLists.txt | 2 +- source/ubl-settings-usergroups-user.c | 13 +++---------- source/ubl-settings-usergroups.c | 5 +++++ source/ubl-settings-usergroups.h | 1 + ubl-settings-usergroups-user.glade | 1 - 6 files changed, 10 insertions(+), 12 deletions(-) rename sync_parameters.csv => csv/sync_parameters.csv (100%) diff --git a/sync_parameters.csv b/csv/sync_parameters.csv similarity index 100% rename from sync_parameters.csv rename to csv/sync_parameters.csv diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index e0daa2d..1758e4b 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -39,7 +39,7 @@ set(DEPENDFILES ../ubl-settings-usergroups-savesettings.glade ../ubl-settings-usergroups-confirmation.glade ../ubl-settings-usergroups-system-deletion-confirmation.glade - ../sync_parameters.csv + ../csv/sync_parameters.csv ../csv/hash_list.csv ../csv/shell_list.csv ../gresource.xml diff --git a/source/ubl-settings-usergroups-user.c b/source/ubl-settings-usergroups-user.c index fef7338..d4c025c 100644 --- a/source/ubl-settings-usergroups-user.c +++ b/source/ubl-settings-usergroups-user.c @@ -193,7 +193,7 @@ gboolean yon_user_set_locales(GtkWidget *target){ char *languages_string = config(LOCALE_parameter); int languages_size; config_str languages = yon_char_parse(languages_string,&languages_size,","); - GHashTable *hash = g_object_get_data(G_OBJECT(target),"hash"); + GHashTable *hash = main_config.locales_hash; char *config_lang = g_object_get_data(G_OBJECT(target),"value"); for (int i=0;iMainNotebook=yon_gtk_builder_get_widget(builder,"MainNotebook"); window->expiration_unix=NULL; window->last_uid=NULL; - window->locale_thread=NULL; yon_gtk_entry_block_symbols(GTK_ENTRY(window->userUserNameEntry),"'\":\n"); yon_gtk_entry_block_symbols(GTK_ENTRY(window->userLoginEntry),"'\"=:\n"); @@ -298,7 +293,6 @@ ubl_settings_usergroups_user_window *yon_ubl_settings_usergroups_user_new(){ } gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(window->userShellCombo),"Set",SET_LABEL); yon_char_parsed_free(shells,shell_size); - window->locale_thread=g_thread_new("locales",(GThreadFunc)yon_load_languages,window->LanguageCombo); gtk_combo_box_set_active(GTK_COMBO_BOX(window->userShellCombo),0); window->old_password=NULL; window->old_username=NULL; @@ -416,7 +410,6 @@ void on_user_login_update(GtkWidget *, ubl_settings_usergroups_user_window *wind void on_user_save(GtkWidget *self, dictionary *dict){ main_window *widgets = yon_dictionary_get_data(dict->first,main_window*); ubl_settings_usergroups_user_window *window = yon_dictionary_get_data(dict->first->next,ubl_settings_usergroups_user_window*); - g_thread_join(window->locale_thread); yon_ubl_status_box_despawn(GTK_CONTAINER(window->StatusBox)); char *final_user=""; char *uid_string = NULL; diff --git a/source/ubl-settings-usergroups.c b/source/ubl-settings-usergroups.c index 277c249..2621550 100644 --- a/source/ubl-settings-usergroups.c +++ b/source/ubl-settings-usergroups.c @@ -1559,6 +1559,7 @@ void on_main_add(GtkWidget *, main_window *widgets){ g_signal_connect(G_OBJECT(window->UserOkButton),"clicked",G_CALLBACK(on_user_save),dict); gtk_window_set_transient_for(GTK_WINDOW(window->CreateUserWindow),GTK_WINDOW(widgets->Window)); + yon_user_set_locales(window->LanguageCombo); gtk_widget_show(window->CreateUserWindow); } else { gtk_tree_selection_unselect_all(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->GroupsTree))); @@ -1756,6 +1757,7 @@ void on_main_edit(GtkWidget *, main_window *widgets){ } } } + yon_user_set_locales(window->LanguageCombo); } } else { @@ -2189,6 +2191,7 @@ void config_init(){ main_config.launch_arguments=NULL; main_config.launch_size=0; int login_size; + main_config.locales_hash = g_hash_table_new(g_str_hash,g_str_equal); config_str login_defs = yon_file_open(uid_path,&login_size); for (int i=0;iUsersList; main_config.groups_list = widgets->GroupsList; + g_thread_new("locales",(GThreadFunc)yon_load_languages,NULL); + /* Signal connection | Присоединение сигналов */ g_signal_connect(G_OBJECT(widgets->AddButton),"clicked",G_CALLBACK(on_main_add),widgets); diff --git a/source/ubl-settings-usergroups.h b/source/ubl-settings-usergroups.h index e46815e..2223431 100644 --- a/source/ubl-settings-usergroups.h +++ b/source/ubl-settings-usergroups.h @@ -206,6 +206,7 @@ typedef struct { int save_config; int launch_size; config_str launch_arguments; + GHashTable *locales_hash; } config; extern config main_config; diff --git a/ubl-settings-usergroups-user.glade b/ubl-settings-usergroups-user.glade index e4cfeba..2a85d8c 100644 --- a/ubl-settings-usergroups-user.glade +++ b/ubl-settings-usergroups-user.glade @@ -621,7 +621,6 @@ True - False False 0