pull/60/head
parent 440c3a03e0
commit 275a0da980

@ -329,31 +329,39 @@ void yon_interface_update(main_window *widgets){
char *system_locale = config(locale_parameter);
if (!yon_char_is_empty(system_locale)){
char *chosen_langs = "";
for_iter(widgets->LanguagesList,&iter){
char *cur=NULL, *render = NULL;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&render,2,&cur,-1);
if (strstr(system_locale,cur)){
gtk_list_store_set((widgets->LanguagesList),&iter,0,1,-1);
chosen_langs = yon_char_unite(chosen_langs,!yon_char_is_empty(chosen_langs)?";":"",render,NULL);
for_iter(widgets->LanguagesList,&iter){
char *cur=NULL, *render = NULL;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,1,&render,2,&cur,-1);
if (strstr(system_locale,cur)){
gtk_list_store_set((widgets->LanguagesList),&iter,0,1,-1);
chosen_langs = yon_char_unite(chosen_langs,!yon_char_is_empty(chosen_langs)?";":"",render,NULL);
} else {
gtk_list_store_set((widgets->LanguagesList),&iter,0,0,-1);
}
}
if (!yon_char_is_empty(chosen_langs)){
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),chosen_langs);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),1);
free(chosen_langs);
} else {
gtk_list_store_set((widgets->LanguagesList),&iter,0,0,-1);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0);
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
}
}
if (!yon_char_is_empty(chosen_langs)){
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),chosen_langs);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),1);
free(chosen_langs);
} else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0);
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
}
// gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
} else {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0);
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(widgets->LanguagesSensitiveCheck),0);
int langsize;
config_str lang = default_langs(&langsize);
for_iter(widgets->LanguagesList,&iter){
gtk_list_store_set((widgets->LanguagesList),&iter,0,0,-1);
char *cur;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,2,&cur,-1);
if (lang&&yon_char_parsed_check_exist(lang,langsize,cur)>-1){
gtk_list_store_set(widgets->LanguagesList,&iter,0,1,-1);
} else {
gtk_list_store_set(widgets->LanguagesList,&iter,0,0,-1);
}
}
// gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(widgets->LanguagesFilter));
}
@ -748,7 +756,7 @@ void on_language_window_accept(GtkWidget *,dictionary *dict){
gtk_entry_set_text(GTK_ENTRY(widgets->AvailableLanguagesEntry),"");
GtkTreeIter iter;
int size;
config_str lang_parsed = yon_char_parsed_new(&size,"en_US.UTF-8","ru_RU.UTF-8",NULL);
config_str lang_parsed = default_langs(&size);
char *final = "";
for_iter(widgets->LanguagesList,&iter){
@ -828,6 +836,26 @@ void on_language_clicked(GtkWidget *, main_window *widgets){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1);
}
int size;
int found=0;
int statusfound=0;
config_str langs = default_langs(&size);
GtkTreeIter iter;
for_iter(widgets->LanguagesList,&iter){
char *cur;
int status;
gtk_tree_model_get(GTK_TREE_MODEL(widgets->LanguagesList),&iter,0,&status,2,&cur,-1);
if (status){
statusfound++;
if (yon_char_parsed_check_exist(langs,size,cur)>-1)
found++;
}
}
if ((found==size)&&statusfound==size){
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(window->DefaultCheck),1);
}
printf("%d == %d == %d\n",found,size,statusfound);
dictionary *dict=NULL;
yon_dictionary_add_or_create_if_exists_with_data(dict,"widgets",widgets);
yon_dictionary_add_or_create_if_exists_with_data(dict,"window",window);
@ -2467,6 +2495,9 @@ main_window *yon_main_window_complete(){
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->KeyboardImage),gdk_pixbuf_scale_simple(widgets->keyboard_original,600,400,GDK_INTERP_BILINEAR));
gtk_image_set_from_pixbuf(GTK_IMAGE(widgets->SlidesImage),gdk_pixbuf_scale_simple(widgets->slides_original[0],600,400,GDK_INTERP_BILINEAR));
int langsize;
config_str lang = default_langs(&langsize);
GtkTreeIter iter;
gtk_list_store_clear(widgets->LanguagesList);
parsed = yon_file_open(languages_path,&size);
@ -2481,6 +2512,8 @@ main_window *yon_main_window_complete(){
yon_char_parsed_free(cur,cur_size);
}
yon_char_parsed_free(parsed,size);
if (lang)
yon_char_parsed_free(lang,langsize);
parsed = yon_dir_get_contents(zone_path,&size);
for (int i=0;i<size;i++){

@ -147,6 +147,8 @@ NULL
#define ubconfig_file_create(target) yon_char_unite("ubconfig --target \"",target,"\" create",NULL)
#define default_langs(size) yon_char_parsed_new(size,"en_US.UTF-8","ru_RU.UTF-8",NULL);
typedef char* string;
string version_application;

Loading…
Cancel
Save