Merge pull request 'Fixed language switching' (#158) from YanTheKaller/ubinstall-gtk:master into master

Reviewed-on: #158
master
Dmitry Razumov 3 weeks ago
commit ab36ec2792

@ -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;i<size;i++){
char *lang_ab = yon_locale_get_parameter(locales[i],YON_LOCALE_LANG_AB);
char *code = yon_locale_get_parameter(locales[i],YON_LOCALE_CODE);
char *language = yon_locale_get_parameter(locales[i],YON_LOCALE_LANGUAGE);
char *lang_name = yon_locale_get_parameter(locales[i],YON_LOCALE_LANG_NAME);
char *territory = yon_locale_get_parameter(locales[i],YON_LOCALE_TERRITORY);
@ -736,14 +736,14 @@ void set_locales_list(main_window *widgets){
gtk_list_store_set(widgets->InstallerCountryList,&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;

@ -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);

@ -855,6 +855,7 @@ and help you install system on your computer</property>
<property name="can-focus">True</property>
<property name="model">InstallerLanguageList</property>
<property name="headers-visible">False</property>
<property name="search-column">1</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>
@ -904,6 +905,7 @@ and help you install system on your computer</property>
<property name="headers-visible">False</property>
<property name="search-column">1</property>
<property name="tooltip-column">3</property>
<property name="activate-on-single-click">True</property>
<child internal-child="selection">
<object class="GtkTreeSelection"/>
</child>

Loading…
Cancel
Save