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

GI.Gtk.Objects.FileFilter

Description

A GtkFileFilter can be used to restrict the files being shown in a FileChooser. Files can be filtered based on their name (with fileFilterAddPattern) 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 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 FileChooser (see fileChooserAddFilter), but it is also possible to manually use a file filter on any FilterListModel containing FileInfo objects.

GtkFileFilter as GtkBuildable

The GtkFileFilter implementation of the GtkBuildable interface supports adding rules using the <mime-types> and <patterns> elements and listing the rules within. Specifying a <mime-type> or <pattern> has the same effect as as calling fileFilterAddMimeType or fileFilterAddPattern.

An example of a UI definition fragment specifying GtkFileFilter rules: > >class="GtkFileFilter" > name="name" translatable="yes"Text and Images/property > mime-types > mime-typetextplain<mime-type> > mime-typeimage *<mime-type> > /mime-types > patterns > pattern*.txt/pattern > pattern*.png/pattern > /patterns >/object

Synopsis

Exported types

newtype FileFilter Source #

Memory-managed wrapper type.

Constructors

FileFilter (ManagedPtr FileFilter) 

Instances

Instances details
Eq FileFilter Source # 
Instance details

Defined in GI.Gtk.Objects.FileFilter

GObject FileFilter Source # 
Instance details

Defined in GI.Gtk.Objects.FileFilter

ManagedPtrNewtype FileFilter Source # 
Instance details

Defined in GI.Gtk.Objects.FileFilter

Methods

toManagedPtr :: FileFilter -> ManagedPtr FileFilter

TypedObject FileFilter Source # 
Instance details

Defined in GI.Gtk.Objects.FileFilter

Methods

glibType :: IO GType

HasParentTypes FileFilter Source # 
Instance details

Defined in GI.Gtk.Objects.FileFilter

IsGValue (Maybe FileFilter) Source #

Convert FileFilter to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Gtk.Objects.FileFilter

Methods

gvalueGType_ :: IO GType

gvalueSet_ :: Ptr GValue -> Maybe FileFilter -> IO ()

gvalueGet_ :: Ptr GValue -> IO (Maybe FileFilter)

type ParentTypes FileFilter Source # 
Instance details

Defined in GI.Gtk.Objects.FileFilter

type ParentTypes FileFilter = '[Filter, Object, Buildable]

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 FileFilter

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

-> Text

pattern: a shell style glob

-> m () 

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

addPixbufFormats

fileFilterAddPixbufFormats Source #

Arguments

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

filter: a FileFilter

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

getAttributes

fileFilterGetAttributes Source #

Arguments

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

filter: a FileFilter

-> m [Text]

Returns: the attributes

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

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

getName

fileFilterGetName Source #

Arguments

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

filter: a FileFilter

-> m (Maybe Text)

Returns: The human-readable name of the filter, or Nothing. This value is owned by GTK and must not be modified or freed.

Gets the human-readable name for the filter. See fileFilterSetName.

new

fileFilterNew Source #

Arguments

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

Returns: a new FileFilter

Creates a new 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 fileFilterAddMimeType, fileFilterAddPattern, 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 FileFilter object

Deserialize a file filter from an a{sv} variant in the format produced by fileFilterToGvariant.

setName

fileFilterSetName Source #

Arguments

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

filter: a FileFilter

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

-> 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 selector 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 ]