|
|
|
|
@ -69,8 +69,7 @@ void yon_load_proceed(YON_CONFIG_TYPE type){
|
|
|
|
|
} else {
|
|
|
|
|
gtk_widget_destroy(dialog);
|
|
|
|
|
}
|
|
|
|
|
char *command = yon_char_unite(config_get_command(path),NULL);
|
|
|
|
|
yon_debug_output("%s\n",command);
|
|
|
|
|
char *command = config_get_command(path);
|
|
|
|
|
yon_config_load_config(type,command,NULL);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
@ -98,6 +97,20 @@ void yon_config_custom_load(GtkWidget *, main_window *widgets){
|
|
|
|
|
yon_interface_update(widgets);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_language_update(main_window *widgets){
|
|
|
|
|
gtk_combo_box_text_remove_all(GTK_COMBO_BOX_TEXT(widgets->LanguageCombo));
|
|
|
|
|
gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(widgets->LanguageCombo),DEFAULT_LABEL);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
for_iter(GTK_TREE_MODEL(widgets->languagelist),&iter){
|
|
|
|
|
char *target, *code;
|
|
|
|
|
int active;
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&target,1,&code,2,&active,-1);
|
|
|
|
|
if (active){
|
|
|
|
|
gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(widgets->LanguageCombo),code,target);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void yon_interface_update(main_window *widgets){
|
|
|
|
|
|
|
|
|
|
g_signal_handlers_block_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
|
|
|
|
|
@ -162,24 +175,24 @@ void yon_interface_update(main_window *widgets){
|
|
|
|
|
int valid = gtk_tree_model_get_iter_first(GTK_TREE_MODEL(widgets->languagelist),&iter);
|
|
|
|
|
for(;valid;valid=gtk_tree_model_iter_next(GTK_TREE_MODEL(widgets->languagelist),&iter)){
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&iter,0,&loc_name,1,&code,2,&is_active,-1);
|
|
|
|
|
if (avlocale){
|
|
|
|
|
for (int i=0;i<locsize;i++){
|
|
|
|
|
if (!strcmp(code,locale_parsed[i])) {
|
|
|
|
|
if (!strcmp(code,locale_parsed[i])||!strcmp(code,lang)) {
|
|
|
|
|
gtk_list_store_set(widgets->languagelist,&iter,2,1,-1);
|
|
|
|
|
locale_string = yon_char_unite(strcmp(locale_string,"") ? yon_char_append(locale_string,"; ") : locale_string, loc_name,NULL);
|
|
|
|
|
}
|
|
|
|
|
char *temp = yon_char_unite(yon_char_is_empty(locale_string)?"":locale_string,yon_char_is_empty(locale_string)?"":"; ",loc_name,NULL);
|
|
|
|
|
if (!yon_char_is_empty(locale_string)) free(locale_string);
|
|
|
|
|
locale_string = temp;
|
|
|
|
|
// locale_string = yon_char_unite(yon_char_is_empty(locale_string) ? yon_char_append(locale_string,"; ") : locale_string, loc_name,NULL);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (!yon_char_is_empty(lang)&&!yon_char_is_empty(code)&&!strcmp(code,lang)) {
|
|
|
|
|
GtkTreeIter filter_iter;
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.localefilter));
|
|
|
|
|
while(gtk_events_pending()) gtk_main_iteration();
|
|
|
|
|
gtk_tree_model_filter_convert_child_iter_to_iter(GTK_TREE_MODEL_FILTER(main_config.localefilter),&filter_iter,&iter);
|
|
|
|
|
gtk_combo_box_set_active_iter(GTK_COMBO_BOX(widgets->LanguageCombo),&filter_iter);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if (strcmp(locale_string,"")) gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),locale_string);
|
|
|
|
|
}
|
|
|
|
|
yon_language_update(widgets);
|
|
|
|
|
if (!yon_char_is_empty(lang)) {
|
|
|
|
|
gtk_combo_box_set_active_id(GTK_COMBO_BOX(widgets->LanguageCombo),lang);
|
|
|
|
|
} else {
|
|
|
|
|
gtk_combo_box_set_active(GTK_COMBO_BOX(widgets->LanguageCombo),0);
|
|
|
|
|
}
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->IDEntry),G_CALLBACK(on_id_changed),widgets);
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->HostnameEntry),G_CALLBACK(on_hostname_changed),widgets);
|
|
|
|
|
g_signal_handlers_unblock_by_func(G_OBJECT(widgets->ConsoleFontCombo),G_CALLBACK(on_console_font_changed),widgets);
|
|
|
|
|
@ -279,7 +292,6 @@ void on_locale_accept(GtkWidget *self, dictionary *dict){
|
|
|
|
|
yon_config_register(locale_parameter,LOCALE_get_command,final_ids);
|
|
|
|
|
gtk_entry_set_text(GTK_ENTRY(widgets->LocaleEntry),final_string);
|
|
|
|
|
}
|
|
|
|
|
gtk_tree_model_filter_refilter(GTK_TREE_MODEL_FILTER(main_config.localefilter));
|
|
|
|
|
on_subwindow_close(self);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -391,20 +403,11 @@ void on_console_font_changed(GtkComboBox *self, main_window *widgets){
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void on_language_changed(GtkComboBox *self, main_window *widgets){
|
|
|
|
|
GtkTreeIter iter, child;
|
|
|
|
|
if (gtk_combo_box_get_active_iter(self,&iter)){
|
|
|
|
|
char *code;
|
|
|
|
|
|
|
|
|
|
gtk_tree_model_filter_convert_iter_to_child_iter(GTK_TREE_MODEL_FILTER(main_config.localefilter),&child,&iter);
|
|
|
|
|
gtk_tree_model_get(GTK_TREE_MODEL(widgets->languagelist),&child,1,&code,-1);
|
|
|
|
|
void on_language_changed(GtkComboBox *, main_window *widgets){
|
|
|
|
|
const char *code;
|
|
|
|
|
code = gtk_combo_box_get_active_id(GTK_COMBO_BOX(widgets->LanguageCombo));
|
|
|
|
|
if (code){
|
|
|
|
|
if (yon_config_get_by_key(language_parameter)){
|
|
|
|
|
yon_config_set(language_parameter,code);
|
|
|
|
|
} else {
|
|
|
|
|
yon_config_register(language_parameter,LANG_get_command,code);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
yon_config_register(language_parameter,LANG_get_command,(char*)code);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -785,9 +788,7 @@ main_window *yon_main_window_complete(main_window *widgets){
|
|
|
|
|
// g_timeout_add(1000,(GSourceFunc)on_check_domain_connected,widgets);
|
|
|
|
|
on_check_domain_connected(NULL, widgets);
|
|
|
|
|
|
|
|
|
|
main_config.localefilter = gtk_tree_model_filter_new(GTK_TREE_MODEL(widgets->languagelist),NULL);
|
|
|
|
|
gtk_combo_box_set_model(GTK_COMBO_BOX(widgets->LanguageCombo),main_config.localefilter);
|
|
|
|
|
gtk_tree_model_filter_set_visible_column(GTK_TREE_MODEL_FILTER(main_config.localefilter),2);
|
|
|
|
|
// gtk_combo_box_set_model(GTK_COMBO_BOX(widgets->LanguageCombo),main_config.localefilter);
|
|
|
|
|
int size;
|
|
|
|
|
config_str locales = yon_resource_open_file(get_locales_command,&size);
|
|
|
|
|
GtkTreeIter iter;
|
|
|
|
|
|