config: remove panel from config when we remove a panel from the UI.

Reviewers: ajwillia.ms

Reviewed By: ajwillia.ms

Differential Revision: https://phab.enlightenment.org/D5039
This commit is contained in:
Al Poole 2017-07-25 21:43:28 +01:00 committed by Andy Williams
parent 2386b51a60
commit c265dc2693
3 changed files with 27 additions and 0 deletions

View File

@ -615,3 +615,25 @@ _edi_project_config_tab_remove(const char *path, Eina_Bool windowed, int panel_i
eina_stringshare_del(tab->type);
free(tab);
}
void
_edi_project_config_panel_remove(int panel_id)
{
Edi_Project_Config_Tab *tab;
Edi_Project_Config_Panel *panel = eina_list_nth(_edi_project_config->panels, panel_id);
_edi_project_config->panels = eina_list_remove(_edi_project_config->panels, panel);
EINA_LIST_FREE(panel->tabs, tab)
{
if (tab->path)
eina_stringshare_del(tab->path);
if (tab->type)
eina_stringshare_del(tab->type);
free(tab);
}
free(panel);
_edi_project_config_save_no_notify();
}

View File

@ -124,6 +124,7 @@ void _edi_project_config_tab_add(const char *path, const char *type,
Eina_Bool windowed, int panel_id);
void _edi_project_config_tab_remove(const char *path, Eina_Bool windowed, int panel_id);
void _edi_project_config_tab_current_set(int panel_id, int tab_id);
void _edi_project_config_panel_remove(int panel_id);
#ifdef __cplusplus
}

View File

@ -499,6 +499,10 @@ edi_mainview_project_search_popup_show(void)
void
edi_mainview_panel_remove(Edi_Mainview_Panel *panel)
{
int panel_id = edi_mainview_panel_id(panel);
_edi_project_config_panel_remove(panel_id);
evas_object_del(panel->welcome);
evas_object_del(panel->content);
evas_object_del(panel->tabs);