show genlist's inserted sort is completely broken.

Sad, but it's unusable if you use it with subitems:

 * insert top-level item sorted mixes with children;

 * insert children item sorted screws the order

This is also true for groups, is holding my changes to enjoy :-(



SVN revision: 66947
This commit is contained in:
Gustavo Sverzut Barbieri 2012-01-06 23:38:33 +00:00
parent 7677abd03a
commit ba72c6d81f
2 changed files with 94 additions and 0 deletions

View File

@ -74,6 +74,7 @@ void test_genlist9(void *data, Evas_Object *obj, void *event_info);
void test_genlist10(void *data, Evas_Object *obj, void *event_info);
void test_genlist11(void *data, Evas_Object *obj, void *event_info);
void test_genlist12(void *data, Evas_Object *obj, void *event_info);
void test_genlist13(void *data, Evas_Object *obj, void *event_info);
void test_gesture_layer(void *data, Evas_Object *obj, void *event_info);
void test_gesture_layer2(void *data, Evas_Object *obj, void *event_info);
void test_gesture_layer3(void *data, Evas_Object *obj, void *event_info);
@ -398,6 +399,7 @@ add_tests:
ADD_TEST(NULL, "Lists", "Genlist Eio", test_eio);
#endif
ADD_TEST(NULL, "Lists", "Genlist Textblock", test_genlist12);
ADD_TEST(NULL, "Lists", "Genlist Tree, Insert Sorted", test_genlist13);
ADD_TEST(NULL, "Lists", "GenGrid", test_gengrid);
ADD_TEST(NULL, "Lists", "GenGrid 2", test_gengrid2);
ADD_TEST(NULL, "Lists", "GenGrid Group", test_gengrid3);

View File

@ -1945,4 +1945,96 @@ test_genlist12(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_i
evas_object_resize(win, 400, 500);
evas_object_show(win);
}
static int
gl13_cmp(const void *pa, const void *pb)
{
const Elm_Genlist_Item *ia = pa, *ib = pb;
int a = (int)(long)elm_genlist_item_data_get(ia);
int b = (int)(long)elm_genlist_item_data_get(ib);
printf(">>> cmp: %d, %d\n", a, b);
return a - b;
}
void
test_genlist13(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
{
Elm_Genlist_Item *pi[6];
Evas_Object *win, *bg, *bx, *gl;
int i, base, idx[3] = {1, 10, 20};
win = elm_win_add(NULL, "genlist-tree-insert-sorted", ELM_WIN_BASIC);
elm_win_title_set(win, "Genlist Tree, Insert Sorted");
elm_win_autodel_set(win, EINA_TRUE);
bg = elm_bg_add(win);
elm_win_resize_object_add(win, bg);
evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(bg);
bx = elm_box_add(win);
evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(win, bx);
evas_object_show(bx);
gl = elm_genlist_add(win);
evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_show(gl);
itc4.item_style = "default";
itc4.func.text_get = gl4_text_get;
itc4.func.content_get = NULL;
itc4.func.state_get = NULL;
itc4.func.del = NULL;
/* mixed order to test insert sorted */
for (i = 0; i < 3; i++)
{
pi[i] = elm_genlist_item_direct_sorted_insert
(gl, &itc4, (void *)idx[i]/* item data */, NULL/* parent */,
ELM_GENLIST_ITEM_SUBITEMS, gl13_cmp/* cmp */,
NULL/* func */, NULL/* func data */);
}
for (i = 0, base = 100; i < 3; i++, base += 100)
{
int j;
for (j = 0; j < 3; j++)
{
elm_genlist_item_direct_sorted_insert
(gl, &itc4, (void *)(idx[j] + base)/* item data */,
pi[i]/* parent */, ELM_GENLIST_ITEM_NONE,
gl13_cmp/* cmp */, NULL/* func */, NULL/* func data */);
}
}
for (i = 0; i < 3; i++)
{
pi[i + 3] = elm_genlist_item_direct_sorted_insert
(gl, &itc4, (void *)(idx[i] * 2)/* item data */, NULL/* parent */,
ELM_GENLIST_ITEM_SUBITEMS, gl13_cmp/* cmp */, NULL/* func */,
NULL/* func data */);
}
for (i = 0, base = 10000; i < 3; i++, base += 10000)
{
int j;
for (j = 0; j < 3; j++)
{
elm_genlist_item_direct_sorted_insert
(gl, &itc4, (void *)(idx[j] + base)/* item data */,
pi[i + 3]/* parent */, ELM_GENLIST_ITEM_NONE,
gl13_cmp/* cmp */, NULL/* func */, NULL/* func data */);
}
}
elm_box_pack_end(bx, gl);
evas_object_show(bx);
evas_object_resize(win, 320, 320);
evas_object_show(win);
}
#endif