forked from enlightenment/enlightenment
and actually complain when mv's fail too - and abort writes.
SVN revision: 55812
This commit is contained in:
parent
9dd44d1c6c
commit
51a5581c2e
|
@ -78,6 +78,15 @@ static E_Config_DD *_e_config_screen_crtc_restore_info_edd = NULL;
|
||||||
EAPI int E_EVENT_CONFIG_ICON_THEME = 0;
|
EAPI int E_EVENT_CONFIG_ICON_THEME = 0;
|
||||||
EAPI int E_EVENT_CONFIG_MODE_CHANGED = 0;
|
EAPI int E_EVENT_CONFIG_MODE_CHANGED = 0;
|
||||||
|
|
||||||
|
static E_Dialog *_e_config_error_dialog = NULL;
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_config_error_dialog_cb_delete(void *dia)
|
||||||
|
{
|
||||||
|
if (dia == _e_config_error_dialog)
|
||||||
|
_e_config_error_dialog = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static char *
|
static char *
|
||||||
_e_config_profile_name_get(Eet_File *ef)
|
_e_config_profile_name_get(Eet_File *ef)
|
||||||
{
|
{
|
||||||
|
@ -1539,6 +1548,43 @@ e_config_domain_system_load(const char *domain, E_Config_DD *edd)
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_config_mv_error(const char *from, const char *to)
|
||||||
|
{
|
||||||
|
if (!_e_config_error_dialog)
|
||||||
|
{
|
||||||
|
E_Dialog *dia;
|
||||||
|
|
||||||
|
dia = e_dialog_new(e_container_current_get(e_manager_current_get()),
|
||||||
|
"E", "_sys_error_logout_slow");
|
||||||
|
if (dia)
|
||||||
|
{
|
||||||
|
char buf[8192];
|
||||||
|
|
||||||
|
e_dialog_title_set(dia, _("Enlightenment Settings Write Problems"));
|
||||||
|
e_dialog_icon_set(dia, "dialog-error", 64);
|
||||||
|
snprintf(buf, sizeof(buf),
|
||||||
|
_("Enlightenment has an error while moving config files<br>"
|
||||||
|
"from:<br>"
|
||||||
|
"%s<br>"
|
||||||
|
"<br>"
|
||||||
|
"to:<br>"
|
||||||
|
"%s<br>"
|
||||||
|
"<br>"
|
||||||
|
"The rest of the write has been aborted for safety.<br>"),
|
||||||
|
from, to);
|
||||||
|
e_dialog_text_set(dia, buf);
|
||||||
|
e_dialog_button_add(dia, _("OK"), NULL, NULL, NULL);
|
||||||
|
e_dialog_button_focus_num(dia, 0);
|
||||||
|
e_win_centered_set(dia->win, 1);
|
||||||
|
e_object_del_attach_func_set(E_OBJECT(dia),
|
||||||
|
_e_config_error_dialog_cb_delete);
|
||||||
|
e_dialog_show(dia);
|
||||||
|
_e_config_error_dialog = dia;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EAPI int
|
EAPI int
|
||||||
e_config_profile_save(void)
|
e_config_profile_save(void)
|
||||||
{
|
{
|
||||||
|
@ -1557,7 +1603,7 @@ e_config_profile_save(void)
|
||||||
strlen(_e_config_profile), 0);
|
strlen(_e_config_profile), 0);
|
||||||
if (_e_config_eet_close_handle(ef, buf2))
|
if (_e_config_eet_close_handle(ef, buf2))
|
||||||
{
|
{
|
||||||
Eina_Bool ret;
|
Eina_Bool ret = EINA_TRUE;
|
||||||
|
|
||||||
if (_e_config_revisions > 0)
|
if (_e_config_revisions > 0)
|
||||||
{
|
{
|
||||||
|
@ -1568,11 +1614,14 @@ e_config_profile_save(void)
|
||||||
{
|
{
|
||||||
e_user_dir_snprintf(bsrc, sizeof(bsrc), "config/profile.%i.cfg", i - 1);
|
e_user_dir_snprintf(bsrc, sizeof(bsrc), "config/profile.%i.cfg", i - 1);
|
||||||
e_user_dir_snprintf(bdst, sizeof(bdst), "config/profile.%i.cfg", i);
|
e_user_dir_snprintf(bdst, sizeof(bdst), "config/profile.%i.cfg", i);
|
||||||
ret = ecore_file_mv(bsrc, bdst);
|
if (ecore_file_exists(bsrc))
|
||||||
if (!ret)
|
|
||||||
{
|
{
|
||||||
printf("*** Error saving profile. ***");
|
ret = ecore_file_mv(bsrc, bdst);
|
||||||
break;
|
if (!ret)
|
||||||
|
{
|
||||||
|
_e_config_mv_error(bsrc, bdst);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (ret)
|
if (ret)
|
||||||
|
@ -1581,16 +1630,11 @@ e_config_profile_save(void)
|
||||||
e_user_dir_snprintf(bdst, sizeof(bdst), "config/profile.1.cfg");
|
e_user_dir_snprintf(bdst, sizeof(bdst), "config/profile.1.cfg");
|
||||||
ret = ecore_file_mv(bsrc, bdst);
|
ret = ecore_file_mv(bsrc, bdst);
|
||||||
if (!ret)
|
if (!ret)
|
||||||
{
|
_e_config_mv_error(bsrc, bdst);
|
||||||
printf("*** Error saving profile. ***");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ret = ecore_file_mv(buf2, buf);
|
ret = ecore_file_mv(buf2, buf);
|
||||||
if (!ret)
|
if (!ret) _e_config_mv_error(buf2, buf);
|
||||||
{
|
|
||||||
printf("*** Error saving profile. ***");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
ecore_file_unlink(buf2);
|
ecore_file_unlink(buf2);
|
||||||
}
|
}
|
||||||
|
@ -2019,15 +2063,6 @@ _e_config_cb_timer(void *data)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static E_Dialog *_e_config_error_dialog = NULL;
|
|
||||||
|
|
||||||
static void
|
|
||||||
_e_config_error_dialog_cb_delete(void *dia)
|
|
||||||
{
|
|
||||||
if (dia == _e_config_error_dialog)
|
|
||||||
_e_config_error_dialog = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_e_config_eet_close_handle(Eet_File *ef, char *file)
|
_e_config_eet_close_handle(Eet_File *ef, char *file)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue