ecore_thread_cancel(sti->fetch_th);
sti->fetch_th = NULL;
}
- 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)
{
int index = elm_store_item_index_get(sti);
if (index != -1) _item_unfetch(st, index);
}
+ if (st->cb.item_free.func)
+ {
+ st->cb.item_free.func(st->cb.item_free.data, sti->item_info);
+ sti->item_info = NULL;
+ }
LKD(sti->lock);
}
}
{
Elm_Store_Item *sti = data;
LKL(sti->lock);
- if (th == sti->fetch_th) sti->fetch_th = NULL;
+ if(sti->data) elm_genlist_item_update(sti->item);
LKU(sti->lock);
+ if (th == sti->fetch_th) sti->fetch_th = NULL;
}
static void
Elm_Store_Item *sti = data;
LKL(sti->lock);
if (th == sti->fetch_th) sti->fetch_th = NULL;
+ if(sti->data) elm_genlist_item_update(sti->item);
LKU(sti->lock);
}
if(sort == ELM_STORE_ITEM_SORT_SAME)
{
- if (st->cb.item_free.func)
- {
- st->cb.item_free.func(st->cb.item_free.data, remove_item->item_info);
- remove_item->item_info = NULL;
- }
if (remove_item->fetched)
{
int index = elm_store_item_index_get(remove_item);
return;
}
}
+ if (st->cb.item_free.func)
+ {
+ st->cb.item_free.func(st->cb.item_free.data, remove_item->item_info);
+ remove_item->item_info = NULL;
+ }
+
+ Eina_List *temp_header_list = header_list;
header_list = eina_list_remove(header_list, remove_item);
st->total_item_count--;
LKD(remove_item->lock);
if (eina_list_count(header_list) == 0)
{
- st->header_items = eina_list_remove(st->header_items, header_list);
+ st->header_items = eina_list_remove(st->header_items, temp_header_list);
header_list = eina_list_free(header_list);
}
else if(eina_list_count(header_list) == 1)
{
if (temp_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP)
{
- 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);
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;
+ }
+
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);
+ st->header_items = eina_list_remove(st->header_items, temp_header_list);
header_list = eina_list_free(header_list);
}
}
}
+ temp_header_list = eina_list_free(temp_header_list);
removed = EINA_TRUE;
}
}
{
if (remove_sti->item_info->index == sti->item_info->index)
{
- if (st->cb.item_free.func)
- {
- st->cb.item_free.func(st->cb.item_free.data, remove_sti->item_info);
- remove_sti->item_info = NULL;
- }
if (remove_sti->fetched)
{
int index = elm_store_item_index_get(remove_sti);
return;
}
}
+ if (st->cb.item_free.func)
+ {
+ st->cb.item_free.func(st->cb.item_free.data, remove_sti->item_info);
+ remove_sti->item_info = NULL;
+ }
+
+ Eina_List *temp_header_list = header_list;
header_list = eina_list_remove(header_list, remove_sti);
st->total_item_count--;
LKD(remove_sti->lock);
if (eina_list_count(header_list) == 0)
{
- st->header_items = eina_list_remove(st->header_items, header_list);
+ st->header_items = eina_list_remove(st->header_items, temp_header_list);
header_list = eina_list_free(header_list);
}
else if (eina_list_count(header_list) == 1)
{
if (temp_sti->item_info->item_type == ELM_GENLIST_ITEM_GROUP)
{
- 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);
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;
+ }
+
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);
+ st->header_items = eina_list_remove(st->header_items, temp_header_list);
header_list = eina_list_free(header_list);
}
}
}
+ temp_header_list = eina_list_free(temp_header_list);
removed = EINA_TRUE;
}
}