## CamelVeeFolder CamelVeeFolder |

## Functions

CamelFolder * | camel_vee_folder_new ()
void | camel_vee_folder_construct ()
guint32 | camel_vee_folder_get_flags ()
CamelFolder * | camel_vee_folder_get_location ()
CamelFolder * | camel_vee_folder_dup_vee_uid_folder ()
void | camel_vee_folder_set_auto_update ()
gboolean | camel_vee_folder_get_auto_update ()
gboolean | camel_vee_folder_set_expression_sync ()
const gchar * | camel_vee_folder_get_expression ()
gboolean | camel_vee_folder_add_folder_sync ()
gboolean | camel_vee_folder_remove_folder_sync ()
gboolean | camel_vee_folder_set_folders_sync ()
GPtrArray * | camel_vee_folder_dup_folders ()

## Properties

gboolean | auto-update | Read / Write

## Signals

void | vee-setup-changed | Action

## Object Hierarchy

        GObject
        ╰── CamelFolder
            ╰── CamelVeeFolder
                ╰── CamelVTrashFolder

## Description

## Functions

### camel_vee_folder_new ()

    CamelFolder *
    camel_vee_folder_new (CamelStore *parent_store,
                          const gchar *full,
                          guint32 flags);

#### Parameters

parent_store | the parent CamelVeeStore |
full | the full path to the vfolder. |
flags | flags of some kind |

#### Returns

A new `CamelVeeFolder` object. Unref it with `g_object_unref()` when no longer needed.

[transfer full]

### camel_vee_folder_construct ()

    void
    camel_vee_folder_construct (CamelVeeFolder *vf,
                                guint32 flags);

Initializes internal structures of the `vf` . This is meant to be called by the descendants of CamelVeeFolder.

#### Parameters

vf | a CamelVeeFolder |
flags | flags for the `vf` |

### camel_vee_folder_get_flags ()

    guint32
    camel_vee_folder_get_flags (CamelVeeFolder *vf);

#### Parameters

vf | a CamelVeeFolder |

#### Returns

flags of `vf` , as set by `camel_vee_folder_construct()`

Since: 3.24

### camel_vee_folder_get_location ()

    CamelFolder *
    camel_vee_folder_get_location (CamelVeeFolder *vf,
                                   const CamelVeeMessageInfo *vinfo,
                                   gchar **realuid);

Find the real folder (and message info UID) for the given `vinfo` . When the `realuid` is not `NULL` and it's set, then use `g_free()` to free it, when no longer needed.

#### Parameters

vf | a CamelVeeFolder |
vinfo | a CamelVeeMessageInfo to search for |
realuid | if not `NULL`, set to the UID of the real message info. | [out][transfer full][nullable]

#### Returns

a real (not virtual) CamelFolder, which the `vinfo` is for.

[transfer none]

### camel_vee_folder_dup_vee_uid_folder ()

    CamelFolder *
    camel_vee_folder_dup_vee_uid_folder (CamelVeeFolder *vfolder,
                                         const gchar *vee_message_uid);

#### Parameters

vfolder | a CamelVeeFolder |
vee_message_uid | a virtual message info UID |

#### Returns

a CamelFolder to which the `vee_message_uid` belongs, or `NULL`, when it could not be found.

[transfer full][nullable]

Since: 3.6

### camel_vee_folder_set_auto_update ()

    void
    camel_vee_folder_set_auto_update (CamelVeeFolder *vfolder,
                                      gboolean auto_update);

Sets whether the `vfolder` can automatically update when of its subfolders changes.

#### Parameters

vfolder | a CamelVeeFolder |
auto_update | a value to set |

Since: 3.6

### camel_vee_folder_get_auto_update ()

    gboolean
    camel_vee_folder_get_auto_update (CamelVeeFolder *vfolder);

#### Parameters

vfolder | a CamelVeeFolder |

#### Returns

whether the `vfolder` can automatically update when any of its subfolders changes.

Since: 3.6

