Commit Graph

94 Commits

Author SHA1 Message Date
749b49e507 Disconnect a CamelService after editing its settings.
This will force Evolution to reconnect to the service using the current
settings.  However this is not a complete solution.  If the new settings
now point to a completely different mail account, we leave behind cached
messages and database tables from the previous account such that you end
up with some weird hybrid of the previous account and current account.

I guess for now the answer is "don't do that", but we should try to
handle that more gracefully in the future -- more for architectural
correctness than it being a common real world use case.
2012-07-06 15:35:41 -04:00
b4fbbde6ab Remove "enable-local" and "enable-vfolders" GSettings key.
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.
2012-06-08 13:47:22 -04:00
5b8340563c Mail formatter rewrite
All mail-parsing and formatting code has been moved to em-format.
Parsing is handeled by EMailParser class, formatting by EMailFormatter.
Both classes have registry which hold extensions - simple classes
that do actual parsing and formatting. Each supported mime-type
has it's own parser and formatter extension class.
2012-06-06 15:27:19 +02:00
2a39437ee9 Adapt to single-include E-D-S libraries. 2012-06-03 15:14:03 -04:00
992373c8b0 Adapt modules/mail to the new ESource API. 2012-06-02 23:00:40 -04:00
8db3da39d7 Revert "Bug #669463 - HTML signature opens in editor as Plain text"
This reverts commit f25826211b.

Not an issue on the account-mgmt branch.  We can do without this hack.
2012-06-02 23:00:38 -04:00
184ec36d35 Fix an unused-but-set-variable warning. 2012-06-02 08:35:58 -04:00
c88d317030 Adapt to vFolder changes from evolution-data-server 2012-05-30 18:46:49 +02:00
005ac1efa3 Make the settings capplet optional.
The evolution-settings capplet was originally designed for Anjal, it was
used in MeeGo as part of the Express Mode effort, but doesn't really fit
in GNOME 3 nowadays (nor did it really fit in GNOME 2, in my opinion).

Add a --with-capplet configure switch defaulting to 'no'.  The capplet
will eventually be removed unless I see someone actively maintaining it.
2012-05-28 12:50:18 -04:00
f25826211b Bug #669463 - HTML signature opens in editor as Plain text 2012-05-03 14:43:32 +02:00
9ed9a99bad EMFormat: Add "session" as a constructor property.
Pass it in instead of digging it out of EShellSettings.
2012-03-31 15:48:01 -04:00
6d2c382788 WebKit port - port formatter and mail module 2012-03-28 18:38:25 +02:00
18593a0fb9 Move vfolders to libemail-engine and rest as mail-vfolder-ui. It all works and
the daemon can now start the vfolder storage without bothering much with the
UI.
2012-03-03 09:02:34 -05:00
23f5773903 Coding style and whitespace cleanup. 2012-02-20 10:04:25 -05:00
3ec164d12e Bug #668482 - Edit account properties from menu on folder store 2012-02-16 13:05:55 +01:00
b8cfd5f9a4 Bug #669113 - Add "File > New > Mail Account" 2012-02-16 11:45:03 +01:00
99d4558915 Be able to define help target for Preferences pages
A follow-up for bug #670073
2012-02-15 13:50:52 +01:00
61ae36351b Introduce libemail-engine and libemail-utils.
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.
2012-01-18 23:48:47 -05:00
e3735c7444 Move EMailLabelListStore to EMailSession.
Access the EMailLabelListStore through EMailSession instead of
EShellSettings, which was a quick hack of mine during kill-bonobo.
2011-12-24 17:44:51 -05:00
a9cfed5938 Avoid passing EMailBackend as much as possible.
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.
2011-12-16 10:58:54 -05:00
7c0c40f833 Reorder accounts by drag-and-drop.
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.
2011-12-10 21:34:19 -05:00
a01525c931 Miscellaneous EShellView-related cleanups. 2011-12-07 22:11:21 -05:00
c75f58d01b Fix compiler warnings. 2011-11-22 14:34:11 -05:00
7ab5ae3fc7 Merge branch 'master' into wip/gsettings 2011-11-14 13:08:57 +01:00
f9fee6a584 Bug #659945 - "New" button in toolbar for new mail message not working 2011-11-10 13:28:38 +01:00
2782363bf1 Mail module has now all basic settings in GSettings 2011-10-28 12:05:31 +02:00
2b7bb054f0 e-mail-store.c: Take EMailSession instead of EMailBackend.
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.
2011-10-26 12:46:13 -04:00
224f26b84d GtkApplication has some new EShell-like features.
I pushed a few EShell features up to GtkApplication for GTK+ 3.2,
so we can now trim off the redundancies in EShell.

1) GtkApplication has a new "window-added" signal which replaces
   EShell's own "window-created" signal.

