edj viewer: update live view for different groups.

This happens, because edj file is rewrited and
descriptor lost. Reload all groups each time when
edj file rewrited.

@fix T2162
This commit is contained in:
Mykyta Biliavskyi 2015-05-28 09:23:11 +00:00 committed by ChunEon Park
parent d18b1afdc2
commit 9ac6faaa9e
4 changed files with 23 additions and 1 deletions

View File

@ -238,3 +238,15 @@ edj_mgr_view_scale_get(void)
return em->view_scale;
}
void
edj_mgr_all_views_reload(void)
{
edj_mgr *em = g_em;
if (!em) return;
Eina_List *l = NULL;
edj_data *edj = NULL;
EINA_LIST_FOREACH(em->edjs, l, edj)
view_obj_need_reload_set(edj->vd);
}

View File

@ -388,6 +388,12 @@ view_obj_get(view_data *vd)
return vd->scroller;
}
void
view_obj_need_reload_set(view_data *vd)
{
vd->edj_reload_need = EINA_TRUE;
}
void
view_program_run(view_data *vd, const char *program)
{

View File

@ -160,6 +160,7 @@ Eina_Bool edj_mgr_reload_need_get(void);
void edj_mgr_clear(void);
void edj_mgr_view_scale_set(double scale);
double edj_mgr_view_scale_get(void);
void edj_mgr_all_views_reload(void);
/* redoundo */
@ -193,6 +194,7 @@ Eina_List *view_part_states_list_get(view_data *vd, const char *part);
Eina_List *view_program_targets_get(view_data *vd, const char *prog);
void view_string_list_free(Eina_List *list);
void view_part_state_set(view_data *vd, const char *part, const char *description, const double state);
void view_obj_need_reload_set(view_data *vd);
/* template */

View File

@ -81,7 +81,9 @@ edit_view_sync_cb(void *data, Eina_Stringshare *state_name, double state_value,
{
Enventor_Object_Data *pd = data;
static Eina_Stringshare *prev_part_name = NULL;
edj_mgr_all_views_reload();
if (pd->group_name != group_name)
{
view_data *vd = edj_mgr_view_get(group_name);