Commit Graph

62 Commits

Author SHA1 Message Date
210c0386a9 New location for this function.
2001-02-08  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (mail_generate_reply): New location for this
	function.

	* mail-format.c: Removed mail_generate_reply as it's ONLY ever
	used in mail-callbacks.c.

	* 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=8137
2001-02-09 02:51:22 +00:00
54a2910f89 Check if a message part's content is available, and if it's not, queue a
* mail-format.c (mail_content_loaded): Check if a message part's
	content is available, and if it's not, queue a thread that will
	load it and then queue an idle-handler redisplay of the message.
	(call_handler_function): Call mail_content_loaded() on the part
	and don't try to display it if it's currently offline.
	(get_data_wrapper_text): Simplify a bit

	* mail-display.c (mail_display_queue_redisplay): rename and make
	non-static.
	(mail_display_redisplay): Use a "new and improved" way of
	preserving the GtkHTML scroll location. ("new and improved" is
	code for "gross and hackish", but there should be a real interface
	for this eventually.)
	(on_url_requested): Use mail_content_loaded() and don't write out
	offline cid: URLs

	* mail-identify.c (mail_identify_mime_part): Use
	mail_content_loaded and don't try to identify the data if it's
	offline.

svn path=/trunk/; revision=7813
2001-01-25 17:07:23 +00:00
bd1a57fc80 Function to add a store/storage mapping. (add_storage): Use it.
* component-factory.c (mail_hash_storage): Function to add a
	store/storage mapping.
	(add_storage): Use it.

	* mail-vfolder.c (vfolder_uri_to_folder): Use the vfolder name
	rather than the string "mbox" (which wasn't ever used for
	anything) in the vfolder URL. (Combined with the CamelVeeFolder
	change, this makes camel_folder_get_name() return a pretty name
	for vfolders now.) Call mail_hash_storage() to record the
	CamelVeeStore/vfolder_storage mapping. (Ideally, there'd only be a
	single CamelVeeStore... this is just a quick hack.)

	vfolders now display their unread count once you've looked at them
	once.

svn path=/trunk/; revision=7712
2001-01-22 18:47:01 +00:00
911b397808 Now takes a 'is_account_data' variable to specify whether the sources is a
2001-01-12  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (mail_load_storages): Now takes a
	'is_account_data' variable to specify whether the sources is a
	list of accounts of a list of services. Basically, the only time
	you should pass in FALSE is when you are setting up NNTP storages.
	(add_storage): Now takes a 'name' argument that specifies the name
	to use in the storage.
	(owner_set_cb): Updated to pass TRUE for accounts and FALSE for
	news servers into mail_load_storages.

svn path=/trunk/; revision=7469
2001-01-13 04:23:02 +00:00
2f0ce375aa Moved to mail-config.glade
2001-01-09  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-config-druid.glade: Moved to mail-config.glade

	* mail-accounts.c (construct): Updated to use mail-config.glade.

	* mail-account-editor.c (construct): Updated to use
	mail-config.glade.

	* mail-config-druid.c (construct): Updated to use
	mail-config.glade.

	* mail.h: Added the new mail config headers.

svn path=/trunk/; revision=7351
2001-01-10 03:52:40 +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
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
1cb19b5a1b Added new header files.
2000-11-03  Jeffrey Stedfast  <fejj@helixcode.com>

	* Makefile.am: Added new header files.

	* component-factory.c (owner_set_cb):
	s/session_init/mail_session_init

	* session.c: Renamed public functions to mail_session_*.
	FIXME: Rename session.c to mail-session.c

	* folder-browser-factory.c: #include "mail-callbacks.h", #include
	"mail-session.h" and replace forget_passwords with
	mail_session_forget_passwords

	* mail.h: Move session prototypes to mail-session.h, Move
	mail-crypto prototypes to mail-crypto.h, Move mail-callback
	prototypes to mail-callbacks.h

	* mail-session.h: New header file containing public prototypes
	for session.c

	* mail-format.c: #include "mail-crypto.h"

	* mail-view.c:
	* folder-browser.c: #include "mail-callbacks.h"

	* mail-crypto.h: New header file containing public prototypes
	for mail-crypto.c

	* mail-callbacks.h: New header file containing public prototypes
	for mail-callbacks.c

	* message-list.c (message_list_get_layout): Set useful defaults.
	(message_list_setup_etable): Don't set the Outbox defaults on a
	folder just because it doesn't have a corresponding saved file.

