Commit Graph

445 Commits

Author SHA1 Message Date
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
217c83bdb9 Bug #663122 - Doesn't quit on exit with GLib's git master 2011-12-02 19:00:22 +01:00
ad1581d50c Remove e_shell_get_gconf_client().
No longer needed.
2011-11-24 12:29:35 -05:00
0c83b9b25d Miscellaneous cleanups. 2011-11-22 14:50:09 -05:00
c75f58d01b Fix compiler warnings. 2011-11-22 14:34:11 -05:00
cdb09641dc Build fixes 2011-11-14 18:05:45 +01:00
55ed27cd2f Migrate EShellSettings to GSettings 2011-11-14 17:19:25 +01:00
d4e8e2f809 Migrate most of the shell code to GSettings 2011-10-13 16:53:51 +02:00
56a166bb42 Merge branch 'master' into wip/gsettings 2011-10-10 12:50:18 +02:00
938505da18 Let GtkFileChooser track its own last-used-folder.
GtkFileChooser in GTK+ 3.2 now keeps track of the last-used-folder
itself, even across applications, so get out of its way and let it
handle it.
2011-10-06 08:16:21 -04:00
224f26b84d GtkApplication has some new EShell-like features.
I pushed a few EShell features up to GtkApplication for GTK+ 3.2,
so we can now trim off the redundancies in EShell.

1) GtkApplication has a new "window-added" signal which replaces
   EShell's own "window-created" signal.

2) GtkApplication has a new "window-removed" signal which replaces
   EShell's own "window-destroyed" signal.

3) gtk_application_get_windows() now returns a list of windows sorted
   by most recently focused, replacing e_shell_get_watched_windows().

4) GtkApplication now provides enough hooks to subclasses that we can
   remove e_shell_watch_window() and call gtk_application_add_window()
   directly.
2011-10-06 08:16:21 -04:00
4ec46cc05f Merge from master 2011-10-05 13:57:30 +02:00
e2b6ff7a6c Miscellaneous cleanups from the account-mgmt branch.
Reducing diff noise so I can see important changes easier when comparing
branches.  A few API changes, but nothing that affects functionality.
2011-09-27 09:31:13 -04:00
53bc6ffc53 The EExtension framework is now in libebackend.
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.
2011-09-26 09:45:55 -04:00
c24038c4f6 Bug #646109 - Fix use of include <config.h> to make sure translations work 2011-06-29 18:42:20 +02:00
3cd0ca95df Bug 649993 - Change behavior of --component option
This is primarily for the GNOME Shell calendar.

If, for example, "evolution --component calendar" is invoked and there
is already an Evolution window opened to the calendar view, present that
window.  Otherwise open a new Evolution window to the requested view.

Same behavior applies to all requested views.
2011-06-29 18:42:19 +02:00
9a2cffb057 Bug 650491 - Shell handles forwarding uris to existing process wrong
This adds a "handle-uris" GAction which takes a string array argument,
so the URIs can be passed to the primary process verbatim.
2011-06-29 18:42:19 +02:00
392973975c Restore lockdown integration.
With lockdown settings available through GSettings, widgets can handle
lockdown integration themselves without having to use EShellSettings.

Also fixed a few places where printing or save-to-disk actions were
either not properly wired up or not responding to lockdown settings,
but much more work needs done.  Attachments, for example, are not
honoring the disable-save-to-disk setting at all.

This too requires the recently-added gsettings-desktop-schemas
dependency.
2011-06-29 18:41:50 +02:00
4ce8eca635 Fix an EShell reference leak.
GApplication calls g_main_loop_quit() immediately when the last window
is destroyed, whereas we do it from an idle callback with an extra ref
on EShell to keep it alive until the idle callback runs.  But because
GApplication beats us to the punch, our idle callback never runs and
the EShell reference leaks.

