diff --git a/source/ubinstall-gtk.c b/source/ubinstall-gtk.c index ef027ca..a14a8ef 100644 --- a/source/ubinstall-gtk.c +++ b/source/ubinstall-gtk.c @@ -631,10 +631,7 @@ void on_locale_changed(GtkWidget *,main_window *widgets){ gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->InstallerCountryFilter)); char *config_code = config(installer_lang_parameter); if (yon_char_is_empty(config_code)){ - config_code = yon_char_new(setlocale(LC_ALL,NULL)); - if (strstr(config_code,".")){ - yon_char_divide_search_self(config_code,".",-1); - } + config_code = setlocale(LC_ALL,NULL); } GtkTreeIter itar; for_iter(widgets->InstallerCountryFilter,&iter){ @@ -653,13 +650,15 @@ void on_locale_changed(GtkWidget *,main_window *widgets){ } -void on_installer_language_changed(GtkWidget *self, main_window *widgets){ +void on_installer_language_changed(GtkWidget *self,GtkTreePath*,GtkTreeViewColumn*, main_window *widgets){ char *window_language; GtkTreeIter iter; GtkTreeModel *model; if (!gtk_tree_selection_get_selected(gtk_tree_view_get_selection(GTK_TREE_VIEW(widgets->CountryLanguagesTree)),&model,&iter)) return; - gtk_tree_model_get(model,&iter,2,&window_language,-1); + gtk_tree_model_get(model,&iter,2,&window_language,-1); if (!yon_char_is_empty(window_language)){ + char *prev_lang = config(installer_lang_parameter); + if (!yon_char_is_empty(prev_lang)&&!strcmp(prev_lang,window_language)) return; yon_config_register(installer_lang_parameter,installer_lang_parameter_command,(char*)window_language); } char *active_lang_id = gtk_tree_model_get_string_from_iter(model,&iter); @@ -703,7 +702,7 @@ void set_locales_list(main_window *widgets){ gtk_list_store_clear(widgets->InstallerLanguageList); gtk_list_store_clear(widgets->InstallerCountryList); - char *config_code = config(installer_lang_parameter); + char *config_code = yon_char_new(config(installer_lang_parameter)); int size; config_str locales = yon_locale_get_all_codes(&size); qsort(locales,size,sizeof(char*),yon_char_parsed_compare); @@ -712,6 +711,7 @@ void set_locales_list(main_window *widgets){ textdomain(LOCALES_DOMAIN_NAME); for (int i=0;iInstallerCountryList,&itar, 0,lang_ab, 1,_(country), - 2,locales[i], + 2,code, 3,title, -1); if (yon_char_is_empty(config_code)){ - config_code=setlocale(LC_ALL,NULL); - char *temp = strstr(config_code,"."); - if (temp) temp[0]='\0'; + config_code=yon_char_new(setlocale(LC_ALL,NULL)); } + char *temp = strstr(config_code,"."); + if (temp) temp[0]='\0'; 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); @@ -1108,7 +1108,7 @@ void yon_main_window_create(main_window *widgets){ gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(widgets->LayoutsFilter),3); g_signal_connect(G_OBJECT(widgets->LanguagesTree),"cursor-changed",G_CALLBACK(on_locale_changed),widgets); - g_signal_connect(G_OBJECT(widgets->CountryLanguagesTree),"cursor-changed",G_CALLBACK(on_installer_language_changed),widgets); + g_signal_connect(G_OBJECT(widgets->CountryLanguagesTree),"row-activated",G_CALLBACK(on_installer_language_changed),widgets); // g_signal_connect(G_OBJECT(widgets->LanguageCombo),"changed",G_CALLBACK(on_locale_changed),widgets); g_signal_connect(G_OBJECT(widgets->AdditionalSoftwareCell),"toggled",G_CALLBACK(on_additional_software_toggled),widgets); g_signal_connect(G_OBJECT(widgets->StartupChosenCell),"toggled",G_CALLBACK(on_srartup_services_toggled),widgets); @@ -1272,7 +1272,7 @@ main_window *yon_main_window_complete(){ } int main(int argc, char *argv[]){ - setlocale(LC_ALL, ""); + __attribute__((unused)) char *locale = setlocale(LC_ALL, ""); textdomain (LocaleName); config_init(); config_str unfound = NULL; diff --git a/source/ubinstall-gtk.h b/source/ubinstall-gtk.h index 5b40d35..2541f38 100755 --- a/source/ubinstall-gtk.h +++ b/source/ubinstall-gtk.h @@ -1177,7 +1177,7 @@ void yon_resize_images_update(main_window *widgets); void on_vnc_toggled(GtkWidget *self, main_window *widgets); void yon_main_window_create(main_window *widgets); void set_locales_list(main_window *widgets); -void on_installer_language_changed(GtkWidget *self, main_window *widgets); +void on_installer_language_changed(GtkWidget *self,GtkTreePath*,GtkTreeViewColumn*, main_window *widgets); gboolean on_country_filter(GtkTreeModel *self, GtkTreeIter *iter, main_window *widgets); int yon_char_parsed_compare(const void *a, const void *b); gboolean yon_os_component_insert(struct row_data *row_input); diff --git a/ubinstall-gtk.glade b/ubinstall-gtk.glade index e20465b..53a7dd8 100644 --- a/ubinstall-gtk.glade +++ b/ubinstall-gtk.glade @@ -855,6 +855,7 @@ and help you install system on your computer True InstallerLanguageList False + 1 @@ -904,6 +905,7 @@ and help you install system on your computer False 1 3 + True