There were a few places where we were accessing the folder tree model
directly to get the selected store + folder name, or were asking for the
selected URI only to parse back into its store + folder name components.
When a folder is expanded and child folder info needs to be retrieved,
submit an EActivity and call camel_store_get_folder_info() instead of
using the legacy MailMsg API.
Similar to e_mail_reader_new_activity(). Creates, configures and
submits a new EActivity instance, so asynchronous operations can easily
be dispatched without a lot of boilerplate code.
All this so EMFolderTree can submit EActivity instances for async ops.
You can obtain an EMailSession from an EMailBackend, but not vice versa.
Creates lots of pretty ripples in the mail code, but ultimately reduces
complexity. So it's a code cleanup of sorts.
Add an action group for Search Folders to EMailReader. The action
group's visibility is bound to the "mail-enable-search-folders" setting,
so that menu items related to Search Folders are hidden when Search
Folders are disabled in GConf.
Affected menu items are:
Edit -> Search Folders
Message -> Create Rule -> Search Folder from Subject...
Message -> Create Rule -> Search Folder from Sender...
Message -> Create Rule -> Search Folder from Recipients...
Message -> Create Rule -> Search Folder from Mailing List...
Search -> Create Search Folder From Search...
Use an enum type to request different action groups. For now we just
have E_MAIL_READER_ACTION_GROUP_STANDARD. EMailReader implementations
should map the enum value to an appropriate GtkActionGroup.
This is related to bug #650587, but is not a proper fix. The proper fix
is in the next couple commits about EMailReader action groups.
This commit just trades a crash for a runtime warning, but can be
backported to the stable branch, whereas the changes required for the
proper fix are too extensive to backport.
Let EMailReader fetch the CamelMimeMessage itself, handle errors, and
then pass it off to EMFormatHTMLPrint. This also eliminates the need
for em_format_html_print_raw_message().
Configuring and submitting an EActivity for every mail operation is
getting tedious. This function helps reduce boilerplate code by:
* Creating a new EActivity instance.
* Installing an EAlertSink using e_mail_reader_get_alert_sink().
* Installing a GCancellable (which is really a CamelOperation).
* Submitting the activity via e_shell_backend_add_activity().
I'm considering adding a similar function (or class method) for
EShellView. Not sure yet...
Everything in UI seemed as working fine, but the message is just lost,
even there was printed a runtime warning on the console.
This is fixing couple things along this issue:
- differentiate between NULL and invalid pointers/objects
in new e_mail_folder_uri_...() functions
- report error to UI if mail_session_send_to_thread() fails to find
corresponding transport service
- call e_mail_store_add_by_account() in mail_store_load_accounts()
(a side-effect of this change is no code duplication and unified
processing of the same action)