| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
In particular, GOA's Google provider uses OAuth 2.0 now, so we can drop
the OAuth 1.0a support in CamelSaslXOAuth which was GMail-specific, and
with it the entire "online-accounts" module in Evolution. Evolution no
longer links to libgoa-1.0 at all.
|
|
|
|
|
|
|
| |
This accidentally got dropped during the "account-mgmt" project.
As much as I loathe EConfig, the "Automatic Contacts" plugin is useless
without its Preferences page in the Contacts section.
|
|
|
|
| |
Replaces e_cal_model_get_default_client(), which was not thread-safe.
|
|
|
|
|
|
|
|
| |
Was not thread-safe because it did not reference the return value.
The function was only used to implement the Refresh action on the
sidebar menu. e_client_selector_ref_cached_client() works better
for this anyway.
|
|
|
|
|
|
|
| |
Replaces e_cal_model_get_client_list().
Does the same thing, except the returned ECalClient instances are
referenced for thread-safety.
|
|
|
|
|
|
|
| |
GDK_MOD1_MASK is ill defined across various keyboards, apparently.
Use Ctrl + Shift + I instead, which happens to match what Chrome uses
to bring up its web inspector.
|
| |
|
|
|
|
|
|
| |
This removes all traces of Express Mode from all but the contact editor
and calendar appointment editor. Need to evaluate the remaining cases
individually.
|
|
|
|
| |
No longer needed.
|
|
|
|
| |
No longer needed. Use GtkUIManager directly.
|
|
|
|
| |
No longer needed.
|
| |
|
| |
|
|
|
|
|
|
| |
The default value for these GSettings keys is an empty string. The
mapping function should handle empty strings by falling back to the
appropriate default ESource.
|
| |
|
|
|
|
|
|
|
|
| |
EShellSettings predates GSettings and is no longer necessary.
GSettings allows binding GObject properties to GSettings keys,
with optional mapping functions. That fulfills the purpose of
EShellSettings.
|
|
|
|
|
|
|
|
| |
EShellSettings predates GSettings and is no longer necessary.
GSettings allows binding GObject properties to GSettings keys,
with optional mapping functions. That fulfills the purpose of
EShellSettings.
|
|
|
|
|
|
|
|
| |
EShellSettings predates GSettings and is no longer necessary.
GSettings allows binding GObject properties to GSettings keys,
with optional mapping functions. That fulfills the purpose of
EShellSettings.
|
|
|
|
|
|
| |
Replaces "paned-view-headers-state", which was defined as an integer for
some stupid reason. Not bothering to migrate the old setting since it's
one button click.
|
|
|
|
|
|
| |
Replaces the "load-http-images" setting, which is now deprecated.
The new setting uses an enum type compatible with EMailImageLoadingPolicy.
|
|
|
|
|
|
| |
Replaces the "reply-style" setting, which is now deprecated.
The new setting uses an enum type compatible with EMailReplyStyle.
|
|
|
|
|
|
| |
Replaces the "forward-style" setting, which is now deprecated.
The new setting uses an enum type compatible with EMailForwardStyle.
|
| |
|
|
|
|
| |
EWeekView would like to use them too, please.
|
|
|
|
| |
Far easier to deal with than flags.
|
|
|
|
|
|
|
|
|
|
|
|
| |
This class is different from the others in this module. Its purpose
is to transfer values from deprecated GSettings keys to the preferred
keys on startup, and keep them synchronized at all times for backward
compatibility.
Initial deprecated keys being handled are:
"week-start-day" (org.gnome.evolution.calendar)
"working-days" (org.gnome.evolution.calendar)
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Automatically configures the "checking-enabled" property on all
ESpellEntry instances.
|
| |
|
| |
|
|
|
|
| |
Automatically configured, of course, by ESettingsCompEditor.
|
|
|
|
| |
Configures the "week-start-day" property of EWeekdayChooser.
|
|
|
|
| |
The "show-week-numbers" and "week-start-day" properties are not used.
|
|
|
|
|
|
| |
DConf load command requires a slash at the end of the path to load,
but the replace_variables() code always removed the trailing slash,
which made the configuration load nonfunctional.
|
|
|
|
| |
Get the icaltimezone from the passed in ECalClient.
|
|
|
|
|
|
|
| |
There were printed warnings on console, which may cause crashes, when
the meeting invitation was inside an attached message. By adding
a reference to the view it'll not disappear before the search is
done with it.
|
| |
|
|
|
|
| |
Basically any place where we use both EClient and ESourceComboBox.
|
|
|
|
| |
EClientCache already serves this purpose.
|
| |
|
|
|
|
| |
Obtain the ESourceRegistry with e_client_cache_ref_registry().
|
| |
|
|
|
|
| |
EPhotoCache already handles this setting.
|
|
|
|
| |
Configures an EPhotoCache with values from GSettings.
|
| |
|
|
|
|
|
|
| |
Emitting a "client-added" signal should not trigger any blocking calls,
so the "loading" status message will flash by too quickly to be noticed,
if it gets drawn at all. Just remove it.
|
|
|
|
|
|
| |
Emitting a "client-added" signal should not trigger any blocking calls,
so the "loading" status message will flash by too quickly to be noticed,
if it gets drawn at all. Just remove it.
|
|
|
|
|
|
| |
Emitting a "client-added" signal should not trigger any blocking calls,
so the "loading" status message will flash by too quickly to be noticed,
if it gets drawn at all. Just remove it.
|
|
|
|
| |
Use e_source_registry_dup_unique_display_name() in the status message.
|
|
|
|
| |
Use e_source_registry_dup_unique_display_name() in the status message.
|
|
|
|
| |
Use e_source_registry_dup_unique_display_name() in the status message.
|
| |
|
|
|
|
| |
Use a standard format for naming an ESource in user-visible messages.
|
|
|
|
| |
Use a standard format for naming an ESource in user-visible messages.
|
|
|
|
| |
Use a standard format for naming an ESource in user-visible messages.
|
| |
|
| |
|
|
|
|
| |
Use e_client_selector_ref_cached_client() for remaining cases.
|
|
|
|
| |
Use e_client_selector_ref_cached_client() for remaining cases.
|
|
|
|
| |
Use e_client_selector_ref_cached_client() for remaining cases.
|
| |
|
| |
|
| |
|
|
|
|
| |
Use e_client_selector_get_client() to obtain an EClient.
|
|
|
|
| |
Use e_client_selector_get_client() to obtain an EClient.
|
|
|
|
| |
Use e_client_selector_get_client() to obtain an EClient.
|
|
|
|
| |
Use e_client_selector_get_client() to obtain an EClient.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
No longer needed, replaced by EClientCache.
|
|
|
|
| |
No longer needed, replaced by EClientCache.
|
|
|
|
| |
No longer needed, replaced by EClientCache.
|
|
|
|
|
|
| |
In task_shell_sidebar_check_state(), determine whether the selected
source supports refresh by way of e_client_cache_ref_cached_client()
and e_client_check_refresh_supported().
|
|
|
|
|
|
| |
In memo_shell_sidebar_check_state(), determine whether the selected
source supports refresh by way of e_client_cache_ref_cached_client()
and e_client_check_refresh_supported().
|
|
|
|
|
|
| |
In cal_shell_sidebar_check_state(), determine whether the selected
source supports refresh by way of e_client_cache_ref_cached_client()
and e_client_check_refresh_supported().
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
| |
|
|
|
|
|
| |
ETaskTable can retrieve the client list from its internal ECalModel
using e_cal_model_get_client_list().
|
|
|
|
|
|
|
| |
Thanks to the "default-timezone" property binding created by
ESettingsClientCache, changes to the "cal-timezone" setting are
automatically propagated to all ECalClient instances created by
EClientCache.
|
|
|
|
|
|
|
| |
Thanks to the "default-timezone" property binding created by
ESettingsClientCache, changes to the "cal-timezone" setting are
automatically propagated to all ECalClient instances created by
EClientCache.
|
|
|
|
|
|
|
| |
Thanks to the "default-timezone" property binding created by
ESettingsClientCache, changes to the "cal-timezone" setting are
automatically propagated to all ECalClient instances created by
EClientCache.
|
|
|
|
|
| |
Also, defer to ESettingsClientCache to automatically set the default
timezone on new ECalClient instances.
|
|
|
|
|
| |
Also, defer to ESettingsClientCache to automatically set the default
timezone on new ECalClient instances.
|
|
|
|
|
| |
Also, defer to ESettingsClientCache to automatically set the default
timezone on new ECalClient instances.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
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
|