Commit Graph

52 Commits

Author SHA1 Message Date
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
6d2c382788 WebKit port - port formatter and mail module 2012-03-28 18:38:25 +02:00
14f82dde34 Move EAlert* and e-xml-utils references from other part of the code to libevolution-utils. 2012-03-03 09:02:33 -05:00
d0f2c46a1c Do not auto-mark-as-seen when changing filter type 2012-01-11 15:59:25 +01:00
5fabd29bd2 Add EMailReader.get_preview_pane() method.
Also give EMailReader::show-search-bar signal a default implementation,
since it can now dig up the search bar widget itself.
2011-11-22 00:12:36 -05:00
c668a35028 Add EMailReader:message-loaded signal.
Emitted when the CamelMimeMessage has been obtained.
2011-11-22 00:12:36 -05:00
aecfbc5813 Add EMailReader:message-seen signal.
Replaces e_mail_reader_mark_as_read().
2011-11-22 00:12:36 -05:00
d33ed726f9 Update EMailBrowser actions when MessageList reloads.
There was never a bug filed for this, but some mailing list discussion:
http://mail.gnome.org/archives/evolution-list/2011-August/msg00084.html
2011-08-18 12:20:16 -04:00
9aa668aa6b Bug 650587 - Hide Search Folder actions when Search Folders are disabled
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...
2011-05-20 19:05:55 -04:00
7333f12087 EMailReader: Support multiple action groups.
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.
2011-05-20 19:05:55 -04:00
366dacefa0 Add e_mail_reader_new_activity().
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...
2011-05-12 18:24:41 -04:00
a9c9f0be5f Remove e_mail_reader_get_folder_uri().
Instead call e_mail_reader_get_folder() and, if you really need to,
generate the folder URI with e_mail_folder_uri_from_folder().
2011-05-03 14:42:29 -04:00
96f2945894 Remove e_mail_reader_set_folder_uri().
Function is no longer used, or wanted.
2011-05-02 21:06:25 -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
c53fd13220 EMailReader: Add a get_alert_sink() method. 2010-10-31 22:54:30 -04: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
686528cae9 Bug #534453 - Incorporate 'Remove attachments' plugin 2010-10-19 14:54:28 +02:00
a06e4484b8 Give MailSession a permanent home.
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.
2010-10-12 13:58:59 -04:00
cd53ba9900 Coding style cleanups. 2010-09-13 08:28:58 -04:00
935bc4be07 Bug 628141 - Duplicate signal connections in EMailReader
EMailShellContent implements the EMailReader interface but acts as a
proxy for EMailPanedView, from which it obtains MessageList and EWebView
widgets.  The problem was both classes call e_mail_reader_init_private()
which connects to signals emitted from the MessageList and EWebView
widgets.  But since EMailShellContent is a proxy for EMailPanedView,
the signals were being connected twice.

This commit does away with e_mail_reader_init_private(), instead adding
options to e_mail_reader_init() to control what parts of initialization
to run.  It's an ugly and temporary hack.

I'm beginning to realize EMailReader is too bloated and needs rethought.
EMailReader should just manage actions.  EMailView should own and manage
the widgets, and EMailReader should just have a get_mail_view() method
so it has access to those widgets.  That way the EMailView subclasses
won't have to implement EMailReader themselves and wind up allocating
a bunch of duplicate, unused actions.

It's too close to a stable release to rip these interfaces apart and
reorganize them.  I'll try to do that for 2.33 to help make the design
more intuitive.
2010-08-27 15:44:25 -04:00
ecf3434da0 GObject boilerplate cleanup.
Prefer thread-safe G_DEFINE_TYPE and G_DEFINE_INTERFACE macros over
manual GType registration.

This is just a start... lots more to do.
2010-08-24 14:37:02 -04:00
4e9050bc1e Whitespace and coding style cleanup. 2010-08-13 21:32:32 -04:00
a6c40f7e8f Add keybindings to tab.
Control Up - Go to parent folder.
Control Shift Up/Down - prev/next tab
Control Shift w  - close tab.
2010-08-12 11:05:47 +05:30
9279429501 Drop the "quote-from-selection" property.
David's solution is simpler: check if the HTML widget is mapped.
Avoids having to propagate the property to Srini's new classes.
2010-07-26 07:40:48 -04:00
81e5428a59 Coding style and whitespace cleanup. 2010-07-26 01:16:42 -04:00
b9564c4d01 Add folder pane for tabbed browser. 2010-07-25 21:29:59 -04:00
34900a5909 More bug fixes. 2010-07-25 21:29:59 -04:00
a972d9ab59 Bug 624285 - When replying, ignore text selection if preview is hidden 2010-07-13 19:30:20 -04:00
78bf9d9d70 Bug 624128 - Folder -> Subscriptions is always enabled 2010-07-12 11:26:47 -04:00
0439c01a9a Bug 616724 - Initialize message window with threaded state of main window 2010-06-19 11:39:49 -04:00
4f01d3d182 Keep chipping away at direct GtkHTML usage.
EMFormatHTML now holds a sealed EWebView instead of a public GtkHTML,
accessible through em_format_html_get_web_view().

