Copyright | Will Thompson Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria |
Safe Haskell | None |
Language | Haskell2010 |
A GtkFileFilter can be used to restrict the files being shown in a
FileChooser
. Files can be filtered based on their name (with
fileFilterAddPattern
), on their mime type (with
fileFilterAddMimeType
), or by a custom filter function
(with fileFilterAddCustom
).
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, filters are used by adding them to a FileChooser
,
see fileChooserAddFilter
, but it is also possible
to manually use a filter on a file with fileFilterFilter
.
GtkFileFilter as GtkBuildable
The GtkFileFilter implementation of the GtkBuildable 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
fileFilterAddMimeType
or fileFilterAddPattern
.
An example of a UI definition fragment specifying GtkFileFilter rules: > >class="GtkFileFilter" > mime-types > mime-typetextplain<mime-type> > mime-typeimage *<mime-type> > /mime-types > patterns > pattern*.txt/pattern > pattern*.png/pattern > /patterns >/object
Synopsis
- newtype FileFilter = FileFilter (ManagedPtr FileFilter)
- class (GObject o, IsDescendantOf FileFilter o) => IsFileFilter o
- toFileFilter :: (MonadIO m, IsFileFilter o) => o -> m FileFilter
- fileFilterAddCustom :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> [FileFilterFlags] -> FileFilterFunc -> m ()
- fileFilterAddMimeType :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Text -> m ()
- fileFilterAddPattern :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Text -> m ()
- fileFilterAddPixbufFormats :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m ()
- fileFilterFilter :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> FileFilterInfo -> m Bool
- fileFilterGetName :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m (Maybe Text)
- fileFilterGetNeeded :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m [FileFilterFlags]
- fileFilterNew :: (HasCallStack, MonadIO m) => m FileFilter
- fileFilterNewFromGvariant :: (HasCallStack, MonadIO m) => GVariant -> m FileFilter
- fileFilterSetName :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Maybe Text -> m ()
- fileFilterToGvariant :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m GVariant
Exported types
newtype FileFilter Source #
Memory-managed wrapper type.
Instances
Eq FileFilter Source # | |
Defined in GI.Gtk.Objects.FileFilter (==) :: FileFilter -> FileFilter -> Bool # (/=) :: FileFilter -> FileFilter -> Bool # | |
IsGValue FileFilter Source # | Convert |
Defined in GI.Gtk.Objects.FileFilter toGValue :: FileFilter -> IO GValue # fromGValue :: GValue -> IO FileFilter # | |
ManagedPtrNewtype FileFilter Source # | |
Defined in GI.Gtk.Objects.FileFilter | |
TypedObject FileFilter Source # | |
Defined in GI.Gtk.Objects.FileFilter | |
GObject FileFilter Source # | |
Defined in GI.Gtk.Objects.FileFilter | |
HasParentTypes FileFilter Source # | |
Defined in GI.Gtk.Objects.FileFilter | |
type ParentTypes FileFilter Source # | |
Defined in GI.Gtk.Objects.FileFilter |
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
(GObject o, IsDescendantOf FileFilter o) => IsFileFilter o Source # | |
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
Overloaded methods
addCustom
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> [FileFilterFlags] |
|
-> FileFilterFunc |
|
-> m () |
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.
Since: 2.4
addMimeType
fileFilterAddMimeType Source #
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> Text |
|
-> m () |
Adds a rule allowing a given mime type to filter
.
Since: 2.4
addPattern
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> Text |
|
-> m () |
Adds a rule allowing a shell style glob to a filter.
Since: 2.4
addPixbufFormats
fileFilterAddPixbufFormats Source #
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> m () |
Adds a rule allowing image files in the formats supported by GdkPixbuf.
Since: 2.6
filter
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> FileFilterInfo |
|
-> m Bool | Returns: |
Tests whether a file should be displayed according to filter
.
The FileFilterInfo
filterInfo
should include
the fields returned from fileFilterGetNeeded
.
This function will not typically be used by applications; it
is intended principally for use in the implementation of
FileChooser
.
Since: 2.4
getName
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> m (Maybe Text) | Returns: The human-readable name of the filter,
or |
Gets the human-readable name for the filter. See fileFilterSetName
.
Since: 2.4
getNeeded
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> m [FileFilterFlags] | Returns: bitfield of flags indicating needed fields when
calling |
Gets the fields that need to be filled in for the FileFilterInfo
passed to fileFilterFilter
This function will not typically be used by applications; it
is intended principally for use in the implementation of
FileChooser
.
Since: 2.4
new
:: (HasCallStack, MonadIO m) | |
=> m FileFilter | Returns: a new |
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 fileFilterAddCustom
. To create a filter
that accepts any file, use:
C code
GtkFileFilter *filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*");
Since: 2.4
newFromGvariant
fileFilterNewFromGvariant Source #
:: (HasCallStack, MonadIO m) | |
=> GVariant |
|
-> m FileFilter | Returns: a new |
Deserialize a file filter from an a{sv} variant in
the format produced by fileFilterToGvariant
.
Since: 3.22
setName
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> Maybe Text |
|
-> m () |
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.
Since: 2.4
toGvariant
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> m GVariant | Returns: a new, floating, |
Serialize a file filter to an a{sv} variant.
Since: 3.22