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

Reply via email to