forked from enlightenment/efl
edje_cc: calculate and save the parts count in "edje/file"
This commit is contained in:
parent
e30a197a92
commit
715a66ed11
|
@ -4369,6 +4369,63 @@ _filter_copy(Edje_Part_Description_Spec_Filter *ed, const Edje_Part_Description_
|
|||
else memset(ed, 0, sizeof(*ed));
|
||||
}
|
||||
|
||||
static void
|
||||
_parts_count_update(unsigned int type, int inc)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case EDJE_PART_TYPE_RECTANGLE:
|
||||
current_de->count.RECTANGLE += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_TEXT:
|
||||
current_de->count.TEXT += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_IMAGE:
|
||||
current_de->count.IMAGE += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_SWALLOW:
|
||||
current_de->count.SWALLOW += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_TEXTBLOCK:
|
||||
current_de->count.TEXTBLOCK += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_GROUP:
|
||||
current_de->count.GROUP += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_BOX:
|
||||
current_de->count.BOX += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_TABLE:
|
||||
current_de->count.TABLE += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_EXTERNAL:
|
||||
current_de->count.EXTERNAL += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_PROXY:
|
||||
current_de->count.PROXY += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_MESH_NODE:
|
||||
current_de->count.MESH_NODE += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_LIGHT:
|
||||
current_de->count.LIGHT += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_CAMERA:
|
||||
current_de->count.CAMERA += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_SPACER:
|
||||
current_de->count.SPACER += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_SNAPSHOT:
|
||||
current_de->count.SNAPSHOT += inc;
|
||||
break;
|
||||
case EDJE_PART_TYPE_VECTOR:
|
||||
current_de->count.VECTOR += inc;
|
||||
break;
|
||||
}
|
||||
current_de->count.part += inc;
|
||||
}
|
||||
|
||||
static void
|
||||
_part_copy(Edje_Part *ep, Edje_Part *ep2)
|
||||
{
|
||||
|
@ -4492,6 +4549,8 @@ _part_copy(Edje_Part *ep, Edje_Part *ep2)
|
|||
|
||||
pitem = (Edje_Pack_Element_Parser *)item;
|
||||
pitem->can_override = EINA_TRUE;
|
||||
|
||||
_parts_count_update(item->type, 1);
|
||||
}
|
||||
|
||||
ep->api.name = STRDUP(ep2->api.name);
|
||||
|
@ -5984,6 +6043,8 @@ _part_type_set(unsigned int type)
|
|||
free(dummy);
|
||||
current_desc = cur;
|
||||
}
|
||||
|
||||
_parts_count_update(current_part->type, 1);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -6312,7 +6373,7 @@ _part_name_check(void)
|
|||
static void
|
||||
st_collections_group_part_remove(void)
|
||||
{
|
||||
unsigned int n, argc, orig_count;
|
||||
unsigned int n, argc, orig_count, part_type;
|
||||
Edje_Part_Collection *pc;
|
||||
|
||||
check_min_arg_count(1);
|
||||
|
@ -6339,6 +6400,7 @@ st_collections_group_part_remove(void)
|
|||
|
||||
if (strcmp(pc->parts[j]->name, name)) continue;
|
||||
|
||||
part_type = pc->parts[j]->type;
|
||||
pc->parts[j] = _part_free(pc, pc->parts[j]);
|
||||
for (i = j; i < pc->parts_count - 1; i++)
|
||||
{
|
||||
|
@ -6346,6 +6408,7 @@ st_collections_group_part_remove(void)
|
|||
pc->parts[i] = pc->parts[i + 1];
|
||||
}
|
||||
pc->parts_count--;
|
||||
_parts_count_update(part_type, -1);
|
||||
break;
|
||||
}
|
||||
if (cur_count == pc->parts_count)
|
||||
|
|
|
@ -660,6 +660,31 @@ check_program(Edje_Part_Collection *pc, Edje_Program *ep, Eet_File *ef)
|
|||
}
|
||||
}
|
||||
|
||||
/* reset part counters for alias */
|
||||
static void
|
||||
_alias_clean(Edje_Part_Collection_Directory_Entry *ce)
|
||||
{
|
||||
if (ce)
|
||||
{
|
||||
ce->count.RECTANGLE = 0;
|
||||
ce->count.TEXT = 0;
|
||||
ce->count.IMAGE = 0;
|
||||
ce->count.SWALLOW = 0;
|
||||
ce->count.TEXTBLOCK = 0;
|
||||
ce->count.GROUP = 0;
|
||||
ce->count.BOX = 0;
|
||||
ce->count.TABLE = 0;
|
||||
ce->count.EXTERNAL = 0;
|
||||
ce->count.PROXY = 0;
|
||||
ce->count.MESH_NODE = 0;
|
||||
ce->count.LIGHT = 0;
|
||||
ce->count.CAMERA = 0;
|
||||
ce->count.SPACER = 0;
|
||||
ce->count.VECTOR = 0;
|
||||
ce->count.part = 0;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
data_thread_head(void *data, Ecore_Thread *thread EINA_UNUSED)
|
||||
{
|
||||
|
@ -699,6 +724,7 @@ data_thread_head(void *data, Ecore_Thread *thread EINA_UNUSED)
|
|||
return;
|
||||
}
|
||||
|
||||
_alias_clean(ce);
|
||||
eina_hash_direct_add(edje_file->collection, ce->entry, ce);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue