forked from enlightenment/enlightenment
parent
7dcc5a91a8
commit
b2b093c692
|
@ -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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue