aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-session.h
diff options
context:
space:
mode:
authorDan Winship <danw@src.gnome.org>2001-07-02 23:03:49 +0800
committerDan Winship <danw@src.gnome.org>2001-07-02 23:03:49 +0800
commitfaac871501ee1935cdbaf044e2f8ac4dc00eadc2 (patch)
tree14ae39437ee4f3ffc127ac83676c26c506f7c742 /camel/camel-session.h
parent55938df2d4948d9581adf7ef660b01fbc6482f4e (diff)
downloadgsoc2013-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-session.h')
-rw-r--r--camel/camel-session.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/camel/camel-session.h b/camel/camel-session.h
index fa0705c693..54eea0b1e6 100644
--- a/camel/camel-session.h
+++ b/camel/camel-session.h
@@ -101,6 +101,9 @@ typedef struct {
gboolean (*remove_timeout) (CamelSession *session,
guint handle);
+ CamelFilterDriver * (*get_filter_driver) (CamelSession *session,
+ const char *type,
+ CamelException *ex);
} CamelSessionClass;
@@ -136,38 +139,42 @@ CamelService * camel_session_get_service_connected (CamelSession *session,
#define camel_session_get_transport(session, url_string, ex) \
((CamelTransport *) camel_session_get_service_connected (session, url_string, CAMEL_PROVIDER_TRANSPORT, ex))
-char * camel_session_get_storage_path (CamelSession *session,
+char * camel_session_get_storage_path (CamelSession *session,
CamelService *service,
CamelException *ex);
-char * camel_session_get_password (CamelSession *session,
+char * camel_session_get_password (CamelSession *session,
const char *prompt,
gboolean secret,
CamelService *service,
const char *item,
CamelException *ex);
-void camel_session_forget_password (CamelSession *session,
+void camel_session_forget_password (CamelSession *session,
CamelService *service,
const char *item,
CamelException *ex);
-gboolean camel_session_alert_user (CamelSession *session,
+gboolean camel_session_alert_user (CamelSession *session,
CamelSessionAlertType type,
const char *prompt,
gboolean cancel);
-guint camel_session_register_timeout (CamelSession *session,
+guint camel_session_register_timeout (CamelSession *session,
guint32 interval,
CamelTimeoutCallback callback,
gpointer user_data);
-gboolean camel_session_remove_timeout (CamelSession *session,
+gboolean camel_session_remove_timeout (CamelSession *session,
guint handle);
-gboolean camel_session_is_online (CamelSession *session);
-void camel_session_set_online (CamelSession *session,
+gboolean camel_session_is_online (CamelSession *session);
+void camel_session_set_online (CamelSession *session,
gboolean online);
+CamelFilterDriver *camel_session_get_filter_driver (CamelSession *session,
+ const char *type,
+ CamelException *ex);
+
#ifdef __cplusplus
}
#endif /* __cplusplus */