From 0227bb16b26c2d59c4c2ed6495da1bcd8c3d525d Mon Sep 17 00:00:00 2001 From: Not Zed Date: Fri, 11 Aug 2000 07:43:50 +0000 Subject: Implement. (mh_get_message_user_tag): Implement. 2000-08-11 Not Zed * providers/mh/camel-mh-folder.c (mh_set_message_user_tag): Implement. (mh_get_message_user_tag): Implement. * providers/mbox/camel-mbox-folder.c (mbox_get_message_user_tag): (mbox_set_message_user_tag): Implement. * camel-folder.c (camel_folder_set_message_user_tag): Routine to set message tags. (camel_folder_get_message_user_tag): And accessor. svn path=/trunk/; revision=4729 --- camel/providers/mh/camel-mh-folder.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'camel/providers/mh') diff --git a/camel/providers/mh/camel-mh-folder.c b/camel/providers/mh/camel-mh-folder.c index 6b78df9b14..e899318f9f 100644 --- a/camel/providers/mh/camel-mh-folder.c +++ b/camel/providers/mh/camel-mh-folder.c @@ -77,6 +77,8 @@ static guint32 mh_get_message_flags(CamelFolder * folder, const char *uid); static void mh_set_message_flags(CamelFolder * folder, const char *uid, guint32 flags, guint32 set); static gboolean mh_get_message_user_flag(CamelFolder * folder, const char *uid, const char *name); static void mh_set_message_user_flag(CamelFolder * folder, const char *uid, const char *name, gboolean value); +static const char *mh_get_message_user_tag(CamelFolder *folder, const char *uid, const char *name); +static void mh_set_message_user_tag(CamelFolder *folder, const char *uid, const char *name, const char *value); static void mh_finalize(CamelObject * object); @@ -113,6 +115,8 @@ static void camel_mh_folder_class_init(CamelObjectClass * camel_mh_folder_class) camel_folder_class->set_message_flags = mh_set_message_flags; camel_folder_class->get_message_user_flag = mh_get_message_user_flag; camel_folder_class->set_message_user_flag = mh_set_message_user_flag; + camel_folder_class->get_message_user_flag = mh_get_message_user_tag; + camel_folder_class->set_message_user_flag = mh_set_message_user_tag; } static void mh_finalize(CamelObject * object) @@ -497,3 +501,28 @@ static void mh_set_message_user_flag(CamelFolder * folder, const char *uid, cons camel_folder_summary_touch(CAMEL_FOLDER_SUMMARY(mf->summary)); camel_object_trigger_event (CAMEL_OBJECT(folder), "message_changed", (char *) uid); } + +static const char *mh_get_message_user_tag(CamelFolder *folder, const char *uid, const char *name) +{ + CamelMessageInfo *info; + CamelMhFolder *mf = CAMEL_MH_FOLDER(folder); + + info = camel_folder_summary_uid(CAMEL_FOLDER_SUMMARY(mf->summary), uid); + g_return_val_if_fail(info != NULL, FALSE); + + return camel_tag_get(&info->user_tags, name); +} + +static void mh_set_message_user_tag(CamelFolder *folder, const char *uid, const char *name, const char *value) +{ + CamelMessageInfo *info; + CamelMhFolder *mf = CAMEL_MH_FOLDER(folder); + + info = camel_folder_summary_uid(CAMEL_FOLDER_SUMMARY(mf->summary), uid); + g_return_if_fail(info != NULL); + + camel_tag_set(&info->user_tags, name, value); + info->flags |= CAMEL_MESSAGE_FOLDER_FLAGGED; + camel_folder_summary_touch(CAMEL_FOLDER_SUMMARY(mf->summary)); + camel_object_trigger_event(CAMEL_OBJECT(folder), "message_changed", (char *) uid); +} -- cgit v1.2.3