Commit Graph

3 Commits

Author SHA1 Message Date
83134a75c3 EWebView: Add an "image-save" action.
There's now enough hooks in EWebView that it can take over image saving
from EMailDisplay / EMailReader, with the added perk that a "Save Image"
pop-up menu item now appears for images in ALL preview panes.
2013-07-27 21:24:02 -04:00
3eda7a50de Add e_web_view_cursor_image_copy().
Asynchronously copies the image under the cursor to the clipboard.

This replaces the "cursor-image" property, which attempts to match the
image URI to a subresource from WebKitWebDataSource.  The problem with
that approach is EMailDisplay redirects several URI schemes to its own
custom request handlers which further mutate the URI.  So for example,
a text/html message may use a "cid:" URI to refer to an embedded image,
which EMailDisplay transforms to a "mail:" URI and finally to a "data:"
URI.  The final image URI might not be derivable from the original URI
without retracing the SoupRequest.

The "image-copy" action now calls e_web_view_cursor_image_copy().

This also adds an explicit requirement on gdk-pixbuf-2.0 >= 2.24 for
gdk_pixbuf_new_from_stream_async() / finish().

New functions:

  e_web_view_cursor_image_copy()

Removed functions:

  e_web_view_get_cursor_image()
  e_web_view_set_cursor_image()
2013-07-27 21:24:01 -04: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