| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Listens for "client-created" signals from its EClientCache. If the
newly-created client is an ECalClient, automatically configure its
default timezone from EShellSettings.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
We require GTK+ 3.4, so no need to check for versions older than that.
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This reverts commit 2b507716b257e6ef98dae8463180dbe718eb7b64.
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.
|
| |
|
|
|
|
|
| |
Drop the pop-up menu item and instead install a key-press-event handler
on all WebKitWebView instances. <Ctrl>+<Alt>+I opens the web inspector.
|
| |
|
| |
|
|
|
|
| |
Restore this commit with a proper bug fix to follow.
|
| |
|
|
|
|
| |
Instead of e_client_utils_open_new() or e_cal_client_new().
|
|
|
|
| |
Instead of e_client_utils_open_new() and e_book_client_new().
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit bf30024dd7973006bf99d0ae509a7f0022368a41, 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.
|
| |
|
|
|
|
| |
e_client_is_opened() always returns TRUE, so skip it.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Clean up resulting deprecation warnings, which were all related to
GtkOrientable consolidation (e.g. gtk_hbox_new() -> gtk_box_new()).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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]
|
|
|
|
| |
I forgot to include this in 3.7.4, but no matter.
|
| |
|
|
|
|
| |
No longer needed since the "imap" backend is gone.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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...)
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Unsubscribable folders are not necessarily deletable.
|
|
|
|
|
| |
This only worked with the legacy IMAP backend, which has now been
removed per bug 665371.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
The previous commit broke MDN send, which this one fixes.
|
| |
|
|
|
|
| |
The path is now XDG-base-dir compliant: ~/.local/share/camel_certs
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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().
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
Replace the individual components of an EMailPartList with a reference
on the EMailPartList itself in EMailFormatContext. Easier to manage.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
Use g_object_unref() instead.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Evolution's Google account module was setting the ECollectionSource's
"identity" property to the account's email address before submitting the
account to E-D-S. Meanwhile, the Google module in E-D-S was syncing the
account user name to the ECollectionSource's "identity" property.
This mismatch resulted in an explicitly specified GMail user name being
overwritten when the account information is submitted. Evolution should
instead set the "identity" property to the account's user name.
|
| |
|
| |
|
| |
|
|
|
|
| |
soup_message_headers_get_list()
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
EMailConfigWebView is an extension that configures EWebView instances.
This used to cover both the email formatter and the email composer, but
with the email formatter now using WebKit/GTK+ and the email composer
still using GtkHtml, the composer was left unconfigured.
Add an EMailConfigWebViewGtkHTML extension that targets EWebViewGtkHTML
instances and applies the relevant settings, and remove all the GtkHTML
contortions from EMailConfigWebView.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Prefer e_source_registry_check_enabled() over e_source_get_enabled()
for most instances where we want to exclude disabled data sources.
|
| |
|
|
|
|
|
| |
The GroupWise backend is dead, and this logic never belonged here in the
first place.
|
|
|
|
| |
GOA-based accounts must only be disabled from gnome-control-center.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Not needed anymore since all modules are resident nowadays.
|
| |
|
|
|
|
| |
e_source_extension_get_source() is now deprecated.
|
|
|
|
| |
Untested, but conforms to the specification as well as I understand it.
|
|
|
|
| |
To synchronize with the forthcoming XOAUTH2 prototype.
|
|
|
|
| |
Also refactor the code to more closely resemble EGDataGoaAuthorizer.
|
| |
|
|
|
|
|
|
| |
Word-wrapped GtkLabels and GtkTables just don't seem to get along.
The vertical allocation for the GtkLabel was way too big. Replace
the GtkTable with a GtkGrid.
|
|
|
|
|
|
|
|
|
|
|
| |
EMailConfigFormatHTML listens for "changed" signals from a GSettings
instance, passing itself as the 'user_data' to the signal handler. But
the signal handler was left connected after EMailConfigFormatHTML was
finalized, resulting in the signal handler receiving a dangling pointer.
Not using g_signal_connect_object() here because of the unresolved
reference leak issue in GObject. The GSettings instance is likely
cached internally and lives well beyond the EMailConfigFormatHTML.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
|
|
|
| |
Follow the usual GObject conventions.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the highlight program cannot be found width AC_PATH_PROGS,
configure will abort with an error message.
You can either
a) install highlight
b) specify the patch with HIGHLIGHT=/path/to/highlight
c) pass --disable-text-highlight to configure to exclude the module
This also makes text-highlight module to fallback to text/plain
formatter when highlight program would crash or fail to ensure
the content is delivered to user.
|
|
|
|
|
|
|
| |
OpenBSD (and maybe other OS) already declare stdout and stdin in <stdio.h>
which breaks evolution build, so prefix both with "pipe_" to prevent clashing.
https://bugzilla.gnome.org/show_bug.cgi?id=685471
|
|
|
|
|
|
|
|
| |
Because we now check for junk filtering software in configure, junk
filtering modules can now safely assume the required junk filtering
software is installed. No more having the module installed but not
the required software. If this invariant is broken, an error will
be shown for each new message received.
|
|
|
|
|
| |
Avoid blocking the available() method with synchronous tests that,
it turns out, do cause a noticable delay.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the spamassassin and sa-learn programs cannot be found with
AC_PATH_PROG, configure will abort with an error message.
You can then either:
a) install the SpamAssassin software
b) specify the path with SPAMASSASSIN=/path/to/spamassassin and/or
SA_LEARN=/path/to/sa-learn
c) pass --disable-spamassassin to configure to exclude the module
This also drops the "spamc" and "spamd" GSettings keys.
|
|
|
|
|
|
|
|
|
|
| |
If the bogofilter program cannot be found with AC_PATH_PROG, configure
will abort with an error message.
You can then either:
a) install the Bogofilter software
b) specify the path with BOGOFILTER=/path/to/bogofilter
c) pass --disable-bogofilter to configure to exclude the module
|
|
|
|
| |
Leftover file from ages past. No longer used.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
When the prefer-plain is set to show only text/plain parts, without showing
suppressed HTML parts as attachments, and the received message contains
only one part, the text/html part, then the preview was completely empty,
which is confusing. With this change, the text/html only messages will
show the suppressed part as attachment regardless the setting.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
When writing a GBindingTransformFunc for a bi-directional binding in the
reverse direction, the "source" and "target" properties of the GBinding
are flip-flopped wrt the transform function. That always throws me.
Just pass the ESource to the tranform function to avoid this confusion.
|
|
|
|
|
| |
webcal:// is a non-standard URI scheme, but still commonly used.
We're using HTTP[S] regardless, so just accept it in the editor.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Contacts view already has "File -> Save as vCard".
This adds "File -> Save as iCalendar" to Calendar/Memos/Tasks views.
|
| |
|
| |
|
|
|
|
| |
multipart/alternative
|
|
|
|
|
|
| |
Asynchronous + synchronous convenience functions.
Uses the EMailLocalFolder enumeration to specify a well-known folder.
|
|
|
|
|
| |
libxml2 changed the API for xmlOutputBuffer incompatibly.
See https://mail.gnome.org/archives/desktop-devel-list/2012-August/msg00004.html
|
|
|
|
|
|
|
|
| |
This had been removing meeting invitations from mail folders when
they were added to calendars which had set "save-schedules", but
it removed them only from summary, thus server had the message still
there, only users didn't see them. As a comment said, this belongs
to GroupWise mail provider anyway, thus I removed it.
|
|
|
|
|
|
|
|
|
|
|
|
| |
These functions now return new references:
camel_session_add_service()
camel_session_list_services()
These functions have been renamed and also return new references:
camel_session_get_service() -> camel_session_ref_service()
camel_session_get_service_by_url() -> camel_session_ref_service_by_url()
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
The evolution-settings capplet was originally designed for Anjal, it was
used in MeeGo as part of the Express Mode effort, but doesn't really fit
in GNOME 3 nowadays (nor did it really fit in GNOME 2, in my opinion).
This is pretty clearly dead weight at this point. The MeeGo developers
have disappeared, and the remaining Evolution developers are not and do
not intend to maintain it. Plus it doesn't even build currently.
|
|
|
|
|
|
|
|
|
| |
Store the Evolution version used to create the backup file in the
evolution.dir file which is part of the tarball.
After restoring the backup file we need to reset the last-used-version
key in GSettings to the version listed in the evolution.dir file so the
proper migration routines run when Evolution is restarted.
|
|
|
|
| |
extension
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverses the removal of the "Mark messages as read" preference in
commit e7247d6d60336861ed5c0ba05dd64e29f728349c.
I apparently misjudged the popularity of this preference, as there's
been a surprising amout of backlash and confusion as to its removal on
the mailing list, IRC channel, and various distro-support forums.
So, "mea culpa" for removing that one. Haven't heard a peep about the
other removed preferences, however, so they will stay gone.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This adds 'Format as' submenu to the preview pane context menu.
The submenu is available only for text/plain parts or parts
with a source code (we support about 40 various types). Using
the 'highlight' utility, the formatter processes the part and
highlights the source code it contains.
(discussion in bug #680026)
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
libgweather 3.5.0 changed API compared to API, and some small
changes are needed in the configuration widgets.
https://bugzilla.gnome.org/show_bug.cgi?id=678984
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The story on this is a question [1] was recently posed to the mailing
list about what's the different between "Recent Messages" and "Last 5
Days' Messages" as listed in the Show: combo box, and even I could not
answer before looking up the query expression for "Recent Messages" in
the source code (messages received in the past 24 hours, it turns out).
I can't defend why we need both options, and "Last 5 Days' Messages"
is less ambiguous and overlaps the results for "Recent Messages", so
"Last 5 Days' Messages" seems sufficient to me. There are numerous
ways to re-create the "Recent Messages" query if it's still desired:
saved search, search folder, or just sort messages by date received.
[1] https://mail.gnome.org/archives/evolution-list/2012-July/msg00044.html
|
| |
|
|
|
|
| |
Use e_mail_folder_expunge() instead.
|
|
|
|
| |
Use e_mail_reader_refresh_folder() instead.
|
|
|
|
| |
Replaces e_mail_session_unsubscribe_folder().
|
|
|
|
| |
Fetches the CamelFolder asynchronously, then deletes it asynchronously.
|
|
|
|
|
|
|
| |
em_folder_tree_get_selected_folder() currently blocks, and I'm about to
remove the function. But there's a couple places where we just need to
block for now, else it would require a significant rewrite. So execute
the em_folder_tree_get_selected_folder() logic manually in those places.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will force Evolution to reconnect to the service using the current
settings. However this is not a complete solution. If the new settings
now point to a completely different mail account, we leave behind cached
messages and database tables from the previous account such that you end
up with some weird hybrid of the previous account and current account.
I guess for now the answer is "don't do that", but we should try to
handle that more gracefully in the future -- more for architectural
correctness than it being a common real world use case.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Fix regression from commit 99a875ed which has broken displaying
of suppressed HTML parts as attachments when the HTML part is embedded
in a multipart/* container.
|
| |
|
|
|
|
|
| |
Point modules/itip-formatter/plugin/Makefile.am to the source files it
needs from the module directory. Have to rebuild them for the plugin.
|
|
|
|
| |
Private header, but still need to distribute it.
|
|
|
|
| |
Private header, but still need to distribute it.
|
|
|
|
| |
Private header, but still need to distribute it.
|
| |
|
|
|
|
|
|
| |
Commit 6905e9ed885cd1d5be26106d64831a6d35c36bd9 permanently enabled the
on-disk cache in EDS for Google Contacts address books, so the option is now
redundant.
|
|
|
|
| |
SSL is always enabled by libgdata.
|
| |
|
|
|
|
| |
G_DEFINE_TYPE macros define a static "parent_class" variable.
|
|
|
|
| |
It's redundant. Just set the display name on one of the ESources.
|
|
|
|
|
| |
A more reasonable default than including all address books by default.
Weeds out large, remote address books that can take forever to query.
|
|
|
|
| |
Shortens the Message menu a little for low screen resolutions.
|
| |
|
| |
|
|
|
|
| |
EUri is now deprecated.
|
|
|
|
|
| |
EPlugin is deprecated. These bindings have never been used for anything
and they're never going to be used at this point. Remove the dead weight.
|
| |
|
| |
|
|
|
|
|
|
| |
For consistency with the Preferences window. We assume the display
names are server-assigned and not user-assigned, at least not assigned
through Evolution.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
ECalSourceConfig drags in no additional dependencies, and although we do
publish a libevolution-calendar.so, this keeps all the ESource config UI
in one place so it can more easily be moved to Evolution-Data-Server.
|
|
|
|
|
|
|
|
|
|
|
| |
EBookSourceConfig drags in no additional dependencies, and allows us to
delay publishing a libevolution-addressbook.so since 3rd party packages
will need to subclass EBookSourceConfig.
The address book source code will need to be flattened into a single
library before we could publish a libevolution-addressbook.so anyway.
That would be a good thing to do regardless -- Evolution has way too
many internal libraries -- but it's out of scope at the moment.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
We have built-in ESources for the 'local' and 'vfolder' mail stores,
and can now track their enabled state as we would any other mail store.
|
| |
|
|
|
|
|
|
|
|
|
| |
The new formatter was ignoring selected headers, always displaying
only From, To, Subject and Date (default headers).
Handling of the currently displayed headers has been moved to
EMailConfigFormatHTML extension, because it is related to
configuration of EMailFormatter, rather then EMailReader.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
audio-inline, itip-formatter, prefer-plain, tnef-attachments
and vcard-inline plugins were converted to modules so that they
can fit into concept of the new formatter.
Every module still installs .eplug file, because there is no
suitable API at the moment to register plugins to the plugins dialog
and to extend the Preferences dialog.
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This breaks a good chunk of logic out of EMAccountEditor and hopefully
makes it less brittle. Because honestly, every time I fix one thing in
EMAccountEditor it breaks three other things. It's unmaintainable.
|
|
|
|
|
|
| |
Adds an extra page to EMailConfigNotebook for 'imap' accounts.
Replaces the 'imap-features' plugin.
|
|
|
|
|
|
| |
Registers the "On The Web" backend in ECalSourceConfig widgets.
Replaces the 'calendar-http' plugin.
|
|
|
|
|
|
| |
Registers the "Weather" backend in ECalSourceConfig widgets.
Replaces the 'calendar-weather' plugin.
|
|
|
|
|
|
| |
Registers the "Google" backend in ECalSourceConfig widgets.
Replaces the 'google-account-setup' plugin.
|
|
|
|
| |
Registers the "Contacts" backend in ECalSourceConfig widgets.
|
|
|
|
|
|
| |
Registers the "CalDAV" backend in ECalSourceConfig widgets.
Replaces the 'caldav' plugin.
|
|
|
|
|
|
| |
Registers the "On This Computer" backend in ECalSourceConfig widgets.
Replaces the 'calendar-file' plugin.
|