svn path=/trunk/; revision=6372
2000-11-03 18:55:41 +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
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
88cbebbb3d s/BonoboUIHandler/BonoboUIComponent/
2000-10-20  Michael Meeks  <michael@helixcode.com>

	* mail.h: s/BonoboUIHandler/BonoboUIComponent/

	* mail-callbacks.c (run_filter_ondemand): ditto.

	* session.c (forget_passwords): ditto.

svn path=/trunk/; revision=6085
2000-10-20 21:16:11 +00:00
73f3bc0bd4 add a ref to input->storage here so that the ref/unref pattern more
2000-10-10  Chris Toshok  <toshok@helixcode.com>

	* mail-ops.c (setup_scan_subfolders): add a ref to input->storage
	here so that the ref/unref pattern more closely matches other
	mail-ops.  also, this keeps the storage from being freed when we
	hit the unref in cleanup_scan_subfolders, which is important
	because we maintain a reference to it in the storage_hash in
	component-factory.c

	* subscribe-dialog.h: add storage field.

	* subscribe-dialog.c (subscribe_folder_info): new function,
	subscribe to a folder given it's CamelFolderInfo, and add it to
	the shell - we're generating a path from the name of the folder
	which is bad.
	(unsubscribe_folder_info): same (except we unsubscribe and remove
	from the shell).
	(storage_selected_cb): unref the currently selected storage.
	(subscribe_dialog_destroy): unref the currently selected storage.
	(subscribe_dialog_construct): sc->storage = NULL.

	* component-factory.c (mail_lookup_storage): new function, to look
	up a EvolutionStorage corresponding to a CamelService.  we ref the
	EvolutionStorage before passing it back.
	(mail_add_new_storage): insert the storage into storages_hash if
	result is EVOLUTION_STORAGE_OK.

	* mail.h: add prototype for mail_lookup_storage.

svn path=/trunk/; revision=5830
2000-10-11 02:05:29 +00:00
9ec39960ad Instead of UnSelectAll, we want InvertSelection.
2000-10-04  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c: Instead of UnSelectAll, we want
	InvertSelection.

	* mail-callbacks.c (select_all): Finished this function.
	(invert_selection): Finished. (was unselect_all - but that's not
	what we really wanted as it'd be pointless. invert_selection is a
	much more useful callback :-)

svn path=/trunk/; revision=5725
2000-10-04 22:41:05 +00:00
831692cf87 Add print preview verb here.
2000-09-29  Miguel de Icaza  <miguel@helixcode.com>

	* folder-browser-factory.c: Add print preview verb here.

	* mail-callbacks.c (do_mail_print): Handle printing here, the
	complete engine.
	(mail_print_preview_msg): new. does print previewing.
	(mail_print_msg): does printing of the message.

svn path=/trunk/; revision=5641
2000-09-29 23:45:49 +00:00
c237eba138 nuked.
2000-09-29  Chris Toshok  <toshok@helixcode.com>

	* subscribe-control-factory.c, subscribe-control-factory.h: nuked.

	* subscribe-control.c, subscribe-control.h: lots of changes.  we
	now pop up a dialog, and will have a storage set view on our left
	side, like the shell does.

	* mail.h: add prototype for manage_subscriptions.

	* mail-callbacks.c (manage_subscriptions): new function, pops up
	the subscribe dialog.

	* folder-browser-factory.c: add the verb for managing
	subscriptions.

	* Makefile.am (evolution_mail_SOURCES): add subscribe-control.[ch]
	again.

