aboutsummaryrefslogtreecommitdiffstats
path: root/modules
diff options
context:
space:
mode:
authorMatthew Barnes <mbarnes@redhat.com>2010-10-03 21:39:10 +0800
committerMatthew Barnes <mbarnes@redhat.com>2010-10-03 21:39:10 +0800
commita69cbcd79aff01585620a12b378686d86c219ce9 (patch)
treefc677e4db7792e655c32ba16c2da44ab334ee2ee /modules
parentba0032efa85d65135926790761bdcf04a2ac849e (diff)
downloadgsoc2013-evolution-a69cbcd79aff01585620a12b378686d86c219ce9.tar
gsoc2013-evolution-a69cbcd79aff01585620a12b378686d86c219ce9.tar.gz
gsoc2013-evolution-a69cbcd79aff01585620a12b378686d86c219ce9.tar.bz2
gsoc2013-evolution-a69cbcd79aff01585620a12b378686d86c219ce9.tar.lz
gsoc2013-evolution-a69cbcd79aff01585620a12b378686d86c219ce9.tar.xz
gsoc2013-evolution-a69cbcd79aff01585620a12b378686d86c219ce9.tar.zst
gsoc2013-evolution-a69cbcd79aff01585620a12b378686d86c219ce9.zip
Bug 510020 - Add "Manage Subscriptions" to store context menus
Diffstat (limited to 'modules')
-rw-r--r--modules/mail/e-mail-shell-view-actions.c20
-rw-r--r--modules/mail/e-mail-shell-view-actions.h2
-rw-r--r--modules/mail/e-mail-shell-view.c7
3 files changed, 28 insertions, 1 deletions
diff --git a/modules/mail/e-mail-shell-view-actions.c b/modules/mail/e-mail-shell-view-actions.c
index b521dc3712..4b4a1d8024 100644
--- a/modules/mail/e-mail-shell-view-actions.c
+++ b/modules/mail/e-mail-shell-view-actions.c
@@ -1029,6 +1029,20 @@ static GtkActionEntry mail_entries[] = {
NULL, /* XXX Add a tooltip! */
G_CALLBACK (action_mail_label_none_cb) },
+ /* This is the same as "mail-tools-subscriptions" but only
+ * appears in the sidebar context menu when right-clicking
+ * on a store that supports folder subscriptions. No need
+ * for a special callback because Folder->Subscriptions...
+ * already tries to open the "Folder Subscriptions" dialog
+ * according to the highlighted item in the sidebar, which
+ * is exactly the behavior we want here. */
+ { "mail-manage-subscriptions",
+ NULL,
+ N_("_Manage Subscriptions"),
+ NULL,
+ N_("Subscribe or unsubscribe to folders on remote servers"),
+ G_CALLBACK (action_mail_tools_subscriptions_cb) },
+
{ "mail-smart-backward",
NULL,
NULL, /* No menu item; key press only */
@@ -1153,7 +1167,11 @@ static EPopupActionEntry mail_popup_entries[] = {
{ "mail-popup-folder-unsubscribe",
NULL,
- "mail-folder-unsubscribe" }
+ "mail-folder-unsubscribe" },
+
+ { "mail-popup-manage-subscriptions",
+ NULL,
+ "mail-manage-subscriptions" }
};
static GtkToggleActionEntry mail_toggle_entries[] = {
diff --git a/modules/mail/e-mail-shell-view-actions.h b/modules/mail/e-mail-shell-view-actions.h
index 34f6e6c8f9..5eb015bd47 100644
--- a/modules/mail/e-mail-shell-view-actions.h
+++ b/modules/mail/e-mail-shell-view-actions.h
@@ -105,6 +105,8 @@
E_SHELL_WINDOW_ACTION ((window), "mail-label-none")
#define E_SHELL_WINDOW_ACTION_MAIL_LOAD_IMAGES(window) \
E_SHELL_WINDOW_ACTION ((window), "mail-load-images")
+#define E_SHELL_WINDOW_ACTION_MAIL_MANAGE_SUBSCRIPTIONS(window) \
+ E_SHELL_WINDOW_ACTION ((window), "mail-manage-subscriptions")
#define E_SHELL_WINDOW_ACTION_MAIL_MARK_IMPORTANT(window) \
E_SHELL_WINDOW_ACTION ((window), "mail-mark-important")
#define E_SHELL_WINDOW_ACTION_MAIL_MARK_JUNK(window) \
diff --git a/modules/mail/e-mail-shell-view.c b/modules/mail/e-mail-shell-view.c
index 0e9a66c2ad..6b6b530b90 100644
--- a/modules/mail/e-mail-shell-view.c
+++ b/modules/mail/e-mail-shell-view.c
@@ -843,6 +843,7 @@ mail_shell_view_update_actions (EShellView *shell_view)
gboolean folder_is_trash;
gboolean folder_has_unread_rec = FALSE;
gboolean folder_tree_and_message_list_agree = TRUE;
+ gboolean store_supports_subscriptions;
gboolean have_enabled_account;
/* Chain up to parent's update_actions() method. */
@@ -878,6 +879,8 @@ mail_shell_view_update_actions (EShellView *shell_view)
(state & E_MAIL_SIDEBAR_FOLDER_IS_STORE);
folder_is_trash =
(state & E_MAIL_SIDEBAR_FOLDER_IS_TRASH);
+ store_supports_subscriptions =
+ (state & E_MAIL_SIDEBAR_STORE_SUPPORTS_SUBSCRIPTIONS);
uri = em_folder_tree_get_selected_uri (folder_tree);
if (uri != NULL) {
@@ -985,6 +988,10 @@ mail_shell_view_update_actions (EShellView *shell_view)
sensitive = folder_has_unread_rec && !folder_is_store;
gtk_action_set_sensitive (action, sensitive);
+ action = ACTION (MAIL_MANAGE_SUBSCRIPTIONS);
+ sensitive = folder_is_store && store_supports_subscriptions;
+ gtk_action_set_sensitive (action, sensitive);
+
action = ACTION (MAIL_TOOLS_SUBSCRIPTIONS);
sensitive = have_enabled_account;
gtk_action_set_sensitive (action, sensitive);