Test fix for language loading

pull/207/head
parent 035af18ceb
commit 30580d2274

@ -384,6 +384,9 @@ enum YON_PAGES yon_recovery_get_next(main_window *widgets){
void yon_page_init(main_window *widgets, enum YON_PAGES page){ void yon_page_init(main_window *widgets, enum YON_PAGES page){
switch(page){ switch(page){
case YON_PAGE_WELCOME:
set_locales_list(widgets);
break;
case YON_PAGE_CONFIG_HUB: case YON_PAGE_CONFIG_HUB:
yon_configuration_hub_init(widgets); yon_configuration_hub_init(widgets);
break; break;
@ -459,18 +462,12 @@ void yon_page_init(main_window *widgets, enum YON_PAGES page){
void on_page_next_clicked(GtkWidget *, main_window *widgets){ void on_page_next_clicked(GtkWidget *, main_window *widgets){
enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)); enum YON_PAGES page = gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook));
printf("2\n");
page = yon_page_get_next(widgets,page); page = yon_page_get_next(widgets,page);
printf("3\n");
if ((int)page!=-1){ if ((int)page!=-1){
gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page); gtk_notebook_set_current_page(GTK_NOTEBOOK(widgets->Notebook),page);
printf("4\n");
yon_page_init(widgets,page); yon_page_init(widgets,page);
printf("5\n");
} }
printf("6\n");
yon_page_update(widgets); yon_page_update(widgets);
printf("7\n");
} }
void on_page_prev_clicked(GtkWidget *, main_window *widgets){ void on_page_prev_clicked(GtkWidget *, main_window *widgets){

@ -38,8 +38,9 @@ void on_config_local_load(GtkWidget *,main_window *widgets){
if (!yon_char_is_empty(main_config.config_load_path)) free(main_config.config_load_path); if (!yon_char_is_empty(main_config.config_load_path)) free(main_config.config_load_path);
main_config.config_load_path = yon_char_new("system"); main_config.config_load_path = yon_char_new("system");
yon_load_proceed(YON_CONFIG_LOCAL); yon_load_proceed(YON_CONFIG_LOCAL);
// yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
main_config.load_mode=YON_CONFIG_LOCAL; main_config.load_mode=YON_CONFIG_LOCAL;
yon_main_window_update_locale(widgets);
yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
} }
void on_config_global_load(GtkWidget *,main_window *widgets){ void on_config_global_load(GtkWidget *,main_window *widgets){
@ -50,17 +51,19 @@ void on_config_global_load(GtkWidget *,main_window *widgets){
if (!yon_char_is_empty(main_config.config_load_path)) free(main_config.config_load_path); if (!yon_char_is_empty(main_config.config_load_path)) free(main_config.config_load_path);
main_config.config_load_path = yon_char_new("global"); main_config.config_load_path = yon_char_new("global");
yon_load_proceed(YON_CONFIG_GLOBAL); yon_load_proceed(YON_CONFIG_GLOBAL);
// yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
main_config.load_mode=YON_CONFIG_GLOBAL; main_config.load_mode=YON_CONFIG_GLOBAL;
yon_main_window_update_locale(widgets);
yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
} }
void on_config_custom_load(GtkWidget *,main_window *){ void on_config_custom_load(GtkWidget *,main_window *widgets){
yon_load_proceed(YON_CONFIG_CUSTOM); yon_load_proceed(YON_CONFIG_CUSTOM);
// yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook))); // yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
main_config.load_mode=YON_CONFIG_CUSTOM; main_config.load_mode=YON_CONFIG_CUSTOM;
yon_main_window_update_locale(widgets);
} }
void on_config_custom_load_last(GtkWidget *,main_window *){ void on_config_custom_load_last(GtkWidget *,main_window *widgets){
yon_config_clean(); yon_config_clean();
if (!yon_char_is_empty(config_get_default_command)) if (!yon_char_is_empty(config_get_default_command))
yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL); yon_config_load_config(YON_CONFIG_DEFAULT,config_get_default_command,NULL);
@ -68,6 +71,7 @@ void on_config_custom_load_last(GtkWidget *,main_window *){
yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL); yon_config_load_config(YON_CONFIG_CUSTOM,command,NULL);
// yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook))); // yon_page_init(widgets,gtk_notebook_get_current_page(GTK_NOTEBOOK(widgets->Notebook)));
main_config.load_mode=YON_CONFIG_CUSTOM; main_config.load_mode=YON_CONFIG_CUSTOM;
yon_main_window_update_locale(widgets);
} }
void on_config_global_local_save(GtkWidget *,main_window *widgets){ void on_config_global_local_save(GtkWidget *,main_window *widgets){
@ -188,7 +192,6 @@ void *on_config_save(void *data){
char *command = yon_debug_output("%s\n",save_config_command(yon_char_parsed_to_string(parameters,size," "))); char *command = yon_debug_output("%s\n",save_config_command(yon_char_parsed_to_string(parameters,size," ")));
yon_char_parsed_free(parameters,size); yon_char_parsed_free(parameters,size);
yon_debug_output("%s\n","Entered installation"); yon_debug_output("%s\n","Entered installation");
printf("1\n");
if (system(yon_debug_output("%s\n",command))){ if (system(yon_debug_output("%s\n",command))){
gdk_threads_add_idle((GSourceFunc)on_install_error,widgets); gdk_threads_add_idle((GSourceFunc)on_install_error,widgets);

@ -444,7 +444,7 @@ void on_exit_accepted(main_window *){
gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){ gboolean on_yon_exit(GtkWidget *,GdkEvent*, main_window *widgets){
if (!main_config.exit_accepted||(main_config.save_done&&main_config.install_complete)){ if (!main_config.exit_accepted||(main_config.save_done&&main_config.install_complete)){
if (!main_config.install_complete&&!main_config.save_configured){ if (!main_config.install_complete||!main_config.save_configured){
dialog_confirmation_data *data = yon_confirmation_dialog_data_new(); dialog_confirmation_data *data = yon_confirmation_dialog_data_new();
data->action_text=INTERRUPT_TEXT_LABEL; data->action_text=INTERRUPT_TEXT_LABEL;
data->title=WARNING_TITLE_LABEL; data->title=WARNING_TITLE_LABEL;
@ -504,20 +504,41 @@ void on_installer_language_changed(GtkWidget *self,GtkTreePath*,GtkTreeViewColum
char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL); char *command = yon_char_unite(ubconfig_dull_command,"--target system ",command_parameters,NULL);
g_signal_handlers_block_by_func(G_OBJECT(widgets->MainWindow),G_CALLBACK(on_yon_exit),widgets); g_signal_handlers_block_by_func(G_OBJECT(widgets->MainWindow),G_CALLBACK(on_yon_exit),widgets);
if (!system(command)){}; if (!system(command)){};
yon_main_window_update_locale(widgets);
g_signal_handlers_block_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),widgets);
model = GTK_TREE_MODEL(widgets->InstallerLanguageList);
gtk_tree_model_get_iter_from_string(model,&iter,active_lang_id);
g_signal_handlers_unblock_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),widgets);
}
void yon_main_window_update_locale(main_window *widgets){
int size;
char *command = yon_config_parameter_prepare_command(get_localisation_command,main_config.config_load_path,NULL,NULL);
config_str locale_output = yon_config_load(command,&size);
char *locale = NULL;
if (size&&strcmp(locale_output[0],"(null)\n")){
yon_char_remove_last_symbol(locale_output[0],'\n');
free(yon_char_divide_search(locale_output[0],"=",-1));
yon_char_remove_brackets(locale_output[0]);
locale = locale_output[0];
} else if (size>1&&strcmp(locale_output[1],"(null)\n")){
yon_char_remove_last_symbol(locale_output[1],'\n');
free(yon_char_divide_search(locale_output[1],"=",-1));
yon_char_remove_brackets(locale_output[1]);
locale = locale_output[1];
}
locale = setlocale(LC_ALL,locale);
yon_char_parsed_free(locale_output,size);
gtk_widget_destroy(widgets->MainWindow); gtk_widget_destroy(widgets->MainWindow);
setlocale(LC_ALL, window_language);
textdomain(LocaleName); textdomain(LocaleName);
g_setenv("LANGUAGE",window_language,1); g_setenv("LANGUAGE",locale,1);
yon_main_window_create(widgets); yon_main_window_create(widgets);
char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL); char *path = yon_char_unite(yon_ubl_user_get_home_directory(),"/.config/",LocaleName,"/",LocaleName,".conf",NULL);
yon_window_config_setup(GTK_WINDOW(widgets->MainWindow)); yon_window_config_setup(GTK_WINDOW(widgets->MainWindow));
yon_window_config_load(path); yon_window_config_load(path);
g_signal_handlers_block_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),widgets);
model = GTK_TREE_MODEL(widgets->InstallerLanguageList);
gtk_tree_model_get_iter_from_string(model,&iter,active_lang_id);
g_signal_handlers_unblock_by_func(G_OBJECT(self),G_CALLBACK(on_locale_changed),widgets);
} }
typedef struct{ typedef struct{
@ -581,13 +602,11 @@ void set_locales_list(main_window *widgets){
char *temp = strstr(config_code,"."); char *temp = strstr(config_code,".");
if (temp) temp[0]='\0'; if (temp) temp[0]='\0';
if (!strcmp(config_code,locales[i])){ if (!strcmp(config_code,locales[i])){
g_signal_handlers_block_by_func(G_OBJECT(widgets->CountryLanguagesTree),G_CALLBACK(on_installer_language_changed),widgets);
GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter); GtkTreePath *path = gtk_tree_model_get_path(GTK_TREE_MODEL(widgets->InstallerLanguageList),&iter);
gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0); gtk_tree_view_scroll_to_cell(GTK_TREE_VIEW(widgets->LanguagesTree),path,0,0,0,0);
gtk_tree_path_free(path); gtk_tree_path_free(path);
gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&iter); gtk_tree_selection_select_iter(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->LanguagesTree)),&iter);
on_locale_changed(NULL,widgets); on_locale_changed(NULL,widgets);
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->CountryLanguagesTree),G_CALLBACK(on_installer_language_changed),widgets);
} }
} }
textdomain(LocaleName); textdomain(LocaleName);
@ -1239,6 +1258,7 @@ int main(int argc, char *argv[]){
} }
} }
gtk_init(&argc,&argv); gtk_init(&argc,&argv);
bind_textdomain_codeset(LocaleName,"UTF-8");
main_window *widgets = NULL; main_window *widgets = NULL;
if (widgets){}; if (widgets){};
int fullscreen = 0; int fullscreen = 0;

