| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
* Use GIO-style async parameters.
* Add mail_folder_cache_note_store_finish().
* Do the bulk of the work in a thread so the logic is more readable.
* Queue multiple calls for the same CamelStore and share the results.
|
|
|
|
| |
Mostly for symmetry with e_mail_store_go_online_sync().
|
|
|
|
| |
Need for new mail_folder_cache_note_store() implementation.
|
| |
|
| |
|
|
|
|
|
| |
Directly indicate the signal ID to be emitted from the update callback
instead of playing silly games with boolean flags.
|
|
|
|
|
|
|
|
|
|
| |
* Stop using recursive mutexes.
* Give StoreInfo a reference count.
* Give FolderInfo a reference count.
* Track CamelFolders with GWeakRef instead of weak pointers.
* Submit updates directly to the GMainContext, like we do in EDS,
instead of dequeuing them all from a single idle callback that
we then have to track.
|
|
|
|
|
| |
The "stores" hash table is created on instance init and destroyed with
the cache itself. It is never NULL during MailFolderCache's lifetime.
|
|
|
|
|
|
|
|
| |
Take a CamelStore and folder name instead of a CamelFolder.
CamelStore and folder name can easily be obtained from either a folder
URI or a CamelFolder instance, and the function is more efficient with
separate parameters.
|
|
|
|
|
|
|
|
| |
Replaces mail_folder_cache_get_folder_from_uri().
Returns the CamelFolder for the CamelStore and folder name if available,
or else NULL if a CamelFolder instance is not yet cached. This function
does not block.
|
|
|
|
|
|
|
|
|
| |
Returns whether MailFolderCache has information about the folder
described by the CamelStore and folder name. This does not necessarily
mean it has the CamelFolder instance, but it at least has some meta-data
about it.
You can use this function as a folder existence test.
|
|
|
|
|
|
| |
New functions:
mail_folder_cache_ref_main_context()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I considered replacing the "session" property with a "registry"
property, but that just complicates application startup even more.
Fact is, if we have a CamelStore then we can get the CamelSession
and even the ESourceRegistry from it. Kinda dirty, but works.
It goes a little something like this...
camel_service = CAMEL_SERVICE (camel_store);
camel_session = camel_service_get_session (camel_service);
mail_session = E_MAIL_SESSION (camel_session);
registry = e_mail_session_get_registry (mail_session);
Removed functions:
mail_folder_cache_get_session()
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
When the SASL mechanism reports that it can try an "empty password", give
it the opportunity to do so before we demand that the user provide one.
(Patch mostly by mbarnes; thanks)
|
|
|
|
| |
No longer used. We actually had this defined in two places.
|
|
|
|
|
|
| |
The returned UID array now has a built-in "free" function for its
elements and should be released by callers with g_ptr_array_unref()
rather than em_utils_uids_free() or some equivalent.
|
|
|
|
| |
No longer used. Always nice to remove a dirty hack on a dirty hack.
|
|
|
|
|
|
|
| |
Empty group addresses were left as-is when sending an email directly,
not through Outbox, which could cause a send error through SMTP.
Expanding group addresses, or removing empty groups, from a list
or recipients before sending the message fixes the issue.
|
|
|
|
|
|
|
| |
If sending fails for any reason, return a suitable GError. Don't just
return silently. Also check for a wider range of errors indicating the
service is unavailable in composer_send_completed(). This will trigger
the "save-to-outbox" info alert.
|
|
|
|
|
|
| |
To make Evolution's shared libraries more consistent.
Also rename the documentation module to evolution-util.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
New functions:
e_mail_session_get_fcc_for_message_sync()
e_mail_session_get_fcc_for_message()
e_mail_session_get_fcc_for_message_finish()
e_mail_session_ref_transport()
e_mail_session_ref_default_transport()
e_mail_session_ref_transport_for_message()
|
| |
|
|
|
|
|
|
|
|
|
| |
Mimicing Colin's commit fb9b02e for E-D-S.
We can't do (cd $(srcdir); ...) and inside reference $(top_srcdir)
because that variable uses a *relative* path. Thus we copy the
approach from gnome-shell of explicitly using addprefix to append
the source directory.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
In Evolution 2.x, the local mail store used mbox format. Camel will not
recognize the old-style "mbox:///.../local" folder URIs, since the local
mail store is now Maildir format. Test for this and work around it.
This should re-fix bug 638307 which was a nuisance error about failing
to append to a "mbox:///.../local#Sent" folder after sending a message.
|
| |
|
| |
|
|
|
|
| |
Caused by double-reffing the message object.
|
| |
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer needed, since the resources it frees are no longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
| |
No longer used.
|
|
|
|
|
| |
This gets overshadowed by EMailUISession's implementation, which also
sets up the filter log file plus much more.
|
|
|
|
|
| |
Have the new handler call e_mail_ui_session_check_known_address_sync()
instead of em_utils_in_addressbook().
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
| |
Where we make exceptions for GNOME Online Accounts, so too shall we for
Ubuntu Online Accounts.
|
|
|
|
| |
Instead of e_client_utils_open_new() and e_book_client_new().
|
| |
|
|
|
|
|
|
|
| |
g_hash_table_add(table, key) uses less memory than
g_hash_table_insert(table, key, GINT_TO_POINTER (1)).
Also use g_hash_table_contains() when testing for membership.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Prefer e_source_registry_check_enabled() over e_source_get_enabled()
for most instances where we want to exclude disabled data sources.
|
| |
|
|
|
|
|
|
| |
Follow-up fixes:
a) don't copy to origin folder for forwarded messages
b) use a real folder when reply/forward from a vFolder
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|
|
|
| |
No comment as to why it's disabled => has no value.
|
| |
|
| |
|
|
|
|
|
|
| |
Asynchronous + synchronous convenience functions.
Uses the EMailLocalFolder enumeration to specify a well-known folder.
|
|
|
|
|
|
| |
camel_service_get_settings() is now camel_service_ref_settings()
and it returns a new CamelSettings reference which the caller must
release with g_object_unref().
|
|
|
|
|
|
|
|
|
|
|
|
| |
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()
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
This is reverting previous patch for this bug and fixes it with
a different approach. The previous patch had regression, instead
of freezing evolution on quit it crashed it when there was pending
addressbook lookups.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Disabling the mail part of an online account through the Control Center
panel will now remove the CamelService from the EMailSession in addition
to disabling the account/identity/transport ESources, causing it to be
delisted from the account list in Preferences.
Furthermore, hide the Enabled check box for accounts linked to GOA in
Preferences. The collection ESource for these accounts can no longer
be disabled through Evolution; all such account manipulation must be
done through the Control Center panel.
Lastly, display an icon next to accounts linked to GOA in Preferences.
* Might be nice to show the actual provider icon instead of the generic
Online Accounts icon from the Control Center, but need to think about
how best to do that. Don't want a GOA dependency in core Evolution.
Maybe ESourceCollection should grow a GIcon property for the online-
accounts module in the registry service to set?
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We're leaking CamelService references when we remove a CamelService
from a CamelSession. I don't yet know where or how.
If we remove a CamelService without finalizing the corresponding ESource,
and then add a new CamelService with the same UID, the ESource will have
a bidirectional "display-name" binding to multiple CamelService instances.
This creates an endless cascade of "notify" signals as soon as any of the
bound "display-name" properties change.
Until I can fix the leaking CamelService references, make the binding
one-way: ESource -> CamelService. This means the ESource's display name
is authoritative, and camel_service_set_display_name() MUST NOT be called
explicitly or else it will become out-of-sync with the ESource.
|
|
|
|
| |
Even send-only accounts should have a backend name of "none".
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Use e_mail_folder_expunge() instead.
|
|
|
|
| |
To replace mail_expunge_folder().
|
| |
|
|
|
|
| |
Use e_mail_reader_refresh_folder() instead.
|
|
|
|
| |
Replaces e_mail_session_unsubscribe_folder().
|
|
|
|
| |
compare_folder_name() -> equal_folder_name()
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Remove mail_folder_cache_service_added() and rely instead on
mail_folder_cache_service_enabled()/disabled(). Despite the function
names the folder cache doesn't actually care about enabled status, it
simply maintains a set of CamelStores to monitor. We should refactor
the folder cache API to better reflect that.
EMailAccountStore always immediately follows a "service-added" signal
emission with either a "service-enabled" or "service-disabled" emission,
which will add or remove the service from the folder cache.
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
CamelStoreClass bumps the settings_type to CAMEL_TYPE_STORE_SETTINGS,
which has a filter-inbox property. But we don't want ANY settings in
a CamelNullStore, so revert the settings_type to CAMEL_TYPE_SETTINGS.
|
|
|
|
|
|
|
|
|
| |
Use e_source_camel_generate_subtype() to register an ESourceCamelNone
class based on the newly-registered "none" CamelProvider.
e_source_camel_register_types() won't pick up the new provider if it was
already called prior to the provider being registered. That might be a
bug... I'm not sure yet. The Camel/ESource integration is kinda messy.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
em_utils_connect_service_sync() and em_utils_disconnect_service_sync()
are no longer needed. CamelService itself now effectively does what
these functions were doing.
|
|
|
|
| |
Always call it immediately after g_simple_async_result_new().
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Replace 8-space indentation with tab characters, and various other
automated cleanups.
|
|
|
|
| |
allows to store mails in individual INBOX rather than a common one.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
the daemon can now start the vfolder storage without bothering much with the
UI.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Keep this in Evolution's private library directory until the APIs are
fully documented and we begin using libtool versioning on the library.
|
| |
|
|
|
|
|
| |
The display name is a user-provided name for the service. We should
be using that in all status messages the refer to the service by name.
|
|
|
|
|
|
|
|
|
|
|
| |
Evolution kinda sorta supports multiple identities by allowing users
to set up so-called "transport-only" accounts by choosing "None" for
the account type.
Add a CamelStore subclass for those types of accounts so they get
added to EMailAccountStore. It's just a stupid hack to keep another
stupid hack working, but this should sustain us until we can support
multiple identities FOR REAL.
|
| |
|
|
These libraries are bound for E-D-S so they live at the lowest layer of
Evolution for now -- even libeutil can link to them (but please don't).
This is the first step toward moving mail handing to a D-Bus service.
|