Enlightenment CVS committal

Author  : jethomas
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/lib


Modified Files:
        ewl_filelist.c ewl_filepicker.c ewl_filepicker.h 


Log Message:
Fix bug 434.

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filelist.c,v
retrieving revision 1.51
retrieving revision 1.52
diff -u -3 -r1.51 -r1.52
--- ewl_filelist.c      11 Feb 2008 03:00:31 -0000      1.51
+++ ewl_filelist.c      12 Apr 2008 18:59:26 -0000      1.52
@@ -337,7 +337,7 @@
 
 /**
  * @param fl: The filelist to get the filter from
- * @return Returns the current filter
+ * @return Returns the current filter.  Do not free returned filter!
  * @brief Retrieves the current filter set on the filelist
  */
 Ewl_Filelist_Filter *
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filepicker.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -3 -r1.49 -r1.50
--- ewl_filepicker.c    26 Feb 2008 06:21:21 -0000      1.49
+++ ewl_filepicker.c    12 Apr 2008 18:59:26 -0000      1.50
@@ -405,16 +405,24 @@
  * @param fp: The filepicker to set the filter on
  * @param filter: The filter to set on the filepicker
  * @return Returns no value.
- * @brief Set the given filter into the file picker
+ * @brief Set the given filter into the file picker and updates the combo
  */
 void
-ewl_filepicker_filter_set(Ewl_Filepicker *fp, Ewl_Filelist_Filter *filter)
+ewl_filepicker_filter_set(Ewl_Filepicker *fp,
+                                       Ewl_Filelist_Filter *filter)
 {
+       int idx;
+
        DENTER_FUNCTION(DLEVEL_STABLE);
        DCHECK_PARAM_PTR(fp);
        DCHECK_TYPE(fp, EWL_FILEPICKER_TYPE);
 
-       ewl_filelist_filter_set(EWL_FILELIST(fp->file_list), filter);
+       if (filter == ewl_filepicker_filter_get(fp))
+               DRETURN(DLEVEL_STABLE);
+
+       ecore_list_goto(fp->filters, filter);
+       idx = ecore_list_index(fp->filters);
+       ewl_mvc_selected_set(EWL_MVC(fp->mvc_filters.combo), NULL, fp, idx, 0);
 
        DLEAVE_FUNCTION(DLEVEL_STABLE);
 }
@@ -422,7 +430,7 @@
 /**
  * @param fp: The filepicker to get the filter from
  * @return Returns the current filter used in the filepicker
- * @brief Retrieves the current filter used in the filepicker
+ * @brief Retrieves the current filter used in the filepicker.  Do not free 
the filter!
  */
 Ewl_Filelist_Filter *
 ewl_filepicker_filter_get(Ewl_Filepicker *fp)
@@ -585,10 +593,10 @@
  * @param name: The name to display for the filter
  * @param extension: The extension to filter for
  * @param mime_types: The mime types to filter for
- * @return Returns no value
+ * @return Returns the filter created. Do not free the returned filter.
  * @brief Add the filter named @a name to the combo box in the filepicker.
  */
-void
+Ewl_Filelist_Filter *
 ewl_filepicker_filter_add(Ewl_Filepicker *fp, const char *name,
                                                const char *extension,
                                                Ecore_List *mime_types)
@@ -596,11 +604,14 @@
        Ewl_Filelist_Filter *f;
 
        DENTER_FUNCTION(DLEVEL_STABLE);
-       DCHECK_PARAM_PTR(fp);
-       DCHECK_PARAM_PTR(name);
-       DCHECK_TYPE(fp, EWL_FILEPICKER_TYPE);
+       DCHECK_PARAM_PTR_RET(fp, NULL);
+       DCHECK_PARAM_PTR_RET(name, NULL);
+       DCHECK_TYPE_RET(fp, EWL_FILEPICKER_TYPE, NULL);
 
        f= NEW(Ewl_Filelist_Filter, 1);
+       if (!f)
+               DRETURN_PTR(NULL, DLEVEL_STABLE);
+
        f->name = strdup(name);
        if (extension) f->extension = strdup(extension);
        else f->extension = NULL;
@@ -608,8 +619,10 @@
        else f->mime_list = NULL;
 
        ecore_list_prepend(fp->filters, f);
+       ewl_mvc_dirty_set(EWL_MVC(fp->mvc_filters.combo), TRUE);
+       ewl_mvc_selected_set(EWL_MVC(fp->mvc_filters.combo), NULL, fp, 0, 0);
 
-       DLEAVE_FUNCTION(DLEVEL_STABLE);
+       DRETURN_PTR(f, DLEVEL_STABLE);
 }
 
 static void
@@ -936,7 +949,7 @@
        {
                ecore_list_index_goto(fp->filters, idx->row);
                filter = ecore_list_current(fp->filters);
-               ewl_filepicker_filter_set(fp, filter);
+               ewl_filelist_filter_set(EWL_FILELIST(fp->file_list), filter);
        }
        
        FREE(idx);
===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/lib/ewl_filepicker.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- ewl_filepicker.h    16 Jan 2008 22:03:17 -0000      1.16
+++ ewl_filepicker.h    12 Apr 2008 18:59:26 -0000      1.17
@@ -105,7 +105,7 @@
                                                        Ewl_Filelist_View view);
 Ewl_Filelist_View *ewl_filepicker_list_view_get(Ewl_Filepicker *fp);
 
-void            ewl_filepicker_filter_add(Ewl_Filepicker *fp,
+Ewl_Filelist_Filter    *ewl_filepicker_filter_add(Ewl_Filepicker *fp,
                                                const char *name,
                                                const char *extension,
                                                Ecore_List *mime_types);



-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to