Direct the focus away from the filter combo box so the next keyboard
event doesn't change the selected filter. The user is probably trying
to navigate search results.
This adds a "close-alert" signal to EShellWindow, which is bound to
GDK_KEY_Escape. The default handler closes view-specific alerts first,
then global alerts.
Nudging EPlugin closer to full removal.
Nothing in Evolution uses this anymore and 3rd-party plugins should be
using EShell's "event::ready-to-start" signal or else GApplication's
"startup" signal.
Evolution is still occasionally getting stuck on shutdown, and although
the evolution-shell log domain shows debug messages for activities that
are preventing shutdown, they frequently look like this:
(evolution:13534): evolution-shell-DEBUG: 5 active 'mail' activities:
(evolution:13534): evolution-shell-DEBUG: * (no description)
(evolution:13534): evolution-shell-DEBUG: * (no description)
(evolution:13534): evolution-shell-DEBUG: * (no description)
(evolution:13534): evolution-shell-DEBUG: * (no description)
(evolution:13534): evolution-shell-DEBUG: * (no description)
I think the lack of descriptions is from CamelOperations popping all
their pushed messages, which is correct behavior but doesn't help us
debug the problem.
e_activity_get_last_known_text() returns the most recent _non-empty_
text value set on the EActivity. So our debug message can fall back
to that if the EActivity has no description at shutdown:
(evolution:13534): evolution-shell-DEBUG: * (was "blah, blah, blah")
gal_view_collection_new() now takes system and user directory arguments
and loads GalViews during instance initialization.
Removed functions:
gal_view_collection_set_storage_directories()
gal_view_collection_load()
gal_view_collection_loaded()
EShellView no longer needs help from subclasses other than getting
the needed GalView subclasses registered.
A nice side-effect of this is EShellView subclasses can now use the
G_DEFINE_DYNAMIC_TYPE macro.
The "Define Views" dialog is nearly useless. Replace it with a "Delete
Current View" menu item which is only visible for custom views that have
been explicitly saved under a new name.
There's actually no loss of functionality with this commit. Although
some view management tasks now require more clicks, view management in
general is a seldom-used feature and I doubt the dialog's absence will
even be noticed by users, much less missed.
EShellView now holds a reference to the active GalViewInstance. Where
applicable, the EShellView subclass is responsible for keeping this up
to date when the sidebar selection changes.
Holding a reference allows EShellView to implement common actions like
"Save Current View" directly instead pushing it on to subclasses.
New functions:
e_shell_view_get_view_instance
e_shell_view_set_view_instance
This fixes a bug in the old implementation where the application could
crash after a second shell window was created and destroyed, because a
signal handler with the destroyed shell window as the closure was left
connected.
But moreover this simplifies the implementation by using a property
binding plus transform function instead of juggling signal handlers,
and also adds code comments where things get a little tricky.
Removed (now unused) functions:
e_shell_window_get_toolbar_new_prefer_item
e_shell_window_set_toolbar_new_prefer_item
As discussed recently on the users mailing list [1], there's a strong
precedent among GTK+ applications for F9 to toggle sidebar visibility.
Examples cited were Nautilus, Evince, Totem, Rhythmbox, File-Roller
and gThumb.
Change the Send/Receive accelerator from F9 to F12, and designate F9
as the accelerator for View->Layout->Show Side Bar.
[1] https://mail.gnome.org/archives/evolution-list/2013-May/msg00194.html
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.