svn path=/trunk/; revision=5637
2000-09-29 20:36:03 +00:00
032df17d2c Added new menu items
2000-09-25  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c: Added new menu items

	* mail-callbacks.c (mark_as_seen): New callback to mark all
	selected messages as Seen.
	(mark_as_unseen): New callback to mark all selected messages as
	Unseen.
	(select_all): New callback to select all messages (not yet
	finished)
	(unselect_all): New callback to unselect all messages (not yet
	finished)

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

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

svn path=/trunk/; revision=5362
2000-09-12 14:30:49 +00:00
040ff5ad09 Another big rewrite of this stuff. Now all (well, most) attachments get a
* mail-display.c, mail-format.c: Another big rewrite of this
	stuff. Now all (well, most) attachments get a small icon with a
	description and a (non-obvious) right-click pop-up menu with
	options to save, open in an external program, or show/hide inline.

	TODO: antialias the icon, add more options to the pop-up for
	certain MIME types, add an icon to the headers, fix PGP to work
	like everything else, fix message/external-body to work again,
	add some icon caching action, etc, etc.

svn path=/trunk/; revision=5326
2000-09-11 17:12:57 +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
906a178ce8 Goodbye, GDK_THREADS!
svn path=/trunk/; revision=5074
2000-08-28 14:36:26 +00:00
2831015fa1 New crypto function to clearsign plaintext
2000-08-27  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-crypto.c (mail_crypto_openpgp_clearsign): New crypto
	function to clearsign plaintext

svn path=/trunk/; revision=5068
2000-08-27 22:13:43 +00:00
b3a5afcf5b Added bonobo menu handler for mark_all_deleted function.
2000-08-27  Ariel Rios  <ariel@arcavia.com>

        * folder-browser-factory.c (control_activate): Added bonobo menu handler for mark_all_deleted function.

        * mail.h: (mark_all_deleted): Added prototype.

        * mail-callbacks.c (mark_all_deleted): Added callback for marking all displayed messages in a folder as$

svn path=/trunk/; revision=5067
2000-08-27 20:14:12 +00:00
f6e3d603c9 Sync the right-click menu with the main menu for modifying messages
svn path=/trunk/; revision=5018
2000-08-24 20:20:28 +00:00
0b9b384a2b Fix GDK_THREADS_entering and leaving, hopefully once and for all. Genericify the recursive-store-loading. Load stores when they're added to the config page.
svn path=/trunk/; revision=5005
2000-08-24 17:22:12 +00:00
7cf30eb792 Filtering on demand! booyeah!
svn path=/trunk/; revision=4864
2000-08-17 17:42:21 +00:00
e3b786b5cf Add support for copying messages
svn path=/trunk/; revision=4845
2000-08-15 19:10:45 +00:00
53337e992f Get the mail component to use the new Evolution::ShellView interface.
This implementation is so ugly and evil and needs to be replaced.
Don't look at it.  Go away.

svn path=/trunk/; revision=4797
2000-08-13 05:20:54 +00:00
b9cc4db255 Redo this again. Get rid of struct mail_format_data and move most of that
* mail-display.c, mail-format.c: Redo this again. Get rid of
        struct mail_format_data and move most of that info into
        MailDisplay itself, and pass the MailDisplay around. Add a GData**
        to MailDisplay, and put the urls hash table into that. Also add
        the ability to redisplay the currently-displayed message (with the
        same GData**), and add a "show_pgp" datum to it that controls
        whether or not to decrypt PGP messages, and redo the PGP stuff
        (again) to take that into account. Now you don't get the annoying
        PGP password dialog box without any warning.

svn path=/trunk/; revision=4757
2000-08-11 22:22:27 +00:00
ed88f23786 Update this for CamelObject (try_inline_pgp): Deal with decrypting here
* mail-format.c (destroy_part): Update this for CamelObject
        (try_inline_pgp): Deal with decrypting here rather than trying to
        pawn the data off to handle_multipart_encrypted, since it most
        likely won't be correct (won't have the proper MIME headers inside
        the encrypted part).
        (handle_multipart_encrypted): Add code from Nathan Thompson-Amato
        to re-MIME-parse the decrypted data after decrypting.

        * mail-crypto.c (mail_crypto_openpgp_{de,en}crypt): Get the
        password here rather than having it passed in. Remove some dead
        code.

        * session.c (mail_request_dialog): Allow this to work in either a
        sync or an async context.

