Commit Graph

147 Commits

Author SHA1 Message Date
3da4948c0f Miscellaneous cleanups. 2013-09-07 19:08:54 -04:00
084974a617 MailFolderCache: Avoid g_signal_handlers_disconnect_matched().
store_info_unref() already disconnects the signal handlers one by one.
2013-08-17 10:29:15 -04:00
52a48c15e0 Bug #705446 - Old POP3 mails can be removed before getting them 2013-08-08 07:48:19 +02:00
660064e202 Bug 704682 - Runtime warning in MailFolderCache 2013-07-27 23:25:35 -04:00
7383843653 Reimplement mail_folder_cache_note_store().
* 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.
2013-07-19 08:36:56 -04:00
dd4d570b62 Add e_mail_store_go_offline_sync().
Mostly for symmetry with e_mail_store_go_online_sync().
2013-07-19 08:36:56 -04:00
f1cc9011fb Add e_mail_store_go_online_sync().
Need for new mail_folder_cache_note_store() implementation.
2013-07-19 08:36:56 -04:00
270a087974 e-mail-store-utils.c cleanups. 2013-07-19 08:36:55 -04:00
209387d4e3 MailFolderCache: Fix a crash when renaming folders. 2013-07-19 08:36:55 -04:00
f371239062 MailFolderCache: Make UpdateClosure less cryptic.
Directly indicate the signal ID to be emitted from the update callback
instead of playing silly games with boolean flags.
2013-07-17 12:08:47 -04:00
4076f0a50b MailFolderCache: Thread-safety improvements and other cleanups.
* 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.
2013-07-17 12:08:46 -04:00
99d026acbe MailFolderCache: Remove unnecessary "stores" checks.
The "stores" hash table is created on instance init and destroyed with
the cache itself.  It is never NULL during MailFolderCache's lifetime.
2013-07-17 12:08:46 -04:00
060bb07662 mail_folder_cache_get_folder_info_flags: Change parameters.
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.
2013-07-17 12:08:46 -04:00
c36aa6b749 Add mail_folder_cache_ref_folder().
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.
2013-07-17 12:08:46 -04:00
4de5726797 Add mail_folder_cache_has_folder_info().
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.
2013-07-17 12:08:46 -04:00
079fc1a78d MailFolderCache: Add a read-only "main-context" property.
New functions:

  mail_folder_cache_ref_main_context()
2013-07-17 12:08:46 -04:00
3f2d55fb7f MailFolderCache: Remove the "session" property.
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()
2013-07-17 12:08:46 -04:00
c085e4b445 MailFolderCache: Remove unused "unsub" field. 2013-07-17 12:08:46 -04:00
a877db3749 Remove unused mail_folder_cache_get_folder_has_children(). 2013-07-17 12:08:46 -04:00
cd76c782bd Miscellaneous cleanups. 2013-07-07 11:39:47 -04:00
046a17ba19 Bug 703181 - Asked for password which is never used
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)
2013-06-27 22:06:15 +01:00
1dea0429cf Remove em_utils_uids_free().
No longer used.  We actually had this defined in two places.
2013-06-15 08:28:37 -04:00
f642e03d49 message_list_get_selected: Give the returned array a free func.
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.
2013-06-15 08:19:27 -04:00
f60986649a Remove global "shell_builtin_backend" variable.
No longer used.  Always nice to remove a dirty hack on a dirty hack.
2013-06-14 10:06:39 -04:00
5b0e9e7791 Bug #250046 - Empty group address as recipient prevents message send
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.
2013-06-03 19:22:03 +02:00
13089f0d50 e_mail_session_send_to(): Don't silently ignore if we can't send.
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.
2013-05-29 16:50:27 -04:00
6c9a3243c9 Rename libeutil to libevolution-util.
To make Evolution's shared libraries more consistent.

Also rename the documentation module to evolution-util.
2013-05-28 09:56:30 -04:00
92817706c5 Utilize the new EMailSession functions when sending. 2013-05-24 22:03:51 -04:00
dea7daf4c3 EMailSession: Add helper functions for sending messages.
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()
2013-05-24 22:03:51 -04:00
58ef547151 Coding style and whitespace cleanup. 2013-05-08 08:28:09 -04:00
7dec65de1a build: Fix srcdir != builddir from git
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.
2013-04-18 11:30:24 -04:00
1c5f6313c5 Bug #681837 - Make enum type registration thread safe 2013-04-12 09:50:06 +02:00
2dfd548d26 Bug #271262 - Allow Send/Receive of local stores in offline 2013-04-08 19:21:04 +02:00
94372b5f18 e_mail_folder_uri_parse: Handle local mbox folder URIs.
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.
2013-04-08 08:47:06 -04:00
1c35d94851 Bug #687412 - Crash under mail_folder_cache_service_removed() 2013-03-25 14:16:36 +01:00
4d58a800fa Use e_source_registry_list_enabled() where appropriate. 2013-03-17 08:49:11 -04:00
19e4b77d1d Do not leak each sent message
Caused by double-reffing the message object.
2013-03-15 16:50:25 +01:00
853abba1d3 Bug #693254 - Mail reply uses wrong "From:" account 2013-03-05 14:14:31 +01:00
bc27cacec3 Remove em_utils_in_addressbook().
No longer used.
2013-02-27 10:59:55 -05:00
4a06e1bb63 Remove emu_free_mail_cache().
No longer needed, since the resources it frees are no longer used.
2013-02-27 10:59:55 -05:00
667585134e Remove emu_remove_from_mail_cache().
No longer used.
2013-02-27 10:59:55 -05:00
cc2a65368c Remove emu_remove_from_mail_cache_1().
No longer used.
2013-02-27 10:59:55 -05:00
a36a3f4181 Remove em_utils_contact_photo().
No longer used.
2013-02-27 10:59:55 -05:00
c6bda27c9c EMailSession: Remove get_filter_driver() implementation.
This gets overshadowed by EMailUISession's implementation, which also
sets up the filter log file plus much more.
2013-02-27 10:59:55 -05:00
0b2607486e Move CamelSession.lookup_addressbook() handler to EMailUISession.
Have the new handler call e_mail_ui_session_check_known_address_sync()
instead of em_utils_in_addressbook().
2013-02-27 10:59:55 -05:00
eff9783d94 EMailSession: Use camel_session_ref_main_context(). 2013-02-22 09:52:25 -05:00
3b11207dcb Use camel_service_ref_session(). 2013-02-11 10:38:29 -05:00
60d1c3054a G_PRIORITY_HIGH_IDLE is sufficient to beat GTK+ redraws.
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.
2013-02-08 14:21:42 -05:00
9c6a7673b8 Add comments around g_idle_add() changes 2013-02-08 18:26:49 +01:00
eb9e927926 Bug #683867 - Schedule actions with higher idle priority 2013-02-08 18:26:48 +01:00