Commit Graph

145 Commits

Author SHA1 Message Date
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
d0f2c46a1c Do not auto-mark-as-seen when changing filter type 2012-01-11 15:59:25 +01: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
fcbbdfbd18 Coding style and whitespace cleanup. 2011-09-04 07:34:32 -04:00
f59681796d Coding style and whitespace cleanup. 2011-08-13 11:27:51 -04:00
d05029936c Drop 'folder_uri' member from MessageList. 2011-05-03 14:59:38 -04:00
0434afb9a5 Drop 'folder_uri' param from message_list_set_folder(). 2011-05-02 21:54:12 -04:00
92e6052e56 Bug #630969 - Implement also Message->Go to->Previous Thread 2010-10-20 11:15:43 +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
e582ccff2d Remove MailAsyncEvent.
As of commit 7fa0dd78305677d14839a480fc379ebba3a6d55c, all CamelFolder
and CamelStore signals are emitted from idle callbacks.  That means we
don't have to propagate events to the main loop thread anymore, which
eliminates all remaining uses of MailAsyncEvent.
2010-09-30 14:29:28 -04:00
ebcce86769 Coding style and whitespace cleanups. 2010-09-11 14:14:04 -04:00
8dc6fd1344 Bug 621839 - Improve auto-selection of messages 2010-06-17 00:12:04 -04:00
fabb6b035c Only #include Camel's top-level header. 2010-04-02 16:59:20 -04:00
94cc603cca Bug #374533 - Read window stays open after last email is deleted 2010-04-01 14:02:43 +02:00
33d31dba3c Remove some unused MessageList constants. 2010-03-28 10:25:59 -04:00
86efefd39f Bug 468448 - Kill "Hide Read Messages" and "Hide Selected Messages"
Removed the following menu items under View:

    Hide Selected Messages
    Hide Read Messages
    Show Hidden Messages

These options are confusing and don't fit with the rest of the mailer
design.

Hidden messages were tracked by folder in:

    ~/.evolution/mail/config/hidestate-<<folder-uri>>

So by simply not loading those files any more we reveal all previously
hidden messages and avoid any risk of lost messages.

Also inverted "Hide Deleted Messages" to "Show Deleted Messages".
2010-03-28 10:15:07 -04:00
3e7c7808cc Improve clipboard behavior.
Add "copy-target-list" and "paste-target-list" to the ESelectable
interface.  These are underutilized for the moment, but will eventually
be used to help integrate drag-and-drop support into ESelectable.

Add cut and paste support to EWebView, along with a new "editable"
property and new clipboard signals "copy-clipboard", "cut-clipboard" and
"paste-clipboard".

In EFocusTracker, listen for "owner-changed" signals from the default
clipboard as another trigger to update actions, particularly the Paste
action.  (Unfortunately this doesn't work for EWebView since GtkHtml
implements its own clipboard.)

In EMsgComposer, convert GtkhtmlEditor's clipboard methods to empty
stubs, since EFocusTracker will now trigger EWebView's clipboard
actions.  Also, intercept EWebView::paste-clipboard signals and improve
the interaction between the HTML editor and the attachment bar based on
use cases in bug #603715.
2010-01-17 12:11:08 -05:00
bd31f49bac Coding style and whitespace cleanup. 2009-12-26 00:26:18 -05:00
abc0e4c694 Introduce ESelectable and EFocusTracker.
EFocusTracker tracks the input focus within a window and helps keep
the sensitivity of "selectable" actions in the main menu up-to-date.
Selectable actions include Cut, Copy, Paste, Select All and Delete.

EFocusTracker has built-in support for widgets that implement the
GtkEditable interface such as GtkEntry and GtkTextView.  It also
supports custom widgets that implement the ESelectable interface,
which is a subset of GtkEditable and can apply to anything that
displays selectable content (esp. tree views and ETables).

This commit integrates EFocusTracker with EShellWindow, CompEditor,
EMsgComposer, and ESignatureManager.

It also bumps the GtkHTML requirement to 2.29.5 to utilize the new
GtkhtmlEditor:html constructor property.
2009-12-25 15:42:17 -05:00
eb60a4e448 Kill ETreeScrolled.
Kill ETreeScrolled and convert MessageList to an ETree subclass.

