Commit Diff


commit - 16b22a2b765ededd0b1d628dd6d8c3b54b0375e6
commit + f9285c5a86c512788f5ee2a5f916013d313ca303
blob - 92f8ed652b660be3e91400175492a8845566872d
blob + 52e4fb8524cb83182a40d752971aa81fcad00fa8
--- src/compose.c
+++ src/compose.c
@@ -2261,9 +2261,6 @@ void compose_entry_append(Compose *compose, const gcha
 	case COMPOSE_REPLYTO:
 		header = N_("Reply-To:");
 		break;
-	case COMPOSE_NEWSGROUPS:
-		header = N_("Newsgroups:");
-		break;
 	case COMPOSE_FOLLOWUPTO:
 		header = N_( "Followup-To:");
 		break;
@@ -6487,8 +6484,6 @@ static void compose_create_header_entry(Compose *compo
 			COMPOSE_CC);
 	COMBOBOX_ADD(model, prefs_common_translated_header_name("Bcc:"),
 			COMPOSE_BCC);
-	COMBOBOX_ADD(model, prefs_common_translated_header_name("Newsgroups:"),
-			COMPOSE_NEWSGROUPS);
 	COMBOBOX_ADD(model, prefs_common_translated_header_name("Reply-To:"),
 			COMPOSE_REPLYTO);
 	COMBOBOX_ADD(model, prefs_common_translated_header_name("Followup-To:"),
blob - 52af49d26ed8665e0e73daadf62c07d6d5835b8a
blob + 2b26a505d0d987703c9428d1f3ae76be9f3718bd
--- src/mainwindow.c
+++ src/mainwindow.c
@@ -206,10 +206,6 @@ static void mark_all_read_cb		(GtkAction	*action,
 				  gpointer	 data);
 static void mark_all_unread_cb		(GtkAction	*action,
 				  gpointer	 data);
-static void mark_as_spam_cb		(GtkAction	*action,
-				  gpointer	 data);
-static void mark_as_ham_cb		(GtkAction	*action,
-				  gpointer	 data);
 
 static void ignore_thread_cb		(GtkAction	*action,
 				  gpointer	 data);
@@ -615,12 +611,7 @@ static GtkActionEntry mainwin_entries[] =
 	{"Message/Marks/UnignoreThread",             NULL, N_("Unignore thread"), NULL, NULL, G_CALLBACK(unignore_thread_cb) },
 	{"Message/Marks/WatchThread",                NULL, N_("Watch thread"), NULL, NULL, G_CALLBACK(watch_thread_cb) },
 	{"Message/Marks/UnwatchThread",              NULL, N_("Unwatch thread"), NULL, NULL, G_CALLBACK(unwatch_thread_cb) },
-	/* separation */
 
-	{"Message/Marks/MarkSpam",                   NULL, N_("Mark as _spam"), NULL, NULL, G_CALLBACK(mark_as_spam_cb) },
-	{"Message/Marks/MarkHam",                    NULL, N_("Mark as _ham"), NULL, NULL, G_CALLBACK(mark_as_ham_cb) },
-	/* separation */
-
 	{"Message/Marks/Lock",                       NULL, N_("Lock"), NULL, NULL, G_CALLBACK(lock_msgs_cb) },
 	{"Message/Marks/Unlock",                     NULL, N_("Unlock"), NULL, NULL, G_CALLBACK(unlock_msgs_cb) },
 
@@ -1247,8 +1238,6 @@ MainWindow *main_window_create()
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "WatchThread", "Message/Marks/WatchThread", GTK_UI_MANAGER_MENUITEM)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "UnwatchThread", "Message/Marks/UnwatchThread", GTK_UI_MANAGER_MENUITEM)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "Separator4", "Message/Marks/---", GTK_UI_MANAGER_SEPARATOR)
-	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "MarkSpam", "Message/Marks/MarkSpam", GTK_UI_MANAGER_MENUITEM)
-	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "MarkHam", "Message/Marks/MarkHam", GTK_UI_MANAGER_MENUITEM)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "Separator5", "Message/Marks/---", GTK_UI_MANAGER_SEPARATOR)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "Lock", "Message/Marks/Lock", GTK_UI_MANAGER_MENUITEM)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menu/Message/Marks", "Unlock", "Message/Marks/Unlock", GTK_UI_MANAGER_MENUITEM)
@@ -1325,9 +1314,6 @@ MainWindow *main_window_create()
 	mainwin->toolbar = toolbar_create(TOOLBAR_MAIN,
 					  handlebox,
 					  (gpointer)mainwin);
-	toolbar_set_learn_button
-		(mainwin->toolbar,
-		 LEARN_SPAM);
 
 	/* vbox that contains body */
 	vbox_body = gtk_box_new(GTK_ORIENTATION_VERTICAL, BORDER_WIDTH);
@@ -2268,13 +2254,6 @@ SensitiveCondMask main_window_get_current_state(MainWi
 		}
 	}
 
-	if (procmsg_spam_can_learn() &&
-	    (mainwin->summaryview->folder_item &&
-	     mainwin->summaryview->folder_item->folder->klass->type != F_UNKNOWN &&
-	     mainwin->summaryview->folder_item->folder->klass->type != F_NEWS)) {
-		UPDATE_STATE(M_CAN_LEARN_SPAM);
-	}
-
 	if (mainwin->summaryview->folder_item) {
 		UPDATE_STATE(M_FOLDER_SELECTED);
 	}
