Gtk.FileFilter

g GObject.GInterface GObject.GInterface Gtk.Buildable Gtk.Buildable GObject.GInterface->Gtk.Buildable GObject.InitiallyUnowned GObject.InitiallyUnowned Gtk.FileFilter Gtk.FileFilter GObject.InitiallyUnowned->Gtk.FileFilter GObject.Object GObject.Object GObject.Object->GObject.InitiallyUnowned Gtk.Buildable->Gtk.FileFilter

Subclasses:None

Methods

Inherited:GObject.Object (37), Gtk.Buildable (10)
Structs:GObject.ObjectClass (5)
class new ()
class new_from_gvariant (variant)
  add_custom (needed, func, *data)
  add_mime_type (mime_type)
  add_pattern (pattern)
  add_pixbuf_formats ()
  filter (filter_info)
  get_name ()
  get_needed ()
  set_name (name)
  to_gvariant ()

Virtual Methods

Inherited:GObject.Object (7), Gtk.Buildable (10)

Properties

None

Signals

Inherited:GObject.Object (1)

Fields

Inherited:GObject.Object (1)

Class Details

class Gtk.FileFilter(**kwargs)
Bases:GObject.InitiallyUnowned, Gtk.Buildable
Abstract:No

A Gtk.FileFilter can be used to restrict the files being shown in a Gtk.FileChooser. Files can be filtered based on their name (with Gtk.FileFilter.add_pattern()), on their mime type (with Gtk.FileFilter.add_mime_type()), or by a custom filter function (with Gtk.FileFilter.add_custom()).

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.FileFilter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/\*.

Normally, filters are used by adding them to a Gtk.FileChooser, see Gtk.FileChooser.add_filter(), but it is also possible to manually use a filter on a file with Gtk.FileFilter.filter().

Gtk.FileFilter as Gtk.Buildable

The Gtk.FileFilter implementation of the Gtk.Buildable interface supports adding rules using the <mime-types>, <patterns> and <applications> elements and listing the rules within. Specifying a <mime-type> or <pattern> has the same effect as as calling Gtk.FileFilter.add_mime_type() or Gtk.FileFilter.add_pattern().

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

<object class="GtkFileFilter">
  <mime-types>
    <mime-type>text/plain</mime-type>
    <mime-type>image/ *</mime-type>
  </mime-types>
  <patterns>
    <pattern>*.txt</pattern>
    <pattern>*.png</pattern>
  </patterns>
</object>
classmethod new()[source]
Returns:a new Gtk.FileFilter
Return type:Gtk.FileFilter

Creates a new Gtk.FileFilter with no rules added to it. Such a filter doesn’t accept any files, so is not particularly useful until you add rules with Gtk.FileFilter.add_mime_type(), Gtk.FileFilter.add_pattern(), or Gtk.FileFilter.add_custom(). To create a filter that accepts any file, use:

GtkFileFilter *filter = gtk_file_filter_new ();
gtk_file_filter_add_pattern (filter, "*");

New in version 2.4.

classmethod new_from_gvariant(variant)[source]
Parameters:variant (GLib.Variant) – an a{sv} GLib.Variant
Returns:a new Gtk.FileFilter object
Return type:Gtk.FileFilter

Deserialize a file filter from an a{sv} variant in the format produced by Gtk.FileFilter.to_gvariant().

New in version 3.22.

add_custom(needed, func, *data)[source]
Parameters:
  • needed (Gtk.FileFilterFlags) – bitfield of flags indicating the information that the custom filter function needs.
  • func (Gtk.FileFilterFunc) – callback function; if the function returns True, then the file will be displayed.
  • data (object or None) – data to pass to func

Adds rule to a filter that allows files based on a custom callback function. The bitfield needed which is passed in provides information about what sorts of information that the filter function needs; this allows GTK+ to avoid retrieving expensive information when it isn’t needed by the filter.

New in version 2.4.

add_mime_type(mime_type)[source]
Parameters:mime_type (str) – name of a MIME type

Adds a rule allowing a given mime type to self.

New in version 2.4.

add_pattern(pattern)[source]
Parameters:pattern (str) – a shell style glob

Adds a rule allowing a shell style glob to a filter.

New in version 2.4.

add_pixbuf_formats()[source]

Adds a rule allowing image files in the formats supported by GdkPixbuf.Pixbuf.

New in version 2.6.

filter(filter_info)[source]
Parameters:filter_info (Gtk.FileFilterInfo) – a Gtk.FileFilterInfo containing information about a file.
Returns:True if the file should be displayed
Return type:bool

Tests whether a file should be displayed according to self. The Gtk.FileFilterInfo filter_info should include the fields returned from Gtk.FileFilter.get_needed().

This function will not typically be used by applications; it is intended principally for use in the implementation of Gtk.FileChooser.

New in version 2.4.

get_name()[source]
Returns:The human-readable name of the filter, or None. This value is owned by GTK+ and must not be modified or freed.
Return type:str or None

Gets the human-readable name for the filter. See Gtk.FileFilter.set_name().

New in version 2.4.

get_needed()[source]
Returns:bitfield of flags indicating needed fields when calling Gtk.FileFilter.filter()
Return type:Gtk.FileFilterFlags

Gets the fields that need to be filled in for the Gtk.FileFilterInfo passed to Gtk.FileFilter.filter()

This function will not typically be used by applications; it is intended principally for use in the implementation of Gtk.FileChooser.

New in version 2.4.

set_name(name)[source]
Parameters:name (str or None) – the human-readable-name for the filter, or None to remove any existing name.

Sets the human-readable name of the filter; this is the string that will be displayed in the file selector user interface if there is a selectable list of filters.

New in version 2.4.

to_gvariant()[source]
Returns:a new, floating, GLib.Variant
Return type:GLib.Variant

Serialize a file filter to an a{sv} variant.

New in version 3.22.