diff options
author | Matthew Barnes <mbarnes@redhat.com> | 2011-08-15 22:18:30 +0800 |
---|---|---|
committer | Rodrigo Moya <rodrigo@gnome-db.org> | 2011-09-14 20:08:49 +0800 |
commit | d9bc9909ad8b97678a735175890493c444fa91be (patch) | |
tree | a0beb14e5316b1109096e3d50dac782123210989 /mail | |
parent | 4ee882ead076916e75757fe3ddde763a55096c27 (diff) | |
download | gsoc2013-evolution-d9bc9909ad8b97678a735175890493c444fa91be.tar gsoc2013-evolution-d9bc9909ad8b97678a735175890493c444fa91be.tar.gz gsoc2013-evolution-d9bc9909ad8b97678a735175890493c444fa91be.tar.bz2 gsoc2013-evolution-d9bc9909ad8b97678a735175890493c444fa91be.tar.lz gsoc2013-evolution-d9bc9909ad8b97678a735175890493c444fa91be.tar.xz gsoc2013-evolution-d9bc9909ad8b97678a735175890493c444fa91be.tar.zst gsoc2013-evolution-d9bc9909ad8b97678a735175890493c444fa91be.zip |
EMailSession: Configure settings when adding services.
Override CamelSession.add_service(). First chain up, then, if
initialization was successful, call camel_settings_load_from_url() on
the CamelSettings object in the new CamelService instance.
Note that eventually we'll load CamelSettings values from a key file
instead of from URL parameters. This is just a temporary measure.
Diffstat (limited to 'mail')
-rw-r--r-- | mail/e-mail-session.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/mail/e-mail-session.c b/mail/e-mail-session.c index 8a3072447a..6c96eca4be 100644 --- a/mail/e-mail-session.c +++ b/mail/e-mail-session.c @@ -782,6 +782,34 @@ mail_session_constructed (GObject *object) object, "junk-filter-name"); } +static CamelService * +mail_session_add_service (CamelSession *session, + const gchar *uid, + const gchar *url_string, + CamelProviderType type, + GError **error) +{ + CamelService *service; + + /* Chain up to parents add_service() method. */ + service = CAMEL_SESSION_CLASS (e_mail_session_parent_class)-> + add_service (session, uid, url_string, type, error); + + /* Initialize the CamelSettings object from CamelURL parameters. + * This is temporary; soon we'll read settings from key files. */ + + if (CAMEL_IS_SERVICE (service)) { + CamelSettings *settings; + CamelURL *url; + + settings = camel_service_get_settings (service); + url = camel_service_get_camel_url (service); + camel_settings_load_from_url (settings, url); + } + + return service; +} + static gchar * mail_session_get_password (CamelSession *session, CamelService *service, @@ -1112,6 +1140,7 @@ e_mail_session_class_init (EMailSessionClass *class) object_class->constructed = mail_session_constructed; session_class = CAMEL_SESSION_CLASS (class); + session_class->add_service = mail_session_add_service; session_class->get_password = mail_session_get_password; session_class->forget_password = mail_session_forget_password; session_class->alert_user = mail_session_alert_user; |