svn path=/trunk/; revision=4751
2000-08-11 20:27:12 +00:00
6db1c7d22a Don't call e_setup_base_dir. It was wrong and it doesn't exist any more.
* session.c (session_init): Don't call e_setup_base_dir. It was
        wrong and it doesn't exist any more.

        * component-factory.c (owner_set_cb): Update for changed
        prototype, and record the evolution_homedir. Move call to
        mail_config_init here from session.c so it happens after
        evolution_dir is initialized.

        * mail.h: define "extern char *evolution_dir;" (formerly in
        e-util/e-setup.h)

        * component-factory.c, mail-callbacks.c, mail-config-gui.c,
        mail-config.c, mail-display.c, mail-format.c, mail-ops.c,
        mail-tools.c, session.c: Remove "e-util/e-setup.h" include.

svn path=/trunk/; revision=4712
2000-08-11 00:02:25 +00:00
8cb514d6dd Merge with camel-async.
svn path=/trunk/; revision=4687
2000-08-10 17:30:50 +00:00
3d94ea9337 Changed to only take a FolderBrowser argument
2000-08-09  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-view.c (mail_view_create): Changed to only take a
	FolderBrowser argument

	* mail-ops.c (real_view_msg): Create a new FolderBrowser for each
	message being opened in a new window. Also set the
	message_list->cursor_uid and mail_display->current_message to the
	appropriate values.
	(real_view_msg): Updated to reflect changes in the mail_view_create

	* message-list.c (on_right_click): Nicify a little, add in a menu
	separator between VFolder and Filter stuff.

	* mail-ops.c (real_view_msg): Set the UID of the message that is
	being displayed

