e startup theme: add check changed.

SVN revision: 81693
This commit is contained in:
Chidambar Zinnoury 2012-12-25 16:47:02 +00:00
parent 7dcc5a91a8
commit b2b093c692
1 changed files with 15 additions and 0 deletions

View File

@ -2,6 +2,7 @@
static void *_create_data(E_Config_Dialog *cfd); static void *_create_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 _basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata);
static int _basic_apply_data(E_Config_Dialog *cfd, 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);
@ -18,6 +19,7 @@ struct _E_Config_Dialog_Data
int show_splash; int show_splash;
char *splash; char *splash;
char *previous_splash;
}; };
E_Config_Dialog * E_Config_Dialog *
@ -33,6 +35,7 @@ e_int_config_startup(E_Container *con, const char *params __UNUSED__)
v->free_cfdata = _free_data; v->free_cfdata = _free_data;
v->basic.apply_cfdata = _basic_apply_data; v->basic.apply_cfdata = _basic_apply_data;
v->basic.create_widgets = _basic_create_widgets; v->basic.create_widgets = _basic_create_widgets;
v->basic.check_changed = _basic_check_changed;
cfd = e_config_dialog_new(con, cfd = e_config_dialog_new(con,
_("Startup Settings"), _("Startup Settings"),
@ -187,6 +190,8 @@ _fill_data(E_Config_Dialog_Data *cfdata)
} }
} }
cfdata->previous_splash = strdup(cfdata->splash);
len = e_prefix_data_concat_static(path, "data/themes"); len = e_prefix_data_concat_static(path, "data/themes");
if (!strncmp(cfdata->splash, path, len)) if (!strncmp(cfdata->splash, path, len))
cfdata->fmdir = 1; cfdata->fmdir = 1;
@ -207,10 +212,18 @@ _create_data(E_Config_Dialog *cfd)
static void static void
_free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{ {
E_FREE(cfdata->previous_splash);
E_FREE(cfdata->splash); E_FREE(cfdata->splash);
E_FREE(cfdata); E_FREE(cfdata);
} }
static int
_basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata)
{
return (e_config->show_splash != cfdata->show_splash) ||
(strcmp(cfdata->splash, cfdata->previous_splash));
}
static int static int
_basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
{ {
@ -218,6 +231,7 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
if (e_config->init_default_theme) if (e_config->init_default_theme)
eina_stringshare_del(e_config->init_default_theme); eina_stringshare_del(e_config->init_default_theme);
e_config->init_default_theme = NULL; e_config->init_default_theme = NULL;
E_FREE(cfdata->previous_splash);
if (cfdata->splash) if (cfdata->splash)
{ {
@ -227,6 +241,7 @@ _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata)
f = ecore_file_file_get(cfdata->splash); f = ecore_file_file_get(cfdata->splash);
e_config->init_default_theme = eina_stringshare_add(f); e_config->init_default_theme = eina_stringshare_add(f);
cfdata->previous_splash = strdup(cfdata->splash);
} }
} }