## CamelVeeFolder

CamelVeeFolder

## Functions

CamelFolder * | camel_vee_folder_new ()
void | camel_vee_folder_construct ()
CamelFolder * | camel_vee_folder_get_location ()
CamelFolder * | camel_vee_folder_get_vee_uid_folder ()
void | camel_vee_folder_set_auto_update ()
gboolean | camel_vee_folder_get_auto_update ()
void | camel_vee_folder_add_folder ()
void | camel_vee_folder_remove_folder ()
void | camel_vee_folder_set_folders ()
void | camel_vee_folder_add_vuid ()
void | camel_vee_folder_remove_vuid ()
void | camel_vee_folder_rebuild_folder ()
void | camel_vee_folder_set_expression ()
const gchar * | camel_vee_folder_get_expression ()
void | camel_vee_folder_ignore_next_changed_event ()
void | camel_vee_folder_remove_from_ignore_changed_event ()

## Properties

gboolean | auto-update | Read / Write

## Types and Values

struct | CamelVeeFolder
#define | CAMEL_UNMATCHED_NAME

## Object Hierarchy

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

## Description

## Functions

### camel_vee_folder_new ()

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

Create a new CamelVeeFolder object.

#### Parameters

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

#### Returns

A new CamelVeeFolder widget.

### camel_vee_folder_construct ()

    void
    camel_vee_folder_construct (CamelVeeFolder *vf,
                                guint32 flags);

### camel_vee_folder_get_location ()

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

Find the real folder (and uid)

#### Parameters

realuid | if not NULL, set to the uid of the real message, must be g_free'd by caller. |

#### Returns

### camel_vee_folder_get_vee_uid_folder ()

    CamelFolder *
    camel_vee_folder_get_vee_uid_folder (CamelVeeFolder *vf,
                                         const gchar *vee_message_uid);

FIXME Document me!

Since 3.6

### camel_vee_folder_set_auto_update ()

    void
    camel_vee_folder_set_auto_update (CamelVeeFolder *vfolder,
                                      gboolean auto_update);

FIXME Document me!

Since 3.6

### camel_vee_folder_get_auto_update ()

    gboolean
    camel_vee_folder_get_auto_update (CamelVeeFolder *vfolder);

FIXME Document me!

Since 3.6

### camel_vee_folder_add_folder ()

    void
    camel_vee_folder_add_folder (CamelVeeFolder *vfolder,
                                 CamelFolder *subfolder,
                                 GCancellable *cancellable);

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

#### Parameters

vfolder | Virtual Folder object |
subfolder | source CamelFolder to add to `vfolder` |

### camel_vee_folder_remove_folder ()

    void
    camel_vee_folder_remove_folder (CamelVeeFolder *vfolder,
                                    CamelFolder *subfolder,
                                    GCancellable *cancellable);

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

#### Parameters

vfolder | Virtual Folder object |
subfolder | source CamelFolder to remove from `vfolder` |

### camel_vee_folder_set_folders ()

    void
    camel_vee_folder_set_folders (CamelVeeFolder *vf,
                                  GList *folders,
                                  GCancellable *cancellable);

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

### camel_vee_folder_add_vuid ()

    void
    camel_vee_folder_add_vuid (CamelVeeFolder *vfolder,
                               struct _CamelVeeMessageInfoData *mi_data,
                               CamelFolderChangeInfo *changes);

FIXME Document me!

Since 3.6

### camel_vee_folder_remove_vuid ()

    void
    camel_vee_folder_remove_vuid (CamelVeeFolder *vfolder,
                                  struct _CamelVeeMessageInfoData *mi_data,
                                  CamelFolderChangeInfo *changes);

FIXME Document me!

Since 3.6

### camel_vee_folder_rebuild_folder ()

    void
    camel_vee_folder_rebuild_folder (CamelVeeFolder *vfolder,
                                     CamelFolder *subfolder,
                                     GCancellable *cancellable);

Rebuild the folder `subfolder` , if it should be.

#### Parameters

vfolder | Virtual Folder object |
subfolder | source CamelFolder to add to `vfolder` |

### camel_vee_folder_set_expression ()

    void
    camel_vee_folder_set_expression (CamelVeeFolder *vfolder,
                                     const gchar *expr);

### camel_vee_folder_get_expression ()

    const gchar *
    camel_vee_folder_get_expression (CamelVeeFolder *vfolder);

FIXME Document me!

Since 3.6

### camel_vee_folder_ignore_next_changed_event ()

    void
    camel_vee_folder_ignore_next_changed_event
                                   (CamelVeeFolder *vfolder,
                                    CamelFolder *subfolder);

The next `subfolder` -'s 'changed' event will be silently ignored. This is usually used in virtual folders when the change was done in them, but it is neither vTrash nor vJunk folder. Doing this avoids unnecessary removals of messages which don't satisfy search criteria anymore, which could be done on asynchronous delivery of folder's 'changed' signal. These ignored changes are accumulated and used on folder refresh.

#### Parameters

vfolder | a CamelVeeFolder |
subfolder | a CamelFolder folder |

Since 3.2

### camel_vee_folder_remove_from_ignore_changed_event ()

    void
    camel_vee_folder_remove_from_ignore_changed_event
                                   (CamelVeeFolder *vfolder,
                                    CamelFolder *subfolder);

Make sure the next `subfolder` -'s 'changed' event will not be silently ignored. This is a counter-part function of `camel_vee_folder_ignore_next_changed_event()`, when there was expected a change, which did not happen, to take back the previous ignore event request.

#### Parameters

vfolder | a CamelVeeFolder |
subfolder | a CamelFolder folder |

Since 3.12

## Types and Values

### struct CamelVeeFolder

    struct CamelVeeFolder;

### CAMEL_UNMATCHED_NAME

    #define CAMEL_UNMATCHED_NAME "UNMATCHED"

## Property Details

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

      “auto-update”              gboolean

Automatically _update on change in source folders.

Flags: Read / Write

Default value: TRUE