Log debug messages for outstanding activities during shutdown to
help investigate stuck shutdown issues.
Enable this feature with: G_MESSAGES_DEBUG=evolution-shell
Use g_signal_connect_data() to automatically release the EActivity when
the signal handler is disconnected, and keep the handler ID internally.
This is cleaner than using g_signal_handlers_disconnect_by_func().
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.
This removes all traces of Express Mode from all but the contact editor
and calendar appointment editor. Need to evaluate the remaining cases
individually.
This effectively removes Express Mode as a user-selectable feature.
Express Mode was developed for MeeGo by MeeGo developers. Today the
MeeGo project is dead, the MeeGo developers have disappeared, no one
is maintaining Express Mode and the feature is deteriorating.
There's still some bits of Express Mode I'd like to salvage before
we remove it entirely, but henceforth it will have to be enabled at
compile-time.
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.
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.
EShell's instance of EClientCache gets instantiated before modules are
loaded, so explicitly call e_extensible_load_extensions() on the cache
after modules are loaded.
This requires commit 525fba8 in evolution-data-server to work.
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.
No disrespect to past maintainers, documenters and contributers, but the
Credits section of Evolution's About dialog is a mess and needs a reset.
The list of authors and documenters is YEARS out of date, and it's not
feasible to maintain a complete list of contributors for a project this
large and this old.
Reset the authors list to myself, Milan and Dan and the documenters list
to Andre -- with a nod to past contributers.
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.
Prefer dealing with GdkEvent pointers and using accessor functions like
gdk_event_get_button().
This is complicated by the fact that some GtkWidget method declarations
still use GdkEventButton pointers, and synthesizing button events pretty
much requires direct GdkEventButton access. But GDK seems to be nudging
itself toward sealing the GdkEvent union. Likely to happen in GDK4.
Mainly clean up signal handlers and leave method overrides alone for now.