Elementary Fileselector: Add mime type filter methods

This commit is contained in:
Kai Huuhko 2013-09-14 12:36:18 +03:00
parent 0c9af066e0
commit 158567f5d5
2 changed files with 47 additions and 1 deletions

View File

@ -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)

View File

@ -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``