aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mail/ChangeLog9
-rw-r--r--mail/folder-browser.c76
2 files changed, 47 insertions, 38 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
index e9c87baaae..a95eb87b4f 100644
--- a/mail/ChangeLog
+++ b/mail/ChangeLog
@@ -1,7 +1,12 @@
+2000-11-06 Jeffrey Stedfast <fejj@helixcode.com>
+
+ * folder-browser.c (on_right_click): Move filter stuff into a
+ submenu of the popup menu.
+
2000-11-06 Jesse Pavel <jpavel@helixcode.com>
- * mail-display.c: used Camel to parse the full address before passing
- the email address to my iTip control.
+ * mail-display.c: used Camel to parse the full address before
+ passing the email address to my iTip control.
2000-11-06 Dan Winship <danw@helixcode.com>
diff --git a/mail/folder-browser.c b/mail/folder-browser.c
index 8727591cb6..e684953086 100644
--- a/mail/folder-browser.c
+++ b/mail/folder-browser.c
@@ -478,42 +478,45 @@ on_right_click (ETableScrolled *table, gint row, gint col, GdkEvent *event, Fold
int enable_mask = 0;
int last_item, i;
char *mailing_list_name;
+ EPopupMenu filter_menu[] = {
+ { _("VFolder on Subject"), NULL, GTK_SIGNAL_FUNC (vfolder_subject), NULL, 2 },
+ { _("VFolder on Sender"), NULL, GTK_SIGNAL_FUNC (vfolder_sender), NULL, 2 },
+ { _("VFolder on Recipients"), NULL, GTK_SIGNAL_FUNC (vfolder_recipient), NULL, 2 },
+ { "", NULL, GTK_SIGNAL_FUNC (NULL), NULL, 0 },
+ { _("Filter on Subject"), NULL, GTK_SIGNAL_FUNC (filter_subject), NULL, 2 },
+ { _("Filter on Sender"), NULL, GTK_SIGNAL_FUNC (filter_sender), NULL, 2 },
+ { _("Filter on Recipients"), NULL, GTK_SIGNAL_FUNC (filter_recipient), NULL, 2 },
+ { _("Filter on Mailing List"), NULL, GTK_SIGNAL_FUNC (filter_mlist), NULL, 66 },
+ { NULL, NULL, NULL, NULL, 0 }
+ };
EPopupMenu menu[] = {
- { _("Open"), NULL, GTK_SIGNAL_FUNC (view_msg), 0 },
- { _("Edit"), NULL, GTK_SIGNAL_FUNC (edit_msg), 1 },
- { _("Print"), NULL, GTK_SIGNAL_FUNC (print_msg), 0 },
- { "", NULL, GTK_SIGNAL_FUNC (NULL), 0 },
- { _("Reply to Sender"), NULL, GTK_SIGNAL_FUNC (reply_to_sender), 0 },
- { _("Reply to All"), NULL, GTK_SIGNAL_FUNC (reply_to_all), 0 },
- { _("Forward"), NULL, GTK_SIGNAL_FUNC (forward_msg), 0 },
- /*{ _("Forward as Attachment"), NULL, GTK_SIGNAL_FUNC (forward_msg), 0 },*/
- { "", NULL, GTK_SIGNAL_FUNC (NULL), 0 },
- { _("Mark as Read"), NULL, GTK_SIGNAL_FUNC (mark_as_seen), 4 },
- { _("Mark as Unread"), NULL, GTK_SIGNAL_FUNC (mark_as_unseen), 8 },
- { "", NULL, GTK_SIGNAL_FUNC (NULL), 0 },
- { _("Move to Folder..."), NULL, GTK_SIGNAL_FUNC (move_msg), 0 },
- { _("Copy to Folder..."), NULL, GTK_SIGNAL_FUNC (copy_msg), 0 },
- { _("Delete"), NULL, GTK_SIGNAL_FUNC (delete_msg), 16 },
- { _("Undelete"), NULL, GTK_SIGNAL_FUNC (undelete_msg), 32 },
- { "", NULL, GTK_SIGNAL_FUNC (NULL), 0 },
- /*{ _("Add Sender to Address Book"), NULL, GTK_SIGNAL_FUNC (addrbook_sender), 0 },
- { "", NULL, GTK_SIGNAL_FUNC (NULL), 0 },*/
- { _("Apply Filters"), NULL, GTK_SIGNAL_FUNC (apply_filters), 0 },
- { "", NULL, GTK_SIGNAL_FUNC (NULL), 0 },
- { _("VFolder on Subject"), NULL, GTK_SIGNAL_FUNC (vfolder_subject), 2 },
- { _("VFolder on Sender"), NULL, GTK_SIGNAL_FUNC (vfolder_sender), 2 },
- { _("VFolder on Recipients"), NULL, GTK_SIGNAL_FUNC (vfolder_recipient), 2 },
- { "", NULL, GTK_SIGNAL_FUNC (NULL), 0 },
- { _("Filter on Subject"), NULL, GTK_SIGNAL_FUNC (filter_subject), 2 },
- { _("Filter on Sender"), NULL, GTK_SIGNAL_FUNC (filter_sender), 2 },
- { _("Filter on Recipients"), NULL, GTK_SIGNAL_FUNC (filter_recipient), 2 },
- { _("Filter on Mailing List"), NULL, GTK_SIGNAL_FUNC (filter_mlist), 66 },
- { NULL, NULL, NULL, 0 }
+ { _("Open"), NULL, GTK_SIGNAL_FUNC (view_msg), NULL, 0 },
+ { _("Edit"), NULL, GTK_SIGNAL_FUNC (edit_msg), NULL, 1 },
+ { _("Print"), NULL, GTK_SIGNAL_FUNC (print_msg), NULL, 0 },
+ { "", NULL, GTK_SIGNAL_FUNC (NULL), NULL, 0 },
+ { _("Reply to Sender"), NULL, GTK_SIGNAL_FUNC (reply_to_sender), NULL, 0 },
+ { _("Reply to All"), NULL, GTK_SIGNAL_FUNC (reply_to_all), NULL, 0 },
+ { _("Forward"), NULL, GTK_SIGNAL_FUNC (forward_msg), NULL, 0 },
+ /*{ _("Forward as Attachment"), NULL, GTK_SIGNAL_FUNC (forward_msg), NULL, 0 },*/
+ { "", NULL, GTK_SIGNAL_FUNC (NULL), NULL, 0 },
+ { _("Mark as Read"), NULL, GTK_SIGNAL_FUNC (mark_as_seen), NULL, 4 },
+ { _("Mark as Unread"), NULL, GTK_SIGNAL_FUNC (mark_as_unseen), NULL, 8 },
+ { "", NULL, GTK_SIGNAL_FUNC (NULL), NULL, 0 },
+ { _("Move to Folder..."), NULL, GTK_SIGNAL_FUNC (move_msg), NULL, 0 },
+ { _("Copy to Folder..."), NULL, GTK_SIGNAL_FUNC (copy_msg), NULL, 0 },
+ { _("Delete"), NULL, GTK_SIGNAL_FUNC (delete_msg), NULL, 16 },
+ { _("Undelete"), NULL, GTK_SIGNAL_FUNC (undelete_msg), NULL, 32 },
+ { "", NULL, GTK_SIGNAL_FUNC (NULL), NULL, 0 },
+ /*{ _("Add Sender to Address Book"), NULL, GTK_SIGNAL_FUNC (addrbook_sender), NULL, 0 },
+ { "", NULL, GTK_SIGNAL_FUNC (NULL), NULL, 0 },*/
+ { _("Apply Filters"), NULL, GTK_SIGNAL_FUNC (apply_filters), NULL, 0 },
+ { "", NULL, GTK_SIGNAL_FUNC (NULL), NULL, 0 },
+ { _("Create Rule From Message"), NULL, GTK_SIGNAL_FUNC (NULL), filter_menu, 2 },
+ { NULL, NULL, NULL, NULL, 0 }
};
/* Evil Hack. */
-
- last_item = (sizeof (menu) / sizeof (*menu)) - 2;
+ last_item = (sizeof (filter_menu) / sizeof (*filter_menu)) - 2;
if (fb->folder != drafts_folder)
enable_mask |= 1;
@@ -563,12 +566,13 @@ on_right_click (ETableScrolled *table, gint row, gint col, GdkEvent *event, Fold
enable_mask |= 32;
}
+ /* generate the "Filter on Mailing List menu item name */
if (mailing_list_name == NULL) {
enable_mask |= 64;
- menu[last_item].name = g_strdup (_("Filter on Mailing List"));
+ filter_menu[last_item].name = g_strdup (_("Filter on Mailing List"));
} else {
- menu[last_item].name = g_strdup_printf (_("Filter on Mailing List (%s)"),
- mailing_list_name);
+ filter_menu[last_item].name = g_strdup_printf (_("Filter on Mailing List (%s)"),
+ mailing_list_name);
}
/* free uids */
@@ -578,7 +582,7 @@ on_right_click (ETableScrolled *table, gint row, gint col, GdkEvent *event, Fold
e_popup_menu_run (menu, (GdkEventButton *)event, enable_mask, 0, fb);
- g_free (menu[last_item].name);
+ g_free (filter_menu[last_item].name);
return TRUE;
}