2003-09-18 Radek Doulik * em-format-html.c (efh_init): use gtkhtml's blocking 2003-09-18 Jeffrey Stedfast * em-inline-filter.c: updated for CamelTransferEncoding namespace changes * em-inline-filter.h: updated for CamelTransferEncoding namespace changes * mail-ops.c: updated for CamelTransferEncoding namespace changes 2003-09-18 Jeffrey Stedfast * component-factory.c: updated for camel namespace changes * em-folder-view.c: updated for camel namespace changes * em-format-html-display.c: updated for camel namespace changes * em-format-html-quote.c: updated for camel namespace changes * em-format.c: updated for camel namespace changes * em-popup.c: updated for camel namespace changes * em-utils.c: updated for camel namespace changes * mail-autofilter.c: updated for camel namespace changes * mail-ops.c: updated for camel namespace changes * mail-session.c: updated for camel namespace changes * message-list.c: updated for camel namespace changes * message-tag-followup.c: updated for camel namespace changes * importers/evolution-mbox-importer.c: updated for camel namespace changes 2003-09-18 Jeffrey Stedfast * em-popup.c (emp_standard_menu_factory): Don't forget to initialise/increment 'i' when using it as an object id in the for-loop. * em-format.c (em_format_format_text): Initialise charset to NULL or it may be used uninitialised. Also include gnome-vfs-mime-handlers.h for gnome_vfs_mime_type_get_description(). * Makefile.am: Added $(MARSHALL_GENERATED) to $(BUILT_SOURCES) so that em-marshal.[c,h] were autogenerated. 2003-09-17 Not Zed * folder-browser.c, folder-browser.h, folder-browser-ui.c folder-browser-ui.h, mail-callbacks.c, mail-callbacks.h mail-display.c, mail-display.h, mail-display-stream.c mail-display-stream.h, mail-format.c, mail-format.h mail-identify.c, mail-search.c, mail-search.h message-browser.c, message-browser.h, subscribe-dialog.c subscribe-dialog.h, mail-font-prefs.c, mail-font-prefs.h: cvs removed. * Makefile.am: Removed mail-font-prefs.[ch], hasn't been built for ages. * em-*.c: killed a bunch of printfs. * em-format-html-display.c (efhd_html_button_press_event): update for html object api chagnes. ** Merge in mail-refactor-2 branch. 2003-09-17 Jeffrey Stedfast * evolution-mbox-upgrade.c: New source file to migrate from the old mbox structure to the new mbox structure. 2003-08-22 Not Zed * mail-format.c (write_date): translate the local time format. 2003-08-20 David Woodhouse * mail-format.c (write_date): Use e_utf8_strftime() to generate localised time; avoid gratuitous extra translation and array of day names, and the autoconf magic which made Not Zed dislike the inclusion of the timezone name. 2003-08-14 Jeffrey Stedfast * mail-ops.c (mail_send_message): Don't abort at the first failure after sending (filtering, appending to Sent, syncing). Instead, keep a running tab of exceptions and then set a culmulative exception at the end to report to our caller. Also, if we fail to append to the account Sent folder, try again with the local Sent folder. Fixes bug #46512. 2003-08-18 Jeffrey Stedfast * mail-session.c (main_get_filter_driver): Removed the new-mail-notification mess. * mail-folder-cache.c (notify_idle_cb): New idle callback to alert the user about new mail. (notify_type_changed): New function to intercept user changes to his/her notification settings changes. (real_flush_updates): Initialise new mail notification if not yet initialised and setup an idle callback if none is already set. (update_1folder): Now takes an additional argument `new' which states whether or not the fodler got any new mail so that we may handle notify the user (if needed). (folder_changed): Pass in the number of new messages received. 2003-08-19 Not Zed * mail-callbacks.c (mail_generate_reply): Added a comment for translators. 2003-08-19 David Woodhouse * mail-callbacks.c (mail_generate_reply): Add a timezone offset to the attribution string. 2003-08-19 Not Zed * mail-format.c (write_date): Added translation for day and localtime strings. Also removed the tz_zone stuff, and just use 'localtime' always. 2003-08-15 David Woodhouse * mail-format.c (write_date): Show date in localtime too. 2003-08-19 Harry Lu ** For #45348 * mail-display.c (mail_display_render): Change "%P" to "%p" so that strftime() can work under solaris. 2003-08-13 Suresh Chandrasekharan * e-searching-tokenizer.c (searcher_next_token): Fix for 45818 ( i18n mail messages search only produces '[?]'). Now multibyte character selection works correctly. But due to associated gtkhtml bug, the find button functionallity for multibyte characters is broken. 2003-08-12 Jeffrey Stedfast * mail-tools.h: Removed unused function prototype. 2003-08-11 Jeffrey Stedfast * mail-session.c (remove_timeout): Removed. (register_timeout): Removed. 2003-08-05 Jeffrey Stedfast * mail-format.c (handle_multipart_encrypted): Updated for CamelMimePart::content_type changes. * mail-ops.c (save_part_save): Use camel_data_wrapper_decode_to_stream() here. * mail-display.c (drag_data_get_cb): Updated for CamelMimePart::content_type changes. (do_attachment_header): Same. 2003-07-31 Jeffrey Stedfast * mail-format.c (mail_format_raw_message): Updated to pass FALSE as the 'decode' param to mail_format_data_wrapper_write_to_stream(). (mail_format_data_wrapper_write_to_stream): Now takes a boolean arg telling whether to decode or not. Also reworked the charset logic now that camel doesn't handle this for us any longer. (mail_format_get_data_wrapper_text): Updated. (handle_text_plain): Same. (handle_text_enriched): Here too. * mail-display.c (do_attachment_header): Call decode_to_stream here instead of write_to_stream. (do_external_viewer): Same. (on_url_requested): Same. Also updated for mail_format_data_wrapper_write_to_stream(). (try_part_urls): Call decode_to_stream. (drag_data_get_cb): Same. 2003-08-05 Not Zed ** See bug #32732 * message-list.c (mail_regen_list): use thread_new. * mail-local.c (reconfigure_response): use thread_new. * mail-display.c (stream_write_or_redisplay_when_loaded): use thread_new. * mail-config.c (mail_config_check_service): use thread_new rather than queue. * mail-callbacks.c (view_msg): change to use mail_get_messages(), fixes FIXME. (do_view_messages): handle get_messages callback. (do_view_message): removed. * mail-ops.c (mail_get_folderinfo): Use a new thread thread semantic. (mail_save_part): " (mail_store_set_offline): " (mail_sync_folder): use queued_slow thread queue. (mail_expunge_folder): " (mail_empty_trash): " ** See bug #47224. Hook onto clicked rather than button_pressed, so that dnd works. * mail-display.c (inline_toggle): toggle a part inline. (button_press): change back to only handle button clicked events, renamed to inline_button_clicked. (do_attachment_header): hook onto clicked rather than button_press_event, and move key_press_event to inline_button_pressed. (do_signature): Same. (inline_button_pressed): handle inline button key press event explicitly. 2003-07-29 Not Zed * mail-folder-cache.c (mail_note_store): add a CamelOperation for overriding status handler. * mail-send-recv.c (receive_update_got_store): Pass our own cancel handle to get_folderinfo and mail_note_store. (mail_send_receive, mail_receive_uri): Same for get_store. * mail-ops.c (mail_get_store, mail_get_folderinfo): Add a CamelOperation argument, for overriding the status handler. Fixed most calles to pass NULL to use the default. 2003-09-15 Not Zed * em-folder-browser.c (emfb_activate): remove warning about folder not being loaded yet - it basically never is. * em-popup.c (emp_standard_menu_factory): dont setup any global select menu's yet. they're all handled by folderview atm. 2003-09-11 Not Zed * em-format-html.c (efh_finalise, efh_format_timeout): Use a proper hash free func, otherwise it dont work. 2003-09-11 Not Zed * em-inline-filter.[ch]: A new class which implements an inline snooper via a mime filter, so it is fully streamable. contents merely passes through the filter. * em-format-html.c (efh_finalise): free text substitute parts table. (efh_text_plain): transform a text part into a multipart, scanning for inline data. Keep the multipart around for redraws. (efh_format_timeout): clear the text substitute parts table. 2003-09-10 Not Zed * em-format-html-display.c (efhd_init): hook onto realise so we get the real theme-applied style. (efhd_gtkhtml_realise): get the theme data for colour defaults. Tweak the colour selection to make it work better with dark themes. * em-format-quote.c (emfq_format_source): we need to implement this. (emfq_format_error): we need not to call parent, it doesn't implement it. * message-list.c (message_list_select_uid): don't emit changedhere, let it go through the table cursor change. * em-folder-browser.c (em_folder_browser_show_preview): use folderview.preview_active for this state. (em_folder_browser_show_preview): clear the current message when we turn off the message view, and load the current one when turn it on. * em-folder-view.c (emfv_destroy): zero out preview + list. (emfv_list_message_selected): check preview_active before doing anything. (emfv_edit_cut): (emfv_edit_copy): only run if preview active. * em-format-html.c (efh_format_do): output the proper html headers, etc. 2003-09-10 Jeffrey Stedfast * mail-account-gui.c (mail_account_gui_save): Allow the user to select any fodler for his/her Drafts and Sent folders. Fixes bug #45412. 2003-09-09 Not Zed * em-utils.c (forward_non_attached): implement forward quoted. * em-format-quote.[ch]: New class, em-format-html-quote wont cut it. Sigh. * em-format-html-quote.c (efhq_base_init): move type init stuff here. (efhq_complete): remove, this is a signal. (efhq_multipart_related): we need to override the base class, we don't want to output any attachment html. * em-format-html-print.c (efhp_base_init): move builtin type init to here. * em-format-html.c (efh_init): get xmailer mask from gconf (sigh). (efh_format_header): inmplement most of xmailer mask thing. rupert icon not done yet, probably needs to be done as part of em-format-html-display, sigh. (type_builtin_table[]): add image/svg to supported image formats. (efhd_base_init): move type init to here. (efh_text_enriched): write to the filtered_stream, not stream. * em-format.c (em_format_format_text): oops, actually use any supplied charset. (emf_base_init): move hashtable init into base_init, so we get a new copy for each derived class too. * mail-send-recv.c (build_dialogue): use an eclippedlabel for status. Fixed all uses. 2003-09-08 Not Zed * em-format-html.h (EMFormatHTML): added a simple_headers option, only output headers in basic format. Added hide_headers option, to disable all header output. * em-format-html-quote.c (efhq_format_message): blockquote the contnet, thats how you cite it! (efhq_init): turn on simple headers for html output. (efhq_format_message): output headers and part directly, bypassing parent format_message. (efhq_format_message): implement hide_headers. * em-format-html.c (efh_busy): implement busy. (efh_format_message): implement simple_headers option. (efh_format_text_header): implement simple_headers option. (efh_format_message): move the header formatting stuff into exported em_format_html_format_headers. (efh_format_message): only output headers if not hidden. * em-format.c (emf_busy): base implementation of a new virtual method, returns TRUE if the object is still busy rendering/downloading stuff. * em-utils.c (em_utils_message_to_html): renamed from em_utils_quote_message. Also make sure the html conversion is complete before getting the data. (em_utils_part_to_html): similar, but for parts. (composer_set_body): put in David Woodhouse's timezone in attribution patch. (composer_set_body): we want to quote the part (content), we don't want message headers. (em_utils_message_to_html): add a 'show headers' argument. * folder-browser-factory.c (control_activate): removed. (control_deactivate): removed. * mail-identify.c: * folder-browser.[ch], folder-browser-ui.[ch]: * mail-callbacks.[ch], mail-search.[ch]: * mail-display.[ch], mail-format.[ch], mail-display-stream.[ch]: * message-browser.[ch]: Removed, fixed all users. * component-factory.c (factory): change callbacks to em_utils ones. (configure_folder_popup): comment out some of the reconfigure stuff. Wont have it in 1.6? (handle_external_uri_cb): use em_utils stuff. (user_create_new_item_cb): " (owner_unset_cb): " * em-composer-utils.c (composer_send_cb): rename to em_utils_composer_send_cb, and export, sigh, needed for factory. (composer_save_draft_cb): Same. 2003-09-05 Not Zed * em-format.c (type_builtin_table[]): Add a fallback multipart/* for other types (e.g. multipart/report) (em_format_fallback_handler): fix some bad logic. * em-folder-browser.c: track the pane size if the user changes it. (emfb_set_folder): Added a bit of a mess that will select the first unread message the first time you visit a folder. (emfb_destroy): impelment. clear up outstanding signal handlers. (emfb_list_built): Select the first unread message. this isn't entirely reliable as yet, and not configurable at all. * em-format-html-display.c (em_format_html_display_set_animate) (em_format_html_display_set_caret_mode): guess? :) (efhd_attachment_button): dont desensitise the button, just dont hook onto it, otherwise it looks fugly. * em-folder-view.c (emfv_list_done_message_selected): dont lookup gconf values every time. use g_timeout_add rather than gtk_timeout, remove fixme's. (emfv_setting_notify): listner for gconf changes, reflect internally. (emfv_setting_setup): setup listner for gconf, and read initial settings. (emfv_activate): use local copy of settings rather than snooping gconf. (emfv_caret_mode): propagate caret-mode to display * em-format-html-quote.c (efhq_format_message): remove gconf stuff, our parent already has citation colour. * em-format-html.c (efh_format_timeout): remove gconf stuff. (em_format_html_set_load_http, em_format_html_set_mark_citations): set options on formatter, re-renders if required. (type_builtin_table[]): text/* should go to text/plain, not text/enriched. 2003-09-04 Not Zed * em-utils.c (confirm_expunge): rename it to emu_confirm_expunge and remove leading whitespace before function. (em_utils_expunge_folder): we want to expunge the folder, not empty the trash. Jeff didn't even run this once ... * em-popup.c: Lots of new features, 'global' popup menu's on a per-selection type, via factories, popup selections (targets), a standard factory for many menu items. (emp_apps_open_in): duh, fix uri using logic (emp_standard_menu_factory): only add apps to app list if !requires_terminal. * em-format-html-display.c (efhd_open_in, efhd_popup_free_items): moved to em-popup.c (efhd_popup_save_attachment, efhd_popup_save_message) (efhd_popup_reply_sender, efhd_popup_reply_list) (efhd_popup_reply_all, efhd_popup_forward): (re)moved to em-popup.c (efhd_attachment_popup): use enew popu stuff. (efhd_attachment_button): Scale the icons for mime-type icons. * em-folder-view.c (em_folder_view_disable_mask): removed ... moved to em-popup. (em_folder_view_get_popup_target): new method, get the selection target for the folder view. (emfv_html_popup_saveas, emfv_html_popup_link_open) (emfv_html_popup_link_copy, emfv_html_popup_address_send) (emfv_html_popup_address_add, emfv_format_popup_free_items): moved to em-popup.c (emfv_format_popup_event): use new popup stuff. (emfv_popup): use new popup stuff, but still just use all local menu's. 2003-09-03 Not Zed * em-folder-view.c (emfv_format_popup_event): implement, a popup menu for right-clicking on links and images. (emfv_html_popup_link_copy): implement. (emfv_init): setup an invisible for selection stuff. (emfv_destroy): free invisible * em-utils.c (em_utils_get_proxy_uri): utility to get the current system proxy setting. (emu_set_proxy): implementation. * em-camel-stream.[ch]: removed. * em-format-html.c (efh_url_requested, efh_format_timeout): use em_html_stream rather than em_camel_stream. (emfh_gethttp): set the system proxy on the new stream. (emfh_multipart_related_check): use puri rather than purin inside the loop - duh. (emfh_multipart_related_check): removed 'unrelated part' warning, they can be (and normally are) added by the callbacks. * em-format-html.h (EMFormatHTMLJob): s/estream/stream/ * em-html-stream.[ch]: New subclass of emsyncstream, replacement for em-camel-stream. 2003-09-04 Jeffrey Stedfast * em-folder-browser.c (emfb_folder_expunge): Call em_utils_expunge_folder instead. * em-utils.c (em_utils_expunge_folder): New function. (confirm_expunge): Make private. 2003-09-04 Jeffrey Stedfast * em-folder-browser.c (emfb_folder_expunge): Confirm hat the user wants to expunge. (emfb_empty_trash): Implemented. * em-utils.c (em_utils_prompt_user): Make public (used to be e_question). (em_utils_confirm_expunge): New function to confirm that the user wants to expunge. (em_utils_empty_trash): New function to empty all Trash folders. * em-composer-utils.c: Get rid of e_question and use em-utils' em_utils_prompt_user() function instead. * em-format-html-quote.[c,h]: New formatter for quoting replies/forwards/etc. * em-utils.c (em_utils_quote_message): New function. (composer_set_body): Use the new em_utils_quote_message() function. (em_utils_temp_save_part): Only g_free mfilename if it was malloc'd. * mail-tools.c (mail_tool_quote_message): Removed. (mail_tool_forward_message): Removed. 2003-09-03 Jeffrey Stedfast * em-format.c (em_format_class_remove_handler): New function to remove a mime-type handler from a class. * em-format-html.c (efh_init): Set the CITATION bit for the default html flags. * em-format-html-display.c: Fixed some compiler warnings by adding appropriate includes. (efhd_multipart_signed): Don't write "inlined signature...". 2003-09-03 Not Zed * em-icon-stream.[ch]: New subclass of emsyncstream, write camel stream one side, creates an icon on the other. * em-sync-stream.[ch]: New file, an abstract class for creating write-any-thread-act-gui-thread stuff. 'em-camel-stream' will subclass this. * em-format-html-display.c (efhd_attachment_button): setup a job to write out an icon if the type is an image type, otherwise try and get the icon directly. no caching yet. the system icons aren't scaled properly either. (efhd_write_icon_job): async job to write out image content. 2003-09-02 Not Zed * em-format-html.c (emfh_new_job): renamed to em_format_html_job_new and made public. (emfh_queue_job): renamed to em_format_html_job_queue, and made public. * em-format-html.h: Made EMFormatHTMLJob a public structure. 2003-09-02 Not Zed * em-folder-view.h (struct _EMFolderView): track the uicomponent while we're activated. * em-message-browser.c (em_message_browser_window_new): kill warning. (emmb_init, emmb_finalise): kill printf * em-format-html.c (efh_format_header): Converted code from head from David Woodhouse 's timezone display patch. (efh_format_text_header): support new flag, HEADER_HTML - header alredy in html format. * em-format-html-print.c (em_format_html_print_print): only ref print_config if != NULL. * em-folder-browser.c (emfb_tree_key_press): handle space/backspace in messagelist to scroll the message view. (emfb_create_view_menus): setup view menu's, this should probably live in message-list. (emfb_init): setup the folderbrowser enable map into the list. (emfb_enable_map): folder browser enable map * em-utils.c (em_utils_adjustment_page): new helper to scroll an adjustment up/down 1 page. * em-folder-view.c (emfv_list_double_click): implement, open window. (emfv_list_key_press): implement keybinding overrides. Enhance delete key to undelete if everything is already deleted. (emfv_build_enable_mask): separate out enable mask creation. (emfv_popup): use above to get mask. (emfv_enable_menus): enable/sensitize menus, use the same disable mask system as used for the popups. (emfv_destroy): change to use g_source_remove on seen_id. (emfv_finalise): free up folders, clean up async event thing. (emfv_init): setup an async event handler (emfv_set_folder): handle hook/unhook of folder_changed events. (emfv_folder_changed): proxy folder changed to main thread, ignore the details of what changed. (emfv_gui_folder_changed): update the menu's to reflect any folder changes. (emfv_build_disable_mask): added CAN_THREADED. (em_folder_view_disable_mask): make public (rename from emfv_build_disable_mask). (emfv_enable_menus): changed to work on a list of arrays of enablers, so they can be subclassed. (emfv_init): add our enable map to the ui. (em_folder_view_disable_mask): added support for can hidden (there are hidden messages). 2003-09-01 Not Zed * em-popup.c: New, simple menu-merging popup menu implementation. NOTE: should be temporary, but needs something that has similar merging facilities. * em-folder-view.c (emfv_popup*): added popup callbacks, implement a popup menu, using em_popup. (emfv_message_*): replaced a whole bunch of one-line, or simple functions with macro's to map to the popup implementation. (emfv_tools_vfolder*, emfv_tools_filter*): map to popup equivalents. (emfv_init): drop printf * em-format-html-display.c (efhd_attachment_popup): use the em_popup stuff to build a dynamic menu. * em-utils.c (em_utils_temp_save_part): change assignment order ot kill warning. (emu_get_save_filesel): handle null/empty name by appending / to the filename. 2003-08-30 Not Zed * mail-search.glade: forgot to add this yesterday. * em-utils.h: don't include stuff we dont need to. * em-folder-view.c (emfv_message_forward): just call em_utils_forward_messages. * em-format-html-display.c (em_format_html_display_search): removed unused. (efhd_drag_data_get): cleanup, use em_utils_temp_save_part. (efhd_attachment_popup): quick hack, setup a bunch more menu items, for forwarding inline messages, hook up saving parts, and messages, and hook up the 'open in' menu. (efhd_open_in): implement. * em-utils.c (em_utils_save_message): Renamed to em_utils_save_part. (em_utils_filesel_prompt): removed, it just makes things more complex than having a single response handler. (em_utils_save_part): move dialog stuff here, it also creates a name based on the type of part its given. (emu_get_save_filesel): new method to create a fileselector with standard options. (emu_save_part_response): handle file selector response for save part. (can_save): renamed to emu_can_save (em_utils_save_messages): use get_save_filesel (emu_can_save): handle the path="" case (em_utils_save_part): Add a prompt argument. (filesel_ok_cb): removed. (emu_update_save_path): update the gconf save_dir setting. (em_utils_forward_messages): helper to forward using default style. (forward_non_attached): remove uids argument. (em_utils_forward_message): helper to forward a message using the default forward style. (forward_non_attached): removed folder argument. (em_utils_temp_save_part): helper to save a part to a temporary file, e.g. for dnd, app launch, etc. 2003-08-29 Not Zed * em-folder-view.c: set 'outgoing' properly. * em-folder-browser.c (emfb_tools_subscriptions): enforce a single instance of the subscribe editor. (emfb_subscribe_editor_destroy): clear subscribe editor handle. 2003-08-29 Not Zed * em-camel-stream.c (em_camel_stream_new): Added some optional logging code. (stream_close): and here. (stream_write): and here. * em-folder-browser.c (emfb_init): remove fixme about search bar, its there now. also fixme's about dnd/selection, they are handled in lower-level widgets. (em_folder_browser_show_preview): dont exit if show preview set, but only if it hasn't changed. (emfb_view_hide_selected, emfb_view_show_all) (emfb_view_hide_read): removed some spurious printfs. * Makefile.am (glade_DATA): Added mail-search.glade. FIXME: should all glade files be merged into 1? * em-format-html-display.c (efhd_format_clone): remove search match count code from here - wont be finished rendering at this point anyway. (em_format_html_display_search): new api for running an interactive search popup. (efhd_update_matches, efhd_update_search) (efhd_search_entry_activate, efhd_search_case_toggled) (efhd_search_response): helpers/callbacks for search popup. (efhd_class_init): hook into complete signal on EMFormat. (efhd_complete): complete rendering handler, update match count. * em-folder-view.c: removed fixme about api's - yes, do need two set_folder api's. (emfv_edit_cut, emfv_edit_copy): removed printfs (emfv_edit_paste): removed commented call to html_paste, we never want to do that. 2003-08-29 Jeffrey Stedfast * em-folder-view.c (emfv_message_mark_unread): If there is a mark-as-read timeout handler registered, unregister it here. (emfv_tools_filter_mlist): Implemented. (emfv_tools_filter_recipient): Implemented. (emfv_tools_filter_sender): Implemented. (emfv_tools_filter_subject): Implemented. (emfv_tools_vfolder_mlist): Implemented. (emfv_tools_vfolder_recipient): Implemented. (emfv_tools_vfolder_sender): Implemented. (emfv_tools_vfolder_subject): Implemented. 2003-08-28 Not Zed * em-folder-browser.c (emfb_search_menu_activated) (emfb_search_config_search, emfb_search_search_activated) (emfb_search__query_changed): Implement search-bar callbacks. (emfb_init): setup search bar. 2003-08-28 Not Zed * em-folder-view.c (emfv_message_reply): common reply code entry point, also implement simple reply-to-highlighted text (currently disabled). (emfv_activate): disable resend message on non-sent folders. (emfv_message_reply_all, emfv_message_reply_list) (emfv_message_reply_sender): use message_reply for common code. (em_folder_view_open_selected): in drafts or outbox, edit the message instead. (emfv_activate): force a sync on deactivate. * em-utils.c (em_utils_selection_get_mailbox): get mailbox (message/rfc822?) selection data. (em_utils_read_messages_from_stream): helper to move stuff from a mbox stream to a folder. (em_utils_folder_is_drafts, em_utils_folder_is_sent) (em_utils_folder_is_outbox): from folder browser helpers for customising the user experience. * message-list.c (message_list_construct): hook onto dnd stufd. (ml_tree_drag_data_get): implement drag sending. (ml_tree_drag_data_received): implement drag recieving. * em-format-html-display.c (efhd_drag_data_get): implemented. (efhd_drag_data_delete): implemented. (efhd_attachment_button): setup dnd callbacks. 2003-08-28 Jeffrey Stedfast * em-folder-view.c (emfv_destroy): override the destroy method for GtkObject - unregister the mark-as-seen timeout if one is currently registered. (emfv_list_done_message_selected): Add the mark-as-seen timeout functionality here. (emfv_format_link_clicked): Implemented. 2003-08-27 Jeffrey Stedfast * em-utils.c (get_reply_list): Implemented. 2003-08-27 Not Zed * em-message-browser.c (emmb_activate): disable Edit->Paste menu always. * em-folder-browser.c (emfb_edit_paste): do a message-list paste, not a html one. (emfb_edit_cut, emfb_edit_copy, emfb_edit_paste): Moved to folder-view. * message-list.c (message_list_paste): trigger a paste action. (message_list_set_folder): added a uri argument, and save it internally, fixed all callers. (message_list_finalise): free the folder uri. * em-utils.c (em_utils_selection_set_mailbox): New helper to set the current selection as text in a berkely mailbox format. (em_utils_write_messages): helper to write stuff to a stream in mbox format. 2003-08-27 Not Zed * message-list.c (on_selection_changed_cmd): own/deown the primary selection when it changes. (message_list_init): init private data and invisible for selection. (message_list_destroy): free invisible. (message_list_finalise): free private data. (get_selected_cb): removed. (message_list_copy): new method to do copy and cut. cut/copy to the clipboard. (ml_selection_clear_event): clear the right selection when requested. (message_list_has_primary_selection): helper to find out if the message-list has the selection. is there a gtk way for this? 2003-08-26 Not Zed * mail-local.c (mlf_meta_set, mlf_meta_get): proxy meta-data stuff to subservient folder. 2003-08-23 Not Zed * em-folder-view.c (emfv_init): init preview here always. 2003-08-25 Jeffrey Stedfast * em-folder-view.c (em_folder_view_print): Use e_dialog_set_transient_for(). (emfv_message_delete): Fixed a FIXME. * em-folder-browser.c (emfb_edit_cut): Implemented. (emfb_edit_copy): Implemented. (emfb_edit_paste): Implemented. * em-format-html-display.c (em_format_html_display_cut): New function. (em_format_html_display_copy): New. (em_format_html_display_paste): New. 2003-08-25 Jeffrey Stedfast * em-utils.c (em_utils_flag_for_followup): Use e_dialog_set_transient_for(). (em_utils_filesel_prompt): Same. (post_reply_to_message): Here too. (em_utils_edit_filters): Same. (create_new_composer): And here. (em_utils_compose_new_message_with_mailto): Here too. (em_utils_post_to_url): " (redirect_get_composer): Same. (reply_get_composer): Again... * em-folder-browser.c (emfb_tools_filters): Implemented. * em-utils.c (em_utils_edit_filters): New function to open the filter editor dialog. 2003-08-22 Jeffrey Stedfast * em-utils.c (em_utils_flag_for_followup): Implemented. (em_utils_flag_for_followup_clear): Implemented. (em_utils_flag_for_followup_completed): Implemented. * em-folder-view.c (emfv_message_followup_flag): Implemented. (emfv_message_followup_clear): Implemented. (emfv_message_followup_completed): Implemented. 2003-08-22 Not Zed * em-camel-stream.c (em_camel_stream_new): now take the gtkhtml too, and hook onto it's destroy so we don't try writing anymore after its gone. (stream_write, stream_flush, stream_close, emcs_gui_received): NOOP if the gtkhtml has been destroyed. (emcs_gtkhtml_destroy): null out the stream when the gtkhtml gets destroyed, it is no longer valid. (emcs_gui_received): dont try to soak all outstanding events, it always runs synchronous anyway, just get one and exit. * em-format-html.c (efh_gtkhtml_destroy): if the gtkhtml gets destroyed, abort any pending timeouts/processing. (efh_format_source): fixed implementation to write out all headers. (efh_multipart_related, emfh_multipart_related_check): separate checking for unused parts into a separate job, which is run after previous ones are executed. keep track of visibility tree level in job, etc. 2003-08-22 Jeffrey Stedfast * em-folder-browser.c (emfb_mail_compose): Implemented. (emfb_mail_post): Implemented. * em-utils.c (em_utils_compose_new_message): New function. (em_utils_compose_new_message_with_mailto): New. (em_utils_post_to_url): New. 2003-08-21 Not Zed * subscribe-dialog.glade: removed the text in the progress thing. It never showed up anyway and caused weird resizing stuff when the progress bar was active. * em-subscribe-editor.c: Found the correct version of the new subscribe code (on branch, duh!), and integrated it. (sub_selection_changed): Sensitise buttons based on selection. * em-format-html.c (efh_text_plain, efh_text_enriched) (efh_write_text_html): Use format_text for text output. (efh_write_image): use explicit image writer. (emfh_gethttp): added some progress stuff. (efh_format_do): maintain the accessible uri tree during jobs. (efh_url_requested): store the current uri accessibility tree node in the job, so it can be properly set for sub-jobs. (emh_multipart_related): moved here, can't use super-class version as it doesn't know about async jobs. (type_buildin_table[]): Added image/jpg and image/jpeg for the brokenmailers out there and to reduce the whinge. * em-format.c (em_format_format_content): For text parts, perform default charset/charset snooping/decoding. No longer closes the stream once complete. (emf_write_related): close stream ourselves. 2003-08-21 Jeffrey Stedfast * em-folder-view.c (emfv_message_forward): Implemented. (emfv_message_forward_attached): Implemented. (emfv_message_forward_inline): Implemented. (emfv_message_forward_quoted): Implemented. (emfv_message_redirect): Implemented. (emfv_message_post_reply): Implemented. (emfv_message_reply_all): Implemented. (emfv_message_reply_list): Implemented. (emfv_message_reply_sender): Implemented. (emfv_message_resend): Implemented. (emfv_message_saveas): Implemented. * em-composer-utils.c: New source file containing all the composer send/draft callback mess. * em-utils.c (em_utils_uids_copy): New convenience function to copy a list of uids. (em_utils_uids_free): New convenience function to free a list of uids. (em_utils_save_message): New function to save a CamelMimeMessage (prompts the user for a location to save). (em_utils_save_messages): New function to save a list of messages (given a folder and list of uids). (em_utils_configure_account): Configure a new account... (em_utils_check_user_can_send_mail): Make sure the user has a transport setup. (em_utils_edit_message): New function to edit a message object. (em_utils_edit_messages): New function to open a composer to edit each message. (em_utils_forward_attached): New function to forward messages as an attachment, (em_utils_forward_inline): Forward a bunch of messages inline. (em_utils_forward_quoted): Forward a bunch of messages quoted. (em_utils_redirect_message): Redirect a message object. (em_utils_redirect_message_by_uid): Redirect a message given a folder and uid. (em_utils_reply_to_message): Reply to a message object. (em_utils_reply_to_message_by_uid): Reply to a message given a folder and uid. (em_utils_post_reply_to_message_by_uid): Post a reply to a message given a folder and uid. * mail-ops.c (filter_folder_free): Use em_utils_uids_free(). (transfer_messages_free): Same. (get_messages_free): Here too. (save_messages_free): Same. 2003-08-20 Not Zed * em-subscribe-editor.[ch]: new widget, a dialog for editing subscriptions. * em-format-html.c (efh_format_done): emit a complete when done. * em-format.c (emf_class_init): Added a 'complete' signal, so that printing knows when to print. * em-format-html-print.c (em_format_html_print_print): Changed to take the message and source formatter too. Runs an async render then prints. 2003-08-19 Not Zed * em-*.c: stacks more changes, added some bonobo menu setup, and implemented the trivial functions. * em-message-browser.[ch]: New message browser, inherits from em-folder-view. Basically works. * message-list.c (message_list_select_uid): if we're selecting while still loading, setup a pending select. (regen_list_free): Check for a pending select, and select the message if we're now idle. * em-folder-view.c (em_folder_view_set_message, em_folder_view_set_folder): Make virtual macro's. (emfv_control_activate): added hook to enable bonobo state when setup. * em-format.c (emf_format_clone): base implementation, just clears state data. * em-format.h: change ::format to ::format_clone. Make em_format_format_clone a macro/virtual method. * mail-mt.c (em_channel_setup): new function to setup i/o channels, so we can control the recursive flag. leave off for now. (mail_msg_init): setup MsgPort channels using above. * em-format-html.c (efh_format): serialise/de-recursify formatting via a timeout function. (efh_format_timeout): keep polling to find out if cancellation is complete, then kick off a new render. 2003-08-18 Not Zed * em-*.c: more updates, incl threaded formatting queue. 2003-08-18 Jeffrey Stedfast * em-format-html-display.c (em_format_html_display_zoom_in): New method to zoom-in on the gtkhtml contents. (em_format_html_display_zoom_out): Same but for zoom-out (em_format_html_display_zoom_reset): You get the idea. 2003-08-12 Jeffrey Stedfast * mail-callbacks.c (invert_selection): Use message_list_invert_selection(). (select_thread): Use message_list_select_thread(). (select_all): Use message_list_select_all(). * message-list.c (message_list_select_all): New function. (message_list_select_thread): New function. (message_list_invert_selection): New function. 2003-08-12 Jeffrey Stedfast * mail-session.c: Synced up with HEAD. * component-factory.c: * mail-folder-cache.[c,h]: * mail-tools.h: * mail-ops.[c,h]: * mail-send-recv.c: * mail-format.[c,h]: * mail-display.c: * mail-account-gui.c: * mail-local.c: * mail-offline-handler.c: * subscribe-dialog.c: 2003-08-12 Jeffrey Stedfast * em-format-html-display.c: Fixed some compiler warnings. * em-format.c: Updated for new mime-parser changes made to HEAD. * em-folder-view.c: Fixed some compiler warnings. * em-format-html.c: Fixed some compiler warnings. 2003-08-06 Not Zed * em-format-html-display.c (efhd_format_attachment): Added bonobo embeddables. 2003-08-01 Harry Lu *Fix for bug #6951 * mail-display.c (launch_cb): Bypass the new added menu item. (save_all_parts_cb): New function. Do the real save-all work. (save_all_parts): New function. Get the directory to save to. (save_all_cb): New function. The call-back function for the new added menu item. (pixmap_press): Add the new menu item "Save All Attachment...". (ptr_array_free_notify): A simple wrapper function to free the pointer array. (do_attachment_header): Save attachment pointer in an array for "Save All Attachment" use. 2003-08-01 Yuedong Du * message-browser.c (on_key_press): close mail message window using 'ESC' key, fix bug #47087 2003-07-28 Jeffrey Stedfast * mail-crypto.c: Removed smime functions as they were stale. 2003-07-25 Jeffrey Stedfast * message-browser.c (message_browser_new): Handle our own Delete key presses. Fixes bug #45597. 2003-07-23 Jeffrey Stedfast * mail-format.c (mail_format_data_wrapper_write_to_stream): Revert prior changes. 2003-07-23 Dan Winship * folder-browser.c (message_list_drag_data_get): Fix type warnings (folder_browser_toggle_caret_mode): Remove unused variable. * folder-browser-ui.c (basename): remove unused function * mail-account-gui.c (mail_account_gui_build_extra_conf): Fix warnings * mail-callbacks.c (empty_trash): Remove unused variable. * mail-display.c: #include gal/widgets/e-gui-utils.h for e_auto_kill_popup_menu_on_selection_done * mail-importer.c: #include e-util/e-path.h for e_path_to_physical * mail-session.c (main_play_sound): don't declare filename to be const and then free it. * mail-vfolder.c (vfolder_edit_rule, vfolder_gui_add_rule): Fix casts * message-list.c (build_flat_diff): Fix a typo in the non-BROKEN_ETREE code 2003-07-16 Jeffrey Stedfast * mail-format.c (handle_multipart_encrypted): We don't have camel_pgp_mime_is_rfc2015_encrypted() anymore so just look at the protocol for now. (mail_format_data_wrapper_write_to_stream): Updated for the new way camel handles content objects. 2003-07-15 Federico Mena Quintero * folder-browser.c (message_list_drag_data_received): Handle invalid URIs, or more likely, the last empty element in a URI list --- g_strsplit() will yield { "uri1", "", NULL }. Fixes #46398. * component-factory.c (destination_folder_handle_drop): Likewise. 2003-07-15 Yuedong Du * mail-config.c: (config_write_style), (mail_config_init): remove the use of caret mode widget style. * mail-display.c: (display_notify), (mail_display_new): use new gtkhtml api to set caret mode. 2003-07-11 Antonio Xu * folder-browser-ui.c: Change the EditPaste mask to IS_0MESSAGE so that it is always activatable. Fixes bug #46018. 2003-07-04 Maxx Cao ** For bug #41839 * mail-display.c (do_attachment_header): Attachment buttons made accessable with keyboard (focusable). "Inline" button is disabled when attachment can't be viewed inline. (do_signature): Signature button made accessable with keyboard (focusable). (button_press): Function changed to an event callback (originally gtkbutton signal callback). (popup_menu_placement_callback): Function added to place popup menu (of attachment) beside button when activated by keyboard. 2003-07-10 Yuedong Du * evolution-mail.schemas: add a gconf key corresponding to newly introduced caret mode of gtkhtml widget. * folder-browser-ui.c: new verb handling, corresponding the new menu entry for the caret mode flag. * folder-browser.h: declaration of new verb handler to the menu entry that turn caret mode on/off. The function just set the new introduced gconf key. * folder-browser.c: ditto * mail-config.c: lstione to the new gconf key, and when caret mode flag is set/unset,change the style of gtkhtml widget. see bug #44607. 2003-07-09 Jeffrey Stedfast * mail-crypto.h: Removed camel-pgp-mime.h, it no longer exists. * mail-format.c: Remove camel-pgp-mime.h 2003-07-07 Jeffrey Stedfast * mail-callbacks.c (mail_generate_reply): Use camel_strcase_hash/equal. * upgrade-mailer.c: Updated to use the camel-file-utils version of mkdir. 2003-07-02 Jeffrey Stedfast * mail-tools.c (mail_tool_forward_message): Strip the signature from the body text. Fixes bug #45523. While we're here, also fix the code to quote exactly the same way as the mail_tool_quote_message() function. (mail_tool_quote_message): The last arg should not be 'want_plain', because that arg is for whether or not the body should be quoted. * folder-browser.c (message_list_drag_data_get): Apply a From-filter when dragging as a test/uri-list and message/rfc822. Fixes bug #45617. Also free the uids ptrarray for the text/uri-list case. 2003-07-01 Dan Winship * mail-display.c (pixbuf_for_mime_type): Gone (pixbuf_gen_idle): Use e_icon_for_mime_type instead. 2003-06-27 Jeffrey Stedfast * message-list.c (filter_date): Use the newer utf8 versions of the e_strftime*() functions since our format strings are all now in UTF-8. * mail-display.c (mail_display_render): Use the newer e_utf8_strftime_fix_am_pm(). * mail-callbacks.c (mail_generate_reply): Use e_utf8_strftime(), otherwise we can end up with invalid utf-8. 2003-06-25 Radek Doulik * mail-config.c (config_write_style): provide hardcoded default (red) spell error color 2003-06-24 Jeffrey Stedfast Might fix bug #45368 but I wouldn't bet on it. * message-browser.c (message_browser_new): Record the signal id for folder_loaded. (message_browser_folder_loaded): disconnect by id rather than searching for the handler. Save the id of the message_list_built signal handler. (message_browser_message_list_built): Disconnect the handler by id. (message_browser_destroy): Disconnect the signal handlers by id. 2003-06-20 Not Zed ** See bug #43887 * mail-format.c (mail_get_message_body): handle text/enriched and text/richtext explictly, and dont treat them as text/plain. 2003-06-23 Radek Doulik * mail-config.c (config_write_style): add EvolutionMailPrintHTMLWidget style assignment * mail-callbacks.c (do_mail_print): set printing widget name 2003-06-23 Dan Winship * message-list.c (on_selection_changed_cmd): Save the idle_id 2003-06-23 Larry Ewing * folder-browser.c (do_message_selected): make sure not to strcmp a possibly NULL string. 2003-06-19 Not Zed ** See bug #45063 * folder-browser.c (do_message_selected): dont re-load if the same message gets selected again as one we've already shown. Etree sends out selection changed events even when when it hasn't. 2003-06-18 Jeffrey Stedfast * message-list.c (hide_save_state): Only save state if we have a folder reference. Fixes some warnings about casting a NULL object to a CamelFolder. 2003-06-16 Jeffrey Stedfast * message-list.c (ml_tree_value_at): Don't display an unread icon for a parent message status if it has unread children but has been read itself. Instead, show that we have unread children by just making the message test bold (which it was already doing, so yay... this was easy). Fixes bug #42630. 2003-06-16 Not Zed ** See bug #44609 * mail-vfolder.c (vfolder_edit_rule): put the ok/cancel buttons in the stupid gnome 2 order. ** See bug #33593 * message-list.c (on_selection_changed_cmd): also listedn to selection changed events, since the etable api has changed. (get_selected_cb): helper for above. (message_list_construct): hook to selection change signal. * mail-callbacks.c (composer_send_queued_cb): Unref the composer to match the ref composer_send_cb(); ** See bug #44519 * message-browser.c (message_browser_message_list_built): We want to disconnect from the messagelist, not folderbrowser signal. 2003-06-11 Jeffrey Stedfast * mail-format.c (format_mime_part): We only really want to use mail_identify_mime_part() if the content-type is application/octet-stream - any other type (if it doesn't have a handler) should just force the user to save to disk. (handle_text_plain): Only pay attention to format=flowed if the mime-type is text/plain (handle_text_plain is the generic text handler, so we might be processing parts that are not really text/plain, thus the format param may have different meaning for those other textual types). 2003-06-11 Larry Ewing * mail-format.c (mail_lookup_handler): free the application list if we are bailing. * mail-send-recv.c (free_folder_info): free the info structure as well. 2003-06-06 Jeffrey Stedfast * message-tag-followup.c (get_week_start_day): Use mail-config's gconf client. (target_date_new): Same. * message-list.c (message_list_set_folder): Use mail-config's gconf client. (mail_regen_list): Same. * mail-tools.c (mail_tool_quote_message): Use mail-config's gconf client. (mail_tool_forward_message): Same. * mail-session.c (main_get_filter_driver): Use mail-config's gconf client. * mail-preferences.c (mail_preferences_init): Use mail-config's gconf client. (mail_preferences_finalise): Don't unref the gconf client. * mail-format.c (write_headers): Use mail-config's gconf client. (mail_format_data_wrapper_write_to_stream): Same. (handle_text_plain): And here. * mail-display.c (save_data_cb): Use mail-config's gconf client. (save_part): Same. (on_url_requested): Here too. (mail_text_write): And here. (mail_display_init): And here. (mail_display_destroy): Here too. (mail_display_new): Again here. * mail-composer-prefs.c (sig_add_cb): Use mail-config's gconf client. (mail_composer_prefs_construct): Same. * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): Use mail-config's gconf client. (ask_confirm_for_empty_subject): Same. (ask_confirm_for_only_bcc): Here too. (composer_get_message): And here. (create_msg_composer): Again here. (mail_generate_reply): Same. (forward): And here. (transfer_msg_done): " (delete_msg): " (confirm_expunge): " * component-factory.c (owner_unset_cb): Use mail-config's gconf client. * folder-browser-ui.c (folder_browser_ui_add_message): Use the mailer's gconf client. (folder_browser_ui_add_list): Same. (folder_browser_ui_add_global): Here too. * folder-browser.c (save_cursor_pos): Use the mailer's gconf client. (folder_browser_set_message_preview): Same. (folder_browser_toggle_preview): Here too. (folder_browser_toggle_threads): And here. (folder_browser_toggle_hide_deleted): Here as well. (folder_browser_set_message_display_style): And here. (fb_resize_cb): Here. (paned_realised): And here. (done_message_selected): And everywhere... * mail-account-gui.c (sig_add_new_signature): Use the mailer gconf client. * mail-config.c (mail_config_get_gconf_client): New function to return the global GConfClient used by the mailer. (mail_config_write_on_exit): On exit, free our objects and such. (mail_config_signature_run_script): Use config->gconf. 2003-06-04 Jeffrey Stedfast * mail-callbacks.c (invert_selection): Get rid of the if-focused code, that will always prevent the etree from getting the selection inverted because the menu item will always have focus at this time. Fix for bug #43972. 2003-06-11 Not Zed ** See bug #22542 * component-factory.c (storage_create_folder): If we're creating a folder on a vstore, popup a vFolder editor rather than failing. 2003-06-05 Not Zed ** Part of #42691. * importers/Makefile.am (BUILT_SOURCES): added server_DATA. * Makefile.am (%.server.in): create a proper implicit rule for temporary .in file. 2003-06-04 Not Zed ** See bug #43974 * mail-tools.c (mail_tool_do_movemail): use a proper CamelURL to decode the uri, not hacky strcmp stuff. * mail-account-gui.c (extract_values): if we have an conf_entry, ignore username, hostname, and path ones, as these are handled implicitly in the url itself. Came about because of the fix for #42838. 2003-06-03 Federico Mena Quintero * mail-search.c (mail_search_construct): Put the buttons in HIG order; don't replace the label of the stock Find button. Also, add Escape as a keybinding for the Close button (see why GTK+ is on crack on b.g.o #74221 and #101293).