@@ -2414,8 +2393,6 @@ void main_window_set_menu_sensitive(MainWindow *mainwi
 	SET_SENSITIVE("Menu/Message/DeleteThread", M_TARGET_EXIST, M_SUMMARY_ISLIST);
 	SET_SENSITIVE("Menu/Message/CancelNews", M_TARGET_EXIST, M_ALLOW_DELETE, M_NEWS);
 	SET_SENSITIVE("Menu/Message/Marks", M_TARGET_EXIST, M_SUMMARY_ISLIST);
-	SET_SENSITIVE("Menu/Message/Marks/MarkSpam", M_TARGET_EXIST, M_CAN_LEARN_SPAM);
-	SET_SENSITIVE("Menu/Message/Marks/MarkHam", M_TARGET_EXIST, M_CAN_LEARN_SPAM);
 	SET_SENSITIVE("Menu/Message/Marks/IgnoreThread", M_TARGET_EXIST);
 	SET_SENSITIVE("Menu/Message/Marks/UnignoreThread", M_TARGET_EXIST);
 	SET_SENSITIVE("Menu/Message/Marks/Lock", M_TARGET_EXIST);
@@ -3505,18 +3482,6 @@ static void mark_all_unread_cb(GtkAction *action, gpoi
 	summary_mark_all_unread(mainwin->summaryview, TRUE);
 }
 
-static void mark_as_spam_cb(GtkAction *action, gpointer data)
-{
-	MainWindow *mainwin = (MainWindow *)data;
-	summary_mark_as_spam(mainwin->summaryview, TRUE, NULL);
-}
-
-static void mark_as_ham_cb(GtkAction *action, gpointer data)
-{
-	MainWindow *mainwin = (MainWindow *)data;
-	summary_mark_as_spam(mainwin->summaryview, FALSE, NULL);
-}
-
 static void ignore_thread_cb(GtkAction *action, gpointer data)
 {
 	MainWindow *mainwin = (MainWindow *)data;
@@ -4205,11 +4170,6 @@ static void forget_session_passwords_cb(GtkAction *act
 				   fgtn), fgtn, accs);
 }
 
