Commit Graph

493 Commits

Author SHA1 Message Date
0c84d969bc Ask for a forced quit when a user tries to re-close the window
When the user calls Quit, the windows are disabled and the Evolution
prepares for quit. In case the quit takes longer than a minute, the user
is asked whether the Evolution should wait for the background tasks to
finish or quit. Sometimes the user wants to quit even earlier, thus let
it do it when it tries to close the window again.
2015-11-25 16:19:04 +01:00
1c53280452 Bug 758152 - Network connection not detected on resume from suspend 2015-11-25 14:41:17 +01:00
c5b27de107 Fix a crash on Evolution quit in gtk_application_impl_uninhibit()
The shell_ready_for_quit() could be called twice, the first time for user-initiated
quit, the second time when the GApplication "shutdown" signal had been invoked. This
invocation had been added recently, to fix memory leaks. While it didn't matter
for desktop environments where the GtkApplication's inhibit/uninhibit didn't work,
it did matter for the GNOME Shell. The second call to shell_ready_for_quit() had been
called inside EShell's finalize, which didn't find the right GtkApplication class (a
NULL had been passed to the function), which caused the crash. The fix is to not call
shell_prepare_for_quit() from within the "shutdown" signal callback when the quit
had been already acknowledged.
2015-11-24 16:07:52 +01:00
8bcf527303 Preferences window never freed
The shell creates it on start and unrefs it on its dispose, but
the window is not freed, it's still left in memory. The other parts
are need too, otherwise runtime warnings are shown during the free
of the preferences window.
2015-11-13 17:54:40 +01:00
ee35850145 Bug 675154 - Provide an application menu 2015-09-01 16:24:24 +02:00
118fa950fa EShell: Do not require Authentication extension for trust prompts
It was made optional earlier, but the code still required it.
2015-06-19 11:07:25 +02:00
b395601e35 Use e_util_get_source_full_name() where appropriate
To better identify which source the operation runs on.
2015-06-12 15:04:02 +02:00
3e678bb346 Bug 750202 - Crash under shell_source_invoke_authenticate_cb() 2015-06-01 11:01:35 +02:00
8f3b824195 Bug 748683 - Unhelpful 'Failed to connect' message 2015-05-15 12:07:48 +02:00
1628c20510 e_shell_quit() called twice at the end of application
This could exhibit as a double-prompt whether wants to quit with
pending messages in Outbox, where the second prompt, the one with
the EShellWindow being destroyed, didn't make much sense.
2015-03-11 13:03:46 +01:00
54c3182212 Bug 726539 - Skip Lookup button shown on subsequent new account stages 2015-03-09 17:05:23 +01:00
5f900a3006 Update devel-doc Since from 3.14 to 3.16
As the 3.14 version will be skipped, to get back to sync with
the version of GNOME, then the right Since version is 3.16.
2015-02-24 10:16:02 +01:00
9dcac58b21 Use thread safe variants of g_object_bind_property*() functions from evolution-data-server 2015-02-24 09:54:41 +01:00
e7b4a14f7e Bug 741857 - Doesn't close after mailto: message sent 2015-02-12 15:36:50 +01:00
e4f2662e4b Simplify code at shell_trust_prompt_done_cb() a bit
The e_source_invoke_authenticate() accepts NULL credentials, thus use
them instead of creating and freeing effectively empty structure.
2015-02-04 12:40:05 +01:00
a6e34f0bb7 Move authentication of backends back to the client
Since this change the client is responsible to provide credentials
to use to authenticate backends (through ESource-s, to be more precise),
unless the credentials are already saved.
2015-02-02 14:50:27 +01:00
59e2efa774 Share GSettings objects with e_util_ref_settings()
A simple Evolution run and move between all views means creation of
more than 100 GSettings objects, with only a bit more than 10 schemas.
Reusing the objects should have a positive impact on a performance too.
2014-11-13 10:06:04 +01:00
4646811a36 Bug 545153 - Ask whether to quit with pending operations 2014-10-29 21:53:32 +01:00
68c01454e4 Bug 728329 - Evolution fails to get back online 2014-09-15 13:06:55 +02:00
2f3fbdd6c6 Ignore false GObject property change notifications
This is related to bug 698275, which did not cover all cases.
The problem here is that the dconf can in certain situation claim
that everything changed (path "/" changed), which GSettingsBinding
propagates to a GObject property unconditionally and GObject's
property setter (g_object_set_property()) also notifies about
the property change unconditionally, despite the real descendant
property setter properly checks for the value change. After all
these false notifications a callback on "notify" signal is called
and possibly an expensive operation is run.

