Enlightenment CVS committal
Author : leviathan
Project : e17
Module : apps/exhibit
Dir : e17/apps/exhibit/src/bin
Modified Files:
exhibit_main.c exhibit_sort.c exhibit_tab.c exhibit_tab.h
Log Message:
Synchronize image list with the tree after sorting
===================================================================
RCS file: /cvs/e/e17/apps/exhibit/src/bin/exhibit_main.c,v
retrieving revision 1.121
retrieving revision 1.122
diff -u -3 -r1.121 -r1.122
--- exhibit_main.c 5 Sep 2007 10:15:50 -0000 1.121
+++ exhibit_main.c 10 Sep 2007 09:21:32 -0000 1.122
@@ -402,10 +402,7 @@
data->num = FILELIST_SIZE * j + i;
closedir(dir);
- // free the old images list
- for (l = e->cur_tab->images; l; l = l->next)
- if (l->data) free(l->data);
- e->cur_tab->images = evas_list_free(e->cur_tab->images);
+ _ex_tab_imagelist_free(e->cur_tab);
ecore_timer_add(0.001, _ex_main_populate_files_timer_cb, data);
===================================================================
RCS file: /cvs/e/e17/apps/exhibit/src/bin/exhibit_sort.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -3 -r1.13 -r1.14
--- exhibit_sort.c 9 Jul 2007 23:50:41 -0000 1.13
+++ exhibit_sort.c 10 Sep 2007 09:21:32 -0000 1.14
@@ -166,6 +166,7 @@
{
etk_tree_col_sort_full(etk_tree_nth_col_get(ETK_TREE(e->cur_tab->itree),
0), _ex_sort_itree_name_compare_cb,
NULL, ETK_TRUE);
+ _ex_tab_imagelist_rebuild();
}
void
@@ -173,6 +174,7 @@
{
etk_tree_col_sort_full(e->cur_tab->icol, _ex_sort_itree_size_compare_cb,
NULL, ETK_TRUE);
+ _ex_tab_imagelist_rebuild();
}
void
@@ -180,6 +182,7 @@
{
etk_tree_col_sort_full(e->cur_tab->icol, _ex_sort_itree_resol_compare_cb,
NULL, ETK_TRUE);
+ _ex_tab_imagelist_rebuild();
}
void
@@ -187,6 +190,7 @@
{
etk_tree_col_sort_full(e->cur_tab->icol, _ex_sort_itree_date_compare_cb,
NULL, ETK_TRUE);
+ _ex_tab_imagelist_rebuild();
}
void
===================================================================
RCS file: /cvs/e/e17/apps/exhibit/src/bin/exhibit_tab.c,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -3 -r1.42 -r1.43
--- exhibit_tab.c 5 Sep 2007 10:15:50 -0000 1.42
+++ exhibit_tab.c 10 Sep 2007 09:21:32 -0000 1.43
@@ -440,3 +440,47 @@
_ex_main_populate_files(NULL, EX_TREE_UPDATE_ALL);
}
}
+
+void
+_ex_tab_imagelist_rebuild()
+{
+ Ex_Tab *tab;
+ Etk_Tree_Row * iter;
+ char * icol_string;
+
+ tab = e->cur_tab;
+ _ex_tab_imagelist_free(tab);
+
+ // walk the tree and rebuild the image list
+ for (iter = etk_tree_first_row_get(ETK_TREE(tab->itree));
+ iter;
+ iter = etk_tree_row_walk_next(iter, ETK_TRUE))
+ {
+ char *image;
+ image = (char *)calloc(PATH_MAX, sizeof(char));
+
+ etk_tree_row_fields_get(iter,
+ etk_tree_nth_col_get(ETK_TREE(tab->itree), 0), NULL, NULL,
+ &icol_string, NULL);
+
+ snprintf(image, PATH_MAX, "%s%s", tab->dir, icol_string);
+
+ tab->images = evas_list_append(tab->images, image);
+
+ }
+
+}
+
+void
+_ex_tab_imagelist_free(Ex_Tab *tab)
+{
+ Evas_List *l;
+ if (!tab) return;
+
+ for (l = tab->images; l; l = l->next)
+ if (l->data) free(l->data);
+ tab->images = evas_list_free(tab->images);
+}
+
+
+
===================================================================
RCS file: /cvs/e/e17/apps/exhibit/src/bin/exhibit_tab.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- exhibit_tab.h 3 May 2007 10:30:41 -0000 1.6
+++ exhibit_tab.h 10 Sep 2007 09:21:32 -0000 1.7
@@ -12,4 +12,6 @@
void _ex_tab_current_zoom_one_to_one(Exhibit *e);
void _ex_tab_current_fit_to_window(Exhibit *e);
Ex_Tab *_ex_tab_find_by_itree(Etk_Tree *itree);
+void _ex_tab_imagelist_rebuild();
+void _ex_tab_imagelist_free(Ex_Tab *tab);
#endif
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs