Commit Graph

1246 Commits

Author SHA1 Message Date
9a0b1266b5 Teach EMailExtensionRegistry to find extensions.
Restore this commit with a proper bug fix to follow.
2013-02-01 08:44:50 -05:00
763081aa86 Fix up error handling around e_book/cal_client_connect_finish(). 2013-01-30 12:45:55 -05:00
f19241d136 Use e_cal_client_connect().
Instead of e_client_utils_open_new() or e_cal_client_new().
2013-01-30 09:35:27 -05:00
e583928e04 Use e_book_client_connect().
Instead of e_client_utils_open_new() and e_book_client_new().
2013-01-30 08:37:15 -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
6d7b644e8e Bug #692775 - Double-quoting message with HTML and text 2013-01-29 14:49:27 +01:00
3fa4dfc54d Remove usage of deprecated e_client_is_opened().
e_client_is_opened() always returns TRUE, so skip it.
2013-01-25 15:47:51 -05:00
60c5c7170f E_CLIENT_ERROR_BUSY is no longer used. 2013-01-24 12:10:31 -05:00
bf250a0198 Bug #680537 - Reply to individual message in digest generates empty body 2013-01-23 20:06:07 +01:00
fe8e579347 Bug #639698 - Crash in mail_shell_view_execute_search() 2013-01-23 15:25:02 +01:00
b24ca598cb evolution-module-mail.c: Remove unused declaration. 2013-01-20 20:56:16 -05:00
8a71509ee4 Add a "settings" module.
Collect all the "config" extensions from the "addressbook", "calendar",
and "mail" modules into one place.  These extensions typically just bind
GObject properties of extensible classes to app-specific GSettings keys.
2013-01-20 20:56:16 -05:00
8e2902eefc Bump GDK_VERSION_MIN_REQUIRED to GDK_VERSION_3_2.
Clean up resulting deprecation warnings, which were all related to
GtkOrientable consolidation (e.g. gtk_hbox_new() -> gtk_box_new()).
2013-01-19 19:08:01 -05:00
722a27e850 Bug #692005 - Changing character encoding doesn't work 2013-01-18 18:34:56 +01:00
dff703a1ad Bump libsoup dependency to 2.40.3
This removes workarounds for below libsoup bugs and makes trust-prompt
for WebDAV based backends work better, by checking also server certificates.

 * soup_message_get_https_status() now returns the certificate
   and flags for unsuccessful https connections as well as
   successful ones. [bug #690176]

 * Fixed a deadlock when calling soup_session_abort() on
   a SoupSessionSync in some cases. [bug #691399]
2013-01-18 11:57:01 +01:00
d545bdb78c Avoid deprecated libedataserver APIs.
I forgot to include this in 3.7.4, but no matter.
2013-01-15 09:43:40 -05:00
a55f24dfb3 Adapt to CamelSession API changes. 2013-01-12 14:15:57 -05:00
27ac203901 Remove EMailConfigImapBackend.
No longer needed since the "imap" backend is gone.
2013-01-12 07:40:41 -05:00
b1ed35f70d Coding style and whitespace cleanup. 2013-01-10 11:20:32 -05:00
957ff43705 Bug #690177 - Use trust-prompt for certificate verification in WebDAV backends 2013-01-09 23:05:25 +01:00
268b609f9d Bug #691134 - New contact lists always saved to a default book 2013-01-08 22:15:38 +01:00
7f93dcab4d Bug 691133 - Evolution creates 'highlight' zombies
Evolution spawns the 'highlight' program with these flags:

    G_SPAWN_SEARCH_PATH
    G_SPAWN_DO_NOT_REAP_CHILD

G_SPAWN_SEARCH_PATH is not needed because configure already determines
the absolute path to the 'highlight' program.  G_SPAWN_DO_NOT_REAP_CHILD
results in zombie 'highlight' processes.  Remove both flags.
2013-01-04 10:45:17 -05:00
f314742b79 book-config-google: Populate [Authentication] group.
Set the Host to "www.google.com" and Method to "ClientLogin".

Don't need to worry about migrating existing Google Contacts sources,
which had "plain/password" as the auth method.  The Google EBookBackend
only explicitly checks whether the auth method is "OAuth2", and assumes
"ClientLogin" otherwise.

(I suppose the registry service could tweak older key files, but meh...)
2012-12-31 10:41:54 -05:00
800a5828e5 Move CamelSaslXOAuth2 to libemail-engine.
This now uses e_source_get_oauth2_access_token_sync() instead of talking
directly to GNOME Online Accounts and therefore no longer has to live in
the "online-accounts" module.

The "online-accounts" module will be removed in Evolution 3.9.1, when we
can require GNOME Online Accounts 3.8.  Evolution 3.8 will still support
older versions of GNOME Online Accounts, which use OAuth 1.0a tokens for
Google authentication.
2012-12-31 10:22:54 -05:00
53937a3dbd Bug 588216 - 'Unsubscribe' disabled for newsgroups
Unsubscribable folders are not necessarily deletable.
2012-12-28 14:25:54 -05:00
c418c7d69a Remove the "imap-features" module.
This only worked with the legacy IMAP backend, which has now been
removed per bug 665371.
2012-12-24 09:59:07 -05:00
79f9fe7f77 e-config: Remove unused functions.
e_config_add_skip_check()
e_config_class_remove_factory()
e_config_create_window()
e_config_page_get()
e_config_page_next()
e_config_page_prev()
e_config_set_page_is_finish()

Also remove E_CONFIG_ASSISTANT and all the assistant support therein.
2012-12-16 18:07:54 -05:00
6faf671382 e-passwords: Remove unused function parameters. 2012-12-16 17:03:54 -05:00
6fecc5899e Fix compiler warnings. 2012-12-15 08:16:36 -05:00
bed06d9ec3 Move the contact map widgets to addressbook/gui/widgets.
Move the supporting widgets for the contact maps feature alongside
EABContactDisplay.  Removing them from libeutil helps isolate our usage
of libchamplain so it's not imposed on the entire application, and even
3rd party software.  That libchamplain is an optional dependency only
further complicates the matter.

Ideally I'd like to somehow isolate this feature in an extension module,
but we currently lack sufficient hooks for such an extension.  So this
arrangement will have to suffice for now.
2012-12-12 14:33:47 -05: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
0aa0eb22c1 Bug #689966 - MDN bar shown in Sent folder
The previous commit broke MDN send, which this one fixes.
2012-12-10 20:54:50 +01:00
05a2e72079 Bug #689966 - MDN bar shown in Sent folder 2012-12-10 19:51:29 +01:00
8972ef83f6 backup-restore: Remove references to ~/.camel_certs.
The path is now XDG-base-dir compliant: ~/.local/share/camel_certs
2012-12-08 18:34:15 -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
c10235e6dd EMailParserExtension: Convert get_flags() to an enum field.
Of the parser extensions that override get_flags(), they all return a
fixed set of flags.  So we don't need an instance of the extension to
obtain its flags.  Just make it an EMailParserExtensionFlags field in
the class structure.
2012-12-07 14:01:05 -05:00
cab6eac8f1 Convert EMailParserExtension to an abstract class.
With the previous changes, all parser extensions derive from
GObjectClass and implement the EMailParserExtensionInterface.

Simplify things further by making EMailParserExtension an abstract base
class so parser extensions are now just direct subclasses and need not
bother with implementing GObject interfaces.
2012-12-07 14:01:05 -05:00
d9699159f0 EMailFormatterExtension: Convert get_description() to a string field.
Of the formatter extensions that provide a description, they all use a
static string.  So we don't need an instance of the extension to obtain
its description.  Just make it a string field in the class structure.
2012-12-07 14:01:05 -05:00
7885426c2b EMailFormatterExtension: Convert get_display_name() to a string field.
Of the formatter extensions that provide a display name, they all use a
static string.  So we don't need an instance of the extension to obtain
its display name.  Just make it a string field in the class structure.
2012-12-07 14:01:05 -05:00
00b211b0f5 Convert EMailFormatterExtension to an abstract class.
With the previous changes, all formatter extensions derive from
GObjectClass and implement the EMailFormatterExtensionInterface.

Simplify things further by making EMailFormatterExtension an abstract
base class so formatter extensions are now just direct subclasses and
need not bother with implementing GObject interfaces.
2012-12-07 14:01:05 -05:00
54455ca1ad Remove EMailExtension.
EMailExtension is now too trivial to keep as a standalone interface.
Add a 'mime_types' string array to the EMailFormatterExtension and
EMailFormatterParser interface structs.

Alter e_mail_extension_registry_add_extension() to take a 'mime_types'
string array and the GType of an extension to instantiate, rather than
the extension instance directly.

e_mail_extension_registry_remove_extension() is no longer needed.
2012-12-07 14:01:05 -05:00
9d34f72ec1 EMailExtension: Replace mime_types() method with a string array.
In all implementations for EMailExtension, the MIME type list is a
static string array -- with the single exception of the text-highlight
module, where the MIME type list is dynamically assembled once.

Replace the mime_types() method with a "mime_types" string array in the
EMailExtensionInterface struct.  Then the list of MIME types supported
by the class implementing the EMailExtensionInterface can be obtained
without requiring an instance of the class.
2012-12-07 14:01:04 -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
2f0d83cf74 EMailFormatterContext: Keep a reference to EMailPartList.
Replace the individual components of an EMailPartList with a reference
on the EMailPartList itself in EMailFormatContext.  Easier to manage.
2012-12-07 14:01:04 -05:00
ae6344a22b Bug #315317 - Add option to expunge messages on folder leave 2012-12-04 19:33:29 +01:00
ab3f65a15e Address couple issues found by a Coverity scan 2012-11-30 15:30:45 +01:00
d2fb5ee1a8 Avoid using GdkEventButton directly in certain places.
Prefer dealing with GdkEvent pointers and using accessor functions like
gdk_event_get_button().

This is complicated by the fact that some GtkWidget method declarations
still use GdkEventButton pointers, and synthesizing button events pretty
much requires direct GdkEventButton access.  But GDK seems to be nudging
itself toward sealing the GdkEvent union.  Likely to happen in GDK4.

Mainly clean up signal handlers and leave method overrides alone for now.
2012-11-29 13:24:24 -05:00
0b9efdacc1 Avoid gdk_cursor_unref().
Use g_object_unref() instead.
2012-11-29 09:12:30 -05:00
8355f29a5d Bug #671628 - Size of backup window is big 2012-11-28 16:22:21 +01:00