Commit Graph

227 Commits

Author SHA1 Message Date
7004fae0eb Don't leak memory. (forward_messages): change doinline to be a gboolean
2001-02-11  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (forward_inlined): Don't leak memory.
	(forward_messages): change doinline to be a gboolean argument.

svn path=/trunk/; revision=8172
2001-02-11 07:00:07 +00:00
896d495a2a Reworked some keep-mail-on-server logic so that we ALWAYS look for a
2001-02-08  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-ops.c (fetch_mail_fetch): Reworked some keep-mail-on-server
	logic so that we ALWAYS look for a cached array of UIDs that we
	may have downloaded previously so as not to download them again
	even if we will be deleting them off the server. This fixes bug
	#1344.

svn path=/trunk/; revision=8135
2001-02-09 02:21:18 +00:00
cd101b3ffc only free driver, if set. (fetch_mail_fetched): Unref the driver here, so
2001-02-09  Not Zed  <NotZed@Ximian.com>

        * mail-ops.c (filter_folder_free): only free driver, if set.
        (fetch_mail_fetched): Unref the driver here, so it can cleanup
        before we call the 'done' callback.

        * component-factory.c (owner_set_cb): Add setup for mail
        autoreceive stuff.

        * mail-send-recv.c (free_info_data): Free the send info's from teh
        active hash, not the running list.
        (receive_done): As we finish downloads, remove them and clean them
        up, and also close the window.
        (mail_autoreceive_setup): New function to setup & maintain
        automatic download stuff.

svn path=/trunk/; revision=8134
2001-02-09 01:48:04 +00:00
4459154549 Handle internal camel status return. (receive_done): Remove active
2001-02-07  Not Zed  <NotZed@Ximian.com>

        * mail-send-recv.c (operation_status): Handle internal camel status return.
        (receive_done): Remove active download when done.
        (mail_receive_uri): Initiate download of a single source, with no gui.
        (build_dialogue): Mark any new items as real active downloads.
        (do_show_status): Make the progress bar optional.

2001-02-06  Not Zed  <NotZed@Ximian.com>

        * mail-send-recv.c: camel_cancel->camel_operation.

        * mail-ops.old.c: camel_cancel->camel_operation.

        * mail-ops.c: camel_cancel->camel_operation.

        * mail-mt.c: camel_cancel->camel_operation.

        * mail-callbacks.c (stop_threads): camel_cancel->camel_operation.

        * mail-mt.h: CamelCancel->CamelOperation.

svn path=/trunk/; revision=8096
2001-02-08 01:45:37 +00:00
171de13904 Cast the camel_stream_mem_new() to a CamelStreamMem.
2001-01-29  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-importer.c (mail_importer_add_line): Cast the
	camel_stream_mem_new() to a CamelStreamMem.

svn path=/trunk/; revision=7905
2001-01-30 03:51:20 +00:00
aad4202594 Debug function to compare the tree we think we have, after an incremental
2001-01-29  Not Zed  <NotZed@Ximian.com>

        * message-list.c (tree_equal): Debug function to compare the tree
        we think we have, after an incremental update.
        (build_tree): Check the tree after we've built it.

        * mail-mt.c (mail_get_password): If we are being called from the
        main gui thread, then just call the dialogue directly.  Ideally we
        dont want this anyway but lets handle the case nicely.
        (mail_get_password): Try locking around the password request, to
        single-queue any password requests.
        (mail_msg_init): Push an exit handler to clean it up on completion.

        * mail-send-recv.c (receive_update_got_store): New function called
        when the store has been retrieved asynchronously.
        (mail_send_receive): Get the store asynchronously.  This was
        causing problems where the password dialogue would try and be
        called from the main thread via a message.

        * mail-ops.c (mail_get_store): New function to get a store
        (a)synchronously.  More or less taken from subscribe-dialog, which
        i will remove later.
        (mail_scan_subfolders): Try running the scan subfolder thing
        asynchronously, to help startup time.  Not sure if this will work,
        but presumably the shell can handle the folders appearing later
        ok.

svn path=/trunk/; revision=7886
2001-01-29 09:33:15 +00:00
d8c95a55bc Changed to use mail_save_part to save the data in another thread.
2001-01-28  Not Zed  <NotZed@Ximian.com>

        * mail-display.c (write_data_to_file): Changed to use
        mail_save_part to save the data in another thread.
        (save_data_cb): Hide the fileselector once we have a button press,
        and are saving stuff.

        * mail-ops.c (mail_save_part): New function to save a part content
        asynchronously.

svn path=/trunk/; revision=7867
2001-01-28 03:53:08 +00:00
9987f05606 Set the default folder when copying to mbox. This is a quick fix, i might
2001-01-24  Not Zed  <NotZed@Ximian.com>

        * mail-ops.c (fetch_mail_fetch): Set the default folder when
        copying to mbox.  This is a quick fix, i might need to do a slight
        redesign to clean it up.

svn path=/trunk/; revision=7759
2001-01-23 22:52:03 +00:00
e40e98e0f8 s/filter-driver.h/camel-filter-driver.h/ and update first arg of
* mail-tools.h: s/filter-driver.h/camel-filter-driver.h/ and
	update first arg of mail_too_filter_get_folder_func

	* mail-tools.c (mail_tool_filter_get_folder_func): Update first
	arg to CamelFilterDriver *

	* mail-send-recv.c (receive_status):
	* mail-ops.c (send_queue_send): s/FILTER/CAMEL_FILTER/

	* mail-callbacks.c: Remove filter-driver.h include

	* mail-accounts.c: Put the news functions inside #ifdef
	ENABLE_NNTP to prevent warnings about unused statis functions.

	* subscribe-dialog.c (subscribe_folders, unsubscribe_folders,
	subscribe_refresh_list): Update prototype to match BONOBO_UI_VERB.
	(populate_store_list): add a de-constifying cast

