GTK's file chooser dialog provides one-click access to recently used
documents now, so we can remove the redundancy from Evolution's mail
composer main menu and calendar component editor main menu and leave
it at "Insert -> Attachment".
These libraries are bound for E-D-S so they live at the lowest layer of
Evolution for now -- even libeutil can link to them (but please don't).
This is the first step toward moving mail handing to a D-Bus service.
This implements https://bugzilla.gnome.org/show_bug.cgi?id=663527#c3.
Account reordering is now done by drag-and-drop instead of up/down
buttons.
Turned out to be a wee bit more complicated than I initially thought.
This scraps EAccountManager and EAccountTreeView and replaces them with
new classes centered around EMailAccountStore, which EMailSession owns.
EMailAccountStore is the model behind the account list in Preferences.
The folder tree model now uses it to sort its own top-level rows using
gtk_tree_path_compare(). It also broadcasts account operations through
signals so we don't have to rely so heavily on EAccountList signals,
since EAccountList is going away soon.
Also as part of this work, the e-mail-local.h and e-mail-store.h APIs
have been merged into EMailSession and MailFolderCache.
Means EMailBrowser no longer has to.
Also, EMailReader now provides a default implementation for
get_alert_sink() which just calls get_preview_pane() and casts.
Instead of stuffing host/port/user/etc into CamelURLs.
To enforce this in 3rd party extensions, remove EAccounts from
EMConfigTargetAccount and rename it EMConfigTargetSettings with
the following struct members:
const gchar *email_address;
const gchar *storage_protocol;
CamelSettings *storage_settings;
const gchar *transport_protocol;
CamelSettings *transport_settings;
Slightly more efficient and convenient than:
g_simple_async_result_set_from_error (simple, error);
g_error_free (error);
One less GError to copy and destroy.
Similiar to the new GtkExpander:resize-toplevel property in GTK+ 3.2,
but adapted to the fact that EAttachmentPaned's expander has no direct
child widget, and instead acts on the child widget in the lower pane.
CompEditor now uses this to fix the weird vertical resizing behavior
when its attachment bar is expanded and then collapsed again.
We have a confusing array of nearly-identical CFLAGS/LIBS definitions in
configure.ac. Time to simplify. Instead let's just have one definition
that includes all the libraries provided by Evolution-Data-Server (incl.
Camel). That, in combination with GNOME_PLATFORM, gives us most of what
we need for compliation and linking, and we can sprinkle definitions for
additional library dependencies in Makefile.am's as needed.
The code in ETable that draws the button headers is outdated, and uses
deprecated gtk_paint_* functions mixed with cairo.
Port the code to use the GtkStyleContext API, which allows themes to
give the header the same appearance of a regular GtkTreeView header.
The EModule, EExtensible and EExtension classes as well as the
e_type_traverse() function have been moved to Evolution-Data-Server's
libebackend library to replace e-data-server-module.c.
Now Evolution-Data-Server modules use the same framework as Evolution.