GtkFileFilter

gtk.file_filter.FileFilter filters files by name or mime type.

gtk.file_filter.FileFilter can be used to restrict the files being shown in a gtk.file_chooser.FileChooser. Files can be filtered based on their name (with gtk.file_filter.FileFilter.addPattern or gtk.file_filter.FileFilter.addSuffix) or on their mime type (with gtk.file_filter.FileFilter.addMimeType).

Filtering by mime types handles aliasing and subclassing of mime types; e.g. a filter for text/plain also matches a file with mime type application/rtf, since application/rtf is a subclass of text/plain. Note that gtk.file_filter.FileFilter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/\*.

Normally, file filters are used by adding them to a gtk.file_chooser.FileChooser (see gtk.file_chooser.FileChooser.addFilter), but it is also possible to manually use a file filter on any gtk.filter_list_model.FilterListModel containing gio.file_info.FileInfo objects.

GtkFileFilter as GtkBuildable

The gtk.file_filter.FileFilter implementation of the gtk.buildable.Buildable interface supports adding rules using the <mime-types> and <patterns> and <suffixes> elements and listing the rules within. Specifying a <mime-type> or <pattern> or <suffix> has the same effect as as calling gtk.file_filter.FileFilter.addMimeType or gtk.file_filter.FileFilter.addPattern or gtk.file_filter.FileFilter.addSuffix.

An example of a UI definition fragment specifying gtk.file_filter.FileFilter rules:

<object class="GtkFileFilter">
  <property name="name" translatable="yes">Text and Images</property>
  <mime-types>
    <mime-type>text/plain</mime-type>
    <mime-type>image/ *</mime-type>
  </mime-types>
  <patterns>
    <pattern>*.txt</pattern>
  </patterns>
  <suffixes>
    <suffix>png</suffix>
  </suffixes>
</object>
struct GtkFileFilter