Commit Graph

24 Commits

Author SHA1 Message Date
1cc1f0a7a7 Add a "Threaded Message List" item to the "View" menu.
* folder-browser-factory.c (control_activate): Add a "Threaded
	Message List" item to the "View" menu.

	* message-list.c (message_list_toggle_threads): Handler for that.
	(build_flat): New function to build a "flat" message list using
	the tree model.
	(message_list_regenerate): Build tree or flat message list
	depending on the global setting.

svn path=/trunk/; revision=3999
2000-07-09 03:06:56 +00:00
2d33aa8a77 Lots of changes. Store uids as node data on the tree nodes and use those
* message-list.c: Lots of changes. Store uids as node data on the
	tree nodes and use those rather than rows where possible. (The
	concept of "row" is just getting too complicated.) Get rid of the
	summary_table, because given a uid we can call
	camel_folder_get_message_info, which makes more sense than keeping
	a separate uid->row hash table ourselves.

	(get_message_info): update
	(get_message_row): removed
	(ml_col_cound, ml_row_count, ml_value_at, ml_set_value_at,
	ml_cell_is_editable, ml_duplicate_value, ml_free_value,
	ml_initialize_value, ml_value_is_empty, ml_value_to_string):
	Removed. We always use the tree model now.
	(message_list_init): Remove the non-tree code.
	(build_tree): store uids in the tree rather than row numbers,
	and build the message_list->uid_rowmap to map from uids to rows
	when needed.
	(message_list_regenerate): Renamed from _set_search, since it's
	used to redraw in non-search cases too.
	(message_changed): Use the uid_rowmap to get a model row number.

	* message-thread.c (thread_messages): Change the interface on this
	to work with the new MessageList.

	* folder-browser.c (search_set, folder_browser_clear_search):
	s/message_list_set_search/message_list_regenerate/

svn path=/trunk/; revision=3960
2000-07-07 21:15:11 +00:00
647cc8b636 New function to select the first message on or after the given row that
* message-list.c (message_list_select_next): New function to
	select the first message on or after the given row that meets
	certain flag criteria.

	* folder-browser.c (etable_key): call message_list_select_next to
	select next non-deleted message after Delete.

	* mail-ops.c (real_fetch_mail): call message_list_select_next to
	select first unread message in current folder if it changes.
	(real_delete_msg): Remove the code to move the etable cursor. It
	only makes sense really if you deleted the message with the
	keyboard, so do it from there.

svn path=/trunk/; revision=3927
2000-07-06 21:33:07 +00:00
6cabd25cfa Setup the subject renderer to a tree in tree mode. (on_cursor_change_cmd):
2000-07-06  Not Zed  <NotZed@HelixCode.com>

        * message-list.c (message_list_init_header): Setup the subject
        renderer to a tree in tree mode.
        (on_cursor_change_cmd): For a tree model, map the view row to the
        data row.
        (build_tree): Builds the tree data structure of all messages.
        (message_list_set_search): For a tree model, build the tree here.
        (ml_tree_icon_at): Icon callback, returns nothing.
        (ml_tree_value_at):
        (ml_tree_set_value_at):
        (ml_tree_is_cell_editable): Maps tree node to data row, and calls
        the equivalent table callback
        (message_list_init_renderers): Setup the tree renderer if needed.

        * message-list.h: Add a tree renderer to render list, and
        tree_view indicator.

svn path=/trunk/; revision=3921
2000-07-06 08:44:01 +00:00
6f95a96083 New function, a wrapper around e_table_selected_row_foreach, which calls
* message-list.c (message_list_foreach): New function, a wrapper
	around e_table_selected_row_foreach, which calls the callback
	function with UIDs rather than row numbers.

	* folder-browser-factory.c: Remove never-used "Find" button from
	the toolbar and replace it with "Refile". (We need a better icon
	for this...). Hook up "Refile" to "refile_msg".

	* mail-ops.c (refile_msg): Call the shell's user_select_folder
	routine, and then use message_list_foreach and real_refile_msg to
	do the work.
	(delete_msg): Update to use message_list_foreach.

	* folder-browser.c (mail_uri_to_folder): new function, extracted
	from folder_browser_load_folder, to turn a URI into a folder.
	(folder_browser_load_folder): Use it.

