Mimicing Colin's commit fb9b02e for E-D-S.
We can't do (cd $(srcdir); ...) and inside reference $(top_srcdir)
because that variable uses a *relative* path. Thus we copy the
approach from gnome-shell of explicitly using addprefix to append
the source directory.
Commit ee5671fc fixed mbox-to-Maildir conversion for users upgrading
from Evolution 2.32, who had already migrated to XDG Base Directories.
But turns out, mbox-to-Maildir conversion was still broken for users
coming from Evolution 2.30 or earlier because the logic to move files
into XDG Base Directories was running *after* the conversion routine.
So the conversion routine found nothing to convert, and users were
left with a broken "On This Computer" mail store.
This commit runs the XDG Base Directory migration first on startup,
followed by the mbox-to-Maildir conversion.
EShellSettings predates GSettings and is no longer necessary.
GSettings allows binding GObject properties to GSettings keys,
with optional mapping functions. That fulfills the purpose of
EShellSettings.
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.
I broke contact maps when I removed the settings capplet.
The contact maps feature uses clutter-gtk, so we still need to call
gtk_clutter_init_with_args() instead of gtk_init_with_args() if the
contact maps feature is enabled.
Invoke the mbox-to-Maildir conversion directly from main(), just
before the call to e_shell_load_modules().
The reason the code is here and not in the mail module is because
we inform the user at startup of the impending mail conversion by
displaying a popup dialog and waiting for confirmation.
This has to be done before we load modules because some of the
EShellBackends immediately add GMainContext sources that would
otherwise get dispatched during gtk_dialog_run(), and we don't
want then dispatched until after the conversion is complete.
Looks like some ancient development environment script.
I actually use something very similar for my own development
environment, but it doesn't belong in a version control system.
Not the next stable version. If migration needs to occur multiple times
during a development cycle for different reasons, we'll need an accurate
last-used-version stamp.
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.
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.
There's too much ancient, crufty code there that we can't realistically
support anymore. A workaround for those poor users still on 1.x is to
upgrade to some 2.x release first, then upgrade again to 3.x. An error
dialog explaining this will be shown at startup.
This demonstrates how to extend EShell without having to modify and
recompile e-shell.c. If NetworkManager integration is enabled, the
extension is loaded automatically when the EShell is created.
The same pattern can be applied to integrate other network monitoring
software like ConnMan or Microsoft's Wireless Zero Configuration.
Move the search interface to a new widget: EShellSearchbar
The current search rule is now stored in EShellView, and the search
context in EShellViewClass similar to GalViewCollection (since it's
class-specific, not instance-specific).
Also add a couple new signals to EShellView: "clear-search" and
"custom-search" ("custom" refers to an advanced search or a saved
search -- something more complex than a quick search).
Still working out a few kinks. The search entry is clearly trying to
be too many things. We need a different way of indicating that you're
looking at search results. Perhaps a search results banner similar to
Nautilus.
This introduces e-shell-utils for miscellaneous utility functions
that integrate with the shell or shell settings. First function
is e_shell_run_save_dialog(), which automatically remembers the
selected folder in the file chooser dialog.
Also, kill some redundant save dialog functions, as well as some
write-this-string-to-disk functions that block.