diff options
Diffstat (limited to 'camel/camel-vee-folder.c')
-rw-r--r-- | camel/camel-vee-folder.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/camel/camel-vee-folder.c b/camel/camel-vee-folder.c index ef79269bd9..a2d384174b 100644 --- a/camel/camel-vee-folder.c +++ b/camel/camel-vee-folder.c @@ -65,6 +65,7 @@ static GPtrArray *vee_search_by_uids(CamelFolder *folder, const char *expression static void vee_set_message_flags (CamelFolder *folder, const char *uid, guint32 flags, guint32 set); static void vee_set_message_user_flag (CamelFolder *folder, const char *uid, const char *name, gboolean value); +static void vee_set_message_user_tag(CamelFolder *folder, const char *uid, const char *name, const char *value); static void vee_rename(CamelFolder *folder, const char *new); static void camel_vee_folder_class_init (CamelVeeFolderClass *klass); @@ -135,6 +136,7 @@ camel_vee_folder_class_init (CamelVeeFolderClass *klass) folder_class->set_message_flags = vee_set_message_flags; folder_class->set_message_user_flag = vee_set_message_user_flag; + folder_class->set_message_user_tag = vee_set_message_user_tag; folder_class->rename = vee_rename; @@ -796,6 +798,19 @@ vee_set_message_user_flag(CamelFolder *folder, const char *uid, const char *name } static void +vee_set_message_user_tag(CamelFolder *folder, const char *uid, const char *name, const char *value) +{ + CamelVeeMessageInfo *mi; + + mi = (CamelVeeMessageInfo *)camel_folder_summary_uid(folder->summary, uid); + if (mi) { + camel_folder_set_message_user_tag(mi->folder, camel_message_info_uid(mi) + 8, name, value); + camel_folder_summary_info_free(folder->summary, (CamelMessageInfo *)mi); + ((CamelFolderClass *)camel_vee_folder_parent)->set_message_user_tag(folder, uid, name, value); + } +} + +static void vee_append_message(CamelFolder *folder, CamelMimeMessage *message, const CamelMessageInfo *info, char **appended_uid, CamelException *ex) { camel_exception_set(ex, CAMEL_EXCEPTION_SYSTEM, _("Cannot copy or move messages into a Virtual Folder")); |