Language combo box changes

pull/78/head
parent e353f5a378
commit 94408677cc
No known key found for this signature in database
GPG Key ID: FF1D842BF4DDE92B

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

@ -40,8 +40,8 @@
#define get_fonts_command "resource:///com/ublinux/csv/fonts.csv"
#define get_id_command "/etc/machine-id"
#define config_get_command(source) yon_char_unite("ubconfig --source ", source, " -ea get system HOSTNAME MACHINEID -- get locale CONSOLE_FONT LOCALE LANG -- get [network] DOMAIN DOMAIN[admanger] DOMAIN[server] DOMAIN[dns] DOMAIN[client]",NULL)
#define config_get_default_command ""
#define config_get_command(source) yon_char_unite("ubconfig --source ", source, " -ea get [system] HOSTNAME MACHINEID -- get [locale] CONSOLE_FONT LOCALE LANG -- get [network] DOMAIN DOMAIN[admanger] DOMAIN[server] DOMAIN[dns] DOMAIN[client]",NULL)
#define config_get_default_command "ubconfig --source default -- get [locale] CONSOLE_FONT LOCALE LANG"
#define config_get_global_only_parameters ""
#define config_get_local_only_parameters ""
@ -97,7 +97,6 @@ char *local;
typedef struct {
template_config_fields
GtkListStore *localeslist;
GtkTreeModel *localefilter;
int save_config;
int domain_connected;
GMutex ThreadMutex;
@ -247,3 +246,4 @@ domain_window *yon_domain_window_new();
void on_domain_opened(GtkWidget *self, main_window *widgets);
void on_check_domain_connected(GtkWidget *self, main_window *widgets);
main_window *yon_main_window_complete(main_window *widgets);
void yon_language_update(main_window *widgets);

@ -59,16 +59,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="can-focus">False</property>
<property name="icon-name">com.ublinux.libublsettingsui-gtk3.zoom-symbolic</property>
</object>
<object class="GtkListStore" id="languagelist">
<columns>
<!-- column-name LocaleName -->
<column type="gchararray"/>
<!-- column-name LanguageCode -->
<column type="gchararray"/>
<!-- column-name gboolean1 -->
<column type="gboolean"/>
</columns>
</object>
<object class="GtkBox" id="BoxMain">
<property name="visible">True</property>
<property name="can-focus">False</property>
@ -474,17 +464,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</packing>
</child>
<child>
<object class="GtkComboBox" id="LanguageCombo">
<object class="GtkComboBoxText" id="LanguageCombo">
<property name="visible">True</property>
<property name="can-focus">False</property>
<property name="model">languagelist</property>
<property name="active">0</property>
<child>
<object class="GtkCellRendererText"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="expand">True</property>
@ -529,6 +511,16 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<widget name="label5"/>
</widgets>
</object>
<object class="GtkListStore" id="languagelist">
<columns>
<!-- column-name LocaleName -->
<column type="gchararray"/>
<!-- column-name LanguageCode -->
<column type="gchararray"/>
<!-- column-name gboolean1 -->
<column type="gboolean"/>
</columns>
</object>
<object class="GtkMenu" id="menu1">
<property name="visible">True</property>
<property name="can-focus">False</property>

Loading…
Cancel
Save