Commit Graph

25 Commits

Author SHA1 Message Date
6db2305b33 ** Merged in camel-incremental-branch.
2000-11-02  Not Zed  <NotZed@HelixCode.com>

        ** Merged in camel-incremental-branch.

        * mail-format.c (mail_get_message_body): Jeff!  Sigh.
        We should definetly not be strduping the
        content, it has already been copied and duplicated.  Look at
        get_data_wrapper_text.

svn path=/trunk/; revision=6337
2000-11-02 03:36:48 +00:00
360675f54b lots of i18n fixes
svn path=/trunk/; revision=6143
2000-10-24 05:23:27 +00:00
ee5eeb1dd2 No, we REALLY dont want to perform an immediate search as the keys are
2000-10-18  Not Zed  <NotZed@HelixCode.com>

        * folder-browser.c (folder_browser_gui_init): No, we REALLY dont
        want to perform an immediate search as the keys are pressed.

        * mail-display.c (on_object_requested): Kill a minor warning with
        a cast.

        * mail-config.c: Include mising ctype.h to kill a warning.

        * message-thread.c (main): Fixed the test case for api changes.

        * message-list.c (message_list_drag_data_get): Set some flags to
        get_folder().  I dont even think this will work because
        mail_tool_get_folder doesn't handle file url's.

        * mail-vfolder.c (vfolder_uri_to_folder): Pass appropriate flags.

        * mail-ops.c (do_setup_folder): Pass appropriate flags.  Hmm,
        whats the difference between setup and create.  *shrug*
        (do_create_folder): Pass appropriate flags to get_folder.  Needs a
        way to specify the index flag.

        * mail-tools.c (mail_tool_get_folder_from_urlname): Changed create
        to flags argument.
        (mail_tool_get_local_inbox_url): Add an index argument.
        (mail_tool_get_local_inbox): honour index flag.
        (mail_tool_get_inbox): Changed for api change.
        (mail_tool_uri_to_folder): Fixed calls to store_get_folder();

        * mail-local.c (load_metainfo): Added an indexed field to the metainfo.
        (save_metainfo): And save it too.
        (do_reconfigure_folder): Honour index flag when creating the new
        folder.  Do not open the old folder with an index at all.
        (mail_local_map_uri): Add an index argument - tells if the mbox is
        indexed.
        (mail_tool_local_uri_to_folder): Create & pass flags properly.
        (#include gnome.h): Dont include all of gnome, just what we use,
        and explicity include xml-memory, so we get xmlFree().

svn path=/trunk/; revision=5979
2000-10-18 06:13:12 +00:00
395a311fe3 Cool Hack of the Day: right-click menu item to autodetect what mailing
list a message comes from and create the rule for it on the fly.
(Many thanks to Joakim for suggesting the way to implement this.)

Also, use the new shiny toolbar icons from TigerT and mark some
strings for translation.

svn path=/trunk/; revision=5362
2000-09-12 14:30:49 +00:00
a035de68d2 (prune_empty): Plugged another small leak.
svn path=/trunk/; revision=5353
2000-09-12 00:57:09 +00:00
c87e7df090 Reverted to version 1.15. (remove_node): Ok, if a node has a parent,
2000-09-12  Not Zed  <NotZed@HelixCode.com>

        * message-thread.c: Reverted to version 1.15.
        (remove_node): Ok, if a node has a parent, remove it from the
        parent list, otherwise remove it from the (supplied) root list.
        (group_root_set): When we merge children, free the lost node.
        (thread_messages_free): Remove the return, run as is.

svn path=/trunk/; revision=5352
2000-09-12 00:48:01 +00:00
dcc47cc15f Fix an infinite loop in the message threading with empty containers.
svn path=/trunk/; revision=4964
2000-08-22 15:40:23 +00:00
aa670b3306 Plug mem leaks.
svn path=/trunk/; revision=4854
2000-08-16 18:33:20 +00:00
f0d329f083 Updates to the memory debugging stuff.
svn path=/trunk/; revision=4853
2000-08-16 14:49:16 +00:00
427cce1f77 Add support for debugging the message thread memory leaks.
svn path=/trunk/; revision=4850
2000-08-15 22:13:40 +00:00
9178fed291 Don't clear the tree here. If two "folder_changed"s arrive in close
* message-list.c (cleanup_regenerate_messagelist): Don't clear the
        tree here. If two "folder_changed"s arrive in close succession,
        then one possible ordering of events is
        cleanup_regenerate_messagelist, cleanup_regenerate_messagelist,
        cleanup_thread_messages, cleanup_thread_messages. Which would
        result in the message list being filled in twice without being
        cleared in between. So don't clear it until the rebuilding
        function itself is called.
        (clear_tree): New function to empty out the ETreeModel in the
        message list.
        (build_tree): Change to simpler interface. Call clear_tree.
        (build_subtree): Does most of the work of the old build_tree
        (build_flat): Remove unused arg. Call clear_tree.

        * message-thread.c (cleanup_thread_messages): Update for
        build_tree interface change.

svn path=/trunk/; revision=4787
2000-08-12 23:07:19 +00:00
d5f9483b16 Fixed some warnings.
2000-08-10  Christopher James Lahey  <clahey@helixcode.com>

	* folder-browser-factory.c, message-list.c, message-thread.c,
	session.c: Fixed some warnings.

svn path=/trunk/; revision=4722
2000-08-11 03:41:26 +00:00
8cb514d6dd Merge with camel-async.
svn path=/trunk/; revision=4687
2000-08-10 17:30:50 +00:00
ffaebb53fe Fix some compiler warnings.
* mail-crypto.c, mail-format.c, message-thread.c: Fix some
	compiler warnings.

svn path=/trunk/; revision=4615
2000-08-08 23:37:31 +00:00
72092414aa Configurable vfolder sources, and a button to save a search
as a new vfolder.

2000-07-31  Not Zed  <NotZed@HelixCode.com>

        * mail-vfolder.h: Header for vfolder functions.

        * folder-browser.c (mail_uri_to_folder): Use new scheme to open
        vfolders.
        (search_save): New button/function to save a search as a vfolder.

        * mail-vfolder.c (vfolder_edit): Made asynchronous.
        (vfolder_uri_to_folder): New function for loading vfolders and
        setting up their source folders.
        (vfolder_refresh): Change shell vfolder uri's to indirect
        references rather than the real vfolder uri.
        (vfolder_gui_add_rule): Add a rule with user confirmation.
        (vfolder_create_part): Get a new part by name, for creating rules
        in code.

        * message-thread.c (thread_messages): Check for uid lookup
        failure, which indicates an error in the folder or calling code.

svn path=/trunk/; revision=4422
2000-07-31 15:07:49 +00:00
55499dc015 Don't group together messages with the same non-Re: subject and no
* message-thread.c (group_root_set): Don't group together messages
	with the same non-Re: subject and no References/In-Reply-To. More
	often than not, they're unrelated. (eg, "[No subject]".)
	(thread_messages): Handle messages with no Message-Id. "This
	shouldn't happen", but it does sometimes, and it's not much code
	to make it just work.

svn path=/trunk/; revision=4317
2000-07-25 17:31:50 +00:00
a273803fab What if message info is NULL?
2000-07-19  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-thread.c (thread_messages): What if message info is NULL?

svn path=/trunk/; revision=4222
2000-07-19 17:34:08 +00:00
ba8853311f Increase shareholder value.
svn path=/trunk/; revision=4052
2000-07-10 20:58:32 +00:00
541c905279 fix a "Re:" parsing bug
* message-thread.c (get_root_subject): fix a "Re:" parsing bug

svn path=/trunk/; revision=3998
2000-07-09 03:03:50 +00:00
0c9c8a55f8 (sort_node): sort the tree by the original order of the messages
in the folder rather than by date.

svn path=/trunk/; revision=3963
2000-07-07 21:54:14 +00:00
2b29d7310a Add another argument "clast" pointing to the container before the current
* message-thread.c (remove_node): Add another argument "clast"
	pointing to the container before the current one in the list,
	which it can update if that turns out to be the one that it
	removed.
	(group_root_set): Update for remove_node change, and remove both
	nodes in the "subjects are common" case. Fixes a bug that would
	cause the message list to be truncated if this rule was invoked.

svn path=/trunk/; revision=3961
2000-07-07 21:21:16 +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
1e8c9c87a0 Well, delete, expunge, appear broken, it sorts (initially) at least now.
* message-thread.c (sort_thread): sort messages based on date for
	the initial sort order.
	(thread_messages_free): Implement.

	(message_list_init): set the root node invisible afterall.
	(message_list_set_search): Clear the old tree before putting in a
	new one.

svn path=/trunk/; revision=3922
2000-07-06 12:32:55 +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
b226c0a68f Code for message threading.
2000-07-06  Not Zed  <NotZed@HelixCode.com>

        * message-thread.[ch]: Code for message threading.

svn path=/trunk/; revision=3916
2000-07-06 05:03:57 +00:00