ETreeScrolled is nothing but a GtkScrolledWindow containing an ETree.
It adds nothing of value and actually makes customizing ETree harder.
2009-12-08 01:55:28 -05:00
76fbb9d232 Kill message_list_free_uids().
Use em_utils_uids_free() instead.
2009-12-01 15:01:14 -05:00
591bcbeb91 Remove a bunch of unused functions. 2009-09-15 05:26:52 -05:00
c0d998229d Stop abusing forward declarations. 2009-06-18 16:01:29 -04:00
00d56cd32c Use G_BEGIN_DECLS / G_END_DECLS macros. 2009-06-18 10:50:51 -04:00
433eac7844 More code cleanup. 2009-06-02 10:35:03 -04:00
14f8eee012 Whitespace cleanup. 2009-05-28 13:21:01 -04:00
948235c3d1 Prefer GLib basic types over C types. 2009-05-27 10:29:19 -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
e4afd3f9fb Remove trailing whitespace, again. 2009-05-26 23:21:02 -04:00
a538f3f310 Fix several types of pedantic compiler warnings. 2009-05-20 22:52:36 -04:00
e4fa8fe104 Fix several types of pedantic compiler warnings. 2009-05-16 12:11:55 -04:00
84080821d6 Adapt addressbook to EShellBackend changes.
Builds, but not tested.  Use as a reference for other backends.
2009-05-07 08:06:09 -04:00
14e8637d6b Rewrite the mail label code from top to bottom.
- Kill the e-util-labels API and read label information into a
    single-column GtkListStore.  Use GConfBridge to automatically
    keep GConf synched with the list store.

  - The list store (a singleton instance) is stored in EShellSettings
    so it's available everywhere.

  - The list store serves as the model for EMailLabelTreeView,
    which itself is embedded in EMailLabelManager; a complete
    label management UI as seen in the preferences dialog.

  - EMailLabelDialog is used to add or edit a label.  Avoid using a
    color button, instead embed a GtkColorSelection directly in the
    dialog so everything is in one window.

Open issues:

  - The weird toggle/color/text menu items in the popup menu aren't
    there.  For now they're just regular toggle items.  I'll deal
    with it later.

  - Filter intergration is broken at the moment.


svn path=/branches/kill-bonobo/; revision=37233
2009-02-07 20:04:52 +00:00
b06cdfab92 Progress update:
- Tighter integration of GalViewInstance and EShellView.

  - EBinding.  Stolen from ExoBinding.  Lets you bind GObject properties
    together to automatically keep their values in sync.  This is a godsend.
    Added to e-util, but might even deserve a place in libedataserver.

  - EShellSettings.  This is the concept I blogged about.  Already
    started ripping apart em-mailer-prefs.c.  Others to follow.  Any
    place where we're monitoring GConf keys is a target.

  - Incremental progress on the calender and mailer.  Got EMFolderView
    somewhat working, but I think I'll be killing off EMFolderBrowser.



svn path=/branches/kill-bonobo/; revision=36795
2008-11-19 01:39:19 +00:00
85b2913a38 Merge revisions 36534:36684 from trunk.
svn path=/branches/kill-bonobo/; revision=36685
2008-10-24 23:52:05 +00:00
3acdc755d6 ** Fix for bug #438155
2008-10-19  Milan Crha  <mcrha@redhat.com>

        ** Fix for bug #438155

         * message-list.h: (struct _MessageList): message-list.c: (message_list_init),
         (message_list_finalise), (regen_list_done), (regen_list_free), (ml_regen_timeout),
         (mail_regen_cancel): Guard access to the 'regen' list with a lock.

svn path=/trunk/; revision=36652
2008-10-19 17:08:50 +00:00
b2cda1d0c6 Merge revisions 36016:36533 from trunk.
svn path=/branches/kill-bonobo/; revision=36534
2008-10-01 20:56:04 +00:00
4fd6e00afa Added new column "Subject - Trimmed". Patch by hpj.
svn path=/trunk/; revision=36498
2008-09-30 07:59:12 +00:00
c0a255eb90 Merge revisions 36016:36303 from trunk.
svn path=/branches/kill-bonobo/; revision=36307
2008-09-11 15:34:29 +00:00
14fa5c8a8c Change License from GPL to LGPL. 2nd batch.
More changes to come.

