gi-gtk-4.0.5: Gtk bindings
CopyrightWill Thompson and Iñaki García Etxebarria
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Gtk.Objects.FileFilter

Description

GtkFileFilter filters files by name or mime type.

GtkFileFilter can be used to restrict the files being shown in a GtkFileChooser. Files can be filtered based on their name (with fileFilterAddPattern or fileFilterAddSuffix) or on their mime type (with fileFilterAddMimeType).

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 GtkFileFilter 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 GtkFileChooser (see fileChooserAddFilter), but it is also possible to manually use a file filter on any FilterListModel containing GFileInfo objects.

GtkFileFilter as GtkBuildable

The GtkFileFilter implementation of the GtkBuildable 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 fileFilterAddMimeType or fileFilterAddPattern or fileFilterAddSuffix.

An example of a UI definition fragment specifying GtkFileFilter rules:

xml code

<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>
Synopsis

Exported types

newtype FileFilter Source #

Memory-managed wrapper type.

class (GObject o, IsDescendantOf FileFilter o) => IsFileFilter o Source #

Type class for types which can be safely cast to FileFilter, for instance with toFileFilter.

Instances

Instances details
(GObject o, IsDescendantOf FileFilter o) => IsFileFilter o Source # 
Instance details

Defined in GI.Gtk.Objects.FileFilter

toFileFilter :: (MonadIO m, IsFileFilter o) => o -> m FileFilter Source #

Cast to FileFilter, for types for which this is known to be safe. For general casts, use castTo.

Methods

addMimeType

fileFilterAddMimeType Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileFilter a) 
=> a

filter: A GtkFileFilter

-> Text

mimeType: name of a MIME type

-> m () 

Adds a rule allowing a given mime type to filter.

addPattern

fileFilterAddPattern Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileFilter a) 
=> a

filter: a GtkFileFilter

-> Text

pattern: a shell style glob

-> m () 

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

Note that it depends on the platform whether pattern matching ignores case or not. On Windows, it does, on other platforms, it doesn't.

addPixbufFormats

fileFilterAddPixbufFormats Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileFilter a) 
=> a

filter: a GtkFileFilter

-> m () 

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

This is equivalent to calling fileFilterAddMimeType for all the supported mime types.

addSuffix

fileFilterAddSuffix Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileFilter a) 
=> a

filter: a GtkFileFilter

-> Text

suffix: filename suffix to match

-> m () 

Adds a suffix match rule to a filter.

This is similar to adding a match for the pattern "*.suffix".

In contrast to pattern matches, suffix matches are *always* case-insensitive.

Since: 4.4

getAttributes

fileFilterGetAttributes Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileFilter a) 
=> a

filter: a GtkFileFilter

-> m [Text]

Returns: the attributes

Gets the attributes that need to be filled in for the GFileInfo passed to this filter.

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

getName

fileFilterGetName Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileFilter a) 
=> a

filter: a GtkFileFilter

-> m (Maybe Text)

Returns: The human-readable name of the filter

Gets the human-readable name for the filter.

See fileFilterSetName.

new

fileFilterNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> m FileFilter

Returns: a new GtkFileFilter

Creates a new GtkFileFilter with no rules added to it.

Such a filter doesn’t accept any files, so is not particularly useful until you add rules with fileFilterAddMimeType, fileFilterAddPattern, fileFilterAddSuffix or fileFilterAddPixbufFormats.

To create a filter that accepts any file, use:

c code

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

newFromGvariant

fileFilterNewFromGvariant Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> GVariant

variant: an a{sv} GVariant

-> m FileFilter

Returns: a new GtkFileFilter object

Deserialize a file filter from a GVariant.

The variant must be in the format produced by fileFilterToGvariant.

setName

fileFilterSetName Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileFilter a) 
=> a

filter: a GtkFileFilter

-> Maybe Text

name: the human-readable-name for the filter, or Nothing to remove any existing name.

-> m () 

Sets a human-readable name of the filter.

This is the string that will be displayed in the file chooser if there is a selectable list of filters.

toGvariant

fileFilterToGvariant Source #

Arguments

:: (HasCallStack, MonadIO m, IsFileFilter a) 
=> a

filter: a GtkFileFilter

-> m GVariant

Returns: a new, floating, GVariant

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

Properties

name

The human-readable name of the filter.

This is the string that will be displayed in the file chooser user interface if there is a selectable list of filters.

clearFileFilterName :: (MonadIO m, IsFileFilter o) => o -> m () Source #

Set the value of the “name” property to Nothing. When overloading is enabled, this is equivalent to

clear #name

constructFileFilterName :: (IsFileFilter o, MonadIO m) => Text -> m (GValueConstruct o) Source #

Construct a GValueConstruct with valid value for the “name” property. This is rarely needed directly, but it is used by new.

getFileFilterName :: (MonadIO m, IsFileFilter o) => o -> m (Maybe Text) Source #

Get the value of the “name” property. When overloading is enabled, this is equivalent to

get fileFilter #name

setFileFilterName :: (MonadIO m, IsFileFilter o) => o -> Text -> m () Source #

Set the value of the “name” property. When overloading is enabled, this is equivalent to

set fileFilter [ #name := value ]