For now, we'll just disable the quit_mainloop() method of GApplication.
If GtkApplication grows a signal equivalent to EShell::window-destroyed,
EShell could drop its window_destroyed() method and let G[tk]Application
handle things normally.
2011-06-29 18:41:49 +02:00
e9f7d5d021 Port EShell to GtkApplication. 2011-06-29 18:41:47 +02:00
7aacf983b3 Coding style and whitespace cleanup. 2011-06-29 18:41:41 +02:00
c003c99a75 Bug #614480 - Avoid using G_TYPE_INSTANCE_GET_PRIVATE repeatedly 2011-06-29 18:41:39 +02:00
f03d5a9023 Bug 642171 - Implicit libgnome dependency for lockdown GConf keys
Lockdown keys have moved to gsettings-desktop-schemas, so disable
lockdown integration until we're ready for GSettings.
2011-06-29 18:41:34 +02:00
274697623e Remove NULL checks for GObject methods.
As of GLib 2.28 all GObject virtual methods, including constructed(),
are safe to chain up to unconditionally.  Remove unnecessary checks.
2011-06-29 18:41:34 +02:00
642b32cbdb Bug #638808 - camel_shutdown() called too early 2011-06-29 18:41:17 +02:00
fdf1c024b5 Add e_shell_submit_alert().
An easy way to broadcast application-wide alerts to shell windows.
These alerts will persist in all current and future shell windows
until responded to (either programmatically or by the user).
2011-06-29 18:41:14 +02:00
ca3faa17a9 Free/busy meeting view doesn't work due to non-working extension 2011-06-29 18:41:08 +02:00
48d805df31 Bug #207580 - Allow new mail check on individual accounts 2011-06-29 18:41:04 +02:00
756c8abcb8 Bug #646109 - Fix use of include <config.h> to make sure translations work 2011-05-27 15:23:07 +02:00
0a0fe0a2f5 Bug 649993 - Change behavior of --component option
This is primarily for the GNOME Shell calendar.

If, for example, "evolution --component calendar" is invoked and there
is already an Evolution window opened to the calendar view, present that
window.  Otherwise open a new Evolution window to the requested view.

Same behavior applies to all requested views.
2011-05-23 21:59:58 -04:00
cec324e80a Bug 650491 - Shell handles forwarding uris to existing process wrong
This adds a "handle-uris" GAction which takes a string array argument,
so the URIs can be passed to the primary process verbatim.
2011-05-22 12:40:31 -04:00
ba6a234386 Restore lockdown integration.
With lockdown settings available through GSettings, widgets can handle
lockdown integration themselves without having to use EShellSettings.

Also fixed a few places where printing or save-to-disk actions were
either not properly wired up or not responding to lockdown settings,
but much more work needs done.  Attachments, for example, are not
honoring the disable-save-to-disk setting at all.

This too requires the recently-added gsettings-desktop-schemas
dependency.
2011-03-27 18:38:39 -04:00
c8be2c5fe1 Fix an EShell reference leak.
GApplication calls g_main_loop_quit() immediately when the last window
is destroyed, whereas we do it from an idle callback with an extra ref
on EShell to keep it alive until the idle callback runs.  But because
GApplication beats us to the punch, our idle callback never runs and
the EShell reference leaks.

For now, we'll just disable the quit_mainloop() method of GApplication.
If GtkApplication grows a signal equivalent to EShell::window-destroyed,
EShell could drop its window_destroyed() method and let G[tk]Application
handle things normally.
2011-03-25 11:11:44 -04:00
5399f35bbc Port EShell to GtkApplication. 2011-03-24 14:55:24 -04:00
c6fd77460f Coding style and whitespace cleanup. 2011-03-05 12:34:28 -05:00
1301cf02ef Bug #614480 - Avoid using G_TYPE_INSTANCE_GET_PRIVATE repeatedly 2011-02-25 16:20:41 +01:00
1afbba4a8b Bug 642171 - Implicit libgnome dependency for lockdown GConf keys
Lockdown keys have moved to gsettings-desktop-schemas, so disable
lockdown integration until we're ready for GSettings.
2011-02-12 13:40:33 -05:00
7a1677520d Remove NULL checks for GObject methods.
As of GLib 2.28 all GObject virtual methods, including constructed(),
are safe to chain up to unconditionally.  Remove unnecessary checks.
2011-02-12 12:54:08 -05:00
28c3b67bb1 Bug #638808 - camel_shutdown() called too early 2011-01-11 10:33:03 +01:00
59928e69ed Add e_shell_submit_alert().
An easy way to broadcast application-wide alerts to shell windows.
These alerts will persist in all current and future shell windows
until responded to (either programmatically or by the user).
2010-12-26 23:31:55 -05:00
22b2d26d04 Free/busy meeting view doesn't work due to non-working extension 2010-12-06 14:23:20 +01:00
e39dd931bc Bug #207580 - Allow new mail check on individual accounts 2010-11-25 18:10:14 +01:00
c881b5bc5e Simplify EActivity.
With unintrusive error dialogs gone, we can cut some unnecessary bits
out of EActivity.

I'm also adding a new enum property called "state", which is one of:

    E_ACTIVITY_RUNNING
    E_ACTIVITY_WAITING
    E_ACTIVITY_CANCELLED
    E_ACTIVITY_COMPLETED

The state of an activity must be explicitly changed.  In particular,
when the user cancels an activity the state should be set only after
confirming the operation has been cancelled and not when cancellation
is requested (e.g. after receiving a G_IO_ERROR_CANCELLED, not when
the GCancellable emits "cancelled").  EActivityBar and EActivityProxy
widgets have been updated to make this distinction clearer in the UI.

E_ACTIVITY_WAITING will be used when activities have to be queued and
dispatched in sequence, which I haven't written yet.
2010-10-22 14:21:22 -04:00
b4f97aea9b Bug 461769 - Add a --force-online command line option
Use it to override network availability detection as reported by
NetworkManager or other network monitoring software.
2010-10-13 16:55:07 -04:00
a98c07a569 Add a GCancellable to EActivity.
EActivity now uses a GCancellable to manage cancellations, instead of
having its own redundant cancellation API.  API changes are as follows:

  + e_activity_get_cancellable()
  + e_activity_set_cancellable()

  - e_activity_cancel()
  - e_activity_is_cancelled()
  - e_activity_get_allow_cancel()
  - e_activity_set_allow_cancel()

EActivity's "cancelled" signal remains, but only as a repeater for
GCancellable::cancelled signals.  It should not be emitted directly.

The presence of a GCancellable implies that cancellation is allowed.
EActivity does not create its own default GCancellable, it has to be
given one.

If a CamelOperation (cast as a GCancellable) is given, EActivity will
configure itself to listen for status updates from the CamelOperation
and propagate the information to its own "primary-text" and "percent"
properties.

These changes allowed me to start cleaning up some of the incredibly
convoluted logic in mail-mt.c -- in particular, mail_operation_status()
is completely gone now.  mail-mt.c is still in a transitional state --
much more significant changes coming soon.
2010-09-18 16:40:19 -04:00
101305e1c7 Various memory leaks 2010-09-07 18:39:46 +02:00
429234ff21 Convert composer autosave to an EExtension.
Given the way the autosave feature was awkwardly bolted on to the
composer, an EExtension seemed like a natural fit.  And it helped
clean up some object lifecycle hacks (and bugs).

What we have now is a new module consisting of two EExtensions:

   EComposerAutosave extends EMsgComposer and determines when to
   kick off an asynchronous autosave operation.

   EComposerRegistry extends EShell and offers to restore orphaned
   autosave files on startup (which is also asynchronous now).

e-autosave-utils.c holds the actual asynchronous functions and a few
other miscellaneous utility functions.

Source code for the new module lives in /modules/composer-autosave.
2010-09-02 13:37:31 -04:00
ecf3434da0 GObject boilerplate cleanup.
Prefer thread-safe G_DEFINE_TYPE and G_DEFINE_INTERFACE macros over
manual GType registration.

This is just a start... lots more to do.
2010-08-24 14:37:02 -04:00
18813ccd8f Defer the load / creation of configuration UI with changes to
e_preferences_window to take factory callbacks and store a reference
to the shell. - This makes start-up substantially faster, particularly
on Atom (eg.).

Remove a number of idle handlers used to create these UIs in the
first instance, cleaning the code.
2010-08-10 21:17:40 +01:00