2) GtkApplication has a new "window-removed" signal which replaces
   EShell's own "window-destroyed" signal.

3) gtk_application_get_windows() now returns a list of windows sorted
   by most recently focused, replacing e_shell_get_watched_windows().

4) GtkApplication now provides enough hooks to subclasses that we can
   remove e_shell_watch_window() and call gtk_application_add_window()
   directly.
2011-10-06 08:16:21 -04:00
e2b6ff7a6c Miscellaneous cleanups from the account-mgmt branch.
Reducing diff noise so I can see important changes easier when comparing
branches.  A few API changes, but nothing that affects functionality.
2011-09-27 09:31:13 -04:00
fcbbdfbd18 Coding style and whitespace cleanup. 2011-09-04 07:34:32 -04:00
ef929f2697 e_mail_store_foreach(): Take an EMailSession parameter.
Use camel_session_list_services() instead of the internal store table.
The store table serves little purpose nowadays and could probably be
removed.  I'll look into that later.
2011-08-17 22:27:46 -04:00
dd57574c04 Use new CamelService:display-name property.
Simplify, simplify...
2011-08-17 22:27:46 -04:00
756c8abcb8 Bug #646109 - Fix use of include <config.h> to make sure translations work 2011-05-27 15:23:07 +02:00
a9dff2f33a Use em_folder_tree_get_selected() in places to simplify code.
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.
2011-05-24 19:41:59 -04:00
9692758dc5 EMFolderTree: Store an EMailBackend instead of an EMailSession.
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.
2011-05-23 21:50:50 -04:00
766c0b0b55 Bug 650088 - Cannot send message from Contacts view
This starts up the EMailShellBackend whenever a new composer window is
created.  Normally this happens when switching to the Mail shell view,
but if trying to send a message from a different shell view before the
Mail shell view is ever activated, the mail accounts were not getting
loaded and sending or saving the message to a mail folder would fail.
2011-05-16 14:19:16 -04:00
6d44258b85 em_folder_utils_create_folder(): Change function parameters.
Take a folder URI string instead of a CamelFolderInfo, and swap places
with the GtkWindow parameter.
2011-05-06 12:34:33 -04:00
974924a8b8 Drop support for command-line 'email://' URIs.
I have no idea what this was used for, but it looks way too convoluted
to be useful anymore.
2011-05-05 15:20:22 -04:00
06411bdbbb Remove 'from_uri' params from e-msg-composer-utils.c.
Pass CamelFolder objects instead, which are already available at almost
every call site.
2011-05-03 13:42:15 -04:00
ae28ea4621 EMailShellView: Open the selected folder ourselves.
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().
2011-05-02 21:01:48 -04:00
63c26d5712 Miscellaneous GtkAction-related cleanups.
Prefer the newer GtkAction "set" functions over g_object_set().
2011-03-27 18:38:39 -04:00
c6fd77460f Coding style and whitespace cleanup. 2011-03-05 12:34:28 -05:00
1301cf02ef Bug #614480 - Avoid using G_TYPE_INSTANCE_GET_PRIVATE repeatedly 2011-02-25 16:20:41 +01:00
fcb29478f6 Coding style and whitespace cleanup. 2011-02-18 20:44:24 -05:00
94e43758de Bug #638333 - Critical warning when invoking File->New->Mail Folder 2011-02-16 13:14:49 +01:00
41c66f2d87 Avoid idle callbacks in EMailBackend initialization.
If the migration phase has to show a dialog the idle callback for
intializing mail stores will run too soon.  Instead, hook it onto
the EShellBackend start() method.

Migration code can initialize mail stores early if it needs to.
2011-01-07 15:25:42 -05:00
e39dd931bc Bug #207580 - Allow new mail check on individual accounts 2010-11-25 18:10:14 +01:00
d305e8ff10 Reduce GConf usage in em-composer-utils.c.
To reduce GConf usage in em-composer-utils.c:

- Relevant functions in em-composer-utils.c now take arguments for
  reply and forward styles.

- Redundant forwarding functions were removed:

    em_utils_forward_attached()
    em_utils_forward_inline()
    em_utils_forward_quoted()

- EMailReader now has "forward-style" and "reply-style" properties,
  which get bound to the appropriate EShellSettings properties in
  modules/mail/e-mail-config-reader.c.  These same EShellSettings
  properties are bound to the combo boxes in Composer Preferences.
2010-10-19 13:41:14 -04:00
35e55a8d6e Send errors to an EAlertSink instead of the task bar.
This marks the end of unintrusive error dialogs, which were too
unintrusive.  We now show errors directly in the main window using
the EAlert / EAlertSink framework.
2010-10-18 12:32:37 -04:00
1e663aa132 Replace EBinding with GBinding.
GObject now does property bindings itself.

Requires GLib >= 2.26.
2010-10-14 07:12:52 -04:00