Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
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
- newtype FileFilter = FileFilter (ManagedPtr FileFilter)
- class GObject o => IsFileFilter o
- toFileFilter :: IsFileFilter o => o -> IO FileFilter
- noFileFilter :: Maybe FileFilter
- data FileFilterAddCustomMethodInfo
- fileFilterAddCustom :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> [FileFilterFlags] -> FileFilterFunc -> m ()
- data FileFilterAddMimeTypeMethodInfo
- fileFilterAddMimeType :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Text -> m ()
- data FileFilterAddPatternMethodInfo
- fileFilterAddPattern :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Text -> m ()
- data FileFilterAddPixbufFormatsMethodInfo
- fileFilterAddPixbufFormats :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m ()
- data FileFilterFilterMethodInfo
- fileFilterFilter :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> FileFilterInfo -> m Bool
- data FileFilterGetNameMethodInfo
- fileFilterGetName :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m (Maybe Text)
- data FileFilterGetNeededMethodInfo
- fileFilterGetNeeded :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m [FileFilterFlags]
- fileFilterNew :: (HasCallStack, MonadIO m) => m FileFilter
- fileFilterNewFromGvariant :: (HasCallStack, MonadIO m) => GVariant -> m FileFilter
- data FileFilterSetNameMethodInfo
- fileFilterSetName :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> Maybe Text -> m ()
- data FileFilterToGvariantMethodInfo
- fileFilterToGvariant :: (HasCallStack, MonadIO m, IsFileFilter a) => a -> m GVariant
Exported types
newtype FileFilter Source #
GObject FileFilter Source # | |
IsObject FileFilter Source # | |
IsFileFilter FileFilter Source # | |
IsBuildable FileFilter Source # | |
((~) * info (ResolveFileFilterMethod t FileFilter), MethodInfo * info FileFilter p) => IsLabel t (FileFilter -> p) Source # | |
((~) * info (ResolveFileFilterMethod t FileFilter), MethodInfo * info FileFilter p) => IsLabelProxy t (FileFilter -> p) Source # | |
HasAttributeList * FileFilter Source # | |
type AttributeList FileFilter Source # | |
type SignalList FileFilter Source # | |
class GObject o => IsFileFilter o Source #
toFileFilter :: IsFileFilter o => o -> IO FileFilter Source #
Methods
addCustom
data FileFilterAddCustomMethodInfo Source #
((~) * signature ([FileFilterFlags] -> FileFilterFunc -> m ()), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterAddCustomMethodInfo a signature Source # | |
:: (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
data FileFilterAddMimeTypeMethodInfo Source #
((~) * signature (Text -> m ()), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterAddMimeTypeMethodInfo a signature Source # | |
fileFilterAddMimeType Source #
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> Text |
|
-> m () |
Adds a rule allowing a given mime type to filter
.
Since: 2.4
addPattern
data FileFilterAddPatternMethodInfo Source #
((~) * signature (Text -> m ()), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterAddPatternMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> Text |
|
-> m () |
Adds a rule allowing a shell style glob to a filter.
Since: 2.4
addPixbufFormats
data FileFilterAddPixbufFormatsMethodInfo Source #
((~) * signature (m ()), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterAddPixbufFormatsMethodInfo a signature Source # | |
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
data FileFilterFilterMethodInfo Source #
((~) * signature (FileFilterInfo -> m Bool), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterFilterMethodInfo a signature Source # | |
:: (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
data FileFilterGetNameMethodInfo Source #
((~) * signature (m (Maybe Text)), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterGetNameMethodInfo a signature Source # | |
:: (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
data FileFilterGetNeededMethodInfo Source #
((~) * signature (m [FileFilterFlags]), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterGetNeededMethodInfo a signature Source # | |
:: (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
data FileFilterSetNameMethodInfo Source #
((~) * signature (Maybe Text -> m ()), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterSetNameMethodInfo a signature Source # | |
:: (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
data FileFilterToGvariantMethodInfo Source #
((~) * signature (m GVariant), MonadIO m, IsFileFilter a) => MethodInfo * FileFilterToGvariantMethodInfo a signature Source # | |
:: (HasCallStack, MonadIO m, IsFileFilter a) | |
=> a |
|
-> m GVariant | Returns: a new, floating, |
Serialize a file filter to an a{sv} variant.
Since: 3.22