### camel_vee_folder_set_expression_sync ()

    gboolean
    camel_vee_folder_set_expression_sync (CamelVeeFolder *vfolder,
                                          const gchar *expression,
                                          CamelVeeFolderOpFlags op_flags,
                                          GCancellable *cancellable,
                                          GError **error);

Sets an SExp expression to be used for this `vfolder` and updates its content. The expression is not changed when the call fails.

#### Parameters

vfolder | a CamelVeeFolder |
expression | an SExp expression to set |
op_flags | bit-or of CamelVeeFolderOpFlags |
cancellable | a GCancellable, or `NULL` |
error | return location for a GError, or `NULL` |

#### Returns

whether succeeded

Since: 3.58

### camel_vee_folder_get_expression ()

    const gchar *
    camel_vee_folder_get_expression (CamelVeeFolder *vfolder);

#### Parameters

vfolder | a CamelVeeFolder |

#### Returns

a SExp expression used for this `vfolder` .

[transfer none]

Since: 3.6

### camel_vee_folder_add_folder_sync ()

    gboolean
    camel_vee_folder_add_folder_sync (CamelVeeFolder *vfolder,
                                      CamelFolder *subfolder,
                                      CamelVeeFolderOpFlags op_flags,
                                      GCancellable *cancellable,
                                      GError **error);

Adds `subfolder` as a source folder to `vfolder` .

#### Parameters

vfolder | a CamelVeeFolder |
subfolder | source CamelFolder to add to `vfolder` |
op_flags | bit-or of CamelVeeFolderOpFlags |
cancellable | a GCancellable, or `NULL` |
error | return location for a GError, or `NULL` |

#### Returns

whether succeeded

Since: 3.58

### camel_vee_folder_remove_folder_sync ()

    gboolean
    camel_vee_folder_remove_folder_sync (CamelVeeFolder *vfolder,
                                         CamelFolder *subfolder,
                                         CamelVeeFolderOpFlags op_flags,
                                         GCancellable *cancellable,
                                         GError **error);

Removed the source folder, `subfolder` , from the virtual folder, `vfolder` .

#### Parameters

vfolder | a CamelVeeFolder |
subfolder | source CamelFolder to remove from `vfolder` |
op_flags | bit-or of CamelVeeFolderOpFlags |
cancellable | a GCancellable, or `NULL` |
error | return location for a GError, or `NULL` |

#### Returns

whether succeeded

Since: 3.58

### camel_vee_folder_set_folders_sync ()

    gboolean
    camel_vee_folder_set_folders_sync (CamelVeeFolder *vfolder,
                                       GPtrArray *folders,
                                       CamelVeeFolderOpFlags op_flags,
                                       GCancellable *cancellable,
                                       GError **error);

Set the whole list of folder sources on a search folder.

#### Parameters

vfolder | a CamelVeeFolder |
folders | a GPtrArray of CamelFolder to add. | [element-type CamelFolder][transfer none]
op_flags | bit-or of CamelVeeFolderOpFlags |
cancellable | a GCancellable, or `NULL` |
error | return location for a GError, or `NULL` |

#### Returns

whether succeeded

Since: 3.58

### camel_vee_folder_dup_folders ()

    GPtrArray *
    camel_vee_folder_dup_folders (CamelVeeFolder *vfolder);

Returns a GPtrArray of all folders of this `vfolder` , which are used to populate it. These are in no particular order.

Free the returned array with `g_ptr_array_unref()`, when no longer needed.

#### Parameters

vfolder | a CamelVeeFolder |

#### Returns

a GPtrArray of all the folders of this `vfolder` .

[transfer container][element-type CamelFolder]

Since: 3.58

## Property Details

### The `“auto-update”` property

      “auto-update”              gboolean

Automatically update on change in source folders

Owner: CamelVeeFolder

Flags: Read / Write

Default value: TRUE

## Signal Details

### The `“vee-setup-changed”` signal

    void
    user_function (CamelVeeFolder *camelveefolder,
                   gpointer        user_data)

Flags: Action