Commit Graph

1199 Commits

Author SHA1 Message Date
15c32eafdb Bug 640091 - Improve error handling during send post-processing
If a newly-composed message was successfully sent but an error occurred
during post-processing (outgoing filters or appending to a Sent folder),
close the composer window and show an alert in the main window.
2011-06-29 18:41:21 +02:00
59b03835d7 Bug #553438 - Deletes lines of a reply when changing address 2011-06-29 18:41:19 +02:00
0d2d76c021 GtkSelectionData is sealed in GTK3.
Have to use accessor functions, no pointer deferencing.
2011-06-29 18:41:16 +02:00
97fac153c5 Bug #567879 - Add View >> Gallery Option In Email Composer 2011-06-29 18:41:13 +02:00
ca3faa17a9 Free/busy meeting view doesn't work due to non-working extension 2011-06-29 18:41:08 +02:00
4db00fa9f7 Bug #404570 - Ctrl-R / NNTP doesn't focus the new message 2011-06-29 18:41:05 +02:00
616f0b140b EActivity: Add an "alert-sink" property.
This is just for convenience, EActivity does not use this property.

Especially useful in async function callbacks when the operation
failed and now you have to do something useful with the GError.
2010-11-09 23:33:20 +01:00
4a929caada Pass an EAlertSink to e_alert_sink_submit_alert().
Passing a random GtkWidget and then searching its ancestors for an
EAlertSink turned out to be not as useful as I thought.  Most of the
time we know about and have access to the widget that implements
EAlertSink, so just pass it directly as an EAlertSink.
2010-11-09 23:33:20 +01:00
02b36ad15e Fix build break. 2010-11-09 23:33:19 +01:00
20651e4f09 Set Date: when building a CamelMimeMessage in composer. 2010-11-09 23:33:19 +01:00
f544e10b71 Skip writing to Outbox when sending.
When sending a message from a composer window, it seems pointless to
write message to Outbox only to immediately read it back and mark it
for deletion.  Instead, bypass the Outbox folder when sending, and if
an error occurs, offer to save the message to Outbox instead.
2010-11-09 23:33:19 +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
d4e5485e02 Bug 632127 - Composer is editable while sending message 2010-10-14 16:32:29 -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
4118d671d4 Composer: Show cancellable operations and errors inline.
'Send' and 'Save Draft' are now asynchronous and run outside of
Evolution's MailMsg infrastructure.

Add an EActivityBar to the composer window so these asynchronous
operations can be tracked and cancelled even in the absense of a main
window.  Also add an EAlertBar to the composer window so error messages
can be shown directly in the window.

Instead of calling e_alert_dialog_run_for_args(), call e_alert_submit()
and pass the EMsgComposer as the widget argument.  The EMsgComposer will
decide whether to show an EAlertDialog or use the EAlertBar, depending
on the GtkMessageType of the alert.
2010-10-12 13:59:00 -04:00
1c6f2d154e Bug #631320 - GtkObject is gone in GTK3 2010-10-06 19:26:08 +02:00
0e4c54eddc Messin around with EAlerts.
Trying out a new interface called EAlertSink.  The idea is to centralize
how errors are shown to the user.  A GtkWindow subclass would implement
the EAlertSink interface, which consists of a single method:

    void  (*submit_alert)  (EAlertSink *alert_sink, EAlert *alert);

The subclass has complete control over what to do with the EAlert,
although I imagine we'll wind up implementing various alert-handling
policies as standalone widgets such as EAlertDialog.  I'd like to try
an EAlertInfoBar.

Code that would otherwise display an error dialog itself would instead
pass the EAlert to an appropriate EAlertSink and be done with it.

