forked from enlightenment/edi
mainview: add method for testing if mainview is empty.
Summary: Also add checks to some GUI functions that crash Edi if there is no panel with no items. Reviewers: ajwillia.ms Reviewed By: ajwillia.ms Differential Revision: https://phab.enlightenment.org/D5083
This commit is contained in:
parent
ea8823a9d1
commit
bcd0909ca9
|
@ -29,6 +29,16 @@ static void
|
|||
dummy()
|
||||
{}
|
||||
|
||||
Eina_Bool
|
||||
edi_mainview_is_empty(void)
|
||||
{
|
||||
if (edi_mainview_panel_count() == 1 &&
|
||||
!edi_mainview_panel_item_count(edi_mainview_panel_by_index(0)))
|
||||
return EINA_TRUE;
|
||||
|
||||
return EINA_FALSE;
|
||||
}
|
||||
|
||||
int
|
||||
edi_mainview_panel_count(void)
|
||||
{
|
||||
|
@ -324,6 +334,8 @@ edi_mainview_item_close_path(const char *path)
|
|||
void
|
||||
edi_mainview_save()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_save(_current_panel);
|
||||
}
|
||||
|
||||
|
@ -342,72 +354,96 @@ edi_mainview_new_window()
|
|||
void
|
||||
edi_mainview_close()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_close(_current_panel);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_undo()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_undo(_current_panel);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
edi_mainview_can_undo()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return EINA_FALSE;
|
||||
|
||||
return edi_mainview_panel_can_undo(_current_panel);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_redo()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_redo(_current_panel);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
edi_mainview_can_redo()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return EINA_FALSE;
|
||||
|
||||
return edi_mainview_panel_can_redo(_current_panel);
|
||||
}
|
||||
|
||||
Eina_Bool
|
||||
edi_mainview_modified()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return EINA_FALSE;
|
||||
|
||||
return edi_mainview_panel_modified(_current_panel);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_cut()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_cut(_current_panel);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_copy()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_copy(_current_panel);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_paste()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_paste(_current_panel);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_search()
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_search(_current_panel);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_goto(unsigned int number)
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_goto(_current_panel, number);
|
||||
}
|
||||
|
||||
void
|
||||
edi_mainview_goto_position(unsigned int row, unsigned int col)
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_goto_position(_current_panel, row, col);
|
||||
}
|
||||
|
||||
|
|
|
@ -345,6 +345,15 @@ Edi_Mainview_Panel *edi_mainview_panel_by_index(int index);
|
|||
*/
|
||||
int edi_mainview_panel_count(void);
|
||||
|
||||
/**
|
||||
* Return whether the mainview is completely empty.
|
||||
*
|
||||
* @return true if there are any items open in any panel.
|
||||
*
|
||||
* @ingroup Panels
|
||||
*/
|
||||
Eina_Bool edi_mainview_is_empty(void);
|
||||
|
||||
/*
|
||||
* Return the panel id of a given panel instance.
|
||||
*
|
||||
|
|
|
@ -535,6 +535,8 @@ edi_mainview_panel_search(Edi_Mainview_Panel *panel)
|
|||
{
|
||||
Edi_Editor *editor;
|
||||
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
editor = (Edi_Editor *)evas_object_data_get(panel->current->view, "editor");
|
||||
|
||||
if (editor)
|
||||
|
@ -544,6 +546,8 @@ edi_mainview_panel_search(Edi_Mainview_Panel *panel)
|
|||
void
|
||||
edi_mainview_panel_goto(Edi_Mainview_Panel *panel, unsigned int number)
|
||||
{
|
||||
if (edi_mainview_is_empty()) return;
|
||||
|
||||
edi_mainview_panel_goto_position(panel, number, 1);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue