EAPI int E_EVENT_CONFIG_ICON_THEME = 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 *
_e_config_profile_name_get(Eet_File *ef)
{
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
e_config_profile_save(void)
{
strlen(_e_config_profile), 0);
if (_e_config_eet_close_handle(ef, buf2))
{
- Eina_Bool ret;
+ Eina_Bool ret = EINA_TRUE;
if (_e_config_revisions > 0)
{
{
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);
- ret = ecore_file_mv(bsrc, bdst);
- if (!ret)
+ if (ecore_file_exists(bsrc))
{
- printf("*** Error saving profile. ***");
- break;
+ ret = ecore_file_mv(bsrc, bdst);
+ if (!ret)
+ {
+ _e_config_mv_error(bsrc, bdst);
+ break;
+ }
}
}
if (ret)
e_user_dir_snprintf(bdst, sizeof(bdst), "config/profile.1.cfg");
ret = ecore_file_mv(bsrc, bdst);
if (!ret)
- {
- printf("*** Error saving profile. ***");
- }
+ _e_config_mv_error(bsrc, bdst);
}
}
ret = ecore_file_mv(buf2, buf);
- if (!ret)
- {
- printf("*** Error saving profile. ***");
- }
+ if (!ret) _e_config_mv_error(buf2, buf);
}
ecore_file_unlink(buf2);
}
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
_e_config_eet_close_handle(Eet_File *ef, char *file)
{