Commit Graph

37 Commits

Author SHA1 Message Date
e95f67eb8a S/MIME mail parser not used, but compiled
Due to missing config.h the ENABLE_SMIME was not declared, thus the type
for the S/MIME parser was not registered, neither used, which showed
S/MIME signed or encrypted messages as attachments, instead of deciphering
their content.
2015-02-12 12:07:31 +01:00
197c8e1274 EMailParser: Forgot to unref CamelSession 2014-02-20 20:10:44 +01:00
b21733d067 Bug 721545 - License text contains obsolete FSF postal address 2014-01-07 16:05:51 -05:00
45a31136e9 Remove audio-inline module.
Drop our explicit gstreamer requirement and merge audio support directly
into libevolution-mail-formatter.  We now use the HTML5 <audio> tag and
let WebKit show much nicer playback controls, with volume and seeking.
2013-12-05 12:09:51 -05:00
9058c6f85d Make EAttachment a little more thread-safe.
EAttachment is now used from worker threads by EMailFormatterAttachment,
so add some thread-safe accessor functions to eliminate potential races.

Added thread-safe functions:

    e_attachment_dup_disposition()
    e_attachment_ref_file()
    e_attachment_ref_file_info()
    e_attachment_ref_icon()
    e_attachment_ref_mime_part()
    e_attachment_dup_description()
    e_attachment_dup_thumbnail_path()

Renamed functions:

    e_attachment_get_mime_type() -> e_attachment_dup_mime_type()

Removed non-thread-safe functions:

    e_attachment_get_file()
    e_attachment_get_file_info()
    e_attachment_get_icon()
    e_attachment_get_mime_part()
    e_attachment_get_description()
    e_attachment_get_thumbnail_path()
2013-05-23 16:36:02 -04:00
256422cab2 Attachment-related cleanups. 2013-05-23 16:36:01 -04:00
f9ffe64723 Convert EMailPart to a GObject.
EMailPart is reference-counted, subclassed, and allows a custom
finalize function.  There's no excuse for it not to use GObject.
2013-05-19 13:07:22 -04:00
ca09edf8fa Add e_mail_part_get_is_attachment(). 2013-05-19 13:07:21 -04:00
875746e0ef Add e_mail_part_set_mime_type(). 2013-05-19 13:07:21 -04:00
0ee556d346 Add e_mail_part_get_mime_type(). 2013-05-19 13:07:21 -04:00
5bea269ce8 Add e_mail_part_get_cid(). 2013-05-19 13:07:20 -04:00
c025ffbb29 Add e_mail_part_get_id(). 2013-05-19 13:07:20 -04:00
cd5a55f981 em-format cleanups. 2013-05-19 13:07:20 -04:00
60d1c3054a G_PRIORITY_HIGH_IDLE is sufficient to beat GTK+ redraws.
GTK+ uses (G_PRIORITY_HIGH_IDLE + 20) for redrawing operations, which is
actually a slightly lower priority than G_PRIORITY_HIGH_IDLE.  Therefore
for our purpose, G_PRIORITY_HIGH_IDLE is sufficient.
2013-02-08 14:21:42 -05:00
9c6a7673b8 Add comments around g_idle_add() changes 2013-02-08 18:26:49 +01:00
eb9e927926 Bug #683867 - Schedule actions with higher idle priority 2013-02-08 18:26:48 +01:00
6ba0a6a95b Revert "Bug #683867 - Schedule actions with higher idle priority"
This reverts commit 2b507716b2.

The commit contains not a single comment as to why these custom priority
values are being used.  The rationale needs to be documented in the code,
either at each call point or preferrably at a centralized priority value
definition.
2013-02-08 07:03:26 -05:00
2b507716b2 Bug #683867 - Schedule actions with higher idle priority 2013-02-08 12:37:30 +01:00
9a0b1266b5 Teach EMailExtensionRegistry to find extensions.
Restore this commit with a proper bug fix to follow.
2013-02-01 08:44:50 -05:00
57adde4be6 Revert "Teach EMailExtensionRegistry to find extensions."
This reverts commit bf30024dd7, because
it breaks EMailFormatter/Parser extensions, like the prefer-plain.
The thing is that the internal formatters/parsers (also extensions)
should be always added first, and only after then can be added extended
extensions, which are used before those internal. This constraint was not
satisfied with the reverted commit, the order of extension registration
was unpredictable, depended on GType.
2013-01-29 16:31:58 +01:00
d09d8de870 Consolidate base utility libraries into libeutil.
Evolution consists of entirely too many small utility libraries, which
increases linking and loading time, places a burden on higher layers of
the application (e.g. modules) which has to remember to link to all the
small in-tree utility libraries, and makes it difficult to generate API
documentation for these utility libraries in one Gtk-Doc module.

Merge the following utility libraries under the umbrella of libeutil,
and enforce a single-include policy on libeutil so we can reorganize
the files as desired without disrupting its pseudo-public API.

   libemail-utils/libemail-utils.la
   libevolution-utils/libevolution-utils.la
   filter/libfilter.la
   widgets/e-timezone-dialog/libetimezonedialog.la
   widgets/menus/libmenus.la
   widgets/misc/libemiscwidgets.la
   widgets/table/libetable.la
   widgets/text/libetext.la

This also merges libedataserverui from the Evolution-Data-Server module,
since Evolution is its only consumer nowadays, and I'd like to make some
improvements to those APIs without concern for backward-compatibility.

And finally, start a Gtk-Doc module for libeutil.  It's going to be a
project just getting all the symbols _listed_ much less _documented_.
But the skeletal structure is in place and I'm off to a good start.
2012-12-12 14:33:43 -05:00
bf30024dd7 Teach EMailExtensionRegistry to find extensions.
Now we have the following extension points in the GType hierarchy:

   E_TYPE_MAIL_FORMATTER_EXTENSION
   E_TYPE_MAIL_FORMATTER_PRINT_EXTENSION
   E_TYPE_MAIL_FORMATTER_QUOTE_EXTENSION
   E_TYPE_MAIL_PARSER_EXTENSION

A registry just needs to be given one of these extension points, and it
can use g_type_children() to find and load all registered extensions.

This eliminates e-mail-format-extensions.[ch] as well as the dynamic
loaders I added a few commits back.  Dynamically loaded extensions are
now easier to register, at the cost of internal extensions being a tad
more cumbersome to register.  Fair tradeoff, imo.

This also makes e_mail_extension_registry_add_extension() a private
function used only by e_mail_formatter_extension_registry_load() and
e_mail_parser_extension_registry_load().
2012-12-07 17:40:28 -05:00
a5b217e49e e_mail_parser_base_init(): Register internal extension types. 2012-12-07 15:07:14 -05:00
3924dc759d EMailParserExtension: Collect EMailParts in a GQueue.
Collect EMailParts in a GQueue provided to the EMailParserExtension,
and change the return type of parse() to gboolean to indicate whether
the given CamelMimePart was handled (even if no parts were added to
the output GQueue).

This avoids the awkward corner case of a parser extension returning a
linked list node with a NULL data member to indicate the CamelMimePart
was handled but no EMailParts produced, and then having to watch out
for that NULL data member corner case throughout the application.

Also, remove the GCancellable parameter from e_mail_parser_error() and
e_mail_parser_wrap_as_attachment() since neither function blocks.
2012-12-07 14:01:04 -05:00
91822b42dc Make EMailPartList thread-safe.
Exposing data members in the public struct is unwise, especially when
EMailPartList is used from multiple threads.  Instead keep the members
private and provide a set of thread-safe functions to manipulate them.
2012-12-07 14:01:04 -05:00
56975aec6a Further EMailParser cleanups. 2012-12-04 13:10:53 -05:00
0862979d13 mail_parser_run(): Eliminate a dead code branch.
There's no need to check whether the 'parsers' GQueue is NULL since we
assert that it's non-NULL just a few lines above.
2012-12-04 12:01:43 -05:00
ab3f65a15e Address couple issues found by a Coverity scan 2012-11-30 15:30:45 +01:00
2c4ae5e768 Coding style and whitespace cleanup. 2012-11-10 15:54:43 -05:00
704b78d23b Replace deprecated GLib symbols (as of GLib 2.34.x) 2012-11-06 16:21:37 +01:00
a5bbf35da5 Fix all 'may be used uninitialized' compiler warnings 2012-08-20 13:06:23 +02:00
c85109fc32 Coding style and whitespace cleanup. 2012-08-19 14:17:55 -04:00
0512391cc3 Bug #680123 - Freeze on message/disposition-notification email parsing 2012-07-18 15:12:08 +02:00
ca9dfde2c3 Add CamelDebug to e_mail_parser_parse_sync 2012-06-27 11:04:32 +02:00
cc8bf823ec Coding style and whitespace cleanup. 2012-06-24 20:31:43 -04:00
bdf653416b Remove a leftover debug message 2012-06-07 09:32:50 +02:00
5b8340563c Mail formatter rewrite
All mail-parsing and formatting code has been moved to em-format.
Parsing is handeled by EMailParser class, formatting by EMailFormatter.
Both classes have registry which hold extensions - simple classes
that do actual parsing and formatting. Each supported mime-type
has it's own parser and formatter extension class.
2012-06-06 15:27:19 +02:00