Nothing is final yet.  Still hacking on EAlert trying to find an API
that feels right for these use cases.
2010-09-29 21:11:44 -04:00
31b57ed038 Adapt to Camel API changes. 2010-09-28 11:35:55 -04:00
a91eeb6471 Pass GCancellable to Camel. 2010-09-28 11:35:55 -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
e6067ccb6c Bug 616073 - Various translation issues 2010-09-10 18:51:26 -04:00
d5dae027a8 Bug 629049 - Memory leak in e_composer_pose_header_set_account() 2010-09-08 09:09:55 -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
035fbcd841 Composer autosave cleanups.
This simplifies the async autosave logic and improves error handling.

Hoping this will solve bug #616987 but I've yet to reproduce it myself.
2010-08-30 14:26:00 -04:00
4c05b9e925 Coding style and whitespace cleanup. 2010-08-29 11:22:28 -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
6cb0cbd0be Pass an EShell to EMsgComposer instances.
Reduce the composer's dependency on e_shell_get_default().
2010-08-13 20:56:33 -04:00
4032075425 Bug 624913 - Disallow drag-and-drop within the same attachment bar
Adds a boolean "dragging" property to the EAttachmentView interface,
which becomes TRUE when the user start a drag from the attachment view.
e_attachment_view_drag_motion() and e_attachment_view_drag_drop() both
return FALSE when this property is set.

Also, do not register the entire EMsgComposer window as a drag
destination.  Just intercept drag signals from the GtkHTML widget.

Requires gtkhtml commit 344eb5e to fully work correctly.
2010-08-13 08:09:37 -04:00
5f49fa2561 Bug 323142 - Signature missing when handling mailto: URI with body part 2010-08-12 12:22:14 -04:00
a79893c002 EMsgComposer cleanups. 2010-08-12 12:17:45 -04:00
410b996d54 Bug #624891 - Various compiler warnings in git/master 2010-07-22 11:13:10 +02:00
eb29179da6 Coding style and whitespace cleanup. 2010-07-11 22:25:06 -04:00
a0383d484b Bug 623702 - SEGV on redirecting message 2010-07-10 10:10:05 -04:00
137b0743dd Migrate from CamelException to GError. 2010-07-08 14:37:52 -04:00
36f1f29b9a Fix transience problems with ENameSelectorDialogs ... 2010-07-08 16:10:59 +01:00
179db75ce0 Bug #620815 - Memory leaks with Evolution 2010-06-24 20:43:16 +02:00
c37352e589 Composer: Append drag dest targets to the GtkHTML widget.
This is so that GtkHTML doesn't have to register drag destination
targets that that it can't handle itself, like "text/calendar" and
"text/x-vcard".
2010-06-23 10:51:51 -04:00
402166be54 Composer: Only hide single From account in express mode.
At least until we have another way to insert signatures.

Obvious solution: Insert -> Signature -> (list of your signatures)
2010-06-20 17:34:27 -04:00
5d0878967e Coding style and whitespace cleanup. 2010-06-20 08:06:19 -04:00
dfb3b918b0 Bug #617557 - Quits without asking user to save unfinished messages
The second attempt.
2010-06-15 15:10:05 +02:00
ffc019e36f Coding style and whitespace cleanups. 2010-06-06 20:09:08 -04:00
0b1cd2dd5b Coding style and whitespace cleanup. 2010-05-26 17:19:41 -04:00
c9ec8c3f4d Merge branch 'express2' 2010-05-26 13:09:33 -04:00
9653887891 Coding style and whitespace cleanup. 2010-05-25 10:15:32 -04:00
f49077cfb5 Merge branch 'gnome-2-30' into express2 2010-05-25 09:14:51 -04:00
6139fb4d0b Bug #617557 - Quits without asking user to save unfinished messages 2010-05-21 17:33:59 +02:00
8e3af3094e Bug #617557 - Quits without asking user to save unfinished messages 2010-05-21 17:32:57 +02:00
d3c7420fb9 get the composer dialog size right on MeeGo 2010-05-21 16:25:26 +01:00
7aa52ff5ca Bug #220672 - Excessive autosaving uses lots of resources 2010-05-19 23:48:58 +02:00