diff options
author | Jason Leach <jleach@ximian.com> | 2001-07-24 03:14:53 +0800 |
---|---|---|
committer | Jacob Leach <jleach@src.gnome.org> | 2001-07-24 03:14:53 +0800 |
commit | b4f3f0c1028773d2f06a1a9311037a8cdccb84cf (patch) | |
tree | c823783a489a7aa9be46a345e13ed812403e2a82 /mail/folder-browser.c | |
parent | 05ec4697c84a948310556b88e451c9dfc663967e (diff) | |
download | gsoc2013-evolution-b4f3f0c1028773d2f06a1a9311037a8cdccb84cf.tar.gz gsoc2013-evolution-b4f3f0c1028773d2f06a1a9311037a8cdccb84cf.tar.zst gsoc2013-evolution-b4f3f0c1028773d2f06a1a9311037a8cdccb84cf.zip |
[Bug #5225: No UI way to mark as unimportant]
2001-07-23 Jason Leach <jleach@ximian.com>
[Bug #5225: No UI way to mark as unimportant]
* folder-browser.c (on_right_click): Do the necessary stuff to
show or hide the correct "Mark Important" or "Mark as Unimportant"
menu items depending on the status of messages that are selected.
* folder-browser-ui.c: Add the MarkAsUnimportant verb here.
* mail-callbacks.c (mark_as_unimportant): Simple function that's
the callback for these new menu items.
svn path=/trunk/; revision=11316
Diffstat (limited to 'mail/folder-browser.c')
-rw-r--r-- | mail/folder-browser.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/mail/folder-browser.c b/mail/folder-browser.c index 0d3d0545a9..7cc1071112 100644 --- a/mail/folder-browser.c +++ b/mail/folder-browser.c @@ -1223,6 +1223,8 @@ enum { CAN_UNDELETE = 32, IS_MAILING_LIST = 64, CAN_RESEND = 128, + CAN_MARK_IMPORTANT = 256, + CAN_MARK_UNIMPORTANT = 512 }; #define MLIST_VFOLDER (3) @@ -1287,7 +1289,9 @@ static EPopupMenu context_menu[] = { { N_("Mark as U_nread"), NULL, GTK_SIGNAL_FUNC (mark_as_unseen), NULL, CAN_MARK_UNREAD }, { N_("Mark as _Important"), NULL, - GTK_SIGNAL_FUNC (mark_as_important), NULL, 0 }, + GTK_SIGNAL_FUNC (mark_as_important), NULL, CAN_MARK_IMPORTANT }, + { N_("Mark as Unim_portant"), NULL, + GTK_SIGNAL_FUNC (mark_as_unimportant), NULL, CAN_MARK_UNIMPORTANT }, E_POPUP_SEPARATOR, @@ -1391,6 +1395,8 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event gboolean have_undeleted = FALSE; gboolean have_seen = FALSE; gboolean have_unseen = FALSE; + gboolean have_important = FALSE; + gboolean have_unimportant = FALSE; for (i = 0; i < uids->len; i++) { info = camel_folder_get_message_info (fb->folder, uids->pdata[i]); @@ -1406,6 +1412,11 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event have_deleted = TRUE; else have_undeleted = TRUE; + + if (info->flags & CAMEL_MESSAGE_FLAGGED) + have_important = TRUE; + else + have_unimportant = TRUE; camel_folder_free_message_info(fb->folder, info); @@ -1423,6 +1434,11 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event if (!have_deleted) enable_mask |= CAN_UNDELETE; + if (!have_unimportant) + enable_mask |= CAN_MARK_IMPORTANT; + if (!have_important) + enable_mask |= CAN_MARK_UNIMPORTANT; + /* * Hide items that wont get used. */ @@ -1438,6 +1454,12 @@ on_right_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent *event else hide_mask |= CAN_UNDELETE; } + if (!(have_important && have_unimportant)){ + if (have_important) + hide_mask |= CAN_MARK_IMPORTANT; + else + hide_mask |= CAN_MARK_UNIMPORTANT; + } } /* free uids */ |