-void mainwindow_learn (MainWindow *mainwin, gboolean is_spam)
-{
-	summary_mark_as_spam(mainwin->summaryview, is_spam, NULL);
-}
-
 void mainwindow_jump_to(const gchar *target, gboolean popup)
 {
 	gchar *tmp = NULL;
blob - 8aaded1f771c79d53caf2fb2077a69ebc7ec60f6
blob + 15a498895058cb8e3e9760a152ac2742005ea18a
--- src/mainwindow.h
+++ src/mainwindow.h
@@ -52,7 +52,6 @@ typedef enum
 	M_HIDE_READ_MSG,
 	M_DELAY_EXEC,
 	M_NOT_NEWS,
-	M_CAN_LEARN_SPAM,
 	M_ACTIONS_EXIST,
 	M_HAVE_QUEUED_MAILS,
 	M_TAGS_EXIST,
@@ -202,8 +201,6 @@ void main_window_toggle_work_offline          (MainWin
 					       gboolean		  ask_sync);
 
 MainWindow *mainwindow_get_mainwindow 	      (void);
-void mainwindow_learn			      (MainWindow *mainwin,
-					       gboolean is_spam);
 void mainwindow_jump_to			      (const gchar 	 *target,
 					       gboolean popup);
 void mainwindow_show_error		      (void);
blob - 66eaf8eabcb662879c97b953062637401bc457b5
blob + b0cb66e00e072922d785b5cf61345a11706faa32
--- src/matcher.c
+++ src/matcher.c
@@ -159,8 +159,6 @@ static const MatchParser matchparser_tab[] = {
 	{MATCHACTION_UNLOCK, "unlock"},
 	{MATCHACTION_MARK_AS_READ, "mark_as_read"},
 	{MATCHACTION_MARK_AS_UNREAD, "mark_as_unread"},
-	{MATCHACTION_MARK_AS_SPAM, "mark_as_spam"},
-	{MATCHACTION_MARK_AS_HAM, "mark_as_ham"},
 	{MATCHACTION_FORWARD, "forward"},
 	{MATCHACTION_FORWARD_AS_ATTACHMENT, "forward_as_attachment"},
 	{MATCHACTION_EXECUTE, "execute"},
blob - 2a05f4446ca2907951595a05326dcba6d6432771
blob + 547066f1e89a8e1b4062986155e04508fc3047f7
--- src/messageview.c
+++ src/messageview.c
@@ -140,9 +140,6 @@ static void compose_cb			(GtkAction	*action,
 static void reply_cb			(GtkAction	*action,
 					 gpointer	 data);
 
-static PrefsAccount *select_account_from_list
-					(GList		*ac_list,
-					 gboolean	 has_accounts);
 static void addressbook_open_cb		(GtkAction	*action,
 					 gpointer	 data);
 static void add_address_cb		(GtkAction	*action,
@@ -882,30 +879,6 @@ gint messageview_show(MessageView *messageview, MsgInf
 		return 0;
 	}
 
-	if (messageview->toolbar)
-		toolbar_set_learn_button
-			(messageview->toolbar,
-			 MSG_IS_SPAM(msginfo->flags)?LEARN_HAM:LEARN_SPAM);
-	else
-		toolbar_set_learn_button
-			(messageview->mainwin->toolbar,
-			 MSG_IS_SPAM(msginfo->flags)?LEARN_HAM:LEARN_SPAM);
-
-	if (messageview->toolbar) {
-		if (messageview->toolbar->learn_spam_btn) {
-			gboolean can_learn = FALSE;
-			if (procmsg_spam_can_learn() &&
-			    (msginfo->folder &&
-			     msginfo->folder->folder->klass->type != F_UNKNOWN &&
-			     msginfo->folder->folder->klass->type != F_NEWS))
-				can_learn = TRUE;
-
-			gtk_widget_set_sensitive(
-				messageview->toolbar->learn_spam_btn,
-				can_learn);
-		}
-	}
-
 	noticeview_hide(messageview->noticeview);
 	mimeview_clear(messageview->mimeview);
 	messageview->updating = TRUE;
@@ -1364,59 +1337,6 @@ static gboolean key_pressed(GtkWidget *widget, GdkEven
 	return FALSE;
 }
 
-static void select_account_cb(GtkWidget *w, gpointer data)
-{
-	*(gint*)data = combobox_get_active_data(GTK_COMBO_BOX(w));
-}
-
-static PrefsAccount *select_account_from_list(GList *ac_list, gboolean has_accounts)
-{
-	GtkWidget *optmenu;
-	gint account_id;
-	AlertValue val;
-
-	cm_return_val_if_fail(ac_list != NULL, NULL);
-	cm_return_val_if_fail(ac_list->data != NULL, NULL);
-
-	optmenu = gtkut_account_menu_new(ac_list,
-			G_CALLBACK(select_account_cb),
-			&account_id);
-	if (!optmenu)
-		return NULL;
-	account_id = ((PrefsAccount *) ac_list->data)->account_id;
-	if (!has_accounts) {
-		gchar *tr;
-		gchar *text;
-		tr = g_strdup(C_("'%s' stands for 'To' then 'Cc'",
-		    "This message is asking for a return receipt notification\n"
-		    "but according to its '%s' and '%s' headers it was not\n"
-		    "officially addressed to you.\n"
-		    "It is advised to not send the return receipt."));
-		text = g_strdup_printf(tr,
-		  prefs_common_translated_header_name("To"),
-		  prefs_common_translated_header_name("Cc"));
-		val = alertpanel_with_widget(
-				_("Return Receipt Notification"),
-				text, NULL, _("_Cancel"), NULL, _("_Send Notification"),
-				NULL, NULL, ALERTFOCUS_FIRST, FALSE, optmenu);
-		g_free(tr);
-		g_free(text);
-	} else
-		val = alertpanel_with_widget(
-				_("Return Receipt Notification"),
-				_("More than one of your accounts uses the "
-				 "address that this message was sent to.\n"
-				 "Please choose which account you want to "
-				 "use for sending the receipt notification:"),
-				NULL, _("_Cancel"), NULL, _("_Send Notification"),
-				NULL, NULL, ALERTFOCUS_FIRST, FALSE, optmenu);
-
-	if (val != G_ALERTALTERNATE)
-		return NULL;
-	else
-		return account_find_from_id(account_id);
-}
-
 /*
  * \brief return selected messageview text, when nothing is
  * 	  selected and message was filtered, return complete text
@@ -1572,8 +1492,7 @@ static void print_mimeview(MimeView *mimeview, gint se
 	if (!mimeview
 	||  !mimeview->textview
 	||  !mimeview->textview->text)
-		alertpanel_warning(_("Cannot print: the message doesn't "
-				     "contain text."));
+		alertpanel_warning("Cannot print: no message text");
 	else {
 		gtk_widget_realize(mimeview->textview->text);
 		if (partnum > 0) {
@@ -1591,8 +1510,7 @@ static void print_mimeview(MimeView *mimeview, gint se
 				mimepart = mimeview_get_selected_part(mimeview);
 				if (mimepart == NULL
 				||  (mimepart->type != MIMETYPE_TEXT && mimepart->type != MIMETYPE_MESSAGE)) {
-					alertpanel_warning(_("Cannot print: the message doesn't "
-							     "contain text."));
+					alertpanel_warning(_("Cannot print: non-text MIME part"));
 					return;
 				}
 				mimeview_show_part_as_text(mimeview, mimepart);
@@ -2244,30 +2162,6 @@ void messageview_set_menu_sensitive(MessageView *messa
 	cm_menu_set_sensitive_full(messageview->ui_manager, "Menu/Message/CheckSignature", messageview->mimeview->signed_part);
 }
 
-void messageview_learn (MessageView *msgview, gboolean is_spam)
-{
-	if (is_spam) {
-		if (procmsg_spam_learner_learn(msgview->msginfo, NULL, TRUE) == 0)
-			procmsg_msginfo_set_flags(msgview->msginfo, MSG_SPAM, 0);
-		else
-			log_error(LOG_PROTOCOL, _("An error happened while learning.\n"));
-
-	} else {
-		if (procmsg_spam_learner_learn(msgview->msginfo, NULL, FALSE) == 0)
-			procmsg_msginfo_unset_flags(msgview->msginfo, MSG_SPAM, 0);
-		else
-			log_error(LOG_PROTOCOL, _("An error happened while learning.\n"));
-	}
-	if (msgview->toolbar)
-		toolbar_set_learn_button
-			(msgview->toolbar,
-			 MSG_IS_SPAM(msgview->msginfo->flags)?LEARN_HAM:LEARN_SPAM);
-	else
-		toolbar_set_learn_button
-			(msgview->mainwin->toolbar,
-			 MSG_IS_SPAM(msgview->msginfo->flags)?LEARN_HAM:LEARN_SPAM);
-}
-
 static void save_part_as_cb(GtkAction *action, gpointer data)
 {
 	MessageView *messageview = (MessageView *)data;
blob - 60277f4fde9af7167887c113dad46d80d070b543
blob + 7706c15bee311470f432bbe62801e3f179c7ea41
--- src/messageview.h
+++ src/messageview.h
@@ -119,8 +119,7 @@ void messageview_reflect_prefs_pixmap_theme	(void);
 gchar *messageview_get_selection		(MessageView 	*msgview);
 
 void messageview_set_menu_sensitive		(MessageView	*msgview);
-void messageview_learn				(MessageView	*msgview,
-						 gboolean is_spam);
+
 void messageview_print				(MsgInfo	*msginfo,
 						 gboolean	 all_headers,
 						 gint		 sel_start,
blob - ee66ac01a702f24c8087456c6c48b5a40626216a
blob + b92e0bc9f331ec14e6a87fa2ab2374fdc358af1d
--- src/procmsg.c
+++ src/procmsg.c
@@ -2066,75 +2066,6 @@ MsgInfo *procmsg_msginfo_new_from_mimeinfo(MsgInfo *sr
 	return tmp_msginfo;
 }
 
-static GSList *spam_learners = NULL;
-
-void procmsg_register_spam_learner (int (*learn_func)(MsgInfo *info, GSList *list, gboolean spam))
-{
-	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);
-		toolbar_main_set_sensitive(mainwindow_get_mainwindow());
-	}
-}
-
-void procmsg_unregister_spam_learner (int (*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);
-		toolbar_main_set_sensitive(mainwindow_get_mainwindow());
-	}
-}
-
-gboolean procmsg_spam_can_learn(void)
-{
-	return g_slist_length(spam_learners) > 0;
-}
-
-int procmsg_spam_learner_learn (MsgInfo *info, GSList *list, gboolean spam)
-{
-	GSList *cur = spam_learners;
-	int ret = 0;
-	for (; cur; cur = cur->next) {
-		int ((*func)(MsgInfo *info, GSList *list, gboolean spam)) = cur->data;
-		ret |= func(info, list, spam);
-	}
-	return ret;
-}
-
-static gchar *spam_folder_item = NULL;
-static FolderItem * (*procmsg_spam_get_folder_func)(MsgInfo *msginfo) = NULL;
-void procmsg_spam_set_folder (const char *item_identifier, FolderItem *(*spam_get_folder_func)(MsgInfo *info))
-{
-	g_free(spam_folder_item);
-	if (item_identifier)
-		spam_folder_item = g_strdup(item_identifier);
-	else
-		spam_folder_item = NULL;
-	if (spam_get_folder_func != NULL)
-		procmsg_spam_get_folder_func = spam_get_folder_func;
-	else
-		procmsg_spam_get_folder_func = NULL;
-}
-
-FolderItem *procmsg_spam_get_folder (MsgInfo *msginfo)
-{
-	FolderItem *item = NULL;
-
-	if (procmsg_spam_get_folder_func)
-		item = procmsg_spam_get_folder_func(msginfo);
-	if (item == NULL && spam_folder_item)
-		item = folder_find_item_from_identifier(spam_folder_item);
-	if (item == NULL)
-		item = folder_get_default_trash();
-	return item;
-}
-
 static void item_has_queued_mails(FolderItem *item, gpointer data)
 {
 	gboolean *result = (gboolean *)data;
blob - 1bb15bcc1f2d6a97ecf4b33c4320cb6157f404af
blob + d2d6688f55cac2abf1c0cd561a1d568dc0043dbe
--- src/procmsg.h
+++ src/procmsg.h
@@ -375,12 +375,6 @@ MsgInfo *procmsg_msginfo_new_from_mimeinfo
 					(MsgInfo 	*src_msginfo,
 					 MimeInfo	*mimeinfo);
 
-void procmsg_register_spam_learner (int (*learn_func)(MsgInfo *info, GSList *list, gboolean spam));
-void procmsg_unregister_spam_learner (int (*learn_func)(MsgInfo *info, GSList *list, gboolean spam));
-gboolean procmsg_spam_can_learn		(void);
-void procmsg_spam_set_folder		(const char *item_identifier, FolderItem *(*spam_get_folder_func)(MsgInfo *info));
-FolderItem *procmsg_spam_get_folder	(MsgInfo *msginfo);
-int procmsg_spam_learner_learn 	(MsgInfo *msginfo, GSList *msglist, gboolean spam);
 gboolean procmsg_have_queued_mails_fast (void);
 gboolean procmsg_have_trashed_mails_fast (void);
 gboolean procmsg_is_sending(void);
blob - e2b305244ddf0d623b96e61416529eac88104e4f
blob + f647c8de150480bd8e974ad6d56e442232e73722
--- src/summaryview.c
+++ src/summaryview.c
@@ -658,9 +658,6 @@ SummaryView *summary_create(MainWindow *mainwin)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "WatchThread", "Message/Marks/WatchThread", GTK_UI_MANAGER_MENUITEM)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "UnwatchThread", "Message/Marks/UnwatchThread", GTK_UI_MANAGER_MENUITEM)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "Separator4", "Message/Marks/---", GTK_UI_MANAGER_SEPARATOR)
-	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "MarkSpam", "Message/Marks/MarkSpam", GTK_UI_MANAGER_MENUITEM)
-	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "MarkHam", "Message/Marks/MarkHam", GTK_UI_MANAGER_MENUITEM)
-	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "Separator5", "Message/Marks/---", GTK_UI_MANAGER_SEPARATOR)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "Lock", "Message/Marks/Lock", GTK_UI_MANAGER_MENUITEM)
 	MENUITEM_ADDUI_MANAGER(mainwin->ui_manager, "/Menus/SummaryViewPopup/Marks", "Unlock", "Message/Marks/Unlock", GTK_UI_MANAGER_MENUITEM)
 
@@ -1625,8 +1622,6 @@ void summary_set_menu_sensitive(SummaryView *summaryvi
 	SET_SENSITIVE("Menus/SummaryViewPopup/Marks/UnwatchThread", M_TARGET_EXIST);
 	SET_SENSITIVE("Menus/SummaryViewPopup/Marks/Lock", M_TARGET_EXIST);
 	SET_SENSITIVE("Menus/SummaryViewPopup/Marks/Unlock", M_TARGET_EXIST);
-	SET_SENSITIVE("Menus/SummaryViewPopup/Marks/MarkSpam", M_TARGET_EXIST, M_CAN_LEARN_SPAM);
-	SET_SENSITIVE("Menus/SummaryViewPopup/Marks/MarkHam", M_TARGET_EXIST, M_CAN_LEARN_SPAM);
 
 	SET_SENSITIVE("Menus/SummaryViewPopup/View", M_SINGLE_TARGET_EXIST);
 	SET_SENSITIVE("Menus/SummaryViewPopup/View/OpenNewWindow", M_SINGLE_TARGET_EXIST);
@@ -3901,73 +3896,6 @@ void summary_mark_all_unread(SummaryView *summaryview,
 	summary_status_show(summaryview);
 }
 
-void summary_mark_as_spam(SummaryView *summaryview, guint action, GtkWidget *widget)
-{
-	GtkCMCTree *ctree = GTK_CMCTREE(summaryview->ctree);
-	GList *cur;
-	gboolean is_spam = action;
-	GSList *msgs = NULL;
-	gboolean immediate_exec = prefs_common.immediate_exec;
-	gboolean moved = FALSE;
-	gboolean froze = FALSE;
-
-
-	if (summary_is_locked(summaryview))
-		return;
-
-	prefs_common.immediate_exec = FALSE;
-	START_LONG_OPERATION(summaryview, FALSE);
-	folder_item_set_batch(summaryview->folder_item, TRUE);
-	for (cur = GTK_CMCLIST(ctree)->selection; cur != NULL && cur->data != NULL; cur = cur->next) {
-		GtkCMCTreeNode *row = GTK_CMCTREE_NODE(cur->data);
-		MsgInfo *msginfo = gtk_cmctree_node_get_row_data(ctree, row);
-		if (msginfo)
-			msgs = g_slist_prepend(msgs, msginfo);
-	}
-
-	if (procmsg_spam_learner_learn(NULL, msgs, is_spam) == 0) {
-		for (cur = GTK_CMCLIST(ctree)->selection; cur != NULL && cur->data != NULL; cur = cur->next) {
-			GtkCMCTreeNode *row = GTK_CMCTREE_NODE(cur->data);
-			MsgInfo *msginfo = gtk_cmctree_node_get_row_data(ctree, row);
-			if (!msginfo)
-				continue;
-			if (is_spam) {
-				summary_msginfo_change_flags(msginfo, MSG_SPAM, 0, MSG_NEW|MSG_UNREAD, 0);
-				if (procmsg_spam_get_folder(msginfo) != summaryview->folder_item) {
-					summary_move_row_to(summaryview, row,
-							procmsg_spam_get_folder(msginfo));
-					moved = TRUE;
-				}
-			} else {
-				summary_msginfo_unset_flags(msginfo, MSG_SPAM, 0);
-			}
-			summaryview->display_msg = prefs_common.always_show_msg;
-
-			summary_set_row_marks(summaryview, row);
-		}
-	} else {
-		log_error(LOG_PROTOCOL, _("An error happened while learning.\n"));
-	}
-
-	prefs_common.immediate_exec = immediate_exec;
-	folder_item_set_batch(summaryview->folder_item, FALSE);
-	END_LONG_OPERATION(summaryview);
-
-	if (prefs_common.immediate_exec && moved) {
-		summary_execute(summaryview);
-	}
-
-	if (!moved && msgs) {
-		MsgInfo *msginfo = (MsgInfo *)msgs->data;
-		toolbar_set_learn_button
-			(summaryview->mainwin->toolbar,
-			 MSG_IS_SPAM(msginfo->flags)?LEARN_HAM:LEARN_SPAM);
-	}
-	g_slist_free(msgs);
-
-	summary_status_show(summaryview);
-}
-
 static gboolean check_permission(SummaryView *summaryview, MsgInfo * msginfo)
 {
 	GList * cur;
@@ -4080,7 +4008,6 @@ void summary_delete(SummaryView *summaryview)
 	GtkCMCTreeNode *sel_last = NULL;
 	GtkCMCTreeNode *node;
 	AlertValue aval;
-	MsgInfo *msginfo;
 	gboolean froze = FALSE;
 
 	if (!item) return;
@@ -4108,12 +4035,6 @@ void summary_delete(SummaryView *summaryview)
 		}
 	}
 
-	for (cur = GTK_CMCLIST(ctree)->selection; cur != NULL && cur->data != NULL;
-	     cur = cur->next) {
-		GtkCMCTreeNode *row = GTK_CMCTREE_NODE(cur->data);
-		msginfo = gtk_cmctree_node_get_row_data(ctree, row);
-	}
-
 	main_window_cursor_wait(summaryview->mainwin);
 
 	/* next code sets current row focus right. We need to find a row
@@ -6027,9 +5948,6 @@ static void summary_selected(GtkCMCTree *ctree, GtkCMC
 	cm_return_if_fail(msginfo != NULL);
 
 	main_create_mailing_list_menu (summaryview->mainwin, msginfo);
-	toolbar_set_learn_button
-		(summaryview->mainwin->toolbar,
-		 MSG_IS_SPAM(msginfo->flags)?LEARN_HAM:LEARN_SPAM);
 
 	switch (column < 0 ? column : summaryview->col_state[column].type) {
 	case S_COL_MARK:
@@ -6049,11 +5967,6 @@ static void summary_selected(GtkCMCTree *ctree, GtkCMC
 		if (MSG_IS_UNREAD(msginfo->flags)) {
 			summary_mark_row_as_read(summaryview, row);
 			summary_status_show(summaryview);
-		} else if (MSG_IS_SPAM(msginfo->flags)) {
-				if (procmsg_spam_learner_learn(msginfo, NULL, FALSE) == 0)
-					summary_msginfo_unset_flags(msginfo, MSG_SPAM, 0);
-				else
-					log_error(LOG_PROTOCOL, _("An error happened while learning.\n"));
 		} else if (!MSG_IS_REPLIED(msginfo->flags) &&
 			 !MSG_IS_FORWARDED(msginfo->flags)) {
 			marked_unread = TRUE;
@@ -6270,13 +6183,6 @@ static void summary_start_drag(GtkWidget *widget, gint
 	gtk_drag_set_icon_default(context);
 }
 
-static gboolean summary_return_to_list(void *data)
-{
-	SummaryView *summaryview = (SummaryView *)data;
-	mainwindow_enter_folder(summaryview->mainwin);
-	return FALSE;
-}
-
 static void summary_drag_end	   (GtkWidget	    *widget,
 				   GdkDragContext   *drag_context,
                                    SummaryView 	    *summaryview)
@@ -7053,8 +6959,6 @@ static gboolean summary_update_msg(gpointer source, gp
 
 void summary_update_unread(SummaryView *summaryview, FolderItem *removed_item)
 {
-	guint new, unread, unreadmarked, marked, total;
-	guint replied, forwarded, locked, ignored, watched;
 	static gboolean tips_initialized = FALSE;
 
 	if (!tips_initialized)
blob - 1f7d0bb6b21f4ba3d8b71174acbeaa5facdecdef
blob + 487aa25bbde1dea332d6a6efb6129b89886e459f
--- src/summaryview.h
+++ src/summaryview.h
@@ -273,9 +273,6 @@ void summary_msgs_lock		  (SummaryView		*summaryview);
 void summary_msgs_unlock	  (SummaryView		*summaryview);
 void summary_mark_all_read	  (SummaryView		*summaryview, gboolean ask_if_needed);
 void summary_mark_all_unread	  (SummaryView		*summaryview, gboolean ask_if_needed);
-void summary_mark_as_spam	  (SummaryView 		*summaryview,
-				   guint 		 action,
-				   GtkWidget 		*widget);
 void summary_ignore_thread	  (SummaryView 		*summaryview);
 void summary_unignore_thread	  (SummaryView 		*summaryview);
 void summary_watch_thread	  (SummaryView 		*summaryview);
blob - f943402ebe3a902ef816cc6429cb7213ea3035fa
blob + 989a26ab231879a8a5a74b3dc97fe1e99369da9f
--- src/toolbar.c
+++ src/toolbar.c
@@ -94,9 +94,6 @@ static void activate_compose_button 		(Toolbar	*toolba
 static void toolbar_reply			(gpointer 	 data,
 						 guint		 action);
 
-static void toolbar_learn			(gpointer 	 data,
-						 guint		 action);
-
 static void toolbar_delete_dup		(gpointer 	 data,
 						 guint		 action);
 
@@ -113,9 +110,6 @@ static void toolbar_delete_dup_cb   		(GtkWidget   	*w
 static void toolbar_compose_cb			(GtkWidget	*widget,
 					    	 gpointer	 data);
 
-static void toolbar_learn_cb			(GtkWidget	*widget,
-					    	 gpointer	 data);
-
 static void toolbar_reply_cb		   	(GtkWidget	*widget,
 					    	 gpointer	 data);
 
@@ -242,7 +236,6 @@ struct {
 	{ "A_RUN_PROCESSING",	N_("Run folder processing rules")          },
 
 	{ "A_PRINT",	     	N_("Print")                                },
-	{ "A_LEARN_SPAM",       N_("Learn Spam or Ham")                    },
 	{ "A_GO_FOLDERS",   	N_("Open folder/Go to folder list")        },
 	{ "A_PREFERENCES",      N_("Preferences")                          },
 
@@ -367,7 +360,7 @@ GList *toolbar_get_action_items(ToolbarType source)
 					A_MARK,          A_UNMARK,        A_LOCK,          A_UNLOCK,
 					A_ALL_READ,      A_ALL_UNREAD,    A_READ,          A_UNREAD,
 					A_RUN_PROCESSING,
-					A_PRINT,         A_ADDRBOOK,      A_LEARN_SPAM,    A_GO_FOLDERS,
+					A_PRINT,         A_ADDRBOOK, A_GO_FOLDERS,
 					A_CANCEL_INC,    A_CANCEL_SEND,   A_CANCEL_ALL,    A_PREFERENCES };
 
 		for (i = 0; i < sizeof main_items / sizeof main_items[0]; i++)  {
@@ -391,7 +384,7 @@ GList *toolbar_get_action_items(ToolbarType source)
 					A_COMPOSE_EMAIL, A_REPLY_MESSAGE, A_REPLY_SENDER,
 					A_REPLY_ALL,     A_REPLY_ML,      A_FORWARD,
 					A_TRASH,         A_DELETE_REAL,   A_GOTO_PREV,      A_GOTO_NEXT,
-					A_ADDRBOOK,      A_LEARN_SPAM,    A_CLOSE };
+					A_ADDRBOOK, A_CLOSE };
 
 		for (i = 0; i < sizeof msgv_items / sizeof msgv_items[0]; i++)
 			items = g_list_append(items, gettext(toolbar_text[msgv_items[i]].descr));
@@ -476,7 +469,6 @@ const gchar *toolbar_get_short_text(int action) {
 	case A_RECEIVE_CUR: 	return _("Get");
 	case A_SEND_QUEUED: 	return _("Send");
 	case A_COMPOSE_EMAIL: 	return C_("Toolbar", "Write");
-	case A_COMPOSE_NEWS: 	return C_("Toolbar", "Write");
 	case A_REPLY_MESSAGE: 	return _("Reply");
 	case A_REPLY_SENDER: 	return C_("Toolbar", "Sender");
 	case A_REPLY_ALL: 		return _("All");
@@ -503,7 +495,6 @@ const gchar *toolbar_get_short_text(int action) {
 	case A_RUN_PROCESSING:	return _("Run proc. rules");
 
 	case A_PRINT:	 		return _("Print");
-	case A_LEARN_SPAM: 		return _("Spam");
 	case A_GO_FOLDERS: 		return _("Folders");
 	case A_PREFERENCES:		return _("Preferences");
 
@@ -535,7 +526,6 @@ gint toolbar_get_icon(int action) {
 	case A_RECEIVE_CUR: 	return STOCK_PIXMAP_MAIL_RECEIVE;
 	case A_SEND_QUEUED: 	return STOCK_PIXMAP_MAIL_SEND_QUEUE;
 	case A_COMPOSE_EMAIL: 	return STOCK_PIXMAP_MAIL_COMPOSE;
-	case A_COMPOSE_NEWS: 	return STOCK_PIXMAP_NEWS_COMPOSE;
 	case A_REPLY_MESSAGE: 	return STOCK_PIXMAP_MAIL_REPLY;
 	case A_REPLY_SENDER: 	return STOCK_PIXMAP_MAIL_REPLY_TO_AUTHOR;
 	case A_REPLY_ALL: 		return STOCK_PIXMAP_MAIL_REPLY_TO_ALL;
@@ -562,7 +552,6 @@ gint toolbar_get_icon(int action) {
 	case A_RUN_PROCESSING:	return STOCK_PIXMAP_DIR_OPEN;
 
 	case A_PRINT:	 		return STOCK_PIXMAP_PRINTER_BTN;
-	case A_LEARN_SPAM: 		return STOCK_PIXMAP_SPAM_BTN;
 	case A_GO_FOLDERS: 		return STOCK_PIXMAP_GO_FOLDERS;
 	case A_PREFERENCES:		return STOCK_PIXMAP_PREFERENCES;
 
@@ -641,7 +630,6 @@ void toolbar_set_default(ToolbarType source)
 		{ A_FORWARD},
 		{ A_SEPARATOR},
 		{ A_TRASH},
-		{ A_LEARN_SPAM},
 		{ A_SEPARATOR},
 		{ A_GOTO_NEXT},
 		{ N_ACTION_VAL}
@@ -665,7 +653,6 @@ void toolbar_set_default(ToolbarType source)
 		{ A_FORWARD},
 		{ A_SEPARATOR},
 		{ A_TRASH},
-		{ A_LEARN_SPAM},
 		{ A_GOTO_NEXT},
 		{ N_ACTION_VAL}
 	};
@@ -930,44 +917,6 @@ void toolbar_set_compose_button(Toolbar            *to
 					compose_btn_type);
 }
 
-static void activate_learn_button (Toolbar           *toolbar,
-				     ToolbarStyle      style,
-				     LearnButtonType type)
-{
-	if ((!toolbar->learn_spam_btn))
-		return;
-
-	if (type == LEARN_SPAM) {
-		gtk_tool_button_set_icon_widget(
-			GTK_TOOL_BUTTON(toolbar->learn_spam_btn),
-			toolbar->learn_spam_icon);
-		gtk_tool_button_set_label(
-			GTK_TOOL_BUTTON(toolbar->learn_spam_btn),
-			_("Spam"));
-		CLAWS_SET_TOOL_ITEM_TIP(GTK_TOOL_ITEM(toolbar->learn_spam_btn), _("Learn spam"));
-		gtk_widget_show(toolbar->learn_spam_icon);
-	} else {
-		gtk_tool_button_set_icon_widget(
-			GTK_TOOL_BUTTON(toolbar->learn_spam_btn),
-			toolbar->learn_ham_icon);
-		gtk_tool_button_set_label(
-			GTK_TOOL_BUTTON(toolbar->learn_spam_btn),
-			_("Ham"));
-		CLAWS_SET_TOOL_ITEM_TIP(GTK_TOOL_ITEM(toolbar->learn_spam_btn), _("Learn ham"));
-		gtk_widget_show(toolbar->learn_ham_icon);
-	}
-	toolbar->learn_btn_type = type;
-}
-
-void toolbar_set_learn_button(Toolbar            *toolbar,
-				LearnButtonType  learn_btn_type)
-{
-	if (toolbar->learn_btn_type != learn_btn_type)
-		activate_learn_button(toolbar,
-					prefs_common.toolbar_style,
-					learn_btn_type);
-}
-
 void toolbar_toggle(guint action, gpointer data)
 {
 	MainWindow *mainwin = (MainWindow*)data;
@@ -1238,63 +1187,6 @@ static void toolbar_compose_cb(GtkWidget *widget, gpoi
 	}
 }
 
-static void toolbar_learn(gpointer data, guint as_spam)
-{
-	ToolbarItem *toolbar_item = (ToolbarItem*)data;
-	MainWindow *mainwin;
-	MessageView *msgview;
-
-	cm_return_if_fail(toolbar_item != NULL);
-
-	switch (toolbar_item->type) {
-	case TOOLBAR_MAIN:
-		mainwin = (MainWindow*)toolbar_item->parent;
-		if (as_spam)
-			mainwindow_learn(mainwin, TRUE);
-		else
-			mainwindow_learn(mainwin, FALSE);
-		break;
-	case TOOLBAR_MSGVIEW:
-		msgview = (MessageView*)toolbar_item->parent;
-		if (as_spam)
-			messageview_learn(msgview, TRUE);
-		else
-			messageview_learn(msgview, FALSE);
-		break;
-	default:
-		debug_print("toolbar event not supported\n");
-	}
-}
-
-static void toolbar_learn_cb(GtkWidget *widget, gpointer data)
-{
-	ToolbarItem *toolbar_item = (ToolbarItem*)data;
-	MainWindow *mainwin;
-	MessageView *msgview;
-
-	cm_return_if_fail(toolbar_item != NULL);
-
-	switch (toolbar_item->type) {
-	case TOOLBAR_MAIN:
-		mainwin = (MainWindow*)toolbar_item->parent;
-		if (mainwin->toolbar->learn_btn_type == LEARN_SPAM)
-			mainwindow_learn(mainwin, TRUE);
-		else
-			mainwindow_learn(mainwin, FALSE);
-		break;
-	case TOOLBAR_MSGVIEW:
-		msgview = (MessageView*)toolbar_item->parent;
-		if (msgview->toolbar->learn_btn_type == LEARN_SPAM)
-			messageview_learn(msgview, TRUE);
-		else
-			messageview_learn(msgview, FALSE);
-		break;
-	default:
-		debug_print("toolbar event not supported\n");
-	}
-}
-
-
 /*
  * Reply Message
  */
@@ -1983,7 +1875,6 @@ static void toolbar_buttons_cb(GtkWidget   *widget,
 		{ A_RECEIVE_CUR,		toolbar_inc_cb				},
 		{ A_SEND_QUEUED,		toolbar_send_queued_cb		},
 		{ A_COMPOSE_EMAIL,		toolbar_compose_cb			},
-		{ A_COMPOSE_NEWS,		toolbar_compose_cb			},
 		{ A_REPLY_MESSAGE,		toolbar_reply_cb			},
 		{ A_REPLY_SENDER,		toolbar_reply_to_sender_cb	},
 		{ A_REPLY_ALL,			toolbar_reply_to_all_cb		},
@@ -2006,7 +1897,6 @@ static void toolbar_buttons_cb(GtkWidget   *widget,
 		{ A_UNREAD,				toolbar_unread_cb			},
 		{ A_RUN_PROCESSING,		toolbar_run_processing_cb	},
 		{ A_PRINT,				toolbar_print_cb			},
-		{ A_LEARN_SPAM,			toolbar_learn_cb			},
 		{ A_DELETE_DUP,			toolbar_delete_dup_cb		},
 		{ A_GO_FOLDERS,			toolbar_go_folders_cb		},
 
@@ -2116,15 +2006,6 @@ static void toolbar_delete_dup_menu_cb(GtkWidget *widg
 	toolbar_delete_dup(toolbar_item, GPOINTER_TO_INT(int_value));
 }
 
-static void toolbar_learn_menu_cb(GtkWidget *widget, gpointer data)
-{
-	gpointer int_value = g_object_get_data(G_OBJECT(widget), "int-value");
-	ToolbarItem *toolbar_item = (ToolbarItem *)data;
-
-	toolbar_learn(toolbar_item, GPOINTER_TO_INT(int_value));
-}
-
-
 /**
  * Create a new toolbar with specified type
  * if a callback list is passed it will be used before the
@@ -2139,7 +2020,6 @@ Toolbar *toolbar_create(ToolbarType 	 type,
 	GtkWidget *toolbar;
 	GtkWidget *icon_wid = NULL;
 	GtkWidget *icon_news;
-	GtkWidget *icon_ham;
 	GtkWidget *item;
 	ToolbarClawsActions *action_item;
 	GSList *cur;
@@ -2218,28 +2098,7 @@ Toolbar *toolbar_create(ToolbarType 	 type,
 			toolbar_data->compose_mail_btn = item;
 			toolbar_data->compose_mail_icon = icon_wid;
 			g_object_ref_sink(toolbar_data->compose_mail_icon);
-
-			icon_news = stock_pixmap_widget(STOCK_PIXMAP_NEWS_COMPOSE);
-			toolbar_data->compose_news_icon = icon_news;
-			g_object_ref_sink(toolbar_data->compose_news_icon);
 			break;
-		case A_LEARN_SPAM:
-			TOOLBAR_MENUITEM(item,icon_wid,toolbar_item->text,
-				_("Spam"),
-				_("Learn as..."));
-			toolbar_data->learn_spam_btn = item;
-			toolbar_data->learn_spam_icon = icon_wid;
-			g_object_ref_sink(toolbar_data->learn_spam_icon);
-
-			icon_ham = stock_pixmap_widget(STOCK_PIXMAP_HAM_BTN);
-			toolbar_data->learn_ham_icon = icon_ham;
-			g_object_ref_sink(toolbar_data->learn_ham_icon);
-
-			menu = gtk_menu_new();
-			ADD_MENU_ITEM(_("Learn as _Spam"), toolbar_learn_menu_cb, TRUE);
-			ADD_MENU_ITEM(_("Learn as _Ham"), toolbar_learn_menu_cb, FALSE);
-			gtk_menu_tool_button_set_menu(GTK_MENU_TOOL_BUTTON(toolbar_data->learn_spam_btn), menu);
-			break;
 		case A_DELETE_DUP:
 			TOOLBAR_MENUITEM(item,icon_wid,toolbar_item->text,
 				_("Delete duplicates"),
@@ -2429,9 +2288,6 @@ Toolbar *toolbar_create(ToolbarType 	 type,
 					prefs_common.toolbar_style,
 					toolbar_data->compose_btn_type);
 	}
-	if (type != TOOLBAR_COMPOSE)
-		activate_learn_button(toolbar_data, prefs_common.toolbar_style,
-				LEARN_SPAM);
 
 	gtk_container_add(GTK_CONTAINER(container), toolbar);
 	gtk_container_set_border_width(GTK_CONTAINER(container), 0);
@@ -2449,9 +2305,6 @@ Toolbar *toolbar_create(ToolbarType 	 type,
 void toolbar_destroy(Toolbar * toolbar)
 {
 	UNREF_ICON(compose_mail_icon);
-	UNREF_ICON(compose_news_icon);
-	UNREF_ICON(learn_spam_icon);
-	UNREF_ICON(learn_ham_icon);
 	TOOLBAR_DESTROY_ITEMS(toolbar->item_list);
 	TOOLBAR_DESTROY_ACTIONS(toolbar->action_list);
 }
@@ -2617,10 +2470,6 @@ do { \
 		SET_WIDGET_COND(toolbar->exec_btn,
 			M_DELAY_EXEC);
 
-	if (toolbar->learn_spam_btn)
-		SET_WIDGET_COND(toolbar->learn_spam_btn,
-			M_TARGET_EXIST, M_CAN_LEARN_SPAM, M_SUMMARY_ISLIST);
-
 	if (toolbar->cancel_inc_btn)
 		SET_WIDGET_COND(toolbar->cancel_inc_btn,
 				M_INC_ACTIVE);
@@ -2733,7 +2582,6 @@ static void toolbar_init(Toolbar * toolbar)
 	toolbar->send_btn          = NULL;
 	toolbar->compose_mail_btn  = NULL;
 	toolbar->compose_mail_icon = NULL;
-	toolbar->compose_news_icon = NULL;
 	toolbar->reply_btn         = NULL;
 	toolbar->replysender_btn   = NULL;
 	toolbar->replyall_btn      = NULL;
@@ -2746,9 +2594,6 @@ static void toolbar_init(Toolbar * toolbar)
 	toolbar->next_btn          = NULL;
 	toolbar->exec_btn          = NULL;
 	toolbar->separator         = NULL;
-	toolbar->learn_spam_btn    = NULL;
-	toolbar->learn_spam_icon   = NULL;
-	toolbar->learn_ham_icon    = NULL;
 	toolbar->cancel_inc_btn    = NULL;
 	toolbar->cancel_send_btn   = NULL;
 	toolbar->cancel_all_btn    = NULL;
@@ -2929,8 +2774,3 @@ void compose_mail_cb(gpointer data, guint action, GtkW
 		return;
 	}
 }
-
-void compose_news_cb(gpointer data, guint action, GtkWidget *widget)
-{
-	fprintf(stderr, "TODO(otl): remove this\n");
-}
blob - 03d8c28e0f29680e7850484cd482285f2c90f3d5
blob + f00940c2a9c4d5bec263e830f73993cd39898aa5
--- src/toolbar.h
+++ src/toolbar.h
@@ -41,12 +41,6 @@ typedef enum
  	COMPOSEBUTTON_NEWS
 } ComposeButtonType;
 
-typedef enum
-{
-	LEARN_SPAM,
- 	LEARN_HAM
-} LearnButtonType;
-
 struct _Toolbar {
 	GtkWidget *toolbar;
 
@@ -57,7 +51,6 @@ struct _Toolbar {
 
 	GtkWidget *compose_mail_btn;
 	GtkWidget *compose_mail_icon;
-	GtkWidget *compose_news_icon;
 
 	GtkWidget *reply_btn;
 	GtkWidget *replysender_btn;
@@ -74,16 +67,12 @@ struct _Toolbar {
 	GtkWidget *exec_btn;
 
 	GtkWidget *separator;
-	GtkWidget *learn_spam_btn;
-	GtkWidget *learn_spam_icon;
-	GtkWidget *learn_ham_icon;
 
 	GtkWidget *cancel_inc_btn;
 	GtkWidget *cancel_send_btn;
 	GtkWidget *cancel_all_btn;
 
 	ComposeButtonType compose_btn_type;
-	LearnButtonType learn_btn_type;
 
 	/* compose buttons */
 	GtkWidget *sendl_btn;
@@ -154,7 +143,6 @@ enum {
 	A_RECEIVE_CUR,
 	A_SEND_QUEUED,
 	A_COMPOSE_EMAIL,
-	A_COMPOSE_NEWS,
 	A_REPLY_MESSAGE,
 	A_REPLY_SENDER,
 	A_REPLY_ALL,
@@ -181,7 +169,6 @@ enum {
 	A_RUN_PROCESSING,
 
 	A_PRINT,
-	A_LEARN_SPAM,
 	A_GO_FOLDERS,
 	A_PREFERENCES,
 
@@ -267,8 +254,6 @@ void	toolbar_set_style		(GtkWidget	*toolbar_wid,
 void 	toolbar_destroy			(Toolbar	*toolbar);
 void 	toolbar_item_destroy		(ToolbarItem	*toolbar_item);
 
-void toolbar_set_learn_button		(Toolbar	*toolbar,
-					 LearnButtonType  learn_btn_type);
 const gchar *toolbar_get_short_text	(int action);
 int	     toolbar_get_icon		(int action);
 gboolean toolbar_check_action_btns	(ToolbarType	type);