svn path=/trunk/; revision=7708
2001-01-22 17:47:28 +00:00
88f9e36086 remove a warning with conditional news compilation.
2001-01-22  Not Zed  <NotZed@Ximian.com>

	* component-factory.c (owner_set_cb): remove a warning with
	conditional news compilation.

	* mail-ops.h: Cleaned up the header list.

	* folder-browser-factory.c: Replace the old get_send mail with the
	new one (button).

	* mail-ops.c (set_x_mailer):
	(mail_load_evolution_rule_context):
	(mail_do_fetch_mail):
	(mail_do_filter_ondemand):
	(mail_send_mail_old):
	(mail_do_send_queue): All removed, (for) now lives in mail-send-recv.c.
	(load_context):
	(setup_filter_driver):
	(filter_get_folder):
	(mail_filter_folder):
	(mail_fetch_mail):
	(mail_update_subfolders):
	(mail_send_mail):
	(mail_send_queue): New equivalents of all these fundtions, moved
	from mail-send-recv.c ...
	(mail_filter_on_demand): Moved here too.
	(mail_load_filter_context): Export this.

	* mail-callbacks.c (apply_filters): Use the new
	mail_filter_on_demand() call.
	(send_receieve_mail): Use mail_send_receive to do the work.  Add a
	little error handling here that used to be elsewhere.
	(send_queued_mail): Removed.
	(fetch_mail): Removed.
	(select_first_unread): #ifdef'd this out.  Not sure if this still
	makes sense, but it doesn't get run right now anyway.
	(composer_postpone_cb): Fix the setting of message flags.  You
	dont need to get them first, ever.

	* mail-send-recv.c (mail_send_message): Dont use
	mail_tool_send_via_transport anymore (it does nothing useful).

	* mail-tools.c (mail_tool_camel_lock_up): Turned into a noop.
	(mail_tool_camel_lock_down): And here too.
	(mail_tool_move_folder_contents): Removed from the code (hasn't
	bene used for ages).
	(mail_tool_send_via_transport): Removed, it doesn't save anything.

svn path=/trunk/; revision=7702
2001-01-22 11:43:18 +00:00
2679830e64 Remove the X-Evolution header before we send.
2001-01-21  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-ops.c (do_send_queue): Remove the X-Evolution header before
	we send.

svn path=/trunk/; revision=7689
2001-01-21 23:15:50 +00:00
50ef085e18 Init a cancel field in the message. (mail_msg_free): Free it.
2001-01-21  Not Zed  <NotZed@Ximian.com>

        * mail-mt.c (mail_msg_new): Init a cancel field in the message.
        (mail_msg_free): Free it.
        (mail_msg_cancel): New function to attempt to cancel an
        operation by id.  Impelementation functions can still be
        uncancellable by not registering for cancellation, etc, or do it
        themselves as well.

        * mail-send-recv.c (fetch_mail_filter_folder): set folder_uid's
        properly, so we can save it later.
        (filter_folder_filter): Renamed from fetch_mail_filter_folder,
        since its going to be used for all filtering.
        (mail_fetch_mail): Changed from mail_filter_mail.
        (mail_filter_folder): New function, replaces
        mail_do_filter_ondemand functionality.
        (mail_filter_on_demand): New function, actually replaces
        mail_do_filter_ondemand.
        (receive_get_folder): Added an exception arg.
        (mail_send_message): New function to just send a message.
        (send_mail_send): Use mail_send_message.
        (send_queue_send): New send qeue code, use mail_send_message, and
        clean up some stuff.
        (mail_send_receive): Changed from mail_receive.
        (build_dialogue): Setup the sending data, as well.
        (mail_update_subfolders): New function to update folder info.
        (send_mail_send): hook into cancellation if we want.

svn path=/trunk/; revision=7672
2001-01-21 04:19:30 +00:00
93bd7f1d38 Strip leading space from the transport url gotten from the message.
2001-01-20  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-ops.c (do_send_queue): Strip leading space from the
	transport url gotten from the message.

svn path=/trunk/; revision=7670
2001-01-21 01:01:31 +00:00
3a51f7793e Replace --with-x-mailer' with a more generic --with-sub-version'.
The value you provide is now also displayed in the shell title bar.
And while I was at it, I changed the title bar so that it displays the
name of the folder first (instead of "Evolution - Inbox" it says
"Inbox - Evolution 0.8 [yaddayadda]").

svn path=/trunk/; revision=7585
2001-01-17 17:29:14 +00:00
9180a6949f If the user hits "No", then don't destroy the filesel window.
2001-01-16  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (save_msg_ok): If the user hits "No", then
	don't destroy the filesel window.

	* mail-ops.c (save_messages_save): Open with mode 0666 as danw
	suggests.

svn path=/trunk/; revision=7553
2001-01-16 23:21:28 +00:00
83f1dbfe4d Update the X-Mailer header to use the string specified by configure.
* mail-ops.c (send_mail_send, do_send_queue): Update the X-Mailer
	header to use the string specified by configure.

svn path=/trunk/; revision=7540
2001-01-16 19:43:57 +00:00
67be94cbd5 Setup a cancellation handle. (do_fetch_mail): REgister for cancellation
2001-01-16  Not Zed  <NotZed@Ximian.com>

        * mail-ops.c (mail_do_fetch_mail): Setup a cancellation handle.
        (do_fetch_mail): REgister for cancellation here.
        (cleanup_fetch_mail): And unregister for cancellation here.
        (mail_get_message): Add a cancel handle.
        (get_message_get): Register/deregister for cancel.
        (get_message_free): & clean up.

        * mail-mt.c (mail_msg_received): Removed debuggng.

        * mail-callbacks.c (stop_threads): Callback for stopping.

        * folder-browser-factory.c: Add a stop button verb thingy.
        (control_activate): Disable the stop button by default.

svn path=/trunk/; revision=7527
2001-01-16 03:57:24 +00:00
f88c5b4073 Get the X-Evolution-Transport URL and use that if it exists, else fall
2001-01-13  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-ops.c (do_send_queue): Get the X-Evolution-Transport URL
	and use that if it exists, else fall back on the default
	transport.

	* mail-callbacks.c (composer_postpone_cb): Set an
	X-Evolution-Transport header.

svn path=/trunk/; revision=7474
2001-01-13 05:59:32 +00:00
ae70268af9 Let the system umask determine the permissions of this file.
2001-01-09  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (save_messages_save): Let the system umask determine
	the permissions of this file.

svn path=/trunk/; revision=7341
2001-01-09 21:48:23 +00:00
5670e3e662 Add an #include <errno.h>
* mail-ops.c: Add an #include <errno.h>