Checking whether the value really changed helps in performance, for
which were added new e-util functions:
   e_signal_connect_notify()
   e_signal_connect_notify_after()
   e_signal_connect_notify_swapped()
   e_signal_connect_notify_object()
which have the same prototype as their GLib counterparts, but they allow
only "notify::..." signals and they test whether the value really changed
before they call the registered callback.
2014-06-04 19:46:25 +02:00
250620dd3d Forbid header bars in stock GTK+ dialogs.
Even in GNOME Shell, header bars look very out of place in Evolution.
Override the system-wide setting to suppress them.
2014-03-22 19:34:46 -04:00
c53fbc0b8f Miscellaneous cleanups. 2014-03-02 19:36:01 -05:00
5c60d57082 Replace 'interface' with 'iface' in the code
Win32 headers have a #define for 'interface', which breaks the build
when this word is used in the code, thus replace it to 'iface',
the same way as GLib or GTK+ code use to have it. (See bug #722068.)
2014-02-26 16:15:21 +01:00
e6686ae2d9 Bug #711758 - Handle relative path when importing from command line 2014-02-24 13:35:47 +01:00
b21733d067 Bug 721545 - License text contains obsolete FSF postal address 2014-01-07 16:05:51 -05:00
42f71a3b0e EShell: Configure WebKit's default SoupSession.
Configure WebKit's default SoupSession to honor our proxy settings.
2013-11-26 17:00:55 -05:00
706b5a4420 Bug 710489 - Network detection broken at startup 2013-10-30 15:39:57 -04:00
7d6027be1a EShell-related cleanups. 2013-07-05 16:40:48 -04:00
afdbd662d1 EShell: Check cookie before calling gtk_application_uninhibit(). 2013-05-31 10:34:41 -04:00
7c63fc5f31 Remove e_shell_set_startup_view().
No longer needed.
2013-03-31 12:10:54 -04:00
7c38b34f20 Remove e_shell_get_startup_view().
No longer needed.
2013-03-31 12:10:54 -04:00
6a5767cbd1 EShell: Remove "meego-mode" property.
The property is always FALSE.

Remove both the property itself and any logic predicated on it.
2013-03-31 12:10:54 -04:00
f8f89b0bfd Remove e_shell_adapt_window_size().
Its preconditions are never TRUE, and is therefore a no-op function.
2013-03-31 12:10:54 -04:00
50b164637f EShell: Remove "small-screen-mode" property.
The property is always FALSE.

Remove both the property itself and any logic predicated on it.
2013-03-31 12:10:54 -04:00
7ec9a50ee0 Remove 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.
2013-03-17 08:49:12 -04:00
9551d47dd1 e_shell_load_modules: Explicitly load EClientCache extensions.
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.
2013-02-16 18:57:09 -05:00
208d779b00 EShell: Add a read-only "client-cache" property.
Give EShell its own EClientCache.  This should be used throughout
Evolution, wherever an EClient is needed.

New functions:

    e_shell_get_client_cache()
2013-02-16 18:57:09 -05:00
d09d8de870 Consolidate base utility libraries into libeutil.
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.
2012-12-12 14:33:43 -05:00
2c4ae5e768 Coding style and whitespace cleanup. 2012-11-10 15:54:43 -05:00
704b78d23b Replace deprecated GLib symbols (as of GLib 2.34.x) 2012-11-06 16:21:37 +01:00
4afc8d39bf Bug 676141 - Use GtkApplication for session management
As of GTK+ 3.4, GtkApplication now provides session management
support similar to EggSMClient.  So drop our copy of EggSMClient.
2012-10-16 09:38:21 -04:00
6c05b09be1 Do not call g_object_notify() when property didn't change 2012-06-18 15:35:44 +02:00
94daae3dba Remove the last remaining usage of GConf 2012-06-15 09:04:08 +02:00
2a39437ee9 Adapt to single-include E-D-S libraries. 2012-06-03 15:14:03 -04:00
3e05d86173 Adapt libeshell to the new ESource API. 2012-06-02 23:00:39 -04:00
1a3913d551 Remove "currently-offline" key from GSettings added for bug #655753 2012-04-25 16:45:07 +02:00
bf2c718d1f Bug #655753 - Improve offline notification for network outage 2012-04-23 11:46:05 +02:00
4eec255877 Use GNetworkMonitor to drive EShell:network-available. 2012-03-31 15:48:01 -04:00
0a016671ee Do not call gtk_main_quit() on shell quit when none is running 2012-01-06 09:37:27 +01:00
987fb91d5e Reduce diff noise with account-mgmt branch. 2011-12-19 22:27:39 -05:00