Reducing diff noise with the account-mgmt branch.
Trying to erode our dependency on EAccount as much as possible, or at
least isolate its usage, to make things easier for me on the branch.
These files are hopelessly out of date, and don't appear to be used for
anything anyway. The only sustainable way to provide language bindings
for Evolution is to generate them through gobject-introspection.
Use camel_session_list_services() instead of the internal store table.
The store table serves little purpose nowadays and could probably be
removed. I'll look into that later.
Not worth the pain of maintaining old cruft to make progress.
Breaks GW account migration from versions prior to 2.8 (circa 2006), but
you'd be better off starting from a clean slate anyway if you're jumping
that many releases.
References to EMailSession are leaking like crazy, so the module's
finalize() method never gets called, and we never kill our spamd.
Until I can track down all the reference leaks, kill the spamd process
in response to a "EShell::prepare-for-quit" signal instead of from the
module's finalize() method. (Maybe that's a better long-term solution
anyway?)
We now have a proper junk mail filtering API. All junk filtering
extensions must subclass EMailJunkFilter for user preferences and
availability testing, and implement the CamelJunkFilter interface
for the actual junk filtering and learning operations.
The bogofilter module should be feature-equivalent to its former
EPlugin. The spamassassin module is far more complex. It's nearly
feature-equivalent to its former EPlugin, but I ditched the spamd
respawning code since it seemed unnecessary for a mail client to
have to deal with. If there's a huge outcry from users about it
I'll reluctantly put it back, but I don't expect one.
This gets us a step closer to killing off EConfig, and eventually
the EPlugin framework itself.
We track Evolution's online state separately from network availability
these days. I think there was still logic here from when we set online
state directly. Don't lie about network availability.
When a stream is obviously a file or memory stream (both of which
implement the GSeekable interface), use g_seekable_seek() instead of
camel_stream_reset().
This is helping me discover if it's safe to remove camel_stream_reset().
We want to eventually move to GIO streams, which have no reset method.
The GTK+ patch in bug 653705 is also required for the Account Assistant
to work properly under the new GtkAssistant design in GTK+ 3.1.
This commit only deals with sidebar ordering issues.
Integrates with the GNOME Online Accounts service.
Creates Evolution sources for a GOA Google account and keeps them
synchronized. Also registers a new CamelSaslXOAuth class for use
with GMail.
Authentication of Google Calendars and Google Contacts using OAuth
is still under development.
This works similar to the offline and shutdown procedure in EShell.
We broadcast a "load-accounts" EShell event with an EActivity. The
EActivity has a toggle reference which we use as a counting semaphore.
If another module needs to handle the event asynchronously, it should
reference the EActivity until its async operation completes, then drop
the reference. Once the signal handlers finish and only the toggle
reference remains, we then proceed with the Evolution Setup Assistant.
All of this is in preparation for GNOME Online Accounts integration.
For the moment, nothing listens for the "load-accounts" EShell event,
so there should be no change in Evolution Setup Assistant behavior.