Commit Graph

2439 Commits

Author SHA1 Message Date
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
7ddb3931b1 Bug #590245 - 'evolution --force-shutdown' should kill factories 2010-12-07 15:40:32 +01:00
22b2d26d04 Free/busy meeting view doesn't work due to non-working extension 2010-12-06 14:23:20 +01:00
b2209c2abd Clarify command line parameter string 2010-12-04 16:11:30 +01:00
e39dd931bc Bug #207580 - Allow new mail check on individual accounts 2010-11-25 18:10:14 +01:00
863b9bf639 Bug #635087 - Leftover files after migration of config/data/cache to XDG directories 2010-11-23 10:46:54 +01:00
e3dda0436d Migrate the local store from mbox to maildir format 2010-11-23 02:04:03 +05:30
f17e29a63a Add a compatibility code to previous patch 2010-11-09 02:49:40 +01:00
0c01510b4f Use gtk_paned_new() instead gtk_[v|h]paned_new() 2010-11-09 02:46:17 +01:00
1ca2b18e67 Fix distcheck errors. 2010-11-08 00:23:13 -05: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
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
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
2197e6401e Implement EAlertSinkInterface in EShellContent.
Use the same alert handling policy as the composer.
2010-10-18 10:57:36 -04:00
776d7f50b5 EShellView: Mark a string for translation. 2010-10-18 10:57:36 -04:00
1e663aa132 Replace EBinding with GBinding.
GObject now does property bindings itself.

Requires GLib >= 2.26.
2010-10-14 07:12:52 -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
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
1c6f2d154e Bug #631320 - GtkObject is gone in GTK3 2010-10-06 19:26:08 +02:00
1b2fefb086 Bug #630390 - Operation stuck: Generating message list (cancelled) 2010-10-06 13:08:41 +02:00
ff397723ac Fix distcheck errors. 2010-10-04 13:53:01 -04:00
9675f18d91 Coding style and whitespace cleanup. 2010-10-03 13:29:20 -04:00
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
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
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
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
ebcce86769 Coding style and whitespace cleanups. 2010-09-11 14:14:04 -04:00
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
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
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
f0d7a4142e Bug 628482 - e_shell_settings_install_property_for_key memory leak 2010-09-01 07:07:28 -04:00
4c05b9e925 Coding style and whitespace cleanup. 2010-08-29 11:22:28 -04:00
8fbcab126e Remove the last traces of dbus-glib. 2010-08-29 07:42:26 -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
4e9050bc1e Whitespace and coding style cleanup. 2010-08-13 21:32:32 -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
78ebd5d8e7 Execute calendar search post startup, not 2010-08-10 15:23:39 +01:00
5c49c70d55 We are not using dbus-glib anymore, don't call dbus_g_thread_init 2010-08-05 01:01:19 +02:00
e919c9724f Bug 625761 - Folder views not preserved after migration 2010-08-02 19:48:54 -04:00
8dcdc60ccc Make EImportAssistant extensible. 2010-07-30 12:10:01 -04:00
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
1d2a02b658 Remove folder-tree-expand-state.xml while migrating. 2010-07-30 08:04:40 -04:00
80d4fed162 Bug 624500 - Missing EggSMClient linker flags in shell 2010-07-30 06:51:33 -04:00
69c904178f Avoid overwriting files while migrating. 2010-07-29 16:36:19 -04:00
eb5afa335d More XDG base directory migration tweaks. 2010-07-28 16:47:39 -04:00
432c2796c9 Migrate ~/.evolution/cache/tmp. 2010-07-28 13:22:26 -04:00
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
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
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