Enlightenment CVS committal Author : codewarrior Project : e17 Module : proto
Dir : e17/proto/exhibit/src/bin Modified Files: exhibit.h exhibit_comment.c exhibit_image.c exhibit_main.c exhibit_options.c exhibit_sort.c exhibit_tab.c Log Message: - patch from balony: sorting in options save after rotate option =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit.h,v retrieving revision 1.26 retrieving revision 1.27 diff -u -3 -r1.26 -r1.27 --- exhibit.h 10 Aug 2006 17:05:48 -0000 1.26 +++ exhibit.h 11 Aug 2006 02:30:57 -0000 1.27 @@ -62,6 +62,14 @@ EX_IMAGE_ZOOM_OUT = -4 } Ex_Images; +typedef enum _Ex_Sort +{ + EX_SORT_BY_DATE = -1, + EX_SORT_BY_SIZE = -2, + EX_SORT_BY_NAME = -3, + EX_SORT_BY_RESOLUTION = -4 +} Ex_Sort; + struct _Ex_Options { char *app1; @@ -77,8 +85,10 @@ double slide_interval; int comments_visible; + int rotate_autosave; int default_view; int default_sort; + int default_sort_tmp; int last_w; int last_h; @@ -95,6 +105,12 @@ Etk_Widget *slide_interval; Etk_Widget *comments_visible; + Etk_Widget *rotate_autosave; + Etk_Widget *default_sort; + Etk_Combobox_Item *sort_date; + Etk_Combobox_Item *sort_size; + Etk_Combobox_Item *sort_name; + Etk_Combobox_Item *sort_resolution; }; struct _Ex_Tab =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_comment.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -3 -r1.9 -r1.10 --- exhibit_comment.c 2 Aug 2006 03:10:43 -0000 1.9 +++ exhibit_comment.c 11 Aug 2006 02:30:57 -0000 1.10 @@ -9,9 +9,6 @@ void _ex_comment_show(Exhibit *e) { - if(e->cur_tab->comment.visible) - return; - e->cur_tab->comment.vbox = etk_vbox_new(ETK_FALSE, 0); if(evas_list_count(e->tabs) == 1) { =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_image.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- exhibit_image.c 10 Aug 2006 04:01:10 -0000 1.29 +++ exhibit_image.c 11 Aug 2006 02:30:57 -0000 1.30 @@ -342,7 +342,11 @@ evas_object_image_size_set(im->image_object, iw, ih); evas_object_image_data_set(im->image_object, data); evas_object_image_data_update_add(im->image_object, 0, 0, iw, ih); - etk_widget_size_request_set(ETK_WIDGET(im), iw, ih); + etk_widget_size_request_set(ETK_WIDGET(im), iw, ih); + + + if (e->options->rotate_autosave) + _ex_image_save(ETK_IMAGE(e->cur_tab->image)); } void =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_main.c,v retrieving revision 1.62 retrieving revision 1.63 diff -u -3 -r1.62 -r1.63 --- exhibit_main.c 10 Aug 2006 17:05:48 -0000 1.62 +++ exhibit_main.c 11 Aug 2006 02:30:57 -0000 1.63 @@ -104,13 +104,12 @@ { etk_image_set_from_file(ETK_IMAGE(e->cur_tab->image), image); - if (e->options->default_view == EX_IMAGE_FIT_TO_WINDOW) + if (e->cur_tab->fit_window) { _ex_tab_current_fit_to_window(e); D(("Setting EX_IMAGE_FIT_TO_WINDOW loaded and used\n")); - } - else if (e->options->default_view == EX_IMAGE_ONE_TO_ONE) + else { _ex_tab_current_zoom_one_to_one(e); D(("Setting EX_IMAGE_ONE_TO_ONE loaded and used\n")); @@ -143,9 +142,6 @@ if (e->options->comments_visible) _ex_comment_show(e); - - if(e->cur_tab->comment.visible) - _ex_comment_load(e); } static int @@ -256,6 +252,18 @@ } etk_tree_thaw(ETK_TREE(e->cur_tab->itree)); + + D(("e->options->default_sort: %d\n", e->options->default_sort)); + + if (e->options->default_sort == EX_SORT_BY_DATE) + _ex_sort_date_cb(NULL, NULL); + else if (e->options->default_sort == EX_SORT_BY_SIZE) + _ex_sort_size_cb(NULL, NULL); + else if (e->options->default_sort == EX_SORT_BY_NAME) + _ex_sort_name_cb(NULL, NULL); + else if (e->options->default_sort == EX_SORT_BY_RESOLUTION) + _ex_sort_resol_cb(NULL, NULL); + etk_tree_thaw(ETK_TREE(e->cur_tab->dtree)); etk_tree_sort(ETK_TREE(e->cur_tab->dtree), _ex_main_dtree_compare_cb, ETK_TRUE, e->cur_tab->dcol, NULL); =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_options.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -3 -r1.8 -r1.9 --- exhibit_options.c 10 Aug 2006 17:05:48 -0000 1.8 +++ exhibit_options.c 11 Aug 2006 02:30:57 -0000 1.9 @@ -94,7 +94,9 @@ CFG_OPTIONS_NEWI("rt", brighten_thresh, EET_T_DOUBLE); CFG_OPTIONS_NEWI("lt", slide_interval, EET_T_DOUBLE); CFG_OPTIONS_NEWI("cv", comments_visible, EET_T_INT); + CFG_OPTIONS_NEWI("ra", rotate_autosave, EET_T_INT); CFG_OPTIONS_NEWI("dv", default_view, EET_T_INT); + CFG_OPTIONS_NEWI("ds", default_sort, EET_T_INT); CFG_OPTIONS_NEWI("lw", last_w, EET_T_INT); CFG_OPTIONS_NEWI("lh", last_h, EET_T_INT); @@ -185,9 +187,10 @@ e->options->slide_interval = EX_DEFAULT_SLIDE_INTERVAL; e->options->comments_visible = EX_DEFAULT_COMMENTS_HIDDEN; e->options->default_view = EX_IMAGE_ONE_TO_ONE; - e->options->default_sort = 0; /* TODO: enumerate sort types */ + e->options->default_sort = EX_SORT_BY_NAME; e->options->last_w = EX_DEFAULT_WINDOW_WIDTH; - e->options->last_h = EX_DEFAULT_WINDOW_HEIGHT; + e->options->last_h = EX_DEFAULT_WINDOW_HEIGHT; + e->options->rotate_autosave = ETK_FALSE; e->version = _ex_options_version_parse(VERSION); } @@ -291,8 +294,7 @@ D(("Config: Loaded saved options (%s)\n", e->options->fav_path)); D(("Default view: %d\n", e->options->default_view)); - - + eet_close(ef); return 1; } @@ -348,6 +350,7 @@ { D(("Fit to window is checked\n")); e->options->default_view = EX_IMAGE_FIT_TO_WINDOW; + e->cur_tab->fit_window = ETK_TRUE; _ex_tab_current_fit_to_window(e); } @@ -365,7 +368,13 @@ e->options->comments_visible = EX_DEFAULT_COMMENTS_HIDDEN; _ex_comment_hide(e); } - + + /* ROTATE */ + if (IS_SELECTED(dialog->rotate_autosave)) + e->options->rotate_autosave = ETK_TRUE; + else + e->options->rotate_autosave = ETK_FALSE; + /* BLUR */ string = etk_entry_text_get(ETK_ENTRY(dialog->blur_thresh)); if (string) @@ -439,9 +448,14 @@ { _ex_main_dialog_show("Missing value for slideshow interval, but still " \ "saving the other options!", ETK_MESSAGE_DIALOG_WARNING); - } + /* SORTING */ + e->options->default_sort = e->options->default_sort_tmp; + etk_tree_clear(ETK_TREE(e->cur_tab->dtree)); + etk_tree_clear(ETK_TREE(e->cur_tab->itree)); + _ex_main_populate_files(e, NULL); + } static Etk_Widget * @@ -450,7 +464,6 @@ Etk_Widget *vbox, *hbox; Etk_Widget *vbox2; Etk_Widget *frame; - Etk_Widget *table; Etk_Widget *label; char string[256]; @@ -480,7 +493,6 @@ dialog->slide_interval = etk_entry_new(); etk_box_pack_start(ETK_BOX(hbox), dialog->slide_interval, ETK_FALSE, ETK_FALSE, 0); - frame = etk_frame_new("Comments"); etk_box_pack_start(ETK_BOX(vbox), frame, ETK_FALSE, ETK_FALSE, 5); @@ -501,6 +513,7 @@ if (e->options->comments_visible == EX_DEFAULT_COMMENTS_VISIBLE) etk_toggle_button_toggle(ETK_TOGGLE_BUTTON(dialog->comments_visible)); + sprintf(string, "%.2f", e->options->slide_interval); D(("Entry gets texts for slide_interval: %s\n", string)); etk_entry_text_set(ETK_ENTRY(dialog->slide_interval), string); @@ -548,6 +561,16 @@ etk_table_attach(ETK_TABLE(table), dialog->brighten_thresh, 1, 1, 2, 2, 0, 0, ETK_FILL_POLICY_NONE); + frame = etk_frame_new("Rotate"); + etk_box_pack_start(ETK_BOX(vbox), frame, ETK_FALSE, ETK_FALSE, 5); + vbox2 = etk_vbox_new(ETK_FALSE, 0); + etk_container_add(ETK_CONTAINER(frame), vbox2); + + dialog->rotate_autosave = etk_check_button_new_with_label("Autosave after rotate"); + etk_box_pack_start(ETK_BOX(vbox2), dialog->rotate_autosave, ETK_FALSE, + ETK_FALSE, 0); + + sprintf(string, "%.2f", e->options->blur_thresh); D(("Entry gets texts for blur tresh: %s\n", string)); etk_entry_text_set(ETK_ENTRY(dialog->blur_thresh), string); @@ -560,16 +583,94 @@ D(("Entry gets texts for brighten tresh: %s\n", string)); etk_entry_text_set(ETK_ENTRY(dialog->brighten_thresh), string); + if (e->options->rotate_autosave) + etk_toggle_button_toggle(ETK_TOGGLE_BUTTON(dialog->rotate_autosave)); + return vbox; } +static void +_ex_options_combobox_active_item_changed_cb(Etk_Object *object, void *data) +{ + Etk_Combobox_Item *item; + Ex_Options_Dialog *dialog = e->opt_dialog; + + item = etk_combobox_active_item_get(ETK_COMBOBOX(object)); + + if (item == dialog->sort_date) + e->options->default_sort_tmp = EX_SORT_BY_DATE; + else if (item == dialog->sort_size) + e->options->default_sort_tmp = EX_SORT_BY_SIZE; + else if (item == dialog->sort_name) + e->options->default_sort_tmp = EX_SORT_BY_NAME; + else if (item == dialog->sort_resolution) + e->options->default_sort_tmp = EX_SORT_BY_RESOLUTION; + + D(("Selected item %p, e->options->default_sort_tmp %d\n", item, + e->options->default_sort_tmp)); +} + static Etk_Widget * _ex_options_page_3_create() { - Etk_Widget *vbox; + Etk_Widget *vbox, *hbox; + Etk_Widget *frame, *label; + Etk_Widget *image; Ex_Options_Dialog *dialog = e->opt_dialog; vbox = etk_vbox_new(ETK_FALSE, 3); + + frame = etk_frame_new("Thumb sorting"); + etk_box_pack_start(ETK_BOX(vbox), frame, ETK_FALSE, ETK_FALSE, 5); + hbox = etk_hbox_new(ETK_FALSE, 0); + etk_container_add(ETK_CONTAINER(frame), hbox); + + label = etk_label_new("Default sort by"); + etk_box_pack_start(ETK_BOX(hbox), label, ETK_FALSE, + ETK_FALSE, 0); + + e->options->default_sort_tmp = e->options->default_sort; + + dialog->default_sort = etk_combobox_new(); + etk_combobox_column_add(ETK_COMBOBOX(dialog->default_sort), ETK_COMBOBOX_IMAGE, + 24, ETK_FALSE, ETK_FALSE, ETK_FALSE, 0.0, 0.5); + etk_combobox_column_add(ETK_COMBOBOX(dialog->default_sort), ETK_COMBOBOX_LABEL, + 75, ETK_TRUE, ETK_FALSE, ETK_FALSE, 0.0, 0.5); + etk_combobox_build(ETK_COMBOBOX(dialog->default_sort)); + etk_box_pack_start(ETK_BOX(hbox), dialog->default_sort, ETK_FALSE, + ETK_FALSE, 0); + + image = etk_image_new_from_stock(ETK_STOCK_OFFICE_CALENDAR, ETK_STOCK_SMALL); + dialog->sort_date = etk_combobox_item_append(ETK_COMBOBOX(dialog->default_sort), image, "Date"); + image = etk_image_new_from_stock(ETK_STOCK_DRIVE_HARDDISK, ETK_STOCK_SMALL); + dialog->sort_size = etk_combobox_item_append(ETK_COMBOBOX(dialog->default_sort), image, "Size"); + image = etk_image_new_from_stock(ETK_STOCK_TEXT_X_GENERIC, ETK_STOCK_SMALL); + dialog->sort_name = etk_combobox_item_append(ETK_COMBOBOX(dialog->default_sort), image, "Name"); + image = etk_image_new_from_stock(ETK_STOCK_UTILITIES_SYSTEM_MONITOR, ETK_STOCK_SMALL); + dialog->sort_resolution = etk_combobox_item_append(ETK_COMBOBOX(dialog->default_sort), image, "Resolution"); + + etk_signal_connect("active_item_changed", ETK_OBJECT(dialog->default_sort), + ETK_CALLBACK(_ex_options_combobox_active_item_changed_cb), NULL); + + if (e->options->default_sort == EX_SORT_BY_DATE) + etk_combobox_active_item_set(ETK_COMBOBOX(dialog->default_sort), dialog->sort_date); + else if (e->options->default_sort == EX_SORT_BY_SIZE) + etk_combobox_active_item_set(ETK_COMBOBOX(dialog->default_sort), dialog->sort_size); + else if (e->options->default_sort == EX_SORT_BY_NAME) + etk_combobox_active_item_set(ETK_COMBOBOX(dialog->default_sort), dialog->sort_name); + else if (e->options->default_sort == EX_SORT_BY_RESOLUTION) + etk_combobox_active_item_set(ETK_COMBOBOX(dialog->default_sort), dialog->sort_resolution); + + return vbox; +} + + +static Etk_Widget * +_ex_options_page_4_create() +{ + Etk_Widget *vbox; + + vbox = etk_vbox_new(ETK_FALSE, 3); return vbox; } @@ -606,6 +707,8 @@ page = _ex_options_page_2_create(); etk_notebook_page_append(ETK_NOTEBOOK(notebook), "Effects", page); page = _ex_options_page_3_create(); + etk_notebook_page_append(ETK_NOTEBOOK(notebook), "Dir/thumb listing", page); + page = _ex_options_page_4_create(); etk_notebook_page_append(ETK_NOTEBOOK(notebook), "Exec commands", page); etk_box_pack_start(ETK_BOX(vbox), etk_hseparator_new(), =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_sort.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- exhibit_sort.c 2 Aug 2006 19:23:22 -0000 1.5 +++ exhibit_sort.c 11 Aug 2006 02:30:57 -0000 1.6 @@ -114,36 +114,25 @@ void _ex_sort_name_cb(Etk_Object *obj, void *data) { - Exhibit *e; - - e = data; - etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_sort_itree_name_compare_cb, ETK_TRUE, e->cur_tab->icol, NULL); + etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_sort_itree_name_compare_cb, + ETK_TRUE, e->cur_tab->icol, NULL); } void _ex_sort_size_cb(Etk_Object *obj, void *data) { - Exhibit *e; - - e = data; etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_sort_itree_size_compare_cb, ETK_TRUE, e->cur_tab->icol, NULL); } void _ex_sort_resol_cb(Etk_Object *obj, void *data) { - Exhibit *e; - - e = data; etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_sort_itree_resol_compare_cb, ETK_TRUE, e->cur_tab->icol, NULL); } void _ex_sort_date_cb(Etk_Object *obj, void *data) { - Exhibit *e; - - e = data; etk_tree_sort(ETK_TREE(e->cur_tab->itree), _ex_sort_itree_date_compare_cb, ETK_TRUE, e->cur_tab->icol, NULL); } =================================================================== RCS file: /cvs/e/e17/proto/exhibit/src/bin/exhibit_tab.c,v retrieving revision 1.22 retrieving revision 1.23 diff -u -3 -r1.22 -r1.23 --- exhibit_tab.c 10 Aug 2006 17:05:48 -0000 1.22 +++ exhibit_tab.c 11 Aug 2006 02:30:57 -0000 1.23 @@ -24,9 +24,16 @@ tab->dirs = NULL; tab->images = NULL; tab->e = e; - tab->fit_window = ETK_FALSE; - tab->comment.visible = ETK_FALSE; + if (e->options->default_view == EX_IMAGE_FIT_TO_WINDOW) + { + tab->fit_window = ETK_TRUE; + D(("Setting EX_IMAGE_FIT_TO_WINDOW\n")); + } + else + tab->fit_window = ETK_FALSE; + + tab->comment.visible = ETK_FALSE; tab->image_loaded = ETK_FALSE; tab->dtree = etk_tree_new(); @@ -259,9 +266,6 @@ void _ex_tab_current_fit_to_window(Exhibit *e) { - if (e->cur_tab->fit_window) - return; - etk_widget_size_request_set(e->cur_tab->alignment, 10, 10); if(evas_list_count(e->tabs) == 1) { ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs