Instead we parse the 'folder_uri' string into CamelStore and folder name
components using e_mail_folder_uri_parse().
Then we query the internal 'store_index' table with our CamelStore for
an EMFolderTreeModelStoreInfo struct. Then we query the info struct's
'full_hash' table with our folder name for the GtkTreeRowReference.
It's a little more complicated, but it allows us to drop the internal
'uri_index' table so it's a net simplification for EMFolderTreeModel.
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.
Causes folder info queries on disabled accounts. Instead respond to
"service-enabled" and "service-disabled" signals, one of which always
immediately follows "service-added".
Comment this in both MailFolderCache and EMFolderTreeModel.
This implements https://bugzilla.gnome.org/show_bug.cgi?id=663527#c3.
Account reordering is now done by drag-and-drop instead of up/down
buttons.
Turned out to be a wee bit more complicated than I initially thought.
This scraps EAccountManager and EAccountTreeView and replaces them with
new classes centered around EMailAccountStore, which EMailSession owns.
EMailAccountStore is the model behind the account list in Preferences.
The folder tree model now uses it to sort its own top-level rows using
gtk_tree_path_compare(). It also broadcasts account operations through
signals so we don't have to rely so heavily on EAccountList signals,
since EAccountList is going away soon.
Also as part of this work, the e-mail-local.h and e-mail-store.h APIs
have been merged into EMailSession and MailFolderCache.
My apologies for flip-flopping the API again.
e-mail-store.c functions used to take an EMailSession, then I changed
it to take an EMailBackend in preparation for my account-mgmt branch.
Having rethought some API decisions on the branch, however, the first
flip-flop proved to be unnecessary. And now Srini needs the API to use
EMailSession for his mail-factory branch, so I'm flip-flopping again.
Drop EMFolderTreeModel's "session" property now that it has a "backend"
property and call em_folder_tree_model_set_backend() where we used to
call em_folder_tree_model_set_session().
The session can still be obtained through e_mail_backend_get_session().
Reducing diff noise with the account-mgmt branch.
Trying to erode our dependency on EAccount as much as possible, or at
least isolate its usage, to make things easier for me on the branch.
Lists all the CamelStores added to EMFolderTreeModel. Note that
CamelStores with a corresponding EAccount are only added if the EAccount
is enabled, so it's safe to assume all returned CamelStores are enabled.
Replace it with new async functions:
e_mail_store_go_offline()
e_mail_store_go_offline_finish()
e_mail_store_go_online()
e_mail_store_go_online_finish()