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:
parent
2386b51a60
commit
c265dc2693
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue