Add e_alert_dialog_get_content_area(), which returns the GtkVBox
containing the primary and secondary labels. Use this instead of
gtk_dialog_get_content_area() to maintain the dialog's left margin
beneath the image.
And generate GTypes for each of them in e-mail-enumtypes.[ch].
Also, the glib-gen.mak script forced me to add a <mail/e-mail.h>
top-level header, which really isn't a bad idea anyway.
TODO: We should do this for calendar and addressbook too.
This marks the end of unintrusive error dialogs, which were too
unintrusive. We now show errors directly in the main window using
the EAlert / EAlertSink framework.
Global variables in shared libraries are a bad idea. EMailBackend now
owns the MailSession instance, which is actually now EMailSession.
Move the blocking utility functions in mail-tools.c to e-mail-session.c
and add asynchronous variants. Same approach as Camel.
Replace EMailReader.get_shell_backend() with EMailReader.get_backend(),
which returns an EMailBackend. Easier access to the EMailSession.
Rewrite the last usage of it in itip-formatter.c to use EAttachments
instead. This also allowed me to kill mail_save_part() in mail-ops.c.
I may need to reevaluate the EAttachment API at some point for all these
fringe EAttachment uses we're accumulating. Having to asynchronously
"load" an EAttachment whose content is already in memory kinda sucks.
This changes the behavior of the function: instead of redrawing
immediately it schedules the redraw from an idle callback. This
allows us to make multiple changes to EMFormat before redrawing.
EMFormatHTML now holds a sealed EWebView instead of a public GtkHTML,
accessible through em_format_html_get_web_view().
Rename e_mail_reader_get_html_display() to e_mail_reader_get_formatter()
and have it return an EMFormatHTML instead of an EMFormatHTMLDisplay,
since that's usually the type you want (or else an EMFormat, but never
an EMFormatHTMLDisplay).