Commit Graph

60 Commits

Author SHA1 Message Date
5f900a3006 Update devel-doc Since from 3.14 to 3.16
As the 3.14 version will be skipped, to get back to sync with
the version of GNOME, then the right Since version is 3.16.
2015-02-24 10:16:02 +01:00
9dcac58b21 Use thread safe variants of g_object_bind_property*() functions from evolution-data-server 2015-02-24 09:54:41 +01:00
0b91d60b83 Bug 743109 - Do not require spam software during build time 2015-02-06 07:52:45 +01:00
a6e34f0bb7 Move authentication of backends back to the client
Since this change the client is responsible to provide credentials
to use to authenticate backends (through ESource-s, to be more precise),
unless the credentials are already saved.
2015-02-02 14:50:27 +01:00
ab45f3f3e9 Bug 740297 - [SMTP] Crash when sending two messages at once 2014-12-10 10:25:52 +01:00
59e2efa774 Share GSettings objects with e_util_ref_settings()
A simple Evolution run and move between all views means creation of
more than 100 GSettings objects, with only a bit more than 10 schemas.
Reusing the objects should have a positive impact on a performance too.
2014-11-13 10:06:04 +01:00
ab83045915 [Send through Outbox] Add option when to flush Outbox folder
There are currently only three values: Keep in Outbox, Send immediately
and Send after 5 minutes. It is partly related with the "flush-outbox"
option, but as that is used for filtering, I rather kept it untouched.
2014-11-03 16:09:58 +01:00
2f3fbdd6c6 Ignore false GObject property change notifications
This is related to bug 698275, which did not cover all cases.
The problem here is that the dconf can in certain situation claim
that everything changed (path "/" changed), which GSettingsBinding
propagates to a GObject property unconditionally and GObject's
property setter (g_object_set_property()) also notifies about
the property change unconditionally, despite the real descendant
property setter properly checks for the value change. After all
these false notifications a callback on "notify" signal is called
and possibly an expensive operation is run.

Checking whether the value really changed helps in performance, for
which were added new e-util functions:
   e_signal_connect_notify()
   e_signal_connect_notify_after()
   e_signal_connect_notify_swapped()
   e_signal_connect_notify_object()
which have the same prototype as their GLib counterparts, but they allow
only "notify::..." signals and they test whether the value really changed
before they call the registered callback.
2014-06-04 19:46:25 +02:00
aceed006fd mail_session_dispose: First free folders, only then stores
CamelFolder holds a weak reference to its parent CamelStore, thus
if the store is freed before the folder, then the folder cannot
access it, which can lead to crashes.
2014-02-24 12:52:48 +01:00
b21733d067 Bug 721545 - License text contains obsolete FSF postal address 2014-01-07 16:05:51 -05:00
c803769454 Adapt to new CamelSession "user-alert" signal.
Replaces the old interactive (but not really) alert_user() method.
2013-11-27 10:02:59 -05:00
60775476f3 EMailSession: Remove leftover EProxy instance. 2013-11-26 11:27:21 -05:00
ce72cf5b4e EMailSession: Remove "junk-filter-name" property.
No longer needed.  Following up on a pre-GSettings "FIXME" item.
2013-11-26 10:41:49 -05:00
122a84d7f6 ESettingsMailSession: Bind to "junk-default-plugin".
Use mapping functions to convert between the filter name string and
the corresponding EMailJunkFilter extension.
2013-11-26 10:41:49 -05:00
3cd87037bc Add e_mail_session_get_junk_filter_by_name().
Looks up an EMailJunkFilter extension by its filter name, as specified
in its class structure.
2013-11-26 10:41:49 -05:00
21effa0d45 Add ESettingsMailSession.
Handles junk mail settings.
2013-11-24 18:43:54 -05:00
570c637480 Fix/mute issues found by Coverity scan
This makes the code free of Coverity scan issues.
It is sometimes quite pedantic and expects/suggests some
coding habits, thus certain changes may look weird, but for a good
thing, I hope. The code is also tagged with Coverity scan
suppressions, to keep the code as is and hide the warning too.
Also note that Coverity treats g_return_if_fail(), g_assert() and
similar macros as unreliable, and it's true these can be disabled
during the compile time, thus it brings in other set of 'weird'
changes.
2013-11-15 09:06:57 +01:00
a7b322d37e Generate documentation for libemail-engine. 2013-11-11 08:10:10 -05:00
eb16646010 Adapt to Camel's proxy resolver API changes. 2013-10-25 12:51:11 -04:00
f792a7cd14 EMailSession: Implement ref_proxy_resolver() method.
Eventually I'd like to add an ESourceExtension for proxy settings,
but for now we'll live with the old and somewhat broken EProxy API.
2013-09-27 13:26:05 -04:00
2ff0a3ccf0 Adapt to CamelSession trust_prompt() changes. 2013-09-27 10:45:01 -04:00
82010c57ec Adapt to Camel API changes. 2013-09-23 12:03:17 -04:00
3da4948c0f Miscellaneous cleanups. 2013-09-07 19:08:54 -04:00
3f2d55fb7f MailFolderCache: Remove the "session" property.
I considered replacing the "session" property with a "registry"
property, but that just complicates application startup even more.
Fact is, if we have a CamelStore then we can get the CamelSession
and even the ESourceRegistry from it.  Kinda dirty, but works.

