kuuko pushed a commit to branch master. commit 158567f5d5e0fd191db4859b5c4df32ac1813aaf Author: Kai Huuhko <kai.huu...@gmail.com> Date: Sat Sep 14 12:36:18 2013 +0300
Elementary Fileselector: Add mime type filter methods --- efl/elementary/fileselector.pxd | 3 ++- efl/elementary/fileselector.pyx | 45 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/efl/elementary/fileselector.pxd b/efl/elementary/fileselector.pxd index ea98b12..d35b390 100644 --- a/efl/elementary/fileselector.pxd +++ b/efl/elementary/fileselector.pxd @@ -18,4 +18,5 @@ cdef extern from "Elementary.h": const_char * elm_fileselector_selected_get(Evas_Object *obj) void elm_fileselector_mode_set(Evas_Object *obj, Elm_Fileselector_Mode mode) Elm_Fileselector_Mode elm_fileselector_mode_get(Evas_Object *obj) - + Eina_Bool elm_fileselector_mime_types_filter_append(Evas_Object *obj, const_char *mime_types, const_char *filter_name) + void elm_fileselector_filters_clear(Evas_Object *obj) diff --git a/efl/elementary/fileselector.pyx b/efl/elementary/fileselector.pyx index 2fedc74..2a875f6 100644 --- a/efl/elementary/fileselector.pyx +++ b/efl/elementary/fileselector.pyx @@ -261,6 +261,51 @@ cdef class Fileselector(LayoutClass): def mode_get(self): return elm_fileselector_mode_get(self.obj) + def mime_types_filter_append(self, list mime_types, filter_name=None): + """mime_types_filter_append(list mime_types, str filter_name=None) + + Append mime types filter into filter list + + :param mime_types: mime types to be allowed. + :type mime_types: list + :param filter_name: The name to be displayed, ``mime_types`` will be displayed if None + :type filter_name: string + :raise RuntimeError: if setting mime_types failed + + .. note:: a sub type of mime can be asterisk(*) + .. note:: mime type filter is only working with efreet now. + .. note:: first added filter will be the default filter at the moment. + + :see: :py:func:efl.elementary.need.need_efreet() + :see: filters_clear() + + :since: 1.8 + + """ + mime_types_s = ",".join(mime_types) + if isinstance(mime_types_s, unicode): mime_types_s = PyUnicode_AsUTF8String(mime_types) + if isinstance(filter_name, unicode): filter_name = PyUnicode_AsUTF8String(filter_name) + if not elm_fileselector_mime_types_filter_append(self.obj, mime_types_s, + <const_char *>filter_name if filter_name is not None else NULL): + raise RuntimeError + + def filters_clear(self): + """ + + Clear all filters registered + + .. note:: + + If filter list is empty, file selector assume that all + files are matched. + + :see: elm_fileselector_mime_type_filter_append() + + :since: 1.8 + + """ + elm_fileselector_filters_clear(self.obj) + def callback_selected_add(self, func, *args, **kwargs): """The user has clicked on a file (when not in folders-only mode) or directory (when in folders-only mode). Parameter ``event_info`` --