svn path=/trunk/; revision=3833
2000-06-30 20:05:47 +00:00
263cc3a01f use the ETable row_selection signal to track how many rows are selected.
* message-list.c (on_row_selection): use the ETable row_selection
	signal to track how many rows are selected. Eventually we will use
	this info to disable toolbar buttons when you have too few/too
	many messages selected, but the current toolbar widget doesn't
	allow that.

	* message-list.h, message-list.c, mail-ops.c: Change selected_row
	and selected_uid fields of MessageList to cursor_row and
	cursor_uid to be more correct according to the new ETable
	interfaces.

svn path=/trunk/; revision=3829
2000-06-30 17:46:48 +00:00
09f78111f5 message-list.c: added prototype for filter_date()
svn path=/trunk/; revision=3772
2000-06-28 15:02:30 +00:00
4907469fb0 Update received date to work like sent date.
* message-list.c: Update received date to work like sent date.

svn path=/trunk/; revision=3678
2000-06-21 18:17:21 +00:00
78c8bb8577 Implement clicking on the envelope icon to set read/unread. Based on a
* message-list.c (ml_set_value_at): Implement clicking on the
	envelope icon to set read/unread. Based on a patch by clahey.
	(select_msg): keep the timeout id for the "seen" flagging in the
	message_list structure, so ml_set_value_at can clear it so it
	doesn't re-mark a message seen after you click it unseen.

