e intl settings: add check changed and cleanup code.

SVN revision: 81712
This commit is contained in:
Chidambar Zinnoury 2012-12-26 12:50:11 +00:00
parent 1a8910bfba
commit 4d326918b1
3 changed files with 28 additions and 32 deletions

View File

@ -1,3 +1,6 @@
2012-12-26 Chidambar Zinnoury (ilLogict)
* Language settings: add check changed and cleanup code.
2012-12-25 Chidambar Zinnoury (ilLogict) 2012-12-25 Chidambar Zinnoury (ilLogict)
* Clock settings: date formats are now internationalizable. * Clock settings: date formats are now internationalizable.

3
NEWS
View File

@ -14,7 +14,8 @@ Improvements:
* Check changed added to several settings dialogs: * Check changed added to several settings dialogs:
- clientlist, - clientlist,
- startup theme, - startup theme,
- desktop environments. - desktop environments,
- language.
* Improve UI of desk settings. * Improve UI of desk settings.
* Add icons for gadcon settings. * Add icons for gadcon settings.

View File

@ -7,9 +7,9 @@ typedef struct _E_Intl_Region_Node E_Intl_Region_Node;
static void *_create_data(E_Config_Dialog *cfd); static void *_create_data(E_Config_Dialog *cfd);
static void *_create_desklock_data(E_Config_Dialog *cfd); static void *_create_desklock_data(E_Config_Dialog *cfd);
static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static int _basic_advanced_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static int _basic_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata);
static void _ilist_basic_language_cb_change(void *data, Evas_Object *obj); static void _ilist_basic_language_cb_change(void *data, Evas_Object *obj);
@ -590,9 +590,11 @@ e_int_config_intl(E_Container *con, const char *params __UNUSED__)
v->create_cfdata = _create_data; v->create_cfdata = _create_data;
v->free_cfdata = _free_data; v->free_cfdata = _free_data;
v->advanced.create_widgets = _advanced_create_widgets; v->advanced.create_widgets = _advanced_create_widgets;
v->advanced.apply_cfdata = _advanced_apply_data; v->advanced.apply_cfdata = _basic_advanced_apply_data;
v->advanced.check_changed = _basic_advanced_check_changed;
v->basic.create_widgets = _basic_create_widgets; v->basic.create_widgets = _basic_create_widgets;
v->basic.apply_cfdata = _basic_apply_data; v->basic.apply_cfdata = _basic_advanced_apply_data;
v->basic.check_changed = _basic_advanced_check_changed;
cfd = e_config_dialog_new(con, cfd = e_config_dialog_new(con,
_("Language Settings"), _("Language Settings"),
@ -613,9 +615,11 @@ e_int_config_desklock_intl(E_Container *con, const char *params __UNUSED__)
v->create_cfdata = _create_desklock_data; v->create_cfdata = _create_desklock_data;
v->free_cfdata = _free_data; v->free_cfdata = _free_data;
v->advanced.create_widgets = _advanced_create_widgets; v->advanced.create_widgets = _advanced_create_widgets;
v->advanced.apply_cfdata = _advanced_apply_data; v->advanced.apply_cfdata = _basic_advanced_apply_data;
v->advanced.check_changed = _basic_advanced_check_changed;
v->basic.create_widgets = _basic_create_widgets; v->basic.create_widgets = _basic_create_widgets;
v->basic.apply_cfdata = _basic_apply_data; v->basic.apply_cfdata = _basic_advanced_apply_data;
v->basic.check_changed = _basic_advanced_check_changed;
cfd = e_config_dialog_new(con, cfd = e_config_dialog_new(con,
_("Desklock Language Settings"), _("Desklock Language Settings"),
@ -964,34 +968,22 @@ _lc_check(void)
} }
static int static int
_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) _basic_advanced_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{ {
if (cfdata->cur_language) const char *previous;
{
if (cfdata->desklock)
{
if (e_config->desklock_language) eina_stringshare_del(e_config->desklock_language);
e_config->desklock_language = NULL;
if ((cfdata->cur_language) && (cfdata->cur_language[0]))
e_config->desklock_language = eina_stringshare_add(cfdata->cur_language);
}
else
{
if (e_config->language) eina_stringshare_del(e_config->language);
e_config->language = NULL;
if ((cfdata->cur_language) && (cfdata->cur_language[0]))
e_config->language = eina_stringshare_add(cfdata->cur_language);
e_intl_language_set(e_config->language);
_lc_check();
}
}
e_config_save_queue(); if (cfdata->desklock)
return 1; previous = e_config->desklock_language;
else
previous = e_config->language;
if (e_util_both_str_empty(previous, cfdata->cur_language))
return 0;
return e_util_strcmp(previous, cfdata->cur_language);
} }
static int static int
_advanced_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) _basic_advanced_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{ {
if (cfdata->cur_language) if (cfdata->cur_language)
{ {
@ -1098,7 +1090,7 @@ _basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cf
e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 0, 1, 0); e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 0, 1, 0);
ob = e_widget_entry_add(evas, &(cfdata->cur_language), NULL, NULL, NULL); ob = e_widget_entry_add(evas, &(cfdata->cur_language), NULL, NULL, NULL);
cfdata->gui.locale_entry = ob; cfdata->gui.locale_entry = ob;
e_widget_disabled_set(cfdata->gui.locale_entry, 1); e_widget_entry_readonly_set(cfdata->gui.locale_entry, 1);
e_widget_size_min_set(cfdata->gui.locale_entry, 100, 25); e_widget_size_min_set(cfdata->gui.locale_entry, 100, 25);
e_widget_frametable_object_append(of, cfdata->gui.locale_entry, e_widget_frametable_object_append(of, cfdata->gui.locale_entry,
1, 0, 1, 1, 1, 1, 1, 0); 1, 0, 1, 1, 1, 1, 1, 0);
@ -1176,7 +1168,7 @@ _advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data
e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 0, 1, 0); e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 0, 1, 0);
ob = e_widget_entry_add(evas, &(cfdata->cur_language), NULL, NULL, NULL); ob = e_widget_entry_add(evas, &(cfdata->cur_language), NULL, NULL, NULL);
cfdata->gui.locale_entry = ob; cfdata->gui.locale_entry = ob;
e_widget_disabled_set(cfdata->gui.locale_entry, 1); e_widget_entry_readonly_set(cfdata->gui.locale_entry, 1);
e_widget_size_min_set(cfdata->gui.locale_entry, 100, 25); e_widget_size_min_set(cfdata->gui.locale_entry, 100, 25);
e_widget_frametable_object_append(of, cfdata->gui.locale_entry, e_widget_frametable_object_append(of, cfdata->gui.locale_entry,
0, 1, 1, 1, 1, 1, 1, 0); 0, 1, 1, 1, 1, 1, 1, 0);