ajwillia-ms pushed a commit to branch master. http://git.enlightenment.org/tools/edi.git/commit/?id=a744f48420f44002d4c4565a75bc27986693fd47
commit a744f48420f44002d4c4565a75bc27986693fd47 Author: Andy Williams <a...@andywilliams.me> Date: Tue Feb 16 00:15:52 2016 +0000 [tabs] add a close all feature For the times when you just have too many tabs open! --- src/bin/edi_main.c | 8 ++++++++ src/bin/mainview/edi_mainview.c | 32 ++++++++++++++++++++++++++------ src/bin/mainview/edi_mainview.h | 7 +++++++ 3 files changed, 41 insertions(+), 6 deletions(-) diff --git a/src/bin/edi_main.c b/src/bin/edi_main.c index d95f0ab..9358574 100644 --- a/src/bin/edi_main.c +++ b/src/bin/edi_main.c @@ -705,6 +705,13 @@ _edi_menu_close_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, } static void +_edi_menu_closeall_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + edi_mainview_closeall(); +} + +static void _edi_menu_settings_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { @@ -815,6 +822,7 @@ _edi_menu_setup(Evas_Object *win) elm_menu_item_add(menu, menu_it, "document-save", "Save", _edi_menu_save_cb, NULL); elm_menu_item_add(menu, menu_it, "window-new", "New window", _edi_menu_open_window_cb, NULL); elm_menu_item_add(menu, menu_it, "stock_close", "Close", _edi_menu_close_cb, NULL); + elm_menu_item_add(menu, menu_it, "stock_close", "Close all", _edi_menu_closeall_cb, NULL); elm_menu_item_separator_add(menu, menu_it); elm_menu_item_add(menu, menu_it, "preferences-desktop", "Settings", _edi_menu_settings_cb, NULL); elm_menu_item_separator_add(menu, menu_it); diff --git a/src/bin/mainview/edi_mainview.c b/src/bin/mainview/edi_mainview.c index ccd9f07..923e8e0 100644 --- a/src/bin/mainview/edi_mainview.c +++ b/src/bin/mainview/edi_mainview.c @@ -479,17 +479,15 @@ edi_mainview_new_window() edi_mainview_open_window_path(item->path); } -void -edi_mainview_close() +static void +_edi_mainview_close_item(Edi_Mainview_Item *item) { - Edi_Mainview_Item *item; - - item = edi_mainview_item_current_get(); if (!item) return; + elm_naviframe_item_promote(item->view); elm_naviframe_item_pop(nf); - elm_object_item_del(elm_toolbar_selected_item_get(tb)); + elm_object_item_del(item->tab); _edi_mainview_items = eina_list_remove(_edi_mainview_items, item); _edi_project_config_tab_remove(item->path); @@ -498,6 +496,28 @@ edi_mainview_close() } void +edi_mainview_close() +{ + Edi_Mainview_Item *item; + + item = edi_mainview_item_current_get(); + + _edi_mainview_close_item(item); +} + +void +edi_mainview_closeall() +{ + Eina_List *list, *next; + Edi_Mainview_Item *item; + + EINA_LIST_FOREACH_SAFE(_edi_mainview_items, list, next, item) + { + _edi_mainview_close_item(item); + } +} + +void edi_mainview_cut() { Evas_Object *content; diff --git a/src/bin/mainview/edi_mainview.h b/src/bin/mainview/edi_mainview.h index b8c26a1..cd815b1 100644 --- a/src/bin/mainview/edi_mainview.h +++ b/src/bin/mainview/edi_mainview.h @@ -111,6 +111,13 @@ void edi_mainview_new_window(); void edi_mainview_close(); /** + * Close all open files. + * + * @ingroup Content + */ +void edi_mainview_closeall(); + +/** * Cut the current selection into the clipboard. * * @ingroup Content --