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); + + +/** * @} * * --
