+2006-02-24 [colin] 2.0.0cvs83
+
+ * src/procmsg.c
+ * src/summaryview.c
+ * src/summaryview.h
+ * src/plugins/spamassassin/spamassassin.c
+ * src/plugins/spamassassin/spamassassin.h
+ * src/plugins/spamassassin/spamassassin_gtk.c
+ Unregister learner when spamassassin is either
+ disabled or over tcp
+
2006-02-24 [colin] 2.0.0cvs82
* src/Makefile.am
( cvs diff -u -r 1.274.2.98 -r 1.274.2.99 src/mainwindow.c; ) > 2.0.0cvs80.patchset
( cvs diff -u -r 1.382.2.246 -r 1.382.2.247 src/compose.c; cvs diff -u -r 1.50.2.21 -r 1.50.2.22 src/compose.h; cvs diff -u -r 1.60.2.13 -r 1.60.2.14 src/filtering.c; ) > 2.0.0cvs81.patchset
( cvs diff -u -r 1.155.2.35 -r 1.155.2.36 src/Makefile.am; cvs diff -u -r 1.274.2.99 -r 1.274.2.100 src/mainwindow.c; cvs diff -u -r 1.39.2.12 -r 1.39.2.13 src/mainwindow.h; cvs diff -u -r 1.150.2.51 -r 1.150.2.52 src/procmsg.c; cvs diff -u -r 1.60.2.23 -r 1.60.2.24 src/procmsg.h; cvs diff -u -r 1.25.2.20 -r 1.25.2.21 src/stock_pixmap.c; cvs diff -u -r 1.18.2.14 -r 1.18.2.15 src/stock_pixmap.h; cvs diff -u -r 1.395.2.173 -r 1.395.2.174 src/summaryview.c; cvs diff -u -r 1.68.2.15 -r 1.68.2.16 src/summaryview.h; cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/gtk/icon_legend.c; diff -u /dev/null src/pixmaps/spam.xpm; cvs diff -u -r 1.18.2.17 -r 1.18.2.18 src/plugins/spamassassin/spamassassin.c; cvs diff -u -r 1.23.2.18 -r 1.23.2.19 src/plugins/spamassassin/spamassassin_gtk.c; ) > 2.0.0cvs82.patchset
+( cvs diff -u -r 1.150.2.52 -r 1.150.2.53 src/procmsg.c; cvs diff -u -r 1.395.2.174 -r 1.395.2.175 src/summaryview.c; cvs diff -u -r 1.68.2.16 -r 1.68.2.17 src/summaryview.h; cvs diff -u -r 1.18.2.18 -r 1.18.2.19 src/plugins/spamassassin/spamassassin.c; cvs diff -u -r 1.4.2.6 -r 1.4.2.7 src/plugins/spamassassin/spamassassin.h; cvs diff -u -r 1.23.2.19 -r 1.23.2.20 src/plugins/spamassassin/spamassassin_gtk.c; ) > 2.0.0cvs83.patchset
MICRO_VERSION=0
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=82
+EXTRA_VERSION=83
EXTRA_RELEASE=
EXTRA_GTK2_VERSION=
prefs_read_config(param, "SpamAssassin", rcpath, NULL);
g_free(rcpath);
spamassassin_gtk_init();
-
- procmsg_register_spam_learner(spamassassin_learn);
- procmsg_spam_set_folder(config.save_folder);
-
+
debug_print("Spamassassin plugin loaded\n");
if (config.transport == SPAMASSASSIN_DISABLED) {
log_error("Spamassassin plugin is loaded but disabled by its preferences.\n");
}
+
+ if (config.transport != SPAMASSASSIN_DISABLED &&
+ config.transport != SPAMASSASSIN_TRANSPORT_TCP) {
+ procmsg_register_spam_learner(spamassassin_learn);
+ procmsg_spam_set_folder(config.save_folder);
+ } else if (config.transport == SPAMASSASSIN_TRANSPORT_TCP)
+ debug_print("disabling learner as it only works locally\n");
return 0;
void spamassassin_set_message_callback (MessageCallback callback);
gint spamassassin_gtk_init(void);
void spamassassin_gtk_done(void);
-
+void spamassassin_learn(MsgInfo *msginfo, GSList *msglist, gboolean spam);
#endif
/* timeout */
config->timeout = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(page->timeout));
- procmsg_spam_set_folder(config->save_folder);
+ if (config->transport == SPAMASSASSIN_DISABLED ||
+ config->transport == SPAMASSASSIN_TRANSPORT_TCP) {
+ procmsg_unregister_spam_learner(spamassassin_learn);
+ procmsg_spam_set_folder(NULL);
+ if (config->transport == SPAMASSASSIN_TRANSPORT_TCP)
+ debug_print("disabling learner as it only works locally\n");
+ } else {
+ procmsg_register_spam_learner(spamassassin_learn);
+ procmsg_spam_set_folder(config->save_folder);
+ }
spamassassin_save_config();
}
#include "hooks.h"
#include "msgcache.h"
#include "partial_download.h"
+#include "mainwindow.h"
+#include "summaryview.h"
static gint procmsg_send_message_queue_full(const gchar *file, gboolean keep_session);
{
if (!g_slist_find(spam_learners, learn_func))
spam_learners = g_slist_append(spam_learners, learn_func);
+ if (mainwindow_get_mainwindow()) {
+ main_window_set_menu_sensitive(mainwindow_get_mainwindow());
+ summary_set_menu_sensitive(
+ mainwindow_get_mainwindow()->summaryview);
+ }
}
void procmsg_unregister_spam_learner (void (*learn_func)(MsgInfo *info, GSList *list, gboolean spam))
{
spam_learners = g_slist_remove(spam_learners, learn_func);
+ if (mainwindow_get_mainwindow()) {
+ main_window_set_menu_sensitive(mainwindow_get_mainwindow());
+ summary_set_menu_sensitive(
+ mainwindow_get_mainwindow()->summaryview);
+ }
}
gboolean procmsg_spam_can_learn(void)
GtkCTreeNode *node,
gpointer data);
-static void summary_set_menu_sensitive (SummaryView *summaryview);
+void summary_set_menu_sensitive (SummaryView *summaryview);
static void summary_set_hide_read_msgs_menu (SummaryView *summaryview,
guint action);
return mlist;
}
-static void summary_set_menu_sensitive(SummaryView *summaryview)
+void summary_set_menu_sensitive(SummaryView *summaryview)
{
GtkItemFactory *ifactory = summaryview->popupfactory;
SensitiveCond state;
void summaryview_unlock(SummaryView *summaryview, FolderItem *item);
void summary_reflect_prefs(void);
void summaryview_activate_quicksearch(SummaryView *summaryview);
+void summary_set_menu_sensitive (SummaryView *summaryview);
#endif /* __SUMMARY_H__ */