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.
More mail API churn... reversing some previous API decisions.
I've made some key API changes to EMailSession on the account-mgmt
branch which should allow for this, and will hopefully also benefit
the "email-factory" branch.
EMailBackend barely needs to exist anymore, except as the owner of
EMailSession.
For several low-level functions, we replace its EMailBackend parameter
with EMailSession and EAlertSink parameters; the latter so it can still
pass user alerts up the chain.
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.
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.
This one's a little involved:
- EMailShellView now obtains a CamelFolder itself in response to
EMFolderTree::folder-selected signals. Uses EActivity to do so.
- Revise EMFolderTree::folder-selected signal arguments to be more
useful: emit a CamelStore object instead of a folder URI.
- Also revise EMFolderTree::folder-activiated signal arguments the
same way while we're at it.
- Remove the "folder_uri" argument from e_mail_reader_set_folder().
If you have a CamelFolder object you can obtain the URI string by
calling camel_folder_get_uri().
So we don't have to access GConf directly from EMFolderTree. The
property gets bound to an EShellSettings property, which is in turn
bound to the "no_folder_dots" GConf key by way of a transform function.
Global variables in shared libraries are a bad idea. EMailBackend now
owns the MailSession instance, which is actually now EMailSession.
Move the blocking utility functions in mail-tools.c to e-mail-session.c
and add asynchronous variants. Same approach as Camel.
Replace EMailReader.get_shell_backend() with EMailReader.get_backend(),
which returns an EMailBackend. Easier access to the EMailSession.
- Collect all shell modules into a new top-level 'modules' directory:
$(top_srcdir)/modules/addressbook
$(top_srcdir)/modules/calendar
$(top_srcdir)/modules/mail
Nothing is allowed to link to these, not plugins nor other modules.
THIS SOLVES BUG #571275 AND OPENS THE DOOR TO PORTING TO MAC OS X.
- Mimic the libevolution-mail-shared library from master (except drop
the "shared" suffix) and have libevolution-mail-importers and all
mail-related plugins link to it.
- Discard the a11y subdirectories and have the files live alongside
their counterpart widgets.
Revert the expanded tree model column and add a "selection"property to
EMFolderTreeModel, which the sidebar sets. If set, all new EMFolderTree
instances will automatically mimic its expanded and selected state.
Each EShellView now maintains a GKeyFile for recording disposable widget
state such as tree view path expansion, scroll bar positions, combo box
selections, etc. The EShellView records changes to the key file to
~/.evolution/<shell-backend>/config/state, and automatically restores
the GKeyFile at startup.
Currently only the mailer uses the key file, but it's intended to serve
all shell views. It replaces the use of Camel "cmeta" files, as well as
"et-expanded-*" and "folder-tree-expand-state.xml" files.
Also, the mailer's folder tree model now includes a column for tracking
which sidebar folders are expanded. Folder tree widgets appearing in
dialog windows can copy the sidebar's expanded state using
em_folder_tree_clone_expanded().
2008-06-06 Matthew Barnes <mbarnes@redhat.com>
** Allow evolution to build with G_DISABLE_SINGLE_INCLUDES and
GTK_DISABLE_SINGLE_INCLUDES defined. (#536637)
svn path=/trunk/; revision=35606
2005-05-16 Not Zed <NotZed@Ximian.com>
* mail-vfolder.h:
* mail-autofilter.h: forward-reference structures
* *.h: Make installed headers includable from mail/
* Makefile.am (mailinclude_HEADERS): install various mail headers
as first cut at public plugin api.
svn path=/trunk/; revision=29371
2005-05-13 Rodney Dawes <dobey@novell.com>
* plugins/Makefile.am (DIST_SUBDIRS): Add profiler so that it gets
disted properly
2005-05-13 Rodney Dawes <dobey@novell.com>
* Makefile.am: Add new em-folder-utils.[ch] abstraction
* em-folder-browser.c: Update for new menu layout
Add new methods to handle the actions that were previously only
available from the context menu when right-clicking on a folder
* em-folder-selector.c (emfs_response): Just call emfu_folder_create
if the user wants to create a new folder in the selector dialog
(em_folder_selector_get_selected_path): Clean up the code to fix a
couple potential crashes
* em-folder-tree.[ch]: Add methods to get pointers to a CamelFolder or
CamelFolderInfo object for the selected item in the tree
Add a method to get a pointer to an EMFolderTreeModelStoreInfo object
for the selected store in the tree
Move folder operations out into em-folder-utils.[ch] so that they
are abstracted from the tree and can be used by methods other than
the internal context menu
* em-folder-utils.[ch]: Move the folder operations code to here
* em-folder-view.c: Update for the new menu layout
Fix Mark as Read/Unread in the context menu to only show up in the list
* mail-component.c (create_item): Just call emfu_folder_create here
when the user requests to create a new folder from the New toolbar item
2005-05-13 Rodney Dawes <dobey@novell.com>
* org-gnome-mailing-list-actions.xml: Update for the new menu layout
2005-05-13 Rodney Dawes <dobey@novell.com>
* org-gnome-plugin-manager.xml: Update for new menu layout
2005-05-13 Rodney Dawes <dobey@novell.com>
* org-gnome-save-attachments.xml: Update for new menu layout
2005-05-13 Rodney Dawes <dobey@novell.com>
* e-shell-window.c (setup_widgets): Update for the new menu layout by
putting the "component" switching items under the "Tools" menu
2005-05-13 Rodney Dawes <dobey@novell.com>
* *.xml: Update to the new menu layout
2005-05-13 Rodney Dawes <dobey@novell.com>
* e-filter-bar.[ch]: Update for the new menu layout
svn path=/trunk/; revision=29354