aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-tools.c
Commit message (Collapse)AuthorAgeFilesLines
* New file. Protoypes for the Mail Folder Cache, which provides a place forPeter Williams2001-07-031-103/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-02 Peter Williams <peterw@ximian.com> * mail-folder-cache.h: New file. Protoypes for the Mail Folder Cache, which provides a place for all the disparate pieces of the mailer to save bits of information about a folder. Centralizes the information display code. * mail-folder-cache.c: New file. Implements the Mail Folder Cache. * Makefile.am (evolution_mail_SOURCES): Add the mail-folder-cache.{c,h} * folder-browser-factory.c (fb_get_svi): Copy of that absurdly long-named function in mail-display.c that gets the GNOME_Evolution_ShellView. (control_activate): Set the ShellView for the folder cache. * folder-browser.c (got_folder): Tell the folder browser about this folder. * mail-callbacks.c (create_folders): Tell the folder cache about the new folders. * mail-local.c (reconfigure_folder_reconfigure): Don't unhook our events as we no longer hook them up. (register_folder_registered): Tell the folder cache about this folder's place in the local storage. (register_folder_register): No longer hook events; the Folder Cache will do this. (local_folder_changed, local_folder_changed_proxy): Move to mail-folder-cache.c (free_local_folder): No longer unhook events. * mail-ops.c (do_update_subfolders_rec): Instead of setting the folder status ourselves, inform the Folder Cache about the changes. * mail-tools.c (mail_tool_uri_to_folder): Replace danw's cache with the new Mail Folder Cache. (cache_folder, etc): removed. svn path=/trunk/; revision=10694
* oops. didn't save before comitttingDan Winship2001-07-021-1/+0
| | | | svn path=/trunk/; revision=10662
* Ref the folder before proxying the event, in case there's only oneDan Winship2001-07-021-3/+9
| | | | | | | | | | | | | | | | * mail-tools.c (update_unread_count): Ref the folder before proxying the event, in case there's only one reference to it and it gets unreffed before the other end of the event handler runs. (update_unread_count_main): And unref it when we're done. (mail_tool_uri_to_folder): Only hold the lock around the hash table operations, not the entire function. Holding the lock the whole time can cause deadlock when resolving vfolders, and the CamelSession and CamelStore locks ensure that multiple threads calling this function will end up with the same CamelFolder object at the end anyway, so we just need to lock and re-check the cache at the end before adding the folder to the cache. svn path=/trunk/; revision=10661
* After finding a folder, attach to its "folder_changed" andDan Winship2001-06-291-7/+109
| | | | | | | | | | | | | | | * mail-tools.c (mail_tool_uri_to_folder): After finding a folder, attach to its "folder_changed" and "message_changed" signals. (update_unread_count, update_unread_count_main): Moved here from folder-browser but basically unchanged. Doing this here lets us get folder tree updates for folders that have had messages moved/copied/filtered into them, but which don't yet have a view associated with them. * folder-browser.c (update_unread_count, update_unread_count_main, etc): Moved to mail-tools.c svn path=/trunk/; revision=10567
* Update the copyrights, replacing Helix Code with Ximian andEttore Perazzoli2001-06-231-4/+4
| | | | | | helixcode.com with ximian.com all over the place. svn path=/trunk/; revision=10440
* Properly clean up the movemail files when no mail was received.Jon Trowbridge2001-06-191-0/+2
| | | | | | | | | 2001-06-19 Jon Trowbridge <trow@ximian.com> * mail-tools.c (mail_tool_do_movemail): Properly clean up the movemail files when no mail was received. svn path=/trunk/; revision=10290
* If we have a fragment in the url, use that as the folder name, and not theNot Zed2001-06-181-4/+10
| | | | | | | | | | | | | | 2001-06-14 Not Zed <NotZed@Ximian.com> * mail-tools.c (mail_tool_uri_to_folder): If we have a fragment in the url, use that as the folder name, and not the path component. 2001-06-13 Not Zed <NotZed@Ximian.com> * component-factory.c (mail_load_storages): Added temp hack to let spool providers show up in the list. svn path=/trunk/; revision=10263
* If you had multiple accounts that used mboxes, and if you received mail inJon Trowbridge2001-06-091-1/+12
| | | | | | | | | | | | | | 2001-06-08 Jon Trowbridge <trow@ximian.com> * mail-tools.c (mail_tool_get_local_movemail_path): If you had multiple accounts that used mboxes, and if you received mail in N of those accounts, you would get N copies of each of your e-mail messages. This is because everything was being dumped into one big file by movemail, and the filters would run on that file N times. To work around this, each mbox account now gets its own distinct temporary movemail file. svn path=/trunk/; revision=10155
* Set a title on the window "Reconfigure %s" where %s is the folder name.Jeffrey Stedfast2001-05-121-12/+16
| | | | | | | | | | | | | 2001-05-11 Jeffrey Stedfast <fejj@ximian.com> * mail-local.c (mail_local_reconfigure_folder): Set a title on the window "Reconfigure %s" where %s is the folder name. Also, don't allow more than one of these type windows to be opened per folder. * mail-tools.c (mail_tool_get_folder_name): Fix Danw's kludge to actually work :-) svn path=/trunk/; revision=9767
* Convert the Subject header to HTML and also make sure that the Subject,Jeffrey Stedfast2001-05-091-8/+17
| | | | | | | | | | | 2001-05-08 Jeffrey Stedfast <fejj@ximian.com> * mail-tools.c (mail_tool_forward_message): Convert the Subject header to HTML and also make sure that the Subject, To, and From header values are non-NULL before feeding them into e_text_to_html(). svn path=/trunk/; revision=9718
* signature changingRadek Doulik2001-04-251-19/+20
| | | | | | | | | | | | | | * signature changing 2001-04-25 Radek Doulik <rodo@ximian.com> * mail-tools.c (mail_tool_quote_message): set object data directly in HTML source * mail-callbacks.c (mail_generate_reply): remove \n from citation (mail_generate_reply): don't use e_msg_composer_mark_text_orig svn path=/trunk/; revision=9558
* Cleaned up #includes. Remove unneccesary includes of <gnome.h>,Kjartan Maraas2001-03-301-0/+3
| | | | | | | | | | | 2001-03-29 Kjartan Maraas <kmaraas@gnome.org> * *.*: Cleaned up #includes. Remove unneccesary includes of <gnome.h>, <gtk/gtk.h>, <bonobo.h> and replaced with more fine grained headers where needed. Also marked a bunch of strings for translations and added some missing prototypes. svn path=/trunk/; revision=9025
* set color in html citationRadek Doulik2001-03-211-10/+10
| | | | | | | | | | | | | | | | 2001-03-20 Radek Doulik <rodo@ximian.com> * mail-tools.c (mail_tool_quote_message): set color in html citation * mail-config.c: added citation highlighting configuration * mail-tools.c (mail_tool_quote_message): use citation highlighting * mail-display.c (mail_text_write): use citation highlighting svn path=/trunk/; revision=8848
* Set the Forward->Quoted callback. Also set the forward->AttachmentJeffrey Stedfast2001-03-091-6/+63
| | | | | | | | | | | | | | | | | | | | | 2001-03-08 Jeffrey Stedfast <fejj@ximian.com> * folder-browser-factory.c: Set the Forward->Quoted callback. Also set the forward->Attachment callback. * mail-view.c (view_forward_msg): Specify FORWARD_ATTACHED. * mail-callbacks.c (forward_attached): Don't call forward_messages() anymore...never really needed to. Just handle it directly. (forward_inlined): Specify FORWARD_INLINE as the flag argument. (forward_quoted): New function sorta like forward_inlined except this forwards the message quoted. * mail-tools.c (mail_tool_forward_message): New function to prepare a message to be forwarded. svn path=/trunk/; revision=8611
* Remove very old camel lock stuff.Not Zed2001-03-031-8/+0
| | | | | | | | | | | | | | | | | | | | | 2001-03-03 Not Zed <NotZed@Ximian.com> * mail-tools.c: Remove very old camel lock stuff. * mail-local.c (register_folder_registered): Add the local folder as a potential vfolder source. * folder-browser.c (got_folder): When we have a new folder, register it as a potential vfolder source. * mail-vfolder.c: Added the source rule to the vfolder_info. (vfolder_refresh): Store the rule in the vfolder info, etc. (vfolder_register_source): Function to register a newly opened folder with us. (vfolder_uri_to_folder): Save the folder in the vfolder_info too. (source_finalise): Handle clenaup when the folder dies. svn path=/trunk/; revision=8534
* Toss the mail_tool_camel_lock* stuff. Same. Here too.Jeffrey Stedfast2001-02-251-92/+2
| | | | | | | | | | | | | | | | 2001-02-24 Jeffrey Stedfast <fejj@ximian.com> * folder-browser.c: Toss the mail_tool_camel_lock* stuff. * mail-ops.c: Same. * mail-summary.c: Here too. * mail-tools.c (mail_tool_uri_to_folder_noex): Blown away! (mail_tool_filter_get_folder_func): *kapoosh* (mail_tool_camel_lock_up): Same. (mail_tool_camel_lock_down): Same. (mail_tool_set_uid_flags): Don't need this rubbish anymore either. svn path=/trunk/; revision=8384
* No longer need to do a vtrash_cleanup() (it also doesn't exist anymore).Jeffrey Stedfast2001-02-241-13/+12
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-02-23 Jeffrey Stedfast <fejj@ximian.com> * main.c (main): No longer need to do a vtrash_cleanup() (it also doesn't exist anymore). * component-factory.c (mail_load_storages): Updated to use the new vtrash code. (owner_set_cb): Same. * mail-tools.c (mail_tool_uri_to_folder): Update to handle the "vtrash:" url prefix so that we can extract the REAL uri and know to get the trash folder. * mail-vtrash.c (mail_vtrash_add): Add the vTrash folder to the EvolutionStorage. (mail_vtrash_create): Get the store based on the uri (async) and then call mail_trash_add. (vtrash_cleanup): Removed. (vtrash_uri_to_folder): Removed. (vtrash_create): Replaced by mail_vtrash_create() svn path=/trunk/; revision=8367
* Fixed memory corruption bug.Jeffrey Stedfast2001-02-231-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-02-22 Jeffrey Stedfast <fejj@ximian.com> * openpgp-utils.c (openpgp_verify): Fixed memory corruption bug. * mail-format.c (try_inline_pgp_sig): Check to make sure the validity isn't NULL. (handle_multipart_signed): Check for NULL validities. 2001-02-21 Jeffrey Stedfast <fejj@ximian.com> * mail-tools.c (mail_tool_uri_to_folder): Protect against NULL uri's. * mail-vtrash.c: Do mutex locking on the global hash table - this should clear up some segfaults ;-) * mail-config-druid.c (druid_finish): Set the 'enabled' member of the source to TRUE if the URL exists else set to FALSE. (incoming_type_changed): If the provider chosen is "None" then gray-out the auto-check widgets and the check-settings, otherwise sensitize them. * mail-account-editor.c (construct): Added a few more settings. (apply_changes): Save the new settings. * mail-config.c (service_copy): Updated. (config_read): Read in whether or not the account is enabled. (mail_config_write): Save if the account is enabled or not. svn path=/trunk/; revision=8349
* Removed, no longer link with libcamelvee. (evolution_mail_LDADD): Ditto.Not Zed2001-02-221-1/+1
| | | | | | | | | | | | | | 2001-02-22 Not Zed <NotZed@Ximian.com> * Makefile.am (CAMEL_OBJS_EXTRA): Removed, no longer link with libcamelvee. (evolution_mail_LDADD): Ditto. * mail-vtrash.c: Moved camel-vee-store header ot camel levle. * mail-tools.c: Moved camel-vee-folder header to camel. svn path=/trunk/; revision=8341
* New handy dandy function to ref and return the vfolder storage (willJeffrey Stedfast2001-02-201-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Updates for CamelStore changes, small memory leak fixes. (lookup_folder):Dan Winship2001-02-101-39/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * mail-local.c: Updates for CamelStore changes, small memory leak fixes. (lookup_folder): Removed (and moved into the reconfigure code) since this method no longer exists in CamelStore. (do_reconfigure_folder, etc): Update the info in the MailLocalStore after reconfiguring. (mail_local_lookup_folder): Removed * local-config.glade: fix padding of the label_format * message-list.c (ml_tree_value_at): Don't keep message infos reffed across calls, since this can cause badness after a reconfigure. Instead, just strdup the needed values and free those on the next call. * mail-tools.c (mail_tool_get_root_of_store): Unused, remove. (mail_tool_get_inbox): use camel_store_get_inbox. * evolution-outlook-importer.c (load_file_fn): * evolution-mbox-importer.c (load_file_fn): Use mail_tool_get_local_inbox() instead of mail_importer_get_folder() * mail-importer.c (mail_importer_get_folder): Removed svn path=/trunk/; revision=8147
* s/filter-driver.h/camel-filter-driver.h/ and update first arg ofDan Winship2001-01-231-2/+1
| | | | | | | | | | | | | | | | | | | | | | * 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
* remove a warning with conditional news compilation.Not Zed2001-01-221-153/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Brand spankin' new config druid, editor, and manager.Jeffrey Stedfast2001-01-091-1/+1
| | | | | | | | | | | | | | | | | | | | | 2001-01-08 Jeffrey Stedfast <fejj@helixcode.com> * Makefile.am: * component-factory.c: * folder-browser-factory.c: * folder-browser.c: * mail-accounts.[c,h]: * mail-account-editor.[c,h]: * mail-callbacks.c: * mail-config.[c,h]: * mail-config-druid.[c,h]: * mail-config-druid.glade: * mail-display.c: * mail-format.c: * mail-tools.c: Brand spankin' new config druid, editor, and manager. svn path=/trunk/; revision=7313
* Reverted mail-config changes temporarily until I get it working correctly.Jeffrey Stedfast2001-01-091-1/+1
| | | | | | | | | | | | | | | | | 2001-01-08 Jeffrey Stedfast <fejj@helixcode.com> * Makefile.am: * component-factory.c: * folder-browser-factory.c: * folder-browser.c: * mail-callbacks.c: * mail-config.[c,h]: * mail-display.c: * mail-format.c: * mail-tools.c: Reverted mail-config changes temporarily until I get it working correctly. svn path=/trunk/; revision=7305
* Updated to reflect changes to the mail-config API.Jeffrey Stedfast2001-01-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-01-07 Jeffrey Stedfast <fejj@helixcode.com> * mail-tools.c (mail_tool_quote_message): Updated to reflect changes to the mail-config API. * mail-display.c (redisplay): Updated to reflect changes to the mail-config API. * mail-callbacks.c (providers_config): Use the new account dialog. * mail-config-druid.c (druid_finish): Load the new storage into the shell. (mail_config_druid_new): Take a shell argument. * mail-format.c (mail_generate_reply): Updated to reflect changes to the mail-config API. * mail-config-druid.c: Fixed this to build. * mail-callbacks.c (check_send_configuration): Updated to reflect changes to the mail-config API. (create_msg_composer): Same. (forward_get_composer): Same. (send_queued_mail): Same. (composer_send_cb): Same. * mail-account-editor.c: Updated to build cleanly. * mail-config-druid.c: Same. * mail-accounts.c: Same. * folder-browser-factory.c (control_activate): Updated for API changes in mail-config. * folder-browser.c (done_message_selected): Updated for API changed in mail-config. (folder_browser_gui_init): Same. (got_folder): Same. * component-factory.c (owner_set_cb): After using the sources list, free it as it is no longer a const GSList as with the older mail-config code. * mail-config.c: Totally rewritten. svn path=/trunk/; revision=7298
* Call mail-callbacks.c:forward_messages(), so the behaviour is the same asNot Zed2001-01-031-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Fix for mail_get_message change, use queue thread.Not Zed2001-01-031-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Merge from camel-mt-branch.Not Zed2000-12-241-2/+5
| | | | | | | | 2000-12-24 Not Zed <NotZed@HelixCode.com> * Merge from camel-mt-branch. svn path=/trunk/; revision=7153
* Only update display every 2 seconds.Miguel de Icaza2000-12-181-3/+14
| | | | | | | | | | | 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
* Remove an unused variable.Dan Winship2000-12-121-1/+0
| | | | | | | * mail-tools.c (mail_tool_quote_message): Remove an unused variable. svn path=/trunk/; revision=6907
* Fix the allocation here (again) and put a comment explaining it. (Fixes aDan Winship2000-11-301-1/+8
| | | | | | | | * mail-tools.c (mail_tool_quote_message): Fix the allocation here (again) and put a comment explaining it. (Fixes a crash when replying.) svn path=/trunk/; revision=6717
* Use the new quote_message function and make it start with "On %s, %sJeffrey Stedfast2000-11-181-1/+94
| | | | | | | | | | | | | | | | | 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
* God, I sure wish people would listen when i'm saying i'm changing and API.Not Zed2000-11-071-9/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-11-07 Not Zed <NotZed@HelixCode.com> * mail-display.c (on_object_requested): God, I sure wish people would listen when i'm saying i'm changing and API. I mean I even mailed everyone and everything. Can't see any changelog either. 2000-11-06 Not Zed <NotZed@HelixCode.com> * mail-autofilter.c (rule_from_message): Updates for api changes. * mail-tools.c (mail_tool_generate_forward_subject): Fixed for api changes. Sigh, whoever wrote the multithread code of the mailer, had little idea. You can't just lock for getting a const value, until you are finished with it, cause the owner still owns it. Fixed this too. Yuck, what a horrid forwarding format, can we change this, or make it configurable? The mail headers show who forwarded it, we dont need to duplicate it in that UGLY subject. * mail-format.c (write_field_to_stream): Removed some jeffness. dont g_strdup stuff we dont need to, and remove the value_is_encoded thing since we can get the unencoded address now. (write_address): New function to write an address field. (write_headers): Uses write_address to write addresses, cleaner, fixed the god-awful unreadable indenting too. (handle_text_plain): Use a 'smarter' printf format, so we dont need to allocate and copy substrings unecessarily (esp since they're about to be allocated any copied another few times anyway *sigh*). (write_field_to_stream): Commented out the isprint check, which afaik serves no purpose. (list_add_addresses): New function to build a list of display-ready addresses. Although I think the composer then uses these as internet-ready addresses. It should probably take a list of CamelAddress's if thats what it wants. (mail_generate_reply): Cleaned up the address list creation stuff a heap, and fixes for camel api changes. Also fixed a small memory leak as a side effect (fulladdr wasn't freed if it was the same as the sender). * mail-display.c (on_object_requested): Changed for interface changes to the from address. I think passing the encoded (internet version) of the address is right here. svn path=/trunk/; revision=6475
* First draft of folder tree unread message indication for /localDan Winship2000-11-071-42/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | mail folders. * mail-local.c: Add a new CamelStore subclass, MailLocalStore, which attaches to an Evolution_LocalStorage on one side and CamelSession on the other, and keeps track of local folders. Some of this code was previously in mail-local-storage.c, which no longer exists. (local_reconfigure_folder, etc): Various mail_op-related cleanups, and wrap d() around a bunch of printfs. * mail-tools.c (mail_tool_get_local_inbox_url, mail_tool_get_local_movemail_url): Removed (mail_tool_get_local_inbox): Simplified. (mail_tool_do_movemail): Remove unused dest_url variable. (mail_tool_uri_to_folder): Simplify. Now down to two cases (vfolder, and everything else). * component-factory.c (owner_set_cb): Pass evolution_dir to mail_local_storage_startup. * Makefile.am (evolution_mail_SOURCES): Remove mail-local-storage.[ch] svn path=/trunk/; revision=6456
* Simplify this a lot by making IMAP and NNTP use the same code, now thatDan Winship2000-10-301-46/+5
| | | | | | | | * mail-tools.c (mail_tool_uri_to_folder): Simplify this a lot by making IMAP and NNTP use the same code, now that the IMAP namespace doesn't need special magic handling. svn path=/trunk/; revision=6257
* lots of i18n fixesDan Winship2000-10-241-5/+7
| | | | svn path=/trunk/; revision=6143
* kill. (create_ondemand_hooks): die. (control_activate): remove hook.Michael Meeks2000-10-191-1/+0
| | | | | | | | | | | | 2000-10-18 Michael Meeks <michael@helixcode.com> * folder-browser-factory.c (register_ondemand): kill. (create_ondemand_hooks): die. (control_activate): remove hook. * test-mail.c (create_container): kill old UI handler. svn path=/trunk/; revision=6020
* No, we REALLY dont want to perform an immediate search as the keys areNot Zed2000-10-181-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-18 Not Zed <NotZed@HelixCode.com> * folder-browser.c (folder_browser_gui_init): No, we REALLY dont want to perform an immediate search as the keys are pressed. * mail-display.c (on_object_requested): Kill a minor warning with a cast. * mail-config.c: Include mising ctype.h to kill a warning. * message-thread.c (main): Fixed the test case for api changes. * message-list.c (message_list_drag_data_get): Set some flags to get_folder(). I dont even think this will work because mail_tool_get_folder doesn't handle file url's. * mail-vfolder.c (vfolder_uri_to_folder): Pass appropriate flags. * mail-ops.c (do_setup_folder): Pass appropriate flags. Hmm, whats the difference between setup and create. *shrug* (do_create_folder): Pass appropriate flags to get_folder. Needs a way to specify the index flag. * mail-tools.c (mail_tool_get_folder_from_urlname): Changed create to flags argument. (mail_tool_get_local_inbox_url): Add an index argument. (mail_tool_get_local_inbox): honour index flag. (mail_tool_get_inbox): Changed for api change. (mail_tool_uri_to_folder): Fixed calls to store_get_folder(); * mail-local.c (load_metainfo): Added an indexed field to the metainfo. (save_metainfo): And save it too. (do_reconfigure_folder): Honour index flag when creating the new folder. Do not open the old folder with an index at all. (mail_local_map_uri): Add an index argument - tells if the mbox is indexed. (mail_tool_local_uri_to_folder): Create & pass flags properly. (#include gnome.h): Dont include all of gnome, just what we use, and explicity include xml-memory, so we get xmlFree(). svn path=/trunk/; revision=5979
* Duh, fix the test for the folder name, strstr != strcmp is it.Not Zed2000-10-121-7/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2000-10-12 Not Zed <NotZed@HelixCode.com> * message-list.c (message_list_setup_etable): Duh, fix the test for the folder name, strstr != strcmp is it. 2000-10-10 Not Zed <NotZed@HelixCode.com> * message-list.c (folder_to_cachename): Removed, changed callers to use mail_config_folder_to_cachename instead. * mail-config.c (mail_config_folder_to_cachename): New utility function to get a cache name for a folder. * mail-tools.c (mail_tool_do_movemail): Changed to return the path to the mbox, rather than opening a folder of it. * mail-ops.c (mail_incorporate_messages): Dont bother making the pseudo messageinfo, filder_driver_filter_message will do it for us. (report_status): Callback to report status of filtering operation. (do_fetch_mail): Changed significantly - for the api changes to the filtering system. Also now incorporates a mailbox file directly, without having to import it into a camel folder first. (mail_incorporate_messages): Removed entirely, no longer needed. * mail-vfolder.c (vfolder_refresh): Fix for context api changes. (vfolder_uri_to_folder): Likewise. * folder-browser-factory.c (create_ondemand_hooks): Changed for api changes. Also only adds demand filters to the menu (fixed a small logic bug). svn path=/trunk/; revision=5883
* remove news specific check. (mail_tool_uri_to_folder): news: -> nntp:Chris Toshok2000-10-051-9/+2
| | | | | | | | | | 2000-10-04 Chris Toshok <toshok@helixcode.com> * mail-tools.c (mail_tool_get_root_of_store): remove news specific check. (mail_tool_uri_to_folder): news: -> nntp: svn path=/trunk/; revision=5718
* destroy our tree_model and remove the root node. also, release_unref ourChris Toshok2000-10-031-4/+15
| | | | | | | | | | | | | 2000-10-02 Chris Toshok <toshok@helixcode.com> * subscribe-dialog.c (subscribe_dialog_destroy): destroy our tree_model and remove the root node. also, release_unref our control and view, and unref the listener. * mail-tools.c (mail_tool_uri_to_folder): news url's contain host names too, now. svn path=/trunk/; revision=5690
* New async function to filter messages on demand. (do_fetch_mail): UpdatedJeffrey Stedfast2000-09-071-95/+2
| | | | | | | | | | | | | | | | | | | | 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
* only call camel_folder_get_message_info if the folder hasDan Winship2000-09-061-52/+43
| | | | | | | | | * mail-tools.c (mail_tool_move_folder_contents): only call camel_folder_get_message_info if the folder has summary_capability. Don't hack up a fake CamelMessageInfo: append_message will take NULL. svn path=/trunk/; revision=5201
* Change the "Get Mail" toolbar button to become "Send & Receieve"Jeffrey Stedfast2000-09-031-4/+3
| | | | | | | | | | | | | | | | | | | | 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
* Since POP3 doesn't implement get_message_info, we need to check for infoJeffrey Stedfast2000-09-031-40/+52
| | | | | | | | | | | | | 2000-09-02 Jeffrey Stedfast <fejj@helixcode.com> * mail-tools.c (mail_tool_move_folder_contents): Since POP3 doesn't implement get_message_info, we need to check for info to be NULL. In this case, we need to make our own info structure to pass to append_message and then remember to free it afterward. Should we even bother with get_message_info? And if so, should we then implement get_message_info for POP3? svn path=/trunk/; revision=5182
* Add more user-friendly progress messages from the friendly folks at Helix ↵Peter Williams2000-08-281-1/+1
| | | | | | Code (TM) svn path=/trunk/; revision=5076
* Display the number of messages downloaded starting from one instead ofEttore Perazzoli2000-08-281-1/+1
| | | | | | | | | | | | zero. Improve the behavior of the mail view in a separate window by reusing the same size as the last resize (we could have a better policy, but this should be enough for now). Also, create the toolbar the right way so that we respect the global GNOME settings without doing it manually. svn path=/trunk/; revision=5075
* Goodbye, GDK_THREADS!Peter Williams2000-08-281-1/+1
| | | | svn path=/trunk/; revision=5074
* Start adding progress info; make flag_all_messages camel-safe; make the no ↵Peter Williams2000-08-251-0/+11
| | | | | | new mail dialog more descriptive. svn path=/trunk/; revision=5016
* Fix GDK_THREADS_entering and leaving, hopefully once and for all. Genericify ↵Peter Williams2000-08-251-4/+1
| | | | | | the recursive-store-loading. Load stores when they're added to the config page. svn path=/trunk/; revision=5005
* Automatically connect services when given a valid URL (should hopefully ↵Peter Williams2000-08-231-36/+28
| | | | | | disconnect, too); remove the old movemail folder correctly. svn path=/trunk/; revision=4965
* Filtering on demand! booyeah!Peter Williams2000-08-181-4/+6
| | | | svn path=/trunk/; revision=4864
* Close the pipes when finished; add i18nPeter Williams2000-08-161-13/+13
| | | | svn path=/trunk/; revision=4846
* Updated to reflect changes to mail_do_scan_subfoldersJeffrey Stedfast2000-08-131-10/+11
| | | | | | | | | | | | | 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
* Don't ref the store returned from camel_session_get_store. It's alreadyDan Winship2000-08-131-14/+2
| | | | | | | | | | * mail-tools.c (mail_tool_get_folder_from_urlname): Don't ref the store returned from camel_session_get_store. It's already reffed. (mail_tool_get_root_of_store): Ditto. (mail_tool_send_via_transport): Remove some commented-out code and fix it to not leave the transport connected if sending fails. svn path=/trunk/; revision=4783
* Put the dont-try-to-get-mail-from-imap-sources check into a better spotPeter Williams2000-08-121-5/+0
| | | | svn path=/trunk/; revision=4750
* Add a function to return a useful name for a folder (not just "mbox" orDan Winship2000-08-111-0/+19
| | | | | | | | | | | * mail-tools.c (mail_tool_get_folder_name): Add a function to return a useful name for a folder (not just "mbox" or "mh" for any local folder.) * mail-ops.c: Use mail_tool_get_folder_name rather than folder->full_name when printing folder names. svn path=/trunk/; revision=4733
* Properly handle different local file formats. The folder isn't alwaysNot Zed2000-08-111-2/+13
| | | | | | | | | | | | | | | | 2000-08-11 Not Zed <NotZed@HelixCode.com> * mail-tools.c (mail_tool_get_local_inbox_url): Properly handle different local file formats. The folder isn't always mbox. (mail_tool_do_movemail): Movemail always uses an mbox format however. (mail_tool_get_local_movemail_url): What is the mbox url, it is always the same type, mbox. (mail_tool_fetch_mail_into_searchable): Same here. * mail-local.c (mail_local_map_uri): Map a local uri to the real uri. svn path=/trunk/; revision=4724
* Don't call e_setup_base_dir. It was wrong and it doesn't exist any more.Dan Winship2000-08-111-1/+0
| | | | | | | | | | | | | | | | | | | * 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
* Add a "gboolean create" argument to pass to camel_store_get_folder.Dan Winship2000-08-111-6/+7
| | | | | | | | | | | | * mail-tools.c (mail_tool_get_folder_from_urlname): Add a "gboolean create" argument to pass to camel_store_get_folder. * mail-ops.c (do_create_folder, do_setup_draftbox): * mail-local.c (mail_tool_local_uri_to_folder): * mail-vfolder.c (vfolder_uri_to_folder): Add create flag to mail_tool_get_folder_from_urlname calls. svn path=/trunk/; revision=4702
* Show 'no new mail' correctly.Peter Williams2000-08-111-0/+12
| | | | svn path=/trunk/; revision=4699
* Fix the infinite movemailPeter Williams2000-08-111-1/+29
| | | | svn path=/trunk/; revision=4696
* oopsPeter Williams2000-08-111-0/+620
svn path=/trunk/; revision=4688