netstar pushed a commit to branch master. http://git.enlightenment.org/apps/ecrire.git/commit/?id=221fc9dd50fa0f62993f46036946a98fba051abe
commit 221fc9dd50fa0f62993f46036946a98fba051abe Author: Alastair Poole <nets...@gmail.com> Date: Wed Apr 7 12:45:20 2021 +0100 alert: move the warning to alerts. File selector has issues... --- src/bin/main.c | 34 +++++++++++++++++++--------------- src/bin/ui/alerts.c | 26 ++++++++++++++++++++++++++ src/bin/ui/file_related.c | 27 +-------------------------- src/bin/ui/ui.h | 20 +++++++++++++++----- 4 files changed, 61 insertions(+), 46 deletions(-) diff --git a/src/bin/main.c b/src/bin/main.c index c39b69e..199518a 100644 --- a/src/bin/main.c +++ b/src/bin/main.c @@ -394,35 +394,39 @@ _cb_fs_open_done(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, ecrire_editor_open(selected, _ent_cfg->font.name, _ent_cfg->font.size); } +static void +_cb_fs_ecrire_editor_save(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info) +{ + Ecrire_Editor *inst = data; + const char *filename = event_info; + + if (filename) + ecrire_editor_save(inst, filename); +} + void ecrire_editor_save(Ecrire_Editor *inst, const char *file) { Eina_Bool ok; if (plain_utf8) - ok = file_plain_save(file, elm_object_text_get(inst->entry)); + ok = file_plain_save(file, elm_object_text_get(inst->entry)); else - ok = file_save(file, elm_object_text_get(inst->entry)); + ok = file_save(file, elm_object_text_get(inst->entry)); - if (ok) + if (!ok) + { + ui_alert_warning_popup(inst->win, eina_slstr_printf("Unable to save to %s <br>(%s)", file, strerror(errno))); + ui_file_open_save_dialog_open(inst->win, EINA_TRUE, _cb_fs_ecrire_editor_save, inst); + } + else { elm_object_item_disabled_set(inst->menu.save, EINA_TRUE); elm_object_item_disabled_set(inst->toolbar.save, EINA_TRUE); inst->last_saved_stack_ptr = inst->undo_stack_ptr; _update_cur_file(file, inst); } - else ERR("couldn't save %s", file); -} - -static void -_cb_fs_ecrire_editor_save(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, - void *event_info) -{ - Ecrire_Editor *inst = data; - const char *filename = event_info; - - if (filename) - ecrire_editor_save(inst, filename); } static void diff --git a/src/bin/ui/alerts.c b/src/bin/ui/alerts.c index c9b6a6a..a68a352 100644 --- a/src/bin/ui/alerts.c +++ b/src/bin/ui/alerts.c @@ -79,3 +79,29 @@ ui_alert_need_saving(Evas_Object *entry, void (*done)(void *data), void *data) elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER); evas_object_show(popup); } + +static void +_warning_popup_close_cb(void *data, Evas_Object *obj, void *event_info) +{ + evas_object_del((Evas_Object *) data); +} + +void +ui_alert_warning_popup(Evas_Object *parent, const char *msg) +{ + Evas_Object *popup, *btn; + + popup = elm_popup_add(parent); + elm_object_part_text_set(popup, "title,text", _("Warning")); + elm_object_text_set(popup, eina_slstr_printf("<align=center>%s.</>", msg)); + + btn = elm_button_add(popup); + elm_object_text_set(btn, _("Close")); + evas_object_show(btn); + evas_object_smart_callback_add(btn, "clicked", _warning_popup_close_cb, popup); + elm_object_part_content_set(popup, "button1", btn); + + elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER); + evas_object_show(popup); +} + diff --git a/src/bin/ui/file_related.c b/src/bin/ui/file_related.c index ebd868b..ed1b790 100644 --- a/src/bin/ui/file_related.c +++ b/src/bin/ui/file_related.c @@ -12,31 +12,6 @@ typedef struct _File_Selector_Data void *data; } File_Selector_Data; -static void -_warning_popup_close_cb(void *data, Evas_Object *obj, void *event_info) -{ - evas_object_del((Evas_Object *) data); -} - -static void -_warning_popup(Evas_Object *parent, const char *msg) -{ - Evas_Object *popup, *btn; - - popup = elm_popup_add(parent); - elm_object_part_text_set(popup, "title,text", _("Warning")); - elm_object_text_set(popup, eina_slstr_printf("<align=center>%s.</>", msg)); - - btn = elm_button_add(popup); - elm_object_text_set(btn, _("Close")); - evas_object_show(btn); - evas_object_smart_callback_add(btn, "clicked", _warning_popup_close_cb, popup); - elm_object_part_content_set(popup, "button1", btn); - - elm_popup_orient_set(popup, ELM_POPUP_ORIENT_CENTER); - evas_object_show(popup); -} - static void _cleaning_cb(void *data, Evas_Object *obj, void *event_info) { @@ -57,7 +32,7 @@ _cleaning_cb(void *data, Evas_Object *obj, void *event_info) } if (error) - _warning_popup(fsdata->parent, error); + ui_alert_warning_popup(fsdata->parent, error); else { if (path) diff --git a/src/bin/ui/ui.h b/src/bin/ui/ui.h index 65fef8e..3231dbd 100644 --- a/src/bin/ui/ui.h +++ b/src/bin/ui/ui.h @@ -3,12 +3,22 @@ #include "../Ecrire.h" -void ui_file_open_save_dialog_open(Evas_Object *parent, Eina_Bool save, Evas_Smart_Cb func, void *data); +void +ui_file_open_save_dialog_open(Evas_Object *parent, Eina_Bool save, Evas_Smart_Cb func, void *data); -Evas_Object *ui_find_dialog_open(Evas_Object *parent, Ecrire_Editor *inst); -Evas_Object *ui_goto_dialog_open(Evas_Object *parent, Ecrire_Editor *inst); -Evas_Object *ui_settings_open(Evas_Object *parent, Ecrire_Editor *inst); +Evas_Object * +ui_find_dialog_open(Evas_Object *parent, Ecrire_Editor *inst); -void ui_alert_need_saving(Evas_Object *entry, void (*done)(void *data), void *data); +Evas_Object * +ui_goto_dialog_open(Evas_Object *parent, Ecrire_Editor *inst); + +Evas_Object * +ui_settings_open(Evas_Object *parent, Ecrire_Editor *inst); + +void +ui_alert_need_saving(Evas_Object *entry, void (*done)(void *data), void *data); + +void +ui_alert_warning_popup(Evas_Object *parent, const char *msg); #endif --