ajwillia-ms pushed a commit to branch master.

http://git.enlightenment.org/tools/edi.git/commit/?id=629a293a664533cc467529e2ab2ba1bab08bf0b6

commit 629a293a664533cc467529e2ab2ba1bab08bf0b6
Author: Al Poole <[email protected]>
Date:   Fri Mar 24 22:24:33 2017 +0000

    Add option to delete file in browser
    
    Reviewers: ajwillia.ms
    
    Reviewed By: ajwillia.ms
    
    Differential Revision: https://phab.enlightenment.org/D4742
---
 src/bin/edi_filepanel.c         | 13 +++++++++++++
 src/bin/mainview/edi_mainview.c | 16 ++++++++++++++++
 src/bin/mainview/edi_mainview.h |  9 +++++++++
 3 files changed, 38 insertions(+)

diff --git a/src/bin/edi_filepanel.c b/src/bin/edi_filepanel.c
index 49cf909..b04d9df 100644
--- a/src/bin/edi_filepanel.c
+++ b/src/bin/edi_filepanel.c
@@ -14,6 +14,7 @@
 
 #include "edi_filepanel.h"
 #include "edi_content_provider.h"
+#include "mainview/edi_mainview.h"
 
 #include "edi_private.h"
 
@@ -118,6 +119,17 @@ _item_menu_open_as_image_cb(void *data EINA_UNUSED, 
Evas_Object *obj EINA_UNUSED
 }
 
 static void
+_item_menu_del_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
+                      void *event_info EINA_UNUSED)
+{
+   const char *filename = _menu_cb_path;
+
+   edi_mainview_item_close_path(filename);
+
+   ecore_file_unlink(filename);
+}
+
+static void
 _item_menu_dismissed_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
                         void *ev EINA_UNUSED)
 {
@@ -155,6 +167,7 @@ _item_menu_create(Evas_Object *win)
    _item_menu_filetype_create(menu, menu_it, "text", 
_item_menu_open_as_text_cb);
    _item_menu_filetype_create(menu, menu_it, "code", 
_item_menu_open_as_code_cb);
    _item_menu_filetype_create(menu, menu_it, "image", 
_item_menu_open_as_image_cb);
+   menu_it = elm_menu_item_add(menu, NULL, "edit-delete", "delete", 
_item_menu_del_cb, NULL);
 }
 
 static void
diff --git a/src/bin/mainview/edi_mainview.c b/src/bin/mainview/edi_mainview.c
index 04c44c5..6bbbda7 100644
--- a/src/bin/mainview/edi_mainview.c
+++ b/src/bin/mainview/edi_mainview.c
@@ -512,6 +512,22 @@ edi_mainview_open_window(Edi_Path_Options *options)
 }
 
 void
+edi_mainview_item_close_path(const char *path)
+{
+   Eina_List *item;
+   Edi_Mainview_Item *it;
+
+   EINA_LIST_FOREACH(_edi_mainview_items, item, it)
+    {
+       if (it && !strcmp(it->path, path))
+         {
+             _edi_mainview_item_close(it);
+             return;
+         }
+    }
+}
+
+void
 edi_mainview_save()
 {
    Edi_Editor *editor;
diff --git a/src/bin/mainview/edi_mainview.h b/src/bin/mainview/edi_mainview.h
index 87268b6..d1580fe 100644
--- a/src/bin/mainview/edi_mainview.h
+++ b/src/bin/mainview/edi_mainview.h
@@ -38,6 +38,15 @@ extern "C" {
 void edi_mainview_add(Evas_Object *parent, Evas_Object *win);
 
 /**
+ * Delete a mainview by its path
+ * @param parh The path of the file associated with tab to close.
+ *
+ * @ingroup UI
+ */
+void edi_mainview_item_close_path(const char *path);
+
+
+/**
  * @}
  *
  *

-- 


Reply via email to