Enlightenment CVS committal

Author  : dj2
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_filelist.c ewl_filelist.h ewl_filelist_column.c 


Log Message:
- change the column file list to show when selecting multiple files instead
  of always showing the last selected file information (bug 57)
  

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filelist.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -3 -r1.35 -r1.36
--- ewl_filelist.c      23 Aug 2007 05:26:51 -0000      1.35
+++ ewl_filelist.c      10 Nov 2007 04:16:38 -0000      1.36
@@ -446,6 +446,33 @@
 }
 
 /**
+ * @param fl: The filelist to work with
+ * @return Return the widget to display
+ * @brief Sets up a widget to display when multiple files selected
+ */
+Ewl_Widget *
+ewl_filelist_multi_select_preview_get(Ewl_Filelist *fl)
+{
+       DENTER_FUNCTION(DLEVEL_STABLE);
+       DCHECK_PARAM_PTR_RET("fl", fl, NULL);
+       DCHECK_TYPE_RET("fl", fl, EWL_FILELIST_TYPE, NULL);
+
+       Ewl_Widget *box, *icon;
+
+       box = ewl_vbox_new();
+       ewl_widget_show(box);
+
+       icon = ewl_icon_simple_new();
+       ewl_box_orientation_set(EWL_BOX(icon),
+                       EWL_ORIENTATION_VERTICAL);
+       ewl_icon_label_set(EWL_ICON(icon), "Multiple files selected");
+       ewl_container_child_append(EWL_CONTAINER(box), icon);
+       ewl_widget_show(icon);
+
+       DRETURN_PTR(box, DLEVEL_STABLE);
+}
+
+/**
  * @param fl: The filelist to set the selected files into
  * @param files: The Ecore_List of files to set
  * @return Returns no value.
@@ -490,6 +517,8 @@
        DCHECK_TYPE_RET("fl", fl, EWL_FILELIST_TYPE, NULL);
 
        selected = ecore_list_new();
+       ecore_list_free_cb_set(selected, free);
+
        ecore_list_first_goto(fl->selected);
        while ((item = ecore_list_next(fl->selected)))
        {
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filelist.h,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -3 -r1.18 -r1.19
--- ewl_filelist.h      23 Aug 2007 05:26:51 -0000      1.18
+++ ewl_filelist.h      10 Nov 2007 04:16:38 -0000      1.19
@@ -118,6 +118,8 @@
 char           *ewl_filelist_modtime_get(time_t modtime);
 Ewl_Widget     *ewl_filelist_selected_file_preview_get(Ewl_Filelist *fl,
                                                        const char *path);
+Ewl_Widget     *ewl_filelist_multi_select_preview_get(Ewl_Filelist *fl);
+
 void            ewl_filelist_selected_files_set(Ewl_Filelist *fl,
                                                        Ecore_List *files);
 Ecore_List     *ewl_filelist_selected_files_get(Ewl_Filelist *fl);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filelist_column.c,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -3 -r1.36 -r1.37
--- ewl_filelist_column.c       23 Aug 2007 05:26:51 -0000      1.36
+++ ewl_filelist_column.c       10 Nov 2007 04:16:38 -0000      1.37
@@ -414,6 +414,7 @@
        char path[PATH_MAX];
        Ewl_Widget *parent;
        Ewl_Container *dir_parent;
+       Ecore_List *selected;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR("w", w);
@@ -447,12 +448,20 @@
                                        "icon,select", "icon,unselect");
 
        if (fl->preview) ewl_widget_destroy(fl->preview);
-       fl->preview = ewl_filelist_selected_file_preview_get(EWL_FILELIST(data),
-                                               
ewl_icon_label_get(EWL_ICON(w)));
+
+       selected = ewl_filelist_selected_files_get(EWL_FILELIST(fl));
+       if (ecore_list_count(selected) == 1)
+               fl->preview = 
ewl_filelist_selected_file_preview_get(EWL_FILELIST(data),
+                                                       
ewl_icon_label_get(EWL_ICON(w)));
+       else
+               fl->preview = 
ewl_filelist_multi_select_preview_get(EWL_FILELIST(data));
+
        ewl_object_fill_policy_set(EWL_OBJECT(fl->preview),
                                EWL_FLAG_FILL_HSHRINK | EWL_FLAG_FILL_VFILL);
        ewl_container_child_append(EWL_CONTAINER(fl), fl->preview);
        ewl_widget_show(fl->preview);
+
+       ecore_list_destroy(selected);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }



-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to