aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--camel/ChangeLog6
-rw-r--r--camel/camel-folder.c2
-rw-r--r--camel/camel-session.c29
-rw-r--r--camel/camel-session.h9
4 files changed, 43 insertions, 3 deletions
diff --git a/camel/ChangeLog b/camel/ChangeLog
index 40992db18e..61ac6dd235 100644
--- a/camel/ChangeLog
+++ b/camel/ChangeLog
@@ -1,3 +1,9 @@
+2004-01-23 Radek Doulik <rodo@ximian.com>
+
+ * camel-folder.c (folder_changed): use check_junk_for_imap flag
+
+ * camel-session.c: add check_junk_for_imap flag
+
2004-01-23 Not Zed <NotZed@Ximian.com>
* providers/imap/camel-imap-folder.c (IMAP_SMALL_BODY_SIZE):
diff --git a/camel/camel-folder.c b/camel/camel-folder.c
index 08fd816d97..c2ff8ef759 100644
--- a/camel/camel-folder.c
+++ b/camel/camel-folder.c
@@ -1648,7 +1648,7 @@ folder_changed (CamelObject *obj, gpointer event_data)
CamelSession *session = ((CamelService *)folder->parent_store)->session;
CamelFilterDriver *driver = NULL;
- if (((folder->folder_flags & CAMEL_FOLDER_FILTER_RECENT) || camel_session_check_junk (session))
+ if (((folder->folder_flags & CAMEL_FOLDER_FILTER_RECENT) || (camel_session_check_junk (session) && camel_session_check_junk_for_imap (session)))
&& changed->uid_recent->len > 0)
driver = camel_session_get_filter_driver(session,
(folder->folder_flags & CAMEL_FOLDER_FILTER_RECENT) ? FILTER_SOURCE_INCOMING : FILTER_SOURCE_JUNKTEST, NULL);
diff --git a/camel/camel-session.c b/camel/camel-session.c
index b7d86c571a..0e5efa1d9c 100644
--- a/camel/camel-session.c
+++ b/camel/camel-session.c
@@ -904,3 +904,32 @@ camel_session_set_check_junk (CamelSession *session, gboolean check_junk)
session->check_junk = check_junk;
}
+
+/**
+ * camel_session_check_junk_for_imap
+ * @session:
+ *
+ * Do we have to check IMAP incoming messages to be junk?
+ **/
+gboolean
+camel_session_check_junk_for_imap (CamelSession *session)
+{
+ g_assert(CAMEL_IS_SESSION(session));
+
+ return session->check_junk_for_imap;
+}
+
+/**
+ * camel_session_set_check_junk_for_imap:
+ * @session:
+ * @check_junk_for_imap:
+ *
+ * Set check_junk_for_imap flag, if set, incoming IMAP mail will be checked for being junk.
+ **/
+void
+camel_session_set_check_junk_for_imap (CamelSession *session, gboolean check_junk_for_imap)
+{
+ g_assert(CAMEL_IS_SESSION(session));
+
+ session->check_junk_for_imap = check_junk_for_imap;
+}
diff --git a/camel/camel-session.h b/camel/camel-session.h
index cd811a6304..27beb0a45f 100644
--- a/camel/camel-session.h
+++ b/camel/camel-session.h
@@ -69,6 +69,7 @@ struct _CamelSession
CamelJunkPlugin *junk_plugin;
gboolean check_junk;
+ gboolean check_junk_for_imap;
};
#ifdef ENABLE_THREADS
@@ -184,8 +185,12 @@ CamelFilterDriver *camel_session_get_filter_driver (CamelSession *session,
const char *type,
CamelException *ex);
-gboolean camel_session_check_junk (CamelSession *session);
-void camel_session_set_check_junk (CamelSession *session, gboolean check_junk);
+gboolean camel_session_check_junk (CamelSession *session);
+void camel_session_set_check_junk (CamelSession *session,
+ gboolean check_junk);
+gboolean camel_session_check_junk_for_imap (CamelSession *session);
+void camel_session_set_check_junk_for_imap (CamelSession *session,
+ gboolean check_junk_for_imap);
#ifdef ENABLE_THREADS
struct _CamelSessionThreadOps {