@ -255,10 +255,12 @@ layout && /description:/ {\
#define NETWORK_devdown_parameter_command(target) yon_char_unite("ubconfig get autoinstall AUTOINSTALL['ubconfig set [network] NETWORK[", target, "@devdown]']", NULL) #define NETWORK_devdown_parameter_command(target) yon_char_unite("ubconfig get autoinstall AUTOINSTALL['ubconfig set [network] NETWORK[", target, "@devdown]']", NULL)
#define NETWORK(target) yon_char_unite("NETWORK[", target, "@connmod]", NULL) #define NETWORK(target) yon_char_unite("NETWORK[", target, "@connmod]", NULL)
#define installer_locale_parameter "AUTOINSTALL[installer_locale]" #define installer_locale_parameter "AUTOINSTALL[installer_locale]"
#define installer_locale_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[installer_lang]" #define installer_locale_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[installer_locale]"
#define source_parameter "AUTOINSTALL[source]" #define source_parameter "AUTOINSTALL[source]"
#define source_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[source]" #define source_parameter_command "ubconfig --source global get [autoinstall] AUTOINSTALL[source]"
#define get_localisation_command "ubconfig -ea --source global get [autoinstall] AUTOINSTALL[installer_locale] -- get [locale] LANG"
#define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ", parameters, "; nice ubinstall2 --debug autoinstall", NULL) #define save_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] AUTOINSTALL[log]=yes ", parameters, "; nice ubinstall2 --debug autoinstall", NULL)
#define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, ";nice ubinstall2 autoconfig", NULL) #define set_user_config_command(parameters) yon_char_unite("ubconfig --target system set [autoinstall] ", parameters, ";nice ubinstall2 autoconfig", NULL)
@ -1452,3 +1454,4 @@ void yon_os_password_open(GtkWidget *, main_window *widgets);
void yon_userdata_password_open(GtkWidget *, main_window *widgets); void yon_userdata_password_open(GtkWidget *, main_window *widgets);
double yon_password_check_func(yon_password_window *window, const char *password_string); double yon_password_check_func(yon_password_window *window, const char *password_string);
void yon_source_update(source_window *window); void yon_source_update(source_window *window);
void yon_main_window_update_locale(main_window *widgets);
Loading…
Cancel
Save