svn path=/trunk/; revision=4662
2000-08-09 19:57:28 +00:00
b9a9cd3a86 New convenience function with params of a normal Gtk callback function. We
2000-08-08  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (view_msg): New convenience function with params of a
	normal Gtk callback function. We also now create a new
	FolderBrowser object so that the message-view window isn't tied to
	the display in the main window
	(view_message): Now calls view_msg (this function is a bonobo
	callback and can't be used with gtk widgets)
	(edit_msg): Same idea as view_msg()
	(edit_message): Again, same as view_message()

	* message-list.c (on_right_click): Callback for creating an
	e-popup-menu
	(message_list_init): Added a right_click event to trigger a pop-up
	menu to be displayed

svn path=/trunk/; revision=4619
2000-08-09 01:09:55 +00:00
8fed71251f Fix build by allowing includes for e-table dir
2000-08-08  JP Rosevear  <jpr@helixcode.com>

	* Makefile.am: Fix build by allowing includes for e-table dir

2000-08-08  JP Rosevear  <jpr@helixcode.com>

	* mail-ops.c (check_configured): Use config accessors
	(fetch_mail): ditto
	(composer_send_cb): ditto
	(create_msg_composer): ditto

	* mail-config-gui.h: Update API

	* mail-config.h: Update API

	* mail-config.c: Add accessor functions
	(mail_config_is_configured): accessor function
	(mail_config_get_default_identity): ditto
	(mail_config_get_default_source): ditto
	(mail_config_get_transport): ditto
	(mail_config_send_html): ditto
	(identity_copy): Make public
	(identity_destroy): ditto
	(identity_destroy_each): ditto
	(service_copy): ditto
	(service_destroy): ditto
	(service_destroy_each): ditto
	(mail_config_init): Rename from init_config and make public
	(mail_config_clear): Rename from clear_config and make public
	(mail_config_read): Rename from read_config and make public
	(mail_config_write): Reanme from write_config and make public

	* main.c (main): Call mail_config_init.

	* mail.h: Include mail-config-gui.h

	* mail-config-gui.c: Move config gui stuff here.
	(source_dialog): Kill memory leak from debug leftovers.
	Make sure returned source is NULL by default

svn path=/trunk/; revision=4592
2000-08-08 07:08:48 +00:00
b9eece78e6 Redone to show a dialogue first, and show progress of whats happening as
2000-08-07  Not Zed  <NotZed@HelixCode.com>

        * mail-local.c (local_reconfigure_folder): Redone to show a
        dialogue first, and show progress of whats happening as its done.

        * Makefile.am (glade_DATA): Added local-config.glade, for mailbox
        reconfig dialogue.

2000-08-04  Not Zed  <NotZed@HelixCode.com>

        * folder-browser.c (mail_uri_to_folder): Use local_uri_to_folder()
        for local uri's (file://).

        * mail-local.c (local_uri_to_folder): Handle looking up folder
        storage type before opening the store/folder.
        (local_reconfigure_folder): Function to reconfigure the format of
        a local mailbox into another storage format.

        * Makefile.am (evolution_mail_SOURCES): Added mail-local.c and
        missing mail-vfolder.h.

svn path=/trunk/; revision=4591
2000-08-08 03:55:11 +00:00
573ea91f0c Added mail-view.c
2000-08-07  Jeffrey Stedfast  <fejj@helixcode.com>

	* Makefile.am: Added mail-view.c

	* folder-browser-factory.c (control_activate): Adda menu item for
	viewing the message

	* mail-view.c: New file containing methods for viewing messages in
	separate windows

	* mail-ops.c (view_message): New callback for viewing messages in
	a new window.

svn path=/trunk/; revision=4588
2000-08-08 02:08:44 +00:00
cf0a938afb Renamed from reply_body() so other functions can use it
2000-08-07  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-format.c (mail_get_message_body): Renamed from reply_body()
	so other functions can use it
	(mail_generate_reply): Updated to reflect function name changes

	* mail-ops.c (real_edit_msg): Attach a callback to the send signal

svn path=/trunk/; revision=4564
2000-08-07 08:37:07 +00:00
9739fb5219 New menu item under Actions to allow editing of messages.
2000-08-07  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c (control_activate): New menu item under
	Actions to allow editing of messages.

	* mail-ops.c (edit_message): New function for editing messages.

svn path=/trunk/; revision=4563
2000-08-07 06:55:53 +00:00
43e3ba9da9 Added support for encrypting with GnuPG. Support for PGP5 and PGP2 are
2000-08-06  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-crypto.c (mail_crypto_openpgp_encrypt): Added support for
	encrypting with GnuPG.  Support for PGP5 and PGP2 are still in
	progress.

svn path=/trunk/; revision=4557
2000-08-06 06:34:14 +00:00
324b1e8675 New code to spawn off GPG/PGP to do stuff. Currently only deals with
* mail-crypto.c: New code to spawn off GPG/PGP to do stuff.
	Currently only deals with decryption. From Nathan Thompson-Amato
	<ndt@jps.net>, with bunches of changes from me.

	* session.c (mail_request_dialog): Expose the password dialog to
	the rest of the app (for use by the GPG/PGP code).

	* mail-format.c (handle_text_plain): Handle special inline data
	types. (Currently uuencoding, BinHex, and PGP encryption.) This is
	not the best way to deal with it, but it works for now.
	(try_inline_pgp): Convert an inline PGP-encrypted message into a
	multipart/encrypted part.
	(try_inline_binhex): Convert an inline BinHex attachment into an
	application/mac-binhex40 part (which we currently don't deal
	with...)
	(try_uudecoding): Convert a uuencoded attachment to an
	application/octet-stream part.
	(handle_multipart_encrypted): Deal with RFC2015 MIME-encoded PGP
	encrypted messages. (From ndt.)

	* mail-display.c (mail_text_write, mail_error_write): New utility
	functions.

	* Makefile.am (evolution_mail_SOURCES): add mail-crypto.c

svn path=/trunk/; revision=4466
2000-08-02 02:56:48 +00:00
4f1ecbb64b Remove hack to pass the storage around.
2000-07-29  Not Zed  <NotZed@HelixCode.com>

        * component-factory.c (create_view): Remove hack to pass the
        storage around.

        * folder-browser-factory.c (control_activate): Changed to call
        renamed vfolder editor.

        * mail-ops.c (vfolder_edit_vfolders): renamed from vfolder_edit,
        call new edit function.
        (vfolder_editor_clicked): Removed.
        (filter_druid_clicked):
        (filter_edit): Updated for api change.
        (real_fetch_mail): Fixed up for api change and fucked up indent.
        (filter_get_folder): callback for filter driver.

        * mail-vfolder.c: New file to manage virtual folders.

svn path=/trunk/; revision=4417
2000-07-30 03:21:16 +00:00
121d056d45 New function to create composer with sig file set.
2000-07-28  JP Rosevear  <jpr@arcavia.com>

	* e-msg-composer.c (e_msg_composer_new_with_sig_file): New
	function to create composer with sig file set.
	(e_msg_composer_get_sig_file): New function to get sig file
	(e_msg_composer_set_sig_file): New function to set sig file

2000-07-29  JP Rosevear  <jpr@arcavia.com>

	* mail-format.c (mail_generate_reply): Use new mail config stuff

	* component-factory.c (create_imap_storage): Use new mail config
	stuff
	(create_news_storage): ditto

	* evolution-mail.schemas: Gconf schema for evolution mail

	* mail-config-druid.glade: Gladification of config druid

	* mail-config.h: New header with config structs.

	* mail-config.c: Rewrite of GUI configuration tools to use
	new config structs.  Stores multiple identities and sources now.
	Still only uses the first one found.
	(mail_config_fetch): Returns MailConfig struct to caller
	for configuration queries.
	(mail_config): Renamed function to show mail config dialog.
	(mail_config_druid): Renamed function to show mail config druid.

	* mail-ops.c (create_msg_composer): Use
	e_msg_composer_new_with_sig_file and new config stuff
	(check_configured): Use new config stuff
	(fetch_mail): ditto
	(composer_send_cb): ditto

svn path=/trunk/; revision=4413
2000-07-29 06:04:24 +00:00
f34353458d Added mark_all_seen(), to mark every message in the list with
2000-07-28  Cody Russell  <bratsche@gnome.org>
        * mail-ops.c, mail.h: Added mark_all_seen(), to mark every
        message in the list with CAMEL_MESSAGE_SEEN.

        * folder-browser-factory.c: Added "Actions/Mark all seen".

svn path=/trunk/; revision=4412
2000-07-29 04:20:38 +00:00
f062013d51 s/struct refile_data/struct move_data (real_move_msg): Renamed from
2000-07-26  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c: s/struct refile_data/struct move_data
	(real_move_msg): Renamed from real_refile_msg()
	(move_msg): Renamed from refile_msg()

	* folder-browser-factory.c: Changed Refile to Move.

svn path=/trunk/; revision=4347
2000-07-26 16:09:18 +00:00
2f2ff6d4cc Deal with having multiple selected messages.
* mail-ops.c (forward_msg): Deal with having multiple selected
	messages.

	* mail-format.c (mail_generate_forward): Removed. (Integrated into
	forward_msg)

svn path=/trunk/; revision=3982
2000-07-08 23:40:06 +00:00
8a2058e527 Use gnome-print to do a print preview.
* mail-ops.c (print_msg): Use gnome-print to do a print preview.

	* folder-browser-factory.c: Hook up "Print" button.

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

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

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

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

svn path=/trunk/; revision=3833
2000-06-30 20:05:47 +00:00
d2bd0132f7 Changed "Send" to "Compose" to avoid user confusion. Compose is a little
2000-06-29  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c: Changed "Send" to "Compose" to
	avoid user confusion. Compose is a little more intuitive.

	* mail-ops.c (compose_msg): Renamed to avoid confusion

svn path=/trunk/; revision=3805
2000-06-29 21:06:28 +00:00