edje: refactor styles_del() logic like styles_add()

This commit is contained in:
Sohyun Kim 2015-04-17 17:22:31 +09:00
parent a09fccd88b
commit fa0384ed2c
1 changed files with 20 additions and 43 deletions

View File

@ -291,7 +291,7 @@ _edje_textblock_style_member_add(Edje *ed, Edje_Style *stl)
Edje_Style_Tag *tag;
Eina_List *l;
if (!stl) return ;
if (!stl) return;
EINA_LIST_FOREACH(stl->tags, l, tag)
{
@ -300,6 +300,21 @@ _edje_textblock_style_member_add(Edje *ed, Edje_Style *stl)
}
}
static inline void
_edje_textblock_style_member_del(Edje *ed, Edje_Style *stl)
{
Edje_Style_Tag *tag;
Eina_List *l;
if (!stl) return;
EINA_LIST_FOREACH(stl->tags, l, tag)
{
if (tag->text_class)
_edje_text_class_member_del(ed, tag->text_class);
}
}
void
_edje_textblock_styles_add(Edje *ed, Edje_Real_Part *ep)
{
@ -340,53 +355,15 @@ _edje_textblock_styles_del(Edje *ed, Edje_Part *pt)
desc = (Edje_Part_Description_Text *)pt->default_desc;
style = edje_string_get(&desc->text.style);
if (style)
{
Eina_List *l;
EINA_LIST_FOREACH(ed->file->styles, l, stl)
{
if ((stl->name) && (!strcmp(stl->name, style))) break;
stl = NULL;
}
}
if (stl)
{
Edje_Style_Tag *tag;
Eina_List *l;
EINA_LIST_FOREACH(stl->tags, l, tag)
{
if (tag->text_class)
_edje_text_class_member_del(ed, tag->text_class);
}
}
stl = _edje_textblock_style_search(ed, style);
_edje_textblock_style_member_del(ed, stl);
for (i = 0; i < pt->other.desc_count; ++i)
{
desc = (Edje_Part_Description_Text *)pt->other.desc[i];
style = edje_string_get(&desc->text.style);
if (style)
{
Eina_List *l;
EINA_LIST_FOREACH(ed->file->styles, l, stl)
{
if ((stl->name) && (!strcmp(stl->name, style))) break;
stl = NULL;
}
}
if (stl)
{
Edje_Style_Tag *tag;
Eina_List *l;
EINA_LIST_FOREACH(stl->tags, l, tag)
{
if (tag->text_class)
_edje_text_class_member_del(ed, tag->text_class);
}
}
stl = _edje_textblock_style_search(ed, style);
_edje_textblock_style_member_del(ed, stl);
}
}