svn path=/trunk/; revision=3601
2000-06-16 23:50:29 +00:00
9c21067261 new function to do a uid to row mapping. (mark_msg_seen, select_msg,
* message-list.c (get_message_row): new function to do a uid to
	row mapping.
	(mark_msg_seen, select_msg, message_changed,
	message_list_set_folder): Update for Camel flag changes.
	(on_cursor_change_cmd): Rename "row_to_select" to "selected_row",
	and keep a "selected_uid" as well.

	* mail-ops.c (composer_send_cb): Update for Camel flag changes,
	and fix some memory-handling bugs. (Free the post_send_data when
	the composer is destroyed, not when the user clicks "send", which
	could happen never, or more than once.)
	(delete_msg): Update for Camel flag changes, and fix the "holding
	down the delete key skips some messages" bug.

svn path=/trunk/; revision=3600
2000-06-16 23:11:10 +00:00
df39895417 Add a date column. (COL_SENT_WIDTH_MIN): Make this wider. (ml_value_at):
* message-list.c: Add a date column.
	(COL_SENT_WIDTH_MIN): Make this wider.
	(ml_value_at): return the sent date (as a time_t) for COL_SENT.
	(Fix COL_TO too while I'm here.)
	(ml_duplicate_value, ml_free_value, ml_initialize_value,
	ml_value_is_empty): COL_SENT is numeric now.
	(message_list_init_renderers): Create a date renderer (using
	text_filter to translate the time_t into a string).
	(message_list_init_header): Use render_date for COL_SENT.

svn path=/trunk/; revision=3365
2000-06-02 02:32:10 +00:00
f0ec699349 Added bold for unread messages.
2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c, message-list.h: Added bold for unread messages.

svn path=/trunk/; revision=3292
2000-05-30 20:59:12 +00:00
0473e106f0 Added a COL_DELETED and made it the strikeout column for both text
2000-05-28  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c, message-list.h: Added a COL_DELETED and made it
	the strikeout column for both text renderers.

svn path=/trunk/; revision=3237
2000-05-28 04:22:13 +00:00
241a35c42f Requires a camel-patch, about to come through ...
2000-05-04  NotZed  <NotZed@HelixCode.com>

	* message-list.c (message_list_set_folder): Get the whole message
	summary right away.
	(folder_changed): And if we change too.
	(ml_row_count): Use the match count or summary table length as the
	row count.
	(get_message_info): Use array references to lookup message summary
	info.  For the search result list, use the summary_search_cache to
	cache the info lookup.
	(message_list_init): Allocate the summary search cache.
	(message_list_destroy): Free the summary search cache and the
	summary table, if there is one to free.
	(message_list_set_search): Save the match count, and clear the
	summary search cache for reuse.
	(folder_changed): Re-retrieve the summary list if the folder has
	changed.
	(message_list_set_folder): Retrieve the summary list when opening
	the folder.

svn path=/trunk/; revision=2807
2000-05-05 03:42:22 +00:00
ab96ee0005 > 2000-05-02 NotZed <NotZed@HelixCode.com>
>
> 	* folder-browser.c (folder_browser_gui_init): Connect the changed
> 	signal to search, so it searched immediately?
>
40a46,48
> 	(message_list_set_search): Save the search string.
> 	(folder_changed): If the folder changes, re-run the search,
> 	otherwise we may end up with invalid entries in the display.

svn path=/trunk/; revision=2749
2000-05-02 17:53:26 +00:00
56f4dd919f Added a deleted message icon whcih shows when messages are
deleted (takes a while to update the gui for some reason).
Updates the gui when expunged, via a signal.

	* pixmaps.h: Added envelope-deleted state.

	(message_list_init_renderers): Added a 3rd state to message_status
	= deleted.
	(ml_value_at): Show the message state as deleted, if it is marked
	for deletion.
	(folder_changed): When the folder changes, update the display.
	(message_list_set_folder): Connect to the folder_changed event
	here.
	(message_changed): Callback to update the display when the message
	changes.
	(select_msg): And connect to the message_changed signal so we know
	when it cahgnes.

svn path=/trunk/; revision=2746
2000-05-02 03:33:55 +00:00
5c3e0a6314 A hackish little quick-search entry. (search_activate): Perform a
2000-05-01  NotZed  <NotZed@HelixCode.com>

        * folder-browser.c (folder_browser_gui_init): A hackish little
        quick-search entry.
        (search_activate): Perform a quick-search on the folder subject
        only.

        * message-list.c (get_message_info): If there is an active search,
        then get the data from that ... use this instead of
        _get_message_info().
        (ml_row_count): If we have an active search, get the info from its
        result.
        (select_msg): Changed to use get_message_info, so searches work.
        (ml_value_at): And same here.

        * mail-display.c: Include missing errno.h.

svn path=/trunk/; revision=2724
2000-05-01 21:51:03 +00:00
6b5b1f6de9 Add libibex.la to link.
2000-04-20  NotZed  <NotZed@HelixCode.com>

        * Makefile.am (evolution_mail_LDADD): Add libibex.la to link.

        * message-list.h: Removed folder summary.

        * message-list.c: Dont include folder-summary anymore.
        (select_msg): Changed to use folder, not summary in
        summary_get_message_info().  God this code is grotty.
        (ml_value_at): Ditto.
        (ml_value_at): Changed to use new interface.  Hmm, this returns a
        static variable, that seems wrong.
        (message_list_set_folder): Remove folder summary.

svn path=/trunk/; revision=2530
2000-04-20 23:47:40 +00:00
7aa932f07e new function, actually calls select_msg. (on_row_selection_cmd): register
* message-list.c (on_row_selection_idle): new function, actually
	calls select_msg.
	(on_row_selection_cmd): register an idle instead of calling
	select_msg directly.  this fixes the lag before the row is
	selected - selection is instantaneous now, with message loading
	happening afterward.

	* message-list.h: add row_to_select and an idle_id to the message
	list to make the select_msg call happen in an idle func.

svn path=/trunk/; revision=2470
2000-04-17 07:59:16 +00:00
207a1395e1 plug mem leaks due to bad documentation of
2000-03-07  bertrand  <bertrand@helixcode.com>

	* camel-formatter.c (handle_mime_part):
	plug mem leaks due to bad documentation
	of camel_content_field_get_mime_type
	(print_camel_body_part): idem
	(handle_multipart_alternative): idem

	* gmime-content-field.c (gmime_content_field_get_mime_type):
	documentation fix.


	* camel-mime-part.c (my_finalize): unref the
	content_input_stream if any.

	* shell/e-shell-shortcut.c (shortcut_bar_item_selected):
	removed a test that prevented the standard menu
	to be shown.

svn path=/trunk/; revision=2089
2000-03-08 19:53:31 +00:00
7c164f12b9 More changes than a man can remember.
The UI works now.

svn path=/trunk/; revision=2074
2000-03-06 09:38:42 +00:00
c2ae364efc More work. Not funny that e-table does not display.
More work.  Not funny that e-table does not display.

Miguel.

svn path=/trunk/; revision=1654
2000-01-29 12:29:44 +00:00
9f31ce86ff Make Evolution compile with the latest Bonobo changes.
Make Evolution compile with the latest Bonobo changes.

Miguel.

svn path=/trunk/; revision=1636
2000-01-26 00:04:16 +00:00
670f57583d More work
svn path=/trunk/; revision=1628
2000-01-25 08:43:24 +00:00