From: ChunEon Park Date: Mon, 27 Jun 2011 11:03:48 +0000 (+0900) Subject: Merge "els_icon/elm_image - added features to aspect_ratio changeable" X-Git-Tag: REL_F_I9200_20110628_1~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2e93805127a33414fad7ad2ab41768a7d6c90bb5;hp=3932f634ff33bd69e8c7719fd78b97ab7504f2d8;p=framework%2Fuifw%2Felementary.git Merge "els_icon/elm_image - added features to aspect_ratio changeable" --- diff --git a/debian/changelog b/debian/changelog index 29d432c..12da544 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +elementary (1.0.0+svn.58393slp2+build32) unstable; urgency=low + + * [store] Fixed the store item check + * Git: 165.213.180.234:slp/pkgs/e/elementary + * Tag: elementary_1.0.0+svn.58393slp2+build32 + + -- Ilkook Yun Mon, 27 Jun 2011 17:03:28 +0900 + elementary (1.0.0+svn.58393slp2+build31) unstable; urgency=low * [store] Fixed the unnecessary code diff --git a/src/lib/elm_conform.c b/src/lib/elm_conform.c index 67347dd..2342e16 100644 --- a/src/lib/elm_conform.c +++ b/src/lib/elm_conform.c @@ -433,6 +433,7 @@ elm_conformant_add(Evas_Object *parent) elm_widget_type_set(obj, "conformant"); elm_widget_sub_object_add(parent, obj); elm_widget_data_set(obj, wd); + elm_widget_del_pre_hook_set(obj, _del_pre_hook); elm_widget_del_hook_set(obj, _del_hook); elm_widget_theme_hook_set(obj, _theme_hook); elm_widget_can_focus_set(obj, EINA_FALSE); diff --git a/src/lib/elm_store.c b/src/lib/elm_store.c index caa7aa8..a77f878 100644 --- a/src/lib/elm_store.c +++ b/src/lib/elm_store.c @@ -666,7 +666,7 @@ elm_store_free(Elm_Store *st) { if(sti) { - if (sti->fetch_th) + if (st->fetch_thread && sti->fetch_th) { ecore_thread_cancel(sti->fetch_th); sti->fetch_th = NULL; @@ -674,6 +674,7 @@ elm_store_free(Elm_Store *st) if (st->cb.item_free.func) { st->cb.item_free.func(st->cb.item_free.data, sti->item_info); + sti->item_info = NULL; } if (sti->fetched) { @@ -1077,6 +1078,11 @@ _item_mapping_find(Elm_Store_Item *sti, const char *part) if (!EINA_MAGIC_CHECK(sti, ELM_STORE_ITEM_MAGIC)) return NULL; const Elm_Store_Item_Mapping *m; + if(!sti->item_info) + { + return NULL; + } + for (m = sti->item_info->mapping; m; m++) { if (m->type == ELM_STORE_ITEM_MAPPING_NONE) break; @@ -1459,10 +1465,13 @@ _group_item_append(Elm_Store_Item *sti, Elm_Genlist_Item_Class *itc) if(header_list) { Elm_Store_Item *item = eina_list_nth(header_list, 0); - if (item->item_info->group_index == sti->item_info->group_index) + if(item && item->item_info) { - header_add = EINA_FALSE; - break; + if (item->item_info->group_index == sti->item_info->group_index) + { + header_add = EINA_FALSE; + break; + } } } } @@ -1483,32 +1492,35 @@ _group_item_append(Elm_Store_Item *sti, Elm_Genlist_Item_Class *itc) if (header_list) { Elm_Store_Item *group_sti = eina_list_nth(header_list, 0); - if(group_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP) + if(group_sti && group_sti->item_info) { - int sort; - if (st->cb.item_sort.func) + if(group_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP) { - sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, group_sti->item_info); + int sort; + if (st->cb.item_sort.func) + { + sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, group_sti->item_info); - if(sort == ELM_STORE_ITEM_SORT_LOW) + if(sort == ELM_STORE_ITEM_SORT_LOW) + { + st->header_items = eina_list_prepend_relative(st->header_items, new_header_list, header_list); + sti->item = elm_genlist_item_insert_before(st->genlist, + itc, + sti, + NULL, + group_sti->item, + ELM_GENLIST_ITEM_GROUP, + NULL, + NULL); + last_header = EINA_FALSE; + break; + } + } + else { - st->header_items = eina_list_prepend_relative(st->header_items, new_header_list, header_list); - sti->item = elm_genlist_item_insert_before(st->genlist, - itc, - sti, - NULL, - group_sti->item, - ELM_GENLIST_ITEM_GROUP, - NULL, - NULL); - last_header = EINA_FALSE; break; } } - else - { - break; - } } } } @@ -1566,31 +1578,34 @@ _normal_item_append(Elm_Store_Item *sti, Elm_Genlist_Item_Class *itc) if(header_list) { Elm_Store_Item *header_item = eina_list_nth(header_list, 0); - if (header_item->item_info->group_index == sti->item_info->group_index) + if(header_item && header_item->item_info) { - Eina_List *in_l; - Eina_List *in_l_next; - Elm_Store_Item *item; - - EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, item) + if (header_item->item_info->group_index == sti->item_info->group_index) { - if(item) + Eina_List *in_l; + Eina_List *in_l_next; + Elm_Store_Item *item; + + EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, item) { - int sort; - if (st->cb.item_sort.func) + if(item) { - sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, item->item_info); + int sort; + if (st->cb.item_sort.func) + { + sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, item->item_info); - if(sort == ELM_STORE_ITEM_SORT_SAME) + if(sort == ELM_STORE_ITEM_SORT_SAME) + { + elm_store_item_update(item); + } + } + else { - elm_store_item_update(item); + break; } - } - else - { - break; - } + } } } } @@ -1608,177 +1623,184 @@ _normal_item_append(Elm_Store_Item *sti, Elm_Genlist_Item_Class *itc) if(header_list) { Elm_Store_Item *header_item = eina_list_nth(header_list, 0); - if (header_item->item_info->group_index == sti->item_info->pre_group_index) + if(header_item && header_item->item_info) { - Eina_Bool removed = EINA_FALSE; - Eina_List *in_l; - Eina_List *in_l_next; - Elm_Store_Item *remove_item; - - EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, remove_item) + if (header_item->item_info->group_index == sti->item_info->pre_group_index) { - if(remove_item) + Eina_Bool removed = EINA_FALSE; + Eina_List *in_l; + Eina_List *in_l_next; + Elm_Store_Item *remove_item; + + EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, remove_item) { - if (removed == EINA_TRUE) + if(remove_item) { - remove_item->item_info->index--; - } - else - { - int sort; - if (st->cb.item_sort.func) + if (removed == EINA_TRUE) { - sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, remove_item->item_info); - - if(sort == ELM_STORE_ITEM_SORT_SAME) + remove_item->item_info->index--; + } + else + { + int sort; + if (st->cb.item_sort.func) { - if (st->cb.item_free.func) - { - st->cb.item_free.func(st->cb.item_free.data, remove_item->item_info); - } - if (remove_item->fetched) + sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, remove_item->item_info); + + if(sort == ELM_STORE_ITEM_SORT_SAME) { - int index = elm_store_item_index_get(remove_item); - if (index != -1) + if (st->cb.item_free.func) { - _item_unfetch(st, index); + st->cb.item_free.func(st->cb.item_free.data, remove_item->item_info); + remove_item->item_info = NULL; } - else + if (remove_item->fetched) { - return; + int index = elm_store_item_index_get(remove_item); + if (index != -1) + { + _item_unfetch(st, index); + } + else + { + return; + } } - } - header_list = eina_list_remove(header_list, remove_item); - st->total_item_count--; - LKD(remove_item->lock); - elm_genlist_item_del(remove_item->item); - free(remove_item); + header_list = eina_list_remove(header_list, remove_item); + st->total_item_count--; + LKD(remove_item->lock); + elm_genlist_item_del(remove_item->item); + free(remove_item); - if (eina_list_count(header_list) == 0) - { - st->header_items = eina_list_remove(st->header_items, header_list); - header_list = eina_list_free(header_list); - } - else if(eina_list_count(header_list) == 1) - { - Elm_Store_Item *temp_sti = eina_list_nth(header_list, 0); - if (temp_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP) + if (eina_list_count(header_list) == 0) { - if (st->cb.item_free.func) - { - st->cb.item_free.func(st->cb.item_free.data, temp_sti->item_info); - } - if (temp_sti->fetched) + st->header_items = eina_list_remove(st->header_items, header_list); + header_list = eina_list_free(header_list); + } + else if(eina_list_count(header_list) == 1) + { + Elm_Store_Item *temp_sti = eina_list_nth(header_list, 0); + if(temp_sti && temp_sti->item_info) { - int index = elm_store_item_index_get(temp_sti); - if (index != -1) - { - _item_unfetch(st, index); - } - else + if (temp_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP) { - return; + if (st->cb.item_free.func) + { + st->cb.item_free.func(st->cb.item_free.data, temp_sti->item_info); + temp_sti->item_info = NULL; + } + if (temp_sti->fetched) + { + int index = elm_store_item_index_get(temp_sti); + if (index != -1) + { + _item_unfetch(st, index); + } + else + { + return; + } + } + header_list = eina_list_remove(header_list, temp_sti); + st->total_item_count--; + LKD(temp_sti->lock); + elm_genlist_item_del(temp_sti->item); + free(temp_sti); + st->header_items = eina_list_remove(st->header_items, header_list); + header_list = eina_list_free(header_list); } } - header_list = eina_list_remove(header_list, temp_sti); - st->total_item_count--; - LKD(temp_sti->lock); - elm_genlist_item_del(temp_sti->item); - free(temp_sti); - st->header_items = eina_list_remove(st->header_items, header_list); - header_list = eina_list_free(header_list); } + removed = EINA_TRUE; } - removed = EINA_TRUE; } - } - else - { - break; + else + { + break; + } } } } } - } - else if (header_item->item_info->group_index == sti->item_info->group_index) - { - Eina_Bool last_add = EINA_TRUE; - Eina_List *in_l; - Eina_List *in_l_next; - Elm_Store_Item *comp_item; - - EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, comp_item) + else if (header_item->item_info->group_index == sti->item_info->group_index) { - if(comp_item) + Eina_Bool last_add = EINA_TRUE; + Eina_List *in_l; + Eina_List *in_l_next; + Elm_Store_Item *comp_item; + + EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, comp_item) { - if(last_add == EINA_FALSE) - { - comp_item->item_info->index++; - } - else + if(comp_item) { - int sort; - if (st->cb.item_sort.func) + if(last_add == EINA_FALSE) { - sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, comp_item->item_info); + comp_item->item_info->index++; + } + else + { + int sort; + if (st->cb.item_sort.func) + { + sort = st->cb.item_sort.func(st->cb.item_sort.data, sti->item_info, comp_item->item_info); - if(sort == ELM_STORE_ITEM_SORT_LOW) + if(sort == ELM_STORE_ITEM_SORT_LOW) + { + sti->item_info->index = comp_item->item_info->index; + comp_item->item_info->index++; + header_list = eina_list_prepend_relative(header_list, sti, comp_item); + st->total_item_count++; + sti->item = elm_genlist_item_insert_before(st->genlist, + itc, + sti, + header_item->item, + comp_item->item, + ELM_GENLIST_ITEM_NONE, + (Evas_Smart_Cb)sti->store->cb.item_select.func, + (void *)sti->store->cb.item_select.data); + elm_store_item_update(sti); + last_add = EINA_FALSE; + } + } + else { - sti->item_info->index = comp_item->item_info->index; - comp_item->item_info->index++; - header_list = eina_list_prepend_relative(header_list, sti, comp_item); + Elm_Store_Item *last_sti = eina_list_nth(header_list, eina_list_count(header_list) - 1); + sti->item_info->index = eina_list_count(header_list); + header_list = eina_list_append(header_list, sti); st->total_item_count++; - sti->item = elm_genlist_item_insert_before(st->genlist, - itc, - sti, - header_item->item, - comp_item->item, - ELM_GENLIST_ITEM_NONE, - (Evas_Smart_Cb)sti->store->cb.item_select.func, - (void *)sti->store->cb.item_select.data); + sti->item = elm_genlist_item_insert_after(st->genlist, + itc, + sti, + header_item->item, + last_sti->item, + ELM_GENLIST_ITEM_NONE, + (Evas_Smart_Cb)sti->store->cb.item_select.func, + (void *)sti->store->cb.item_select.data); elm_store_item_update(sti); last_add = EINA_FALSE; + break; } } - else - { - Elm_Store_Item *last_sti = eina_list_nth(header_list, eina_list_count(header_list) - 1); - sti->item_info->index = eina_list_count(header_list); - header_list = eina_list_append(header_list, sti); - st->total_item_count++; - sti->item = elm_genlist_item_insert_after(st->genlist, - itc, - sti, - header_item->item, - last_sti->item, - ELM_GENLIST_ITEM_NONE, - (Evas_Smart_Cb)sti->store->cb.item_select.func, - (void *)sti->store->cb.item_select.data); - elm_store_item_update(sti); - last_add = EINA_FALSE; - break; - } } } - } - if(last_add) - { - Elm_Store_Item *last_sti = eina_list_nth(header_list, eina_list_count(header_list) - 1); - sti->item_info->index = eina_list_count(header_list); - header_list = eina_list_append(header_list, sti); - st->total_item_count++; - sti->item = elm_genlist_item_insert_after(st->genlist, - itc, - sti, - header_item->item, - last_sti->item, - ELM_GENLIST_ITEM_NONE, - (Evas_Smart_Cb)sti->store->cb.item_select.func, - (void *)sti->store->cb.item_select.data); - elm_store_item_update(sti); + if(last_add) + { + Elm_Store_Item *last_sti = eina_list_nth(header_list, eina_list_count(header_list) - 1); + sti->item_info->index = eina_list_count(header_list); + header_list = eina_list_append(header_list, sti); + st->total_item_count++; + sti->item = elm_genlist_item_insert_after(st->genlist, + itc, + sti, + header_item->item, + last_sti->item, + ELM_GENLIST_ITEM_NONE, + (Evas_Smart_Cb)sti->store->cb.item_select.func, + (void *)sti->store->cb.item_select.data); + elm_store_item_update(sti); + } } } - } } } @@ -1798,7 +1820,7 @@ _normal_item_append(Elm_Store_Item *sti, Elm_Genlist_Item_Class *itc) { Elm_Store_Item *header_item = eina_list_nth(header_list, 0); - if(header_item) + if(header_item && header_item->item_info) { if (header_item->item_info->group_index == sti->item_info->group_index) { @@ -2071,7 +2093,7 @@ elm_store_item_index_get(const Elm_Store_Item *sti) if (header_list) { Elm_Store_Item *temp_sti = eina_list_nth(header_list, 0); - if(temp_sti) + if(temp_sti && temp_sti->item_info && sti->item_info) { if (sti->item_info->group_index == temp_sti->item_info->group_index) { @@ -2139,29 +2161,32 @@ elm_store_item_data_index_get(const Elm_Store_Item *sti) if (header_list) { Elm_Store_Item *temp_sti = eina_list_nth(header_list, 0); - - if(temp_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP) + if(temp_sti && temp_sti->item_info && sti->item_info) { - group_item_count++; - } - if (temp_sti->item_info->group_index == sti->item_info->group_index) - { - Eina_List *in_l; - Eina_List *in_l_next; - Elm_Store_Item *comp_item; + if(temp_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP) + { + group_item_count++; + } - EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, comp_item) + if (temp_sti->item_info->group_index == sti->item_info->group_index) { - if(comp_item) + Eina_List *in_l; + Eina_List *in_l_next; + Elm_Store_Item *comp_item; + + EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, comp_item) { - if (comp_item->item_info->index == sti->item_info->index) - { - return (index - group_item_count); - } - else + if(comp_item) { - index++; + if (comp_item->item_info->index == sti->item_info->index) + { + return (index - group_item_count); + } + else + { + index++; + } } } } @@ -2393,83 +2418,91 @@ elm_store_item_del(Elm_Store_Item *sti) if (header_list) { Elm_Store_Item *header_item = eina_list_nth(header_list, 0); - - if (header_item->item_info->group_index == sti->item_info->group_index) + if(header_item && header_item->item_info && sti->item_info) { - Eina_Bool removed = EINA_FALSE; - Eina_List *in_l; - Eina_List *in_l_next; - Elm_Store_Item *remove_sti; - EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, remove_sti) + + if (header_item->item_info->group_index == sti->item_info->group_index) { - if(remove_sti) + Eina_Bool removed = EINA_FALSE; + Eina_List *in_l; + Eina_List *in_l_next; + Elm_Store_Item *remove_sti; + EINA_LIST_FOREACH_SAFE(header_list, in_l, in_l_next, remove_sti) { - if (removed == EINA_TRUE) - { - remove_sti->item_info->index--; - } - else + if(remove_sti) { - if (remove_sti->item_info->index == sti->item_info->index) + if (removed == EINA_TRUE) { - if (st->cb.item_free.func) - { - st->cb.item_free.func(st->cb.item_free.data, remove_sti->item_info); - } - if (remove_sti->fetched) + remove_sti->item_info->index--; + } + else + { + if (remove_sti->item_info->index == sti->item_info->index) { - int index = elm_store_item_index_get(remove_sti); - if (index != -1) + if (st->cb.item_free.func) { - _item_unfetch(st, index); + st->cb.item_free.func(st->cb.item_free.data, remove_sti->item_info); + remove_sti->item_info = NULL; } - else + if (remove_sti->fetched) { - return; + int index = elm_store_item_index_get(remove_sti); + if (index != -1) + { + _item_unfetch(st, index); + } + else + { + return; + } } - } - header_list = eina_list_remove(header_list, remove_sti); - st->total_item_count--; - LKD(remove_sti->lock); - elm_genlist_item_del(remove_sti->item); - free(remove_sti); + header_list = eina_list_remove(header_list, remove_sti); + st->total_item_count--; + LKD(remove_sti->lock); + elm_genlist_item_del(remove_sti->item); + free(remove_sti); - if (eina_list_count(header_list) == 0) - { - st->header_items = eina_list_remove(st->header_items, header_list); - header_list = eina_list_free(header_list); - } - else if (eina_list_count(header_list) == 1) - { - Elm_Store_Item *temp_sti = eina_list_nth(header_list, 0); - if (temp_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP) + if (eina_list_count(header_list) == 0) { - if (st->cb.item_free.func) - { - st->cb.item_free.func(st->cb.item_free.data, temp_sti->item_info); - } - if (temp_sti->fetched) + st->header_items = eina_list_remove(st->header_items, header_list); + header_list = eina_list_free(header_list); + } + else if (eina_list_count(header_list) == 1) + { + Elm_Store_Item *temp_sti = eina_list_nth(header_list, 0); + if(temp_sti && temp_sti->item_info) { - int index = elm_store_item_index_get(temp_sti); - if (index != -1) + if (temp_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP) { - _item_unfetch(st, index); - } - else - { - return; + if (st->cb.item_free.func) + { + st->cb.item_free.func(st->cb.item_free.data, temp_sti->item_info); + temp_sti->item_info = NULL; + } + if (temp_sti->fetched) + { + int index = elm_store_item_index_get(temp_sti); + if (index != -1) + { + _item_unfetch(st, index); + } + else + { + return; + } + } + header_list = eina_list_remove(header_list, temp_sti); + st->total_item_count--; + LKD(temp_sti->lock); + elm_genlist_item_del(temp_sti->item); + free(temp_sti); + st->header_items = eina_list_remove(st->header_items, header_list); + header_list = eina_list_free(header_list); } } - header_list = eina_list_remove(header_list, temp_sti); - st->total_item_count--; - LKD(temp_sti->lock); - elm_genlist_item_del(temp_sti->item); - free(temp_sti); - st->header_items = eina_list_remove(st->header_items, header_list); - header_list = eina_list_free(header_list); } + removed = EINA_TRUE; } - removed = EINA_TRUE; } } }