svn path=/trunk/; revision=7308
2001-01-08 22:05:20 +00:00
f4f3ede9d3 Removed old implementation.
2001-01-04  Not Zed  <NotZed@HelixCode.com>

	* mail-ops.c (mail_do_send_mail): Removed old implementation.

	* folder-browser.c (do_message_selected): If we haven't got a real
	uid, then clear the display instead.

	* message-list.c (message_list_drag_data_get): Use new save
	message function, and also wait for it to finish before
	continuing.
	(folder_changed):
	(message_changed): Use mail_proxy_event instead of
	mail_do_forward.
	(mail_regen_list): New iplementation to replace the old.
	: remove <gnome.h> from headers.  Dont define timeit by default.
	(main_folder_changed):
	(message_list_set_folder):
	(message_list_set_threaded):
	(message_list_set_search):
	(message_list_hide_add):
	(message_list_hide_uids):
	(message_list_hide_clear): Use mail_regen_list instead of
	mail_do_regenerate_messagelist.
	(mail_do_regenerate_messagelist): Removed the old stuff.  No
	functionality changed yet, just using different thread stuff.

	* mail-callbacks.c (save_msg_ok): Use new save message function.

	* component-factory.c (create_view):
	(add_storage): Use mail_scan_subfolders to build the folder info.
	(create_folder): Use new implementation with our own callback.
	(owner_set_cb): Changed b ack to use mail_get_folder, but now wait
	for it to finish.  This will let any gui still run, but also gives
	us the required synchronous operation.
	(got_folder): Callback for when the folder has been opened.

	* mail-ops.c (mail_get_folderinfo): New function to just get the
	folder info in another thread.
	(mail_scan_subfolders): New scan subfolder implementation that
	uses mail_get_folderinfo.
	(mail_do_scan_subfolders): Removed old implementation.
	(mail_create_folder): Nerw implementation to create a folder, only.
	(mail_do_create_folder): Removed old implementation.
	(mail_save_messages): New implementation, fixes a couple of minor
	problems, and now provides a return so it can be waited on.  Also
	check that the writes worked, etc.
	(mail_do_save_messages): Remove previous implementation.
	(mail_do_flag_messages): Removed, nothing uses it.
	(mail_do_flag_messages): Removed, nothing uses it anymore.
	(mail_get_folder): REturn the operation id, so callers can wait
	for it.
	(sync_folder_desc):
	(expunge_folder_desc): Add describe functions so we know what its
	doing.
	(mail_send_mail): More generic implementation of sending mail.

	* mail-mt.c (mail_msg_new): Lock around seq increment.  And insert
	each new message into a hash table of active messages.
	(mail_msg_init): Init the active message table.
	(mail_msg_free): Remove the message from the active message table.
	(mail_msg_wait): New function, waits for a message to be
	processed, by id.
	(mail_msg_check_error): Dont display the error if it is a
	user-cancelled operation.
	(mail_proxy_event): new implementation of mail_op_forward_event.
	Only real difference is it uses the new	thread stuff, and you can
	wait for it to finish if you want.
	(mail_proxy_event): If we're already in the main thread, just call
	the function.

svn path=/trunk/; revision=7246
2001-01-04 07:34:26 +00:00
c37da13423 Call mail-callbacks.c:forward_messages(), so the behaviour is the same as
2001-01-03  Not Zed  <NotZed@HelixCode.com>

        * mail-view.c (view_forward_msg): Call
        mail-callbacks.c:forward_messages(), so the behaviour is the same
        as from the folder browser.

        * mail-callbacks.c (forward_messages): New function to forward
        messages, attached or not.
        (forward_inlined): Changed to use new forward-messages
        implementation.
        (forward_attached): Likewise.
        (do_forward_attach): Callback for forwarding as attachment, once
        we have built it.
        (do_forward_inline): Likewise, for inline, once we have retrieved
        the message.
        (forward_message): Removed.

        * mail-ops.c (mail_build_attachment): New function to build an
        attachment of messages.
        (mail_do_attach_message): Removed, functionality superceeded by
        above.
        (mail_do_forward_message): Removed.  Likewise.
        (mail_create_folder): Started work on an alternative
        implementation of create_folder, but not sure about it yet.

        * mail-tools.c (mail_tool_generate_forward_subject): Remove locking.
        (mail_tool_make_message_attachment): Free the description when done.

svn path=/trunk/; revision=7232
2001-01-03 11:52:04 +00:00
a16344fff4 Fix for mail_get_message change, use queue thread.
2001-01-02  Not Zed  <NotZed@HelixCode.com>

	* mail-callbacks.c (view_msg): Fix for mail_get_message change,
	use queue thread.

	* folder-browser.c (done_message_selected): Fix mail_Get_message
	calls, use new thread.
	(do_message_selected): "

	* mail-ops.c (mail_get_message): Add a thread argument so callers
	can specify which queue it executes on.

	* mail-mt.c (mail_msg_free): Fix a free order problem.
	(mail_msg_destroy): Call mail_msg_free to do the work.
	(mail_msgport_replied): "
	(mail_msgport_replied): Check/display errors if we get them.
	(mail_msgport_received): If we have a describe function, say what
	we're doing, also set busy/unbusy.
	(mail_msgport_replied): Clear busy when we get a reply.
	(mail_get_password): Unset busy.
	(mail_msg_received): Set busy as we go.
	(mail_msg_destroy): Unset busy when done.
	(mail_status): Blah blah, new status interface, the other wans't
	workable with the way the shell api works.

