Enlightenment CVS committal
Author : chaos
Project : e17
Module : proto
Dir : e17/proto/entropy/src/plugins
Modified Files:
etk_structure_viewer.c
Log Message:
* On new window launch, if the user has requested a directory, traverse up the
file tree and backpopulate the tree hierarchy
===================================================================
RCS file: /cvs/e/e17/proto/entropy/src/plugins/etk_structure_viewer.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- etk_structure_viewer.c 2 Apr 2006 05:47:38 -0000 1.23
+++ etk_structure_viewer.c 15 Apr 2006 10:43:09 -0000 1.24
@@ -140,7 +140,7 @@
-void
+Etk_Tree_Row*
structure_viewer_add_row (entropy_gui_component_instance * instance,
entropy_generic_file * file, Etk_Tree_Row * prow)
{
@@ -178,6 +178,8 @@
ecore_list_append (viewer->files, event->file);
etk_tree_thaw(ETK_TREE(viewer->tree));
+
+ return new_row;
}
void
@@ -197,6 +199,40 @@
((entropy_file_request *) eevent->data)->file;
row = ecore_hash_get (viewer->row_folder_hash, event_file);
+
+ /*If we don't have a file's row-parent, try traversing up the tree
+ * to find it*/
+ if (!row) {
+ entropy_generic_file* traverse_file = event_file;
+ Ecore_List* traverse_stack;
+ int hit = 0;
+
+ traverse_stack = ecore_list_new();
+ /*Attempt to traverse up the tree...*/
+ while ( (traverse_file =
entropy_core_parent_folder_file_get(traverse_file))) {
+ if (ecore_hash_get(viewer->row_folder_hash,
traverse_file)) {
+ row =
ecore_hash_get(viewer->row_folder_hash, traverse_file);
+ hit = 1;
+ goto done;
+ }
+
+ ecore_list_prepend(traverse_stack, traverse_file);
+ }
+
+ done:
+ if (hit) {
+ while ((traverse_file =
ecore_list_remove_first(traverse_stack))) {
+ row = structure_viewer_add_row(comp,
traverse_file, row);
+ entropy_core_file_cache_add_reference
(traverse_file->md5);
+ }
+
+ row = structure_viewer_add_row(comp, event_file,
row);
+ entropy_core_file_cache_add_reference
(event_file->md5);
+ }
+
+ ecore_list_destroy(traverse_stack);
+ }
+
if (row)
etk_tree_row_select(row);
@@ -282,7 +318,7 @@
plugin = entropy_malloc(sizeof(Entropy_Plugin_Gui));
base = ENTROPY_PLUGIN(plugin);
- return plugin;
+ return ENTROPY_PLUGIN(plugin);
}
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs