diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-05-21 06:33:11 +0800 |
---|---|---|
committer | Matthew Barnes <mbarnes@redhat.com> | 2011-05-21 07:05:55 +0800 |
commit | 9aa668aa6bf612673ad7e760b06fc62350be041e (patch) | |
tree | 0faa8c08a5452393069fc3fc716b1458ad9cad5a /modules/mail/e-mail-config-reader.c | |
parent | 7333f12087eb0b0271ff272c6643909a7803510b (diff) | |
download | gsoc2013-evolution-9aa668aa6bf612673ad7e760b06fc62350be041e.tar gsoc2013-evolution-9aa668aa6bf612673ad7e760b06fc62350be041e.tar.gz gsoc2013-evolution-9aa668aa6bf612673ad7e760b06fc62350be041e.tar.bz2 gsoc2013-evolution-9aa668aa6bf612673ad7e760b06fc62350be041e.tar.lz gsoc2013-evolution-9aa668aa6bf612673ad7e760b06fc62350be041e.tar.xz gsoc2013-evolution-9aa668aa6bf612673ad7e760b06fc62350be041e.tar.zst gsoc2013-evolution-9aa668aa6bf612673ad7e760b06fc62350be041e.zip |
Bug 650587 - Hide Search Folder actions when Search Folders are disabled
Add an action group for Search Folders to EMailReader. The action
group's visibility is bound to the "mail-enable-search-folders" setting,
so that menu items related to Search Folders are hidden when Search
Folders are disabled in GConf.
Affected menu items are:
Edit -> Search Folders
Message -> Create Rule -> Search Folder from Subject...
Message -> Create Rule -> Search Folder from Sender...
Message -> Create Rule -> Search Folder from Recipients...
Message -> Create Rule -> Search Folder from Mailing List...
Search -> Create Search Folder From Search...
Diffstat (limited to 'modules/mail/e-mail-config-reader.c')
-rw-r--r-- | modules/mail/e-mail-config-reader.c | 30 |
1 files changed, 26 insertions, 4 deletions
diff --git a/modules/mail/e-mail-config-reader.c b/modules/mail/e-mail-config-reader.c index a13f0bf936..5aea86b7b1 100644 --- a/modules/mail/e-mail-config-reader.c +++ b/modules/mail/e-mail-config-reader.c @@ -24,15 +24,14 @@ static gpointer parent_class; -static void -mail_config_reader_constructed (GObject *object) +static gboolean +mail_config_reader_idle_cb (EExtension *extension) { - EExtension *extension; EExtensible *extensible; + GtkActionGroup *action_group; EShellSettings *shell_settings; EShell *shell; - extension = E_EXTENSION (object); extensible = e_extension_get_extensible (extension); shell = e_shell_get_default (); @@ -48,6 +47,29 @@ mail_config_reader_constructed (GObject *object) extensible, "reply-style", G_BINDING_SYNC_CREATE); + action_group = e_mail_reader_get_action_group ( + E_MAIL_READER (extensible), + E_MAIL_READER_ACTION_GROUP_SEARCH_FOLDERS); + + g_object_bind_property ( + shell_settings, "mail-enable-search-folders", + action_group, "visible", + G_BINDING_SYNC_CREATE); + + return FALSE; +} + +static void +mail_config_reader_constructed (GObject *object) +{ + /* Bind properties to settings from an idle callback so the + * EMailReader interface has a chance to be initialized first. */ + g_idle_add_full ( + G_PRIORITY_DEFAULT_IDLE, + (GSourceFunc) mail_config_reader_idle_cb, + g_object_ref (object), + (GDestroyNotify) g_object_unref); + /* Chain up to parent's constructed() method. */ G_OBJECT_CLASS (parent_class)->constructed (object); } |