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

-- 


Reply via email to