It goes a little something like this...

  camel_service = CAMEL_SERVICE (camel_store);
  camel_session = camel_service_get_session (camel_service);
   mail_session = E_MAIL_SESSION (camel_session);
       registry = e_mail_session_get_registry (mail_session);

Removed functions:

  mail_folder_cache_get_session()
2013-07-17 12:08:46 -04:00
046a17ba19 Bug 703181 - Asked for password which is never used
When the SASL mechanism reports that it can try an "empty password", give
it the opportunity to do so before we demand that the user provide one.

(Patch mostly by mbarnes; thanks)
2013-06-27 22:06:15 +01:00
c6bda27c9c EMailSession: Remove get_filter_driver() implementation.
This gets overshadowed by EMailUISession's implementation, which also
sets up the filter log file plus much more.
2013-02-27 10:59:55 -05:00
0b2607486e Move CamelSession.lookup_addressbook() handler to EMailUISession.
Have the new handler call e_mail_ui_session_check_known_address_sync()
instead of em_utils_in_addressbook().
2013-02-27 10:59:55 -05:00
eff9783d94 EMailSession: Use camel_session_ref_main_context(). 2013-02-22 09:52:25 -05:00
fd43cd692a Incorporate ESourceUOA.
Where we make exceptions for GNOME Online Accounts, so too shall we for
Ubuntu Online Accounts.
2013-01-31 17:39:05 -05:00
a55f24dfb3 Adapt to CamelSession API changes. 2013-01-12 14:15:57 -05:00
b1ed35f70d Coding style and whitespace cleanup. 2013-01-10 11:20:32 -05:00
800a5828e5 Move CamelSaslXOAuth2 to libemail-engine.
This now uses e_source_get_oauth2_access_token_sync() instead of talking
directly to GNOME Online Accounts and therefore no longer has to live in
the "online-accounts" module.

The "online-accounts" module will be removed in Evolution 3.9.1, when we
can require GNOME Online Accounts 3.8.  Evolution 3.8 will still support
older versions of GNOME Online Accounts, which use OAuth 1.0a tokens for
Google authentication.
2012-12-31 10:22:54 -05:00
6faf671382 e-passwords: Remove unused function parameters. 2012-12-16 17:03:54 -05:00
da874077be Implement and use CamelSession::trust_prompt() 2012-12-14 15:30:29 +01:00
d09d8de870 Consolidate base utility libraries into libeutil.
Evolution consists of entirely too many small utility libraries, which
increases linking and loading time, places a burden on higher layers of
the application (e.g. modules) which has to remember to link to all the
small in-tree utility libraries, and makes it difficult to generate API
documentation for these utility libraries in one Gtk-Doc module.

Merge the following utility libraries under the umbrella of libeutil,
and enforce a single-include policy on libeutil so we can reorganize
the files as desired without disrupting its pseudo-public API.

   libemail-utils/libemail-utils.la
   libevolution-utils/libevolution-utils.la
   filter/libfilter.la
   widgets/e-timezone-dialog/libetimezonedialog.la
   widgets/menus/libmenus.la
   widgets/misc/libemiscwidgets.la
   widgets/table/libetable.la
   widgets/text/libetext.la

