diff options
author | Dan Winship <danw@src.gnome.org> | 2001-07-02 23:03:49 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-07-02 23:03:49 +0800 |
commit | faac871501ee1935cdbaf044e2f8ac4dc00eadc2 (patch) | |
tree | 14ae39437ee4f3ffc127ac83676c26c506f7c742 /camel/camel-filter-driver.c | |
parent | 55938df2d4948d9581adf7ef660b01fbc6482f4e (diff) | |
download | gsoc2013-evolution-faac871501ee1935cdbaf044e2f8ac4dc00eadc2.tar.gz gsoc2013-evolution-faac871501ee1935cdbaf044e2f8ac4dc00eadc2.tar.zst gsoc2013-evolution-faac871501ee1935cdbaf044e2f8ac4dc00eadc2.zip |
new method to get an application-initialized filter driver.
* camel-session.c (camel_session_get_filter_driver): new method to
get an application-initialized filter driver.
* camel-filter-driver.c (camel_filter_driver_new): Remove the
get_folder function and data args from here...
(camel_filter_driver_set_folder_func): ...and add this function to
set/change them.
* providers/imap/camel-imap-folder.c (camel_imap_folder_new): If
this folder is INBOX and we're filtering INBOX, set a flag on the
folder for later.
(imap_update_summary): Add another argument (GPtrArray *recents),
and if it's non-NULL, add the uids of any \Recent new messages to
it.
(camel_imap_folder_changed): If doing filtering in this folder,
create a recents array and pass it to imap_update_summary. Then
get a filter driver and use it to filter the recent messages.
* providers/imap/camel-imap-summary.h:
* providers/imap/camel-imap-utils.c (imap_parse_flag_list): Add
support for the \Recent flag.
* providers/imap/camel-imap-provider.c (imap_conf_entries): enable
the "filter" option.
* camel-types.h: add CamelFilterDriver typedef here
svn path=/trunk/; revision=10681
Diffstat (limited to 'camel/camel-filter-driver.c')
-rw-r--r-- | camel/camel-filter-driver.c | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/camel/camel-filter-driver.c b/camel/camel-filter-driver.c index cc3b63f440..71c1091b07 100644 --- a/camel/camel-filter-driver.c +++ b/camel/camel-filter-driver.c @@ -228,27 +228,22 @@ camel_filter_driver_finalise (CamelObject *obj) /** * camel_filter_driver_new: - * @system: path to system rules - * @user: path to user rules - * @get_folder: function to call to fetch folders * - * Create a new CamelFilterDriver object. - * - * Return value: A new CamelFilterDriver widget. + * Return value: A new CamelFilterDriver object **/ CamelFilterDriver * -camel_filter_driver_new (CamelFilterGetFolderFunc get_folder, void *data) +camel_filter_driver_new (void) { - CamelFilterDriver *new; - struct _CamelFilterDriverPrivate *p; - - new = CAMEL_FILTER_DRIVER (camel_object_new(camel_filter_driver_get_type ())); - p = _PRIVATE (new); - + return CAMEL_FILTER_DRIVER (camel_object_new(camel_filter_driver_get_type ())); +} + +void +camel_filter_driver_set_folder_func (CamelFilterDriver *d, CamelFilterGetFolderFunc get_folder, void *data) +{ + struct _CamelFilterDriverPrivate *p = _PRIVATE (d); + p->get_folder = get_folder; p->data = data; - - return new; } void @@ -368,7 +363,6 @@ do_copy (struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFilterDriv if (argv[i]->type == ESEXP_RES_STRING) { /* open folders we intent to copy to */ char *folder = argv[i]->value.string; - char *service_url; CamelFolder *outbox; outbox = open_folder (driver, folder); @@ -386,10 +380,8 @@ do_copy (struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFilterDriv } else camel_folder_append_message (outbox, p->message, p->info, p->ex); - service_url = camel_service_get_url (CAMEL_SERVICE (camel_folder_get_parent_store (outbox))); camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Copy to folder %s", - service_url); - g_free (service_url); + folder); } } @@ -408,7 +400,6 @@ do_move (struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFilterDriv if (argv[i]->type == ESEXP_RES_STRING) { /* open folders we intent to move to */ char *folder = argv[i]->value.string; - char *service_url; CamelFolder *outbox; outbox = open_folder (driver, folder); @@ -428,10 +419,8 @@ do_move (struct _ESExp *f, int argc, struct _ESExpResult **argv, CamelFilterDriv } else camel_folder_append_message (outbox, p->message, p->info, p->ex); - service_url = camel_service_get_url (CAMEL_SERVICE (camel_folder_get_parent_store (outbox))); camel_filter_driver_log (driver, FILTER_LOG_ACTION, "Move to folder %s", - service_url); - g_free (service_url); + folder); } } |