show genlist's inserted sort is completely broken.
authorbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 6 Jan 2012 23:38:33 +0000 (23:38 +0000)
committerbarbieri <barbieri@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 6 Jan 2012 23:38:33 +0000 (23:38 +0000)
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 :-(

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@66947 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/bin/test.c
src/bin/test_genlist.c

index dff5711..2864336 100644 (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);
index 2a3cd74..1ecec98 100644 (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