This also merges libedataserverui from the Evolution-Data-Server module,
since Evolution is its only consumer nowadays, and I'd like to make some
improvements to those APIs without concern for backward-compatibility.

And finally, start a Gtk-Doc module for libeutil.  It's going to be a
project just getting all the symbols _listed_ much less _documented_.
But the skeletal structure is in place and I'm off to a good start.
2012-12-12 14:33:43 -05:00
704b78d23b Replace deprecated GLib symbols (as of GLib 2.34.x) 2012-11-06 16:21:37 +01:00
9bcde61c47 mail_session_refresh_cb(): Skip disabled sources. 2012-10-31 15:18:20 -04:00
c539a9ec20 Remove e_mail_junk_filter_available().
Because we now check for junk filtering software in configure, junk
filtering modules can now safely assume the required junk filtering
software is installed.  No more having the module installed but not
the required software.  If this invariant is broken, an error will
be shown for each new message received.
2012-09-30 23:26:23 -04:00
c85109fc32 Coding style and whitespace cleanup. 2012-08-19 14:17:55 -04:00
cfc8ef4c6c Adapt to CamelService API changes.
camel_service_get_settings() is now camel_service_ref_settings()
and it returns a new CamelSettings reference which the caller must
release with g_object_unref().
2012-08-12 14:16:04 -04:00
6be2668e48 Adapt to CamelSession API changes.
These functions now return new references:

  camel_session_add_service()
  camel_session_list_services()

These functions have been renamed and also return new references:

  camel_session_get_service()        -> camel_session_ref_service()
  camel_session_get_service_by_url() -> camel_session_ref_service_by_url()
2012-08-12 11:44:37 -04:00
6456e814fa Adapt to CamelSession forward_to() changes. 2012-08-12 08:00:04 -04:00
d783fee9aa EMailSession: Minor code rearrangement. 2012-08-09 07:41:53 -04:00
d88c38abeb Rework handling of GOA mail.
Disabling the mail part of an online account through the Control Center
panel will now remove the CamelService from the EMailSession in addition
to disabling the account/identity/transport ESources, causing it to be
delisted from the account list in Preferences.

Furthermore, hide the Enabled check box for accounts linked to GOA in
Preferences.  The collection ESource for these accounts can no longer
be disabled through Evolution; all such account manipulation must be
done through the Control Center panel.

Lastly, display an icon next to accounts linked to GOA in Preferences.

* Might be nice to show the actual provider icon instead of the generic
  Online Accounts icon from the Control Center, but need to think about
  how best to do that.  Don't want a GOA dependency in core Evolution.
  Maybe ESourceCollection should grow a GIcon property for the online-
  accounts module in the registry service to set?
2012-07-15 18:19:39 -04:00
fcca366ecc mail_session_add_service(): Make display-name binding one-way.
We're leaking CamelService references when we remove a CamelService
from a CamelSession.  I don't yet know where or how.

If we remove a CamelService without finalizing the corresponding ESource,
and then add a new CamelService with the same UID, the ESource will have
a bidirectional "display-name" binding to multiple CamelService instances.
This creates an endless cascade of "notify" signals as soon as any of the
bound "display-name" properties change.

Until I can fix the leaking CamelService references, make the binding
one-way: ESource -> CamelService.  This means the ESource's display name
is authoritative, and camel_service_set_display_name() MUST NOT be called
explicitly or else it will become out-of-sync with the ESource.
2012-07-15 16:08:41 -04:00
fe2961aa50 mail_session_add_from_source(): Warn if backend name is unset.
Even send-only accounts should have a backend name of "none".
2012-07-15 11:07:16 -04:00
20973f9281 Bug #548778 - Use original location when replying in Search Folder 2012-07-10 19:21:28 +02:00
56333d439b Bug #677604 - Critical warnings on evolution start 2012-07-02 18:32:00 +02:00
e439e17e2e Make em_utils_in_addressbook() cancellable 2012-06-14 13:01:57 +02:00
ab69060ca3 EMailSession: Use e_source_camel_generate_subtype().
Use e_source_camel_generate_subtype() to register an ESourceCamelNone
class based on the newly-registered "none" CamelProvider.

e_source_camel_register_types() won't pick up the new provider if it was
already called prior to the provider being registered.  That might be a
bug... I'm not sure yet.  The Camel/ESource integration is kinda messy.
2012-06-05 14:48:40 -04:00