GTK+ uses (G_PRIORITY_HIGH_IDLE + 20) for redrawing operations, which is
actually a slightly lower priority than G_PRIORITY_HIGH_IDLE. Therefore
for our purpose, G_PRIORITY_HIGH_IDLE is sufficient.
This reverts commit 2b507716b2.
The commit contains not a single comment as to why these custom priority
values are being used. The rationale needs to be documented in the code,
either at each call point or preferrably at a centralized priority value
definition.
g_hash_table_add(table, key) uses less memory than
g_hash_table_insert(table, key, GINT_TO_POINTER (1)).
Also use g_hash_table_contains() when testing for membership.
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.
Move the supporting widgets for the contact maps feature alongside
EABContactDisplay. Removing them from libeutil helps isolate our usage
of libchamplain so it's not imposed on the entire application, and even
3rd party software. That libchamplain is an optional dependency only
further complicates the matter.
Ideally I'd like to somehow isolate this feature in an extension module,
but we currently lack sufficient hooks for such an extension. So this
arrangement will have to suffice for now.
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.
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.
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().
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()
This is reverting previous patch for this bug and fixes it with
a different approach. The previous patch had regression, instead
of freezing evolution on quit it crashed it when there was pending
addressbook lookups.
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?