forked from enlightenment/edi
[tabs] add a close all feature
For the times when you just have too many tabs open!
This commit is contained in:
parent
49fa89dc03
commit
a744f48420
|
@ -704,6 +704,13 @@ _edi_menu_close_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED,
|
|||
edi_mainview_close();
|
||||
}
|
||||
|
||||
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);
|
||||
|
|
|
@ -479,22 +479,42 @@ edi_mainview_new_window()
|
|||
edi_mainview_open_window_path(item->path);
|
||||
}
|
||||
|
||||
static void
|
||||
_edi_mainview_close_item(Edi_Mainview_Item *item)
|
||||
{
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
elm_naviframe_item_promote(item->view);
|
||||
elm_naviframe_item_pop(nf);
|
||||
elm_object_item_del(item->tab);
|
||||
_edi_mainview_items = eina_list_remove(_edi_mainview_items, item);
|
||||
|
||||
_edi_project_config_tab_remove(item->path);
|
||||
eina_stringshare_del(item->path);
|
||||
free(item);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_close()
|
||||
{
|
||||
Edi_Mainview_Item *item;
|
||||
|
||||
item = edi_mainview_item_current_get();
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
elm_naviframe_item_pop(nf);
|
||||
elm_object_item_del(elm_toolbar_selected_item_get(tb));
|
||||
_edi_mainview_items = eina_list_remove(_edi_mainview_items, item);
|
||||
_edi_mainview_close_item(item);
|
||||
}
|
||||
|
||||
_edi_project_config_tab_remove(item->path);
|
||||
eina_stringshare_del(item->path);
|
||||
free(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
|
||||
|
|
|
@ -110,6 +110,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.
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue