rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=530ab83a1d6c4985df1acd4e895ab5f3d5cc36c1
commit 530ab83a1d6c4985df1acd4e895ab5f3d5cc36c1 Author: Vitalii Vorobiov <vi.vorob...@samsung.com> Date: Fri Jan 29 14:17:58 2016 +0000 style_manager: check tags on tag_add and disable OK button if already exist --- src/bin/ui/style_manager.c | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/bin/ui/style_manager.c b/src/bin/ui/style_manager.c index 9c8bf02..d1f2f2d 100644 --- a/src/bin/ui/style_manager.c +++ b/src/bin/ui/style_manager.c @@ -73,6 +73,7 @@ struct _Style_Editor Resource_Name_Validator *name_validator; Evas_Object *btn_add; Evas_Object *dialog; + Eina_List *buf_resources; } popup; Elm_Object_Item *tag; }; @@ -103,6 +104,7 @@ _on_popup_bt_cancel(void *data, void *ei __UNUSED__) { Style_Editor *style_edit = (Style_Editor *)data; + Resource *res; assert(style_edit != NULL); assert(POPUP.name_validator != NULL); @@ -118,6 +120,13 @@ _on_popup_bt_cancel(void *data, resource_name_validator_free(POPUP.name_validator); POPUP.name_validator = NULL; + + EINA_LIST_FREE(POPUP.buf_resources, res) + { + eina_stringshare_del(res->name); + free(res); + } + POPUP.buf_resources = NULL; } static void @@ -356,6 +365,9 @@ _on_bt_tag_add(Style_Editor *style_edit) Elm_Object_Item *glit_parent = elm_genlist_item_parent_get(glit); const char *style_name; Eina_Stringshare *buf; + Eina_List *tags, *l_tg; + char *tag; + Resource *res; if (!glit) { @@ -380,6 +392,15 @@ _on_bt_tag_add(Style_Editor *style_edit) style_edit->tag = glit_parent; } + tags = edje_edit_style_tags_list_get(ap.project->global_object, style_name); + EINA_LIST_FOREACH(tags, l_tg, tag) + { + res = mem_calloc(1, sizeof(Resource)); + res->name = eina_stringshare_add(tag); + POPUP.buf_resources = eina_list_sorted_insert(POPUP.buf_resources, (Eina_Compare_Cb) resource_cmp, res); + } + eina_list_free(tags); + POPUP.dialog = elm_popup_add(ap.win); buf = eina_stringshare_printf(_("Add tag to style: %s"), style_name); elm_object_part_text_set(POPUP.dialog, "title,text", buf); @@ -388,7 +409,7 @@ _on_bt_tag_add(Style_Editor *style_edit) LAYOUT_PROP_ADD(box, "Tag name:", "property", "1swallow") POPUP.name_validator = resource_name_validator_new(NAME_REGEX, NULL); - resource_name_validator_list_set(POPUP.name_validator, &ap.project->styles, true); + resource_name_validator_list_set(POPUP.name_validator, &POPUP.buf_resources, true); ENTRY_ADD(item, POPUP.name, true); eo_do(POPUP.name, eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, resource_name_validator_helper, POPUP.name_validator)); evas_object_smart_callback_add(POPUP.name, "changed", _validate, style_edit); --