Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto
Dir : e17/proto/exhibit/src/bin Modified Files: exhibit.h exhibit_file.h exhibit_image.c exhibit_main.c exhibit_main.h exhibit_tab.c exhibit_thumb.c Log Message: exhibit: - cleanup(s) - allow exhit /path/to/file to directly select and display that file. =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- exhibit.h 26 Dec 2005 14:28:55 -0000 1.8 +++ exhibit.h 1 Jan 2006 23:49:22 -0000 1.9 @@ -117,9 +117,10 @@ struct _Ex_Thumb { Exhibit *e; - char *name; - char *image; - Epsilon *ep; + char *name; + char *image; + Etk_Bool selected; + Epsilon *ep; }; #define WINDOW_TITLE "Exhibit" =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_file.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- exhibit_file.h 23 Dec 2005 09:46:14 -0000 1.3 +++ exhibit_file.h 1 Jan 2006 23:49:22 -0000 1.4 @@ -4,5 +4,6 @@ int _ex_file_is_ebg(char *file); int _ex_file_is_viewable(char *file); char *_ex_file_strip_extention(char *path); - +char *_ex_file_get(char *path); + #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -3 -r1.16 -r1.17 --- exhibit_image.c 28 Dec 2005 11:14:17 -0000 1.16 +++ exhibit_image.c 1 Jan 2006 23:49:22 -0000 1.17 @@ -41,7 +41,7 @@ if (ev->z > 0) { row = etk_tree_next_row_get( - etk_tree_selected_row_get(e->cur_tab->itree), + etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)), FALSE, FALSE); etk_tree_row_select(row); etk_tree_row_scroll_to(row, FALSE); @@ -49,7 +49,7 @@ else { row = etk_tree_prev_row_get( - etk_tree_selected_row_get(e->cur_tab->itree), + etk_tree_selected_row_get(ETK_TREE(e->cur_tab->itree)), FALSE, FALSE); etk_tree_row_select(row); etk_tree_row_scroll_to(row, FALSE); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -3 -r1.27 -r1.28 --- exhibit_main.c 1 Jan 2006 13:23:50 -0000 1.27 +++ exhibit_main.c 1 Jan 2006 23:49:22 -0000 1.28 @@ -220,7 +220,7 @@ e->cur_tab->dir = strdup(dcol_string); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); etk_notebook_page_tab_label_set(ETK_NOTEBOOK(e->notebook), e->cur_tab->num, _ex_file_get(e->cur_tab->cur_path)); } @@ -364,15 +364,14 @@ } void -_ex_main_populate_files(Exhibit *e) +_ex_main_populate_files(Exhibit *e, char *selected_file) { char back[PATH_MAX]; DIR *dir; struct dirent *dir_entry; + Etk_Tree_Row *row, *selected_row; -// etk_tree_freeze(ETK_TREE(e->cur_tab->itree)); -// etk_tree_freeze(ETK_TREE(e->cur_tab->dtree)); - + selected_row = NULL; snprintf(back, PATH_MAX, ".."); etk_tree_append(ETK_TREE(e->cur_tab->dtree), e->cur_tab->dcol, ETK_DEFAULT_ICON_SET_FILE, "actions/go-up", back, NULL); @@ -431,7 +430,10 @@ char *thumb; thumb = (char*)epsilon_thumb_file_get(ep); - etk_tree_append(ETK_TREE(e->cur_tab->itree), e->cur_tab->icol, thumb, dir_entry->d_name, NULL); + row = etk_tree_append(ETK_TREE(e->cur_tab->itree), e->cur_tab->icol, thumb, dir_entry->d_name, NULL); + if(selected_file) + if(!strcmp(selected_file, dir_entry->d_name)) + selected_row = row; free(thumb); } else { @@ -442,6 +444,10 @@ thumb->e = e; thumb->name = strdup(dir_entry->d_name); thumb_list = evas_list_append(thumb_list, thumb); + if(!strcmp(selected_file, dir_entry->d_name)) + thumb->selected = TRUE; + else + thumb->selected = FALSE; if(pid == -1) _ex_thumb_generate(); } } @@ -450,6 +456,12 @@ etk_tree_thaw(ETK_TREE(e->cur_tab->dtree)); etk_tree_sort(ETK_TREE(e->cur_tab->dtree), _ex_main_dtree_compare_cb, TRUE, e->cur_tab->dcol, NULL); + if(selected_row) + { + etk_tree_row_select(selected_row); + etk_tree_row_scroll_to(selected_row, TRUE); + } + closedir(dir); } @@ -467,7 +479,7 @@ e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); } } @@ -488,7 +500,7 @@ Evas_List *l; path = etk_entry_text_get(ETK_ENTRY(e->entry[0])); - dir = ecore_file_get_dir(path); + dir = (const char*)ecore_file_get_dir((char*)path); file = ecore_file_get_file(path); if(!dir || !strcmp(dir, "")) @@ -549,7 +561,7 @@ e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); } } @@ -563,7 +575,7 @@ e->cur_tab->dir = strdup((char*)etk_entry_text_get(ETK_ENTRY(e->entry[0]))); etk_tree_clear(ETK_TREE(e->cur_tab->itree)); etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); } Etk_Bool @@ -595,7 +607,7 @@ tab = _ex_tab_new(e, e->cur_tab->cur_path); _ex_main_window_tab_append(e, tab); - _ex_main_populate_files(e); + _ex_main_populate_files(e, NULL); } else if(!strcmp(ev->key, "w")) { @@ -619,7 +631,7 @@ Ex_Tab *tab; e = data; - tab = evas_list_nth(e->tabs, etk_notebook_current_page_get(ETK_WIDGET(object))); + tab = evas_list_nth(e->tabs, etk_notebook_current_page_get(ETK_NOTEBOOK(object))); e->cur_tab = tab; _ex_tab_select(tab); @@ -648,7 +660,7 @@ e->tabs = evas_list_append(e->tabs, tab); e->cur_tab = tab; etk_notebook_page_append(ETK_NOTEBOOK(e->notebook), _ex_file_get(e->cur_tab->dir), e->cur_tab->scrolled_view); - etk_notebook_current_page_set(e->notebook, evas_list_count(e->tabs) - 1); + etk_notebook_current_page_set(ETK_NOTEBOOK(e->notebook), evas_list_count(e->tabs) - 1); } void @@ -656,11 +668,15 @@ { Exhibit *e; Ex_Tab *tab; + char *file; e = calloc(1, sizeof(Exhibit)); e->mouse.down = 0; e->menu = NULL; e->tabs = NULL; + + file = NULL; + tab = NULL; e->win = etk_window_new(); etk_window_title_set(ETK_WINDOW(e->win), WINDOW_TITLE " - Image Viewing the Kewl Way!"); @@ -806,12 +822,25 @@ etk_signal_connect("clicked", ETK_OBJECT(e->entry[1]), ETK_CALLBACK(_ex_main_goto_dir_clicked_cb), e); /* create first tab but dont place it in notebook */ - tab = _ex_tab_new(e, dir); + if(ecore_file_is_dir(dir)) + tab = _ex_tab_new(e, dir); + else if(ecore_file_exists(dir)) + { + char *dir2; + + dir2 = ecore_file_get_dir(dir); + tab = _ex_tab_new(e, dir2); + free(dir2); + file = (const char*)ecore_file_get_file((const char*)dir); + } + else + tab = _ex_tab_new(e, "."); + e->cur_tab = tab; e->tabs = evas_list_append(e->tabs, tab); _ex_tab_select(tab); etk_paned_add2(ETK_PANED(tab->e->hpaned), tab->scrolled_view, TRUE); - _ex_main_populate_files(e); + _ex_main_populate_files(e, file); e->hbox = etk_hbox_new(TRUE, 0); etk_box_pack_end(ETK_BOX(e->vbox), e->hbox, FALSE, FALSE, 0); @@ -868,12 +897,7 @@ epsilon_init(); if(argc > 1) - { - if(ecore_file_is_dir(argv[1])) - _ex_main_window_show(argv[1]); - else - _ex_main_window_show(NULL); - } + _ex_main_window_show(argv[1]); else _ex_main_window_show(NULL); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_main.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_main.h 26 Dec 2005 12:17:29 -0000 1.4 +++ exhibit_main.h 1 Jan 2006 23:49:22 -0000 1.5 @@ -14,7 +14,7 @@ int _ex_main_itree_resol_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); void _ex_main_dtree_item_clicked_cb(Etk_Object *object, Etk_Tree_Row *row, void *data); int _ex_main_dtree_compare_cb(Etk_Tree *tree, Etk_Tree_Row *row1, Etk_Tree_Row *row2, Etk_Tree_Col *col, void *data); -void _ex_main_populate_files(Exhibit *e); +void _ex_main_populate_files(Exhibit *e, char *selected_file); void _ex_main_entry_dir_key_down_cb(Etk_Object *object, void *event, void *data); void _ex_main_goto_dir_clicked_cb(Etk_Object *object, void *data); Etk_Bool _ex_main_window_deleted_cb(void *data); =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_tab.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_tab.c 28 Dec 2005 11:14:18 -0000 1.4 +++ exhibit_tab.c 1 Jan 2006 23:49:22 -0000 1.5 @@ -4,8 +4,10 @@ _ex_tab_new(Exhibit *e, char *dir) { Ex_Tab *tab; - Etk_Tree_Model *imodel; + Etk_Tree_Model *imodel; + char *file; + file = NULL; tab = calloc(1, sizeof(Ex_Tab)); tab->num = evas_list_count(e->tabs); tab->dirs = NULL; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/exhibit/src/bin/exhibit_thumb.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -3 -r1.4 -r1.5 --- exhibit_thumb.c 26 Dec 2005 12:17:30 -0000 1.4 +++ exhibit_thumb.c 1 Jan 2006 23:49:22 -0000 1.5 @@ -22,8 +22,15 @@ if (ext) { + Etk_Tree_Row *row; + thumb->image = (char*)epsilon_thumb_file_get(thumb->ep); - etk_tree_append(ETK_TREE(thumb->e->cur_tab->itree), thumb->e->cur_tab->icol, thumb->image, thumb->name, NULL); + row = etk_tree_append(ETK_TREE(thumb->e->cur_tab->itree), thumb->e->cur_tab->icol, thumb->image, thumb->name, NULL); + if(thumb->selected) + { + etk_tree_row_select(row); + etk_tree_row_scroll_to(row, TRUE); + } free(thumb->image); free(thumb->name); epsilon_free(thumb->ep); ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs