commit f9285c5a86c512788f5ee2a5f916013d313ca303 from: Oliver Lowe date: Sun Aug 31 05:33:20 2025 UTC Delete dead ham/spam, news buttons 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);