Commit Graph

35 Commits

Author SHA1 Message Date
63f1ba7ab1 New handy dandy function to ref and return the vfolder storage (will
2001-02-19  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-vfolder.c (mail_vfolder_get_vfolder_storage): New handy
	dandy function to ref and return the vfolder storage (will
	probably be disavowed once I figure out how to get the vTrash
	folder to show up in the EvolutionLocalStorage).

	* main.c (main): Call vtrash_cleanup().

	* mail-vtrash.c: New file.
	(vtrash_uri_to_folder): vtrash: URI handler
	(vtrash_create): Replacement async vtrash function for the old one
	in mail-ops.c
	(vtrash_cleanup): Cleanup code - unrefs the cached vtrash folders
	and free's the hashtable.

	* Makefile.am: Added mail-vtrash.[c,h].

	* mail-tools.c (mail_tool_uri_to_folder): If we have a vtrash:
	URI, call the vtrash URI handler function rather than continuing
	on. Yes, I know this is a hack and it needs to be fixed.

	* mail-ops.c (mail_do_setup_trash): Removed.
	(mail_trash_get): Removed.

	* component-factory.c (owner_set_cb): Create the vTrash folder for
	the LocalStore here.

	* mail-local.c (get_folder_info): Implement.

svn path=/trunk/; revision=8288
2001-02-19 23:38:53 +00:00
5ef8138ee8 Setup the Trash folder.
2001-02-14  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (owner_set_cb): Setup the Trash folder.

	* mail-ops.c (create_trash_vfolder): Do better error handling.
	(populate_folder_urls): Oops, helps to strdup the url into the
	array if we plan on freeing the data.
	(mail_get_trash): New async function that may eventually replace
	mail_do_setup_trash().
	(do_setup_trash): Do better error handling.

	* mail-local.c (mail_local_store_class_init): Override
	get_folder_info.
	(get_folder_info): Implement.

svn path=/trunk/; revision=8228
2001-02-14 21:33:58 +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
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
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
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
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
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
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
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
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
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
3a69bfad53 Don't forget to unref the FilterDriver.
2000-10-25  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (do_send_mail): Don't forget to unref the
	FilterDriver.

	* mail-callbacks.c (apply_filters): New callback for applying
	on-demand filters. (removed the old on-demand filters callback).

	* mail-ops.c (do_filter_ondemand): Rewrote to apply "incoming"
	filters to all selected messages.
	(mail_do_filter_ondemand): No longer takes a FilterContext
	argument or a destination folder argument (why did we ever need
	this last one??) but now takes a uids argument.

	* folder-browser-factory.c: Add a MessageApplyFilters menu item.

svn path=/trunk/; revision=6190
2000-10-26 00:16:31 +00:00
ca9ab0c63b Updated to use the new mail_do_filter_ondemand.
2000-09-11  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-callbacks.c (run_filter_ondemand): Updated to use the new
	mail_do_filter_ondemand.

	* mail-ops.c (do_fetch_mail): Update to use the new
	filter_driver_run args.
	(do_filter_ondemand): Updated to use the new filter_driver_run
	args.
	(mail_do_filter_ondemand): Take a FilterContext as a argument
	instead of a driver as we need to destroy the filter inside the
	do_filter_ondemand function and things'd get messy.

svn path=/trunk/; revision=5347
2000-09-11 21:37:48 +00:00
eec65a9ce0 New async function to filter messages on demand. (do_fetch_mail): Updated
2000-09-06  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (mail_do_filter_ondemand): New async function to
	filter messages on demand.
	(do_fetch_mail): Updated to filter 1 message at a time using the
	new filter-driver code

	* mail-callbacks.c (composer_postpone_cb): Send NULL as the
	message info.
	(run_filter_ondemand): Use mail_do_filter_ondemand instead of
	filter_driver_run

	* mail-tools.c: Removed mail_tool_filter_contents_into and
	mail_tool_fetch_mail_into_searchable as they have now been
	deprecated.

svn path=/trunk/; revision=5225
2000-09-07 03:15:35 +00:00
362fa53610 Replace mail_do_setup_draftbox, mail_do_setup_outbox, and
* mail-ops.c: Replace mail_do_setup_draftbox,
	mail_do_setup_outbox, and mail_do_setup_sentbox with
	mail_do_setup_folder.
	(do_send_mail, do_send_queue): s/sentbox_folder/sent_folder/

	* component-factory.c (owner_set_cb): Use mail_do_setup_folder,
	rename sentbox_folder to sent_folder, and call
	mail_operation_wait_for_finish after the setup_folder calls in
	case anything needs to use the _folder variables.

svn path=/trunk/; revision=5200
2000-09-05 19:43:08 +00:00
e6220851e3 Change the "Get Mail" toolbar button to become "Send & Receieve"
2000-09-03  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c: Change the "Get Mail" toolbar button
	to become "Send & Receieve"

	* mail-callbacks.c (send_queued_mail): New callback function for
	sending queued mail
	(send_receieve_mail): New callback for Send & Receieve that
	basically just calls send_queued_mail and then fetch_mail

	* mail-ops.c (cleanup_send_mail): Mod to be able to handle a NULL
	composer window
	(setup_send_mail): Modified to handle a NULL composer widget
	(mail_do_send_queue): New convenience async function to send all
	messages in a folder (aka all messages in a queue)

svn path=/trunk/; revision=5184
2000-09-03 05:56:14 +00:00
754164e503 Attach a callback to the postpone signal (send_to_url): Same (mail_reply):
2000-09-01  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-callbacks.c (compose_msg): Attach a callback to the
	postpone signal
	(send_to_url): Same
	(mail_reply): Same
	(forward_msg): Same
	(composer_postpone_cb): Callback function for the postpone signal

	* mail-ops.c (mail_do_setup_outbox): New convenience function to
	load the Outbox folder
	(mail_do_setup_sentbox): Same, but for Sentbox.
	(do_send_mail): Now saves messages in Sentbox if sent successfully
	(mail_do_append_mail): New convenience async function for
	appending messages to a folder

	* component-factory.c: Added outbox_folder and sent_folder
	(owner_set_cb): Call our new convenience functions to load Outbox
	and Sentbox

svn path=/trunk/; revision=5178
2000-09-02 01:44:59 +00:00
61230561ce New convenience function to load the Outbox folder
2000-09-01  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (mail_do_setup_outbox): New convenience function to
	load the Outbox folder
	(mail_do_setup_sentbox): Same, but for Sentbox.
	(do_send_mail): Now saves messages in Sentbox if sent successfully

	* component-factory.c: Added outbox_folder and sent_folder
	(owner_set_cb): Call our new convenience functions to load Outbox
	and Sentbox

svn path=/trunk/; revision=5172
2000-09-01 22:11:47 +00:00
ba2eaa68b1 Update this and related functions to no longer take a From address. (The
* mail-ops.c (mail_do_send_mail): Update this and related
	functions to no longer take a From address. (The composer deals
	with it itself now.)
	(do_send_mail): Add the Evolution version back to the X-Mailer
	header (this change got lost in the thread migration).

	* mail-callbacks.c (composer_send_cb): Don't re-fetch the From
	address. It's set by the composer now. Don't free the
	post_send_data from here.
	(mail_reply): Attach to the composer's destroy signal to free the
	psd. (The current code would free it more than once if an error
	occurred while trying to send the first time.)

svn path=/trunk/; revision=5102
2000-08-29 18:44:47 +00:00
37471a4d52 Start adding progress info; make flag_all_messages camel-safe; make the no new mail dialog more descriptive.
svn path=/trunk/; revision=5016
2000-08-24 19:52:24 +00:00
e3b786b5cf Add support for copying messages
svn path=/trunk/; revision=4845
2000-08-15 19:10:45 +00:00
c1f24d07e4 Updated to reflect changes to mail_do_scan_subfolders
2000-08-13  Jeffrey Stedfast  <fejj@helixcode.com>

	* component-factory.c (create_news_storage): Updated to reflect
	changes to mail_do_scan_subfolders
	(create_imap_storage): Same.

	* mail-ops.c (mail_do_scan_subfolders): No longer takes an
	add_INBOX argument

svn path=/trunk/; revision=4795
2000-08-13 04:23:42 +00:00
b5c6181c26 triple oops
svn path=/trunk/; revision=4691
2000-08-10 17:46:03 +00:00
2ef945c6e2 consolidate mail-format.h, mail-identify.h, mail-ops.h, main.h and
* mail.h: consolidate mail-format.h, mail-identify.h, mail-ops.h,
	main.h and session.h into this new file. There's no reason to have
	a .h for every .c.

svn path=/trunk/; revision=2830
2000-05-06 17:16:22 +00:00
0cb506a96a Ok, you can now delete and expunge messages ... not really pretty
(gui wise), but it works, after a fashion.

> 	* folder-browser-factory.c: Setup callback for actual delete op.
> 	(control_activate): Setup a tool menu item to expnge deleted
> 	messages.
>
> 	* mail-ops.c (delete_msg): Toggle the delete flag on a message.
> 	(expunge_folder): New function to expunge deleted messages from
> 	the current folder.

svn path=/trunk/; revision=2744
2000-05-02 03:00:56 +00:00
397a851038 Move text_to_html to e-util.
* mail-format.c: Move text_to_html to e-util.

	* mail-ops.c (send_to_url): New routine. Thin wrapper for
	e_msg_composer_new_from_url.

	* mail-display.c (on_link_clicked): print a warning for news or
	nntp URLs (which we'll deal with some day), and call send_to_url
	for mailto URLs.

svn path=/trunk/; revision=2664
2000-04-27 19:03:54 +00:00
4c1c537e19 rename "send" to "send_msg", to avoid name clash with the tcp function.
* folder-browser-factory.c: rename "send" to "send_msg", to avoid
	name clash with the tcp function. Connect the "forward" button.

	* mail-ops.c: rename "send" to "send_msg", to avoid name clash
	with the tcp function. Add forward_msg function.

	* mail-format.c (mail_generate_forward): support function for
	forward_msg. Pretty much a big kludge right now, pending the
	attachment/attachment-bar changes.

svn path=/trunk/; revision=2562
2000-04-23 17:15:07 +00:00
f5ec554c15 move msg_composer_cb and msg_composer_send_cb to mail-ops. Attach send,
* folder-browser-factory.c: move msg_composer_cb and
	msg_composer_send_cb to mail-ops. Attach send, reply, and "reply
	to all" buttons.

	* mail-ops.c (composer_send_cb, send): moved from
	folder-browser-factory.c.
	(reply_to_sender, reply_to_all): new functions to do replies.

	* mail-format.c (text_to_html): Add an "add_pre" flag, to make
	it wrap the output in <pre></pre>.
	(mail_generate_reply): New function to create a composer and build
	a reply in it.

svn path=/trunk/; revision=2554
2000-04-22 18:07:14 +00:00
2b55a1e90c new file, for toolbar/menu callbacks (fetch_mail): fetch mail. Doesn't do
* mail-ops.c: new file, for toolbar/menu callbacks
	(fetch_mail): fetch mail. Doesn't do mbox locking. Many kludges.

	* folder-browser-factory.c (control_activate): use new fetch_mail
	function as the callback for the "New mail" icon. Rename check_cb
	to random_cb.

	* Makefile.am: don't build test-sources since the version in
	CVS doesn't do much and once I've fixed it it won't be a separate
	program. Add mail-ops.[ch].

svn path=/trunk/; revision=2330
2000-04-07 20:07:32 +00:00