diff options
-rw-r--r-- | mail/evolution-mail.schemas.in | 17 | ||||
-rw-r--r-- | mail/mail-config.ui | 24 | ||||
-rw-r--r-- | mail/mail-send-recv.c | 16 | ||||
-rw-r--r-- | modules/mail/e-mail-shell-settings.c | 4 | ||||
-rw-r--r-- | modules/mail/em-mailer-prefs.c | 12 |
5 files changed, 71 insertions, 2 deletions
diff --git a/mail/evolution-mail.schemas.in b/mail/evolution-mail.schemas.in index 4493c22f09..d0222a82e6 100644 --- a/mail/evolution-mail.schemas.in +++ b/mail/evolution-mail.schemas.in @@ -1571,6 +1571,23 @@ </schema> <schema> + <key>/schemas/apps/evolution/mail/send_recv_all_on_start</key> + <applyto>/apps/evolution/mail/send_recv_all_on_start</applyto> + <owner>evolution-mail</owner> + <type>bool</type> + <default>false</default> + <locale name="C"> + <short>Check for new messages in all active accounts</short> + <long> + Whether check for new messages in all active accounts regardless + of the account "Check for new messages every X minutes" option + when Evolution is started. This option is used only together + with 'send_recv_on_start' option. + </long> + </locale> + </schema> + + <schema> <key>/schemas/apps/evolution/mail/send_recv_height</key> <applyto>/apps/evolution/mail/send_recv_height</applyto> <owner>evolution-mail</owner> diff --git a/mail/mail-config.ui b/mail/mail-config.ui index 8677b95f15..bfa365ed9a 100644 --- a/mail/mail-config.ui +++ b/mail/mail-config.ui @@ -2468,6 +2468,30 @@ For example: "Work" or "Personal"</property> <property name="position">0</property> </packing> </child> + <child> + <object class="GtkHBox" id="start-up-hbox2"> + <property name="visible">True</property> + <property name="spacing">4</property> + <child> + <object class="GtkCheckButton" id="chkCheckMailInAllOnStart"> + <property name="label" translatable="yes">Check for new messa_ges in all active accounts</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> </object> </child> </object> diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c index deb38eb24a..fa0b9d2ec7 100644 --- a/mail/mail-send-recv.c +++ b/mail/mail-send-recv.c @@ -1195,20 +1195,32 @@ auto_online (EShell *shell) EIterator *iter; EAccountList *accounts; struct _auto_data *info; + gboolean can_update_all; if (!e_shell_get_online (shell)) return; + can_update_all = e_shell_settings_get_boolean (e_shell_get_shell_settings (shell), "mail-check-on-start") + && e_shell_settings_get_boolean (e_shell_get_shell_settings (shell), "mail-check-all-on-start"); + accounts = e_get_account_list (); for (iter = e_list_get_iterator ((EList *)accounts); e_iterator_is_valid (iter); e_iterator_next (iter)) { + EAccount *account = (EAccount *) e_iterator_get (iter); + + if (!account || !account->enabled) + continue; + info = g_object_get_data ( - G_OBJECT (e_iterator_get (iter)), + G_OBJECT (account), "mail-autoreceive"); - if (info && info->timeout_id) + if (info && (info->timeout_id || can_update_all)) auto_timeout (info); } + + if (iter) + g_object_unref (iter); } /* call to setup initial, and after changes are made to the config */ diff --git a/modules/mail/e-mail-shell-settings.c b/modules/mail/e-mail-shell-settings.c index d6e9aabbba..1b70289ded 100644 --- a/modules/mail/e-mail-shell-settings.c +++ b/modules/mail/e-mail-shell-settings.c @@ -113,6 +113,10 @@ e_mail_shell_settings_init (EShellBackend *shell_backend) "/apps/evolution/mail/send_recv_on_start"); e_shell_settings_install_property_for_key ( + "mail-check-all-on-start", + "/apps/evolution/mail/send_recv_all_on_start"); + + e_shell_settings_install_property_for_key ( "mail-citation-color", "/apps/evolution/mail/display/citation_colour"); diff --git a/modules/mail/em-mailer-prefs.c b/modules/mail/em-mailer-prefs.c index 1913f8e388..267195bfbb 100644 --- a/modules/mail/em-mailer-prefs.c +++ b/modules/mail/em-mailer-prefs.c @@ -839,6 +839,18 @@ em_mailer_prefs_construct (EMMailerPrefs *prefs, G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); + widget = e_builder_get_widget (prefs->builder, "chkCheckMailInAllOnStart"); + g_object_bind_property ( + shell_settings, "mail-check-all-on-start", + widget, "active", + G_BINDING_BIDIRECTIONAL | + G_BINDING_SYNC_CREATE); + g_object_bind_property ( + shell_settings, "mail-check-on-start", + widget, "sensitive", + G_BINDING_BIDIRECTIONAL | + G_BINDING_SYNC_CREATE); + /* Message Display */ widget = e_builder_get_widget (prefs->builder, "view-check"); |