Rename e_mail_reader_get_html_display() to e_mail_reader_get_formatter()
and have it return an EMFormatHTML instead of an EMFormatHTMLDisplay,
since that's usually the type you want (or else an EMFormat, but never
an EMFormatHTMLDisplay).
2010-05-31 12:01:49 -04:00
7636175248 Bug #611560 - 'Mark as junk' should be disabled in junk folder 2010-05-03 21:36:50 +02:00
fabb6b035c Only #include Camel's top-level header. 2010-04-02 16:59:20 -04:00
8b434464f0 Revise a "to-do" comment that's done. 2009-12-01 15:12:35 -05:00
5e938b590f Expand the EMailReader interface so it's easier to use.
Adds the following methods:

  CamelFolder *   (*get_folder)          (EMailReader *reader);
  const gchar *   (*get_folder_uri)      (EMailReader *reader);
  GPtrArray *     (*get_selected_uids)   (EMailReader *reader);
2009-12-01 15:01:14 -05:00
d94534c367 Merge bits and pieces of the anjal-evo-2-30 branch. 2009-11-30 18:34:38 -05:00
e841a0b223 Bug 594863 - Message body doesn't allow right click pop up menu 2009-09-12 22:35:45 -05:00
016805f54d Get the mailing-list-actions plugin working.
Also get mail-to-task working for the message browser window.
Came up with a new technique for managing actions and action groups in
the process.  Also gave the EMailReader interface an "update-actions"
signal for plugins to connect to.
2009-09-05 11:35:02 -04:00
cee7273ff2 Bug 592032 - Marks message as read when preview is off 2009-08-17 14:14:03 -04:00
ff736e48b2 Bug 592034 - Reply to List doesn't work 2009-08-17 12:15:57 -04:00
f0d3f3afdf Radically reorganize source code.
- 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.
2009-06-24 18:29:22 -04:00
cc3a98fc1a Merge branch 'master' into kill-bonobo
Conflicts:
	a11y/widgets/ea-combo-button.c
	a11y/widgets/ea-combo-button.h
	addressbook/gui/component/addressbook-component.c
	addressbook/gui/component/addressbook-component.h
	addressbook/gui/component/addressbook-view.c
	addressbook/gui/component/addressbook-view.h
	addressbook/gui/component/component-factory.c
	addressbook/gui/widgets/e-addressbook-view.c
	addressbook/gui/widgets/eab-contact-display.c
	addressbook/gui/widgets/eab-gui-util.h
	addressbook/gui/widgets/eab-menu.c
	addressbook/gui/widgets/eab-menu.h
	addressbook/gui/widgets/eab-popup-control.c
	addressbook/gui/widgets/eab-popup-control.h
	addressbook/gui/widgets/eab-popup.c
	addressbook/gui/widgets/eab-popup.h
	calendar/gui/cal-search-bar.c
	calendar/gui/calendar-commands.c
	calendar/gui/calendar-component.c
	calendar/gui/comp-editor-factory.c
	calendar/gui/comp-editor-factory.h
	calendar/gui/control-factory.c
	calendar/gui/dialogs/comp-editor.c
	calendar/gui/e-cal-component-memo-preview.c
	calendar/gui/e-cal-component-memo-preview.h
	calendar/gui/e-calendar-table.c
	calendar/gui/e-memo-table.c
	calendar/gui/e-memos.c
	calendar/gui/e-tasks.c
	calendar/gui/gnome-cal.c
	calendar/gui/gnome-cal.h
	calendar/gui/itip-bonobo-control.c
	calendar/gui/itip-bonobo-control.h
	calendar/gui/main.c
	calendar/gui/memos-component.c
	calendar/gui/memos-control.c
	calendar/gui/memos-control.h
	calendar/gui/migration.c
	calendar/gui/migration.h
	calendar/gui/tasks-component.c
	calendar/gui/tasks-control.c
	calendar/importers/main.c
	composer/Makefile.am
	composer/e-composer-header-table.c
	composer/e-composer-header.c
	composer/e-composer-header.h
	composer/e-composer-name-header.c
	composer/e-composer-private.c
	composer/e-composer-text-header.c
	composer/e-msg-composer.c
	composer/e-msg-composer.h
	e-util/e-corba-utils.h
	e-util/e-logger.c
	e-util/e-logger.h
	e-util/e-util-labels.c
	e-util/e-util-labels.h
	em-format/em-format.c
	mail/Makefile.am
	mail/e-mail-shell-migrate.c
	mail/em-account-editor.c
	mail/em-account-editor.h
	mail/em-composer-prefs.c
	mail/em-composer-utils.c
	mail/em-composer-utils.h
	mail/em-folder-browser.c
	mail/em-folder-tree-model.c
	mail/em-folder-tree.c
	mail/em-folder-tree.h
	mail/em-folder-utils.c
	mail/em-folder-utils.h
	mail/em-folder-view.c
	mail/em-format-html-display.c
	mail/em-format-html.c
	mail/em-mailer-prefs.c
	mail/em-mailer-prefs.h
	mail/em-message-browser.c
	mail/em-message-browser.h
	mail/em-network-prefs.h
	mail/em-popup.c
	mail/em-utils.c
	mail/importers/Makefile.am
	mail/mail-component-factory.c
	mail/mail-component.c
	mail/mail-config-factory.c
	mail/mail-config-factory.h
	mail/mail-config.c
	mail/mail-dialogs.glade
	mail/mail-types.h
	plugins/calendar-weather/calendar-weather.c
	plugins/mail-account-disable/mail-account-disable.c
	plugins/select-one-source/select-one-source.c
	po/POTFILES.in
	shell/e-component-registry.c
	shell/e-component-registry.h
	shell/e-component-view.c
	shell/e-component-view.h
	shell/e-corba-config-page.c
	shell/e-corba-config-page.h
	shell/e-shell-constants.h
	shell/e-shell-settings-dialog.c
	shell/e-shell-settings-dialog.h
	shell/e-shell-window-commands.c
	shell/e-shell-window.c
	shell/e-shell.h
	shell/e-sidebar.c
	shell/e-sidebar.h
	shell/e-user-creatable-items-handler.c
	shell/e-user-creatable-items-handler.h
	shell/es-menu.c
	shell/es-menu.h
	shell/evolution-component.h
	shell/evolution-config-control.c
	shell/evolution-config-control.h
	shell/evolution-listener.c
	shell/evolution-listener.h
	shell/evolution-shell-component-utils.c
	shell/evolution-shell-component-utils.h
	shell/importer/evolution-importer-client.c
	shell/importer/evolution-importer-client.h
	shell/importer/evolution-importer-listener.c
	shell/importer/evolution-importer-listener.h
	shell/importer/evolution-importer.c
	shell/importer/evolution-importer.h
	shell/importer/evolution-intelligent-importer.c
	shell/importer/evolution-intelligent-importer.h
	shell/importer/intelligent.c
	shell/main.c
	shell/test/evolution-test-component.c
	shell/test/evolution-test-component.h
	widgets/menus/gal-view-instance.c
	widgets/menus/gal-view-menus.c
	widgets/menus/gal-view-menus.h
	widgets/misc/Makefile.am
	widgets/misc/e-activity-handler.c
	widgets/misc/e-activity-handler.h
	widgets/misc/e-charset-picker.c
	widgets/misc/e-combo-button.c
	widgets/misc/e-combo-button.h
	widgets/misc/e-config-page.h
	widgets/misc/e-dropdown-button.c
	widgets/misc/e-dropdown-button.h
	widgets/misc/e-filter-bar.c
	widgets/misc/e-info-label.c
	widgets/misc/e-info-label.h
	widgets/misc/e-multi-config-dialog.c
	widgets/misc/e-multi-config-dialog.h
	widgets/misc/e-search-bar.c
	widgets/misc/e-search-bar.h
	widgets/misc/e-task-bar.c
	widgets/misc/e-task-bar.h
	widgets/misc/e-task-widget.c
	widgets/misc/e-task-widget.h
	widgets/misc/test-dropdown-button.c
	widgets/misc/test-error.c
	widgets/misc/test-info-label.c
	widgets/table/e-table-example-1.c