svn path=/trunk/; revision=36247
2008-09-02 16:25:53 +00:00
03787e53dd ** Fix for bug #540160
2008-06-26  Milan Crha  <mcrha@redhat.com>

	** Fix for bug #540160

	* message-list.h: (struct _MessageList):
	* message-list.c: (message_list_init), (on_cursor_activated_cmd),
	(on_selection_changed_cmd): Remember whether we come from none/multi
	select to single select and properly update the preview.
	(Reverting patch for bug #337160 and doing that with other approach.)


svn path=/trunk/; revision=35684
2008-06-26 08:39:27 +00:00
94c501caf6 fixed copyright notices
svn path=/trunk/; revision=35663
2008-06-20 22:14:15 +00:00
b7155af74b ** Fix for bug #467892
2008-06-16  Milan Crha  <mcrha@redhat.com>

	** Fix for bug #467892

	* message-list.h: (struct _MessageList), (message_list_ensure_message):
	* message-list.c: (message_list_init), (message_list_finalise),
	(message_list_ensure_message), (regen_list_exec), (regen_list_done):
	Be able to set a message uid to keep in a list after regeneration.
	* em-folder-view.c: (em_folder_view_open_selected):
	Inherit search criteria and ensure keeping the selected message
	in the view even it may not belong to the filter anymore.


svn path=/trunk/; revision=35640
2008-06-16 09:23:32 +00:00
4503c052d0 ** Allow evolution to build with G_DISABLE_SINGLE_INCLUDES and
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
2008-06-06 15:12:53 +00:00
e99e12428d ** Fixes bug #534360
2008-05-22  Matthew Barnes  <mbarnes@redhat.com>

	** Fixes bug #534360

	Migrate from deprecated GtkObject symbols to GObject equivalents.
	Touches over 150 files in all components; too many to list.


svn path=/trunk/; revision=35526
2008-05-22 17:27:48 +00:00
7ea7aa0b49 ** Fix for bug #519292
2008-03-27  Milan Crha  <mcrha@redhat.com>

	** Fix for bug #519292

	* mail/message-list.h: (message_list_set_expand_all):
	* mail/message-list.c: (message_list_set_expand_all):
	Remove unused confusing function.
	* mail/message-list.c: (regen_list_done):
	Use numbers instead of gboolean value.

	* widgets/table/e-tree-table-adapter.c: (set_expanded_state_func),
	(set_collapsed_state_func): Use rather recurse function.


svn path=/trunk/; revision=35271
2008-03-27 11:45:36 +00:00
2093e31002 ** Fix for bug #211353
2007-12-14  Milan Crha  <mcrha@redhat.com>

	** Fix for bug #211353

	* message-list.etspec:
	* message-list.h:
	* message-list.c: Added new column to show labels.
	* filtertypes.xml:
	* vfoldertypes.xml:
	Code for label filters/search folders has been changed.
	* mail-config.glade:
	* em-folder-view.c: (emfv_set_label), (emfv_unset_label),
	(emfv_popup_label_clear), (emfv_popup_label_set),
	(emfv_popup_labels_get_state_for_tag), (emfv_popup):
	Labels popup submenu is now shown with checkboxes so one can set
	more than one label to the message and unset only one label from
	message. There has been added new function, because of this.
	* mail-config.h:
	* mail-config.c: New "interface" functions to work with labels.
	* em-mailer-prefs.h:
	* em-mailer-prefs.c: Editing labels in tree.
	* em-folder-browser.c:
	Labels in show menu reflect changes in preferences.
2007-12-14  Milan Crha  <mcrha@redhat.com>

	** Part of fix for bug #211353

	* filter-label.c: Use global label's setup, not its own copy.
2007-12-14  Milan Crha  <mcrha@redhat.com>

	** Part of fix for bug #211353

	* e-popup.h:
	* e-popup.c: (ep_build_tree):
	Toggles can be in inconsistent state now, and can also contain
	an image, which is a pointer to GtkImage widget.
2007-12-14  Milan Crha  <mcrha@redhat.com>

	** Part of fix for bug #211353

	* e-search-bar.c: (e_search_bar_get_viewitem_id):
	Return -1 if no viewmenu is setup yet.


svn path=/trunk/; revision=34715
2007-12-17 05:40:53 +00:00
042ba3ee7e ** Fix for bug #216485 Edit->Select thread menu fix and improvement.
2007-11-26 Nicholas Miell <nmiell@gmail.com>

	** Fix for bug #216485
	Edit->Select thread menu fix and improvement.

	* mail/em-folder-browser.c: (emfb_edit_select_subthread): new function,
	(emfb_enable_map, emfb_verbs) hook it up
	* mail/message-list.c: (select_thread): new function based on
	thread_select_foreach, (thread_select_foreach): remove the logic
	now in select_thread, (message_list_select_thread): use
	select_thread, (subthread_select_foreach): new function,
	(message_list_select_subthread): new function
	* mail/message-list.h: (message_list_select_subthread): add prototype

	* ui/evolution-mail-list.xml
	Add Select Message Subthread


svn path=/trunk/; revision=34585
2007-11-26 11:28:54 +00:00
1c88010c53 ** Fix for bug #335931
2007-11-23  Milan Crha  <mcrha@redhat.com>

	** Fix for bug #335931

	* message-list.c: (struct _regen_list_msg): New member last_row.
	* message-list.c: (regen_list_regen): Store last_row for later use.
	* message-list.c: (regen_list_regened): Restore row based on last_row
	when no uid was selected before.
	* message-list.c: (mail_regen_list): Init new last_row member.
	* em-folder-view.c: (emfv_select_next_message): New helper function
	to select messages in list.
	* em-folder-view.c: (emfv_popup_mark_junk), (emfv_popup_mark_nojunk),
	(emfv_popup_delete): Using new helper function, so get same behavior.

	* message-list.h: (struct _MessageList):
	* message-list.c: (on_cursor_activated_cmd): Removed cursor_row member.


svn path=/trunk/; revision=34567
2007-11-23 09:06:00 +00:00
9e4fcb29cf ** Remove trailing whitespace from source code.
2007-11-14  Matthew Barnes  <mbarnes@redhat.com>

	** Remove trailing whitespace from source code.


svn path=/trunk/; revision=34537
2007-11-14 22:04:21 +00:00