Enlightenment CVS committal Author : lordchaos Project : e17 Module : proto
Dir : e17/proto/entropy/src/plugins Modified Files: etk_list_viewer.c etk_structure_viewer.c Log Message: * Click headers to sort for filename and size (date modified coming soon) * Only go to dir on right mouse button click =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/entropy/src/plugins/etk_list_viewer.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -3 -r1.21 -r1.22 --- etk_list_viewer.c 26 Feb 2006 05:56:06 -0000 1.21 +++ etk_list_viewer.c 27 Feb 2006 08:01:59 -0000 1.22 @@ -80,6 +80,44 @@ } +/* Compares two rows of the tree */ +static int _entropy_etk_list_filename_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +{ + char *row1_value, *row2_value; + + if (!tree || !row1 || !row2 || !col) + return 0; + + etk_tree_row_fields_get(row1, col, &row1_value, NULL); + etk_tree_row_fields_get(row2, col, &row2_value, NULL); + + return strcmp(row1_value, row2_value); +} + +/* Compares two rows of the tree */ +static int _entropy_etk_list_size_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data) +{ + gui_file *file1, *file2; + + if (!tree || !row1 || !row2 || !col) + return 0; + + file1 = ecore_hash_get(row_hash, row1); + file2 = ecore_hash_get(row_hash, row2); + + if (file1 && file2) { + if (file1->file->properties.st_size > file2->file->properties.st_size) { + return 1; + } else if (file1->file->properties.st_size < file2->file->properties.st_size) { + return -1; + } else return 0; + } else { + printf("Could not locate file!\n"); + return 0; + } +} + + static void _entropy_etk_list_viewer_drag_begin_cb(Etk_Object *object, void *data) { @@ -249,7 +287,7 @@ } else { // time_t stime = file->properties.st_mtime - snprintf(buffer,50, "%d Kb", file->properties.st_size / 1024); + snprintf(buffer,50, "%lld Kb", file->properties.st_size / 1024); new_row = etk_tree_append(ETK_TREE(viewer->tree), col1, PACKAGE_DATA_DIR "/icons/default.png", col2, file->filename, @@ -365,7 +403,7 @@ col4 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 3); col5 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 4); - snprintf(buffer,50, "%d Kb", file_stat->stat_obj->st_size / 1024); + snprintf(buffer,50, "%lld Kb", file_stat->stat_obj->st_size / 1024); etk_tree_freeze(ETK_TREE(viewer->tree)); etk_tree_row_fields_set((Etk_Tree_Row*)obj->icon, @@ -468,10 +506,12 @@ viewer->tree_col1 = etk_tree_col_new(ETK_TREE(viewer->tree), _("Filename"), etk_tree_model_text_new(ETK_TREE(viewer->tree)), 100); etk_tree_col_expand_set(viewer->tree_col1, ETK_TRUE); + etk_tree_col_sort_func_set(viewer->tree_col1, _entropy_etk_list_filename_compare_cb, ETK_TRUE, NULL); viewer->tree_col1 = etk_tree_col_new(ETK_TREE(viewer->tree), _("Size"), etk_tree_model_text_new(ETK_TREE(viewer->tree)),40); etk_tree_col_expand_set(viewer->tree_col1, ETK_TRUE); + etk_tree_col_sort_func_set(viewer->tree_col1, _entropy_etk_list_size_compare_cb, ETK_TRUE, NULL); viewer->tree_col1 = etk_tree_col_new(ETK_TREE(viewer->tree), _("Type"), etk_tree_model_text_new(ETK_TREE(viewer->tree)),40); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/entropy/src/plugins/etk_structure_viewer.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- etk_structure_viewer.c 22 Feb 2006 14:25:54 -0000 1.9 +++ etk_structure_viewer.c 27 Feb 2006 08:01:59 -0000 1.10 @@ -115,7 +115,9 @@ entropy_etk_file_structure_viewer* viewer; entropy_gui_event *gui_event; event_file_core* e_event; - + + if (!(event->button == 1)) + return; instance = ecore_hash_get(instance_map_hash, row); if (instance) { ------------------------------------------------------- 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 enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs