Commit Graph

2429 Commits

Author SHA1 Message Date
Matthew Barnes 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
Milan Crha d4adff17a2 Bug #597567 - Crash in comp_subject()
Fix works only when compiled with libical 0.46 or later
2010-10-21 11:39:53 +02:00
Matthew Barnes 51ebf20237 EAlert: Allow arbitrary actions to be added.
You can now amend the predefined actions in an EAlert by calling
e_alert_add_action().  Useful for adding actions from an existing
GtkUIManager.

Call e_alert_peek_actions() to obtain a combined list of predefined
and custom actions.  These will typically serve as "related" actions
for GtkButtons (cf. gtk_activatable_set_related_action()).

Also, both EShellWindow and EShellView now implement EAlertSink.  Use
EShellWindow for application-wide alerts, EShellView for view-specific
alerts.
2010-10-18 12:32:36 -04:00
Matthew Barnes 2197e6401e Implement EAlertSinkInterface in EShellContent.
Use the same alert handling policy as the composer.
2010-10-18 10:57:36 -04:00
Matthew Barnes 776d7f50b5 EShellView: Mark a string for translation. 2010-10-18 10:57:36 -04:00
Matthew Barnes 1e663aa132 Replace EBinding with GBinding.
GObject now does property bindings itself.

Requires GLib >= 2.26.
2010-10-14 07:12:52 -04:00
Matthew Barnes 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
Matthew Barnes 3fbcc8ef80 EShellBackend: Respond to EShell::prepare-for-quit signals.
Listen for "prepare-for-quit" signals from the shell and inhibit
shutdown until all the activities we're tracking are finalized.

Also, add a couple supporting functions:

  gboolean  e_shell_backend_is_busy     (EShellBackend *shell_backend);
  void      e_shell_backend_cancel_all  (EShellBackend *shell_backend);

These will eventually replace mail_msg_active() and mail_cancel_all().
2010-10-13 16:00:03 -04:00
Milan Crha 1c6f2d154e Bug #631320 - GtkObject is gone in GTK3 2010-10-06 19:26:08 +02:00
Milan Crha 1b2fefb086 Bug #630390 - Operation stuck: Generating message list (cancelled) 2010-10-06 13:08:41 +02:00
Matthew Barnes ff397723ac Fix distcheck errors. 2010-10-04 13:53:01 -04:00
Matthew Barnes 9675f18d91 Coding style and whitespace cleanup. 2010-10-03 13:29:20 -04:00
Matthew Barnes 02452930e7 EShellBackend: Start tracking activities
EShellBackend now keeps an internal queue of live EActivity objects
passed to it via e_shell_backend_add_activity().  This will eventually
replace "mail_msg_active_table" in mail-mt.c and be used to coordinate
shutdown for all shell backends.

But first I have to eliminate mail_msg_wait().
2010-09-29 22:51:08 -04:00
Matthew Barnes 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
Matthew Barnes afe6f502c3 Use new GDK keysym names if available.
In GTK+ 2.21.8, the keysym names were renamed from GDK_* to GDK_KEY_*.

I've added backward-compatibility macors to gtk-compat.h, which can be
dumped as soon as we require GTK+ >= 2.22.0.
2010-09-17 18:39:59 -04:00
Fridrich Štrba 64f53f1a53 Increase safety on Windows
Call SetDllDirectory() to reduce risk of DLL hijacking, and call SetProcessDEPPolicy() to reduce risk of rogue code execution.
2010-09-15 16:49:01 +02:00
Matthew Barnes ebcce86769 Coding style and whitespace cleanups. 2010-09-11 14:14:04 -04:00
Matthew Barnes bc9ece413f Re-work my GtkDialog:has-separator workaround.
If we're using GTK+ 2.21.8 (where gtk_dialog_set_has_separator() is
deprecated but the property is still present and defaults to TRUE), we
still need to set the property to FALSE.  So instead use g_object_set()
up through GTK+ 2.90.6, after which the property itself is gone.
2010-09-11 09:03:45 -04:00
Matthew Barnes a6e137295f Work around deprecation of gtk_dialog_set_has_separator()
Unfortunately the default value for this property is TRUE (bzzt, WRONG!)
so we can't just remove the function outright until we require GTK+ 2.22.
It was deprecated in GTK+ 2.21.8.
2010-09-11 00:30:54 -04:00
Milan Crha 101305e1c7 Various memory leaks 2010-09-07 18:39:46 +02:00
Matthew Barnes 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
Matthew Barnes f0d7a4142e Bug 628482 - e_shell_settings_install_property_for_key memory leak 2010-09-01 07:07:28 -04:00
Matthew Barnes 4c05b9e925 Coding style and whitespace cleanup. 2010-08-29 11:22:28 -04:00
Matthew Barnes 8fbcab126e Remove the last traces of dbus-glib. 2010-08-29 07:42:26 -04:00
Matthew Barnes 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
Matthew Barnes 4e9050bc1e Whitespace and coding style cleanup. 2010-08-13 21:32:32 -04:00
Michael Meeks 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
Michael Meeks 78ebd5d8e7 Execute calendar search post startup, not 2010-08-10 15:23:39 +01:00
Fridrich Štrba 5c49c70d55 We are not using dbus-glib anymore, don't call dbus_g_thread_init 2010-08-05 01:01:19 +02:00
Lucian Langa e919c9724f Bug 625761 - Folder views not preserved after migration 2010-08-02 19:48:54 -04:00
Matthew Barnes 8dcdc60ccc Make EImportAssistant extensible. 2010-07-30 12:10:01 -04:00
Matthew Barnes 9085a5a18c Remove unused 'preview' argument from e_import_assistant_new_simple().
We preview imported files by other means now.
2010-07-30 10:58:26 -04:00
Matthew Barnes 1d2a02b658 Remove folder-tree-expand-state.xml while migrating. 2010-07-30 08:04:40 -04:00
Matthew Barnes 80d4fed162 Bug 624500 - Missing EggSMClient linker flags in shell 2010-07-30 06:51:33 -04:00
Matthew Barnes 69c904178f Avoid overwriting files while migrating. 2010-07-29 16:36:19 -04:00
Matthew Barnes eb5afa335d More XDG base directory migration tweaks. 2010-07-28 16:47:39 -04:00
Matthew Barnes 432c2796c9 Migrate ~/.evolution/cache/tmp. 2010-07-28 13:22:26 -04:00
Matthew Barnes 7ca5681a18 Remove .goutputstream-XXXXXX files during migration.
GIO had a bug for awhile where it would leave behind an empty
temp file with the pattern .goutputstream-XXXXXX if an output
stream operation was cancelled.  We've had several reports of
these files in config directories, so remove any we find.
2010-07-28 13:18:36 -04:00
Matthew Barnes d369274ae8 Add more debug messages to basedir migration.
If directory removal fails because the directory is not empty,
list the file names in that directory.
2010-07-28 10:57:52 -04:00
Matthew Barnes 6affbe33e9 Migrate ~/.evolution to XDG base directories.
Migration runs just before the main loop starts.
It's just a sequence of local directory and file renames.
2010-07-27 08:58:50 -04:00
Matthew Barnes 81e5428a59 Coding style and whitespace cleanup. 2010-07-26 01:16:42 -04:00
Srinivasa Ragavan d46c4b4e5b Add optional clutter support. 2010-07-25 21:30:00 -04:00
Matthew Barnes a11439aeaf Update API documentation. 2010-07-18 13:28:10 -04:00
Matthew Barnes eb29179da6 Coding style and whitespace cleanup. 2010-07-11 22:25:06 -04:00
Matthew Barnes 3e481b5a38 Fix some linking issues. 2010-07-11 09:39:25 -04:00
Matthew Barnes f92b45d7df Fix places where "~/.evolution" is hard-coded.
Also replace "$USER_DATA_DIR/cache" path constructions with
e_get_user_cache_dir().
2010-07-08 16:59:11 -04:00
Matthew Barnes 71e92f3f2c EShellContent: Add a focus_search_results() method.
This gives EShellSearchbar something concrete to call to direct focus
away from itself instead of tabbing forward and hoping for the best.
2010-06-24 20:42:09 -04:00
Milan Crha 179db75ce0 Bug #620815 - Memory leaks with Evolution 2010-06-24 20:43:16 +02:00
Matthew Barnes f1bad7677a Bug 622559 - Changing search option should focus search entry 2010-06-24 08:17:13 -04:00
Matthew Barnes 94a9b04008 Bug 622329 - Help menu points to the wrong FAQ page 2010-06-21 19:23:14 -04:00