2000-12-29  Not Zed  <NotZed@HelixCode.com>

	* folder-browser.c (do_message_selected): If we are reconfiguring,
	just keep polling till we are done (yeah kinda shitty, but easy).
	(folder_browser_set_uri): Clear reconfigure flag here.  ick.
	(got_folder): And here too.
	(on_right_click): Remove locking.
	(hide_sender): and here too.
	(hide_subject): And here.
	(on_right_click): If we are in reconfigure, then the whole menu is disabled.

	* mail-mt.c (status_busy_timeout): Clear the status_busy_timeout_id.

	* mail-local.c (local_storage_new_folder_cb): Made getting folders
	completely synchronous.  The shell expects it, and it was only
	synchronous before by a sideeffect.
	(do_reconfigure_folder): Remove locking stuff.
	(do_reconfigure_folder): Use our own much simpler copying routine
	than that stupid move_folder_contents thing.
	(update_progress): Use mail_status_message() instead.
	(do_reconfigure_folder): Set the reconfigure flag during
	reconfigure & set busy flag.
	(cleanup_reconfigure_folder): clear busy flag.

	* mail-tools.c (mail_tool_uri_to_folder): Remove the tool_lock
	stuff.
	(mail_tool_uri_to_folder_noex): Clear exception on exit.
	(mail_tool_move_folder_contents): Get rid of this really stupid
	function that is only used in one place.

	* component-factory.c (owner_set_cb): Use direct calls to get the
	folders, as this code must run synchronous.  Remove the event wait
	stuff.

	* mail-callbacks.c (edit_msg): Call mail_get_messages, and create
	the composers ourself.
	(do_edit_messages): get_messages callback, create the composers
	and connect to signals we need.
	(view_msg): Dont call do_view_messages, just call
	mail_get_messge for each to get them in parallel.
	(do_view_message): view a single message.

	* mail-ops.c (mail_edit_messages): Just use mail_get_messages
	for this operation.  Removed the other async operation stuff.
	Changed my mind, just removed entirely.
	(mail_do_view_messages): Removed.
	(mail_do_setup_folder): Removed.
	(mail_do_scan_subfolders): Make this run synchronously, as every
	caller expects it to (even if they didn't realise).

2000-12-28  Not Zed  <NotZed@HelixCode.com>

	* mail-callbacks.c (send_queued_mail): Dont expunge the folder
	here, but in send_queue, otherwise it might execute out of order.
	(expunge_folder): Remove the talbe prechange stuff, and infact
	references to the message_list folder, as we have our own folder.
	Also, dont allow expunge if we're already expunging.
	(expunged_folder): Clkear the expunging flag if we're finished.

	* folder-browser-factory.c (control_deactivate): Likewise here.
	Hrm, i thought this function required a callback, silly me.

	* mail-tools.c (mail_tool_make_message_attachment): Remov e
	locking.

	* folder-browser.c (on_message_selected): Use a timeout handler so
	we dont select immediately.
	(folder_browser_set_uri): Changed to use mail_get_folder.
	(got_folder): New callback called when get_folder is finished.
	(folder_browser_destroy): Use new sync interface.

	* mail-ops.c (mail_get_message): New function to asynchrounously
	get a message.
	: #define out mail_tool_camel_lock stuff entirely.
	(mail_get_folder): New function to asynchrounously get a folder.
	(mail_do_load_folder): Removed, replaced by more generic function
	above.
	(mail_do_display_message): Removed, replaced by the more generic
	funciton get_message.
	(mail_get_messages): New function to get a list of messages
	asynchronously.
	(mail_sync_folder): New interface to sync a folder async.
	(mail_expunge_folder): New interface for expunging folder, with
	callback.
	(do_send_queue): Remove lock stuff, and expunge if (and only if)
	successful, also sync the sent folder while we're at it.

	* session.c (mail_session_request_dialog): Changed to use new
	mail_get_password call.

	* mail-mt.[ch]: New threading/interthread messaging framework.

	* main.c (main): Init the message/thread system.

svn path=/trunk/; revision=7223
2001-01-03 01:18:21 +00:00
7f77a607ea fixed unresolved symbol (d)
svn path=/trunk/; revision=7207
2001-01-02 00:56:09 +00:00
161d88eee6 Implemented.
2000-12-26  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-crypto.c (mail_crypto_openpgp_verify): Implemented.

2000-12-23  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (mail_do_setup_trash): New function similar to
	mail_do_setup_folder() except that this creates the Trash VFolder
	(special-case).

2000-12-21  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (do_send_mail): Don't free info inside the last
	if-statement, if sent_folder doesn't exist we'll have a memory
	leak. Instead free it afterward.

svn path=/trunk/; revision=7205
2001-01-01 23:19:54 +00:00
fba04bdda7 Merge from camel-mt-branch.
2000-12-24  Not Zed  <NotZed@HelixCode.com>

        * Merge from camel-mt-branch.

svn path=/trunk/; revision=7153
2000-12-24 01:03:14 +00:00
d89c235bc7 Only update display every 2 seconds.
2000-12-18  Miguel de Icaza  <miguel@helixcode.com>

	* mail-tools.c (mail_tool_move_folder_contents): Only update
	display every 2 seconds.

	* mail-ops.c (do_view_messages): Only update display every 2 seconds.

svn path=/trunk/; revision=7066
2000-12-18 06:49:02 +00:00
045479b2a4 Deal with "mailstorage" type views (top-level mail storages) by trying to
* component-factory.c (create_view): Deal with "mailstorage" type
	views (top-level mail storages) by trying to fill the storage's
	folder tree again if we failed before.
	(add_storage): Create new storages with a URI and type
	"mailstorage".

	* mail-ops.c (cleanup_scan_subfolders): On success, mark the
	storage as having been loaded, so create_view won't try again.

svn path=/trunk/; revision=6923
2000-12-11 23:17:46 +00:00
ccbbf69f50 clean up the cleanup a bit
* mail-ops.c (do_flag_messages): clean up the cleanup a bit

svn path=/trunk/; revision=6906
2000-12-11 16:41:03 +00:00
c65fda0e89 Check to see if the file already exists, if it does prompt the user to for
2000-12-08  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-callbacks.c (save_msg_ok): Check to see if the file already
	exists, if it does prompt the user to for permission to overwrite
	the file.
	(forward_message): g_strdup the cursor_uid if there is only a
	single message to be forwarded or we'll segfault later.

	* mail-ops.c (do_save_messages): Rewrote yet again. I'm back to
	almost an identical implementation as the first time I wrote this
	except now we write the From line which I had forgotten last
	time. This means that we no longer have to unlink the .ev-summary
	file created and we also use fewer resources (no need to create a
	CamelMboxFolder object).

svn path=/trunk/; revision=6882
2000-12-09 02:09:56 +00:00
cec18e26aa Only do a message_list_foreach if we plan on attaching messages, otherwise
2000-12-07  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-callbacks.c (forward_message): Only do a
	message_list_foreach if we plan on attaching messages, otherwise
	just use ml->cursor_uid.

	* mail-ops.c (cleanup_forward_messages): If attaching multiple
	forwarded message, wrap them in a multipart/digest otherwise just
	attach the single message as a message/rfc822.

svn path=/trunk/; revision=6851
2000-12-07 23:41:59 +00:00
5c7218c629 Remove bits of filter-on-demand and toolbar bug workaround cruft that
* folder-browser.c: Remove bits of filter-on-demand and toolbar
	bug workaround cruft that don't do anything useful any more.

	* mail-ops.c (cleanup_load_folder): unref the ref we added in
	setup_load_folder.

svn path=/trunk/; revision=6812
2000-12-06 18:40:11 +00:00
2063939db4 use mail_op_set_message_plain
2000-12-01  Radek Doulik  <rodo@helixcode.com>

	* mail-ops.c (mail_op_report_status): use mail_op_set_message_plain

	* mail-threads.c (mail_op_set_message_plain): plain version of
	mail_op_set_message, doesn't use printf, passes message untouched,
	use set_message
	(mail_op_set_message): set_message
	(set_message): helper function

svn path=/trunk/; revision=6753
2000-12-01 08:19:16 +00:00
8fa85c39e5 Don't display a dialog, instead inform the user that there was no new mail
2000-11-30  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (cleanup_fetch_mail): Don't display a dialog, instead
	inform the user that there was no new mail by setting a status
	message.

	* message-list.c (message_list_drag_data_get): Use the new
	e_str_make_safe function.

	* mail-display.c (make_safe_filename): And here.

	* mail-config.c (mail_config_folder_to_cachename): Here too.

svn path=/trunk/; revision=6745
2000-11-30 22:44:00 +00:00
9b49b3e25a Set threaded view before setting the folder (cleanup some flash ons
2000-11-30  Not Zed  <NotZed@HelixCode.com>

	* mail-ops.c (cleanup_load_folder): Set threaded view before
	setting the folder (cleanup some flash ons tartup).

	* message-list.c (message_list_init): Initialise a mempool for uid
	string storage.
	(new_id_from_uid): Added messagelist arg, allocate strings from
	uid_pool.
	(new_id_from_subject): Same.  Fixed all callers.
	(remove_node_diff): Dont free uid here.
	(build_flat_diff): Nor here.
	(clear_tree): Flush the mempool, rather than freeing the id's
	directly.
	(free_tree_ids): Removed, no longer required.
	(free_tree_ids): Likewise.
	(message_list_init): Dont connect to the table destroy signal
	anymore to free the uid table.
	(message_list_destroy): Free the uid pool here.
	(*): Use accessors for messageid stuff.
	(content_is_attachment): Removed, no longer required.
	(ml_tree_value_at): Get the attachment flag directly from the
	summary.
	(ml_tree_value_at): For 'fake' nodes, try and do something better
	than "?" for from, to, and size.
	(subtree_size): New function, add up the total size of a subtree.
	(subtree_earliest): Get the earliest date from a subtree.
	(ml_tree_value_at): Return earliest date sent/received for fake
	nodes.
	(ml_tree_value_at): Return something to mark a fake subject line
	as a fake subject, although i dont know, i guess this buggers up
	sorting ...
	(subtree_size): Check the info node is still there.
	(subtree_earliest): Same here.
	(subtree_unread): And here.  The info node might vanish if the
	folder has changed/is changing and we try and redraw stuff while
	its doing it.
	(message_list_drag_data_get): Use accessors.

svn path=/trunk/; revision=6732
2000-11-30 11:32:50 +00:00
6a337122e6 Use camel a bit more to help us out. Don't create the file ourselves,
2000-11-29  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (do_save_messages): Use camel a bit more to help us
	out. Don't create the file ourselves, treat it as a CamelFolder so
	we don't have to worry about formatting.

svn path=/trunk/; revision=6724
2000-11-29 20:45:09 +00:00
3ca789bf0f Wait until after setting up the local storage to find the
* component-factory.c (owner_set_cb): Wait until after setting up
	the local storage to find the Drafts/Outbox/Sent folders.

	* mail-ops.c (do_setup_folder): Use the file: store rather than
	mbox:.

svn path=/trunk/; revision=6704
2000-11-28 22:59:00 +00:00
f22ac8e3a0 Added the SaveAs bonobo menu verb thingy.
2000-11-28  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c: Added the SaveAs bonobo menu verb
	thingy.

	* mail-callbacks.c (save_msg): New callback for saving messages.
	(save_msg_ok):

	* folder-browser.c (on_right_click): Add a Save Ass menu item.

	* mail-ops.c (cleanup_save_messages): Save all emails to the path
	given.

svn path=/trunk/; revision=6699
2000-11-28 20:37:43 +00:00
0fa1b87e9e New function to return if user wants to view message source.
2000-11-21  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-config.c (mail_config_view_source): New function to return
	if user wants to view message source.
	(mail_config_set_view_source): New function to set whether the
	view wants to view source.

	* mail-ops.c (mail_do_view_message_sources): Removed. We're not
	gonna view-source this way anymore.

	* folder-browser-factory.c: Removed the ViewSource bonobo verb
	from the Message menu.
	(control_activate): Added ViewSource.

	* folder-browser.c (on_right_click): Removed Message menu item to
	view message source.
	(folder_browser_toggle_view_source): New callback to set whether
	or not the MailDisplay shows the raw message or the pretty-ified
	message.

	* mail-callbacks.c: Removed view_source.

	* mail-display.c (redisplay): If toggle_raw is set then display
	the raw message else display the pretty formatted message.
	(mail_display_redisplay): New function to force the redisplay of a
	message.

	* mail-format.c (mail_format_raw_message): New function to
	write the raw message data.

svn path=/trunk/; revision=6639
2000-11-21 22:09:51 +00:00
484334eaec Fix IMAP get-mail to work; CORBA calls in the dispatch thread are a no-no.
svn path=/trunk/; revision=6620
2000-11-21 02:08:37 +00:00
b8262fdf8d Use the new quote_message function and make it start with "On %s, %s
2000-11-17  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-format.c (mail_generate_reply): Use the new quote_message
	function and make it start with "On %s, %s wrote:" since people
	seem to want that.

	* mail-ops.c (cleanup_forward_messages): Use the new quote_message
	function.

	* mail-tools.c (mail_tool_quote_message): New convenience function
	to quote a message body (since both the reply and forward code do
	similar quoting)

svn path=/trunk/; revision=6605
2000-11-17 22:29:53 +00:00
4db080e17f Added the MessageViewSource bonobo menu verb.
2000-11-16  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c: Added the MessageViewSource bonobo
	menu verb.

	* mail-ops.c (mail_do_save_messages): New async function to save
	messages as individual files in a given path.

svn path=/trunk/; revision=6596
2000-11-16 23:05:32 +00:00
64f95feb7d Added a new Forward as Attachment bonobo menu item verb.
2000-11-15  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c: Added a new Forward as Attachment
	bonobo menu item verb.

	* mail-view.c (view_forward_msg): Updated to reflect changes to
	mail_do_forward_message(). It now forwards the message without
	attaching it - is this what we want?

	* mail-ops.c (mail_do_view_message_sources): New async function to
	display message source dialog windows.
	(setup_forward_messages): If we were asked not to forward the
	message(s) as attachment(s) and the user chose more than a single
	message, then default to making each message an attachment.
	(cleanup_forward_messages): If we aren't forwarding the message as
	an attachment, then quote the text and set the composer's body
	with it.

	* mail-callbacks.c (view_source): New callback to view the message
	source of all messages that are currently selected.
	(forward_attach): New callback to forward a message as an
	attachment (forward_msg is now for forwarding a message without it
	being an attachment).
	(forward_message): Convenience function for forwarding messages.

svn path=/trunk/; revision=6585
2000-11-16 00:36:07 +00:00
f95b414ea3 Sync the source folder.
2000-11-12  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (do_filter_ondemand): Sync the source folder.

svn path=/trunk/; revision=6553
2000-11-12 21:50:27 +00:00
3d3cfc1137 A very, long, very tedious IDL API rename and re-scoping;
this script + some grunt approximates the work:

    s/Evolution_MessageList/GNOME_Evolution_MessageList/g;
    s/GNOME_Evolution_MessageList_select_message/GNOME_Evolution_MessageList_selectMessage/g;
    s/GNOME_Evolution_MessageList_open_message/GNOME_Evolution_MessageList_openMessage/g;

    s/Evolution_Folder([ \t])/GNOME_Evolution_Folder$1/g;
    s/Evolution_FolderTypeList/GNOME_Evolution_FolderTypeList/g;
    s/Evolution_FolderBrowser/GNOME_Evolution_FolderBrowser/g;
    s/GNOME_Evolution_FolderBrowser_get_message_list/GNOME_Evolution_FolderBrowser_getMessageList/g;

    s/Evolution_LocalStorage/GNOME_Evolution_LocalStorage/g;
    s/GNOME_Evolution_LocalStorage_update_folder/GNOME_Evolution_LocalStorage_updateFolder/g;

    s/Evolution_ShellView/GNOME_Evolution_ShellView/g;
    s/GNOME_Evolution_ShellView_set_message/GNOME_Evolution_ShellView_setMessage/g;
    s/GNOME_Evolution_ShellView_unset_message/GNOME_Evolution_ShellView_unsetMessage/g;
    s/GNOME_Evolution_ShellView_change_current_view/GNOME_Evolution_ShellView_changeCurrentView/g;

    s/Evolution_StorageSetViewListener/GNOME_Evolution_StorageSetViewListener/g;
    s/GNOME_Evolution_StorageSetViewListener_folder_selected/GNOME_Evolution_StorageSetViewListener_notifyFolderSelected/g;
    s/GNOME_Evolution_StorageSetViewListener_storage_selected/GNOME_Evolution_StorageSetViewListener_notifyStorageSelected/g;

    s/Evolution_StorageSetView/GNOME_Evolution_StorageSetView/g;
    s/GNOME_Evolution_StorageSetView_add_listener/GNOME_Evolution_StorageSetView_addListener/g;
    s/GNOME_Evolution_StorageSetView_remove_listener/GNOME_Evolution_StorageSetView_removeListener/g;

    s/Evolution_Shell/GNOME_Evolution_Shell/g;
    s/GNOME_Evolution_Shell_get_component_for_type/GNOME_Evolution_Shell_getComponentByType/g;
    s/GNOME_Evolution_Shell_user_select_folder/GNOME_Evolution_Shell_selectUserFolder/g;
    s/GNOME_Evolution_Shell_get_local_storage/GNOME_Evolution_Shell_getLocalStorage/g;
    s/GNOME_Evolution_Shell_create_storage_set_view/GNOME_Evolution_Shell_createStorageSetView/g;

    s/Evolution_FolderSelectionListener/GNOME_Evolution_FolderSelectionListener/g;
    s/GNOME_Evolution_FolderSelectionListener_selected/GNOME_Evolution_FolderSelectionListener_notifySelected/g;
    s/GNOME_Evolution_FolderSelectionListener_cancel/GNOME_Evolution_FolderSelectionListener_notifyCanceled/g;

    s/Evolution_Storage/GNOME_Evolution_Storage/g;
    s/GNOME_Evolution_Storage_add_listener/GNOME_Evolution_Storage_addListener/g;
    s/GNOME_Evolution_Storage_remove_listener/GNOME_Evolution_Storage_removeListener/g;

    s/GNOME_Evolution_StorageListener_destroyed/GNOME_Evolution_StorageListener_notifyDestroyed/g;
    s/GNOME_Evolution_StorageListener_new_folder/GNOME_Evolution_StorageListener_notifyFolderCreated/g;
    s/GNOME_Evolution_StorageListener_update_folder/GNOME_Evolution_StorageListener_notifyFolderUpdated/g;
    s/GNOME_Evolution_StorageListener_removed_folder/GNOME_Evolution_StorageListener_notifyFolderRemoved/g;

    s/GNOME_Evolution_StorageRegistry_register_storage/GNOME_Evolution_StorageRegistry_addStorage/g;
    s/GNOME_Evolution_StorageRegistry_unregister_storage/GNOME_Evolution_StorageRegistry_removeStorageByName/g;

    s/Evolution_ShellComponent/GNOME_Evolution_ShellComponent/g;
    s/GNOME_Evolution_ShellComponent_set_owner/GNOME_Evolution_ShellComponent_setOwner/g;
    s/GNOME_Evolution_ShellComponent_unset_owner/GNOME_Evolution_ShellComponent_unsetOwner/g;
    s/GNOME_Evolution_ShellComponent_create_view/GNOME_Evolution_ShellComponent_createView/g;
    s/GNOME_Evolution_ShellComponent_async_create_folder/GNOME_Evolution_ShellComponent_addFolderAsync/g;
    s/GNOME_Evolution_ShellComponent_async_remove_folder/GNOME_Evolution_ShellComponent_removeFolderAsync/g;
    s/GNOME_Evolution_ShellComponent_populate_folder_context_menu/GNOME_Evolution_ShellComponent_populateFolderContextMenu/g;

    s/GNOME_Evolution_ShellComponentListener_report_result/GNOME_Evolution_ShellComponentListener_notifyResult/g;

    s/Evolution_Session/GNOME_Evolution_Session/g;
    s/GNOME_Evolution_Session_save_configuration/GNOME_Evolution_Session_saveConfiguration/g;
    s/GNOME_Evolution_Session_load_configuration/GNOME_Evolution_Session_loadConfiguration/g;

    s/Evolution_Calendar_Cal/GNOME_Evolution_Calendar_Cal/g;
    s/GNOME_Evolution_Calendar_Cal_get_n_objects/GNOME_Evolution_Calendar_Cal_countObjects/g;
    s/GNOME_Evolution_Calendar_Cal_get_object/GNOME_Evolution_Calendar_Cal_getObject/g;
    s/GNOME_Evolution_Calendar_Cal_get_uids/GNOME_Evolution_Calendar_Cal_getUIds/g;
    s/GNOME_Evolution_Calendar_Cal_get_changed_uids/GNOME_Evolution_Calendar_Cal_getChangedUIds/g;
    s/GNOME_Evolution_Calendar_Cal_get_objects_in_range/GNOME_Evolution_Calendar_Cal_getObjectsInRange/g;
    s/GNOME_Evolution_Calendar_Cal_get_alarms_in_range/GNOME_Evolution_Calendar_Cal_getAlarmsInRange/g;
    s/GNOME_Evolution_Calendar_Cal_get_alarms_for_object/GNOME_Evolution_Calendar_Cal_getAlarmsForObject/g;
    s/GNOME_Evolution_Calendar_Cal_update_object/GNOME_Evolution_Calendar_Cal_updateObject/g;
    s/GNOME_Evolution_Calendar_Cal_remove_object/GNOME_Evolution_Calendar_Cal_removeObject/g;

    s/Evolution_Calendar_Listener/GNOME_Evolution_Calendar_Listener/g;
    s/GNOME_Evolution_Calendar_Listener_cal_loaded/GNOME_Evolution_Calendar_Listener_notifyCalLoaded/g;
    s/GNOME_Evolution_Calendar_Listener_obj_updated/GNOME_Evolution_Calendar_Listener_notifyObjUpdated/g;
    s/GNOME_Evolution_Calendar_Listener_obj_removed/GNOME_Evolution_Calendar_Listener_notifyObjRemoved/g;

    s/Evolution_Calendar_CalFactory/GNOME_Evolution_Calendar_CalFactory/g;
    s/GNOME_Evolution_Calendar_CalFactory_load/GNOME_Evolution_Calendar_CalFactory_load/g;
    s/GNOME_Evolution_Calendar_CalFactory_create/GNOME_Evolution_Calendar_CalFactory_create/g;

    s/Evolution_Composer/GNOME_Evolution_Composer/g;
    s/GNOME_Evolution_Composer_set_headers/GNOME_Evolution_Composer_setHeaders/g;
    s/GNOME_Evolution_Composer_set_body_text/GNOME_Evolution_Composer_setBodyText/g;
    s/GNOME_Evolution_Composer_attach_MIME/GNOME_Evolution_Composer_attachMIME/g;
    s/GNOME_Evolution_Composer_attach_data/GNOME_Evolution_Composer_attachData/g;
    s/GNOME_Evolution_Composer_show/GNOME_Evolution_Composer_show/g;

    s/Evolution_Addressbook_SelectNames/GNOME_Evolution_Addressbook_SelectNames/g;
    s/GNOME_Evolution_Addressbook_SelectNames_add_section/GNOME_Evolution_Addressbook_SelectNames_addSection/g;
    s/GNOME_Evolution_Addressbook_SelectNames_get_entry_for_section/GNOME_Evolution_Addressbook_SelectNames_getEntryBySection/g;
    s/GNOME_Evolution_Addressbook_SelectNames_activate_dialog/GNOME_Evolution_Addressbook_SelectNames_activateDialog/g;

    s/Evolution_CardCursor/GNOME_Evolution_Addressbook_CardCursor/g;
    s/GNOME_Evolution_Addressbook_CardCursor_get_length/GNOME_Evolution_Addressbook_CardCursor_getLength/g;
    s/GNOME_Evolution_Addressbook_CardCursor_get_nth/GNOME_Evolution_Addressbook_CardCursor_getNth/g;

    s/Evolution_BookViewListener/GNOME_Evolution_Addressbook_BookViewListener/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_added/GNOME_Evolution_Addressbook_BookViewListener_notifyCardAdded/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_removed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardRemoved/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_changed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardChanged/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_sequence_complete/GNOME_Evolution_Addressbook_BookViewListener_notifySequenceComplete/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_status_message/GNOME_Evolution_Addressbook_BookViewListener_notifyStatusMessage/g;

    s/Evolution_BookView/GNOME_Evolution_Addressbook_BookView/g;

    s/Evolution_Book/GNOME_Evolution_Addressbook_Book/g;
    s/GNOME_Evolution_Addressbook_Book_get_vcard/GNOME_Evolution_Addressbook_Book_getVCard/g;
    s/GNOME_Evolution_Addressbook_Book_can_write/GNOME_Evolution_Addressbook_Book_isWriteable/g;
    s/GNOME_Evolution_Addressbook_Book_can_write_card/GNOME_Evolution_Addressbook_Book_isCardWriteable/g;
    s/GNOME_Evolution_Addressbook_Book_create_card/GNOME_Evolution_Addressbook_Book_addCard/g;
    s/GNOME_Evolution_Addressbook_Book_remove_card/GNOME_Evolution_Addressbook_Book_removeCard/g;
    s/GNOME_Evolution_Addressbook_Book_modify_card/GNOME_Evolution_Addressbook_Book_modifyCard/g;
    s/GNOME_Evolution_Addressbook_Book_get_cursor/GNOME_Evolution_Addressbook_Book_getCursor/g;
    s/GNOME_Evolution_Addressbook_Book_get_book_view/GNOME_Evolution_Addressbook_Book_getBookView/g;
    s/GNOME_Evolution_Addressbook_Book_get_changes/GNOME_Evolution_Addressbook_Book_getChanges/g;
    s/GNOME_Evolution_Addressbook_Book_check_connection/GNOME_Evolution_Addressbook_Book_checkConnection/g;
    s/GNOME_Evolution_Addressbook_Book_get_static_capabilities/GNOME_Evolution_Addressbook_Book_getStaticCapabilities/g;
    s/GNOME_Evolution_Addressbook_Book_get_name/GNOME_Evolution_Addressbook_Book_getName/g;

    s/Evolution_BookListener/GNOME_Evolution_Addressbook_BookListener/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_create_card/GNOME_Evolution_Addressbook_BookListener_notifyCardCreated/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_remove_card/GNOME_Evolution_Addressbook_BookListener_notifyCardRemoved/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_modify_card/GNOME_Evolution_Addressbook_BookListener_notifyCardModified/g;
    s/GNOME_Evolution_Addressbook_BookListener_report_open_book_progress/GNOME_Evolution_Addressbook_BookListener_notifyOpenBookProgress/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_open_book/GNOME_Evolution_Addressbook_BookListener_notifyBookOpened/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_get_cursor/GNOME_Evolution_Addressbook_BookListener_notifyCursorRequested/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_get_view/GNOME_Evolution_Addressbook_BookListener_notifyViewRequested/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_get_changes/GNOME_Evolution_Addressbook_BookListener_notifyChangesRequested/g;
    s/GNOME_Evolution_Addressbook_BookListener_report_connection_status/GNOME_Evolution_Addressbook_BookListener_notifyConnectionStatus/g;

    s/Evolution_BookFactory/GNOME_Evolution_Addressbook_BookFactory/g;
    s/GNOME_Evolution_Addressbook_BookFactory_open_book/GNOME_Evolution_Addressbook_BookFactory_openBook/g;

    s/Evolution_SummaryComponent/GNOME_Evolution_Summary_Component/g;
    s/GNOME_Evolution_Summary_SummaryComponent_set_owner/GNOME_Evolution_Summary_Component_setOwner/g;
    s/GNOME_Evolution_Summary_SummaryComponent_unset_owner/GNOME_Evolution_Summary_Component_unsetOwner/g;
    s/GNOME_Evolution_Summary_SummaryComponent_create_view/GNOME_Evolution_Summary_Component_createView/g;
    s/GNOME_Evolution_Summary_SummaryComponent_destroy_view/GNOME_Evolution_Summary_Component_destroyView/g;

    s/Evolution_Summary([ \t])/GNOME_Evolution_Summary_ViewFrame$1/g;
    s/Evolution_Summary_set_title/GNOME_Evolution_Summary_ViewFrame_setTitle/g;
    s/Evolution_Summary_set_icon/GNOME_Evolution_Summary_ViewFrame_setIcon/g;
    s/Evolution_Summary_update_component/GNOME_Evolution_Summary_ViewFrame_updateComponent/g;

    s/GNOME_GNOME/GNOME/g;
    s/GNOME_GNOME/GNOME/g;
    s/GNOME_GNOME/GNOME/g;

svn path=/trunk/; revision=6535
2000-11-10 20:41:13 +00:00
889ddc56b5 Updated to use the ESearchBar object rather than the previously used
2000-11-07  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser.c (search_full_clicked): Updated to use the
	ESearchBar object rather than the previously used search widgets.
	(search_full): Same.
	(search_save): Same. Also use enums to make it a little easier to
	read now that we have to have enums anyway.
	(folder_browser_search_menu_activated): New ESearchBar menu
	callback.
	(folder_browser_search_query_changed): New ESearchBar query
	callback. Replaces search_set()
	(folder_browser_clear_search): Updated to use the ESearchBar
	object rather than the previously used search widgets.
	(folder_browser_gui_init): Don't hand construct a search widget,
	use the new ESearchBar convenience widget.

	* mail-ops.c (cleanup_load_folder): Updated to reflect changes to
	FolderBrowser.

svn path=/trunk/; revision=6490
2000-11-07 22:31:19 +00:00
8952ed2a26 Added mail-display.h.
2000-11-03  Not Zed  <NotZed@HelixCode.com>

	* mail-view.c: Added mail-display.h.

	* mail-autofilter.c: Removed unecessary headers.  Who ran indent
	over this code?  Sigh.

	* mail-ops.c (display_message_input_s): Added messagedisplay.
	(mail_do_display_message): Added messagedisplay arg.
	(mail_do_display_message): Dont bother doing another thread when
	we know we dont have a uid.
	(): Added folder-browser.h to headers.  Sigh.

	* folder-browser-factory.c (control_activate): Setup the
	viewthreaded callback to the folder_browser function.

	* folder-browser.c (my_folder_browser_init): Connect to
	right_click of etable of the messagelist here.
	(on_right_click): Changed for argument changes.
	(folder_browser_toggle_threads): Changed to take a fb, and to set
	threaded mode on the messagelist.
	(my_folder_browser_init): Connect also to the double_click signal.
	(my_folder_browser_init): Connect to the message_selected signal
	of the message_list.
	(on_message_selected): Signal handler for message selected.
	(my_folder_browser_init): Fix for change to message_list_new().

	* message-list.h: Dont include folder-browser.h.
	(message_list_toggle_threads): Moved into folder-browser.h.
	(struct _MessageList): Removed folderbrowser.

	* mail.h: Dont include folder-browser.h here either, but
	mail-types.h instead.
	Moved prototypes moved into folder-browser.c into
	folder-browser.h. (vfolder_*, filter_*).

	* mail-display.h: Dont include folder-browser.h here, but
	mail-types.h and specific camel headers.

	* message-thread.c (sort_node): Invert the sort order logic so the
	list is sorted in mailbox order, not reverse mailbox order.

	* message-list.c (free_tree_ids): Fix a merge foo.
	(remove_node_diff): Removed unused row argument.  Fixed callers/prototype.
	(clear_tree): pre_change on the removal of the root node.
	(build_flat): Only perform pre_change if we are rebuilding the
	whole lot.  For incremental change let etable do its thing.
	(build_tree): Likewise for building the tree view.  If making
	incremental updates, do them as we build it.
	(vfolder_subject):
	(vfolder_sender):
	(vfolder_recipient):
	(filter_subject):
	(filter_sender):
	(filter_recipient):
	(filter_mlist):
	(on_right_click): Moved to folder-browser.c, where they belong.
	(message_list_init): Dont connect to right_click anymore.
	(message_list_toggle_threads): Moved to folder-browser.c, renamed.
	(on_double_click): Moved to folder-browser.c
	(on_click): Set the flags directly, rather than in anothre thread,
	which is just not necessary.
	(message_list_class_init): Added a new signal 'message_selected',
	to indicate when a message was selected.
	(on_cursor_change_idle): Emit a signal, rather than directly
	triggering the display update.
	(select_row): Removed, no longer used.
	(idle_select_row): And this too.
	(select_msg): Removed as well.
	(message_list_select): Emit a signal, rather
	thandisplaying/clearing the mail-display directly.
	(mark_msg_seen): Moved to folder-browser.c
	(message_list_new): Removed folderbrowser argument.

svn path=/trunk/; revision=6365
2000-11-03 09:28:00 +00:00
f665251bcf Make "Get Mail" even more functional on IMAP (scans all folders),
and do a first cut at folder tree highlighting (for IMAP/news
	only).

	* mail-ops.c (do_fetch_mail): For imap (sigh, we *still* shouldn't
	be hardcoding that), rescan the store's folder tree, rescan each
	changed folder for new messages, and update the shell folder tree.
	(do_scan_subfolders): Update for component-factory.c changes, and
	set folder display names and highlights appropriately when
	building the storage.

	* component-factory.c (add_storage): Make this static (was
	mail_add_new_storage). Use camel_service_get_name for the name
	rather than url->host. (Among other things, this lets you use a
	single machine as both an IMAP server and a news server.)
	(mail_lookup_storage): Hash storages based on their CamelStore
	rather than the URL.
	(factory_destroy): Disconnect each of the CamelStores in the
	storages_hash.

	* subscribe-dialog.c (cleanup_subscribe_folder):
	* mail-vfolder.c (vfolder_refresh): Pass "highlighted" flag to
	evolution_storage_new_folder

svn path=/trunk/; revision=6342
2000-11-02 03:56:41 +00:00
f67d6c30e2 Don't call the default logging function. (do_fetch_mail): Set the logfile
2000-11-01  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (mail_op_report_status): Don't call the default
	logging function.
	(do_fetch_mail): Set the logfile and don't pass the logfile to
	filter_driver_set_status_func - it's purpose has been altered.
	(do_filter_ondemand): Same.

svn path=/trunk/; revision=6341
2000-11-02 03:52:31 +00:00
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