2009-05-27 08:37:17 -04:00
16e2beab9e Adapt mail to EShellBackend changes.
Again, builds but not tested.  Lots of compiler warnings to clean up,
but I don't have the energy for it.  This was pretty grueling.
2009-05-07 16:38:32 -04:00
85d0142d21 Move text searching UI into a new EMailSearchBar widget.
svn path=/branches/kill-bonobo/; revision=37351
2009-03-02 03:14:42 +00:00
3c7a575407 Fix some runtime warnings.
Copy that nasty message list scrolling hack to EMailShellContent.
Remember the scrollbar position for each folder.  Now I just have to make
it select a message automatically.

svn path=/branches/kill-bonobo/; revision=37119
2009-01-21 21:03:14 +00:00
22d41a51fa Formalize the "no disabled items in popup menus" policy in the form of a
GtkAction subclass called EPopupAction.  Migrate all the modules over to
using EPopupActions in their popup menus.

Add sensitivity management of GtkActions to EMailReader.  Not finished.

svn path=/branches/kill-bonobo/; revision=37106
2009-01-20 00:05:40 +00:00
e0610b2e0c Continue chipping away at EMFolderView and EMFolderBrowser.
Migrate from gnome_url_show() to e_show_uri().

svn path=/branches/kill-bonobo/; revision=37038
2009-01-11 14:20:50 +00:00
19f1e3fe20 Fix some miscellaneous mailer bugs.
svn path=/branches/kill-bonobo/; revision=37011
2009-01-07 21:27:06 +00:00
8d8e4ac1c2 Tweak the EShell API.
Disable File -> Close Window when there's only one window.
Replace EMMessageBrowser with EMailBrowser.

svn path=/branches/kill-bonobo/; revision=37009
2009-01-07 18:23:46 +00:00
9d915124c2 Get the Character Encoding menu working.
Kill e_charset_picker_bonobo_ui_populate().

svn path=/branches/kill-bonobo/; revision=36950
2008-12-31 20:24:59 +00:00