aboutsummaryrefslogtreecommitdiffstats
path: root/mail
diff options
context:
space:
mode:
Diffstat (limited to 'mail')
-rw-r--r--mail/ChangeLog17137
-rw-r--r--mail/ChangeLog.pre-1-424750
-rw-r--r--mail/Makefile.am1
-rw-r--r--mail/e-mail-attachment-bar.c8
-rw-r--r--mail/e-mail-backend.c34
-rw-r--r--mail/e-mail-browser.c16
-rw-r--r--mail/e-mail-label-list-store.c2
-rw-r--r--mail/e-mail-local.c2
-rw-r--r--mail/e-mail-local.h3
-rw-r--r--mail/e-mail-migrate.c2373
-rw-r--r--mail/e-mail-reader-utils.c35
-rw-r--r--mail/e-mail-reader.c31
-rw-r--r--mail/e-mail-reader.h2
-rw-r--r--mail/e-mail-store.c20
-rw-r--r--mail/e-mail-store.h2
-rw-r--r--mail/e-mail-tag-editor.h3
-rw-r--r--mail/em-account-editor.c70
-rw-r--r--mail/em-composer-utils.c152
-rw-r--r--mail/em-composer-utils.h3
-rw-r--r--mail/em-config.c15
-rw-r--r--mail/em-config.h3
-rw-r--r--mail/em-event.c19
-rw-r--r--mail/em-filter-folder-element.c4
-rw-r--r--mail/em-filter-rule.c11
-rw-r--r--mail/em-filter-source-element.c8
-rw-r--r--mail/em-folder-browser.c.dead1089
-rw-r--r--mail/em-folder-browser.h.dead62
-rw-r--r--mail/em-folder-properties.c249
-rw-r--r--mail/em-folder-properties.h2
-rw-r--r--mail/em-folder-selector.c23
-rw-r--r--mail/em-folder-tree-model.c86
-rw-r--r--mail/em-folder-tree-model.h2
-rw-r--r--mail/em-folder-tree.c93
-rw-r--r--mail/em-folder-tree.h2
-rw-r--r--mail/em-folder-utils.c66
-rw-r--r--mail/em-folder-utils.h3
-rw-r--r--mail/em-folder-view.c.dead1014
-rw-r--r--mail/em-folder-view.h.dead166
-rw-r--r--mail/em-format-hook.c5
-rw-r--r--mail/em-format-html-display.c56
-rw-r--r--mail/em-format-html-print.c2
-rw-r--r--mail/em-format-html.c156
-rw-r--r--mail/em-format-html.h4
-rw-r--r--mail/em-html-stream.c76
-rw-r--r--mail/em-html-stream.h23
-rw-r--r--mail/em-inline-filter.c178
-rw-r--r--mail/em-inline-filter.h44
-rw-r--r--mail/em-junk.h3
-rw-r--r--mail/em-subscribe-editor.c524
-rw-r--r--mail/em-sync-stream.c92
-rw-r--r--mail/em-sync-stream.h24
-rw-r--r--mail/em-utils.c214
-rw-r--r--mail/em-utils.h7
-rw-r--r--mail/em-vfolder-rule.c1
-rw-r--r--mail/evolution-mail.schemas.in19
-rw-r--r--mail/importers/Makefile.am1
-rw-r--r--mail/importers/elm-importer.c3
-rw-r--r--mail/importers/evolution-mbox-importer.c158
-rw-r--r--mail/importers/mail-importer.c19
-rw-r--r--mail/importers/mail-importer.h9
-rw-r--r--mail/importers/pine-importer.c3
-rw-r--r--mail/mail-autofilter.c38
-rw-r--r--mail/mail-autofilter.h2
-rw-r--r--mail/mail-component.c.dead385
-rw-r--r--mail/mail-component.h.dead106
-rw-r--r--mail/mail-config.h2
-rw-r--r--mail/mail-config.ui186
-rw-r--r--mail/mail-dialogs.ui100
-rw-r--r--mail/mail-folder-cache.c917
-rw-r--r--mail/mail-folder-cache.h93
-rw-r--r--mail/mail-mt.c3
-rw-r--r--mail/mail-mt.h3
-rw-r--r--mail/mail-ops.c193
-rw-r--r--mail/mail-ops.h11
-rw-r--r--mail/mail-send-recv.c46
-rw-r--r--mail/mail-send-recv.h2
-rw-r--r--mail/mail-session.c150
-rw-r--r--mail/mail-session.h4
-rw-r--r--mail/mail-tools.c29
-rw-r--r--mail/mail-tools.h3
-rw-r--r--mail/mail-vfolder.c186
-rw-r--r--mail/mail-vfolder.h3
-rw-r--r--mail/mail.error.xml48
-rw-r--r--mail/message-list.c525
-rw-r--r--mail/message-list.h28
85 files changed, 2728 insertions, 49517 deletions
diff --git a/mail/ChangeLog b/mail/ChangeLog
deleted file mode 100644
index 90dceba510..0000000000
--- a/mail/ChangeLog
+++ /dev/null
@@ -1,17137 +0,0 @@
-2009-05-06 Jeff Cai <jeff.cai@sun.com>
-
- ** Fix for bug #524497
- * em-composer-utils.c: (guess_account):
- Change the order getting an account
-
- The original order is:
- 1. The account in 'To' of the message.
- 2. The account of the message source.
- 3. The account of the folder source.
-
- The new order is:
- 1. The account of the folder source.
- 2. The account of the message source.
- 3. The account in "To' of the message
-
-2009-04-28 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #572348
-
- * em-filter-rule.c: (part_combobox_changed):
- * em-filter-source-element.c: (source_changed):
- Fix breakage of filter options.
-
-2009-04-28 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #579550
-
- * mail-session.c: (main_get_filter_driver):
- Do not mark messages recognized as junk Seen, to let user notice new
- messages in a junk folder.
-
-2009-04-27 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #579635
-
- * message-list.c: (regen_list_exec): Do not keep last junked messages
- in a message list for folders not showing junks.
-
-2009-04-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #579306
-
- * em-folder-utils.c: (em_folder_utils_delete_folder):
- Do not free uninitialized variable.
-
-2009-04-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #563954
-
- * message-list.c: (regen_list_exec): Sort UIDs before
- using them to obtain proper order when without sorting.
-
-2009-04-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #552583
-
- * mail-config.c: (mc_get_account_by), (get_source_url_string),
- (get_transport_url_string), (mail_config_get_account_by_source_url),
- (mail_config_get_account_by_transport_url):
- Let the provider compare urls.
-
-2009-04-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #572348
-
- * mail-config.glade:
- * mail-dialogs.glade:
- * em-composer-prefs.h:
- * em-composer-prefs.c:
- * em-subscribe-editor.c:
- * em-filter-editor.c:
- * em-filter-rule.c:
- * em-filter-source-element.c:
- * em-mailer-prefs.h:
- * em-mailer-prefs.c:
- * message-tag-followup.h:
- * message-tag-followup.c:
- Remove deprecated Gtk+ symbols.
-
-2009-04-15 Chenthill Palanisamy <pchenthill@novell.com>
-
- * mail/mail-ops.c: Corrected a typo error.
-
-2009-04-13 Chenthill Palanisamy <pchenthill@novell.com>
-
- Fixes #467659 (bnc)
- * mail/mail-mt.c:
- * mail/mail-ops.c: Set the description for send mail
- operation.
-
-2009-04-13 Chenthill Palanisamy <pchenthill@novell.com>
-
- Fixes #471083 (bnc)
- * mail/em-folder-utils.c:
- * mail/mail-folder-cache.c:
- * mail/mail-folder-cache.h: Do not allow deleting
- system folders.
-
-2008-04-04 Tobias Mueller <tobiasmue@gnome.org>
-
- ** Fix for bug #569765
-
- * message-list.c: Don't keep the selected message in the message
- list if it is removed from the folder.
- Patch by Matt McCutchen <matt@mattmccutchen.net>
-
-2009-04-02 Milan Crha <mcrha@redhat.com>
-
- * em-folder-tree.c: (em_folder_tree_get_selected_folder):
- Do not ask for a folder when no folder selected.
-
-2009-03-31 Hiroyuki Ikezoe <poincare@ikezoe.net>
-
- ** Fix for bug #576921
-
- * mail/em-mailer-prefs.h: Remove needless GtkListStore objects.
-
-2009-03-28 Hiroyuki Ikezoe <poincare@ikezoe.net>
-
- ** Fix for bug #576921
-
- * mail/em-mailer-prefs.h: Remove needless GtkListStore objects.
- * mail/em-mailer-prefs.c: Use dispose instead of finalize.
- (em_mailer_prefs_dispose): Unref header_list_store.
- (init_junk_tree), (init_label_tree): Returns gboolean value instead
- of GtkListStore object. Unref GtkListStore right after
- gtk_tree_view_set_model.
-
-2009-03-28 Hiroyuki Ikezoe <poincare@ikezoe.net>
-
- ** Fix for bug #576845
-
- * em-mailr-prefs.c: (init_junk_tree):
- Call jh_tree_refill instead of label_tree_refill.
-
-2009-03-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #552583
-
- * mail-config.c: (only_username), (mail_config_account_url_equal):
- Compare only user names, without a domain part, if such exists.
-
-2009-03-19 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #504767
-
- * em-folder-utils.h: (em_folder_utils_create_folder):
- * em-folder-utils.c: (em_folder_utils_create_folder):
- * em-folder-selector.c: (emfs_response):
- Inherit modality from a parent's window, if any.
- * em-folder-browser.c: (emfb_folder_create):
- * em-folder-tree.c: (emft_popup_new_folder):
- * mail-component.c: (create_item):
- Propagate changes in function prototype.
-
-2009-03-08 David Planella <david.planella@gmail.com>
-
- Added Catalan translation of the Evolution welcome e-mail
-
- * default/Makefile.am: Added Catalan (ca) to the list of
- subdirectories
- * default/ca/Inbox: Added Catalan translation by David Planella
- * default/ca/Makefile.am: Created Makefile template
-
-2009-03-04 Milan Crha <mcrha@redhat.com>
-
- * mail-ops.c: (empty_trash_exec): Do not unref NULL object.
-
-2009-03-02 Matt McCutchen <matt@mattmccutchen.net>
-
- * evolution/mail/em-folder-view.c:
- * evolution/mail/em-utils.c:
- * evolution/mail/em-utils.h:
- * evolution/mail/em-popup.c:
- Revert evolution revision 37063 (workaround for bug 563867).
-
- ** Part of the fix for bug #549838
-
-2009-02-26 Andre Klapper <a9016009@gmx.de>
-
- * message-tag-followup-c:
- Remove deprecated gtk_combo_set_case_sensitive() call as FALSE
- IS already the default value for the case-sensitive property.
-
-2009-02-25 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #572268
-
- * em-subscribe-editor.c: (sub_fill_level):
- Do not duplicate "Loading..." node when adding to existing node.
-
-2009-02-25 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #563212
-
- * em-utils.c: (try_open_e_book_cb), (try_open_e_book),
- (is_local), (em_utils_in_addressbook), (em_utils_contact_photo):
- Ensure empty GError before filling it. Check if group is local based
- on its base_uri. Adapt to new e_book_cancel behaviour.
-
-2009-02-23 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #572543
-
- * em-popup.c: (emp_standard_menu_factory):
- Always look for alternative apps for application/octet-stream.
-
-2009-02-11 Andre Klapper <a9016009@gmx.de>
-
- * em-folder-browser.c:
- * em-migrate.c:
- Substitute some deprecated gtk+ functions.
-
-2009-02-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #569700
-
- * em-format-html.c: (emfh_gethttp):
- Stop reading from a network when operation was canceled.
-
-2009-02-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #333716
-
- * em-format-html.c: (emfh_gethttp):
- Do not store incomplete or broken files in a cache.
-
-2009-02-10 Milan Crha <mcrha@redhat.com>
-
- * em-format-html-display.c: (efhd_format_secure):
- Format signature/encryption information nicer.
-
-2009-02-09 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #555888
-
- * mail-config.glade:
- * em-network-prefs.h: (struct _EMNetworkPrefs):
- * em-network-prefs.c: (emnp_parse_ignore_hosts),
- (emnp_load_sys_settings), (notify_proxy_type_changed),
- (em_network_prefs_construct):
- Do not overwrite user settings with system proxy settings.
- Register signals at the end, when all widgets are read.
- Hide socks settings, it is not used at the moment.
-
- * em-utils.h: (em_utils_get_proxy_uri):
- * em-utils.c: (em_utils_get_proxy_uri), (emu_proxy_setup):
- * em-format-html.c: (emfh_gethttp):
- Use proxy configurable within Evolution.
-
-2009-02-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #548623
-
- * mail-config.glade:
- * em-network-prefs.h:
- * em-network-prefs.c: (emnp_set_sensitiveness),
- (emnp_load_sys_settings), (notify_proxy_type_changed),
- (em_network_prefs_construct), (emnp_set_markups):
- No auto-proxy at the moment.
-
-2009-02-05 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #554458
-
- * em-format.c: (em_format_describe_part):
- Make content type from a mime type first.
-
-2009-02-04 Gilles Dartiguelongue <gdartigu@svn.gnome.org>
-
- ** Fix for bug #568176
-
- * em-migrate.c: (em_migrate_setup_progress_dialog),
- (em_migrate_close_progress_dialog), (em_migrate_set_folder_name),
- (em_migrate_local_folders_1_4), (migrate_to_db):
- Make the migration dialog look better.
-
-2009-02-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #569986
-
- * mail/em-format-html-print.c: Handle printers while doing attachment
- bar rendering.
- * mail/em-format-html.c:
- * mail/em-format.c:
- * mail/em-format.h:
-
-2009-02-02 Matt McCutchen 2 <matt@mattmccutchen.net>
-
- ** Fix for bug #567935
-
- * em-folder-tree.c (emft_popup_uvfolder): Don't use an uninitialized
- variable.
-
-2009-02-01 Matthew Barnes <mbarnes@redhat.com>
-
- * em-event.c:
- * em-event.h:
- * em-migrate.c:
- Fix compiler warnings.
-
-2009-02-01 Johnny Jacob <jjohnny@novell.com>
-
- * em-event.h (struct _EMEventTargetFolderBrowser): Added.
- * em-event.c (em_event_target_new_folder_browser): Added.
- (EEventHookTargetMask emeh_folder_browser_masks): Added.
- * em-folder-browser.c (emfb_init): New e-plugin Hook point.
-
-2009-01-30 Srinivasa Ragavan <sragavan@novell.com>
-
- * message-list.c: (regen_list_exec): Fix compiler warnings
-
-2009-01-29 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c: (efhd_update_bar),
- (efhd_message_update_bar): Show attachment bar at all times. Seems
- like the contents are missing at times.
-
-2009-01-29 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format.c: (em_format_format_text): Handle empty messages well.
-
-2009-01-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #546637
-
- * em-folder-view.c: (emfv_popup_source): Ensure uid for source view
- also.
-
-2009-01-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #562449
-
- * em-folder-view.c: (em_folder_view_mark_selected),
- (emfv_delete_msg_response): Don't emit for vfolders.
-
-2009-01-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #567654
-
- * message-list.c: (regen_list_exec): Don't free the reffable string.
-
-2009-01-27 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #561628
-
- * em-format-html-print.c: (efhp_class_init):
- Initialize 'parent_class' with its parent, not with itself.
-
-2009-01-19 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #204891
-
- * filtertypes.xml:
- * em-composer-utils.h: (em_utils_forward_message_raw):
- * em-composer-utils.c: (emu_forward_raw_done),
- (em_utils_forward_message_raw):
- * mail-session.c: (ms_forward_to), (class_init):
- Implement "forward-to" rule for message filters.
-
-2009-01-13 Felix Riemann <friemann@svn.gnome.org>
-
- ** Fix for bug #563867
-
- * em-folder-view.c (emp_uri_popup_link_copy):
- * em-popup.c (emp_uri_popup_link_open):
- * em-utils.c (em_utils_url_unescape_amp):
- * em-utils.h:
- Unescape "&amp;" when passing the link to browsers.
-
-2009-01-12 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #566653
-
- * mail-folder-cache.c: (folder_changed): Fix a leaked info
-
-2009-01-11 Matthew Barnes <mbarnes@redhat.com>
-
- * em-config.c:
- * em-menu.c:
- Remove unneeded #include <libgnome/gnome-url.h>
-
- * em-folder-view.c (emfv_format_link_clicked):
- * em-popup.c (emp_uri_popup_link_open):
- Call e_show_uri() instead of gnome_url_show().
-
-2009-10-10 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-view.c:
- * importers/mail-importer.c:
- Remove unneeded #include <libgnome/gnome-util.h>.
-
-2009-01-10 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-autofilter.c:
- Remove unneeded #include <libgnomeui/gnome-app.h>.
- Remove unneeded #include <libgnomeui/gnome-app-helper.h>.
-
-2009-01-10 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #567280
-
- * message-tag-followup.c:
- Remove unneeded #include <libgnomeui/gnome-pixmap.h>.
-
-2009-01-10 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #567285
-
- * mail-autofilter.c:
- Remove unneeded #include <libgnomeui/gnome-popup-menu.h>.
-
-2009-01-09 Takao Fujiwara <takao.fujiwara@sun.com>
-
- Reviewed by Matthew Barnes <mbarnes@redhat.com>
-
- * Fix for bug #566011
-
- * mail-component.c (mail_component_class_init):
- Include <glib/gi18n-lib.h> instead of <glib/gi18n.h> and
- add bindtextdomain().
-
-2009-01-08 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #565376
-
- * vfoldertypes.xml:
- * searchtypes.xml: Merge some search types together.
- * em-vfolder-context.c: (vfolder_new_element): More elements.
- * em-filter-folder-element.h: (struct _EMFilterFolderElement):
- * em-filter-folder-element.c: (xml_encode), (xml_decode),
- (folder_selected), (get_widget), (format_sexp):
- Support storing folder uri in a camel's way.
-
- * em-format-html-display.c: (efhd_use_component):
- Compiler warning fix.
-
-2008-12-29 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #565857
-
- * e-searching-tokenizer.c (searcher_next_token):
- The HTMLTokenizer now expects a newly-allocated string from its
- next_token() method, so duplicate the returned string. This fixes
- a memory leak whereby previously, some implementations of next_token()
- did return a newly-allocated string, some did not. Those that did
- leaked those strings.
-
-2008-12-22 Sankar P <psankar@novell.com>
-
- ** Part of fix for bug #559153
-
- * em-migrate.c (update_progress_in_main_thread), (migrate_folders),
- (count_folders), (migrate_folders_to_db_thread), (migrate_to_db),
- (em_migrate):
- Migration Improvements
-
-2008-12-22 Norman Wang <zhichao.wang@sun.com>
-
- ** Fix for bug #558337
-
- * mail/em-subscribe-editor.c: Create a wrapper class MailMsgListNode of
- _zsubscribe_msg message. The MailMsgListNode class is the subclass of
- EDListNode class. So the _zsubscribe_msg can be added into the EDList.
-
-2008-12-16 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #552583
-
- * mail-config.c: (mail_config_get_account_by_source_url),
- (mail_config_get_account_by_transport_url): Do not leak.
-
-2008-12-15 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #564007
-
- * em-format.c: (emf_inlinepgp_encrypted): Guess the decrypted
- part mime type if not known from the decryptor, thus show the
- content really inline, if possible.
-
-2008-12-15 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #563669
-
- * em-account-editor.c: (emae_option_checkspin):
- Use zero GtkSpinButton's PageSize, as Gtk+ requires.
-
-2008-12-15 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c: Fix a impllicit warning
-
-2008-12-15 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #552583
-
- * mail-config.c: (mail_config_get_account_by_transport_url): Free the
- right url.
-
-2008-12-15 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for #546637
-
- * message-list.c: (message_list_finalise), (regen_list_exec),
- (regen_list_done): Don't loose uids.
-
-2008-12-15 Srinivasa Ragavan <sragavan@novell.com>
-
-
- * em-format-html-display.c: (efhd_bonobo_unknown),
- (efhd_find_handler), (efhd_bonobo_object),
- (efhd_check_server_prop), (efhd_use_component),
- (efhd_format_attachment): Restore the code for BONOBO components need
- by the vcard inline viewer.
-
-2008-12-15 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-account-editor.c: (emae_option_checkspin):
- * em-folder-tree.c: (emft_popup_uvfolder), (emft_popup): Add the
- unread vfolder hack.
-
-2008-12-15 Lucian Langa <lucilanga@gnome.org>
-
- ** Fixes bug #564519
-
- * mail-send-recv.c: (build_dialog):
- Count also deleted unsent messages when displaying SMTP server
-
-2008-12-13 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #564351 (patch by Tal Benavidor)
-
- * em-icon-stream.c:
- Fix single-header include issue for GdkPixbuf.
-
-2008-12-10 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #552357
-
- * e-searching-tokenizer.c: (e_searching_tokenizer_begin):
- Function prototype changed.
-
-2008-12-10 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #563870
-
- * vfoldertypes.xml:
- * filtertypes.xml:
- * searchtypes.xml: Use dynamic filter option.
- * message-list.c: Drop unused header include.
-
-2008-12-09 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #552583
-
- * mail-config.c: (mail_config_get_account_by_source_url),
- (mail_config_get_account_by_transport_url): Extending Sankar's fix
- of account checking logic a bit, to be more consistent.
-
-2008-12-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #563369
-
- * em-folder-properties.c: (emfp_dialog_got_folder_quota):
- * em-folder-tree-model.c: (em_folder_tree_model_set_folder_info):
- * mail-component.c: (view_changed): Translate "Templates" folder name.
-
-2008-12-09 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #563669
-
- * mail-config.glade:
- Use zero GtkSpinButton's PageSize, as Gtk+ requires.
-
-2008-12-08 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #337082
-
- * em-folder-tree.c: (emft_tree_row_expanded): Do not set we finished
- with loading until we are really done with it. The previous behavior
- can cause duplicate nodes in tree for subscribed folders.
-
-2008-12-08 Sankar P <psankar@novell.com>
-
- ** Fixes bug #552583
-
- * mail/mail-config.c: (mail_config_get_account_by_source_url)
- (mail_config_get_account_by_transport_url):
- Fix the errors in the account checking logic.
-
-2008-12-04 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #552583
-
- * mail-config.c (mail_config_get_account_by_source_url),
- (mail_config_get_account_by_transport_url):
- For the purpose of matching a URL to an EAccount, only compare
- the protocol, user, host and port and disregard the rest.
-
-2008-11-23 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #552850
-
- * evolution-mail.schemas.in:
- Prefer the term "side bar" over "folder tree".
-
-2008-11-19 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #555276
-
- * mail/mail-vfolder.c: Don't load vfolder as subfolder.
-
-2008-11-13 Bharath Acharya <abharath@novell.com>
-
- * em-folder-view.c: (emfv_setting_notify):
- * em-format-html.c: (efh_format_headers): Do not display the default
- headers when all the headers are disabled in Mail preferences.
-
-2008-11-12 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #524377
-
- * mail-config.glade:
- * evolution-mail.schemas.in:
- * em-composer-prefs.c: (em_composer_prefs_construct):
- * mail-config.c: (gconf_outlook_filenames_changed), (mail_config_init):
- Declare, be able to change and listen to changes on new key,
- '/apps/evolution/mail/composer/outlook_filenames' to encode file names
- header in camel based on the RFC 2047, instead of the correct RFC 2231.
-
-2008-11-07 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fix for bug #552583
-
- * mail-config.c: (mail_config_get_account_by_source_url):
- Instead of preserving the authmech attribute in the two URLs
- being compared, strip the attributes out of both URLs and just do
- a simple string comparison. We're just trying to match a URL to
- an account here. The authentication method shouldn't be relevant.
-
-2008-11-07 Bharath Acharya <abharath@novell.com>
-
- ** Fix for BNC bug #437226
-
- * em-format-html.c (efh_format_headers): Regression caused by r35319.
- Check for the condition only after the while loop.
-
-2008-11-05 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #559371
-
- * em-composer-prefs.c (spell_language_save), (spell_setup):
- Simplify the logic by using e_load_spell_languages() and
- e_save_spell_languages().
-
-2008-11-04 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #386036
-
- * vfoldertypes.xml:
- * filtertypes.xml: Added new option "Sender or Recipients" which
- filters on From/To/Cc/Bcc headers.
-
-2008-11-02 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #559042
-
- * mail-config.glade:
- Remove extra space in translated string.
-
-2008-11-02 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #557613
-
- * em-utils.c (try_open_e_book):
- Wait for try_open_e_book_cb() to run before freeing the EFlag.
- It will run regardless of whether the EBook operation completes.
-
-2008-10-31 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #558726 (patch by Frederic van Starbmann)
-
- * em-format-html.c (emfh_multipart_related_check):
- Fix a potential format string crash.
-
-2008-10-31 Sankar P <psankar@novell.com>
-
- ** Patch by Bharath Acharya <abharath@novell.com>
-
- * em-folder-tree.c (emft_popup):
- Disable delete and rename on
- right click menu for the system folders
-
-2008-10-22 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-send-recv.c:
- * mail-send-recv.h:
- Just some minor code polishing.
-
-2008-10-21 Sankar P <psankar@novell.com>
-
- * em-folder-view.c (emfv_spin):
- Re-factor spinner usage
-
-2008-10-20 Patrick Ohly <Patrick.Ohly@gmx.de>
-
- * mail-component.h: Fixed a build break.
-
-2008-10-19 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #438155
-
- * message-list.h: (struct _MessageList):
- * message-list.c: (message_list_init), (message_list_finalise),
- (regen_list_done), (regen_list_free), (ml_regen_timeout),
- (mail_regen_cancel): Guard access to the 'regen' list with a lock.
-
-2008-10-17 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #555276
-
- * mail/mail-vfolder.c: Don't load a vfolder as a sub folder.
-
-2008-10-17 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #364542
-
- * em-utils.c: (struct TryOpenEBookStruct), (try_open_e_book_cb),
- (try_open_e_book), (em_utils_in_addressbook), (em_utils_contact_photo):
- Stop when camel operation has been canceled. Also check for
- cancellation when opening EBook, thus the UI (preview) will
- not freeze with slow address books.
-
-2008-10-07 Bharath Acharya <abharath@novell.com>
-
- ** Fix for bug #555203
-
- * mail-session.c: (get_password): Use the url value in cases where the
- account goes NULL. Fixes the issue of Exchange not sending mails,
- because it does not have a valid transport url to use.
-
-2008-10-05 Sankar P <psankar@novell.com>
-
- ** Fix for bug #554349
-
- * mail/em-folder-browser.c:
- Expand threads and select messages,
- if user has given select-all.
-
-2008-10-01 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #554418
-
- * em-utils.c: (em_utils_snoop_type):
- * em-popup.c: (emp_standard_menu_factory):
- Guess mime_type based on the filename only.
-
-2008-10-01 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #554458
-
- * em-popup.c: (emp_standard_menu_factory):
- Use content-type to call of g_app_info_get_all_for_type.
-
-2008-10-01 Sankar P <psankar@novell.com>
-
-License Changes
-
- * em-composer-utils.c:
-
-2008-09-30 Philip Withnall <philip@tecnocode.co.uk>
-
- ** Fix for bug #545045
-
- * mail-send-recv.c (build_dialog): Don't show SMTP in the
- Send/Receive dialogue if there are no unsent mails.
-
-2008-09-30 Sankar P <psankar@novell.com>
-
-License Changes
-
- * mail-ops.c:
-
-2008-09-30 Sankar P <psankar@novell.com>
-
- * mail/message-list.c:
- Remove unnecessary FIXME.
- normalized columns are for internal manipulation.
-
-2008-09-30 Sankar P <psankar@novell.com>
-
- ** Committed on behalf of Hans Petter Jansson <hpj@novell.com>
-
- ** Fix for bug #554107
-
- * message-list.c (get_trimmed_subject), (ml_tree_value_at):
- * message-list.etspec:
- * message-list.h:
- Add "Subject - Trimmed" column which enables to read
- mailing list mails in a better way.
-
-2008-09-29 Gabor Kelemen <kelemeng@gnome.hu>
-
- * mail-config.glade: Mark some forgotten strings for translation. Fixes bug #553067
-
-2008-09-29 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #530716
-
- * mail-session.c: (user_message_response), (user_message_exec),
- (user_message_response_free): Differentiate between response
- with valid message pointer and with one already freed.
-
-2008-09-29 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #530691
-
- * em-folder-utils.c: (emfu_delete_rec), (emfu_delete_done),
- (emfu_delete_folders), (emfu_delete_response),
- (em_folder_utils_delete_folder):
- * mail-ops.h: (mail_remove_folder):
- * mail-ops.c: (mail_remove_folder), (struct _remove_folder_msg),
- (remove_folder_desc), (remove_folder_rec), (remove_folder_exec),
- (remove_folder_done), (remove_folder_free):
- Remove folders in its own thread, not in main thread.
-
-2008-09-29 Sankar P <psankar@novell.com>
-
-License Changes
-
- * em-filter-i18n.h:
- * em-utils.c:
- * importers/mail-importer.c:
- * mail-config.c:
- * message-list.c:
-
-2008-09-26 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #552583 (Suggested by Sebastian Keller)
-
- * mail-session.c: (get_password):
- Do not hide auth_mech from the URL.
-
-2008-09-25 Philip Withnall <philip@tecnocode.co.uk>
-
- ** Fix for bug #552551
-
- * em-folder-browser.c (emfb_search_search_activated): Add a NULL
- check for search_word before calling strcmp.
-
-2008-09-25 Sankar P <psankar@novell.com>
-
-License Changes
-
- * mail-folder-cache.c:
-
-2008-09-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #313225
-
- * message-list.c: (struct states_pixmaps), (ml_tree_value_at),
- (message_list_create_extras): Show meeting icon in 'Attachment'
- column on messages with '$has_cal' user flag set.
-
-2008-09-24 Sankar P <psankar@novell.com>
-
-License Changes
-
- * em-folder-browser.c:
-
-2008-09-24 Philip Withnall <philip@tecnocode.co.uk>
-
- ** Fixes bug #553479
-
- * em-migrate.c (migrate_to_db):
- * evolution-mail.schemas.in: String capitalisation improvements.
-
-2008-09-23 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #553273
-
- * em-composer-utils.c: (em_utils_handle_receipt):
- * em-folder-view.c: (emfv_delete_msg_response):
- Always end e_error_run/e_error_new calls with NULL parameter.
-
-2008-09-22 Luca Ferretti <elle.uca@libero.it>
-
- * default/Makefile.am:
- * default/it/Inbox:
- * default/it/Makefile.am:
- Added Italian translation for default email message.
-
-2008-09-22 Petr Kovar <pknbe@volny.cz>
-
- * default/cs/Inbox: Added Czech translation of default email
- message by Jiri Eischmann.
- * default/cs/Makefile.am: Ditto.
- * default/Makefile.am: Ditto.
-
-2008-09-21 Wadim Dziedzic <wdziedzic@aviary.pl>
-
- * default/pl/Inbox: Updated Polish translation
-
-2008-09-19 Gintautas Miliauskas <gintas@akl.lt>
-
- * default/lt/Inbox: Updated Lithuanian translation.
-
-2008-09-19 Sankar P <psankar@novell.com>
-
-License Changes
-
- * em-folder-tree-model.c:
- * em-folder-tree.c:
- * em-folder-view.c:
- * em-format-html-display.c:
- * em-format-html.c:
- * em-migrate.c:
- * mail-component.c:
-
-2008-09-17 Gabor Kelemen <kelemeng@gnome.hu>
-
- * default/hu/Makefile.am: Add this too
-
-2008-09-17 Gabor Kelemen <kelemeng@gnome.hu>
-
- * default/hu/Inbox: Default welcome mail translation added.
- * default/Makefile.am: Added hu
-
-2008-09-16 Goran Rakić <grakic@devbase.net>
-
- * default/Makefile.am:
- * default/sr/*, default/sr@latin/*: Added Serbian welcome message translation.
-
-2008-09-16 Sankar P <psankar@novell.com>
-
-License Changes
-
- * em-account-editor.c:
- * em-account-prefs.c:
- * em-format.c:
- * em-message-browser.c:
- * em-popup.c:
- * em-subscribe-editor.c:
- * importers/pine-importer.c:
- * mail-mt.c:
- * mail-send-recv.c:
-
-2008-09-16 Wouter Bolsterlee <wbolster@svn.gnome.org>
-
- * default/nl/Inbox: Updated Dutch translation by Tino Meinen.
-
-2008-09-16 Ilkka Tuohela <hile@iki.fi>
-
- * default/fi/Inbox: Updated Finnish default mailbox.
-
-2008-09-16 Claude Paroz <claude@2xlibre.net>
-
- * default/fr/Inbox: Updated French translation.
-
-2008-09-15 Daniel Nylander <po@danielnylander.se>
-
- * default/sv/Inbox: Updated Swedish translation.
-
-2008-06-22 Sankar P <psankar@novell.com>
-
- * Committed on behalf of Paul Bolle <pebolle@tiscali.nl>
-
- ** Fix for bug #539536
-
- * em-format.c: (struct default_headers):
- * em-format-html.c: (efh_format_headers):
- * em-format-html.c: (default_headers):
- Add "Face" header to default headers and allow it to be hidden.
-
-2008-09-14 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #504767
-
- * em-folder-tree.c: (emft_expand_node):
- Expand also parent nodes, if necessary.
-
-2008-09-14 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #551915
-
- * em-junk-hook.c: (struct manage_error_idle_data), (free_mei),
- (manage_error_idle), (manage_error):
- Manage error on idle, to call gtk functions in the main thread.
-
-2008-09-12 Sankar P <psankar@novell.com>
-
-License Changes
-
- * em-icon-stream.c:
- * em-mailer-prefs.c:
- * em-mailer-prefs.h:
- * em-network-prefs.c:
- * em-network-prefs.h:
- * importers/evolution-mbox-importer.c:
-
-2008-09-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #534039
-
- * mail-vfolder.c: (vfolder_load_storage): Load store to mail component
- first, to have all notifications registered in time of adding rules.
- * mail-folder-cache.c: (real_flush_updates): Dropped unnecessary and
- offending code causing infinite loops when deleting search folder.
-
-2008-09-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #493298
-
- * em-format-html-display.c: (efhd_image): Do not try to access widget
- of the pury when the operation has been cancelled.
-
-2008-11-03 Ashish Shrivastava <shashish@novell.com>
-
- ** Support for Non-intrusive error in calendar.
-
- * mail-component.c: Remove common code between
- mailer and calendar and moved to
- e-util/e-non-intrusive-error-dialog.c
-
-2008-09-08 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #328216
-
- * mail-send-recv.h: (mail_autoreceive_init):
- * mail-send-recv.c: (mail_autoreceive_init):
- * mail-component.c: (mail_component_init): Pass 'session' as parameter
- to the 'mail_autoreceive_init' to not create two MailComponents.
- * mail-component.c: (impl_finalize): Do not free pointer twice.
- * mail-component.c: (impl_finalize), (impl_quit): Call shutdown in time
- of quit to shutdown camel, which will store changes in 'camel-cert.db'.
-
-2008-09-05 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail-folder-cache.c (real_flush_updates): Fix infinite loop on
- deleting vfolders.
-
-2008-09-04 Sankar P <psankar@novell.com>
-
-License Changes
-
- * em-composer-prefs.c:
- * em-event.c:
- * em-folder-properties.c:
- * em-folder-selection-button.c:
- * em-vfolder-rule.c:
- * em-vfolder-rule.h:
- * mail-config.h:
- * mail-session.c:
-
-2008-09-02 Sankar P <psankar@novell.com>
-
-License Changes
-
- * e-searching-tokenizer.c:
- * em-account-editor.h:
- * em-composer-prefs.h:
- * em-config.c:
- * em-config.h:
- * em-filter-context.c:
- * em-filter-editor.c:
- * em-filter-rule.c:
- * em-filter-source-element.c:
- * em-filter-source-element.h:
- * em-folder-tree-model.h:
- * em-folder-utils.c:
- * em-folder-utils.h:
- * em-folder-view.h:
- * em-format-hook.c:
- * em-format-html-print.h:
- * em-format-quote.h:
- * em-icon-stream.h:
- * em-inline-filter.c:
- * em-junk-hook.c:
- * em-menu.c:
- * em-migrate.h:
- * em-stripsig-filter.h:
- * em-sync-stream.c:
- * em-utils.h:
- * em-vfolder-editor.h:
- * importers/elm-importer.c:
- * mail-autofilter.c:
- * mail-autofilter.h:
- * mail-component-factory.c:
- * mail-component.h:
- * mail-config-factory.h:
- * mail-crypto.c:
- * mail-crypto.h:
- * mail-folder-cache.h:
- * mail-mt.h:
- * mail-ops.h:
- * mail-send-recv.h:
- * mail-session.h:
- * mail-signature-editor.c:
- * mail-tools.c:
- * mail-tools.h:
- * mail-vfolder.c:
- * mail-vfolder.h:
- * message-list.h:
-
-2008-09-01 Matthew Barnes <mbarnes@redhat.com>
-
- * em-composer-utils.c (edit_message):
- Don't mix declarations and code.
-
-2008-09-01 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #543135
-
- * em-format-html-display.c: (efhd_format_optional):
- Write error message to the right stream.
- * message-list.c: (mail_regen_list), (regen_list_done): Do not try
- to set information message to the message list when it's not visible.
-
-2008-09-01 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #534039
-
- * mail-folder-cache.c: (real_flush_updates): Make sure search folder's
- unread count will be tracked properly in a tree even before the folder
- is opened in the UI. (The previous patch for this bug made this issue.)
-
-2008-09-01 Paul Bolle <pebolle@tiscali.nl>
-
- ** Fix for bug #549661
-
- * em-folder-tree.c: (emft_drop_async__exec): Use
- em_utils_selection_get_urilist() for DND_DROP_TYPE_TEXT_URI_LIST (and
- not em_utils_selection_get_mailbox()).
-
-2008-08-31 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fix bug #544430
-
- * em-folder-properties.c (emfp_get_folder_item):
- Better formed translatable strings for quota usage.
-
-2008-08-30 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/mail-component.c: Disable flag upsync. I need to implement it
- more intelligently.
-
-2008-08-28 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #509647
-
- * em-folder-utils.c: (emft_copy_folders__exec):
- * mail-ops.c: (fetch_mail_exec), (send_queue_exec):
- Do not expunge folder when something goes wrong.
-
-2008-08-27 Philip Withnall <philip@tecnocode.co.uk>
-
- ** Fix for bug #534762
-
- * evolution-mail.schemas.in:
- * mail-config.glade: Change "addressbook" to "address book" in
- translatable strings.
-
-2008-08-27 Sankar P <psankar@novell.com>
-
-License Changes
-
- * e-searching-tokenizer.h:
- * em-account-prefs.h:
- * em-composer-utils.h:
- * em-event.h:
- * em-filter-context.h:
- * em-filter-editor.h:
- * em-filter-folder-element.c:
- * em-filter-folder-element.h:
- * em-filter-rule.h:
- * em-folder-browser.h:
- * em-folder-properties.h:
- * em-folder-selection-button.h:
- * em-folder-selection.c:
- * em-folder-selection.h:
- * em-folder-selector.c:
- * em-folder-selector.h:
- * em-folder-tree.h:
- * em-format-hook.h:
- * em-format-html-display.h:
- * em-format-html-print.c:
- * em-format-html.h:
- * em-format-quote.c:
- * em-format.h:
- * em-html-stream.c:
- * em-html-stream.h:
- * em-inline-filter.h:
- * em-junk-hook.h:
- * em-menu.h:
- * em-message-browser.h:
- * em-popup.h:
- * em-search-context.c:
- * em-search-context.h:
- * em-stripsig-filter.c:
- * em-subscribe-editor.h:
- * em-sync-stream.h:
- * em-vfolder-context.c:
- * em-vfolder-context.h:
- * em-vfolder-editor.c:
- * importers/mail-importer.h:
- * mail-config-factory.c:
- * mail-signature-editor.h:
- * mail-types.h:
- * message-tag-editor.c:
- * message-tag-editor.h:
- * message-tag-followup.c:
- * message-tag-followup.h:
-
-2008-08-20 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #546926
-
- * mail-session.c (mail_session_shutdown):
- New function simply calls camel_shutdown().
-
- * mail-component.c (impl_finalize):
- Call mail_session_shutdown().
-
-2008-08-18 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #508732
-
- * mail-component.c (impl_createView):
- Add a "select_item" argument for crash recovery, which we forward
- to EMFolderBrowser as a "suppress_message_selection" flag.
-
- * em-folder-browser.c (emfb_set_folder):
- Suppress automatic message selection if we are recovering from a
- crash.
-
-2008-08-16 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #513363
-
- * default/C/Inbox:
- Remove the outdated "New Features" list, and well as the incorrect
- "Evolution team" email address.
-
-2008-08-14 Sebastien Bacher <seb128@ubuntu.com>
-
- ** Fix for bug #547805
-
- * em-popup.c: (emp_standard_menu_factory):
- don't filter applications using g_app_info_should_show()
-
-2008-08-13 Moritz Mertinkat <moritz@mertinkat.net>
-
- * em-format-html.c: Added meaningful user agent for HTTP requests
- used to load remote images. The original part (CamelHttpStream/1.0)
- has been kept for backward compatibility.
-
-2008-08-12 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #519292
-
- * message-list.c: (read_boolean_with_default),
- (message_list_construct): Read 'thread_expand' and 'thread_latest'
- safely with TRUE as default if key doesn't exist.
-
-2008-08-11 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #546892
-
- * em-folder-browser.c:
- * em-format-html-display.c:
- * mail-send-recv.c:
- * message-tag-followup.c:
- Prefer gtk_image_new_from_icon_name() over e_icon_factory_get_image().
-
- * mail-send-recv.c:
- * message-tag-followup.c:
- Prefer gtk_window_set_icon_name() over gtk_window_set_icon_list().
-
- * mail-mt.c:
- e_activity_handler_cancelable_operation_started() no longer takes a
- GdkPixbuf. It was ignoring the pixbuf anyway ever since we added a
- spinner icon.
-
-2008-08-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #519292
-
- * message-list.c: (load_tree_expand_all): Drop function.
- * message-list.c: (regen_list_done): Rather use desired expanded state
- value when creating the tree instead of the default model's value for
- this to have 'expand/collapse all' commands work better and quicker.
-
-2008-08-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #352695
-
- * message-list.c: (struct _MessageListPrivate), (save_tree_state),
- (load_tree_state), (on_model_row_changed), (message_list_init),
- (message_list_construct), (struct _regen_list_msg), (regen_list_done),
- (regen_list_free), (mail_regen_list): Be able to recognize whether
- there has been any change on any row in a list and save expanded
- state only in case there was any change. Also use in-memory storing
- of the expanded state in case we do not want to rewrite full view
- It's for searches only, and it's not stored between sessions.
-
-2008-08-11 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Part fix for bug #529743
-
- * searchtypes.xml: Support Subject or Recipients contain search.
-
-2008-08-11 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/message-list.c: Don't use uninitialized exception. It leads to
- freeing uninitialized memory.
-
-2008-08-07 Paul Bolle <pebolle@tiscali.nl>
-
- ** Fix for bug #546788
-
- * em-folder-view.c: "/commands/ViewNormal" isn't actually used. It is
- probably a leftover from a previous way of setting the formatting
- style. It can be removed. Related cleanups.
-
-2008-08-06 Paul Bolle <pebolle@tiscali.nl>
-
- ** Fix for bug #546668
-
- * em-format-html.c: Drop a (pointless) define used only once.
- * em-format-html-display.c: Drop one unused define.
-
-2008-08-07 Matthew Barnes <mbarnes@redhat.com>
-
- * em-format.c (emf_format_secure):
- * em-format-html-display.c (efhd_xpkcs7mime_add_cert_table):
- Use CamelDList instead of EDList.
-
-2008-08-06 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #249844
-
- * em-event.h: (struct _EMEventTargetCustomIcon): Declare 'folder_name'
- as const char * to let compiler happy; no copy of the pointer anyway.
- * mail-component.c: (impl__get_userCreatableItems):
- Do not let compiler claim.
-
-2008-08-05 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/message-list.c: Fix a performance issue, where we can just go
- by the presence than the exact count.
-
-2008-08-04 Matthew Barnes <mbarnes@redhat.com>
-
- * em-migrate.c (migrate_to_db):
- * em-network-prefs.c (notify_proxy_type_changed),
- (widget_entry_changed_cb):
- * em-subscribe-editor.c (sub_fill_level), (sub_queue_fill_level),
- (sub_row_expanded):
- * mail-vfolder.c:
- Use G_STRLOC or G_STRFUNC instead of deprecated
- G_GNUC_PRETTY_FUNCTION.
-
-2008-08-04 Paul Bolle <pebolle@tiscali.nl>
-
- ** Fix for bug #543058
-
- * em-folder-properties.c (emfp_dialog_got_folder_quota):
- * mail-component.c (view_changed): Replace three occurrences of
- INBOX in the GUI code with Inbox. INBOX is a written in all caps
- because that is the way it is used in the IMAP protocol. There's
- little reason to use it in the GUI. Inbox is properly capitalized and
- can be localized too.
-
-2008-08-04 Paul Bolle <pebolle@tiscali.nl>
-
- ** Further fix for bug #539268
-
- * em-format.c (em_format_describe_part): Do not append description
- if it is just an empty string.
-
-2008-08-04 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #249844
-
- * em-folder-tree.c (render_display_name):
- * mail-component.c (impl__get_userCreatableItems):
- Use C_() macro instead of Q_() macro.
- Use fully qualified names for "New" submenu entries.
-
-2008-08-04 Paul Bolle <pebolle@tiscali.nl>
-
- ** Fixes bug #537088
-
- * em-format-html.c: (efh_format_headers): Break out of the loop rather
- that return from this function when running into an empty From: or
- Sender: header.
-
-2008-08-01 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #514006
-
- * apps-evolution-mail-notification.schemas.in:
- Quote literal values.
-
-2008-08-01 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #544859
-
- * evolution-mail.schemas.in:
- Clarify description of "sync_interval" key.
-
-2008-08-01 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #545820
-
- * mail-ops.c (save_messages_desc): Fix a typo. (Nicolas Kaiser)
-
-2008-07-31 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #545436
-
- * mail/message-list.c: Check the info before accessing it.
-
-2008-07-30 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #500389
-
- * em-account-editor.c: (emae_option_options_changed),
- (emae_option_options), (emae_receive_options_extra_item):
- New ability to define Options (ComboBox) in provider's options.
-
-2008-07-29 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/em-folder-tree.c: Kill a compilation warning.
-
-2008-07-28 Lucian Langa <lucilanga@gnome.org>
-
- * mail/mail-config.glade:
- Corrected string "Prompt on sending HTML.."
-
-2008-07-28 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #543532
-
- * em-folder-tree-model.c: (em_folder_tree_model_remove_store_info):
- Let free memory when we are done with it, not before.
-
-2008-07-28 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #256540
-
- * mail-dialogs.glade: (message_security_dialog):
- Do not use GtkNotebook with only one tab.
-
-2008-07-28 Lucian Langa <lucilanga@gnome.org>
-
- * mail/mail-config.glade:
- ** See bug #504417: Preferences windows
- cut off
-
-2008-07-28 Jeff Cai <jeff.cai@sun.com>
-
- * em-migrate.c: (migrate_to_db):
- * em-network-prefs.c: (notify_proxy_type_changed),
- (widget_entry_changed_cb):
- Use G_GNUC_PRETTY_FUNCTION instead of __PRETTY__FUNCTION
-
-2008-07-27 Lucian Langa <lucilanga@gnome.org>
-
- * mail/em-event.h (struct _EMEventTargetCustomIcon):
- * mail/em-event.c (em_event_target_new_custom_icon):
- * mail/em-folder-tree.c (render_pixbuf):
- ** See bug #544969: Added the hook for folder
- custom icon.
-
-2008-07-28 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #543411
-
- * mail/em-folder-tree-model.c: Dont load known folders.
- * mail/em-folder-tree.c: Move iter to the last entry.
-
-2008-07-25 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/em-folder-browser.c: Make show unread/etc work well.
-
-2008-07-24 Sankar P <psankar@novell.com>
-
- * em-folder-browser.c (get_view_query):
- Search by Labels.
-
-2008-07-24 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/em-folder-browser.c: Revert Sankar's search hacks.
-
-2008-07-22 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #544022
-
- * e-searching-tokenizer.c: (dump_trie):
- Define function only when required. (Compiler warning cleanup.)
-
-2008-07-21 Tor Lillqvist <tml@novell.com>
-
- * em-migrate.c: Rearrange G_OS_WIN32 ifdefs a bit, as we need to
- compile more of this file to support upgrade attempts from 2.12
- and later.
- (migrate_folders): Guard against camel_store_get_folder()
- returning NULL, which happened at least for me. It was for a
- partially broken GroupWise folder structure on disk, so that is a
- case of garbage in--garbage out I guess, but it can't hurt to be
- careful...
-
-2008-07-21 Bharath Acharya <abharath@novell.com>
-
- Fixed some compiler warnings for Templates specific hunk.
-
- * em-composer-utils.c: (edit_message):
-
-2008-07-20 Bharath Acharya <abharath@novell.com>
-
- ** Fix for bug #200147
- Added basic Template support
-
- * em-composer-utils.c (edit_message), (em_utils_edit_message): Modified
- to suit it better for plugins to use it. And added support for template
- placeholders to be replaced in the messages.
- * em-composer-utils.h:
- * em-folder-tree.c (is_special_local_folder):
- * em-folder-utils.c (emfu_is_special_local_folder):
- * em-folder-view.c (em_folder_view_open_selected):
- * em-utils.c (em_utils_folder_is_templates):
- * em-utils.h:
- * mail-component.c:
- * mail-component.h:
-
-2008-07-16 Sankar P <psankar@novell.com>
-
- Pushing disk summary changes from the madagascar branch
-
- * em-folder-browser.c (get_view_query):
- * em-folder-view.c (emfv_enable_menus):
- * mail-ops.c (refresh_folder_exec):
- * message-list.c (regen_list_exec):
-
-2008-07-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #269152
-
- * em-format-quote.c: (emfq_format_header):
- * em-format-html.c: (efh_format_headers):
- Use X-MimeOLE as Mailer header when there's nothing better available.
-
-2008-07-09 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #228725
-
- * message-list.c: (mail_regen_list): Update empty message on regen.
-
-2008-07-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #207802 (Patch suggested by Veerapuram Varadhan.)
-
- * message-list.c: (struct search_child_struct), (search_child_cb),
- (is_tree_widget_children), (ml_tree_drag_motion): Do not allow drop
- messages to the same message list as is the source. Also do not
- allow drop over message list if it doesn't have set a folder.
-
-2008-07-03 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #541365
-
- * message-list.c: (message_list_get_uids), (message_list_get_selected):
- Do not call 'camel_folder_sort_uids' when we do not have folder or uid.
-
-2008-07-02 Jeffrey Stedfast <fejj@novell.com>
-
- Sort the uids so that moving/copying messages preserves mailbox
- ordering rather than jumbled randomness.
-
- * message-list.c (message_list_get_uids): Sort the uids.
- (message_list_get_selected): Same.
-
-2008-06-26 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #540160
-
- * message-list.h: (struct _MessageList):
- * message-list.c: (message_list_init), (on_cursor_activated_cmd),
- (on_selection_changed_cmd): Remember whether we come from none/multi
- select to single select and properly update the preview.
- (Reverting patch for bug #337160 and doing that with other approach.)
-
-2008-06-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #537275
-
- * em-html-stream.c: (emhs_cleanup): Close GtkHTMLStream on cancel.
- * em-html-stream.c: (emhs_gtkhtml_destroy): Set the cancel.
- * em-sync-stream.c: (emss_process_message):
- Do not pass data to the child structure if we were canceled.
-
-2008-06-21 Paul Bolle <pebolle@tiscali.nl>
-
- ** Fix for bug #539268
-
- * em-format.c: (em_format_describe_part): do not use both filename
- and description if these are identical.
-
-2008-06-21 Paul Bolle <pebolle@tiscali.nl>
-
- ** Fix for bug #538741
-
- * em-format-html.c: (efh_format_header):
- Strip preceding tabs from Date headers too.
-
-2008-06-21 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #537725
-
- * em-composer-utils.c (save_draft_done):
- Set the autosaved flag so we don't get pestered with a save dialog
- if the user then decides to close the composer window.
-
-2008-06-20 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #534039
-
- * em-folder-tree-model.h: (em_folder_tree_model_signal_block):
- * em-folder-tree-model.c: (em_folder_tree_model_signal_block):
- Removed obsolete function.
- * mail-vfolder.c: (vfolder_load_storage):
- Add storage to the tree model when everything is loaded, thus
- everything will be shown when enabling the Search Folders on demand.
- Also ensure the Search Folders to be enabled next start.
- * mail-vfolder.c: (mail_vfolder_add_uri), (mail_vfolder_delete_uri):
- Track folders even when Search Folders disabled, to have them
- known when enabling Search Folders on demand.
-
-2008-06-19 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #382783
-
- * em-filter-rule.c: (do_grab_focus_cb), (more_parts), (get_widget):
- Grab focus of new rule part on adding and scroll to the bottom too.
-
-2008-06-18 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #423395
-
- * em-format-html.c: (efh_init), (efh_text_plain), (efh_text_enriched),
- (efh_text_html), (efh_message_deliverystatus): Put the anchor where
- the message body begins and let GtkHTML know the anchor name to place
- the cursor there in caret mode on the first focus.
-
-2008-06-18 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #532472
-
- * mail-config.c (mail_config_get_account_by_transport_url):
- Strip the account URL (via CAMEL_URL_HIDE_ALL) before comparing
- it to the already-stripped 'transport_url', to avoid unnecessary
- password prompts.
-
-2008-06-16 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #467892
-
- * message-list.h: (struct _MessageList), (message_list_ensure_message):
- * message-list.c: (message_list_init), (message_list_finalise),
- (message_list_ensure_message), (regen_list_exec), (regen_list_done):
- Be able to set a message uid to keep in a list after regeneration.
- * em-folder-view.c: (em_folder_view_open_selected):
- Inherit search criteria and ensure keeping the selected message
- in the view even it may not belong to the filter anymore.
-
-2008-06-13 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #337160
-
- * message-list.c: (on_cursor_activated_cmd): Do not pretend the row
- with a cursor is selected when it isn't. Also take care of multiselect.
- * message-list.c: (on_selection_changed_cmd):
- Do not pretend the row with a cursor is selected when it isn't.
-
-2008-06-13 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #538002
-
- * em-folder-tree.c: (emft_drop_target): Do not allow dropping messages
- on folders with CAMEL_FOLDER_NOSELECT flag set.
-
-2008-06-13 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #314467
-
- * em-account-editor.c: (emae_url_set_hostport):
- Reset port when setting host name without it.
-
-2008-06-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #535791
-
- * mail-config.glade:
- * em-composer-prefs.c: (em_composer_prefs_construct):
- New UI option to let uset choose whether start typing at the bottom
- of the document or not on replying.
- * em-utils.h: (em_utils_message_to_html):
- * em-utils.c: (em_utils_message_to_html):
- * em-composer-utils.c: (forward_non_attached), (composer_set_body):
- Take care of /apps/evolution/mail/composer/reply_start_bottom.
-
-2008-06-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #201011
-
- * em-filter-editor.c: (em_filter_editor_construct):
- Show Enabled column in the editor, because we support it here.
- * mail-session.c: (main_get_filter_driver): Skip disabled rules.
-
-2008-06-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #536772
-
- * em-folder-browser.c: (EMFolderViewEnable emfb_enable_map):
- Disable Folder menu items consistently with a popup menu over folder.
-
-2008-06-06 Matthew Barnes <mbarnes@redhat.com>
-
- * evolution-mail.schemas.in: Fix a typo.
-
-2008-06-05 Matthew Barnes <mbarnes@redhat.com>
-
- * message-tag-followup.c:
- Never undefine DISABLE_DEPRECATED macros in source code.
- Yes, it will break the build if it's defined. That's the point!
-
-2008-06-02 Jacob Brown <jeblinux@gmail.com>
-
- ** Fix for bug #529464
-
- * em-format-html-display.c: (efhd_format_optional): Do not use "handle"
-
-2008-06-02 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #535749
-
- * message-list.c: (regen_list_exec): Use better condition whether
- keep cursor_uid in the message list or not on regeneration.
-
-2008-06-02 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #531836
-
- * em-folder-view.c: Added bonobo accel key for Ctrl+D, Del to keep
- working on deleted mails, but not the toolbar/menu
-
-2008-06-02 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #525966
-
- * em-composer-utils.c: (composer_set_no_change):
- New helper function to set composers state properly to "no change".
- * em-composer-utils.c: (em_utils_compose_new_message),
- (em_utils_compose_new_message_with_mailto), (em_utils_post_to_folder),
- (em_utils_post_to_url), (edit_message), (forward_attached),
- (forward_non_attached), (em_utils_redirect_message),
- (em_utils_reply_to_message), (post_reply_to_message):
- Use the above helper function.
- * em-composer-utils.c: (reply_get_composer), (composer_set_body):
- Do not drop undo in the editor multiple times, do that only once.
-
-2008-06-02 Lucian Langa <lucilanga@gnome.org>
-
- ** Fix for bug #535689
-
- * mail-send-recv.c: (build_dialog): Transmit
- gd data to hook's event target data
-
-2008-06-02 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #534312
-
- * em-composer-utils.c: (create_new_composer),
- (em_utils_compose_new_message), (struct forward_attached_data),
- (real_update_forwarded_flag), (update_forwarded_flags_cb),
- (composer_destroy_fad_cb), (setup_forward_attached_callbacks),
- (forward_attached), (forward_attached_cb), (em_utils_forward_attached),
- (forward_non_attached), (forward_quoted), (em_utils_forward_message):
- Set new CAMEL_MESSAGE_FORWARDED flag on forwarded messages.
- * message-list.c: (ml_value_to_string), (message_list_create_extras),
- (ml_tree_value_at), (create_composite_cell), (struct states_pixmaps):
- Draw mail-forward icon on forwarded messages.
-
-2008-05-30 Lucian Langa <lucilanga@gnome.org>
-
- ** Fix for bug #535670
-
- * em-format-quote.c: (type_builtin_table):
- Add x-evolution/evolution-feed-rss as internal mime
- for evolution-rss artiles.
- * em-format.c: (em_format_is_attachment): prevent
- evolution-rss articles being formatted as attachments.
-
-2008-05-26 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #317755
-
- * mail-send-recv.c: (refresh_folders_exec):
- * mail-ops.c: (refresh_folder_desc):
- Also sync with a server when refreshing folder.
- * evolution-mail.schemas.in:
- * mail-config.h: (mail_config_get_sync_timeout):
- * mail-config.c: (mail_config_get_sync_timeout):
- Use int value of /apps/evolution/mail/sync_interval where is set
- how often propagate local changes to server.
- * mail-component.c: (struct _MailComponentPrivate), (impl_dispose),
- (mc_sync_store_done), (mc_sync_store), (call_mail_sync),
- (mail_component_init): Upload local changes to server on some interval.
- * mail-component.c: (impl_quit):
- Do not quit until we are done with mail sync.
-
-2008-05-26 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #322553
-
- * mail-config.h: (mail_config_scripts_disabled):
- * mail-config.c: (struct MailConfig), (mail_config_init),
- (mail_config_scripts_disabled): New helper function.
- * em-composer-prefs.c: (sig_load_preview):
- Write to html stream at least one character.
- * em-composer-prefs.c: (em_composer_prefs_construct): Disable
- signature's Add Script button when not approved running scripts.
- * mail-config.c: (mail_config_get_gconf_client): Ensure init.
- * mail-config.c: (mail_config_signature_run_script): Do not run
- script when disabled in /desktop/gnome/lockdown/disable_command_line.
-
-2008-05-23 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #534476
-
- * em-utils.c (em_utils_snoop_type):
- * em-popup.c (emp_standard_menu_factory):
- Remove the special check for "winmail.dat". GIO correctly
- identifies it as "application/ms-tnef".
-
-2008-05-23 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail-mt.c: (mail_msg_check_error): Convert the the warning to a
- message.
-
-2008-05-22 Matthew Barnes <mbarnes@redhat.com>
-
- * em-format-html.c (efh_message_external):
- Fix a typo in checking for an empty 'mode' string.
-
- * message-list.c (subtree_size):
- Remove this function. Looks like it hasn't been used in years.
-
-2008-05-22 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #534360
-
- * em-account-prefs.h:
- * em-filter-editor.c:
- * em-filter-editor.h:
- * em-folder-selector.h:
- * em-format-html-display.c:
- * em-mailer-prefs.c:
- * em-mailer-prefs.h:
- * em-utils.c:
- * em-vfolder-editor.c:
- * em-vfolder-editor.h:
- * em-vfolder-rule.c:
- * mail-vfolder.c:
- * meessage-tag-editor.h:
- * message-list.h:
- * message-tag-followup.h:
- Migrate from deprecated GtkObject symbols to GObject equivalents.
-
-2008-05-19 Matthew Barnes <mbarnes@redhat.com>
-
- * message-list.c (regen_list_done):
- Use a bit more direct English when informing the user of no messages
- in the currently selected folder.
-
-2008-05-19 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #533465, patch from Ritesh Khadgaray
-
- * em-account-editor.c (emae_url_set_hostport):
- Strip whitespace from user-entered hostname.
-
-2008-05-19 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/em-folder-view.c: Make non junk learn work again.
-
-2008-05-16 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #514383
-
- * mail.error.xml: Remove the "ask-mark-read" error.
-
-2008-05-14 Jeffrey Stedfast <fejj@novell.com>
-
- Needed so that IMAP4 can allow users to configure cache
- expiration per-folder.
-
- * em-folder-properties.c (emfp_get_folder_item): Add support for
- CAMEL_ARG_INT and CAMEL_ARG_DBL.
- (emfp_commit): Same.
-
-2008-05-14 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #463040, Patch by Milan Crha
-
- * em-folder-browser.c (emfb_list_message_selectedi), (emfb_set_folder):
- Forget former selected uid as soon as we know we moved to other.
-
-2008-05-09 Sankar P <psankar@novell.com>
-
- ** Fix for bug #531519
-
- * em-format-html-display.c: (efhd_message_update_bar):
- Evolution crashes on print-preview.
-
- ** Committed on behalf of Srinivasa Ragavan <sragavan@novell.com>
-
-2008-05-06 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #424744
-
- * em-composer-prefs.c:
- * em-format-html.c:
- * em-format-quote.c:
- * em-mailer-prefs.c:
- Use camel-iconv.c instead of e-iconv.h (now deprecated).
-
-2008-05-06 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-component.c (mail_component_show_logger):
- Use the GtkCellRendererText's "markup" property for error messages.
-
-2008-05-05 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #531426
-
- * em-format-html.c (efh_format_headers):
- Display face header images at 48x48 instead of 64x64.
- Patch from Roland Clobus.
-
-2008-05-04 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-component.c (mail_component_show_logger):
- Fix up the Debug Logs window a bit:
- - Add a Close button.
- - Fix some spacing issues (HIG compliance).
- - Just show the log level icon. Add a tooltip for the icon showing
- a description of the log level (Error/Warning/Debug). Also, avoid
- using e-icon-factory. Set the GtkCellRendererPixbuf's "stock-id"
- and "stock-size" properties instead.
- - Use GConfBridge to track the user's log level preference.
-
-2008-04-30 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #528288
-
- * em-folder-browser.c: (emfb_init), (em_folder_browser_show_wide):
- Ensure minimum size for preview and message list.
- * em-folder-browser.c: (get_view_query):
- Distinguish between no filter and custom filter.
- * message-list.c: (regen_list_done):
- Set info message to tree when no message shown in a list.
-
-2008-04-30 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #530245
-
- * searchtypes.xml: Let searches work with labels again.
-
-2008-04-30 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #467892
-
- * em-folder-view.c: (em_folder_view_open_selected):
- Do not inherit search filters when opening messages in new window.
- * message-list.c: (regen_list_exec):
- If we are called from folder_changed even, then keep the actually
- selected message so it will not disappear when user reads it and
- it doesn't belong to actual filter anymore.
-
-2008-04-30 Shuai Liu <shuai.liu@sun.com>
-
- ** Fix for bug #530672
- Evolution crashes when viewing pgp-signed message
-
- * em-format-html-display.c: Modify the array of smime_sign_colour
- from 4 to 5 to ensure the input by data-server is right
-
-2008-04-29 Milan Crha <mcrha@redhat.com>
-
- * em-utils.c: (em_utils_snoop_type):
- Fixes compiler warning (unused variable).
-
-2008-04-29 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #511337
-
- * em-format-html.h: (EMFormatHTMLState), (struct _EMFormatHTML):
- * em-format-html.c: (efh_init), (efh_format_done),
- (efh_format_timeout): Track state of the object to recognize
- whether rendering new content or doing nothing.
- * em-format-html-display.c: (efhd_can_process_attachment),
- (efhd_attachment_show), (efhd_attachment_popup),
- (efhd_attachment_image), (efhd_attachment_button):
- Do nothing when EMFormatHTML object's state is RENDERING,
- the puri object instance is not valid anyway.
-
-2008-04-28 Johan Euphrosine <proppy@aminche.com>
-
- ** Fix for bug #529247
-
- * em-format-html.h (struct _EMFormatHTML): Add header_colour.
-
- * em-format-html-display.c (efhd_gtkhtml_realise): Use bg style
- properties for body_colour, fg for header_colour, darken for
- frame_colour, bg for content_colour.
-
- * em-format-html.c (efh_init), (efh_format_exec), (efh_init),
- (efh_text_plain), (efh_text_enriched), (efh_text_html),
- (efh_message_deliverystatus): Use header_colour for text color of
- the message header, body_colour for background color of the
- message header, text_colour for text color of the message content,
- base_colour for background color of the message content.
-
-2008-04-28 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/em-utils.c: Avoid crash while detecting mime types.
-
-2008-04-28 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail/em-format-html.c: Fix the Mailer header display
-
-2008-04-25 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #273041
-
- * mail.error.xml: (junk-check-error), (junk-report-error),
- (junk-not-report-error): New error messages added.
- * em-junk-hook.h: (struct _EMJunkHookTarget), (em_junk_error_quark):
- * em-junk-hook.c: (manage_error), (em_junk_check_junk),
- (em_junk_report_junk), (em_junk_report_non_junk):
- Allow propagation of the error from the plugin in the hook target.
-
-2008-04-23 Milan Crha <mcrha@redhat.com>
-
- * em-format-html-display.c: (efhd_update_bar):
- Compiler warning fix.
-
-2008-04-23 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #529375
-
- * evolution-mail.schemas.in:
- * mail-config.glade:
- * em-utils.h: (em_utils_in_addressbook):
- * em-utils.c: (em_utils_in_addressbook):
- * em-format-html.c: (emfh_gethttp):
- * mail-session.c: (lookup_addressbook):
- * mail-config.h: (mail_config_get_lookup_book_local_only):
- * mail-config.c: (struct MailConfig), (mail_config_init),
- (mail_config_get_lookup_book_local_only):
- * em-mailer-prefs.h: (struct _EMMailerPrefs):
- * em-mailer-prefs.c: (junk_book_lookup_button_toggled),
- (em_mailer_prefs_construct): Add new option
- /apps/evolution/mail/junk/lookup_addressbook_local_only
- to determine whether check for address in a local address book only.
-
-2008-04-23 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #529179
-
- * em-folder-browser.c: (struct _EMFolderBrowserPrivate),
- (labels_changed_idle_cb), (gconf_labels_changed), (emfb_destroy):
- Rebuild search menu rather on idle, then immediately after the change
- in gconf, because other parts may not have this change propagated yet.
-
-2008-04-22 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #458505
-
- * mail-config.glade:
- One space between "Sender" and "Photograph".
-
-2008-04-22 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #529462
-
- * evolution-mail.schemas.in:
- Fix wording of "custom_header" GConf key description.
-
-2008-04-22 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #494171
-
- * mail-send-recv.c (build_dialog):
- Make the "Send & Receive Mail" window dimensions persistent.
-
- * evolution-mail.schemas.in:
- Add keys for storing "Send & Receive Mail" window dimensions:
- /apps/evolution/mail/send_recv_height
- /apps/evolution/mail/send_recv_maximized
- /apps/evolution/mail/send_recv_width
- Note the "maximized" key is required by GConfBridge but is not
- actually used since the window cannot be maximized.
-
-2008-04-22 Matthew Barnes <mbarnes@redhat.com>
-
- * em-composer-prefs.c:
- gconf-bridge.h moved to e-util.
-
-2008-04-21 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #323402
-
- * em-folder-tree.c: (folder_tree_new):
- * evolution-mail.schemas.in: Be able to disable ellipsizing of folder
- names with hidden option /apps/evolution/mail/display/no_folder_dots.
-
-2008-04-20 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #334444
-
- * em-format-html-display.c: (efhd_attachment_button),
- (efhd_update_bar), (efhd_message_update_bar),
- (efhd_message_add_bar):
- * em-format-html.c: (efh_format_exec):
-
-2008-04-17 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #526739
-
- * Makefile.am:
- * em-vfs-stream.h:
- * em-vfs-stream.c: Removed from project, not used anywhere.
- * em-menu.c:
- * em-config.c: Do not include gnome-vfs.
- * mail-ops.c: (save_messages_exec), (save_part_exec):
- Changes related to Data Server change of CamelStreamVFS.
- * em-format.c: (em_format_describe_part):
- * em-format-html-display.c: (efhd_bonobo_object), (efhd_find_handler),
- (efhd_use_component), (efhd_bonobo_unknown), (efhd_check_server_prop),
- (efhd_format_attachment): Drop use of deprecated gnome-vfs functions.
- * em-utils.c: (em_utils_snoop_type): Use gio to guess the mime_type.
- * em-popup.c: (emp_apps_open_in), (emp_apps_popup_free),
- (emp_standard_menu_factory): Use gio to fill popup and launch app.
-
-2008-04-16 Shuai Liu <shuai.liu@sun.com>
-
- ** Fix for bug #528358
-
- * em-utils.c: (em_utils_save_messages): Use message subject as default
- filename when attempting to 'save message'.
-
-2008-04-14 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #270406
-
- * em-folder-properties.c: (struct _prop_data), (emfp_free),
- (add_numbered_row), (emfp_get_folder_item),
- (emfp_dialog_got_folder_quota), (emfp_dialog_got_folder):
- Retrieve quota information for a folder and show it in a dialog.
- * mail-ops.h: (mail_get_folder_quota):
- * mail-ops.c: (struct _get_quota_msg), (get_quota_desc),
- (get_quota_exec), (get_quota_done), (get_quota_free),
- (MailMsgInfo get_quota_info), (mail_get_folder_quota):
- New operation to get folder's quota information.
-
-2008-04-13 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-browser.c:
- Add an icon for Folder->New.
-
-2008-04-10 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-config.glade:
- Revert my previous change. Glade was more destructive toward the
- file than I realized. But I think I fixed the core issue that was
- causing Glade 3 to crash: there were two widgets named "omenuCharset".
- Now the one in Composer Preferences is named "omenuCharset1".
-
-2008-04-10 Sankar P <psankar@novell.com>
-
- * em-composer-prefs.c: (em_composer_prefs_construct):
- Change the name of the variable we look for in
- the glade file.
-
- Also add some if conditions to avoid certain crash.
-
- ** See bug #527327
-
-2008-04-09 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-config.glade:
- Loaded this file into Glade 3.5 and saved it. Doing so appears
- to have fixed whatever corruption was causing previous Glade 3
- releases to choke on it.
-
-2008-04-08 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #523413
-
- * em-composer-utils.c (save_draft_done):
- Check the composer window's visibility to determine whether to
- destroy the window. See the corresponding composer/ChangeLog
- entry to get the full story.
-
- * em-composer-utils.c (em_utils_composer_save_draft_cb):
- Remove the 'quit' parameter.
-
-2008-04-07 Takao Fujiwara <takao.fujiwara@sun.com>
-
- reviewed by: Milan Crha
-
- ** Fix for bug #408579
-
- * mail.error.xml:
- Changed '&quot;' to '\"' to work with intltool.
-
-2008-04-06 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #335891
-
- * em-composer-prefs.c (em_composer_prefs_construct):
- Desensitize the signature editing interface if the "signatures"
- GConf key is not writable.
-
-2008-04-05 Matthew Barnes <mbarnes@redhat.com>
-
- * em-composer-prefs.c:
- Fix a corner case that I missed in my last commit.
-
-2008-04-05 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #526152, plus some tangential code cleanup.
-
- * Makefile.am:
- Remove all the IDL crud for GnomeSpell.
-
- * em-composer-prefs.c:
- * evolution-mail.schemas.in:
- * mail-config.c:
- Define our own GConf keys for active spell checking languages
- and the underline color for misspelled words, instead of relying
- on GnomeSpell's GConf keys. The new keys are:
- /apps/evolution/mail/composer/spell_color (string)
- /apps/evolution/mail/composer/spell_languages (list of strings)
-
- * em-composer-prefs.c:
- * em-composer-prefs.h:
- Cleanup the logic a bit to improve readability.
-
- * mail-config.c:
- Cleanup the GConf notification logic:
- - We don't need the notification IDs for GConf keys we're watching.
- - Minimize the repetition of GConf keys to reduce the risk of typos.
- - Reduce the number of notification callback functions.
-
- * Spell.idl:
- Remove this file; we don't use GnomeSpell anymore.
-
-2008-04-04 Jeffrey Stedfast <fejj@novell.com>
-
- * em-format-quote.c (emfq_format_header): Same as below.
-
- * em-format-html.c (efh_format_header): Need to unfold some
- headers. Also simplified figuring out the label.
- (efh_format_headers): Cleaned up some code.
-
-2008-04-02 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #264456
-
- * mail-component.c: (view_changed):
- Do not count deleted junk messages when doesn't show deleted messages.
-
-2008-04-03 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #350308
-
- * em-format-html-display.c: (efhd_gtkhtml_realise): Make colors only
- darker, not lighter. Use black in case someone has too dark theme.
-
-2008-04-02 Matthew Barnes <mbarnes@redhat.com>
-
- * em-composer-prefs (sig_edit_cb), (em_composer_prefs_new_signature):
- Adapt to new Bonobo-less signature editor.
-
- * mail-signature-editor.c:
- * mail-signature-editor.h:
- Rewrite the signature editor as a subclass of GtkhtmlEditor.
- Eliminates Bonobo from the equation.
-
- * em-composer-utils.c (composer_get_message),
- (em_utils_composer_send_cb), (save_draft_done),
- (em_utils_composer_save_draft_cb), (create_new_composer),
- (em_utils_compose_new_message),
- (em_utils_compose_new_message_with_mailto), (em_utils_post_to_folder),
- (em_utils_post_to_url), (edit_message), (forward_attached),
- (forward_non_attached), (reply_get_composer), (composer_set_body),
- (em_utils_reply_to_message), (post_reply_to_message):
- Adapt to new Bonobo-less composer.
-
- * mail-component-factory.c:
- Composer is no longer needs a Bonobo factory.
-
- * mail-config.c:
- Fix style pattern for EMsgComposer widgets.
-
-2008-04-02 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #271863
-
- * mail-component.c: (view_changed):
- Do not count deleted junked messages to total number of messages
- with unchecked "Hide Deleted Messages" option.
-
-2008-04-01 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #525508, spotted by Thomas M.
-
- * message-list.c (ml_tree_value_at):
- Fix a leaking CamelURL in the COL_LOCATION case.
-
-2008-04-01 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #525510, patch from Thomas M.
-
- * message-list.c (ml_tree_value_at):
- Mark "On This Computer" for translation.
-
-2008-03-29 Matthew Barnes <mbarnes@redhat.com>
-
- * em-network-prefs.c (em_network_prefs_finalise),
- (em_network_prefs_destroy), (emnp_parse_ignore_hosts):
- Fix some unused variable warnings.
-
-2008-03-27 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #523271
-
- * em-popup.c (emp_standard_menu_factory):
- Lowercase the MIME type before passing it to
- gnome_vfs_mime_get_all_applications().
-
-2008-03-27 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #522178
-
- * mail-folder-cache.c: (folder_changed): Put back hack with
- checking time of new message in the folder based with last
- time of new mail as it was before patch in bug #492702.
-
-2008-03-27 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #519292
-
- * message-list.h: (message_list_set_expand_all):
- * message-list.c: (message_list_set_expand_all):
- Remove unused confusing function.
- * message-list.c: (regen_list_done):
- Use numbers instead of gboolean value.
-
-2008-03-27 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #502826 (original patch by nickspoon0)
-
- * mail-config.glade:
- * em-composer-prefs.c: (attach_style_reply_new_order),
- (attach_style_info_reply), (em_composer_prefs_construct):
- Reword and reorder Reply Style items in the Preferences.
-
-2008-03-27 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #488175
-
- * message-list.c: (ml_tree_value_at):
- Colorize follow-up messages same as with due-by flag.
-
-2008-03-25 Veerapuram Varadhan <vvaradhan@novell.com>
-
- ** Added configurable Proxy settings for Evolution.
-
- * GNOME_Evolution_Mail.server.in.in:
- * Makefile.am:
- * em-network-prefs.c: (em_network_prefs_get_type),
- (em_network_prefs_class_init), (em_network_prefs_init),
- (em_network_prefs_finalise), (em_network_prefs_destroy),
- (toggle_button_toggled), (toggle_button_init), (emnp_widget_glade),
- (emnp_set_sensitiveness), (emnp_parse_ignore_hosts),
- (emnp_load_sys_settings), (notify_proxy_type_changed),
- (widget_entry_changed_cb), (emnp_free), (emnp_set_markups),
- (em_network_prefs_construct), (em_network_prefs_new):
- * em-network-prefs.h:
- * mail-component-factory.c: (factory):
- * mail-config-factory.c: (mail_config_control_factory_cb):
- * mail-config.glade:
-
-2008-03-19 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #511978
-
- * mail-config.glade: Resolve mnemonics clash on Junk tab.
-
-2008-03-19 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-view.h:
- * em-message-browser.h:
- * em-message-browser.c:
- Code cleanup, no logic changes.
-
-2008-03-18 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #519154
-
- * mail-component.c: (view_changed):
- Do not localize folder name used in window title.
-
-2008-03-18 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #506359
-
- * mail-component.c: (mail_component_show_logger):
- Add Translators' comments.
-
-2008-03-17 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #514744
-
- * em-folder-tree-model.c: (em_folder_tree_model_load_state):
- Check also for proper root node and use default if not the right one.
-
-2008-03-13 Milan Crha <mcrha@redhat.com>
-
- * em-folder-tree.c:
- * em-format-html.c: Fix an implicit function declaration.
-
-2008-03-13 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #515786
-
- * em-migrate.c: (em_migrate), (em_update_sa_junk_setting_2_23):
- Fix misspelled SpamAssassin word.
-
-2008-03-13 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #273177
-
- * em-utils.h: (em_utils_add_vcard):
- * em-utils.c: (emu_add_address_or_vcard),
- (em_utils_add_address), (em_utils_add_vcard):
- New function to add whole vCard to addressbook.
- * em-popup.c: (emp_add_vcard), (emp_standard_menu_factory):
- Add popup menu item to vcard attachments.
-
-2008-03-12 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes breakage caused by bug #513951
-
- * mail-autofilter.c (filter_gui_add_from_message),
- (mail_filter_rename_uri), (mail_filter_delete_uri):
- * mail-tools.c (mail_tool_get_local_movemail_path):
- * mail-vfolder.c (mail_vfolder_delete_uri), (mail_vfolder_rename_uri),
- (store_folder_deleted), (store_folder_renamed),
- (vfolder_load_storage), (vfolder_revert),
- (em_vfolder_editor_response), (edit_rule_response),
- (new_rule_clicked):
- * em-folder-browser.c (emfb_search_search_activated):
- * em-folder-tree.c (em_folder_tree_new):
- * mail-ops.c (uid_cachename_hack), (empty_trash_exec):
- * em-folder-view.c (emfv_setup_view_instance):
- * em-utils.c (em_filter_editor_response), (em_utils_edit_filters):
- * importers/mail-importer.c (import_folders_rec):
- * mail-folder-cache.c (rename_folders):
- * em-format-html.c (em_format_html_get_type):
- * mail-session.c (main_get_filter_driver):
- * mail-config.c (gconf_mime_types_changed), (uri_to_evname),
- (mail_config_folder_to_cachename), (get_new_signature_filename):
- Adapt to new meaning of mail_component_peek_base_directory().
-
- * mail-component.c (mail_component_init):
- Add back initialization of priv->base_directory. Accidentally
- removed it somehow in last commit.
-
-2008-03-11 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #513951
-
- * mail-config.c (gconf_mime_types_changed):
- Adapt to new meaning of xxx_component_peek_base_directory().
-
- * mail-component.c:
- Use e_get_user_data_dir() instead of constructing the full path.
-
-2008-03-06 Tobias Mueller <muelli@auftrags-killer.org>
-
- ** Fix for bug #520745
-
- * mail/em-format.c: Fix format-string vulnerability
- Patch by Tor Lillqvist <tml@iki.fi>
-
-2008-03-03 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-tree.c (emft_drop_async__done):
- Re-fix bug #351672 since my patch for bug #362638 accidentally
- reverted the original solution.
-
-2008-03-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for BNC bug #282466
-
- * em-icon-stream.c: (em_icon_stream_get_image),
- (em_icon_stream_is_resized): Handle CIDs of broken cases too.
-
-2008-03-03 Changwoo Ryu <cwryu@debian.org>
-
- * default/Makefile.am:
- * default/ko/*: Add Korean welcome message translation.
-
-2008-03-02 Srinivasa Ragavan <sragavan@novell.com>
-
- * evolution-mail.schemas.in: Make Bogofilter the default junk plugin
- in Evolution.
-
-2008-02-22 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #512776
-
- * Changes below prevents deadlock on start or send/receive.
- * mail-send-recv.c: (struct _refresh_folders_msg),
- (refresh_folders_exec), (refresh_folders_free),
- (receive_update_got_folderinfo): Do not look for active folders in
- main thread, rather do it in other thread and free folder info later.
- * mail-ops.h: (mail_get_folderinfo):
- * mail-ops.c: (struct _get_folderinfo_msg), (get_folderinfo_done),
- (get_folderinfo_free), (mail_get_folderinfo):
- * mail-folder-cache.h: (mail_note_store):
- * mail-folder-cache.c: (struct _update_data), (update_folders),
- (mail_note_store):
- * mail-component.c: (mc_add_store_done):
- The 'done' function returns if we can free folder info or not.
-
-2008-02-22 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for BNC #358697
-
- * em-folder-browser.c: (emfb_set_folder): Make sure the default search
- filter for sent/draft/outbox is "Recipients Contain"
-
-2008-02-20 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #469292
-
- * em-format-quote.c: (emfq_format_clone): Add empty line only when top
- posting is enabled.
-
-2008-02-19 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #516349
-
- * em-format-quote.c: (emfq_format_message):
- Do not force black text in quotation part of the message.
-
-2008-02-18 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #515744
-
- * em-folder-view.c: (emfv_setup_view_instance):
- * mail-component.c: (impl_finalize):
- * message-list.c: (ml_tree_value_at):
- Memory leak fix.
-
-2008-02-18 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #167638
-
- * mail-component.c: (impl_quit): Upstreamed Fejj's OpenSUSE patch for
- faster quitting.
-
-2008-02-18 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bnc #153807
-
- * em-composer-utils.c: (em_utils_post_to_folder): Patch from OpenSUSE.
-
-2008-02-16 Aidan Delaney <a.j.delaney@brighton.ac.uk>
-
- ** Fix for bug #516234
-
- * em-popup.c: (emp_apps_open_in): Removed a stray printf() statement.
-
-2008-02-15 Paul Bolle <pebolle@tiscali.nl>
-
- ** Fix for bug #515659
-
- * em-format-html.c: (em_format_html_set_mark_citations):
- Keep mark_citations and the CAMEL_MIME_FILTER_TOHTML_MARK_CITATION
- flag (part of text_html_flags) in sync.
-
-2008-02-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #515054
-
- * em-folder-view.c: (emfv_popup_mark_junk), (emfv_popup_mark_nojunk):
- Also clear/set new CAMEL_MESSAGE_NOTJUNK flag.
-
-2008-02-10 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #411576
-
- * evolution-mail.schemas.in: Add a key to decide if same fonts gotto
- be used in message list in vertical view column.
- * message-list.c: (create_composite_cell):
-
-2008-02-10 Suman Manjunath <msuman@novell.com>
-
- ** Fix for bug #510642
-
- * evolution-mail.schemas.in: Improved a schema-description.
- * mail-config.glade: Improved an error-message.
-
-2008-02-08 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #509741
-
- * mail-session.c (user_message_exec):
- Use the number of dialog buttons as a heuristic for whether to
- display a message in the status bar or immediately present the
- dialog to the user.
-
-2008-01-29 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-send-recv.c:
- Replace G_GNUC_FUNCTION (deprecated) with G_STRFUNC.
-
-2008-01-28 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #506948
-
- * em-folder-view.c: (url_unescape_amp), (emp_uri_popup_link_copy):
- Copy the unescaped url
-
-2008-01-28 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #504062
-
- * message-list.c: (get_normalised_string): Store strings for addresses,
- instead of collate keys.
- * message-list.etspec: Compare Subject as strings, not as collate.
-
-2008-01-28 Andre Klapper <a9016009@gmx.de>
-
- * em-filter-i18n.h: Added translator comments.
- * message-tag-followup.c: Added translator comments.
-
-2008-01-25 Johnny Jacob <jjohnny@novell.com>
-
- ** Fix for #467581.
-
- * em-folder-browser.c : Don't cancel all threads for a vfolder
- based search (all/account search). Introduced cameloperation for
- this and cancel it on clear.
-
-2008-01-24 Milan Crha <mcrha@redhat.com>
-
- ** Partial fix for bug #395939
-
- * em-format.c: (emf_inlinepgp_signed):
- * em-format-html-display.c: (efhd_format_optional):
- * em-folder-view.c: (emfv_destroy):
- Memory leak fix.
-
-2008-01-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #402487
-
- * em-folder-browser.c: (emfb_search_search_activated),
- (generate_viewoption_menu): Memory leak fix.
-
-2008-01-24 Milan Crha <mcrha@redhat.com>
-
- ** Part of bug #511488
-
- * mail-vfolder.h:
- * mail-vfolder.c: (vfolder_loaded): Function dropped.
- * mail-vfolder.c: (vfolder_load_storage): Allow to call this function
- more than once, but do load the storage only once.
- * em-folder-utils.c: (emfu_popup_new_folder_response):
- * mail-vfolder.c: (vfolder_edit), (vfolder_gui_add_rule),
- (vfolder_gui_add_from_message), (vfolder_gui_add_from_address):
- * em-folder-browser.c: (emfb_search_menu_activated):
- * em-folder-view.c: (emp_uri_popup_vfolder_sender),
- (emp_uri_popup_vfolder_recipient), (vfolder_type_current):
- Ensure vfolder is running.
-
-2008-01-24 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #511488
-
- * em-folder-tree-model.c: (em_folder_tree_model_signal_block):
- * em-folder-tree-model.h: Function to block folder-created function.
- * mail-vfolder.c: (vfolder_load_storage): Block the signal handler
- when loading.
-
-2008-01-24 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #510779
- ** Fix for bug #504103
-
- * em-mailer-prefs.c: (jh_tree_refill), (jh_add_cb), (jh_remove_cb),
- (init_junk_tree), (custom_junk_button_toggled),
- (em_mailer_prefs_construct): Added UI for the new junk preferences.
- * em-mailer-prefs.h:
- * evolution-mail.schemas.in: Add schema for junk header and address
- lookup.
- * mail-config.c: (gconf_jh_check_changed),
- (gconf_lookup_book_changed), (gconf_jh_headers_changed),
- (mail_config_init), (mail_config_reload_junk_headers),
- (mail_config_get_lookup_book):
- * mail-config.glade:
- * mail-config.h:
- * mail-session.c: (class_init), (lookup_addressbook),
- (mail_session_init), (mail_session_set_junk_headers):
- * mail-session.h:
-
-2008-01-22 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #405777
-
- * em-folder-view.c: (emfv_setup_view_instance),
- (emfv_setting_notify): Don't break abstraction. Call the right derived
- class.
-
-2008-01-20 Srinivasa Ragavan <sragavan@novell.com>
-
- * message-list.etspec: Revert the last cursor remove commit. It breaks
- selections with CTRL. May be, cairofy the cursor.
-
-2008-01-20 Srinivasa Ragavan <sragavan@novell.com>
-
- * message-list.etspec: Remove the focus cursor on the message list.
- The message list now has a nice cairo rendered row. This looks very
- close to the GtkTreeView thing.
-
-2008-01-16 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-browser.c:
- * message-list.c:
- Change of heart; decided we like the old "emblem-important"
- icon better than "mail-mark-important" for the message list
- and "Show" combo box.
-
-2008-01-16 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #509741
-
- * mail-session.c (user_message_exec):
- Fix a crash that occurs when prompted to accept a certificate.
- This is just a quick temporary fix; Srini and I have a more
- sophisticated solution in mind.
-
-2008-01-16 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #509697
-
- * mail-vfolder.c: (vfolder_edit):
- Ensure search folders are running before calling anything from this.
-
-2008-01-14 Kjartan Maraas <kmaraas@gnome.org>
-
- * evolution-mail.schemas.in: Add missing punctuation.
-
-2008-01-14 Gert Kulyk <gkulyk@yahoo.de>
-
- ** Fix for bug #350932
-
- * mail-config.glade: Enable the use of scrollable tabs in the
- mail-preferences dialog.
-
-2008-01-14 Martin Meyer <elreydetodo@gmail.com>
-
- ** Fix for bug #496301
-
- * evolution-mail.schemas.in: Made the long description of a couple of
- schemas more readable.
-
-2008-01-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #488213
-
- * em-icon-stream.c: (emis_fit):
- * em-format-html-display.c: (efhd_attachment_button):
- Use global function e_icon_factory_pixbuf_scale for scaling pixbufs.
-
-2008-01-10 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #507067
-
- * em-format-html-display.c: (efhd_get_uri_puri):
- Leak fix and enhanced behavior to return more than one URI separated
- by new line character ('\n'), if possible.
- * em-folder-view.c: (emfv_uri_popup_free): Free item itself too,
- because since now we use new allocated items, not the static one.
- * em-folder-view.c: (emfv_free_em_popup), (emfv_append_menu),
- (emfv_format_popup_event): Merge menus for more URIs and for part too.
-
-2008-01-10 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #211353
-
- * filtertypes.xml:
- * vfoldertypes.xml:
- * em-folder-view.c:
- * em-folder-browser.c:
- * em-mailer-prefs.h:
- * em-mailer-prefs.c:
- * mail-config.h:
- * mail-config.c:
- * mail-config.glade:
- * message-list.c:
- Label tags are now generated based on label name when creating, except
- of first 5 labels. New menu option "New Label" in popup menu over
- message list and editing of labels has been changed in Preferences.
- Also renaming tab in Preferences for "Labels", not "Colors", and the
- tab label too.
- mail-config-label... functions was moved to e-util/e-util-labels.c/.h.
- * message-list.etspec: Normalized columns has been moved by one
- when label column has been added.
-
-2008-01-10 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Most of the errors are now non-intrusive
-
- * em-folder-utils.c: (emfu_copy_folder_selected),
- (emfu_delete_response), (em_folder_utils_delete_folder):
- * em-folder-view.c: (emfv_delete_msg_response):
- * em-utils.c: (em_utils_edit_filters),
- (em_utils_save_part_to_file), (em_utils_temp_save_part),
- (error_response), (em_utils_show_error_silent),
- (em_utils_show_info_silent):
- * em-utils.h:
- * mail-autofilter.c: (mail_filter_delete_uri):
- * mail-component.c: (mail_component_show_logger):
- * mail-mt.c: (mail_msg_free):
- * mail-session.c: (do_user_message):
- * mail-vfolder.c: (mail_vfolder_delete_uri), (vfolder_edit_rule):
-
-2008-01-10 Sankar P <psankar@novell.com>
-
- * em-format-html.c: (efh_format_headers):
- Decode the right thingy. Fixes a regression in
- decoding of face header introduced while migration of
- camel_* functions to g_* functions.
-
-2008-01-08 Djihed Afifi <djihed@gmail.com>
-
- ** Fix for bug #309432
-
- * em-format-html.c: Fix message headers for RTL languages.
-
-2008-01-08 Colin Leroy <colin@colino.net>
-
- ** Fix for bug #499145
-
- * mail/em-composer-utils.c: Follow RFC 3798 to send return receipts.
-
-2008-01-08 Bharath Acharya <abharath@novell.com>
-
- ** Fix for bug #474118
-
- * mail-ops.c: (prepare_offline_exec): Check for the right type of store
- and invoke appropriate functions.
-
-2008-01-07 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #300336
-
- * mail-vfolder.h: (vfolder_loaded):
- * mail-vfolder.c: (vfolder_loaded): New helper function.
- * em-folder-utils.c: (emfu_popup_new_folder_response):
- * mail-vfolder.c: (vfolder_gui_add_rule),
- (vfolder_gui_add_from_message), (vfolder_gui_add_from_address):
- * em-folder-browser.c: (emfb_search_menu_activated):
- * em-folder-view.c: (emp_uri_popup_vfolder_sender),
- (emp_uri_popup_vfolder_recipient), (vfolder_type_current):
- Ensure vfolder is running.
- * mail-component.c: (mc_startup): Do not start vfolder when
- disabled by option '/apps/evolution/mail/display/enable_vfolders'.
- * evolution-mail.schemas.in: Added schema for new option.
- * mail-config.glade:
- * em-mailer-prefs.h:
- * em-mailer-prefs.c: Added checkbox for "Enable Search Folders" option.
-
-2008-01-06 Gilles Dartiguelongue <gdartigu@svn.gnome.org>
-
- ** Fix bug #497914
-
- * em-mailer-prefs.c: (emmp_header_is_valid):
- backport changes from the copy/pasted code in imap-headers
- plugin.
-
-2008-01-06 Michael Monreal <michael.monreal@gmx.net>
-
- ** Fix for bug #492188
-
- * em-folder-browser.c:
- * em-folder-tree.c:
- * em-folder-view.c:
- * message-list.c:
-
- Use the new Tangoized icons instead of deprecated icons from
- gnome-icon-theme.
-
-2008-01-02 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #317823
-
- * em-format-html-display.c: (efhd_get_uri_puri):
- New helper function to dig up uri or puri from the GtkHtml.
- If the object is an image, then pass it as puri or uri, depends
- on the source of the image.
- * em-format-html-display.c: (efhd_html_button_press_event),
- (em_format_html_display_popup_menu): Using new helper function.
-
-2008-01-02 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #364642
-
- * em-composer-prefs.h: (struct _EMComposerPrefs):
- * em-composer-prefs.c: (em_composer_prefs_construct):
- * mail-config.glade:
- * evolution-mail.schemas.in:
- (/apps/evolution/mail/composer/request_receipt):
- New option in Composer tab to preset Request Read Receipt in composer.
-
-2008-01-02 Andre Klapper <a9016009@gmx.de>
-
- * mail-config.glade:
- add mnemonic_widget for default junk plugin. see bug #476264.
-
-2008-01-02 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-event.c: (eme_target_free):
- * em-event.h:
- * em-folder-tree-model.c: (em_folder_tree_model_get_folder_name):
- * em-folder-tree-model.h:
- * mail-folder-cache.c: (real_flush_updates): Send the folder name
- along with the new mail event.
-
-2007-12-20 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #362638
-
- * mail-mt.h:
- Overhaul the message passing API:
- - Define a MailMsg type as the base message struct.
- - Define types for the various callback functions.
- - Add a priority value to each message (not yet used).
- - Add a reference count to each message.
- - Define a MailMsgInfo type for the virtual function table.
- - Record the size of message sub-types in MailMsgInfo.
- - New/changed functions:
- mail_msg_new() - Easier to use.
- mail_msg_ref() - Increase reference count.
- mail_msg_unref() - Decrease reference count.
- mail_msg_main_loop_push() }
- mail_msg_unordered_push() } Submit MailMsgs to various
- mail_msg_fast_ordered_push() } message-processing threads.
- mail_msg_slow_ordered_push() }
-
- * mail-mt.c (mail_msg_new):
- Use GSlice for memory allocation.
-
- * mail-mt.c (mail_msg_ref), (mail_msg_unref):
- New functions increment/decrement a MailMsg's reference count.
-
- * mail-mt.c (mail_cancel_hood_add), (mail_cancel_hook_remove):
- Convert the 'cancel_hook_list' from an EDList to a GHookList and
- modify the API accordingly.
-
- * mail-mt.c:
- Use GThreadPools instead of EThreads.
- Use GAsyncQueues instead of EMsgPorts.
-
- * em-composer-utils.c:
- * em-folder-browser.c:
- * em-folder-properties.c:
- * em-folder-tree.c:
- * em-folder-utils.c:
- * em-folder-view.c:
- * em-format-html-print.c:
- * em-format-html.c:
- * em-subscribe-editor.c:
- * em-sync-stream.c:
- * importers/elm-importer.c:
- * importers/mail-importer.c:
- * importers/pine-importer.c:
- * mail-component.c:
- * mail-folder-cache.c:
- * mail-mt.c:
- * mail-ops.c:
- * mail-ops.h:
- * mail-send-recv.c:
- * mail-session.c:
- * mail-vfolder.c:
- * message-list.c:
- Use the new MailMsg API for messages.
-
-2007-12-18 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-mt.c (do_op_status): Fix another compiler warning.
-
-2007-12-17 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail-mt.c: (mail_msg_free), (mail_msg_check_error): Fix some compiler warnings.
-
-2007-12-14 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #211353
-
- * message-list.etspec:
- * message-list.h:
- * message-list.c: Added new column to show labels.
- * filtertypes.xml:
- * vfoldertypes.xml:
- Code for label filters/search folders has been changed.
- * mail-config.glade:
- * em-folder-view.c: (emfv_set_label), (emfv_unset_label),
- (emfv_popup_label_clear), (emfv_popup_label_set),
- (emfv_popup_labels_get_state_for_tag), (emfv_popup):
- Labels popup submenu is now shown with checkboxes so one can set
- more than one label to the message and unset only one label from
- message. There has been added new function, because of this.
- * mail-config.h:
- * mail-config.c: New "interface" functions to work with labels.
- * em-mailer-prefs.h:
- * em-mailer-prefs.c: Editing labels in tree.
- * em-folder-browser.c:
- Labels in show menu reflect changes in preferences.
-
-
-2007-12-17 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #430369
-
- * mail-session.c: (mail_session_init): Init in the main gui thread.
-
-2007-12-17 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Non-intrusive errror reporting and basic logging support.
-
- * em-folder-browser.c: (emfb_help_debug): Invoke the debug menu.
- * evolution-mail.schemas.in: Schema for error timeout and level.
- * mail-component.c: (mail_component_init), (render_pixbuf),
- (render_level), (render_date), (append_logs), (spin_value_changed),
- (mail_component_show_logger): Handle the lifecycle of the logger.
- * mail-component.h: Api to show the logger.
- * mail-config.c: (gconf_error_time_changed),
- (gconf_error_level_changed), (mail_config_init),
- (mail_config_get_error_timeout), (mail_config_get_error_level): Load
- and get the error time and level.
- * mail-config.h:
- * mail-mt.c: (mail_msg_set_cancelable), (mail_msg_new),
- (end_event_callback), (mail_msg_free), (mail_msg_check_error),
- (operation_cancel), (do_op_status): Revamp the error handling.
- * mail-mt.h:
- * mail-ops.c: (send_queue_send), (mail_send_queue): Handle the send/receive
- case of error reporting separately.
- * mail-send-recv.c: (free_send_info), (mail_send):
-
-2007-12-15 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-tree-model.c (emft_model_unread_count_changed),
- (emfolder_tree_model_set_unread_count):
- Fix recently introduced compiler warnings.
-
-2007-12-15 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #492702
-
- * mail-config.h:
- * mail-config.glade:
- * evolution-mail.schemas.in:
- * mail-folder-cache.h:
- * mail-folder-cache.c:
- * em-mailer-prefs.h:
- * em-mailer-prefs.c: Moved bits of sound notification
- on new messages to mail-notification plugin.
- * em-migrate.c: (is_in_plugs_list),
- (em_update_message_notify_settings_2_21), (em_migrate):
- Migration code to move old options to new plugin options.
-
-2007-12-14 Sankar P <psankar@novell.com>
-
- * em-folder-tree-model.c: (emft_model_unread_count_changed),
- (em_folder_tree_model_init),
- (em_folder_tree_model_set_unread_count):
- * em-folder-tree.c: (em_folder_tree_construct):
- Moving some code from tree to model where it belongs.
- Fixes some CPU usage issue whenever (un)read count is updated.
- Hopefully no regresssions.
-
-2007-12-13 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-send-recv.c:
- Fix an implicit function declaration.
-
-2007-12-12 Alex "weej" Jones <alex@weej.com>
-
- ** Fix for bug #503111
-
- * mail-session.c: (mail_session_add_junk_plugin):
- Suppress "Loading %s as the default junk plugin" message.
-
-2007-12-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #502318
-
- * em-format-html-display.c: (struct _EMFormatHTMLDisplayPrivate),
- (efhd_search_destroy), (em_format_html_get_search_dialog),
- (em_format_html_display_search), (em_format_html_display_search_with),
- (em_format_html_display_search_close), (efhd_complete):
- Track search dialog activity rather based on flag than on widget
- existence, because the pointer to that widget it still
- there (non-NULL) even after destroy of that widget.
-
-2007-12-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #336074
-
- * mail-send-recv.c: (get_folders):
- Determine whether refresh folder from the store based on result of new
- store's function 'camel_store_can_refresh_folder'.
-
-2007-12-10 Jeff Cai <jeff.cai@sun.com>
-
- * em-folder-view.c: (emfv_setting_notify):
- If it is not FolderBrowser object, the pane size
- signal is not sent.
- Fix #501677
-
-2007-12-07 Alex Kloss <alexkloss@att.net>
-
- ** Fix for bug #329706
-
- * em-utils.c (em_utils_prompt_user):
- Add mnemonic 'd' to 'Do not show...' checkbox
- * mail.error.xml:
- Remove redundant 'Send anyway' label
- Reorder buttons to 'Send','Cancel' as per HIG
-
-2007-12-07 Akhil Laddha <lakhil@novell.com>
-
- ** Fix for bug #475508
-
- * em-folder-view.c:
- Changed the string for search folder and filter creation from
- message list to make it understandable.
-
-2007-12-07 Denis Washington <denisw@svn.gnome.org>
-
- ** Fix for bug #500561
-
- * em-folder-browser.c: Added icon for mark all messages as read menu
- item.
-
-2007-12-06 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #263236
-
- * em-folder-view.c: (emfv_delete_msg_response):
- Look for "Do not ask me again" check in alignment, so
- let it works properly.
-
-2007-12-05 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail-config.h: Fix a compiler warning.
-
-2007-12-05 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Added a preference to disable Magic Spacebar.
-
- * em-folder-browser.c: (html_scroll), (emfb_list_key_press): Check the cfg
- before invoking Magic Spacebar
- * em-mailer-prefs.c: (em_mailer_prefs_construct): Preference window handling
- * em-mailer-prefs.h:
- * evolution-mail.schemas.in:
- * mail-config.c: (gconf_magic_spacebar_changed),
- (mail_config_init), (mail_config_get_enable_magic_spacebar): Add it part of MC.
- * mail-config.glade:
- * mail-config.h:
-
-2007-12-04 David Turner <cillian64@googlemail.com>
-
- ** Fix for bug #347329
-
- * em-folder-selector.c: (em_folder_selector_create_new):
- Added a mnemonic to the 'Create' button of the 'New Folder' dialog
-
-2007-12-04 Alex Kloss <alexkloss@att.net>
-
- ** Fix for bug #329578
-
- * em-account-editor.c: (emae_receive_options_item):
- Add mnemonic for "minutes" widget
-
-2007-12-04 David Turner <cillian64@googlemail.com>
-
- ** Fix for bug #446029
-
- * em-format-html-display.c: (em_format_html_get_search_dialog):
- Fix for a mnemonic conflict in 'Find in Message' feature.
-
-2007-12-04 Alex Kloss <alexkloss@att.net>
-
- ** Fix for bug #466503
-
- * mail-config.glade: Fix for a mnemonic conflict in
- Preferences -> Mail Preferences -> Junk tab.
-
-2007-12-04 David Turner <cillian64@googlemail.com>
-
- ** Part of fix for bug #466499
-
- * em-account-editor.c: (emae_option_toggle):
- Added support for mnemonics in config options from camel
-
-2007-12-04 David Turner <cillian64@googlemail.com>
-
- ** Fix for bug #466497
-
- * mail-config.glade: Changed some mnemonics to stop l being used
- as a mnemonic key
-
-2007-12-04 David Turner <cillian64@googlemail.com>
-
- ** Fix for bug #466241
-
- * mail-config.glade: Added a mnemonic to "Authentication type"
- in the recieving mail section of configuration
-
-2007-12-03 Denis Washington <denisw@svn.gnome.org>
-
- ** Fix for bug #363644
-
- * mail-send-recv.c:
- Added a 6px padding around the scrolled window so that
- it's border doesn't look like a separator on the bottom.
-
-2007-11-29 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #271551
-
- * evolution-mail.schemas.in:
- New key "/apps/evolution/mail/composer/current_folder".
-
-2007-11-28 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-session.c:
- Fix an implicit function declaration caused by my last commit.
-
-2007-11-27 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #495123
-
- * mail-session.c (mail_session_init):
- Pass the CamelSession to the EAccountComboBox class (ugly hack).
-
-2007-11-26 Nicholas Miell <nmiell@gmail.com>
-
- ** Fix for bug #216485
- Edit->Select thread menu fix and improvement.
-
- * em-folder-browser.c: (emfb_edit_select_subthread): new function,
- (emfb_enable_map, emfb_verbs) hook it up
- * message-list.c: (select_thread): new function based on
- thread_select_foreach, (thread_select_foreach): remove the logic
- now in select_thread, (message_list_select_thread): use
- select_thread, (subthread_select_foreach): new function,
- (message_list_select_subthread): new function
- * message-list.h: (message_list_select_subthread): add prototype
-
-2007-11-23 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #494414
-
- * em-folder-selection-button.c: (set_contents): If used uri points
- to an account, then prepend account's name to folder name.
-
-2007-11-23 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #494425
-
- * em-utils.c: (get_unique_file_names):
- New helper function to "assign" unique file name to each part.
- * em-utils.c: (em_utils_save_parts): Use new helper function.
-
-2007-11-23 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #335931
-
- * message-list.c: (struct _regen_list_msg): New member last_row.
- * message-list.c: (regen_list_regen): Store last_row for later use.
- * message-list.c: (regen_list_regened): Restore row based on last_row
- when no uid was selected before.
- * message-list.c: (mail_regen_list): Init new last_row member.
- * em-folder-view.c: (emfv_select_next_message): New helper function
- to select messages in list.
- * em-folder-view.c: (emfv_popup_mark_junk), (emfv_popup_mark_nojunk),
- (emfv_popup_delete): Using new helper function, so get same behavior.
-
- * message-list.h: (struct _MessageList):
- * message-list.c: (on_cursor_activated_cmd): Removed cursor_row member.
-
-2007-11-22 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #498551
-
- * em-folder-tree.c: (emft_get_folder_info__got):
- Remove placeholder node even for store if no children found.
-
-2007-11-22 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #256899 by Chaya
-
- * mail-config.glade:
- * em-account-prefs.h: (struct _EMAccountPrefs):
- * em-account-prefs.c: (account_delete_clicked),
- (account_able_clicked), (account_able_toggled),
- (account_cursor_change), (em_account_prefs_construct):
- Remove "Disable/Enable" button from Mail Accounts preferences.
-
-2007-11-20 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #480514
-
- * em-folder-browser.c: (get_view_query),
- (emfb_search_search_activated): Let work "Last 5 Days' Messages" and
- "Recent messages" filters in Sent folder too.
-
-2007-11-20 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #493783
-
- * em-format-html.c: (efh_format_timeout): Do not erase old content
- when re-formatting same mail, so keep scroll position.
-
-2007-11-18 Gilles Dartiguelongue <gdartigu@svn.gnome.org>
-
- ** Fix bug #495875
-
- * em-folder-tree.c:
- right click menu reordering
-
-2007-11-14 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-tree.c (em_folder_tree_get_selected_folder_info):
- Call camel_folder_info_new() instead of g_new0().
-
-2007-11-13 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #263236
-
- * mail.error.xml: Terminology cleanup.
-
-2007-11-12 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #263236
-
- * mail.error.xml: New message "ask-delete-vfolder-msg".
- * em-folder-view.c: (emfv_delete_msg_response),
- (emfv_popup_delete): When deleting from vFolder, ask if really want
- to and warn about deleting in a real folder too.
- * evolution-mail.schemas.in: New option
- "/apps/evolution/mail/prompts/delete_in_vfolder" to not ask again.
-
-2007-11-08 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-selector.h:
- Fix some typos in the GObject macros.
-
-2007-11-06 Michael Monreal <mmonreal@svn.gnome.org>
-
- ** Fix for bug #492170
-
- * em-migrate.c:
- * evolution-mail.schemas.in:
- * mail-config.c:
- Replace the old color definitions with very similar colors from
- the Tango color palette.
-
-2007-11-05 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #343011
- (restore collapse state of selected folder after start)
-
- * em-folder-tree.c: (emft_maybe_expand_row): Do not expand subtree of
- a node, only make it visible.
- * em-folder-tree-model.h: (em_folder_tree_model_get_expanded_uri),
- (em_folder_tree_model_set_expanded_uri):
- * em-folder-tree-model.c: (em_folder_tree_model_get_expanded_uri),
- (em_folder_tree_model_set_expanded_uri):
- Same as ..._get/_set_expanded, but using 'uri', instead of 'key'.
- * em-folder-tree-model.c: (emftm_uri_to_key): New helper function.
- * mail-component.c: (impl_createView): Restore collapsed state after
- selecting last selected folder, if necessary.
-
-2007-11-05 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #488298
-
- * em-folder-view.c: (EMFolderViewEnable emfv_enable_map[]):
- Disable "MessageMarkAsNotJunk" if requested by context.
- * mail-folder-cache.c: (update_1folder): Do not count junked
- messages into "new" messages in drafts and out box.
- * em-popup.c: (em_popup_target_new_select): Disable "MarkAsJunk"
- and "MarnAsNotJunk" in drafts and out box.
-
-2007-11-05 Michael Monreal <mmonreal@svn.gnome.org>
-
- ** Fix for bug #492102
-
- * em-folder-view.c: Use mail-mark-read icon.
-
-2007-11-05 Milan Crha <mcrha@redhat.com>
-
- * em-folder-view.c: (emfv_message_reply): Leak fix.
-
-2007-11-05 Sankar P <psankar@novell.com>
-
- * em-folder-tree.c:
- Change enum order. LAST should be the last.
- Regression from #446035
-
- ** Fix for bug #493646
-
-2007-10-31 Priit Laes <plaes@svn.gnome.org>
-
- * em-format-html-display.c: Fix typo in documentation.
- * em-message-browser.c: Ditto.
-
-2007-10-31 Priit Laes <plaes@svn.gnome.org>
-
- * mail-component.c: (view_changed): Fix the ordering of the string
- components.
-
-2007-10-30 Michael Monreal <mmonreal@svn.gnome.org>
-
- ** Fix for bug #446035
-
- * em-folder-tree.c: (render_pixbuf):
- Use the folder-saved-search icon for vfolders.
-
-2007-10-26 Kjartan Maraas <kmaraas@gnome.org>
-
- * e-searching-tokenizer.c: (build_trie), (searcher_new),
- (output_token), (output_match), (merge_subpending),
- (searcher_next_token):
- * em-account-editor.c: (em_account_editor_new), (emae_load_text),
- (emae_check_license), (emae_auto_detect), (smime_sign_key_select),
- (smime_encrypt_key_select), (emae_service_url_path_changed),
- (emae_ssl_changed), (emae_service_provider_changed),
- (emae_refresh_providers), (emae_refresh_authtype),
- (emae_setup_service), (emae_identity_page):
- * em-composer-utils.c: (em_utils_send_receipt),
- (generate_account_hash), (em_utils_camel_address_to_destination),
- (reply_get_composer):
- * em-config.c: (em_config_new):
- * em-event.c: (em_event_peek):
- * em-filter-rule.c: (get_widget):
- * em-folder-browser.c: (generate_viewoption_menu),
- (em_folder_browser_show_preview), (get_view_query),
- (vfolder_setup_do), (emfb_search_search_activated),
- (emfb_list_key_press), (emfb_list_built):
- * em-folder-view.c: (em_folder_view_new),
- (emfv_setup_view_instance), (emfv_popup_forward),
- (emp_uri_popup_vfolder_sender), (emp_uri_popup_vfolder_recipient),
- (emfv_enable_menus):
- * em-format-hook.c:
- * em-format-html-display.c: (efhd_attachment_optional):
- * em-format-html.c: (em_format_html_new),
- (em_format_html_add_pobject), (em_format_html_find_pobject),
- (em_format_html_find_pobject_func), (efh_text_enriched),
- (efh_multipart_related), (efh_format_address), (efh_format_header):
- * em-icon-stream.h:
- * em-inline-filter.c: (emif_add_part), (emif_scan):
- * em-junk-hook.c: (emjh_construct_group):
- * em-mailer-prefs.c: (junk_plugin_setup):
- * em-menu.c: (em_menu_new), (em_menu_target_new_select):
- * em-message-browser.c: (em_message_browser_new):
- * em-popup.c: (em_popup_new), (em_popup_target_new_select):
- * em-sync-stream.c:
- * em-utils.c: (em_utils_save_part_to_file), (tag_editor_response),
- (em_utils_read_messages_from_stream), (em_utils_get_proxy_uri),
- (em_utils_in_addressbook):
- * em-vfolder-rule.c: (validate):
- * importers/elm-importer.c:
- * importers/mail-importer.c: (import_mbox_import),
- (import_folders_rec):
- * importers/pine-importer.c:
- * mail-component.c: (setline_done):
- * mail-folder-cache.c: (flush_updates):
- * mail-mt.c: (mail_msg_new), (checkmem), (mail_msg_check_error),
- (mail_msg_cancel), (mail_msg_wait), (mail_msg_init),
- (do_op_status):
- * mail-send-recv.c: (receive_status), (receive_done),
- (refresh_folders_get):
- * mail-vfolder.c: (mail_vfolder_get_sources_local),
- (mail_vfolder_get_sources_remote), (context_rule_added),
- (store_folder_renamed):
- * message-list.c: (e_mail_address_new), (e_mail_address_compare),
- (get_normalised_string), (ml_search_forward), (ml_search_backward),
- (ml_search_path), (message_list_select_uid),
- (thread_select_foreach), (message_list_copy), (ml_duplicate_value),
- (ml_free_value), (ml_initialize_value), (ml_value_is_empty),
- (ml_value_to_string), (subtree_latest), (sanitize_recipients),
- (ml_tree_value_at), (ml_tree_sort_value_at),
- (message_list_init_images), (filter_date), (build_tree),
- (build_flat_diff), (regen_list_regen):
-
- Warning fixes:
- - NULL vs. 0 vs FALSE
- - ANSIfication of function declarations
- - Remove unused bits
- - use unsigned ints for 1-bit bitfields
- - invalid pointer type
- - mark a global var static
- - mixing code and declarations
-
-2007-10-26 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #489027
-
- * evolution-mail.schemas.in: New hidden option 'thread_latest' to fall
- back to thread sorting like before 2007-05-17 (see below).
- * message-list.c: (struct _MessageListPrivate),
- (message_list_construct): New property 'thread_latest'.
- * message-list.c: (ml_tree_sort_value_at): Sort based on this property.
-
-2007-10-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #467364 by Christian Kintner
-
- * evolution-mail.schemas.in:
- * mail-config.glade: Evolution uses "Emoticon" instead of "Smiley".
-
-2007-10-24 Andre Klapper <a9016009@gmx.de>
-
- ** Fix for bug #261165
-
- * filtertypes.xml: added search on CC and BCC
-
-2007-10-23 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #271734
-
- * mail-mt.c: (do_op_status): Show description of operation, if
- available, instead of empty string and end activity properly, if
- operation ended before/during activity start.
-
-2007-10-15 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-view.c:
- Fix broken icon for View -> Zoom -> Normal Size.
-
-2007-10-12 Michael Monreal <michael.monreal@gmail.com>
-
- ** New inbox/outbox/sent icons (bug #479257)
-
- * mail/em-folder-tree.c, mail/mail-send-recv.c:
- Change icon references.
-
-2007-10-11 Matthew Barnes <mbarnes@redhat.com>
-
- * em-format.c (em_format_add_puri):
- Use G_GSIZE_FORMAT when printing a gsize/size_t to make compilers
- on all arches happy.
-
-2007-10-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #323977
-
- * em-filter-rule.c: (get_widget):
- Use "Add Action" instead of plain "Add" for button label.
-
-2007-10-11 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #329823
-
- * mail-component.h: (mail_indicate_new_mail):
- * mail-component.c: (mail_indicate_new_mail),
- (struct _MailComponentPrivate), (impl_dispose), (impl_createView):
- New function to indicate new mails on sidebar's button and storing
- component_view in priv struct for later use.
- * em-folder-view.c: (emfv_list_done_message_selected):
- * mail-folder-cache.c: (real_flush_updates):
- Indicate changes like for plugins for new mails.
-
-2007-10-09 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #437579
-
- * e-searching-tokenizer.c:
- * em-folder-browser.c:
- * em-format-html.c:
- * em-format-view.c:
- * em-format.c:
- * em-mailer-prefs.c:
- * em-mailer-prefs.h:
- * mail-session.c:
- * mail-session.h:
- * mail-vfolder.c:
- * message-list.c:
- Fix various compiler warnings. Patch from Milan Crha.
-
-2007-10-09 Tobias Mueller <muelli@auftrags-killer.org>
-
- ** Fix for bug #482575
-
- * em-folder-view.c: Don't use "insert_image" icon.
- Patch by Michael Monreal <infernux@web.de>
-
-2007-10-09 Bharath Acharya <abharath@novell.com>
-
- ** Fix for bug #484635
-
- * em-folder-tree-model.c: (em_folder_tree_model_remove_store_info):
- Destroy functions in GHashTables to simplify memory management already
- free the store info. So do no free it again in this function.
-
-2007-10-09 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #477045
-
- * em-popup.c: (EPopupItem emp_standard_uri_popups[]): Use 'contact-new'
- icon name rather than 'edit-add' for "Add to address book" item.
-
-2007-10-05 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #468736
-
- * em-folder-view.c: (em_folder_view_print):
- * em-format.c: (merge_missing), (em_format_merge_handler):
- * em-format.h:
-
-2007-10-04 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #477045
-
- * em-folder-tree.c:
- Use "document-properties" icon in pop-up menu.
-
-2007-10-03 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #473903
-
- * mail-send-recv.c: (build_dialog), (receive_get_folder):
- Fixes serious warnings, rest is because of this fix.
- * em-event.c: (em_event_target_new_send_receive):
- * em-event.h: (struct _EMEventTargetSendReceive),
- (em_event_target_new_send_receive):
- Changed structure member and function prototype to reflect fixes.
-
-2007-10-02 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #469657
-
- * em-composer-prefs.c:
- * em-folder-tree-model.c:
- * em-format.c:
- * em-format-html.c:
- * em-migrate.c:
- * em-subscribe-editor.c:
- * mail-component.c:
- * mail-send-recv.c:
- * message-list.c:
- * importers/elm-importer.c:
- Use destroy functions in GHashTables to simplify memory management.
-
-2007-10-01 Sankar P <psankar@novell.com>
-
- * em-format-html.c: (efh_format_headers):
- Display Face header value if contacts doesn't
- have any image associated with them.
- Fixes bug mentioned in #481235 and not the
- enhnacement request.
-
-2007-09-27 Matthew Barnes <mbarnes@redhat.com>
-
- * em-account-editor.c:
- * evolution-mail.schemas.in:
- * mail-config.glade:
- Use consistent terminology for mail messages (#480621).
-
-2007-09-27 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #477045
-
- * em-format-html.c (efh_format_headers):
- * em-migrate.c (upgrade_passwords_1_2):
- Use GLib's Base64 API instead of Camel's.
-
-2007-09-27 Hiroyuki Ikezoe <poincare@ikezoe.net>
-
- ** Fix for bug #461195
-
- * mail-marshalers.list: Remove needless marshalers.
-
-2007-09-27 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #477045
-
- * em-folder-tree.c:
- * em-folder-view.c:
- * em-popup.c:
- * mail-component.c:
- * mail-mt.c:
- * mail-send-recv.c:
- * message-list.c:
- Use standard icon names where applicable.
-
-2007-09-21 Matthew Barnes <mbarnes@redhat.com>
-
- * Makefile.am:
- Distribute README.async (#478704).
-
- * importers/Makefile.am:
- Remove references to evolution-outlook-importer.c and
- netscape-importer.c; we haven't shipped them for over two years
- (see ChangeLog entry for 2005-07-01).
-
-2007-09-21 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #411125
-
- * message-list.etspec:
- Uses 'compare="collate"' instead of 'compare="string"' to handle UTF
- characters correctly.
-
-2007-09-17 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #472865
-
- * em-composer-utils.c: (ask_confirm_for_unwanted_html_mail):
- Show dialog only when there is any recipient, not always.
-
-2007-09-12 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #476040
-
- * em-folder-browser.c:
- * message-list.c:
- Use "mail-attachment" icon instead of "stock_attach".
-
-2007-09-12 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #473514
-
- * em-filter-rule.c: (option_activate), (get_rule_part_widget):
- Allow rule part fill space if requested.
-
-2007-09-12 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #231178
-
- * filtertypes.xml: Added 'label' filtertype to the list.
-
-2007-09-07 Johnny Jacob <jjohnny@novell.com>
-
- ** Partial Fix for #467581.
-
- * mail-component.c : (enable_folder_tree) : Get the right URIs for
- selected and current folders.
-
-2007-09-07 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #473903
-
- * em-folder-utils.c: (new_folder_created_cb),
- (emfu_popup_new_folder_response):
- * em-folder-tree.c: (get_last_child),
- (em_folder_tree_select_prev_path):
- * em-composer-utils.c: (composer_get_message):
- * em-format.c: (em_format_add_puri):
- * em-mailer-prefs.c: (junk_plugin_changed), (junk_plugin_setup):
- Fixes serious compiler warnings.
-
-2007-09-06 Andre Klapper <a9016009@gmx.de>
-
- * mail-config.c: (config_cache_labels):
- Don't translate empty label names.
- Fixes bug 363645. Thanks to Bastien Nocera.
-
-2007-09-06 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #304993 (Novell Bugzilla)
-
- * em-folder-selector.c: (emfs_response): Do allow folder selection of
- created folders.
- * em-folder-utils.c: (new_folder_created_cb): Expand only if selection
- is not asked for.
-
-2007-09-01 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-view:
- Use modern icon names for "Junk" and "Not Junk".
-
-2007-08-31 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #377763
-
- * em-icon-stream.c: (emis_fit): Do not scale under 1x1 pixel.
-
-2007-08-31 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Move away from g_assert to g_return* calls
-
- * em-account-editor.c: (emae_auto_detect), (emae_queue_widgets):
- * em-filter-editor.c: (select_source):
- * em-filter-rule.c: (xml_encode):
- * em-folder-properties.c: (emfp_commit), (emfp_get_folder_item):
- * em-folder-tree-model.c: (folder_renamed):
- * em-folder-tree.c: (em_folder_tree_get_model_storeinfo):
- * em-folder-utils.c: (emfu_popup_new_folder_response):
- * em-folder-view.c: (emfv_setup_view_instance):
- * em-format-html-display.c: (efhd_attachment_optional):
- * em-format-html.c: (em_format_html_add_pobject),
- (efh_format_timeout):
- * em-format.c: (em_format_add_puri):
- * em-migrate.c: (emm_setup_initial):
- * em-sync-stream.c: (sync_op):
- * em-utils.c: (em_uri_to_camel):
- * em-vfolder-rule.c: (em_vfolder_rule_add_source),
- (em_vfolder_rule_find_source), (em_vfolder_rule_remove_source),
- (xml_encode):
- * mail-component.c: (view_control_activate_cb), (setline_done),
- (mail_component_get_folder), (mail_component_get_folder_uri):
- * mail-config-factory.c: (mail_config_control_factory_cb):
- * mail-config.c: (mail_config_get_accounts):
- * mail-folder-cache.c: (mail_note_store_remove), (mail_note_store):
- * mail-mt.c: (do_op_status):
- * mail-ops.c: (mail_append_mail), (mail_transfer_messages):
- * mail-send-recv.c: (free_send_data), (mail_send_receive),
- (mail_receive_uri):
- * mail-session.c: (alert_user):
- * mail-tools.c: (mail_tool_uri_to_folder):
- * mail-vfolder.c: (mail_vfolder_add_uri),
- (mail_vfolder_delete_uri), (mail_vfolder_rename_uri),
- (store_folder_renamed):
- * message-list.c: (get_message_uid), (get_message_info),
- (get_normalised_string), (ml_duplicate_value), (ml_free_value),
- (ml_initialize_value), (ml_value_is_empty), (ml_value_to_string),
- (subtree_unread), (subtree_size), (subtree_latest),
- (ml_tree_value_at), (ml_tree_sort_value_at),
- (ml_tree_set_value_at), (build_subtree), (add_node_diff),
- (remove_node_diff), (build_subtree_diff), (ml_getselected_cb),
- (message_list_thaw):
-
-2007-08-30 Gavin Scott <gavindscott@yahoo.com>
-
- ** Fixes bug #351672
-
- * em-folder-tree.c: Remove unneeded gtk_drag_finish call
-
-2007-08-28 Wadim Dziedzic <wadimd@svn.gnome.org>
-
- * default/Makefile.am: added Polish translation of welcome email
- * default/pl:
-
-2007-08-27 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html.c: Fix a typo build break.
-
-2007-08-27 Johnny Jacob <jjohnny@novell.com>
-
- ** Fix for #467635.
-
- * evolution-mail.schemas.in : Changed string.
-
-2007-08-27 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #431459
-
- * em-format-hook.c: (emfh_construct): Enable format plugins while
- loading only.
-
-2007-08-27 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #364700
-
- * em-junk-hook.c: (em_junk_init): Load/Enable junk plugins while
- loading only.
- * mail-session.c: (mail_session_add_junk_plugin):
-
-2007-08-27 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #256878 from Vincent Untz
-
- * em-format-html-display.c: Set the string for valid signatures.
- * em-format-html.c:
-
-2007-08-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #414420 by Ed Catmur
-
- * em-folder-view.c: (struct _EMFolderViewPrivate),
- (emfv_destroy), (emfv_popup_mark_unread), (mst_free),
- (emfv_list_done_message_selected):
- Fix crasher on repeated destroy.
-
-2007-08-24 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #385414 by makuchaku (Mayank)
-
- * em-format-html.c: (efh_format_source):
- Use ...PRESERVE_8BIT rather than ...ESCAPE_8BIT for message source.
-
-2007-08-24 Bharath Acharya <abharath@novell.com>
-
- ** Fix for bug #464338
-
- * em-folder-browser.c: (emfb_folder_create): Fetches the CamelFolderInfo
- from the EMFolderTree.
-
-2007-08-24 Li Yuan <li.yuan@sun.com>
-
- * mail-config.glade:
- Fix for #262682. Add labelled-by relation between labels and
- entry.
-
-2007-08-23 Sankar P <psankar@novell.com>
-
- reviewed by: Andre Klapper <a9016009@gmx.de>
-
- * Fix for bug #468869
-
- * mail-config.glade:
- Mark strings for Translation.
-
-2007-08-22 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #468303
-
- * em-mailer-prefs.c: (junk_plugin_setup): Add strings for i18n.
-
-2007-08-21 Tobias Mueller <tobiasmue@svn.gnome.org>
-
- ** Another fix for bug #467382
-
- * em-folder-view.c: Changing position of emfb_enable_map to
- be able to compile with -pedantic
-
-2007-08-21 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #468734
-
- * em-mailer-prefs.c: (label_color_set): color-set signal has no rgba
- passed.
-
-2007-08-20 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-component.c (enable_folder_tree):
- Alternate fix for bug #467599 (also bug #467883).
-
-2007-08-20 Tobias Mueller <tobiasmue@svn.gnome.org>
-
- ** Fix for bug #467382
-
- * em-folder-browser.c: Changing position of emfb_enable_map to
- be able to compile with -pedantic
-
-2007-08-20 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #367760
-
- * em-utils.c: (em_filename_make_safe): Added '#' as non-safe character.
- * em-utils.c: (em_utils_save_part): Using em_filename_make_safe and
- creates filename similar to em_utils_save_parts.
- * em-utils.c: (em_utils_save_parts): Using em_filename_make_safe.
-
-2007-08-20 Johnny Jacob <jjohnny@novell.com>
-
- ** Fix for bug #467599.
-
- * mail-component.c: (enable_folder_tree): No need to emit a
- folder_selected signal when no folder is selected. Plugged a
- memory leak.
-
-2007-08-20 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #467165
-
- * em-folder-tree.c: (emft_tree_user_event): If the event is null, it
- may be a keyboard event.
-
-2007-08-16 Milan Crha <mcrha@redhat.com>
-
- ** Part of fix for bug #350539
-
- * em-format-quote.c: (emfq_format_headers), (emfq_text_plain):
- * em-format.c: (emf_multipart_alternative), (emf_inlinepgp_signed):
- * em-popup.c: (emp_part_popup_set_background):
- * em-format-html.c: (efh_text_plain), (efh_message_external),
- (efh_format_headers):
- Ensures non-NULL part.
-
-2007-08-16 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #467198
-
- * mail-component.c: (enable_folder_tree): Initialize the camel
- exception.
-
-2007-08-16 Johnny Jacob <jjohnny@novell.com>
-
- ** Fix for #364431.
-
- * em-subscribe-editor.c : (sub_editor_refresh) : Wait for thread
- to finish before refreshing.
-
-2007-08-16 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #466548
-
- * em-composer-utils.c: (em_utils_composer_send_cb):
- e_msg_composer_get_preferred_account can return NULL, so test for it.
-
-2007-08-13 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #352346
-
- * em-migrate.c (em_update_accounts_2_11), (em_migrate):
- Added function to change "spool" to "spooldir" for those
- spools which points on directories.
-
-2007-08-13 Johnny Jacob <jjohnny@novell.com>
-
- ** Fix for #458498 from Lucky Wankhede <wlakke@novell.com>
-
- * evolution-mail.schemas.in : String fix.
-
-2007-08-08 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-browser.c: (emfb_set_folder): Use the gconf key to
- unselect mail and preview.
- * evolution-mail.schemas.in: Add a new gconf key to have a safe view
- if the selected mail crashes.
-
-2007-08-07 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #464312
-
- * em-folder-tree-model.c: (em_folder_tree_model_get_selected): If the
- selected uri is empty string, let it be NULL.
- * em-folder-tree.c: (emft_tree_selection_changed),
- (em_folder_tree_select_prev_path): If nothing is selected, remove
- message list and preview.
- * em-folder-view.c: (emfv_set_folder): Don't dup NULL
- * message-list.c: (message_list_set_folder): Don't dup NULL
-
-2007-08-07 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #419690
-
- * message-list.c: (message_list_construct): FALSE isn't really equal
- to NULL.
-
-2007-08-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #463061
-
- * em-mailer-prefs.c: (em_mailer_prefs_construct): Set the signal
- handlers later than assigning values to radio groups.
-
-2007-08-02 Tobias Mueller <muelli@auftrags-killer.org>
-
- * message-list.c: (regen_list_regened) Removed dead if
- statement, fixes bug #387312
-
-2007-08-02 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for expanding newly created folders from Lucky
-
- * em-folder-browser.c: (emfb_folder_create):
- * em-folder-selector.c: (emfs_response),
- (em_folder_selector_set_selected),
- (em_folder_selector_set_selected_list):
- * em-folder-tree.c: (em_folder_tree_set_selected_list),
- (emft_popup_new_folder), (em_folder_tree_set_selected):
- * em-folder-tree.h:
- * em-folder-utils.c: (new_folder_created_cb),
- (emfu_popup_new_folder_response), (em_folder_utils_create_folder):
- * em-folder-utils.h:
- * mail-component.c: (impl_createView), (create_item),
- (create_local_item_cb), (impl_requestCreateItem):
-
-2007-07-31 Veerapuram Varadhan <vvaradhan@novell.com>
-
- * em-format-html.c (efh_format_headers): Do not show the
- pretty-"on-behalf-of"-band for all messages that has Sender header
- set, instead rely on the custom X-Evolution-Mail-From-Delegate
- flag that will be added by each providers.
-
-2007-07-30 Chenthill Palanisamy <pchenthill@novell.com>
-
- * em-format-html.c: (efh_format_headers): Marked
- a string for translation.
-
- Committing on behalf of Bharath Acharya <abharath@novell.com>
-
-2007-07-30 Chenthill Palanisamy <pchenthill@novell.com>
-
- * em-format-html.c: (efh_format_headers): Displaying a message
- to the recipient of the mail informing him about delegated mails.
- The message is displayed for all mails containing the "Sender" field
- Committing on behalf of Bharath Acharya <abharath@novell.com>
-
-2007-07-29 Rob Bradford <rob@robster.org.uk>
-
- ** Potential fix for: #453668
-
- * mail-folder-cache.c: (folder_changed):
- Deal with the fact that camel_folder_get_message_info can return NULL
- and therefore don't try and dereference anything from that pointer.
-
-2007-07-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #459030
-
- * em-format-html.c (efh_format_address): Workaround broken N_ strings.
-
-2007-07-29 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-browser.c: (emfb_list_key_press): Fix a build break with
- Magic spaebar.
-
-2007-07-24 Johnny Jacob <jjohnny@novell.com>
-
- ** Fix for bug #458894
-
- * em-account-prefs.c : (account_delete_clicked) : Test the
- validity of Iter and select the row accordingly.
-
-2007-07-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #453544 from hggdh
-
- * mail.error.xml:
-
-2007-07-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #428123 from Lucky
-
- * mail-config.glade:
-
-2007-07-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #332112 from Lucky
-
- * mail-send-recv.c: (receive_done):
-
-2007-07-29 Johnny Jacob <jjohnny@novell.com>
-
- ** Fix for bug #237989
-
- * em-folder-browser.c : Adding more support for bkspace in magic
- space bar feature.
- * em-folder-tree.c (em_folder_tree_select_prev_path) :
- Added. Select the previous folder.
-
-2007-07-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #458820 from Cosimo Cecchi
-
- * em-mailer-prefs.c: (photo_toggle_changed),
- (em_mailer_prefs_construct):
-
-2007-07-29 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-mailer-prefs.c: (em_mailer_prefs_construct): Fix a crash while
- starting preferences window.
-
-2007-07-27 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #303937
-
- * message-list.c: (ml_tree_drag_data_received):
- Don't do anything when ml->folder is NULL.
-
-2007-07-27 Hiroyuki Ikezoe <poincare@ikezoe.net>
-
- * em-utils.c: (em_utils_save_parts): Do not free const pointer.
- Plugged memory leak.
-
-2007-07-26 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #273386
-
- * em-format-html.c: (efh_format_timeout):
- Clear preview and show text "Formatting message" at the beginning.
-
- * em-format-html-display.c: (efhd_attachment_show):
- Changed debug output to print also pointer address.
- * em-format.c: (emf_clear_puri_node):
- Added debug output to see which memory is going to be freed.
- * em-format-html.c: (efh_url_requested), (efh_format_headers):
- Warnings cleanup.
-
-2007-07-26 Sankar P <psankar@novell.com>
-
- * Committed on behalf of Atos Origin Communication Systems
- <support-syscom@osorigin.com>
- * em-composer-utils.c: (em_utils_send_receipt):
- - Fixes malformed body part headers for a MDN
- See bug #458275
-
-2007-07-26 Hiroyuki Ikezoe <poincare@ikezoe.net>
-
- * em-folder-browser.c: (emfb_search_search_activated): Plugged memory
- leak.
-
-2007-07-17 Sankar P <psankar@novell.com>
-
- * em-format-html.c: (efh_format_headers):
- Decodes Face header and displays the image.
-
-2007-07-16 Sankar P <psankar@novell.com>
-
- * em-composer-prefs.c: (em_composer_prefs_construct):
- * em-composer-prefs.h:
- * mail-config.glade:
- Provide support for keeping your signature on top
- while replying.
-
-2007-07-11 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c: (efhd_attachment_button): Take warning
- softly instead of a crash.
-
-2007-07-09 Chenthill Palanisamy <pchenthill@novell.com>
-
- reviewed by: Veerapuram Varadhan <vvaradhan@novell.com>
-
- * em-composer-utils.c: (em_utils_send_receipt): Added some flags so that
- the receipts work fine even if the account configured is not the default one.
-
- Committing on behalf of Bharath Acharya <abharath@novell.com>
-
-2007-07-09 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-view.c: (emfv_setup_view_instance)
- Abort if ETable specification file fails to load.
-
-2007-06-22 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #307410
-
- * em-utils.[ch]: (em_utils_clear_get_password_canceled_accounts_flag):
- Added new function to clear previously set flag to default value.
- * mail-session.c: (get_password): Storing and using new flag within
- account's service structure.
- * mail-component.c: (impl_sendAndReceive):
- Always clear flag to default when user clicks UI component.
-
-2007-07-09 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #271864 from Hiroyuki Ikezoe
-
- * mail-component.c: (view_changed):
-
-2007-07-09 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #347782 from hggdh
-
- * em-format.c: (emf_multipart_encrypted),
- (emf_inlinepgp_encrypted):
-
-2007-07-08 Johnny Jacob <jjohnny@novell.com>
-
- * em-composer-utils.c : Added composer.presendcheck event. Fixes
- #334118.
-
-2007-07-07 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #317281 from Michael P. Lepore
-
- * filtertypes.xml: Add support to search/filter/vfolders on flag
- completion status
- * searchtypes.xml:
- * vfoldertypes.xml:
-
-2007-07-07 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #312370 from B S Srinidhi
-
- * em-format-html.c: (emfh_gethttp):
-
-2007-07-06 Matthew Barnes <mbarnes@redhat.com>
-
- * em-format-html-print.c:
- Use new gtk_html_print_operation_run() function in GtkHTML.
-
-2007-07-04 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Added the hook for plugging into Send/Receive dialog for the
- Evolution RSS plugin.
-
- * em-event.c: (em_event_target_new_send_receive):
- * em-event.h:
- * mail-send-recv.c: (build_dialog), (mail_send_receive):
-
-2007-07-03 simon.zheng <simon.zheng@sun.com>
-
- ** Fix for bug #453294
-
- * em-utils.c: (em_utils_save_parts): Convert filename encoding
- from UTF-8 to current locale before saving attachement.
-
-2007-07-02 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #449811
-
- * em-folder-browser.c: (emfb_list_key_press): Magic space bar works
- only under non-caret mode.
-
-2007-07-02 Wang Xin <jedy.wang@sun.com>
-
- Fixes #450820.
-
- * em-format-quote.c: Add an empty new line at the beginning
- of the mail body when relpying a mail.
-
-2007-06-25 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #352947
-
- * em-account-editor.c: (smime_sign_key_select),
- (smime_encrypt_key_select): EMAccountEditor isn't a GtkWidget.
-
-2007-06-18 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #448223 from Gilles Dartiguelongue
-
- * em-folder-browser.c: (generate_viewoption_menu):
-
-2007-06-18 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #445812 from Gilles Dartiguelongue
-
- * em-folder-view.c: (emfv_on_url_cb):
- * em-popup.c: (em_popup_target_new_uri):
- * em-popup.h:
-
-2007-06-18 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #437935 from Gilles Dartiguelongue
-
- * em-folder-tree-model.c: (em_folder_tree_model_is_type_inbox):
-
-2007-06-18 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #443659 from Vinod
-
- * em-account-prefs.c: (account_able_clicked),
- (account_able_toggled), (account_cursor_change):
-
-2007-06-05 Milan Crha <mcrha@redhat.com>
-
- ** Fix for bug #330175
-
- * em-folder-view.c: (emfv_message_reply):
- Added helper function html_contains_nonwhitespace which returns TRUE
- if selected html text contains at least one non-space character.
-
-2007-06-16 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Add support for the Magic Space Bar.
-
- * em-folder-browser.c: (html_scroll), (emfb_init),
- (emfb_list_key_press):
- * em-folder-tree.c: (emft_tree_user_event),
- (em_folder_tree_select_next_path):
- * em-folder-tree.h:
-
-2007-06-15 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-send-recv.c:
- Use ellipsized GtkLabels instead of EClippedLabels (#447727).
-
-2007-06-13 Sankar P <psankar@novell.com>
-
- * em-folder-view.c:
- Fixes build break by including missing headers.
- See #442631
-
-2007-06-12 Bastien Nocera <hadess@hadess.net>
-
- * em-folder-view.c: (emfv_list_key_press):
- Add support for the XF86Reply and XF86MailForward multimedia
- keys (Closes: #442631)
-
-2007-06-09 Matthew Barnes <mbarnes@redhat.com>
-
- * Makefile.am:
- Fix a minor typo spotted by Gilles Dartiguelongue (#386503).
-
-2007-06-05 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-view.c (emfv_on_url_cb):
- Duplicate a translated string since we free it later.
-
-2007-06-05 Daniel Nylander <po@danielnylander.se>
-
- * default/Makefile.am: Added sv to SUBDIRS
-
-2007-06-04 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-ops.h: Fix another implicit function declaration.
-
-2007-05-28 Veerapuram Varadhan <vvaradhan@novell.com>
-
- * em-folder-tree.c: (emft_popup_new_folder),
- (em_folder_tree_get_selected_folder_info): Do not fetch
- folder-info from backend - just use the data from the current
- folder tree.
-
-2007-06-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for version removal from Installed files from Gilles Dartiguelongue
-
- * Makefile.am:
-
-2007-06-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #438461 from Gilles Dartiguelongue
-
- * mail-config.glade:
-
-2007-06-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #443140 from Vinod
-
- * mail.error.xml:
-
-2007-06-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #3355396 from Muktha
-
- * em-account-editor.c:
- (em_account_editor_folder_selector_button_new):
- * mail-config.glade:
-
-2007-06-03 Srinivasa Ragavan <sragavan@novell.com>
-
- * evolution-mail.schemas.in.in: Default for photo to be false.
-
-2007-05-12 Gilles Dartiguelongue <dartigug@esiee.fr>
-
- ** Compilation warnings cleanup
-
- * em-composer-utils.c: (composer_get_message):
- * em-event.c: (em_event_target_new_composer):
- * em-filter-folder-element.c: (xml_encode), (xml_decode):
- * em-filter-rule.c: (xml_encode), (load_set), (xml_decode):
- * em-filter-source-element.c: (xml_encode), (xml_decode), (clone):
- * em-folder-browser.c: (emfb_search_config_search),
- (emfb_folder_refresh):
- * em-folder-tree-model.c: (em_folder_tree_model_load_state),
- (find_xml_node), (em_folder_tree_model_get_expanded),
- (em_folder_tree_model_set_expanded), (expand_foreach_r),
- (em_folder_tree_model_expand_foreach),
- (em_folder_tree_model_is_type_inbox),
- (em_folder_tree_model_get_selected),
- (em_folder_tree_model_set_selected):
- * em-folder-tree.c: (tree_drag_data_get), (emft_drop_folder),
- (emft_drop_async_desc):
- * em-folder-view.c: (emfv_selection_get), (emfv_popup_delete),
- (emfv_message_reply), (emfv_on_url_cb):
- * em-format-hook.c: (emfh_construct_group), (emfh_construct):
- * em-format-html-display.c: (em_format_html_get_search_dialog),
- (efhd_html_link_clicked), (efhd_drag_data_get),
- (efhd_bonobo_object), (efhd_optional_button_show),
- (efhd_attachment_optional), (efhd_format_optional):
- * em-format-html.c: (efh_url_requested), (efh_text_plain),
- (efh_text_enriched), (efh_write_text_html),
- (efh_message_deliverystatus), (efh_format_address),
- (efh_format_header):
- * em-format-quote.c: (emfq_format_address), (emfq_format_source),
- (emfq_text_plain), (emfq_text_enriched), (emfq_text_html):
- * em-format.c: (em_format_format_content), (em_format_format_text),
- (emf_multipart_alternative), (emf_message_deliverystatus):
- * em-icon-stream.c: (emis_sync_write):
- * em-inline-filter.c: (emif_add_part), (emif_scan):
- * em-junk-hook.c: (emjh_construct_group), (emjh_construct):
- * em-mailer-prefs.c: (labels_changed), (emmp_header_add_header),
- (junk_plugin_changed), (junk_plugin_setup),
- (em_mailer_prefs_construct), (emmp_header_from_xmldoc),
- (em_mailer_prefs_header_from_xml), (em_mailer_prefs_header_to_xml):
- * em-mailer-prefs.h:
- * em-migrate.c: (xml_find_node), (upgrade_xml_uris),
- (upgrade_xml_uris_1_0), (load_accounts_1_0), (utf8_reencode),
- (upgrade_xml_1_2_rec), (upgrade_passwords_1_2), (is_mail_folder),
- (get_local_et_expanded), (get_local_store_uri),
- (upgrade_vfolder_sources_1_4),
- (em_migrate_folder_view_settings_1_4), (remove_system_searches),
- (emm_setup_initial):
- * em-utils.c: (em_utils_selection_get_mailbox),
- (em_utils_selection_get_message), (em_utils_selection_set_uidlist),
- (em_utils_selection_get_uidlist), (em_utils_selection_set_urilist),
- (em_utils_selection_get_urilist), (em_utils_part_to_html),
- (em_utils_message_to_html):
- * em-utils.h:
- * em-vfolder-rule.c: (xml_encode), (xml_decode),
- (select_source_with_changed):
- * importers/mail-importer.c: (import_mbox_import):
- * mail-component.c: (impl_createView), (status_check):
- * mail-config.c: (mail_config_signature_run_script):
- * mail-session.c: (mail_session_add_junk_plugin):
- * mail-signature-editor.c: (get_text), (menu_file_save_cb):
- * mail-tools.c: (mail_tool_get_local_movemail_path),
- (mail_tool_do_movemail):
- * message-list.c: (address_compare), (get_normalised_string),
- (message_list_setup_etree), (load_hide_state):
- * message-list.h:
-
-2007-06-02 Ross Burton <ross@openedhand.com>
-
- * mail-send-recv.c:
- Pass a CamelException when refreshing folders, removing the spew
- of warnings (#439957).
-
-2007-06-02 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-utils.c: (em_utils_contact_photo): Removing few debug statements.
-
-2007-06-02 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Outlook style reply option for bug #415770 from gicmo
-
- * em-composer-utils.c: (composer_set_body):
- * mail-config.glade:
- * mail-config.h:
-
-2007-06-01 Karl Relton <karllinuxtest.relton@ntlworld.com>
-
- ** Fix for bug #311512
-
- * mail-folder-cache.c (folder_changed): Check the added uids for
- messages which are not seen/deleted/junk and compare their
- received date with the timestamp of the last new-mail notification
- - if any are more recent than that, notify the user.
-
-2007-06-02 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Adds support for Contact Image in the preview pane
-
- * em-folder-view.c: (emfv_message_selected_timeout),
- (emfv_setting_notify):
- * em-format-html.c: (efh_format_headers):
- * em-format.c: (emf_init):
- * em-format.h:
- * em-mailer-prefs.c: (em_mailer_prefs_construct):
- * em-mailer-prefs.h:
- * em-utils.c: (em_utils_in_addressbook), (em_utils_contact_photo):
- * em-utils.h:
- * evolution-mail.schemas.in.in:
- * mail-config.glade:
-
-2007-05-31 Daniel Nylander <po@danielnylander.se>
-
- *default/sv : Added Swedish Welcome mail.
-
-2007-05-31 Jeff Cai <jeff.cai@sun.com>
-
- * em-folder-view.c (emfv_message_selected_timeout) :
- use displayed_uid instead of selected_uid.
- Fix #441992
-
-2007-05-28 Jules Colding <colding@omesc.com>
-
- * em-utils.c (em_utils_selection_set_urilist): Fix file leak
- (em_utils_selection_get_urilist): Fix file leak
-
- * importers/evolution-outlook-importer.c (import_outlook_import): Fix file leak
-
- * importers/mail-importer.c (import_mbox_import): Impossible code branch commented
-
- * importers/netscape-importer.c (netscape_import_filters): Fix file leak
- (netscape_init_prefs): Fix file leak
-
-2007-05-28 Srinivasa Ragavan <sragavan@novell.com>
-
- * evolution-mail.schemas.in.in: Make thread expand default to true.
- The threads should be expanded by default. Bug in previous commit.
-
-2007-05-25 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-send-recv.c:
- Revert the dialog_map() solution and use ellipsized labels.
- Also, only the label column in the GtkTable should expand and fill,
- and never show a horizontal scrollbar. (#335241)
-
-2007-05-19 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #439512
-
- * em-mailer-prefs.c: (junk_plugin_changed): Mark strings for
- translation.
-
-2007-05-17 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Improved GMail like thread sorting. Even expanded threads are
- promoted up the list.
-
- * message-list.c: (ml_tree_sort_value_at),
- (message_list_construct): Add a provision to sort mails based on the
- lastest date of the thread with out substituting the value for
- display.
-
-2007-05-16 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Added support to specify the default thread state for messages.
-
- * evolution-mail.schemas.in.in:
- * message-list.c: (message_list_construct):
-
-2007-05-15 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Improved options for offline support.
-
- * em-folder-view.c: (prepare_offline), (emfv_prepare_offline): Adds
- option for downloading for offline.
- * evolution-mail.schemas.in.in:
- * mail-component.c: (status_check): Adds a option for non-sync while
- going offline.
- * mail-ops.c: (prepare_offline_desc), (prepare_offline_do),
- (prepare_offline_done), (prepare_offline_free),
- (mail_store_prepare_offline):
- * mail.error.xml:
-
-2007-05-13 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #334966
- * mail-component.c: (view_changed), (view_changed_cb),
- (impl_createView), (impl_quit), (mail_component_init): When the quit
- is happening, never try to set the title.
-
-2007-05-12 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #337616
-
- * Makefile.am: Add $(schema_DATA) to DISTCLEANFILES.
-
-2007-05-11 Jules Colding <colding@omesc.com>
-
- * mail-config.c (mail_config_signature_run_script): file descriptor leaks fixed
-
-2007-05-11 Srinivasa Ragavan <sragavan@novell.com>
-
- * GNOME_Evolution_Mail.server.in.in: Add Tango icons to preference
- window.
-
-2007-05-11 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Added support for Refresh folder and Flush Outbox functions.
-
- * em-folder-browser.c: (emfb_folder_refresh):
- * em-folder-tree.c: (emft_popup_refresh_folder),
- (emft_popup_flush_outbox), (emft_popup):
- * em-popup.c: (em_popup_target_new_folder):
- * em-popup.h:
-
-2007-05-03 Sankar P <psankar@novell.com>
-
- * em-folder-view.c: (emfv_activate):
- Do not restrict "Edit as New Message" to
- Sent Folder alone.
- Fixes #205728
-
-2007-05-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Added code to improve the new mail hook to provide the number of
- new mails received and if the folder is an INBOX.
-
- * em-event.c: (em_event_target_new_folder):
- * em-event.h:
- * em-folder-tree-model.c: (em_folder_tree_model_is_type_inbox):
- * em-folder-tree-model.h:
- * mail-folder-cache.c: (real_flush_updates), (update_1folder):
-
-2007-04-20 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #426812
-
- * em-format-html-print.c:
- * em-format-html-print.h:
- * em-folder-view.c:
- * em-folder-view.h:
- Refactor the printing infrastructure.
-
-2007-04-20 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-composer-prefs.c: (signature_key_press): Fix for bug #353662
- from Baris Cicek.
-
-2007-04-19 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #429422
-
- * mail-tools.c (mail_tool_get_local_movemail_path):
- * em-utils.c (em_utils_save_part_to_file):
- * em-migrate.c (cp_r), (em_migrate_folder),
- (em_migrate_pop_uid_caches_1_4), (em_migrate_folder_expand_state_1_4),
- (em_migrate_folder_view_settings), (em_migrate_imap_cmeta_1_4),
- (em_migrate_1_4), (emm_setup_initial), (em_migrate):
- * em-folder-tree-model.c (em_folder_tree_model_save_state):
- * mail-component.c (mail_component_init):
- Use g_mkdir_with_parents() instead of e_util_mkdir_hier().
-
- * mail-send-recv.c:
- Some cosmetic refactoring.
-
- * mail-send-recv.c (dialog_map):
- Use gtk_widget_set_size_request() instead of gtk_widget_set_usize().
-
- * mail-send-recv.c (build_dialog):
- e_gtk_button_new_with_icon() is dead; just do it manually.
-
- * em-format-html-display.c (efhd_bonobo_object):
- * em-format-html.c (efh_init):
- * message-list.c (message_list_init):
- Use g_object_ref_sink() instead of gtk_object_sink().
-
- * em-account-prefs.c (em_account_prefs_construct):
- Use g_object_ref() instead of gtk_widget_ref().
- Use g_object_unref() instead of gtk_widget_unref().
-
- * em-folder-view.c (emfv_setup_view):
- Use g_build_filename() instead of g_concat_dir_and_file().
-
-2007-04-18 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #423766
-
- * em-format-html-display.c (attachments_save_all_clicked):
- Call em_utils_save_part() if there's only one attachment to save.
-
- * em-utils.c (em_utils_save_part):
- Refactor to use gtk_dialog_run() instead of a "response" callback.
-
- * em-utils.c (em_utils_save_parts):
- Refactor to use gtk_dialog_run() instead of a "response" callback.
- Use gtk_file_chooser_get_uri() to fetch the selected folder.
-
-2007-04-11 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-view.c: (emfv_spin), (emfv_message_selected_timeout): Add
- a progress spinner widget in the preview while fetching messages.
-
-2007-04-09 Hiroyuki Ikezoe <poincare@ikezoe.net>
-
- ** Fixes bug #343195
-
- * em-folder-properties.c: (emfp_dialog_got_folder): Get total number
- of mails with CAMEL_FOLDER_TOTAL if the folder is junk folder.
-
-2007-04-06 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #383953
-
- * em-folder-properties.c (emfp_get_folder_item):
- Show unread messages before total messages.
-
- * mail-component.c (view_changed):
- Show unread or selected messages before total messages.
-
-2007-04-06 Matthew Barnes <mbarnes@redhat.com>
-
- * message-list.c: More intelligent message selection. (#332765)
- Patch from Christof Krüger
-
-2007-04-06 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-session.c (main_system_beep): Unref 'session'. (#424795)
- Patch from Karl Relton
-
-2007-04-05 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-send-recv.c (refresh_folders_get):
- Provide a CamelException to camel_folder_refresh_info().
-
-2007-04-04 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-tree.c (emft_model_row_changed):
- Update parent rows when a child row changes. (#352713)
- Patch by René Stadler.
-
-2007-04-03 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-migrate.c: (emm_setup_initial): Fix for evolution on crashing
- while setting up the first account.
-
-2007-04-03 Matthew Barnes <mbarnes@redhat.com>
-
- * em-event.h: Don't #include <composer/e-msg-composer.h> since we
- don't install that file. Doing so prevents third-party applications
- like mail-notification from building. (#400241)
-
-2007-04-03 Srinivasa Ragavan <sragavan@novell.com>
-
- Reworked the SPAM plugins with more UI options and support for
- multiple plugins.
-
- * em-folder-view.c:
- * em-junk-hook.c: (emjh_construct_item), (emjh_construct):
- * em-junk-hook.h:
- * em-mailer-prefs.c: (junk_days_activate), (emmp_empty_junk_init),
- (junk_plugin_changed), (junk_plugin_setup),
- (create_combo_text_widget), (em_mailer_prefs_construct):
- * em-mailer-prefs.h:
- * evolution-mail.schemas.in.in:
- * mail-component.c: (impl_createView), (mc_quit_delete),
- (impl_quit):
- * mail-config.glade:
- * mail-session.c: (init), (mail_session_add_junk_plugin),
- (mail_session_get_junk_plugins):
- * mail-session.h:
-
-2007-04-03 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #411331
-
- * em-folder-browser.c: (emfb_gui_folder_changed): Fix the message
- selection.
-
-2007-04-03 Matthew Barnes <mbarnes@redhat.com>
-
- * evolution-mail.schemas.in.in:
- Correctly capitalize SpamAssassin. (#375577)
- Patch from Priit Laes.
-
-2007-04-03 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-browser.c:
- * em-folder-view.c:
- * message-list.c:
- Load "emblem-important" instead of deprecated
- "stock_mail-priority-high" icon. (#387619)
- Patch from Rodney Dawes.
-
-2007-04-01 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #373117
-
- * em-composer-prefs.c:
- * em-composer-prefs.h:
- * em-mailer-prefs.c:
- * em-mailer-prefs.h:
- * mail-config.glade:
- Migrate from GnomeColorPicker to GtkColorButton.
-
-2007-03-30 Matthew Barnes <mbarnes@redhat.com>
-
- * em-format-html-display.c (icon_entry_changed_cb): Fix a typo.
-
-2007-03-29 Matthew Barnes <mbarnes@redhat.com>
-
- * em-utils.c:
- * mail-config.c:
- Evolution requires GLib 2.10 now; remove dead backward-compatibility
- code for GLib < 2.8 (#418971).
-
-2007-03-29 Matthew Barnes <mbarnes@redhat.com>
-
- * em-account-editor.c:
- * em-folder-view.c:
- * em-format-html-display.c:
- * em-format-html.c:
- * em-format.h:
- * em-mailer-prefs.c:
- * em-vfolder-rule.c:
- * mail-ops.c:
- * mail-send-recv.c:
- * message-list.c:
- Fix "incompatible pointer type" warnings (#360619).
-
-2007-03-27 Matthew Barnes <mbarnes@redhat.com>
-
- * em-mailer-prefs.c:
- * em-mailer-prefs.h:
- * mail-config.glade:
- Migrate from GnomeFontPicker to GtkFontButton (#373837).
-
-2007-03-27 Matthew Barnes <mbarnes@redhat.com>
-
- * em-folder-browser.c:
- * em-format.c:
- * em-popup.c:
- Don't mix declarations and code (#405495).
-
-2007-03-20 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #419524
-
- * Include <glib/gi18n.h> instead of <libgnome/gnome-i18n.h>.
-
- * em-migrate.c (emm_setup_initial): Use g_get_language_names()
- instead of gnome_i18n_get_language_list().
-
-2007-03-16 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes part of bug #360240
-
- * em-vfolder-rule.c (select_source_with_changed), (get_widget):
- * em-format-quote.c (emfq_format_source):
- * mail-ops.c (save_messages_save):
- * em-format.c (emf_init):
- * em-format-html-display (em_format_html_get_search_dialog),
- (em_format_html_display_seearch_with), (ehhd_resize),
- (efhd_attachment_optional), (efhd_format_optional):
- * em-folder-view.c (emfv_init):
- * message-list.c (ml_tree_value_at):
- Remove unused variables.
-
-2007-03-12 Harish Krishnaswamy <kharish@novell.com>
-
- *default/C : Update Welcome mail.
-
-2007-02-27 Simon Zheng <simon.zheng@sun.com>
-
- * Fixes #402727
-
- * em-folder-view.c: (em_folder_view_print),
- Remove setting default response id because
- of print-preview button in print_unix_dialog
- aren't set GTK_CAN_DEFAULT flag.
-
-2007-02-26 Sankar P <psankar@novell.com>
-
- * Committed on behalf of
- Raghavendran R <raghavguru7@gmail.com>
-
- * Fixes #256382
-
- * em-folder-view.c: (emfv_mail_next_unread),
- (emfv_mail_previous_unread):
- Mail grabs the focus when keyboard-shortcut
- to move to next (un)read mail is used.
-
-2007-02-23 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #356177
-
- * mail-session.c: Remove an unused EMutex.
-
-2007-02-12 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #350253
-
- * em-format-html-print.h:
- Rename show_rupert field to show_icon.
-
- * em-format-html-print.c (efh_format_headers):
- Lookup the evolution icon by name.
-
-2007-02-12 Kjartan Maraas <kmaraas@gnome.org>
-
- * em-folder-browser.c: (emfb_search_search_activated):
- Add NULL check before calling strcmp(). Fixes a crash
- reported in bug #382155.
-
-2007-02-12 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Print migration updates from Ebby Wiselyn
-
- * em-folder-browser.c:
- * em-folder-view.c: (emfv_print_response), (em_folder_view_print):
- * em-format-html-print.c: (efhp_footer_cb), (emfhp_complete),
- (mail_draw_page):
-
-2007-02-10 Duarte Loreto <happyguy_pt@hotmail.com>
-
- * default/pt/Inbox: Updated welcome message to 2.8 version
-
-2007-02-08 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #400726
-
- * em-format-html-print.c: #include <e-util.e-print.h>
-
-2007-02-07 Matthew Barnes <mbarnes@redhat.com>
-
- ** Fixes bug #359979, #384183
-
- * em-camel-stream.c (sync_op):
- * em-sync-stream.c (sync_op):
- * mail-session.c (alert_user):
- e_msgport_wait()'s behavior is now block-and-pop instead of
- block-and-peek.
-
-2006-09-12 Ushveen Kaur <kushveen@novell.com>
-
- ** Fixes bug #353921
-
- * em-format-html.c: (em_format_html_get_search_dialog): "Back"
- and "Forward" buttons changed to "Previous" and "Next"
- respectively.
-
-2007-01-24 Wang Xin <jedy.wang@sun.com>
-
- * em-folder-browser.c: Fixes 397195.
-
-2007-01-22 Raghavendran R <raghavguru7@gmail.com>
-
- * em-event.[c,h]: (em_event_target_new_composer):
- Creates and returns an event target (composer).
-
-2007-01-22 Srinivasa Ragavan <sragavan@novell.com>
-
- ** GtkPrint migration patch from Ebby Wiselyn.
-
- * em-folder-view.c: (emfv_print_response), (em_folder_view_print):
- * em-format-html-print.c: (efhp_finalise), (efhp_footer_cb),
- (emfhp_complete), (mail_draw_page), (em_format_html_print_print),
- (em_format_html_print_message), (em_format_html_print_raw_message):
- * em-format-html-print.h:
-
-2007-01-17 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Downstream fix from OpenSUSE
-
- * message-list.c: Fix for compiler warning.
-
-2006-01-08 Veerapuram Varadhan <vvaradhan@novell.com>
-
- ** Fixes 346728, 268412
-
- * mail/em-subscribe-editor.c: (sub_fill_level): When a folderinfo
- has no child but CAMEL_FOLDER_NOCHILDREN not set, create a place
- holder node, such that, on-expanding it, folders will be loaded on
- demand. This saves quite-a-lot-of-memory and time when an account
- has lots of public-folders - viz., exchange/IMAP
- (sub_row_expanded): Check for the place-holder node and fire-up a
- pending.
- (sub_row_activated): Just expand and collapse the tree accordingly
- - rest will be taken care by sub_row_expanded()
- (sub_folderinfo_free): Once fillin is over, expand the node - iff
- node is non-null.
-
-2006-12-22 Simon Zheng <simon.zheng@sun.com>
-
- * mail/em-account-editor.c: (emae_setup_service):
- Fix the regression of bugzilla bug #352108.
-
-2006-12-21 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
-
- * mail/em-format-html-display.c: (efhd_image_unallocate),
- (efhd_attachment_image):
-
- Disconnect handlers on image destroy. Fixes bug
- #340165.
-
-2006-12-18 Sankar P <psankar@novell.com>
-
- * mail-send-recv.c: (get_folders):
- Do not check for mails in all folders, for Exchange.
- Will be more than useful when you have a lot of folders.
-
-2006-12-05 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-browser.c: (generate_viewoption_menu): Added icon/image to
- the quick search items.
-
-2006-12-04 Matthew Barnes <mbarnes@redhat.com>
-
- Fixes bug #382431
-
- * em-format.c: Fix implicit declaration of function
- 'mail_config_get_message_limit'.
-
-2006-12-04 Matthew Barnes <mbarnes@redhat.com>
-
- Fixes bug #357970
-
- * em-folder-browser.c:
- * em-folder-view.c:
- Don't call deprecated GLib / GDK functions.
-
-2006-12-03 Harish Krishnaswamy <kharish@novell.com>
-
- * mail-component.c: (mc_startup): Do not attempt to
- prune GW proxies on startup as this handled by the plugin
- now.
-
-2006-11-28 Daniel Gryniewicz <dang@gentoo.org>
-
- ** Fix for bug #349966
-
- * em-utils.c: (emu_save_part_response), (em_utils_save_part),
- (emu_save_parts_response), (em_utils_save_parts),
- (emu_save_messages_response), (em_utils_save_messages):
- * evolution-mail.schemas.in.in:
-
-2006-11-26 Srinivasa Ragavan <sragavan@novell.com>
-
- * Fix for bug #337439 DoS attach with large emails
-
- * em-format-html-display.c: (efhd_class_init),
- (efhd_attachment_popup), (efhd_format_attachment),
- (efhd_optional_button_show), (efhd_resize),
- (efhd_attachment_optional), (efhd_format_optional):
- * em-format-html.c: (efh_text_plain), (efh_text_enriched),
- (efh_write_text_html), (efh_message_deliverystatus):
- * em-format-quote.c: (emfq_format_source), (emfq_text_plain),
- (emfq_text_enriched), (emfq_text_html):
- * em-format.c: (emf_init), (em_format_format_content),
- (em_format_format_text), (emf_message_deliverystatus):
- * em-format.h:
- * em-mailer-prefs.c: (mlimit_count_changed),
- (em_mailer_prefs_construct):
- * em-mailer-prefs.h:
- * em-utils.c: (em_utils_part_to_html), (em_utils_message_to_html):
- * evolution-mail.schemas.in.in:
- * mail-config.c: (gconf_mlimit_size_changed),
- (gconf_mlimit_changed), (mail_config_init),
- (mail_config_get_address_count), (mail_config_get_message_limit):
- * mail-config.glade:
- * mail-config.h:
-
-2006-11-09 Francisco Javier F. Serrador <serrador@openshine.com>
-
- * default/Makefile.am: Added "es" to SUBDIRS
-
-2006-11-09 Francisco Javier F. Serrador <serrador@openshine.com>
-
- * default/es/Inbox: Added Spanish welcome mail.
- * default/es/Makefile.am: Added Makefile
-
-2006-11-09 Sankar P <psankar@novell.com>
-
- * em-folder-browser.c: (emfb_view_hide_selected):
- * em-folder-view.c: (emfv_popup_delete):
- * mail.error.xml:
- Disable mail delete for proxy when there are not enough rights
-
-2006-10-16 Tor Lillqvist <tml@novell.com>
-
- Fix for #348212:
-
- * mail-mt.h: On Win32 we don't want to use the mail_thread_queued
- variable outside the libevolution-mail DLL, but instead access its
- value through a getter function.
-
- * mail-mt.c: Make mail_thread_queued static on Win32.
- (mail_win32_get_mail_thread_queued): New function that returns the
- value of mail_thread_queued.
-
-2006-10-16 Chris Heath <chris@heathens.co.nz>
-
- * mail-component.c (create_local_item_cb): Fix memory leak.
- Fixes bug #360815.
-
-2005-10-16 Sankar P <psankar@novell.com>
-
- * mail-ops.c: (em_filter_folder_element_describe)
- Changes the string displayed in the status bar.
- Fixes #320615
-
-2006-10-16 Ushveen Kaur <kushveen@novell.com>
-
- ** Fixes bug #308276
-
- * mail.error.xml : secondary for "vfolder-notunique" corrected.
-
-2006-10-16 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #333864 and bug #351374
-
- * em-format-html-display.c: (efhd_image_resized),
- (efhd_image_unallocate), (efhd_attachment_image): Make sure that the
- callback is removed when the puri is destroyed.
-
-2006-09-30 Harish Krishnaswamy <kharish@novell.com>
-
- * em-format-html-display.c: (em_format_html_get_search_dialog):
- Do not mark empty strings for translation. Fixes #357422.
-
-2006-09-29 Daniel Gryniewicz <dang@gentoo.org>
-
- * em-folder-view.c: ignore marked, empty selections when replying.
- Fixes bug #354650. (committed by Andre Klapper)
-
-2006-09-29 Nick Sukharev <nick@galaktika.ru>
-
- * mail/em-format-html.c: UUEncoded calendars will be displayed as
- calendars, not as plain text. Fixes bug #352767.
- (committed by Andre Klapper)
-
-2006-09-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #341932 Patch from Roozbeh Pournader
-
- * em-format-html.c: (efh_format_header): patch to enlarge
- the buffer for printing date.
-
-2006-09-29 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes a lot of search issue.
-
- * em-folder-browser.c: (emfb_init), (em_folder_browser_show_wide),
- (vfolder_setup_desc), (emfb_search_search_activated),
- (emfb_edit_cut), (emfb_edit_select_all), (emfb_set_folder):
-
-2006-09-28 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Pushing a downstream fix in SUSE.
-
- * message-list.c: (message_list_init), (message_list_destroy),
- (folder_changed), (regen_list_regened): Fix to indicate object destroy
- * message-list.h: removed the old mechanism.
-
-2006-09-18 Matthew Barnes <mbarnes@redhat.com>
-
- Fixes #351332
-
- * em-folder-view.c:
- * em-format-html-display.c:
- Fix implicit function declarations.
-
-2006-09-14 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #353920
-
- * em-folder-browser.c: (emfb_search_search_activated): Mark two
- messages for translation which have not been marked by accident.
-
-2006-09-13 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #355294
-
- * em-folder-view.c: (emfv_popup_delete): Set the cursor on delete.
-
-2006-09-09 Wouter Bolsterlee <uws+gnome@xs4all.nl>
-
- * default/nl/Inbox: Dutch welcome message updated by
- Vincent van Adrighem and Wouter Bolsterlee.
-
-2006-09-04 Nickolay V. Shmyrev <nshmyrev@yandex.ru>
-
- * mail-component.c: (impl_dispose)
- (view_changed_timeout_remove) (view_changed_timeout):
- Fixes a crash on exit-time issue. Resolves #334966
-
-2006-08-29 Li Yuan <li.yuan@sun.com>
-
- * em-folder-browser.c: (em_folder_browser_show_preview):
- remove GNUC only macro.
- Fix for #353344.
-
-2006-08-28 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #352982 and bug #336983
-
- * em-folder-view.c: (emfv_popup_delete), (emfv_select_all_text):
- Fixes the issue of thread jumping on delete and enables COPY menu item
- when clicking Select All Text.
-
-2006-08-28 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html.c: (efh_format_address): Fix for a crash during
- displaying camel address group.
-
-2006-08-28 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #353059
-
- * em-folder-browser.c: (generate_viewoption_menu): Added translated
- strings to search, which are already translated.
-
-2006-08-27 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #352980
-
- * em-folder-view.c: (em_folder_view_get_popup_target): Disable deleted
- for deleted message, and dont allow to workaround DEL key to move to
- next message.
-
-2006-08-26 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #336983
-
- * em-folder-view.c: (emfv_init), (emfv_on_html_button_released_cb):
- Enable/disable Edit->Copy on button release on html.
-
-2006-08-24 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #352695
-
- * message-list.c: (regen_list_regened): Dont store the save state, if
- the search is in place.
-
-2006-08-23 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-utils.c: Update the doc for em_utils_temp_save_part.
-
-2006-08-02 Ushveen Kaur <kushveen@novell.com>
-
- ** Fixes bug #347238
-
- * em-utils.h : Added a boolean variable to determine the readonly mode
- * em-utils.c (em_utils_temp_save_part) : Save in readonly mode or not.
- * em-popup.c (emp_apps_open_in) : set Read only for "open in"
- attachments.
- * em-format-html-display.c (efhd_drag_data_get) : Set 644 for dnd
- attachments.
- * mail-ops.c (save_part_save): File permissions changed to 644
- while saving the attachment and drag and drop.
-
-2006-08-22 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #350337
-
- * message-list.c: (ml_tree_value_at): Patch from Daniel Gryniewicz to
- check the null string.
-
-2006-08-22 Andre Klapper <a9016009@gmx.de>
-
- * default/C/Inbox: Update the Welcome mail.
-
-2006-08-22 simon.zheng <simon.zheng@sun.com>
-
- ** Fixes for bug #352108
-
- * em-account-editor.c: (emae_service_url_path_changed),
- (emae_path_changed),
- (emae_setup_service):
- Replace widget GnomeFileEntry by GtkFileButton.
-
-2006-08-21 Matthew Barnes <mbarnes@redhat.com>
-
- * mail-send-recv.c:
- Silence Camel exception warning at startup - fixes bug 352248.
-
-2006-08-21 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes a lot of search issues including widget packing.
-
- * em-folder-browser.c: (generate_viewoption_menu),
- (viewoption_menu_generator), (emfb_realize), (emfb_init),
- (em_folder_browser_show_preview), (emfb_search_search_activated),
- (emfb_search_search_cleared), (emfb_list_key_press),
- (emfb_list_message_selected), (emfb_set_search_folder):
- * em-folder-view.c: (emfv_init), (emfv_message_search),
- (em_folder_view_get_popup_target), (emfv_setting_notify):
- * em-folder-view.h:
- * em-message-browser.c: (emmb_init):
-
-2006-08-19 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #350884
-
- * message-list.c: (subtree_latest), (ml_tree_value_at): Sort thread
- based on the date of last message received.
-
-2006-08-17 Kjartan Maraas <kmaraas@gnome.org>
-
- * message-list.c: (create_composite_cell): Plug a leak.
-
-2006-08-17 Kjartan Maraas <kmaraas@gnome.org>
-
- * em-format-html.c: (efh_url_requested): Plug a leak.
-
-2006-08-09 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-browser.c: (em_folder_browser_get_wide),
- (emfb_activate): Get the wide status from the priv struct when
- available already instead of gconf.
- * em-folder-browser.h:
- * em-folder-view.c: (emfv_setup_view_instance): Get the wide status
- from the parent struct. It avoids a race, where it shows compressed
- headers in classic view and vice versa.
-
-2006-08-09 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #348565
-
- * em-format-html-display.c (efhd_bar_resize) (efhd_add_bar): Check
- the bar size, before setting the width. The width goes to zero,
- when switching from classic to vertical view and vice versa.
-
-2006-08-09 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #350411 #350476
-
- * em-mailer-prefs.c (notify_sound_changed): When prefs comes up,
- nothing is set in FILE chooser, so it returns NULL and bypass it.
- (em_mailer_prefs_construct): Get the file chooser widget before
- setting radio active.
-
-2006-08-08 Harish Krishnaswamy <kharish@novell.com>
-
- * em-folder-tree.c: Add header glib/gi18n.h to provide the missing
- symbol required by the previous commit. This was an ugly crasher
- on the release tarball candidate.
-
-2006-08-07 Karsten Bräckelmann <guenther@rudersport.de>
-
- * em-folder-tree.c (render_display_name): Marking vFolder names in
- the folder tree localizable. Fixes bug #330915 (Roozbeh Pournader).
-
-2006-08-04 Johnny Jacob <jjohnny@novell.com>
-
- * em-format-html-display.c : Added mnemonic for "Fi_nd" and
- "Fo_rward".
- * em-folder-browser.c : (get_view_query) : Added query for
- "messages masrked as important"
-
-2006-08-02 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #335241
-
- * mail-send-recv.c: (dialog_map), (build_dialog): Let the send receive
- dialog grow to a fixed size, before we show the scroll bar.
-
-2006-07-26 Alessandro Decina <alessandro@nnva.org>
-
- ** Fix for bug #348164
-
- * em-folder-browser.c: (emfb_class_init):
- Remove the unused G_TYPE_STRING parameter from the
- account_search_activated and account_search_cleared signals.
-
- * mail-component.c: (disable_folder_tree), (enable_folder_tree):
- Update the callbacks to match the new signature.
-
-2006-07-28 Sankar P <psankar@novell.com>
-
- * committed on behalf of Srinivasa Ragavan <sragavan@novell.com>
- * em-icon-stream.c: (emis_fit):
- We dont scale on height if the maxheight is zero
- Fixes 335431
-
-2006-07-26 Veerapuram Varadhan <vvaradhan@novell.com>
-
- ** Fixes bgo bug #333821 and bnc bug 181851
-
- * mail-folder-cache.c: (ping_store_ping): Ping store only iff
- store is online and connected.
-
-2006-07-26 Arvind <sa.phoenix@gmail.com>
-
- ** Fix for bug #274276
-
- * em-folder-selection-button.c: (set_contents): Localizes the folder
- names in the filter and while importing mail
-
-2006-07-26 Andre Klapper <a9016009@gmx.de>
-
- * em-folder-browser.c: correcting a grammar bug. Fixes bug #348674.
-
-2006-07-24 Ushveen Kaur <kushveen@novell.com>
-
- ** Fixes Bug #341840
-
- * mail-error.xml: button label changed for dialog ask-mark-read.
-
-2006-07-24 Sushma Rai <rsushma@novell.com>
-
- * em-account-editor.c: (emae_option_entry) : activate the mnemonic for
- text box, add an extra paramenter to the function call.
- Fixes #332282.
- Patch submitted by "Vandana Shenoy .B <shvandana@novell.com>"
-
-2006-07-24 Sushma Rai <rsushma@novell.com>
-
- * em-subscribe-editor.c (_EMSubscribeEditor): Removed the members
- subscribe_button and unsubscribe_button.
- (sub_do_subscribe)(sub_subscribe)(sub_editor_subscribe)
- (sub_editor_unsubscribe): Removed.
- (sub_selection_changed)(em_subscribe_editor_new): Removed the handling
- for the subscribe and unsubscribe buttons.
-
- * mail-dialogs.glade: Removed "Subscribe" and "Unsubscribe" buttons.
- Fixes #331509.
-
-2006-07-22 Yuri Pankov <yuri.pankov@gmail.com>
-
- Reviewed by Harish Krishnaswamy <kharish@novell.com>
-
- * message-list.c: Add missing headers. Fixes #344744.
-
-2006-07-22 Yuri Pankov <yuri.pankov@gmail.com>
-
- Reviewed by Harish Krishnaswamy <kharish@novell.com>
-
- * em-format-html-display.c: Add missing headers.
- * mail-vfolder.h: Add function prototypes.Fixes #347689.
-
-2006-07-21 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #346316
-
- * em-folder-browser.c: (em_folder_browser_show_wide): Redraw the child
- widgets and pack it accordingly.
-
-2006-07-20 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c: (efhd_attachment_bar_refresh): Modified
- the mnemonics for avoiding the conflict with search.
-
-2006-07-19 Johnny Jacob <jjohnny@novell.com>
-
- ** Fix for bug #347993
-
- * em-folder-browser.c : Changed default scope of search to
- 'Current Folder'
-
-2006-07-14 Raghavendran R <raghavguru7@gmail.com>
-
- ** Fix for bug #330355
-
- * em-mailer-prefs.c:Mailer Preferences. New mail notification,
- "specify filename" was enabled for radNotifyNot and radNotifyBeep.
- Disable the button, when it wasnt for button.
-
-2006-06-10 Shree Krishnan <shreekrishnan@gmail.com>
-
- ** Fix for bug #338442
- * mail-config.glade: Set the mnemonic character for "Send message receipts"
-
-2006-07-18 Andre Klapper <a9016009@gmx.de>
-
- * message-tags.glade: remove "*" from translation. Fixes bug #331147.
-
-2006-07-14 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #336963
-
- * em-folder-browser.c: (emfb_init): Make the scrollbar automatic.
-
-2006-22-06 Ushveen Kaur <kushveen@novell.com>
-
- ** Fixes bug #335241
-
- * mail-send-recv.c: a scroll box added for the send recv popup dialog.
-
-2006-07-14 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #335747
-
- * em-folder-browser.c: (emfb_mark_all_read): Prompt optionally while
- marking multiple messages.
- * evolution-mail.schemas.in.in: Added a schema for prompting while
- marking multiple messages.
-
-2006-07-13 Andre Klapper <a9016009@gmx.de>
-
- * mail-config.glade: remove empty strings from translation
-
-2006-07-11 Karsten Bräckelmann <guenther@rudersport.de>
-
- * em-folder-view.c: Change mnemonic for Mark as Unimportant, fixes
- bug #347246.
-
-2006-07-11 Johnny Jacob <johnnyjacob@gmail.com>
-
- Fixes #246235.
- * em-vfolder-rule.c (get_widget): Deleted the option menu and
- replaced with radio buttons.
- * mail-dialogs.glade: Removed option menu and added radio buttons
-
-2006-07-11 Johnny Jacob <johnnyjacob@gmail.com>
-
- ** Fixes Bug # 324241
-
- * mail/em-composer-prefs.c (em_composer_prefs_construct): Changed
- signal handled for sig_edit and sig_delete from "pressed" to
- "clicked".
-
-2006-07-11 Johnny Jacob <jjohnny@novell.com>
-
- ** Patch by Not Zed <NotZed@Ximian.com>
- ** See bug #262003
-
- * em-format-html-display.c (efhd_xpkcs7mime_validity_clicked): put
- the potentially long descriptions into a textbuffer so it's
- scrollable.
-
-2006-07-07 Ushveen Kaur <kushveen@novell.com>
-
- Fixes bug #336963.
- * em-message-browser.c:
- set the scroll bar in the message display to automatic
-
-2006-07-07 Andre Klapper <a9016009@gmx.de>
-
- * em-format-html-display.c: Changing one mnemonic to avoid a
- mnemonic conflict with an upcoming patch by Jony.
-
-2006-07-05 Andre Klapper <a9016009@gmx.de>
-
- * em-format-html-display.c: Added mnemonic to string.
- Fixes bug #346645.
-
-2006-06-30 Johnny Jacob <jjohnny@novell.com>
- * mail/em-folder-browser.h: Added search_activated signal
- * mail/em-folder-view.c: (emfv_init):
- * mail/em-format-html-display.c: (efhd_search_response),
- (efhd_search_response_back), (efhd_search_destroy),
- (efhd_search_case_toggled), (efhd_key_pressed),
- (clear_button_clicked_cb), (icon_entry_changed_cb),
- (em_format_html_get_search_dialog), (set_focus_cb),
- (em_format_html_display_search),
- (em_format_html_display_search_with),
- (em_format_html_display_search_close):
- * mail/em-format-html-display.h:
- * mail/mail-component.c: (disable_folder_tree),
- (enable_folder_tree), (impl_createView):
- * mail/mail-vfolder.c: (mail_vfolder_add_uri),
- (mail_vfolder_get_sources_local),
- (mail_vfolder_get_sources_remote), (store_folder_renamed):
- * mail/message-list.c: (ml_tree_value_at),
- (message_list_setup_etree):
- * mail/message-list.etspec:
- Added code for search ui.
-
-2006-06-27 Matthew Barnes <mbarnes@redhat.com>
-
- * evolution-mail.schemas.in.in:
- Changed type name "boolean" to "bool". Fixes bug #345677.
-
-2006-06-27 Arvind_evo <sa.phoenix@gmail.com>
-
- Fix for bug#260354 comment 35:
- * mail-component.c: set the window title to reflect the
- localized folder names
-
-2006-06-21 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #344338
-
- * em-folder-browser.c: (emfb_edit_select_all): grab focus after
- Ctrl+A.
-
-2006-06-19 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fix for bug #344580
-
- * message-list.c: (create_composite_cell),
- (composite_cell_set_strike_col), (message_list_set_folder): Strike out
- deleted mails, if set to visible
-
-2006-06-14 Tor Lillqvist <tml@novell.com>
-
- * em-account-editor.c (emae_check_complete): g_get_real_name()
- returns UTF-8 on Win32.
-
-2006-06-13 Andre Klapper <a9016009@gmx.de>
-
- * mail.error.xml: changing string "Ximian Evolution" to "Evolution".
- Fixes bug #344298.
-
-2006-06-13 Tor Lillqvist <tml@novell.com>
-
- * em-format-html.c (efh_format_address): Fix build on Win32, where
- EVOLUTION_ICONSDIR is a function call.
-
-2006-06-12 Srinivasa Ragavan <sragavan@novell.com>
-
- * message-list.etspec: Corrected the sortable parameter of the message
- list correctly.
-
-2006-06-29 Chris Heath <chris@heathens.co.nz>
-
- * message-list.c (message_list_finalise): Fix memory leak.
- Fixes bug #335423.
-
-2006-06-07 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html.c: (efh_format_address): Fixed a minor bug, where the
- plus symbol appears if the limit equals the address shown.
-
-2006-06-06 Harish Krishnaswamy <kharish@novell.com>
-
- * evolution-mail.schemas.in.in: typo correction.
- Fixes #331694.
-
-2006-06-02 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-view.c (emfv_setup_view_instance): Can't make camel
- calls from the main thread or we run the risk of deadlocking.
-
-2006-06-02 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Added support for Vertical View in evolution in addition to the
- existing classical view. It also supports a composite headers to be
- shown in a multilined column.
-
- * em-folder-browser.c (emfb_pane_realised),
- (emfb_pane_button_release_event, emfb_init),
- (em_folder_browser_show_preview, em_folder_browser_show_wide),
- (emfb_show_next, emfb_show_below, emfb_activate): Added code to
- handle the new wide mode in Evolution.
-
- * em-folder-view.c (emfv_setup_view_instance),
- (em_folder_view_setup_view_instance): Added code to handle the
- default view in the wide mode for normal and sent/draft folders.
-
- * evolution-mail.schemas.in.in: Added schema for hpane size,
- showing email in the composite headers and toggling wide more.
-
- * message-list.c (ml_duplicate_value, ml_free_value),
- (ml_initialize_value, ml_value_is_empty, ml_value_to_string),
- (sanitize_recipients, ml_tree_value_at, create_composite_cell),
- (message_list_create_extras): Added a new composite header
- render_composite_from/recipient which shows the headers in a
- multilined column.
-
- * message-list.etspec: Added three new columns, Recipent, Messages
- column for normal folders and Messages column for sent/draft
- folders.
-
-2006-05-30 Li Yuan <li.yuan@sun.com>
-
- Fix for #341381.
-
- * message-list.c (message_list_set_folder): We should lock
- e-tree-memory when we change it.
-
-2006-05-30 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #332936
-
- * mail.error.xml: Used a new property called scroll that adds the
- multilines error messages into a viewport.
-
-2006-05-25 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Added remote shares save/load support across evolution.
-
- * em-utils.c (emu_file_check_local, emu_get_save_filesel),
- (emu_save_part_response, emu_save_parts_response),
- (emu_save_messages_response): Added code to save
- messages/attachments to remote shares.
-
- * mail-ops.c (save_messages_save, save_part_save): Same.
-
-2006-05-25 Srinivasa Ragavan <sragavan@novell.com>
-
- ** fixes bug #342092
-
- * em-popup.c (emp_standard_menu_factory): Read the mime from the
- right file.
-
-2006-05-25 Srinivasa Ragavan <sragavan@novell.com>
-
- Added support for collapsible headers for To/Cc/Bcc fields.
-
- * em-folder-view.c (emfv_format_link_clicked, emfv_on_url_cb):
-
- * em-format-html-display.c (efhd_html_button_press_event),
- (efhd_html_link_clicked, efhd_html_on_url, efhd_format_clone):
-
- * em-format-html.c (efh_url_requested, efh_format_text_header),
- (efh_format_address, efh_format_header):
-
- * em-mailer-prefs.c (address_compress_count_changed),
- (toggle_button_init, em_mailer_prefs_construct):
-
- * evolution-mail.schemas.in.in:
-
- * mail-config.c (gconf_address_count_changed),
- (gconf_address_compress_changed, mail_config_init),
- (mail_config_get_labels, mail_config_get_address_count):
-
- * mail-config.glade:
-
-2006-05-24 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #342676
-
- * message-list.c: (ml_duplicate_value), (ml_free_value),
- (ml_initialize_value), (ml_value_is_empty), (ml_value_to_string):
- * message-list.etspec: Fixed the column sorter right.
-
-2006-05-04 Jeffrey Stedfast <fejj@novell.com>
-
- * mail-component.c (mail_component_remove_store): Ref the store
- before removing the store from our hash and cache. Should fix
- Novell bug #166987.
-
-2006-04-30 Shi Pu <shi.pu@sun.com>
-
- ** Fixes bug #323853
-
- * em-composer-prefs.c (sig_edit_cb, sig_add_script_response):
-
- * em-mailer-prefs.c (notify_sound_changed)
- (em_mailer_prefs_construct):
-
- * em-mailer-prefs.h:
-
- * mail-config.glade: Replace GnomeFileEntry by
- GtkFileChooserButton.
-
-2006-04-27 Rodney Dawes <dobey@novell.com>
-
- * em-folder-tree.c (render_pixbuf): Use gnome-fs-trash-empty
- rather than stock_delete for the Trash folder icon
-
- * em-folder-view.c (emfv_popup_items[]): Don't set an icon for
- Undelete
- (emfv_message_pixmaps[]): Don't set an icon for Undelete and set
- the icon for deleting a message to gnome-fs-trash-empty, not
- stock_delete
-
- Fixes #339626
-
-2006-04-26 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Patch from Victor for adding a Sender header to message list.
-
- * message-list.c (ml_duplicate_value, ml_free_value),
- (ml_initialize_value, ml_value_is_empty, ml_value_to_string),
- (ml_tree_value_at): Handled the new column header.
-
- * message-list.etspec: Added a new column header to spec.
-
- * message-list.h: Added a new column
-
-2006-04-26 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-view.c (emfv_setup_view_instance): Comparing the
- FolderInfo flags right, to make Mailbox to show From header in
- message list for groupwise servers.
-
-2006-04-26 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #323402
-
- * em-folder-tree.c (folder_tree_new): Code for Ellipsizing folder
- tree. (Patch from Vincent Noel)
-
- * em-migrate.c: Adding side_bar_search to
-
- * evolution-mail.schemas.in.in: Adding a schema for enabling/disabling
- side bar search. (Patch from Rakesh)
-
-2006-04-24 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail-session.c (get_password): Ask passphrase if the user is
- supposed to enter the same.
-
-2006-04-22 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c (efhd_attachment_button),
- (efhd_format_attachment): Added code to create image cache of
- image attachment in the ethread instead of main thread to avoid
- gui lockup.
-
-2006-04-21 Sankar P <psankar@novell.com>
-
- * mail-mt.c (do_op_status): Fix the cryptic
- hexa-status-bar-message. The problem still lies somewhere. But
- dont show something weird to the user.
-
-2006-04-20 Jeffrey Stedfast <fejj@novell.com>
-
- Fix for bug #339052
-
- * em-inline-filter.c (emif_add_part): Preserve all Content-Type
- params so that they may be restored later.
-
- * em-format.c (emf_inlinepgp_signed): Restore the original part's
- Content-Type params otherwise we lose valuable information such as
- charset or format=flowed or various other things.
-
-2006-04-18 Jeffrey Stedfast <fejj@novell.com>
-
- * mail.error.xml: Removed error id "camel-exception" as it was a
- bogus error.
-
-2006-04-14 Jeffrey Stedfast <fejj@novell.com>
-
- * em-composer-utils.c (em_utils_handle_receipt): Fixed up the if
- conditional so that 'account' wasn't ever dereferenced when
- NULL. Fixes bug #324327.
-
-2006-04-10 Jeff Cai <jeff.cai@sun.com>
-
- ** Fixes 333243
-
- * em-folder-tree-model.c (em_folder_tree_model_remove_folders):
- For null uri, don't need remove it.
-
-2006-04-05 Jeff Cai <jeff.cai@sun.com>
-
- Fixes bug #333987
-
- * message-list.c (mail_folder_hide_by_flag):
- If CamelMessageInfo is null, don't free it.
-
-2006-03-29 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- * em-folder-view.c (smfv_setup_view_instance): use the flags
- CAMEL_STORE_FOLDER_INFO_SUBSCRIBED instead of
- CAMEL_STORE_FOLDER_INFO_FAST when getting folder info
-
-2006-03-25 Rajeev ramanathan <rajeevramanathan_2004@yahoo.co.in>
-
- **Fixes #329585
-
- * mail-config.glade: Changed Remove button to Delete button
-
- * mail.error.xml: Changed current Layout DELETE [Do not delete] to
- [Do not delete] DELETE
-
-2006-03-22 Patrick Ohly <patrick.ohly@intel.com>
-
- * em-utils.c (em_utils_selection_set_urilist): Fixed premature
- memory free. Fixes bug #335203.
-
-2006-03-21 Simon Zheng <simon.zheng@sun.com>
-
- Fixed bug #326571
-
- * em-utils.c (em_filename_make_safe, emu_get_save_filesel):
- (emu_save_parts_response): Add em_filename_make_safe(), and use it
- to allow filenames contain more valid characters when saving
- attachments.
-
-2006-03-20 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-view.c (emfv_setup_view_instance): Added code to set
- the mail view column for sent folder.
-
-2006-03-12 Frank Arnold <farnold@cvs.gnome.org>
-
- * default/de/Inbox: Updated German translation of default inbox.
-
-2006-03-06 Simon Zheng <simon.zheng@sun.com>
-
- Fixes bug #332140
-
- * em-utils.c (em_utils_temp_save_part): Transfer filenames from
- utf-8 to glib encoding before really saving files.
-
-2006-03-03 Andre Klapper <a9016009@gmx.de>
-
- * configure.in:
-
- * mail/default/Makefile.am: added support for macedonian (mk)
- welcome message
-
-2006-03-03 Vincent van Adrighem <adrighem@gnome.org>
-
- * default/nl/Inbox: Tino Meinen updated the Dutch welcome message.
-
-2006-03-03 Žygimantas BeruÄka <zygis@gnome.org>
-
- * default/Makefile.am: Added Lithuanian to SUBDIRS.
- * default/lt/*: Added Lithuanian translation for default mailbox.
-
-2006-03-02 Ilkka Tuohela <hile@iki.fi>
-
- * fi.po: Updated Finnish inbox to actually use 2.6 example, not
- the old one...
-
-2006-03-01 Ilkka Tuohela <hile@iki.fi>
-
- * default/Makefile.am: added "fi" to SUBDIRS
- * default/fi/*: Added localized default mailbox for Finnish,
-
-2006-02-28 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #332832
-
- * em-composer-utils.c (em_utils_compose_new_message_with_mailto):
- Added code to raise the window when a composer is created due to
- mailto: uri
-
-2006-03-01 Andre Klapper <a9016009@gmx.de>
-
- * default/C/Inbox: Update the Welcome mail.
-
-2006-02-27 Jeffrey Stedfast <fejj@novell.com>
-
- * em-format-html-display.c (efhd_xpkcs7mime_validity_clicked):
- Make the verify/decrypt gpg diagnostic text selectable in the
- security dialog that comes up when you click the button in a
- message. Fixes bug #268414.
-
-2006-02-24 Sankar P <psankar@novell.com>
-
- * em-account-editor.c (emae_check_complete, emae_identity_page):
- Added code to handle the case if the account is marked as default.
- Fixes #332034
-
-2006-02-21 Veerapuram Varadhan <vvaradhan@novell.com>
-
- ** Fixes bug #329733
-
- * em-folder-properties.c (emfp_dialog_got_folder): Fetch both
- VISIBLE and DELETED count from the folder and adjust it according
- before showing it in the properties dialog w.r.t user preferences.
-
-2006-02-21 Tor Lillqvist <tml@novell.com>
-
- * em-composer-utils.c: Use the same Win32 macro for gmtime_r()
- that guards against gmtime() returning NULL as elsewhere. gmtime()
- is thread-safe on Win32.
- (attribution_format): Check if camel returns
- CAMEL_MESSAGE_DATE_CURRENT for Date:, try the date from Received:
- then. If that doesn't work either, use current date.
-
-2006-02-20 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #322160 and committed for PRSuman.
-
- * em-utils.c: Added code to pass a variable to overwrite/ro mode.
-
- * mail-ops.[ch]: Added code to take care of overwrite and set the file
- mode.
-
-t2006-02-20 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- ** Fixes bug 33139
-
- * mail-vfolder.c: (mail_vfolder_shutdown):
- assign 'vfolder_hash' to NULL after destroying.
-
- Committed Patch on behalf of Joe Marcus Clarke (marcus@freebsd.org)
-
-2006-02-16 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #331215
-
- * em-folder-browser.c: (emfb_activate): Uncommented the code to set
- the preview pane position.
-
-2006-02-15 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- * mail-mt.c (do_op_status): need to show the stauts message
-
-2006-02-15 Shi Pu <shi.pu@sun.com>
-
- See bug ** 325967
-
- * em-account-editor.c (emae_service_url_changed): When username
- entry value of "Sending Email" page/tab is not empty, check combo
- box of authmech, to pick up the authmech information.
-
-2006-02-13 Karsten Bräckelmann <guenther@rudersport.de>
-
- * em-account-editor.c: Fix the Account Editor / Security option to
- finally be descriptive, rather than obscuring. Fixes the UI part
- of bug #321797.
-
-2006-02-13 Rohini S <srohini@novell.com>
-
- ** Fixes bug #221270.
-
- * mail-send-recv.c (build_dialog): Removed white space before :
- when displaying account information in Send/Receive dialog.
-
-2006-02-13 Andre Klapper <a9016009@gmx.de>
-
- * mail-mt.c: uncommenting a string. Fixes bug 271734.
-
-2006-02-13 Sushma Rai <rsushma@novell.com>
-
- * mail/em-account-editor.c (emae_option_checkspin)
- (emae_receive_options_extra_item): Creating the widget with
- "use_underline" property. Fixes #330504.
-
-2006-02-11 Andre Klapper <a9016009@gmx.de>
-
- * mail-config.glade: changed string and added translator comments.
- Fixes bug 256907.
-
-2006-02-11 Karsten BrÀckelmann <guenther@rudersport.de>
-
- * message-list.c (message_list_construct):
- * em-format-html-display.c (efhd_attachment_button, efhd_add_bar):
- * em-account-prefs.c (em_account_prefs_treeview_new):
- Change a11y names. Fixes part of bug #330723.
-
-2006-02-10 Karsten BrÀckelmann <guenther@rudersport.de>
-
- * em-utils.c (em_utils_edit_filters): Fix Filters dialog window
- title to be HIG compliant. Fixes bug #330650.
-
-2006-02-09 Sushma Rai <rsushma@novell.com>
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Freeing font value
- string. See #309316.
-
-2006-02-08 Karsten BrÀckelmann <guenther@rudersport.de>
-
- * mail.error.xml: Fix typo and correct phrasing. Fixes bug #330387.
-
-2006-01-09 Kjartan Maraas <kmaraas@gnome.org>
-
- * em-account-editor.h: s/int/guint/g for 1-bit bitfield.
- * em-composer-utils.c: (em_utils_redirect_message): Remove cruft
- * em-folder-tree.c: (emft_drop_target): use guint for 1-bit bitfield
- and rename a variable with a name clash.
- * em-folder-utils.c: (em_folder_utils_rename_folder): Rename var to
- avoid name clashes.
- * em-folder-view.c: guint for 1-bit bitfields.
- * em-folder-view.h: Same as above.
- * em-format-html-print.h: Again.
- * em-format-html.c: (efh_text_html), (efh_multipart_related): Add comments
- * em-format.c: (emf_multipart_alternative): Add comment about using var that
- is passed in rather than a local variable.
- * em-inline-filter.c: (emif_scan): Remove unused var. Mark code static.
- * em-mailer-prefs.h: guint for 1-bit bitfields.
- * em-migrate.c: (em_migrate_folder): mark a struct static. remove unused var
- * em-subscribe-editor.c: guint for 1-bit bitfield
- * em-utils.c: remove unused function
- * em-vfolder-rule.c: mark array static
- * importers/mail-importer.c: (decode_status): Remove unused code. Use guint
- for 1-bit bitfield.
- * mail-autofilter.c: (rule_from_message): rename a variable
- * mail-component.c: guint for 1-bit bitfield
- * mail-folder-cache.c: (update_1folder): remove unused code
- * mail-mt.c: mark some structs static
- * message-list.c: (message_list_select_uid), (ml_value_to_string),
- (ml_tree_value_at), (find_next_undeleted), (build_tree),
- (build_flat): Remove unused code and fix some format specifiers.
-
-2006-02-08 Rajeev ramanathan <rajeevramanathan_2004@yahoo.co.in>
-
- **Fixes #329586
-
- * em-account-prefs.c:
-
- * em-account-prefs.h: Changed the ODD behavior of Default button
- by checking whether an account is default or not and disabling the
- button when default account is in focus.
-
- Committing to head on behalf of rajeev
-
-2006-02-08 Claudio Saavedra <csaavedra@alumnos.utalca.cl>
-
- * em-account-prefs.c (em_account_prefs_construct): Reordering
- construction of dialog to prevent critical warnings (#328325).
-
-2006-02-07 Andre Klapper <a9016009@gmx.de>
- * mail.error.xml: fixing one typo.
-
-2006-02-06 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #328651
-
- * em-folder-view.c:
- * em-format-html-display.c:
- * evolution-mail.schemas.in.in:
- * mail-config.c (config_cache_labels):
-
-2006-01-27 Rajeev ramanathan <rajeevramanathan_2004@yahoo.co.in>
-
- ** Fixes bug #325786
-
- * em-folder-browser.c: Added code to display a prompt before
- marking All messages as Read.
-
- * mail-error.xml: Added a new error message for marking all
- message as read.
-
-2006-02-06 Veerapuram Varadhan <vvaradhan@novell.com>
-
- ** Fixes #326147
-
- * em-account-editor.c: (em_account-editor.c): Modify e_source to
- reflect to the reverted changes.
-
-2006-02-05 Karsten BrÀckelmann <guenther@rudersport.de>
-
- * importers/pine-importer.c (pine_getwidget): Correcting
- "Addressbook" to properly read "Address Book". Fixes bug #326256.
-
-2006-02-02 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- * em-composer-utils.c (em_utils_handle_receipt): check if account
- is null before accessing it
-
-2006-01-30 Harish Krishnaswamy <kharish@novell.com>
-
- * mail-config.glade: s/T_erminal/Fi_xed width/ for consistency with other
- GNOME applications.
-
-2006-01-30 pavithran <pavithran@gmx.de>
-
- ** Fixes bug #316223
-
- * em-utils.c (emu_save_parts_response): Added a confirmation
- dialog for overwriting existing file during save all.
-
-2006-01-27 Rajeev ramanathan <rajeevramanathan_2004@yahoo.co.in>
-
- ** Fixes #327000
-
- * em-format-html-display.c: Added code to change cursor to notify
- user on image fit to width
-
-2006-01-26 Oswald Rodrigues <ozzy_rodrigues@yahoo.com>
-
- * em-popup.c: Corrected typo. changed Add to Addressbook to Add
- to Address Book. Fixes bug 326256.
-
-2006-01-23 Andre Klapper <a9016009@gmx.de>
-
- * mail.error.xml: fixed a typo. Fixes bug 328306.
-
-2006-01-23 Ranjan Somani <sranjan@novell.com>
-
- ** Fixes #326795
-
- * em-message-browser.c: Pressing Esc key lets u close the window
-
-2006-01-20 Nancy Cai <nancy.cai@sun.com>
-
- ** Fixes #326649
-
- * em-account-prefs.c (mail_accounts_load): select the first row
-
-2006-01-23 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c (efhd_attachment_bar_refresh),
- (efhd_mnemonic_show_bar), (efhd_add_bar): Added Mnemonics for Save
- / Save All and for show/hide attachment bar.
-
-2006-01-19 Ranjan Somani <sranjan@novell.com>
-
- ** Fixes #318785
-
- * mail-config.glade: Resizing of Default n Enable button
-
- committing on behalf of Ranjan -partha
-
-2006-01-19 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- ** See bug 324327
-
- * em-composer-utils.c (em_utils_handle_receipt): account can be
- null. Not necessary to send receipt when account is not enabled
-
-2006-01-16 Harish Krishnaswamy <kharish@novell.com>
-
- * mail-component.c (impl__get_userCreatableItems): remove shortcut
- keys (UI Hackfest - See
- http://go-evolution.org/Shortcut_Keys_Review).
-
-2006-01-16 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #326877
-
- * em-folder-view.c (emfv_enable_menus): Reverting the patch to
- hide junk/not junk toolbuttons in disabled state.
-
-2006-01-16 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #218570
-
- * em-folder-browser.c (emfb_expand_all_threads),
- (emfb_collapse_all_threads), (emfb_set_folder), (emfb_activate):
- Added code to handle expande/collapse all and call e-tree for regen of
- the list.
- * message-list.c (load_tree_expand_all),
- (message_list_set_threaded_expand_all),
- (message_list_set_threaded_collapse_all),
- (message_list_set_expand_all), (regen_list_regened): Added code to
- conditionally check for expand/collapse all and save the state after
- the operation.
- * message-list.h: Added state variable for expand/collapse all of
- threads.
-
-2006-01-12 Rohini S <srohini@novell.com>
-
- ** Fixes bug #221270.
-
- * mail-send-recv.c (format_url, build_dialog): Changed to display
- account name in Send/Receive dialog.
-
-2006-01-16 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c (em_format_html_display_new): Changed
- event to scroll_event in rajeev's patch.
-
-2006-01-12 Rohini S <srohini@novell.com>
-
- ** Fixes bug #246257
-
- * mail-dialogs.glade: Interchange of label and checkbox
- positions in Find message dialog
-
- * em-format-html-display.c (efhd_update_matches),
- (em_format_html_display_search): Hide Matches Label on dialog open
- and Show Matches Label when required. Fixes bug 246257.
-
-2006-01-16 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #239929 (Committing Rajeev's patch)
-
- * em-format-html-display.c (efhd_scroll_event),
- (em_format_html_display_new): Adds handler to zoom-in/out on
- control scroll.
-
-2006-01-13 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-browser.c (emfb_etree_unfreeze, emfb_list_built):
-
- * message-list.c (message_list_setup_etree):
-
- Fixes the scroll issue with the message list.
-
-2006-01-12 Srinivasa Ragavan <sragavan@novell.com>
-
- * GNOME_Evolution_Mail.server.in.in:
-
- Changes MailView accel from Control+F1 to Control+1.
-
-2006-01-10 Simon Zheng <simon.zheng@sun.com>
-
- * em-composer-utils.c:
- * em-folder-tree-model.c (em_folder_tree_model_save_state):
- * em-format-html.c:
- * em-migrate.c (cp_r, em_migrate_folder),
- (em_migrate_pop_uid_caches_1_4),
- (em_migrate_folder_expand_state_1_4),
- (em_migrate_folder_view_settings_1_4),
- (em_migrate_imap_cmeta_1_4),
- (em_migrate_1_4, emm_setup_initial),
- (em_migrate):
- * em-popup.c:
- * em-utils.c (em_utils_save_part_to_file):
- * mail-component.c (mail_component_init):
- * mail-config.c:
- * mail-folder-cache.c:
- * mail-mt.c:
- * mail-ops.c:
- * mail-tools.c (mail_tool_get_local_movemail_path):
- Use e_util_mkdir_hier() instead of e_mkdir_hier().
-
- Use e_util_strstrcase() instead of e_strstrcasea().
-
- use e_strftime() in evolution-data-server/
- libedataserver/e-data-server-util.c instead of the copy in
- evolution/e-util/e-util.c.
-
- use e_filename_make_safe() in evolution-data-server/
- libedataserver/e-data-server-util.c instead of the copy in
- evolution/e-util/e-util.c.
-
- use e_utf8_strftime() in evolution-data-server/
- libedataserver/e-data-server-util.c instead of the copy in
- evolution/e-util/e-util.c.
-
-2006-01-06 Andre Klapper <a9016009@gmx.de>
-
- * evolution/mail/mail-ops.c:
-
- * evolution/mail/mail-send-recv.c:
-
- * evolution/mail/mail-session.c: changing "cancelled" (British
- English) to "canceled" (American English). Fixes bug 325334.
-
-2006-01-06 Simon Zheng <simon.zheng@sun.com>
-
- * em-account-editor.c:
- * em-account-prefs.c:
- * em-composer-utils.c:
- * em-folder-tree-model.h:
- * em-migrate.c:
- * em-subscribe-editor.c:
- * em-utils.c:
- * importers/netscape-importer.c:
- * mail-config.c:
- * mail-crypto.c:
- * mail-ops.h:
- * mail-send-recv.c:
- * mail-vfolder.c:
- use libedataserver/e-account-list.h instead of e-util/e-account-list.h.
- use libedataserver/e-account.h instead of e-util/e-account.h.
-
-2006-01-04 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail-tools.c: Uncommented mail_tool_get_local_movemail_path for
- non-win32 builds since it is used in non-win32 build.
-
-2006-01-04 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- * em-composer-utils.c (em_utils_composer_send_cb): Use the
- composer window as the parent window while showing the error
- message.
-
-2006-01-02 Shreyas Srinivasan <sshreyas@novell.com>
-
- * mail.error.xml: Fix 313095, Add error identifier
- ask-delete-proxy-accounts.
-
-2006-01-02 Harish Krishnaswamy <kharish@novell.com>
-
- * em-folder-view.c (emfv_setting_notify): Remove the first check
- in the previous commit. This is redundant as it is always
- guaranteed that the component has been activated at this point.
- And when not, it ought to crash :-).
-
-2006-01-02 Harish Krishnaswamy <kharish@novell.com>
-
- reviewed by: Parthasarathi <sparthasarathi@novell.com>
-
- * em-folder-view.c (emfv_setting_notify): Set the properties on
- the bonobo component only if it already has been activated. Fixes
- #325375 (critical warning crasher).
-
-2006-01-01 Changwoo Ryu <cwryu@debian.org>
-
- * em-folder-properties.c (emfp_dialog_got_folder): translate
- the labels of emfp_items.
-
- * em-account-editor.c (em_account_editor_construct): translate
- the labels of emae_{editor,druid}_items.
-
-2006-01-01 Harish Krishnaswamy <kharish@novell.com>
-
-
- * em-utils.c (em_utils_prompt_user),
- mail-config.glade, mail.error.xml:
- s/don't/do not/ string changes. Fixes #325276.
-
-2005-12-30 Andre Klapper <a9016009@gmx.de>
-
- * mail.error.xml: Fixing several typos and harmonizing
- capital/small letters. Partially fixes bug 306117.
-
-2005-12-30 Andre Klapper <a9016009@gmx.de>
-
- * mail-session.c: changing "canceled" to "cancelled" to stay
- consistant to the rest. Fixes bug 325116.
-
-2005-12-30 Andre Klapper <a9016009@gmx.de>
-
- * evolution-mail.schemas.in.in: added quotes to literal values.
- Fixes bug 272772.
-
-2005-12-29 Andre Klapper <a9016009@gmx.de>
-
- * em-folder-properties.c: removed wrong singular string.
- Fixes bug 311472.
-
-2005-12-22 Andre Klapper <a9016009@gmx.de>
-
- * mail-config.glade: changed one duplicated mnemonic.
- Fixes bug 313801.
-
-2005-12-20 Andre Klapper <a9016009@gmx.de>
-
- * mail-config.glade: changing file selector window title from
- "Execute command..." to "Select sound file". Fixes bug 324173.
-
-2005-12-19 Andre Klapper <a9016009@gmx.de>
-
- * mail-config.glade: changed 3 HIG-violating mnemonics.
- Fixes bug 256913.
-
-2005-12-23 Srinivasa Ragavan <sragavan@novell.com>
-
- ** Fixes bug #228040, #324677
-
- * em-folder-view.c (emfv_popup_flag_completed),
- (emfv_popup_flag_clear, emfv_enable_menus): Added menus for
- complete and clear. Also added code to refresh preview on setting
- flags. Also added code to hide junk/not-junk menu depending on
- their sensitivity.
-
- * em-utils.c (tag_editor_response, em_utils_flag_for_followup):
- Added code to refresh preview.
-
-2005-12-22 Shreyas Srinivasan <sshreyas@novell.com>
-
- * mail-component.[c,h]: Handle Network Disconnect
- sent by the shell. Add function status_check which
- handles various Network states.
-
-2005-12-21 Tor Lillqvist <tml@novell.com>
-
- * em-camel-stream.c (em_camel_stream_init)
- * em-sync-stream.c (em_sync_stream_init): Use
- g_io_channel_win32_new_socket() on Win32 instead of
- g_io_channel_unix_new() to avoid confusion between file
- descriptors and sockets (which can and do overlap!). We know that
- e_msgport_fd() returns a socket on Win32.
-
-2005-12-21 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (impl_createView, view_changed_cb): api
- updates.
-
-2004-12-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #60354.
-
- * mail-component.c (view_changed_cb): set the shell window title
- as well.
- (impl_createView): renamed from createControls, just return a
- EComponentView instead.
-
- Committed on behalf of notzed - partha
-
-2005-12-21 Jeff Cai <jeff.cai@sun.com>
-
- ** See bug 324473
-
- * em-account-editor.c (em_account_editor_construct): delete
- reference to account editor to make sure be destroyed when it is
- closed.
-
-2005-12-21 Sam Yang <sam.yang@sun.com>
-
- Fixes #324670
-
- * em-folder-view.c (emfv_setting_notify): Respond to the change of
- mail/display/paned_size in gconf.
-
-2005-12-20 Veerapuram Varadhan <vvaradhan@novell.com>
-
- Fixes #246256
-
- * mail-dialogs.glade: Change "Case _Sensitive" to "Case _sensitive".
-
-2005-12-20 Boby Wang <Boby.Wang@sun.com>
-
- ** See bug 324319
-
- * em-format-html-display.c (efhd_add_bar): Add the accessible name
- of arrow button, and the attachment bar can be opened by gok.
-
-2005-12-20 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- ** See bug 234008
-
- * em-folder-tree-model.c:
- * mail-folder-cache.c:
- Make sure that the Draft folder highlights the number of messages in
- it
-
-2005-12-18 Tor Lillqvist <tml@novell.com>
-
- * Makefile.am: Use THREADS_CFLAGS and _LIBS. Don't need CAMEL_LIBS.
-
- * em-account-editor.c
- * em-account-prefs.c
- * em-filter-editor.c
- * em-folder-browser.c
- * em-folder-view.c
- * em-format-html.c
- * em-format-html-display.c
- * em-mailer-prefs.c
- * em-message-browser.c
- * em-migrate.c
- * em-subscribe-editor.c
- * em-sync-stream.c
- * em-utils.c
- * em-vfolder-editor.c
- * em-vfolder-rule.c
- * mail-autofilter.c
- * mail-component.c
- * mail-config.c
- * mail-folder-cache.c: Use gstdio wrappers. Construct pathnames of
- glade, xml, etspec and png files at run-time. Use
- g_filename_{to,from}_uri().
-
- * em-folder-browser.c (emfb_init)
- * em-folder-view.c (emfv_finalise)
- * em-message-browser.c (emmb_init): As EMFolderView::ui_files now
- always is a list of filenames constructed with g_build_filename(),
- use g_free() on each list entry before calling g_slist_free() on
- the list.
-
- * em-folder-tree-model.c (em_folder_tree_model_load_state): Use
- e_xml_parse_file().
-
- * em-migrate.c: Bypass all the code for upgrading from 1.x on Win32.
- (emm_setup_initial): Use GDir instead of dirent.
-
- * em-sync-stream.c
- * mail-folder-cache.c: Use pthread_equal() to compare pthread_t
- values.
-
- * em-vfs-stream.c: No EINPROGRESS or ELOOP on Win32.
-
-2005-12-17 Tor Lillqvist <tml@novell.com>
-
- * mail-mt.c: Add copyright blurb. Use separate flag field to
- indicate whether a pthread_t field is valid or not. Use
- e_util_pthread_id() in debugging output.
-
- * mail-mt.c
- * mail-session.c
- * mail-vfolder.c: Include just <gtk/gtk.h> and not a handful of
- individual gtk headers. Harmonize #include order and syntax. Use
- pthread_equal() to compare pthread_t values.
-
- (em_channel_setup): Call g_io_channel_win32_new_socket() on Win32
- instead of g_io_channel_unix_new(). This avoids the occasional
- "giowin32.c:1661: 12 is both a file descriptor and a socket, file
- descriptor interpretation assumed." style warnings, which indicate
- a real problem in this case.
-
- * mail-ops.c: Use gstdio wrappers. Open file in binary mode.
-
- * mail-signature-editor.c
- * mail-tools.c
- * mail-vfolder.c
- * message-list.c
- * message-tag-followup.c: Beautify #include order and syntax. Use
- gstdio wrappers. Construct pathnames of files to be read at
- run-time instead of using compile-time paths.
-
- * mail-tools.c (mail_tool_get_local_movemail_path): Not used, put
- in #if 0.
-
- * importers/elm-importer.c
- * importers/evolution-mbox-importer.c
- * importers/evolution-outlook-importer.c
- * importers/mail-importer.c
- * importers/netscape-importer.c
- * importers/pine-importer.c: Use GLib API when
- applicable.
-
-2005-12-16 Sam Yang <sam.yang@sun.com>
-
- ** Fixes bug #323867.
-
- * em-folder-view.c (emfv_setting_notify): Respond to the change of
- /apps/evolution/mail/display/show_deleted and thread_list in
- gconf.
-
-2005-12-12 Karsten BrÀckelmann <guenther@rudersport.de>
-
- * em-folder-view.c: Mail Context Menu re-ordered correctly,
- fixes bug #323140.
-
-2005-12-12 Shreyas Srinivasan <sshreyas@novell.com>
-
- * mail.error.xml: Fix #47857
-
-2005-12-05 Shi Pu <shi.pu@sun.com>
-
- See bug ** 323253
-
- * mail-send-recv.c (format_url): If url->host is NULL or it is
- emtpy, don't print it out in send & receive dialog.
-
-2005-11-28 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-view.c (emfv_setting_notify): literal strings do not
- need to be \0 terminated, they are already nul-terminated by
- definition.
-
-2005-11-28 Sam Yang <sam.yang@sun.com>
-
- ** See bug #322414
-
- * em-folder-view.c (emfv_setting_notify): Respond to the change of
- /apps/evolution/mail/display/show_preview in gconf.
-
-2005-11-25 Tor Lillqvist <tml@novell.com>
-
- * em-composer-prefs.c (sig_add_script_response): Use gstdio
- wrappers.
- (url_requested): Use g_filename_from_uri()
- instead of just stripping off the "file:" prefix.
- (em_composer_prefs_construct): Construct glade file pathname at
- run-time for Win32 install-anywhere.
-
-2005-11-23 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- ** See bug #315987
-
- * em-composer-utils.c (em_utils_composer_send_cb): Send only if
- account is enabled
- (em_utils_composer_save_draft_cb): Save message to server folder
- only if the account is enabled, else save it locally
- (generate_account_hash): Add default account into the account hash
- only if the account none of the account is enabled.
- (guess_account): use only enabled account
-
- * mail.error.xml: Add error message for send-no-account-enabled
-
-2005-11-11 Boby Wang <boby.wang@sun.com>
-
- ** See bug 321214.
-
- * mail-config.glade: Focus on the Tools-> Settings-> Composer
- Preferences -> Forward Style and Reply Style comboboxes.Comboboxes
- are named after their current settings. Now the names were
- corrected.
-
-2005-10-26 Vivek Jain <jvivek@novell.com>
-
- **See #313096
-
- * em-junk-hook.c (emjh_construct) load the plugin only if it is
- enabled.
-
-2005-10-22 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- * mail-config.c (mail_config_get_default_account): Return valid
- transport, only if the account is enabled.
-
-2005-10-22 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- * em-composer-utils.c (create_new_composer): If the account
- corresponding to the fromuri is not enabled. Then load the
- preferred account from the composer.
-
-2005-10-21 Jeff Cai <jeff.cai@sun.com>
-
- Reverse previous patch because of bug 319376.
- * em-folder-view.h:
-
-2005-10-21 Jeff Cai <jeff.cai@sun.com>
-
- * mail/em-folder-view.h: Change the declaration of flag
- 'preview_active' from one bit of int to one bit of guint because
- it will be -1 on linux if being declared one bit of int.
-
-2005-10-19 Philip Van Hoof <pvanhoof@gnome.org>
-
- ** See bug 318611
-
- * mail/em-composer-utils.c: data hiding
-
-2005-10-19 Harish Krishnaswamy <kharish@novell.com>
-
- * em-format-html-display.h: Include e-attachment-bar.h relative to
- the top dir, so it stops borking the print-message plugin.
-
-2005-10-18 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-browser.c (emfb_focus_search, emfb_tools_vfolders):
- Make '/' to focus on search bar entry. Fixes bug #268027
-
- * em-folder-view.c (emfv_enable_menus): Set the target widget.
-
- * em-format-html-display.[ch] (em_format_html_display_get_bar):
- Added a function to get the attachment bar.
-
- * em-utils.c (em_utils_temp_save_attachments): Added function to
- save parts of the attachments.
-
-2005-10-03 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-view.c (emfv_ena) (emfv_popup_items): Mark visible
- with junk flags as well.
-
- * em-popup.[ch] (em_popup_target_new_select): Set the flags for
- junk respectively.
-
-2005-10-18 Sankar P <psankar@novell.com>
-
- - Enhances Signature-Preferences.
- - Added shortcuts for common operations.
- -- Delete on Del key
- -- Edit on Dbl.Click
- - Prevents adding duplicate and NULL signatures
-
- * mail-signature-editor.c (menu_file_save_cb:
- (mail_signature_editor, sig_name_changed):
- (menu_file_save_close_cb, delete_event_cb):
- (do_exit): Modified the functions for handling the above
- scenarios.
-
- * mail.error.xml: Added error strings for duplicate and NULL
- signatures.
-
- * em-composer-prefs.c (em_composer_prefs_construct):
- (sig_delete_cb, sig_add_cb): Modified the functions so as to
- handle the keyboard accelarators and to grab focus to the list on
- deletion/insertion of signatures.
-
- * em-composer-prefs.c (signature_key_press, sig_tree_event_cb):
- Added new functions to handle the keypress events on the
- signatures list tree.
-
- Fixes #269749
-
-2005-09-29 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- ** See bug 317284
-
- * em-mailer-prefs.c (emmp_header_add_header): Check if its a valid
- header and only then add it
-
-2005-09-28 Tor Lillqvist <tml@novell.com>
-
- * em-composer-utils.c (reply_get_composer, get_reply_list):
- (post_reply_to_message):
-
- * em-folder-view.c (emfv_format_link_clicked):
-
- * importers/netscape-importer.c (netscape_get_boolean): Use
- g_ascii_str(n)casecmp() instead of str(n)casecmp(). We are
- comparing to literal ASCII strings in these cases, so just
- casefolding ASCII is enough. Also better for portability.
-
- * em-format-html-display.c
-
- * message-list.c: Define localtime_r() for Win32 using localtime()
- (which is thread-safe in Microsoft's C library).
-
- * mail-tools.c (mail_tool_do_movemail): Not implemented on Win32.
-
-2005-09-28 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- See bug ** 317329
-
- * em-vfolder-rule.c (em_vfolder_rule_add_source): Do not add a
- NULL uri.
-
-2005-09-26 S.Antony Vincent Pandian <santony@gmail.com>
-
- Fixes #208647
-
- * em-folder-tree.c: Have added a menu item Empty Trash in the
- folder tree's context menu and also added its callback.
-
-2005-09-22 Carsten Guenther <carsten.guenther@scalix.com>
-
- Fixes #316983
-
- * em-composer-utils.c (em_utils_send_receipt):
- Exchanged the FROM and TO fields so that a read
- receipt actually goes to the sender of the original
- message.
-
-2005-09-21 Sankar P <psankar@novell.com>
-
- * em-account-editor.c (emae_defaults_page): Added code to enable
- the sent folder button for accounts with "None" set as the
- Receiving Server type. Fixes #315506
-
-2005-09-15 Sankar P <psankar@novell.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
-
- * em-folder-tree.c (render_pixbuf): Added enum and the code to
- change the icon for sent items folder. Fixes #257321
-
-2005-09-02 Harish Krishnaswamy <kharish@novell.com>
-
- * default/C/Inbox: Update the Welcome mail.
-
-2005-08-25 Not Zed <NotZed@Ximian.com>
-
- ** See bug #314440.
-
- * em-format-html.c (efh_url_requested): check the content object's
- mime type, not the container, when seeing if the data should be
- written.
- (efh_write_text_html): add some debug.
-
- * em-format-html-display.c (efhd_html_button_press_event): fix
- debug.
-
-2005-08-22 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c (efhd_bar_resize): Dont call update.
- Just set the width on the bar.
-
-2005-08-23 Not Zed <NotZed@Ximian.com>
-
- * mail-tools.c (mail_tool_uri_to_folder): cast warning away.
-
- * mail-folder-cache.c: include missing header for
- e_filename_make_safe.
-
- * em-junk-hook.h: Fix some header includes, fix the include guard
- to use the right name.
- (EMJunk): Ugh, this is an object, properly derive from it! How
- did this work?
-
- * em-junk-hook.c (em_junk_check_junk): fix bool conversion.
-
- * em-format-html-display.c (efhd_bar_popup_position): another
- wraning, why this crap isn't in the attachment bar like i said it
- should be, i'll never know.
- (efhd_xpkcs7mime_viewcert_foad): only define if used.
-
- * em-account-editor.c (emae_defaults_page): attempt to fix parentheses
- (emae_security_page): fix conditional compilation warnings.
-
-2005-08-19 Not Zed <NotZed@Ximian.com>
-
- ** See #312668.
-
- * mail-component.c (setline_done, impl_setLineStatus): change the
- camel-session online status before (if we're going online) or
- after (if we're going offline) actually doing offline processing.
-
-2005-08-19 Not Zed <NotZed@Ximian.com>
-
- * em-format.c (emf_multipart_encrypted): put the s/mime message
- back, awaiting string approval for a change otherwise.
-
-2005-08-18 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_message_add_bar): dont add
- attachment bar if it is disabled.
- (efhd_attachment_button): dont add attachments if there is no bar.
-
- * em-format.c (emf_inlinepgp_signed, emf_inlinepgp_encrypted): fix
- the error messages for consistency. We dont need to check
- content-type, since we only get called with the right one.
- (emf_multipart_encrypted): fix up wrong s/mime error.
-
- * em-format-html.c (efh_inlinepgp_signed)
- (efh_inlinepgp_encrypted): moved to em-format.c; otherwise this
- will break replying, etc.
-
- ** See #271894.
-
- * em-format.c (emf_multipart_encrypted): use the content object's
- content-type to check types.
-
-2005-08-16 Not Zed <NotZed@Ximian.com>
-
- ** See #312668.
-
- * mail-component.c (impl_setLineStatus): new offline interface.
- (setline_check, setline_done): and implementation.
-
- * mail-offline-handler.[ch]: destroyed, burnt, dissolved in acid.
-
-2005-08-17 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c
- (efhd_bar_save_selected): Fix a warning.
- (efhd_bar_resize): Fix the bar size to match other widgets.
- (efhd_bar_scroll_event): Fix scroll issue over bar. bug #312224.
- (efhd_add_bar): Add a frame around the attachment bar. bug #312033
-
-2005-08-17 Kaushal Kumar <kakumar@novell.com>
-
- * em-composer-prefs.c (url_requested): Add the close call for fd.
-
- See bug #307375.
-
-2005-08-15 Not Zed <NotZed@Ximian.com>
-
- ** See #313440.
-
- * Makefile.am (mailinclude_HEADERS): Include the idl generated
- headers.
-
-2005-08-16 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c (efhd_attachment_button): Sets the filename
- in the attachment structure instead of the part
-
-2005-08-15 Christian Kellner <gicmo@gnome.org>
-
- * mail-send-recv.c (get_folders): Honour the check_all flag for
- the scalix provider. Fixes bug #313582.
-
-2005-08-14 Rodney Dawes <dobey@novell.com>
-
- * em-folder-view.c (emfv_popup_items): Fix two mnemonic conflicts
- in the context menus for the mailer
-
-2005-08-12 Vivek Jain <jvivek@novell.com>
-
- * em-account-editor.c (emae_check_complete): first prepare the
- page and then validate **Fixes #273842
-
-2005-08-11 Not Zed <NotZed@Ximian.com>
-
- ** See #232499.
-
- * mail-folder-cache.c (rename_folders): rename view meta-data
- along with the folder.
-
-2005-08-11 Vivek Jain <jvivek@novell.com>
-
- * em-folder-tree-model.c (account_changed): check if the account
- is enabled, before adding the store
-
- ** Fixes #313057
-
-2005-08-11 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- * em-folder-view.c (emfv_enable_menus): return the target in any
- case. It will be an empty target and not NULL.
-
- Fixes bug 312420
-
-2005-08-11 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c (efhd_attachment_bar_refresh):
- (efhd_bar_resize, efhd_add_bar): Fix to hide the attachment bar
- when no attachments and to resize when the window is resized.
-
-2005-08-10 Not Zed <NotZed@Ximian.com>
-
- ** See #271985.
-
- * mail-config.c (mail_config_write_on_exit)
- (mail_config_get_account_by_source_url)
- (mail_config_get_account_by_transport_url)
- (mail_config_get_default_transport):
-
- * mail-component.c (load_accounts): check url for content before
- using it.
-
-2005-08-09 Not Zed <NotZed@Ximian.com>
-
- ** See #312715.
-
- * em-folder-tree.c (emft_drop_folder_rec): removed.
- (emft_drop_folder): call em_folder_utils_copy_folders to perform
- the operation rather than: doing it sync when it shouldn't be, and
- 2; copying code redundantly.
-
- * em-folder-utils.c (em_folder_utils_move_folder): remove this
- redundant api.
- (em_folder_utils_copy_folder): add delete flag.
- (em_folder_utils_copy_folders): export this function. fix strange
- argument order.
-
-2005-08-10 Tor Lillqvist <tml@novell.com>
-
- * Makefile.am: Link with all needed libraries. Use -no-undefined
- on Win32. Work around annoying MSYS feature on Win32 when
- installing the schemas: Echo the command to a temporary .bat file
- and run it with cmd.exe...
-
- * importers/Makefile.am: Use the bootstrap import library for
- libevolution-mail.la on Win32 as libevolution-mail.la hasn't been
- built yet when we come here. Use -no-undefined on Win32. Use
- privsolib instead of privlib. (See ../ChangeLog.)
-
-2005-08-08 Not Zed <NotZed@Ximian.com>
-
- ** See bug #304938.
-
- * mail-ops.c (mail_send_message): don't try to dereference the
- transport if we don't have one.
-
-2005-08-04 Not Zed <NotZed@Ximian.com>
-
- ** See bug #300881.
-
- * em-account-editor.c (emae_setup_signatures): don't add the
- signature listener if we've already added it.
-
-2005-08-08 Vivek Jain <jvivek@novell.com>
-
- * em-format.c (emf_multipart_appledouble): check part before using
- it, else dump source
-
-2005-08-05 Not Zed <NotZed@Ximian.com>
-
- ** See bug #312397.
-
- * em-format-quote.c (emfq_format_message): if we are rendering an
- attached message, include the headers always and a marker for it.
-
-2005-08-07 Rodney Dawes <dobey@novell.com>
-
- * em-folder-browser.c (emfb_search_items):
- * em-folder-tree-model.c (sort_cb, em_folder_tree_model_load_state):
- * em-folder-tree.c (emft_drop_target):
- * em-folder-view.c (emfv_popup_items, emfv_uri_popups):
- * em-utils.c:
- * em-vfolder-editor.c (em_vfolder_editor_new):
- * em-vfolder-rule.c (em_vfolder_editor_sourcelist_new):
- * mail-dialogs.glade:
- * mail-vfolder.c (vfolder_setup_desc, vfolder_setup_do):
- (vfolder_adduri_desc, vfolder_load_storage, vfolder_edit):
- (vfolder_edit_rule, vfolder_gui_add_rule):
- * mail.error.xml:
- Change instances of "vfolder" that appear in the UI to use the term
- "Search Folder" instead
- Update some comments to use the term "Search Folder" instead of vfolder
-
-2005-08-05 David Malcolm <dmalcolm@redhat.com>
-
- * em-account-editor.c (emae_option_checkspin): initialize local
- variable "label".
-
-2005-08-04 Not Zed <NotZed@Ximian.com>
-
- ** See bug #273885.
-
- * em-utils.c (em_utils_edit_filters): setup filter source names
- properly translated.
-
- * em-filter-editor.c (em_filter_editor_construct): take an array
- of structs for the filter source so the incoming/outgoing is
- properly translated.
-
- ** See bug #312397.
-
- * em-format-quote.c (emfq_format_message): dont quote credits
- here.
- (emfq_format_message_prefix): new prefix handler for credits.
- (emfq_format_clone): invoke the message prefix before anything
- else.
-
- ** See bug #310840.
-
- * em-icon-stream.c (em_icon_stream_get_image): check for /0
- possibility.
-
- ** See bug #308512.
-
- * em-account-editor.c (emae_authtype_changed): take into account
- the writability of the password when sensitising remember
- password.
- (get_password): small hack to disable the save-password button
- when appropriate.
-
-2005-08-05 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c (efhd_init, efhd_complete):
- (efhd_message_add_bar): Fixes the bug #312410.
-
-2005-08-04 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-utls.c (emu_update_save_path): Killed a warning.
-
-2005-08-03 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c (emfb_set_folder): not here.
-
- * em-folder-view.c (emfv_set_folder): ref the folder here.
-
-2005-08-03 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_message_reply): try to fix #309647, only
- act if the selection is actually active.
-
-2005-07-29 Arunprakash <arunp@novell.com>
-
- * mail/em-folder-utils.c (em_folder_utils_delete_folder):
- Allocated a new string to be used for the error dialog response to
- avoid multiple frees.
-
-2005-08-01 Shakti Sen <shprasad@novell.com>
-
- * em-composer-prefs.c: Included 'gtkentry.h' to resolve the
- symbol 'GTK_ENTRY'.
-
- Partly fixes bug #231968.
-
-2005-08-02 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-utils.c (emu_get_save_filesel, emu_save_part_response):
- (emu_save_messages_response): Fixed a bug where the last path is
- not preserved well.
-
-2005-08-01 Not Zed <NotZed@Ximian.com>
-
- * em-subscribe-editor.c (sub_fill_level): always process all nodes
- we have, even if we have already seen the top result.
-
-2005-07-29 Not Zed <NotZed@Ximian.com>
-
- ** See bug #300607.
-
- * mail-vfolder.c (store_folder_renamed_rec, store_folder_renamed):
- rename all folders in the folder tree renamed.
-
-2005-07-29 Shreyas Srinivasan <sshreyas@novell.com>
-
- * mail-ops.c: Fix #311223. Include <camel/camel-multipart.h>
- so that lazy binding does not fail on CAMEL_IS_MULTIPART.
-
-2005-07-29 Shreyas Srinivasan <sshreyas@novell.com>
-
- * em-account-editor.c (emae_defaults_page): Fix #307538. Check if
- the provider type exists before senisitizing widgets.
-
-2005-07-28 Not Zed <NotZed@Ximian.com>
-
- ** See bug #311440.
-
- * em-utils.c (em_utils_in_addressbook): handle NULL address.
-
-2005-07-28 Praveen Kumar <kpraveen@novell.com>
-
- * em-account-editor.c (emae_check_complete) : Update the "Full Name"
- text entry with the detected real name of the user. Fixes bug 311778
-
-2005-07-27 Srinivasa Ragavan <sragavan@novell.com>
-
- * mail-config.glade: Changed "Host" to "Server"
-
-2005-07-27 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (get_folders): hack to make it honour the
- 'refresh only inbox' imap/groupwise setting.
-
-2005-07-26 Harish Krishnaswamy <kharish@novell.com>
-
- * Makefile.am: fix make distcheck issues.
-
-2005-07-25 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-format-html-display.c (efhd_init, efhd_finalise):
- (efhd_attachment_image, efhd_attachment_button):
- (efhd_format_attachment): Added code to create a attachment bar.
-
- * em-format-html.c (efh_format_message) Added code to add bar at
- the beginning of the message.
-
- * em-popup.[ch] (em_popup_target_new_attachments)
- (emp_part_popup_set_background)
- (emp_standard_menu_factory): Added code to handle the popup menu
- inside the attachment bar.
-
- * em-utils.[ch] (em_utils_edit_filters, emu_get_save_filesel)
- (em_utils_save_part, em_utils_save_messages): Added code to handle
- save selected and save all options of the attachment bar.
-
-2005-07-21 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c: reverted dobey's busted view->hide* menu
- stuff.
-
- * em-account-editor.c (emae_option_entry): if we get a null
- default, then set "" on the entry.
- (emae_option_entry): set the default value on the url if it
- doesn't exist already.
-
-2005-07-20 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (refresh_folders_desc, refresh_folders_get)
- (refresh_folders_got, refresh_folders_free, get_folders)
- (receive_update_got_folderinfo, receive_update_got_store): refresh
- all the folders manually and directly.
-
- * mail-folder-cache.c (setup_folder): propagate even -1 unread
- counts, they get ignored later.
-
- * em-composer-utils.c (emu_handle_receipt_message)
- (em_utils_handle_receipt): use getmessagex too, so we can always
- clear any error.
-
- * em-folder-view.c (emfv_message_selected_timeout)
- (emfv_list_done_message_selected): use getmessagex and do
- something meaninful with the error.
-
- * mail-ops.c (mail_get_messagex): added new get message which
- returns an exception.
-
-2005-07-19 Not Zed <NotZed@Ximian.com>
-
- * mail-tools.c (mail_tool_uri_to_folder): dont get the service
- connected, it will connect if it needs to.
-
- * mail-ops.c (get_folderinfo_get): * em-folder-utils.c
- (emft_copy_folders__copy)
- (emfu_delete_folders): * em-folder-tree.c
- (emft_get_folder_info__get): Always request subscribed folders, if
- the backend doesn't implement it it will ignore it.
-
-2005-07-13 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (mail_autoreceive_init, auto_online): listen to
- session online events, and if we are online, trigger an
- auto-receive of all auto-check accounts.
-
-2005-07-11 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (auto_account_commit): force an update
- immediately if we're setting up the timeout to start with.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_unread_count):
- noop if the unread count < 0.
- (em_folder_tree_model_set_folder_info): only set the unread count
- if we actually have one.
-
- * em-folder-tree.c (emft_tree_row_expanded): get the folder list
- 'fast'.
-
- * mail-ops.c (get_folderinfo_get): get the folder list 'fast'.
-
-2005-07-19 Srinivasa Ragavan <sragavan@novell.com>
-
- * em-folder-tree.c (emft_popup_move): calling the wrong api to
- move a folder. Infact it was copying for move.
-
-2005-07-14 Vivek Jain <jvivek@novell.com>
-
- * em-composer-utils.c: included missing header file
- camel-multipart.h
-
- **Fixes #310330
-
-2005-07-13 Kjartan Maraas <kmaraas@gnome.org>
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Free font name
-
- * mail-config.c (config_write_style): Free font name and name of
- citation color.
-
- * message-list.c (regen_list_regened, regen_list_free): Free
- search string. Thanks to Michael Zucchi for walking me through
- this one. My brain wasn't running on all it's cylinders...
-
-2005-07-10 Shreyas Srinivasan <sshreyas@novell.com>
-
- * mail-config.[ch]: Add new functions to remove proxy accounts and
- proxies created by the account.
-
- * mail-compnent.c: Remove proxy accounts at startup
-
- * mail.error.xml: Add warnings for proxy disable and removal of a
- proxy when its parents are removed.
-
- * em-account-prefs.c: Add checks not to display proxies and
- handling of parent removal/ disabling.
-
-2005-07-06 Vivek Jain <jvivek@novell.com>
-
- * em-junk-filter.c: moved to plugins/sa-junk-plugin
-
- * em-junk-filter.h: removed
-
- * em-junk.plugin.[ch]: removed
-
- * em-junk-hook.[ch]: added new files to have a new hook
-
- * Makefile.am: updated to removed/add these files.
-
- * mail-session.c (mail_session_init): assign NULL to junk_plugin,
- remove included file "em-junk-filter.h"
-
- * mail-component-factory.c (make_factory): register type for
- EMJunkHook
-
-2005-07-05 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_attachment_image): use the cache,
- since we set it up.
- (efhd_image): added a (private!) format handler for all the image
- types so we intercept them and handle them directly.
- (efhd_image_fit, efhd_image_unfit): replace the resize callback
- with two much simpler ones.
-
- * em-icon-stream.c (em_icon_stream_get_image): added 'fit to'
- arguments. Changed dramatically to get approximate fit-to image,
- update cache, etc.
- (em_icon_stream_is_resized): added 'fit to' arguments. changed to
- manipulate the cache properly.
- (emis_fit): helper to fit an image to a size.
- (em_icon_stream_new): added 'fit to' arguments rather than poking
- structures.
-
- * em-format-html-display.c (efhd_attachment_image): fixed a memory
- leak, various style issues. Removed all scaling code.
- (efhd_attachment_popup): show menu's appropriately. add back the
- hide/show menu always.
- (efhd_image_popup): fix formatting.
-
- ** Applied patch from Srini for scaling images to fit by default.
-
-2005-07-04 Veerapuram Varadhan <vvaradhan@novell.com>
-
- * mail-component.c (handleuri_got_folder): Added "forward"
- command-line option.
-
-2005-07-06 Not Zed <NotZed@Ximian.com>
-
- * importers/evolution-mbox-importer.c (mbox_getwidget): wrap the
- widgets in another vbox so they display properly.
-
- * importers/pine-importer.c (pine_getwidget): pack the 'mail'
- widget.
-
- * importers/pine-importer.c (pine_import):
- importers/elm-importer.c (elm_import):
- importers/evolution-mbox-importer.c (mbox_import): Dont create
- widgets anymore, report progress through the EImport and handle
- cancel.
-
-2005-07-01 Not Zed <NotZed@Ximian.com>
-
- * importers/Makefile.am: remove shell/importer link & take out
- netscape & outlook temporarily.
-
- * Makefile.am: Removed importer link.
-
-2005-06-24 Matt Brown <matt@mattb.net.nz>
-
- * em-inline-filter.c: implement extraction of inline
- signed/encrypted pgp parts and package them into
- x-inlinepgp-signed/x-inline-pgp-encrypted parts.
-
- * em-format-html.c: Formatters to verify/decrypt and then display
- the parts generated by the inline filter.
-
-2005-06-25 Not Zed <NotZed@Ximian.com>
-
- ** See bug #307398
-
- * mail-session.c (alert_user): copy the prompt string, in 'no
- cancel' mode we run asynchronously.
- (free_user_message): & free it.
-
-2005-06-24 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_url_requested): dont pass data gtkhtml
- definitely can't handle, to gtkhtml. This is no security patch,
- but stops gtkhtml wasting time tying to render malicious mails or
- other rubbish.
-
-2005-06-21 Brian Mury <b.mury@ieee.org>
-
- ** See bug #301466.
-
- * filtertypes.xml, searchtypes.xml, vfoldertypes.xml: fix the
- "match all" case to actually work.
-
-2005-06-18 Tor Lillqvist <tml@novell.com>
-
- * GNOME_Evolution_Mail.server.in.in: Use SOEXT.
-
-2005-06-08 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (view_changed_cb): make this run a timeout so
- we don't update too often and suck loads of cpu time.
-
-2005-06-07 Andre Klapper <9016009@gmx.de>
-
- * mail.error.xml: Fixing typo (bug 306151)
-
-2005-06-02 Not Zed <NotZed@Ximian.com>
-
- * Evolution-Mail.idl: only let this be included once.
-
- * mail-component.c (mail_component_class_init): Setup a test
- function, and fix the bonobo init function so we're actually a
- mailcomponent and not just an evolutioncomponent.
-
-2005-06-02 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c: change this to sub-class evolution-component,
- not bonobo-object.
-
- * Evolution-Mail.idl: Made the mail component sub-class
- Evolution.Component so it can add new interfaces for remote gui
- mail operations.
-
-2005-05-31 Rodney Dawes <dobey@novell.com>
-
- * em-folder-browser.c (emfb_view_hide_read, emfb_view_show_selected):
- (emfb_view_show_all): Update these methods to use the listener method
- of access from bonobo as they are radio buttons now
- (emfb_verbs): Comment out the verbs for the above methods, as they are
- configured through add_listener now
- (emfb_enable_map): s/ViewHideSelected/ViewShowSelected/
- (emfb_activate): Add the listeners for the radio buttons for filtering
- the message list for unread, selected, or all messages
-
-2005-05-24 Rodney Dawes <dobey@novell.com>
-
- * em-folder-selector.c (folder_created_cb): Remove this unused method
- (emfs_response): Remove unused variable declarations
-
- * em-folder-view.c (emfv_popup_{load_images,selectall}): Remove
- these unused methods
-
- * mail-component.c: Include em-folder-utils.h to fix warnings
-
-2005-05-20 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mail_component_peek_session): add helper for
- plugins to get mail session.
-
-2005-05-19 Chenthill Palanisamy <pchenthill@novell.com>
-
- * mail.error.xml: Added a error message required for
- marking messages as read in subfolders.
-
-2005-05-19 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-print.c (em_format_html_print_raw_message): new
- function to print a non-foldered message. untested.
-
-2005-05-19 Not Zed <NotZed@Ximian.com>
-
- * em-folder-utils.h: fix rodney's name choices. fix
- multiple-inclusion. fix forward references. fix all callers.
- add many fixme's for the busted api's.
-
- * em-format-quote.c (emfq_format_clone): use pseudo mime type to
- find message formatter.
-
- * em-format-html-display.c (efhd_format_message): remove, it
- didn't do anything.
-
- * em-format-html.c (efh_format_message): make this a handler
- callback.
-
- * em-format.c (emf_message_rfc822): make this use the pseudo
- mime-type x-evolution/message/rfc822 instead of the hardcoded
- format_message callback.
-
- * em-format-html-display.c (efhd_message_prefix): make this use a
- pseudo-mime-type handler rather than hard-coded, so it can be
- overridden by a plugin.
-
-2005-05-17 Radek Doulik <rodo@novell.com>
-
- * em-format-html.c: removed include of htmlengine.h which wasn't
- needed
-
- * em-format-html-display.c: use top level gtkhtml API instead of
- lower level one
-
- * em-folder-view.c (emfv_popup_selectall): use gtk_html_select_all
- instead of calling html engine directly
-
-2005-05-16 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.h:
- * mail-autofilter.h: forward-reference structures
-
- * *.h: Make installed headers includable from mail/
-
- * Makefile.am (mailinclude_HEADERS): install various mail headers
- as first cut at public plugin api.
-
- * move e-error into e-util/
-
-2005-05-16 Srinivasa Ragavan <sragavan@novell.com>
-
- * GNOME_Evolution_Mail.server.in.in: Added tooltips
-
-2005-05-13 Rodney Dawes <dobey@novell.com>
-
- * Makefile.am: Add new em-folder-utils.[ch] abstraction
-
- * em-folder-browser.c: Update for new menu layout
- Add new methods to handle the actions that were previously only
- available from the context menu when right-clicking on a folder
-
- * em-folder-selector.c (emfs_response): Just call emfu_folder_create
- if the user wants to create a new folder in the selector dialog
- (em_folder_selector_get_selected_path): Clean up the code to fix a
- couple potential crashes
-
- * em-folder-tree.[ch]: Add methods to get pointers to a CamelFolder or
- CamelFolderInfo object for the selected item in the tree
- Add a method to get a pointer to an EMFolderTreeModelStoreInfo object
- for the selected store in the tree
- Move folder operations out into em-folder-utils.[ch] so that they
- are abstracted from the tree and can be used by methods other than
- the internal context menu
-
- * em-folder-utils.[ch]: Move the folder operations code to here
-
- * em-folder-view.c: Update for the new menu layout
- Fix Mark as Read/Unread in the context menu to only show up in the list
-
- * mail-component.c (create_item): Just call emfu_folder_create here
- when the user requests to create a new folder from the New toolbar item
-
-2005-05-13 Shreyas Srinivasan <sshreyas@novell.com>
-
- * Fixes bug #273868, #300113, #302831.
-
- * mail-offline-handler.c : Add check for Camel Offline
- store to is_service_relevant.
-
-2005-04-21 Jeffrey Stedfast <fejj@novell.com>
-
- * em-composer-utils.c (post_reply_to_message): Use the real folder
- and real uid (not the virtual if replying to a message in a
- vfolder). Fixes bug #269129.
-
-2005-05-06 Vivek Jain <jvivek@novell.com>
-
- * em-folder-view.c: EPopupItem emfv_popup_items[] replace Print
- with Print... Fixes #272242
-
-2005-05-07 Sankar P <psankar@novell.com>
-
- * mail-ops.c (mail_send_message)
- Added code to prevent copying of sent items, based on provider type
-
- * em-account-editor.c (emae_defaults_page)
- Added code to disable the Sent Folders button
-
-2005-05-06 Not Zed <NotZed@Ximian.com>
-
- * mail.error.xml: renamed from mail-errors.xml, add i18n tags, fix
- some whitespace issues. Removed some unecessary translations.
-
-2005-05-06 Chenthill Palanisamy <pchenthill@novell.com>
-
- * evolution-mail.schemas.in.in: Removed the schema
- /schemas/apps/evolution/mail/junk/sa/daemon_port
- since its not used anymore.
-
-2005-05-06 Sarfraaz Ahmed <asarfraaz@novell.com>
-
- * mail/mail-errors.xml : Fixed a typo for #272786
-
-2005-05-05 Radek Doulik <rodo@site>
-
- * em-folder-view.c (em_folder_view_get_popup_target): use
- gtk_html_command to ask if selection is active tto avoid using
- selection API directly
- (emfv_popup_copy_text): use gtkhtml API instead of engine API
- (emfv_message_reply): use new gtk_html_get_selection_html function
- to avoid using low level gtkhtml APIs
-
-2005-05-03 Radek Doulik <rodo@site>
-
- * em-format-html-display.c: removed include of htmlinterval.h as
- it's not needed
-
-2005-04-28 Parthasarathi Susarla <sparthasarathi@novell.com>
-
- * em-folder-view.c (emfv_set_folder): remove a call to
- refresh folder from here
- * em-folder-browser.c (emfb_set_folder): call
- mail_refresh_folder here
-
-2005-04-28 Not Zed <NotZed@Ximian.com>
-
- * message-list.c: add some message list loading/profiling points,
- "list".
-
- * em-folder-view.c: add some message display/loading profiling
- points, "goto".
-
-2005-04-12 Not Zed <NotZed@Ximian.com>
-
- ** See bug #273752
-
- * em-folder-tree.c (emft_drop_folder_rec): handle NULL
- "parent_name" - dropping to store node.
-
-2005-04-08 Jeffrey Stedfast <fejj@novell.com>
-
- * em-composer-utils.c (em_utils_send_receipt): Simplify the
- scanning for '@' by using strchr().
-
-2005-04-08 Not Zed <NotZed@Ximian.com>
-
- * em-composer-utils.c (em_utils_ask_receipt): removed.
- (em_utils_handle_receipt): asynchronously load message if none is
- supplied.
-
- * em-folder-view.c (emfv_set_seen): pass message in.
-
- * em-composer-utils.c (em_utils_ask_receipt): strip leading lwsp
- on the disposition address.
- (em_utils_ask_receipt): added a comment about which rfc.
- (em_utils_handle_receipt): merged ask_receipt into here. Changed
- api to take a message instead, so we don't have to load the
- message every time. Also only set receipt-handled if we have a
- receipt requested in the first place.
-
-2005-04-05 ERDI Gergo <cactus@cactus.rulez.org>
-
- * mail-errors.xml: Added new dialog for receipt requests
-
- * em-composer-utils.c (em_utils_guess_account): Made guess_account
- public, to be callable from em-folder-view
- (em_utils_send_receipt): New function to send an RFC
- 2298-compliant message delivery notification
-
-2005-04-05 Not Zed <NotZed@Ximian.com>
-
- ** See bug #74320
-
- * em-format.c (em_format_part_as): if the snooped type is NULL,
- fall back to application/octet-stream.
-
-2005-04-04 Rodney Dawes <dobey@novell.com>
-
- * em-folder-view.c (emfv_popup_items): Add Mark as Read/Unread back
- to the context menu (#73192)
- Fix the ordering values for some menu items in the context menu that
- had duplicate order values
-
-2005-03-31 Not Zed <NotZed@Ximian.com>
-
- ** See bug #72935
-
- * em-folder-view.c: always enable the stop button.
-
-2005-03-31 Not Zed <NotZed@Ximian.com>
-
- ** See bug #72518
-
- * em-folder-tree.c (emft_popup_delete_folder): prompt for vfolder
- case differently.
-
-2005-03-31 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (on_selection_changed_cmd): only noop if we only
- have 1 message selected, otherwise we don't update the menu's.
- Fixes a problem introduced by 64987's fix.
-
-2005-03-30 Li Yuan <li.yuan@sun.com>
-
- * em-account-prefs.c: (em_account_prefs_treeview_new):
- add a11y name to Mail Accounts Table
- * mail-config.glade:
- add a11y name to tables in Mail Preferences page and
- Composer Preferences page.
- Fixes #73914
-
-2005-03-16 Jeffrey Stedfast <fejj@novell.com>
-
- * em-format-html.c (efh_format_headers): Don't show multiple
- "Mailer" headers even if multiple x-mailer/user-agent/whatever
- headers exist. Fixes bug #70394.
-
-2005-03-16 Not Zed <NotZed@Ximian.com>
-
- ** See bug #73363
-
- * em-folder-view.c (emfv_list_message_selected): insert a timeout
- before loading the message.
- (emfv_message_selected_timeout): handle the timeout, start loading
- the message.
- (emfv_set_folder, emfv_destroy): cleanups for above.
-
-2005-03-16 Not Zed <NotZed@Ximian.com>
-
- ** See bug #73559
-
- * em-filter-source-element.c
- (em_filter_source_element_get_sources): check the url != "" and decoded
- before using it.
-
-2005-03-16 Not Zed <NotZed@Ximian.com>
-
- ** See bug #71003, again.
-
- * mail-component.c (impl_quit): fix sense of 'can quit' logic.
-
-2005-03-14 Not Zed <NotZed@Ximian.com>
-
- ** See bug #73550
-
- * em-format-hook.c (emfh_format_format): if we are disabled, don't
- invoke handler, try to invoke old handler if there was one.
-
-2005-03-10 Not Zed <NotZed@Ximian.com>
-
- ** See bug #73293
-
- * message-list.c (main_folder_changed): emit a 'list built' signal
- if we just modified it too.
-
-2005-03-10 Vivek Jain <jvivek@novell.com>
-
- **fixes bug #73139
- * em-folder-tree.c (render_pixbuf):change the shared-folder icon names
- to the names in gnome-icon-theme
-
-2005-03-03 Not Zed <NotZed@Ximian.com>
-
- ** See bug #66592
-
- * mail-tools.c (mail_tool_make_message_attachment): jus call
- camel_medium_remove_header to remove the bcc header, don't need to
- loop.
-
- * mail-ops.c (mail_send_message): try to find the account by uid
- first, fall back to name.
-
- * em-composer-utils.c (composer_get_message): set
- x-evolution-account by uid, not name.
-
-2005-03-02 Not Zed <NotZed@Ximian.com>
-
- ** See bug #66592
-
- * em-composer-utils.c (got_post_folder): no longer needed.
- (composer_get_message): remove 'post' and 'no_recipeints' args.
-
- * mail-ops.c (mail_send_message): change for xev changes. Also
- handle postto if set.
-
- * mail-tools.c (mail_tool_remove_xevolution_headers)
- (mail_tool_restore_xevolution_headers): fix for api change.
- (mail_tool_destroy_xevolution): remove.
-
- * mail-tools.h: remove XEvolution, just use a struct _header_raw
- for it.
-
- * em-composer-utils.c (em_utils_composer_send_cb): don't post
- message here, just queue it like any other outgoing mail.
-
-2005-03-02 Not Zed <NotZed@Ximian.com>
-
- ** See "bug" 73100
-
- * mail-dialogs.glade: empty out the license_top_label text, it is
- always overwriten by the code.
-
-2005-03-01 Not Zed <NotZed@Ximian.com>
-
- * message-list.c: include atkutil.h
- (message_list_construct): cast warning.
-
- * mail-session.c (mail_session_set_interactive): remove unused
- variable since we can no longer terminate password requests.
-
- * mail-autofilter.c (em_vfolder_rule_from_address): properly
- define in header.
-
- * em-utils.c (emu_get_save_filesel): only define filename in the
- !gtkfilechooser case.
-
- * em-mailer-prefs.c (restore_labels_clicked): cast for warning.
- (em_mailer_prefs_construct): same.
-
- * em-format-html.c (efh_format_header): remove unused variable.
-
- * em-account-editor.c (emae_widget_druid_glade): remove unused
- variable.
-
- * importers/mail-importer.h: forward-delcare struct
- _MailComponent.
-
- * *c: remove/disable various debug.
-
-2005-03-02 Harry Lu <harry.lu@sun.com>
-
- Fix for 71733.
-
- * mail-signature-editor.c: (mail_signature_editor): if is_new,
- let name_entry get the focus.
-
-2005-02-28 JP Rosevear <jpr@novell.com>
-
- * em-utils.c (em_utils_configure_account): pass in accountDruid
- config id
-
- * em-account-prefs.c (account_add_clicked): pass in accountDruid
- config id
- (account_edit_clicked): pass in accountWizard config id
-
- * em-account-editor.h: update protos
-
- * em-account-editor.c (em_account_editor_new_with_config_id):
- create a new account editor with a specific config id
- (em_account_editor_new): pass
- (em_account_editor_construct): make this static and take the
- config id as an arg
-
-2005-02-24 Not Zed <NotZed@Ximian.com>
-
- ** See bug #72609
-
- * em-inline-filter.c (emif_scan): try to convert the filename
- based on the incoming charset or the locale charset. This will
- make sure it is always valid.
-
-2005-02-28 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c: reverted Mengjie's patch for 72545.
-
-2005-02-27 Frank Arnold <farnold@cvs.gnome.org>
-
- * default/de/Inbox: Added German translation of default inbox.
-
-2005-02-25 Mengjie Yu <meng-jie.yu@sun.com>
-
- * em-folder-browser.c (emfb_edit_select_all): make the 'select
- all' work in all conditions.
-
- Fixes #72545
-
-2005-02-24 Not Zed <NotZed@Ximian.com>
-
- ** See bug #68459
-
- * em-composer-utils.c (get_reply_sender): check the followup-to
- header before the newsgroups header.
- (reply_get_composer, get_reply_sender, get_reply_all): change
- post-to to be a CamelNNTPAddress not a string pointer.
-
-2005-02-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #71003
-
- * mail-component.c (impl_quit): add a new state MC_QUIT_THREADS to
- wait for all mail threads to finish before quitting.
-
-2005-02-23 Jeffrey Stedfast <fejj@novell.com>
-
- * em-format-html.c (efh_format_header): Don't use the pre-UTF-8
- converted subject header string from the CamelMimeMessage object,
- decode it ourselves using the the user's override charset. Fixes
- bug #62109.
-
-2005-02-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #34153 and no doubt duplicates
-
- * mail-component.c (impl_requestQuit): use the VISIBLE count not
- the TOTAL count to check if there are unsent emails.
-
-2005-02-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #71528.
-
- * em-migrate.c (remove_system_searches, em_migrate_1_4): remove
- all 'system' searches when upgrading from pre 2.0.
-
-2005-02-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #71967
-
- * em-account-editor.c (emae_receive_options_extra_item): make sure
- we track the keep_on_server setting in the e-account, not just the
- url (hack).
-
-2005-02-23 Hans Petter Jansson <hpj@novell.com>
-
- * mail-session.c:
- * mail-config.c: Include <libedataserverui/e-passwords.h>.
-
-2005-02-22 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_send_page): fix argument order to
- memset.
- (emae_security_page): fix the non-have_nss case.
-
-2005-02-22 Marco Pesenti Gritti <marco@gnome.org>
-
- * mail/em-popup.c (emp_apps_open_in, emp_standard_menu_factory):
- Use gnome-vfs API to launch external applications
-
-2005-02-22 Not Zed <NotZed@Ximian.com>
-
- ** See bug #40515
-
- * mail-config.c (mail_config_signature_run_script): run the script
- using /bin/sh -c, so arguments may be passed to the script.
-
-2005-02-22 Not Zed <NotZed@Ximian.com>
-
- ** See bug #68866
-
- * em-format-quote.c (emfq_format_headers): line-feed after all
- headers for blind people.
-
-2005-02-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #35219
-
- * em-utils.c (em_utils_flag_for_followup_clear): clear the flag
- tags rather than setting them to "". Also change to using newer
- messageinfo api.
- (tag_editor_response, em_utils_flag_for_followup)
- (em_utils_flag_for_followup_completed): some cleanup/api stuff.
-
-2005-02-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #64987
-
- * message-list.c (message_list_select_thread): select the paths
- with one call.
- (on_selection_changed_cmd): get the cursor_uid from the cursor.
-
-2005-02-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #72337
-
- * mail-component.c (store_info_new, store_info_unref): refcount
- the storeinfo's.
- (mc_add_store_done): noop if removed.
- (store_hash_free, mail_component_remove_store): mark storeinfo
- removed.
-
-2005-02-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #70718
-
- * em-folder-view.c (emfv_list_built): handle list_built events -
- whenever the list changes.
- (emfv_gui_folder_changed, emfv_folder_changed): removed, we want
- to run off the viewed list, not the physical folder.
-
-2005-02-22 Rodney Dawes <dobey@novell.com>
-
- * em-account-editor.c (emae_security_page): The GladeXML object is
- no longer a part of the private structure, and we need to reference
- it directly as it is a local variable now
-
-2005-02-14 Not Zed <NotZed@Ximian.com>
-
- ** See bug #61363 & e-util/ChangeLog
-
- * em-account-editor.c: All sorts of changes to make the ui more
- dynamic, re-create all widgets when it needs a reconfigure. A bit
- slower and it flickers a bit.
-
- * em-account-editor.c (emae_setup_service): take xml file pointer.
- (emae_send_page): create a new send page every time we need to,
- don't re-use the old oneq.
- (emae_setup_authtype): renamed to refresh_authtype.
- (emae_setup_service): init authtype pointer.
- (emae_needs_auth): use the auth_frame pointer directly.
- (emae_refresh_providers): rename from setup_providers.
-
-2005-02-11 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_setup_service): set needs_auth to NULL
- if we don't, so it gets reset if the ui changes.
-
-2005-02-10 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_setup_providers): don't include any
- providers which are store and transport in the transport page.
- (emae_send_page): show no send options page at all if the provider is
- store and transport.
- (emae_uri_changed): copy store url to transport if as above.
-
-2005-02-09 Not Zed <NotZed@Ximian.com>
-
- ** See bug #70795
-
- * em-folder-view.c (em_folder_view_open_selected): set the search
- on the browser to match the current view.
-
- * message-list.c (mail_regen_list): save the search if no folder
- set, incase the folder gets set later on.
-
-2005-02-18 Rodney Dawes <dobey@novell.com>
-
- * mail/em-folder-view.c (emfv_popup_copy_text): New method to copy
- the selected text in the mail display, to the clipboard
- (emfv_popup_items): Restructure this list for the new context menus
- layout that we are moving to, to improve the UI
- (emfv_popup): Add a third argument for whether we are on the mail
- display or not, so that we can pop up the correct portion of the menus
- Pass the on_display argument on to create the popup target
- Only generate the label items if we are on the list and not the display
- (emp_uri_popup_vfolder_{sender,recipient}): New methods to create
- vfolders to and from mailto: addresses from the context menu
- (emfv_enable_menus): Create the target here for clicking on the list
- (em_folder_view_get_popup_target): Add a third argument so that we
- can tell whether we are on the display or not
- Set the appropriate flags on the target for whether we are on the
- message display,, and whether or not there is selected text in it
- (emfv_list_right_click): We aren't rigt-clicking on the display here
- (emfv_popup_menu): We aren't right-clicking on the mail display here
- (emfv_uri_popups): Add the submenu for creating a vfolder from mailto:
- (emfv_format_popup_event): We are right-clickingo nt he display here
-
- * mail/em-folder-view.h: Add the new flags we need for the mail
- context menus popup target here
- (em_folderiew_get_popup_target): Add the on_display argument
-
- * mail/em-popup.c (emp_standard_uri_popups): Fix the label and mnemonic
- for the Send New Message popup item for mailto: addresses
-
- * mail/mail-autofilter.c (rule_from_address):
- (em_vfolder_rule_from_address): New methods to create a vfolder based
- on a CamelInternetAddress object that we get from the mailer
-
- * mail/mail-vfolder.[ch] (vfolder_gui_add_from_address): New method to
- create a vfolder rule based on the mailto: addresses
-
- Fixes #23822
-
-2005-02-15 Radek Doulik <rodo@novell.com>
-
- * em-junk-filter.c: use camel_debug
-
-2005-02-10 Not Zed <NotZed@Ximian.com>
-
- ** See bug #72266
-
- * em-folder-selection-button.c
- (em_folder_selection_button_clicked): if the selector is already
- up, just raise it.
- (em_folder_selection_button_destroy): destroy the selector if it
- is still up.
-
-2005-02-09 Not Zed <NotZed@Ximian.com>
-
- ** See bug #71429
-
- * em-folder-view.c (emfv_activate): setup the plugin menu's after
- the main ones.
-
-2005-02-08 Not Zed <NotZed@Ximian.com>
-
- ** See bug #72228
-
- * mail-ops.c (mail_send_message): fix this god-awful goto-loop
- crap, and delete the message if it worked.
- (mail_send_message): fix a major-leak with sent messages never
- being unreffed.
- (send_queue_send): don't get messages ourself.
- (mail_send_message): dont lose the exception if we
- can't even open the sent folder.
-
-2005-02-07 Not Zed <NotZed@Ximian.com>
-
- ** See bug #72209
-
- * em-folder-tree.c (emft_popup_copy_folder_exclude): implement one
- for copying/moving folders.
-
- * em-folder-selection.c (em_select_folder): add an excluded func
- argument, fix callers.
-
- * em-folder-tree.c
- (em_folder_tree_set_exclude_func): allow custom callback for
- exclusion.
- (emft_select_func): handle the custom excluded callback.
-
-2005-02-07 Harry Lu <harry.lu@sun.com>
-
- Fix for 72275.
- * em-folder-view.c: (emfv_popup_menu): try to bring up menu for
- preivew html object.
- (emfv_format_popup_event): handle event == NULL case.
- * em-format-html-display.c: (em_format_html_display_popup_menu):
- New function to popup context menu.
- * em-format-html-display.h: add new function declaration.
-
-2005-02-04 Not Zed <NotZed@Ximian.com>
-
- * em-subscribe-editor.c (sub_folderinfo_get): reverted jeff's
- patch for the subscribed hint.
-
- ** See bug #65329
-
- * em-folder-properties.c (emfp_dialog_got_folder): translate
- local-store special folders.
-
- * mail-session.c (alert_user, do_user_message): if we aren't
- waiting for cancel, then don't worry about waiting on the reply
- port, otherwise we could block when we don't need to, if there is
- another window already up.
-
-2005-02-03 Jeffrey Stedfast <fejj@novell.com>
-
- * message-list.c (message_list_set_folder): Use
- g_hash_table_foreach_remove() instead so the keys don't point to
- free'd values.
- (normalised_free): Return TRUE.
-
-2005-02-02 Rodney Dawes <dobey@novell.com>
-
- * em-subscribe-editor.c (em_subscribe_editor_new): Use the
- gtk_widget_ensure_style method instead of gtk_widget_realize when
- setting the border widths of the dialog containers for HIG compliance
-
- Fixes #68743
-
-2005-02-02 Jeffrey Stedfast <fejj@novell.com>
-
- Fixes bug #70454
-
- * em-subscribe-editor.c (sub_folderinfo_get): Request subscription
- info (new flag).
- (sub_fill_level): Fixed the FIXME here (imap4 now implements
- CAMEL_FOLDER_SUBSCRIBED flag properly).
-
-2005-02-01 Rodney Dawes <dobey@novell.com>
-
- * em-folder-browser.c: Replace "_Virtual Folder" with "_vFolder" for
- the search menu to create a vfolder from a search
-
- * em-folder-tree-model.c (sort_cb): s/VFolders/vFolders/ for sorting
- in the folder tree
- (em_folder_tree_model_load_state): s/VFolders/vFolders/ in a comment
-
- * em-folder-view.c: s/VFolder/vFolder/ for the popup menu
-
- * em-vfolder-editor.c (em_vfolder_editor_new): Replace the string
- "Virtual _Folders" with "v_Folders" for the label
-
- * em-vfolder-rule.c (em_vfolder_editor_sourcelist_new): Repalce the
- string "VFolder source" with "vFolder source"
-
- * mail-errors.xml:
- * mail-errors.xml.h: Replace "virtual folder" with "vFolder" in an
- error string
-
- * mail-vfolder.c (vfolder_setup_desc): s/vfolder/vFolder/
- (vfolder_setup_do): s/vfolder/vFolder/
- (vfolder_load_storage): s/VFolders/vFolders/
- (vfolder_edit_rule): s/VFolder/vFolder/
- (vfolder_gui_add_rule): s/VFolder/vFolder/
-
- Fixes #68137
-
-2005-02-01 Not Zed <NotZed@Ximian.com>
-
- ** See bug #65329.
-
- * mail-component.c (view_changed_cb): translate special names on
- the local store.
-
- * em-folder-tree-model.c (sort_cb): use the type hint to sort for
- inbox, not the name.
- (emft_is_special_local_folder): removed.
- (em_folder_tree_model_set_folder_info): special-case the
- local-store case, handle translated names and the name hints.
-
- * em-folder-tree.c (render_pixbuf): use the camel folderinfo
- folder type to determine the icon, don't hardcode based on name.
-
- ** See bug #71310
-
- * em-composer-prefs.c (sig_add_script_response): force a save of
- the signatures as soon as they change. Also save the script name
- if we were just editing it, not just the signature name.
-
- ** See bug #71312.
-
- * em-folder-view.c (em_folder_view_open_selected): if we're
- looking at a vfolder, then look open the original folder if we need
- to perform any edits.
-
-2005-01-31 Hans Petter Jansson <hpj@novell.com>
-
- * importers/mail-importer.h (mc): Remove unused global symbol.
-
-2005-01-28 Jeffrey Stedfast <fejj@novell.com>
-
- * message-list.c (message_list_set_folder): Reset the normalised
- string sort table.
-
-2005-01-31 JP Rosevear <jpr@novell.com>
-
- Fixes #71937
-
- * evolution-mail.schemas.in.in: fix spelling error
-
- * mail-errors.xml: fix two spelling errors
-
-2005-01-31 Not Zed <NotZed@Ximian.com>
-
- ** See bug #67083
-
- * em-format-html.c (efh_format_text_header): no-wrap the header line.
-
- ** See bug #69850
-
- * mail-autofilter.c (rule_from_message): dont crash if we're
- missing the requested headers.
-
- ** See bug #71521.
-
- * em-account-editor.c (emae_url_set_hostport): dont ever set a
- NULL host.
-
-2005-01-28 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_service_provider_changed): handle
- 'hide' bits, don't get/set values from the widgets at all.
-
- * em-account-editor.c: put some tables back into the
- druid and editor, since econfig supports tables now.
-
- * em-account-editor.c (emae_service_provider_changed): handle
- 'hide' bits, don't get/set values from the widgets at all.
-
- * em-account-editor.c: put some tables back into the
- druid and editor, since econfig supports tables now.
-
- * em-account-editor.c (emae_service_provider_changed): handle
- 'hide' bits, don't get/set values from the widgets at all.
-
- * em-account-editor.c: put some tables back into the
- druid and editor, since econfig supports tables now.
-
- ** See bug #71520.
-
- * em-account-prefs.c (account_edit_clicked): repeat the nasty hack
- from account_edit, to refresh the list after edit.
-
-2005-01-27 Not Zed <NotZed@Ximian.com>
-
- * See bug #69815.
-
- * mail-component.c (impl_quit): shutdown vfolders as first step.
-
- * mail-vfolder.c (vfolder_setup_do): if we're shutdown during
- processing, just noop.
- (vfolder_adduri_do): same.
- (mail_vfolder_shutdown): set the shutdown flag.
-
-2005-01-27 Rodney Dawes <dobey@novell.com>
-
- * mail-config.glade: Fix the labels in the account druid to be
- left aligned, and justified left
- Fix the border and spacing for all the vboxes in the account druid
- pages to be HIG compliant
- Fix the account naming info label to be more concise
-
- Fixes #68696
-
-2005-01-27 Rodney Dawes <dobey@novell.com>
-
- * mail-send-recv.c (build_dialog): Fix the dialog to have borders
- that are HIG-compliant and fix up the spacing and padding of the
- internal widgets to do the right thing to be HIG compliant
-
-2005-01-27 JP Rosevear <jpr@novell.com>
-
- * em-format-hook.c: add a d(x) debugging define and default to off
-
-2005-01-26 Mengjie Yu <meng-jie.yu@sun.com>
-
- Fixes #71774
-
- * em-folder-tree.c (emft_popup_rename_folder): we should check
- whether the 'new_name' is a NULL pointer to avoid Evolution
- crashes.
-
-2005-01-25 Mengjie Yu <meng-jie.yu@sun.com>
-
- * em-mailer-prefs.c: (restore_labels_clicked),
- (em_mailer_prefs_construct):
- add a11y names for color pickers.
-
-2005-01-24 Hans Petter Jansson <hpj@novell.com>
-
- * Makefile.am (libevolution_mail_la_LIBADD): Pull in the contact
- editors, so we can pass pointers to their creation functions to
- ENameSelectorEntry.
-
-2005-01-24 JP Rosevear <jpr@novell.com>
-
- * searchtypes.xml: add back body contains
-
-2005-01-21 JP Rosevear <jpr@novell.com>
-
- Fixes #46287
-
- * mail-config.glade: remove enable/disable button
-
- * em-composer-prefs.h: remove unused button
-
- * em-composer-prefs.c (spell_language_toggled): handle the cell
- being toggled
- (spell_setup): enable/disable button is gone
- (em_composer_prefs_construct): setup a listener for the toggle
- cell
-
-2005-01-24 Radek Doulik <rodo@ximian.com>
-
- * em-popup.[ch]: removed EM_POPUP_SELECT_MARK_[NO]JUNK masks
-
-2005-01-20 Radek Doulik <rodo@ximian.com>
-
- * em-folder-view.c: patch from Chris Lahey, makes Mark as Junk/not
- Junk items active on all messages, removes calls to
- message_list_get_selected where not needed
-
-2005-01-24 Not Zed <NotZed@Ximian.com>
-
- * searchtypes.xml: changed for 69122.
-
-2005-01-21 JP Rosevear <jpr@novell.com>
-
- Fixes #46404
-
- * em-folder-view.c (emfv_print_response): use the config in the
- print data and free it
- (em_folder_view_print): load the config from e_print and use the
- dialog from e_print
-
-2005-01-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #60664.
-
- * em-format-html-display.c (efhd_init, efhd_gtkhtml_style_set): if
- the style changes, re-calculate the page colours, and redraw.
-
-2005-01-20 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree.c (emft_copy_folders__desc): Added a description
- function for copying folders (so we don't get a "Working 0x..."
- status message).
-
- * mail-mt.c (do_op_status): Always g_free(what) since we always
- strdup it.
-
-2005-01-20 Not Zed <NotZed@Ximian.com>
-
- ** See bug #55831.
-
- * evolution-mail.schemas.in.in: added open_many prompt key.
-
- * mail-errors.xml: added ask-open-many
-
- * em-folder-view.c (em_folder_view_open_selected): put back the
- 'you're opening too many are you sure' thing.
-
-2005-01-19 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-properties.c (emfp_get_folder_item): Increment i each
- time thru the loop or we lose widgets.
-
-2005-01-19 Not Zed <NotZed@Ximian.com>
-
- ** See bug #66943.
-
- * em-composer-utils.c (save_draft_done): check if the
- editor_engine is still there before trying to invoke a method on
- it.
- (em_utils_composer_save_draft_cb): grab resources before getting
- the folder, so the composer doesn't go away.
-
-2005-01-18 Rodrigo Moya <rodrigo@novell.com>
-
- * em-filter-source-element.c:
- * mail-config.c: removed e-url.h include.
-
-2005-01-18 Not Zed <NotZed@Ximian.com>
-
- ** See bug #70768.
-
- * em-folder-browser.c (emfb_mark_all_read): get the uid list from
- the message-list (view) rather than folder (model).
-
- * message-list.c (message_list_foreach): removed, no longer used.
- (message_list_get_uids): new function replacing ml_foreach, get
- visible uids's of messages.
-
-2005-01-18 Not Zed <NotZed@Ximian.com>
-
- ** See bug #71105.
-
- * em-folder-tree.c (emft_popup_rename_folder): dont let a user
- rename a folder to one including '/'.
-
- * em-format-html.c (emfh_gethttp): kill old 'load http 0 now=0' debug.
-
- ** See bug #70563.
-
- * em-utils.c (emu_set_proxy, emu_proxy_setup)
- (em_utils_get_proxy_uri): make sure the init code is called from
- main thread (gconf usage), and add locking for data consistency.
-
-2005-01-14 Not Zed <NotZed@Ximian.com>
-
- ** Related to changes for #65178.
-
- * mail-vfolder.c (mv_find_folder): changed from my_list_find, take
- store arg and use camel_Store_Folder_uri_equal() instead of wrong
- uri_cmp function.
- (mail_vfolder_delete_uri): same.
- (mail_vfolder_rename_uri): same.
- (uri_is_ignore): take store arg, and same as above. use the right
- uri for checking sent folder.
- (mail_vfolder_*): convert to storing uri's in camel form.
-
-2005-01-13 Not Zed <NotZed@Ximian.com>
-
- ** See bug #71029.
-
- * em-account-editor.c (emae_option_toggle): revert menjie's patch
- and do it using object args.
-
-2005-01-12 Not Zed <NotZed@Ximian.com>
-
- ** See bug #70990.
-
- * em-account-editor.c (emae_service_url_changed): if the value is
- "" then don't set it
-
- ** See bug #70018.
-
- * mail-signature-editor.c (mail_signature_editor): use the right
- version for the gtkhtml editor control.
-
-2005-01-11 Vivek Jain <jvivek@novell.com>
-
- * em-folder-tree.c (render_pixbuf): Added conditions to check for
- shared folders to display different icon if it is a shard folder.
-
-2005-01-07 Not Zed <NotZed@Ximian.com>
-
- * em-account-prefs.c (account_add_clicked): remove old code, setup
- transient parent and weak ref for refresh.
-
-2005-01-06 JP Rosevear <jpr@novell.com>
-
- * Makefile.am: install schemas properly
-
-2005-01-06 Jeffrey Stedfast <fejj@novell.com>
-
- * mail-folder-cache.c (mail_note_store): Handle the
- CamelOfflineStore case just like the CamelDiscoStore case.
-
- * mail-ops.c (prep_offline_do): Since we can't kill off
- CamelDisco* (groupwise is using it), we have to handle both
- CamelOfflineFolder and CamelDiscoFolder for now.
- (set_offline_do): Same.
-
-2005-01-05 Not Zed <NotZed@Ximian.com>
-
- * em-menu.c: (emph_targets[]): Add the widget target, missed this.
-
-2005-01-05 Not Zed <NotZed@Ximian.com>
-
- * em-menu.c (em_menu_target_new_widget): add a semi-dummy target
- for widget target.
-
- * mail-component.c (handleuri_got_folder): handle the "reply"
- parameter, if set.
-
- * em-composer-utils.c (em_utils_reply_to_message): only ref the
- source if supplied.
- (reply_to_message): only unref the source if supplied.
-
-2004-12-28 Mengjie Yu <meng-jie.yu@sun.com>
-
- * em-folder-tree.c: (em_folder_tree_new_with_model):
- add atk name for the treeview.
-
-2004-12-22 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_needs_auth): moved to after
- emae_authtype_changed to fix warning.
-
-2004-12-17 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_attachment_popup):
-
- * message-list.c (ml_tree_drag_data_received):
-
- * em-folder-view.c (emfv_popup, emfv_format_popup_event):
-
- * em-folder-tree.c (tree_drag_data_received): api changes.
- (emft_popup):
-
- * em-popup.c (emp_standard_menu_factory)
- (emp_standard_menu_factory): api changes.
-
-2004-12-21 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_needs_auth): if we're turned on, then
- record the current authtype setting on the widgets, if we're
- turned off, clear the authmech setting.
- (emae_setup_service): setup the needs auth after the authtype, and
- get setting from url->authmech.
- (emae_service_provider_changed): only clear the url->authmech if
- we don't have the current one in our list.
-
-2004-12-20 Takeshi AIHANA <aihana@gnome.gr.jp>
-
- * default/Makefile.am: Added 'ja' and 'nl' to install.
-
-2004-12-14 Rodney Dawes <dobey@novell.com>
-
- * mail-account-gui.c: Remove this from CVS
-
- * mail-config.glade: Use em_account_editor_folder_selector_button_new
- instead of mail_account_gui_folder_selector_button_new
-
-2004-12-14 JP Rosevear <jpr@novell.com>
-
- Fixes #68759
-
- * mail-account-gui.c (service_check_supported): fix typo in
- routine name
-
-2004-12-08 Hans Petter Jansson <hpj@novell.com>
-
- * importers/pine-importer.c: Include <libebook/e-destination.h> from
- evolution-data-server.
-
-2004-12-08 Rodney Dawes <dobey@novell.com>
-
- * em-folder-tree.c:
- * mail-component.c (impl__get_userCreatableItems):
- Use stock_new-dir instead of stock_folder for "New Folder" creation
-
-2004-12-07 Mengjie Yu <meng-jie.yu@sun.com>
-
- * mail-config.glade: add mnemonic for buttons, labels, etc.
- * mail-dialogs.glade:add mnemonic for buttons, labels, etc.
- * message-tags.glade:add mnemonic for buttons, labels, etc.
-
-2004-12-08 Not Zed <NotZed@Ximian.com>
-
- * mail-component-factory.c (make_factory): and put them here
- instead so they're available even when the mailer isn't activated
- yet.
-
- * mail-component.c (mc_startup): remove plugin hook registrations.
-
-2004-11-22 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_receive_options_extra_item): dont
- track containee widgets anymore, they are automagically destroyed
- by the container if required.
-
-2004-11-25 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (em_junk_sa_test_spamd): do not call gconf here
- as we may be called from worker thread
- (em_junk_filter_get_plugin): read alternative spam[cd] binaries
- paths here, use init lock to be sure no one is accessing spam[cd]
- binaries paths
-
- Fixes #69623
-
-2004-12-01 Mengjie Yu <meng-jie.yu@sun.com>
-
- * em-account-editor.c:according to the HIG, remove accelerators in
- the notebook tab labels
-
-2004-12-01 Mengjie Yu <meng-jie.yu@sun.com>
-
- * em-account-editor.c: (emae_option_toggle),
- (emae_receive_options_item):add mnemonic for buttons.
- * em-format-html-display.c: (efhd_attachment_button):add atk name
- for the popup button.
- * mail-account-gui.c: (mail_account_gui_build_extra_conf):add
- access key for checkbox.
- * message-list.c: (message_list_construct):add a atk name for the
- message list.
-
-2004-11-22 Not Zed <NotZed@Ximian.com>
-
- ** See bug #69339.
-
- * em-format-html.c (efh_format_do): after closing the base output
- stream, re-loop if more jobs were queued.
-
-2004-11-19 Not Zed <NotZed@Ximian.com>
-
- ** See bug #69339.
-
- * em-format-html.c (efh_format_do): close the stream/html after we're
- finished, since the multipart/related stuff may write more content
- for orphaned attachments.
-
-2004-11-23 Not Zed <NotZed@Ximian.com>
-
- ** See bug #69579.
-
- * em-folder-properties.c (em_folder_properties_show): check to see
- if the vfolder is the unmatched folder before letting the user try
- to see its properties.
-
-2004-11-30 Not Zed <NotZed@Ximian.com>
-
- ** See bug #68958.
-
- * em-folder-browser.c (emfb_list_built): if the pending selected
- uid isn't in the folder (yet), don't clear it, just keep it
- around. Hook/unhook folder_changed events.
- (emfb_folder_changed, emfb_gui_folder_changed): if a select_uid is
- set, and the message is now available, then select it.
-
-2004-11-28 S.Ã?aÄ?lar Onur <caglar@uludag.org.tr>
-
- ** See bug #69446.
-
- * evolution-2.0.2/mail/mail-account-gui.c (mail_account_gui_setup):
- some strcasecmp() calls changed with g_ascii_strcasecmp() for Turkish
- character conversiton problems [ http://www.i18nguy.com/unicode/turkish-i18n.html ]
-
-2004-11-26 JP Rosevear <jpr@novell.com>
-
- * em-format.c: wrap printf's in debug defines
-
-2004-11-26 JP Rosevear <jpr@novell.com>
-
- * em-format-html-display.c (efhd_xpkcs7mime_button): get image
- widget directly from icon factory
-
- * mail-send-recv.c (build_dialog): ditto
-
-2004-10-12 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c: when starting new spamd, call it with
- --socketpath parameter to use unix sockets instead of opening TCP
- port. kill such started daemon in finalize callback which is
- installed by atexit. also try to respawn spamd in case spamc
- returns error, if respawning is too fast (8 restarts in last 5
- minutes) fallback to spamassassin
-
- * mail-component.c (impl_quit): call mail_session_quit
-
- * mail-session.c (mail_session_init): call junk plugin init
- (mail_session_quit): new method, called on evo exit
-
-2004-11-22 Joan Sanfeliu <joan@fibranet.com>
-
- * mail-config.glade : Evolution word spelled with an uppercase E
-
- Fixes #61065
-
-2004-11-16 Not Zed <NotZed@Ximian.com>
-
- * Makefile.am:
- * importers/Makefile.am: Removed camel linking.
-
-2004-11-15 Not Zed <NotZed@Ximian.com>
-
- * *.c: Moved various things from e-util to libedataserver.
-
- * GNOME_Evolution_Mail.server.in.in: remove the startup wizard stuff.
-
- * mail-config-druid.[ch]:
- * mail-account-editor.[ch]:
- * mail-account-gui.[ch]: removed & deleted.
-
- * mail-session.c (mail_session_init): and here too.
- * em-migrate.c (em_migrate_1_4): init camel-provider library too.
- (e_path_to_physical): copy from e-util/e-path.c.
-
- * Makefile.am (libevolution_mail_la_LIBADD): link to new libcamel
- provider too.
-
-2004-11-12 Not Zed <NotZed@Ximian.com>
-
- * filtertypes.xml:
- * vfoldertypes.xml:
- * searchtypes.xml: Added 'match all' rules.
-
- ** Merge in notzed-messageinfo-branch.
-
-2004-11-11 Radek Doulik <rodo@ximian.com>
-
- * em-format-hook.c (emfh_enable): l = g_list_next (l); in inner
- loop instead of g = g_list_next (l).. probably typo after c'n'p
-
- * em-format.c (em_format_class_remove_handler): in case the old
- handler doesn't exist, remove 'info' handler from type_handler
- table
-
-2004-11-03 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_popup): Fix the popup id.
-
-2004-11-03 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_list_done_message_selected): revert
- jeff's last change - we do actually want to know when we couldn't
- load a message. the crash he was fixing was fixed elsewhere.
- also fix the unref ordering stuff.
-
- * em-format-html.c (efh_format_timeout): removed the fixme i
- added.
-
-2004-11-01 Not Zed <NotZed@Ximian.com>
-
- ** See bug #67496.
-
- * em-format-html.c (efh_text_html): use the base on the emformat
- to calculate our absolute iframe uri.
- (efh_multipart_related): same as emf_multipart_related.
-
- * em-format.c (emf_multipart_related): remove content-location
- handling, now done in format_part_as.
- (em_format_part_as): track content-base (& absolute
- content-location) of all parts here.
-
-2004-11-02 Not Zed <NotZed@Ximian.com>
-
- * em-event.c (eme_target_free, em_event_target_new_message):
- handle NULL folder or message.
-
-2004-11-02 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-view.c (emfv_list_done_message_selected): Check for
- NULL messages (happens if the message isn't available).
-
-2004-11-02 Radek Doulik <rodo@ximian.com>
-
- * em-format-html.c: replace 3 nested html tables used to create
- this gray border around parts content with div block with border
- style
- use shorthand border: property
-
-2004-11-01 Jeffrey Stedfast <fejj@novell.com>
-
- * em-account-editor.c: Change the labels back to the same as they
- were in 2.0
-
-2004-11-12 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (auto_account_finalised): fix the callback
- signature.
-
-2004-11-11 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mc_add_store):
- (mc_add_store_done): Let the counters know about the junk/trash
- folders that have already been opened.
-
- * em-vfs-stream.[ch]: Added stream class to read/write gnome-vfs
- data from camel. NFI if this will work, depends on how
- thread-safe gnome-vfs is.
-
-2004-11-08 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (uri_is_spethal): fix the special check for local
- folders.
-
-2004-10-30 Not Zed <NotZed@Ximian.com>
-
- * */*.c, *.c: camel api changes.
-
-2004-10-28 Not Zed <NotZed@Ximian.com>
-
- * mail-folder-cache.c (real_flush_updates):
- * em-message-browser.c (em_message_browser_new):
- * em-mailer-prefs.c (em_mailer_prefs_construct):
- * em-format-html-display.c (efhd_attachment_popup):
- * em-folder-view.c (emfv_popup, emfv_list_done_message_selected)
- (emfv_format_popup_event):
- * em-folder-tree.c (emft_popup):
- * em-folder-properties.c (emfp_dialog_got_folder):
- * em-folder-browser.c (em_folder_browser_new):
- * em-composer-utils.c (em_utils_reply_to_message):
- * em-composer-prefs.c (em_composer_prefs_construct):
- * em-account-editor.c (em_account_editor_construct): added hook
- docs, and cleaned up some of the hook point names.
-
-2004-10-22 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree.c: Give the Rename item a different path than the
- Delete item.
-
-2004-10-22 Not Zed <NotZed@Ximian.com>
-
- * em-event.c (eme_target_free): duh, they're camel not gobjects.
-
- * em-folder-view.c (emfv_list_done_message_selected): added a
- message.reading event.
-
-2004-10-22 Nat Friedman <nat@novell.com>
-
- * em-event.c: Add a REPLY_ALL flag to the Message target.
- * em-composer-utils.c (em_utils_reply_to_message): Set the
- REPLY_ALL flag when appropriate.
-
-2004-10-21 Not Zed <NotZed@Ximian.com>
-
- * em-composer-utils.c (em_utils_reply_to_message): emit a
- 'message.replying' event with a message target.
-
-2004-10-21 Nat Friedman <nat@novell.com>
-
- * em-event.c (em_event_target_new_message): new target type for
- message-related events.
-
-2004-10-21 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_format_popup_event): put 'evolution' back
- in the popup hook names.
-
-2004-10-19 JP Rosevear <jpr@novell.com>
-
- * em-account-editor.c, em-composer-prefs.c, em-config.c,
- em-event.c, em-folder-browser.c, em-folder-properties.c,
- em-folder-tree.c, em-folder-view.c, em-format-hook.c,
- em-format-html-display.c, em-mailer-prefs.c, em-menu.c,
- em-message-browser.c, em-popup.c, message-list.c: convert to
- org.gnome hook names
-
-2004-10-19 JP Rosevear <jpr@novell.com>
-
- * message-list.c: convert to G_DEFINE_TYPE
-
-2004-10-11 Not Zed <NotZed@Ximian.com>
-
- ** See bug #67014.
-
- * mail-errors.xml: added "checking-service" error.
-
- * em-account-editor.c (em_account_editor_construct): keep track of
- the dialogue
- (emae_editor_destroyed): , and clean up when destroyed.
-
- * em-account-editor.c (emae_check_authtype)
- (emae_check_authtype_response, emae_check_authtype_done): handle
- checking authtype gui here.
-
- * mail-config.c (check_service_describe, check_service_check)
- (check_response, mail_config_check_service): removed.
-
- * mail-ops.c (mail_check_service): moved here from mail-config,
- and modified to be a re-usable threaded function.
-
-2004-10-18 Not Zed <NotZed@Ximian.com>
-
- ** See bug #68006.
-
- * em-folder-view.c (emfv_init): dont ref/sink the invisible.
- (emfv_destroy): just destroy it here.
-
-2004-10-15 Not Zed <NotZed@Ximian.com>
-
- * em-composer-utils.c (create_new_composer):
- (em_utils_compose_new_message, forward_non_attached): do noting if
- the composer couldn't be created. We get a popup from elsewhere
- to let the user know.
-
-2004-10-14 Sivaiah Nallagatla <snallagatla@novell.com>
-
- * mail-errors.xml : Remove Pango markup from groupwise
- account setup error message
-
-2004-10-12 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_find_handler): use builtin
- handlers (and plugins) always overriding bonobo ones.
-
-2004-10-11 Not Zed <NotZed@Ximian.com>
-
- ** See bug #67408.
-
- * em-folder-view.c (emfv_gui_folder_changed): noop if we were
- destroyed.
- (emfv_destroy): set destroyed bit.
-
-2004-10-11 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mc_startup): register the formatter types
- before registering the formatter hook.
-
-2004-10-08 JP Rosevear <jpr@novell.com>
-
- * mail-account-gui.c (browse_clicked): use "Select a file"
-
-2004-10-08 Harry Lu <harry.lu@sun.com>
-
- * em-folder-tree.c: (em_folder_tree_class_init), (real_popup_menu),
- (emft_popup_menu), (emft_tree_button_press): implement popup_menu
- so that popup menu can be shown with Shift+F10 on folder tree.
- * em-folder-view.c: (emfv_popup), (emfv_list_key_press):
- same as above.
-
-2004-10-07 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mc_startup): dont init the base plugin system
- here anymore, only register the hook types for mail hooks.
-
-2004-09-28 Not Zed <NotZed@Ximian.com>
-
- * em-composer-utils.c (forward_non_attached): put back in the
- attachment attaching code. Doesn't work for s/mime and pgp, but
- why bother arguing about it.
-
-2004-10-06 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (emft_get_folder_info__desc): fix busted cast.
-
- * *.c: e-popup api changes.
-
-2004-10-06 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (emft_tree_button_press): remove some debug
- that made it in accidentally.
-
-2004-10-05 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (emft_popup_copy_folder_selected): remove old
- debug which no longer works.
-
- ** See bug #66991 (related to #64377).
-
- * em-folder-tree.c (em_folder_tree_set_selected): if we get a NULL
- uri or "", just clear the list.
- (emft_tree_button_press): select the new path as well as move the
- cursor there, otherwise emft_tree_user_event clears the selection.
-
-2004-09-30 David Malcolm <dmalcolm@redhat.com>
-
- * em-migrate.c (upgrade_passwords_1_2): fix uninitialised pointer.
-
-2004-09-27 Jeffrey Stedfast <fejj@novell.com>
-
- * em-account-editor.c: Changed the SSL option menu labels.
-
-2004-09-21 Not Zed <NotZed@Ximian.com>
-
- ** See bug #63521.
-
- * mail-ops.c (fetch_mail_fetch): delete all the messages on the
- server if we're not in keep on server mode and everything worked.
- uncancel ourselves before saving the cache uid since it could be
- cancelled otherwise.
-
-2004-09-24 Not Zed <NotZed@Ximian.com>
-
- ** See bug #66706.
-
- * em-subscribe-editor.c: add a sequence number to EMSubscribe and
- the subscribe_msg structures. NOOP if the sequence has changed in
- all callbacks. up the sequence number when we refresh.
-
-2004-09-20 Not Zed <NotZed@Ximian.com>
-
- ** See bug #65329.
-
- * em-folder-tree-model.c (emft_is_special_local_folder): added
- helper for finding local folders for translation.
- (em_folder_tree_model_set_folder_info): translate the special
- local folder names.
-
- * mail-component.c: mark standard folder names for translation.
-
-2004-09-23 Not Zed <NotZed@Ximian.com>
-
- ** See bug #65058 (again again).
-
- * em-format-html.c (efh_text_html): calculate our location uri
- ourselves (content id).
-
- * em-format.c (em_format_add_puri): if we have no content-location
- key, don't fallback to any container's location.
-
-2004-09-23 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (emft_get_folder_info__desc): describe the
- get-folder process. This also makes it cancellable.
-
- ** See bug #64972.
-
- * em-composer-utils.c (em_utils_reply_to_message): pass the folder
- to guess_account.
-
-2004-09-03 Not Zed <NotZed@Ximian.com>
-
- ** See bug #65058.
-
- * em-format-html.c (efh_image): use the content-id rather than
- the uri for tracking our image reference. Makes more
- sense anyway, its guaranteed unique.
-
-2004-09-21 David Malcolm <dmalcolm@redhat.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_set_selected): Fix
- a typo setting the root node.
-
-2004-09-09 Jeffrey Stedfast <fejj@novell.com>
-
- * em-message-browser.c (emmb_set_message): Ignore the
- emfv->mark_seen for deciding whether or not to mark the message as
- seen. Fixes bug #65448.
-
-2004-09-09 Jeffrey Stedfast <fejj@novell.com>
-
- * mail-account-gui.c (mail_account_gui_new): If built with
- gtkfilechooser support, we need to add a checkbox in the chooser
- so that the user can select files or folders (allowing him to
- choose - otherwise they won't be able to setup certain types of
- accounts). Fixes bug #64974.
-
-2004-09-12 JP Rosevear <jpr@novell.com>
-
- Fixes #65703
-
- * em-popup.c: use proper stock icon name
-
-2004-09-08 Not Zed <NotZed@Ximian.com>
-
- ** See bug #60515.
-
- * mail-account-gui.c (sig_fill_menu): connect to the activate
- signal for the none item.
-
-2004-09-03 Not Zed <NotZed@Ximian.com>
-
- ** See bug #59717.
-
- * mail-config.c (mail_config_check_service): Make the dialog
- modal. Not ideal but a problem with the way the function works,
- it should be fully async instead.
-
-2004-09-01 Jeffrey Stedfast <fejj@novell.com>
-
- Fix for bug #63377 and prevention of similar cases.
-
- * em-format.c (emf_finalise): Free the default_charset.
- (emf_format_clone): Clone the default_charset - this prevents the
- particular crash described in bug #63377.
-
- * em-utils.c (em_utils_message_to_html): If source is NULL, set
- our own default charset (from the user's gconf key) on the
- formatter to make sure there's always a source charset for
- conversion to UTF-8.
-
-2004-08-30 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree.c (emft_popup_delete_folder): Set the store and
- full_name info on the dialog.
- (emft_popup_delete_response): Use the requisite data stored on the
- dialog object rather than examining the selection again. Fixes bug
- #62665.
-
-2004-08-30 Not Zed <NotZed@Ximian.com>
-
- ** See bug #64377.
-
- * em-folder-selector.c (emfs_response): only set the uri if we
- have one to set.
-
- * em-folder-tree.c (em_folder_tree_finalize): Removed
- cose using selected_path and selected_uri strings.
- (emft_popup_new_folder): "
- (emft_popup_copy_folder_selected): "
- (emft_tree_selection_changed):
- (emft_tree_row_activated): ", free paths after use.
-
- * em-folder-selector.c (emfs_create_name_changed): free
- get_selected_uri return.
- (emfs_create_name_activate): "
- (em_folder_selector_get_selected_path): handle api change, store
- the selected_path too.
-
- * em-folder-tree.c (em_folder_tree_get_selected_uri):
- de-constify,and get the selection directly from the tree.
- (em_folder_tree_get_selected_path): same.
-
-2004-08-27 Not Zed <NotZed@Ximian.com>
-
- ** See bug #63456.
-
- * message-list.c (main_folder_changed): noop if the async_event
- pointer is NULL which can happen during destroy.
-
-2004-08-27 JP Rosevear <jpr@novell.com>
-
- * importers/mail-importer.c (import_folders_rec): utf8_filename
- should be char * not char
-
-2004-08-27 Hans Petter Jansson <hpj@ximian.com>
-
- * em-utils.c (emu_can_save): Don't crash if we're passed a NULL
- path. GtkFileChooser can return NULL filenames that get passed
- to this function.
-
-2004-08-26 Christian Neumair <chris@gnome-de.org>
-
- * GNOME_Evolution_Mail.server.in.in:
- Don't mark component menu accel for translation.
-
-2004-08-24 Jeffrey Stedfast <fejj@novell.com>
-
- Fix for bug #63177
-
- * em-folder-tree.c (emft_drop_async_drop): Check full_name == NULL
- rather than full_name[0] since store's have NULL full_names, not
- empty string (like they used to).
- (emft_drop_folder): Same.
- (tree_drag_data_received): Don't abort the drop if the user
- dropped on a store, this is allowed (depending on the store).
-
-2004-08-25 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (store_info_new): only open the trash or junk
- if they're vfolders here. Some stores that implement their own
- trash folders are unacceptably slow to open otherwise.
-
-2004-08-25 Frederic Crozat <fcrozat@mandrakesoft.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn):
-
- * importers/evolution-outlook-importer.c (load_file_fn):
-
- * importers/mail-importer.c (import_folders_rec): Convert filename
- to UTF-8 from local encoding before displaying it.
-
-2004-08-23 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (em_folder_tree_set_selected): store the
- select-uri on the view not in the thread message.
- (emft_get_folder_info__free):
- (emft_get_folder_info__got): select_uri removed.
- (em_folder_tree_set_selected_list): don't set each selected
- separately, do it as a list.
- (emft_maybe_expand_row): if this is a selected row, select it too.
- (emft_get_folder_info__got): do no pending set selection stuff
- here.
- (em_folder_tree_set_selected): just call set_selected_list with
- one item.
- (emft_expand_node): if this is a selected row, select it too.
- (emft_get_folder_info__got): no longer need to track lost folders.
- (emft_tree_row_activated): clear the pending select list.
- (emft_tree_selection_changed): and here too.
- (em_folder_tree_get_selected_uris): get the lost folders from the
- un-applied selected ones now. also fixes a list appending error.
- (emft_tree_user_event): find out when the user hits a key or mouse
- button to override any pending single-user select and don't
- override the cursor setting either.
- (emft_tree_row_expanded): set the 'load subdirs' false before we
- load it, so we don't try to load it again if its still being
- loaded.
- (emft_get_folder_info__got): don't check the loaded flag here, it
- should be set by the callee, also check the exception return.
-
-2004-08-13 Jeffrey Stedfast <fejj@novell.com>
-
- Fix for bug #62812
-
- * em-format-html-display.c (em_format_html_display_search): Set
- the search_dialog to be transient for the parent window and make
- sure to destroy the search_dialog when the parent gets destroyed.
-
-2004-08-21 Sivaiah Nallagatla <snallagatla@novell.com>
-
- * mail-erros.xml: changed the groupwise account setup error
- message
-
-2004-08-16 Not Zed <NotZed@Ximian.com>
-
- ** See bug #62963.
-
- * message-list.c (build_tree, build_flat): define selected in
- declaration block, not inline. Spotted by Vincent Noel
- <vnoel@cox.net>
-
-2004-08-13 Not Zed <NotZed@Ximian.com>
-
- * em-utils.c (em_utils_message_to_html): don't include the
- terminating NUL in the data length.
- (em_utils_part_to_html): nor here.
-
-2004-08-12 Carlos Garnacho Parro <carlosg@gnome.org>
-
- * em-utils.c: Optionally use GtkFileChooser if compiled against
- Gtk+ >= 2.4.0
-
- * mail-config.glade: added the "use_filechooser" property to the
- various GnomeFileEntries
-
-2004-08-10 Jeffrey Stedfast <fejj@novell.com>
-
- Partial fix for bug #62771
-
- * em-format-quote.c (emfq_format_header): Same.
-
- * em-format-html.c (efh_format_header): Decode the
- X-Mailer/User-Agent headers.
-
-2004-08-10 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (get_password): just call
- e_passwords_ask_password directly.
- (pass_activate, pass_response, request_password, do_get_pass)
- (do_free_pass, main_forget_password): no longer required as
- e_password now handles the magic, and is thread safe.
-
- * mail-config.c (mail_config_write_on_exit): epasswords api
- change.
-
-2004-08-06 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_get_selected):
- Return NULL not FALSE on error.
-
-2004-06-08 Karsten BrÀckelmann <guenther@rudersport.de>
-
- * em-format-html-display.c (smime_encrypt_table[4]): minor typo,
- uppercase 'the' corrected.
-
-2004-08-03 Jeffrey Stedfast <fejj@novell.com>
-
- * em-composer-utils.c (format_sender): If type="{Sender}" and name
- is an empty string, use the addr. Fixes bug #62377
-
-2004-08-01 JP Rosevear <jpr@novell.com>
-
- * default/C/Inbox: Update to just call us "Evolution" and be more
- accurate about the new features included
-
-2004-07-29 Sivaiah Nallagatla <snallagatla@novell.com>
-
- * mail-errors.xml: add the error message needed for groupwise
- account setup
-
-2004-07-28 Not Zed <NotZed@Ximian.com>
-
- ** See #61958.
-
- * mail-folder-cache.c (real_flush_updates): remove the soreinfo
- lookup, it isn't used anywhere anymore.
- (mail_note_folder): hook onto the events outside of the lock, and
- don't pass the mfi pointer anymore.
- (mail_note_store): hook onto the events outside of the lock.
- (folder_changed, folder_finalised, folder_renamed): lookup the mfi
- if needed, it is no longer passed to the callback.
- (unset_folder_info): change unhook calls for new parameters.
-
-2004-07-28 Not Zed <NotZed@Ximian.com>
-
- ** See #61940.
-
- * em-composer-utils.c (composer_set_body): add emformat source arg.
- (em_utils_reply_to_message): take source arg. Fixed callers.
-
- * em-utils.c (em_utils_message_to_html): take a source formatter
- argument, so we can copy/honour settings from it.
- (em_utils_part_to_html): similar.
-
-2004-07-27 Not Zed <NotZed@Ximian.com>
-
- ** See #57972.
-
- * message-list.c (search_func): removed.
- (ml_search_path): new function to just search, not actually change
- the cursor like e_tree_find does.
- (message_list_can_select): new function, returns true if the
- selection specified is possible without changing the selection.
- (message_list_select): rewritten.
- (select_path): helper to select a path in a way that 'works
- reliably'.
- (message_list_select_next_thread): rewritten to use the
- table-adapter, so it properly handles arbitrary sorting.
-
- * em-folder-view.c (em_folder_view_get_popup_target): setup
- next/prev flags as appropriate.
- (emfv_enable_map[]): setup next/prev flags.
-
- * em-folder-view.h: added last and first message status bits to
- folder view select mask.
-
-2004-07-23 Radek Doulik <rodo@ximian.com>
-
- * added len parameter to em_utils_part_to_html and
- em_utils_message_to_html. it is used to return length of returned
- buffer. we use that info later when setting composer body content.
-
-2004-07-22 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (impl_createControls): dont call
- e_error_default parent here, we dont have access to the toplevel
- yet.
-
-2004-07-23 Not Zed <NotZed@Ximian.com>
-
- ** See bug #61824.
-
- * em-popup.c (emp_part_popup_reply_sender)
- (emp_part_popup_reply_list, emp_part_popup_reply_all): use new
- api. We have no uid/folder to update here.
-
- * em-folder-view.c (emfv_message_reply): use new api for replying
- so we can supply the message content and have flags updated.
-
- * em-composer-utils.c (em_utils_reply_to_message): added optional
- folder and uid.
- (em_utils_reply_to_message_by_uid): removed, use the other
- interface instead.
- (reply_to_message): just call reply_to_message if we get a message
- to reply to.
- (em_utils_reply_to_message): if no message supplied, load it via
- the uid.
-
-2004-07-22 Not Zed <NotZed@Ximian.com>
-
- * em-utils.c (em_utils_part_to_html, em_utils_message_to_html):
- set the session on the formatter. See #61767.
-
-2004-07-22 Not Zed <NotZed@Ximian.com>
-
- ** See bug #61747.
-
- * message-list.c (search_func): don't emit a message_selected here
- (god knows why we did?). Don't update cursor_uid either, just
- clear it.
- (message_list_select): select the path if we find it here, causing
- the cascade of selection action.
-
-2004-07-19 Jeffrey Stedfast <fejj@novell.com>
-
- * em-migrate.c (em_migrate_folder): Free uri and name
- strings. Fixes a leak.
-
-2004-07-13 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-view.c (emfv_message_reply): Chck that the selection
- is active. Hopefully this will fix bug #61427.
-
-2004-07-13 Dan Winship <danw@novell.com>
-
- * em-utils.c (em_utils_selection_set_urilist):
- (em_utils_temp_save_part): free return value from e_mkdtemp
-
-2004-07-09 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c (emfb_folder_expunge): only call expunge if
- the folder is set.
- (emfb_enable_map[]): only enable expunge menu item if we have a
- valid folder set.
-
- ** See bug #60900.
-
- * em-format-html.c: convert the text_inline_parts hash to be keyed
- off the partid.
- (efh_free_inline_parts): -> efh_free_cache and fix to do it.
-
- * em-format.c (emf_free_cache): make the inline table cache other
- info too based on partid, this frees the structure.
- (emf_clone_inlines): copy all of the cache data.
- (em_format_is_inline): use the new data structure to determine
- state.
- (em_format_set_inline): same for setting.
- (emf_multipart_signed): cache/lookup the cached part.
- (emf_insert_cache): helper to add a cache entry.
- (emf_multipart_encrypted): cache decrypted part.
- (emf_application_xpkcs7mime): same.
-
-2004-07-08 Not Zed <NotZed@Ximian.com>
-
- ** See bug #60900 (related only).
-
- * em-format-html-display.c (efhd_attachment_show): let set_inline
- do the redraw itself if required. kill some dead code.
-
- * em-format.c (em_format_set_inline): trigger a redraw here like
- the other em_format_set methods, if the state changed.
-
- * em-format.c (emf_format_clone): free inline table keys & setup
- string hash table.
-
- * em-format-quote.c (emfq_format_attachment):
- * em-format-html-display.c (efhd_format_attachment):
- * em-format-html.c (efh_format_attachment): is_inline api changes.
-
- * em-format-html-display.c (efhd_attachment_show): set_inline api
- changes.
-
- * em-format.c (em_format_is_inline): make this use the partid
- rather than the part address as a key, which may change.
- (emf_init): make the inline talbe a string hashtable.
- (emf_finalise): free inline keys.
- (emf_clone_inlines): copy the key string.
-
-2004-07-07 Jeffrey Stedfast <fejj@novell.com>
-
- Fix for bug #61199.
-
- * em-format-html.c (efh_format_address): Same.
-
- * em-format-quote.c (emfq_format_address): Make sure 'real' isn't
- NULL before using.
-
-2004-07-08 Frederic Crozat <fcrozat@mandrakesoft.com>
-
- * Makefile.am:
- tarball should ship .schemas.in.in files, not generated files.
-
-2004-07-02 JP Rosevaer <jpr@novell.com>
-
- * Makefile.am (SUBDIRS): Revert previous error change
-
-2004-09-10 Not Zed <NotZed@Ximian.com>
-
- * em-*: various doco updates.
-
- * em-format-quote.c (emfq_builtin_init): instead of removing the
- type, just add an override noop. Changed api's.
-
-2004-09-09 Not Zed <NotZed@Ximian.com>
-
- * em-format.c (em_format_class_remove_handler): Change this to use
- the original structure only, not by type.
-
- * em-format-hook.c (emfh_enable): implement hook enablation.
-
-2004-09-07 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_setup_providers): set the provider
- shown selected on the store as well.
-
- * mail-config.glade: moved the druid 'help text' directly into the
- glade file.
-
- * em-account-editor.c (emae_check_complete): add pre-load for
- management page options.
-
- * em-utils.c (em_utils_configure_account): remove use of
- mail-config-druid.
-
- * em-account-editor.c (emae_remove_childen): removed.
- (*): removed service->url, always get it from/set it to the
- e-account so it doesn't have side-effects with plugins.
-
- * mail-dialogs.glade: fix up the names of the various license
- dialog fields.
-
-2004-09-06 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (emae_receive_options_extra_item): store the
- config widgets in the item entry itself.
- (emae_auto_detect): wasted a whole lot of time on this crap.
-
- * em-account-prefs.c (account_able_clicked): removed some redundant logic.
-
- * mail-send-recv.c (mail_autoreceive_setup): renamed to
- mail_autoreceive_init and rewrote all the callbacks. now it
- listens to events on the accountlist directly and doesn't need
- invoking manually. It also runs relative to the account always,
- rather than copying the uri. Removed all callers except the mail
- component one.
-
- * em-account-editor.c (em_account_editor_provider_selector_new):
- removed becaus eof below.
- (em_account_editor_construct): copy the account to a working
- object if supplied, else create a new one.
-
- * mail-config.glade: make the provider selectors just use
- em_account_editor_dropdown new for the dropdown menu.
-
- * em-account-editor.c (prepare_signatures): removed, merged into
- the identity page code.
- (sig_fill_menu): removed.
- (emae_setup_signatures): new function to setup signatures on a
- gtkcombobox.
- (clear_menu): removed.
- (signature_changed): removed.
- (emae_signature_changed): new function for changed.
- (signature_removed): removed.
- (emae_signature_removed): new function for removed.
- (emae_signature_get_iter): helper for finding the right row for
- this signature.
- (signature_added): removed.
- (emae_signature_added): new function for added.
- (sig_activate): removed.
- (emae_signaturetype_changed): new function to update the account
- info immediately.
- (sig_add_new_signature): renamed to emae_signature_new.
- (select_account_signature): no longer needed, this happens in the
- setup.
-
- * mail-config.glade: changed the signature thing to a custom
- widget (gtkcombobox).
-
- * em-account-editor.c (em_account_editor_construct): updates for
- api change, table sections require table items.
- (emae_setup_service): handle host:port hostname syntax.
- (emae_hostname_changed): and here too.
- (emae_commit): fill this out, and implement it.
-
-2004-09-04 Not Zed <NotZed@Ximian.com>
-
- * *.c: include gnome i18.h if needed since camel-object.h was
- fixed.
-
- * em-format.c (em_format_class_add_handler): if a handler is
- already set for type, link it in.
-
- * em-format.h: added a link pointer to EMFormatHanlder, so that
- overrides can also fallback. remove applications member - not
- used anymore.
-
-2004-09-01 Not Zed <NotZed@Ximian.com>
-
- * em-popup.h: added some docs.
-
- * em-popup.c (emp_standard_menu_factory):
- * em-folder-tree.c (tree_drag_data_received): popup api changes.
-
-2004-08-31 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_attachment_button_show): use a
- wrapper for the button event since the popup event has changed
- signature.
-
-2004-08-30 Not Zed <NotZed@Ximian.com>
-
- * em-popup.c (emp_standard_menu_factory): changed args.
- (struct _open_in_item): removed, use user data instead.
- (*): fix callbacks for new apis.
- (emp_popup_open): Removed some dead popup callbacks never invoked.
- (em_popup_target_new_attachments): new target type for attachment
- bar in composer.
-
- * em-folder-tree.c (emft_popup*): convert to new e-popup apis.
-
- * em-folder-view.c: emfv_popup_*: convert to new e-poup callback
- signatures.
- (EMFV_MAP_CALLBACK): fix for e-popup callback change.
- (EMFV_POPUP_AUTO_TYPE): same.
- (emfv_popup): dont bother setting item callback data.
- (emfv_popup_labels_free): api changes.
- (emfv_popup_items_free): new free method.
- (EMFVPopupItem): No longer needed.
- (emfv_uri_popup_free): api changes.
- (emfv_format_popup_event): new api's == simpler code.
-
- * em-account-editor.c (emae_receive_options_extra_item): add a
- hack for the label item, which is only used by connector to
- override the hostname and username labels.
-
-2004-08-24 Not Zed <NotZed@Ximian.com>
-
- * em-account-editor.c (em_account_editor_construct): create the
- window rather than the widget here.
-
- * mail-config.glade: remove the extra_page from the druid, it is
- autogenerated now. renamed the "Receiving options" notebook page
- to "Receiving Email" since it isn't hte options page.
-
- * em-account-editor.c (emae_receive_options_page): no longer
- needed, autogenerated.
- (emae_receive_options_item): setup the auto-receive time values.
- (emae_receive_page): don't setup the auto check time values here.
-
- * mail-config.glade: Remove the Receiving Mail tab, it is now
- completely auto-generated.
-
-2004-08-17 Not Zed <NotZed@Ximian.com>
-
- * em-event.[ch]: mail event dispatcher.
-
- * mail-component.c (mc_startup): hook into events.
-
- * mail-folder-cache.c (update_1folder): always set the uri field.
- (real_flush_updates): emit a folder.changed:new event if we have new
- mail.
-
-2004-08-13 Not Zed <NotZed@Ximian.com>
-
- * mail-config.glade: replaced ssl selector with custom widget
- (gtkcombobox). Giv the preferences, composer toplevel unique
- names.
-
-2004-07-29 Not Zed <NotZed@Ximian.com>
-
- * mail-config.glade: replaced source and transport selector with
- custom widget (gtkcombobox).
-
- * em-account-editor.[ch]: copy over mail-account-gui.[ch] and
- rename stuff. Make a gobject. Move most internals, internal.
-
-2004-07-28 Not Zed <NotZed@Ximian.com>
-
- * em-composer-prefs.c (em_composer_prefs_construct): get the
- toplevel tab as the root.
- (em_composer_prefs_construct): setup plugin metadata for composer
- prefs.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): setup plugin
- metadata for mail preferences.
-
- * em-config.c (em_config_target_new_prefs): new target for 'prefs'
- mode, everything global via gconf.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): get the gui from
- the preferences_toplevel not the preferences_tab window which we
- don't need.
-
- * mail-config.glade: rename the preferences 'toplevel' to
- preferences_toplevel so we can get it unparented. And the
- composer toplevel to composer_toplevel.
-
- * em-folder-properties.c (em_folder_properties_show): remove test
- code.
-
- * em-format.h (struct _EMFormatPURI): add a free function
- callback.
-
- * em-format.c (emf_clear_puri_node): if the free function is set,
- call it.
-
-2004-07-01 Rodney Dawes <dobey@novell.com>
-
- * Makefile.am (BUILT_SOURCES): Remove $(error_i18n)
- (CLEANFILES): Put $(error_i18n) in here
-
-2004-06-29 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree-model.c (folder_created_cb): call
- folder_subscribed directly from the async function not
- foldre_subscribed_cb, otherwise we run out of order. Part of
- #60775.
-
- * em-vfolder-rule.c (source_add): setup exclusion for vfolder
- sources, noselect folders. Bug #60794.
-
-2004-06-23 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-selector.c (em_folder_selector_get_selected_path):
- Don't prepend the path string with a '/'.
-
- * em-folder-tree.c (em_folder_tree_create_folder): This takes a
- full_name so update the argument to make that clear.
- (emft_create_folder): Same and also don't strip a leading '/'
-
-2004-06-25 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (folder_tree_new): set search column. #60152.
-
-2004-06-24 Rodney Dawes <dobey@novell.com>
-
- * em-utils.c (em_utils_add_address): Add code to set the parent,
- position, and type hint of the "Add address" dialog
-
- Fixes #60030
-
-2004-06-23 Not Zed <NotZed@Ximian.com>
-
- ** See #54030.
-
- * e-searching-tokenizer.c (e_searching_tokenizer_match_count):
- only return a count if we're using the primary search string.
-
- * em-format-html-display.c (efhd_search_response): set the primary
- search string to NULL instead of resetting it.
- (efhd_update_search): dont noop if we have a null search text,
- just set an empty search.
-
- * e-searching-tokenizer.c (e_searching_tokenizer_reset): remove
- this, revert jeff's fixes for 54030. this is incomplete and so
- doesn't work either (search text stays remembered and secondary
- search text lost too).
-
- ** See #60523.
-
- * em-folder-view.c (emfv_finalise): unhook the folder changed
- before destroying the async thing, and move it all to destroy
- event anyway.
- (emfv_destroy): as above.
-
-2004-06-22 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree-model.c (sort_cb): Same as below.
- (em_folder_tree_model_remove_folders): Same.
-
- * em-folder-tree.c (emft_maybe_expand_row): As toshok discovered,
- gtk_tree_model_get() strdup's string arguments, *sigh*, so we need
- to free them.
- (tree_drag_data_delete): Same.
- (tree_drag_data_get): Same.
- (tree_drag_data_received): Same.
- (emft_drop_target): Same
- (em_folder_tree_get_selected_uris): Same.
- (get_selected_uris_path_iterate): Same.
- (emft_update_model_expanded_state): Same.
- (emft_tree_row_expanded): Same.
- (emft_tree_row_activated): Same.
- (emft_popup_delete_response): Same.
- (emft_popup_delete_folder): Same.
- (emft_popup_rename_folder): Same.
- (emft_popup_properties): Same.
- (emft_tree_button_press): Same.
- (emft_tree_selection_changed): Same.
-
-2004-06-22 Chris Toshok <toshok@ximian.com>
-
- * em-folder-tree.c (render_pixbuf): gtk_tree_model_get on a string
- field allocates the return value. free path.
-
-2004-06-22 Jeffrey Stedfast <fejj@novell.com>
-
- * em-popup.c (emp_apps_open_in): If the app requires a terminal to
- run, give it a bloody terminal (who uses vi in an xterm to view
- attached text files? *sigh*). Fixes bug #51259.
-
-2004-06-21 Chris Toshok <toshok@ximian.com>
-
- * em-folder-tree.c (render_display_name): gtk_tree_model_get on a
- string field allocates the return value. free name.
-
-2004-06-21 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (em_junk_sa_test_spamd): make sure we test for
- -p and --port only and not for other options as --pidfile
-
- Fixes #60260
-
- (em_junk_sa_test_spamd): try to get spamd/spamc binaries from
- gconf
-
- Implements #59368
-
-2004-06-18 Not Zed <NotZed@Ximian.com>
-
- ** See #31027.
-
- * em-vfolder-editor.c (em_vfolder_editor_new): make sure we
- construct the rule editor with a source of 'incoming', otherwise
- newly created rules have no source in the current session.
-
- * em-vfolder-rule.c (em_vfolder_rule_init): init the vfolder
- source to 'incoming' always.
-
- * mail-vfolder.c (uri_is_ignore): fix debug statement.
-
- ** See #60214.
-
- * em-folder-view.c (em_folder_view_print): re-arrange code to make
- the dialogue async. We also now load the message every time
- before printing.
- (emfv_print_response): handle response to print.
-
- * em-format-html-print.c (em_format_html_print_message): new api
- to print a specific uid on a specific folder.
-
-2004-06-18 Not Zed <NotZed@Ximian.com>
-
- * em-vfolder-rule.c (get_widget): use mail dialogs.glade.
-
- * mail-dialogs.glade: move the vfolder-source window here from
- mail-config.glade.
-
- * Makefile.am (glade_DATA): fix the glade list.
-
- * mail-license.glade, subscribe-dialog.glade, mail-security.glade,
- * mail-search.glade: Merged into mail-dialogs.glade. Should be
- easier to manage.
-
- * message-tag-followup.c (construct): use mail dialogs glade file.
-
- * mail-account-gui.c (display_license): use mail dialogs glade file.
-
- * em-subscribe-editor.c (em_subscribe_editor_new): use new glade
- file.
-
- * em-format-html-display.c (em_format_html_display_search): use
- merged glade file.
- (efhd_xpkcs7mime_validity_clicked): same.
-
- * mail-dialogs.glade: merge various glade files into here.
-
-2004-06-17 Not Zed <NotZed@Ximian.com>
-
- ** See #59885.
-
- ** Moved all of the mail specific filtering stuff from filter/* to
- here. Renamed appropriately into em* space, etc.
-
- * em-filter-folder-element.c (emff_copy_value): implement for folders.
-
- * em-vfolder-rule.c (get_widget): read the vfolder glade from
- mail-config.glade.
-
- * mail-config.glade: moved the vfolder source selector here.
-
- * em-search-context.c: new mail search specific rule context.
-
- * mail-component.c (setup_search_context): use the new
- em_search_context.
-
- * vfolder-rule.c (validate): change error to mail context.
-
- * filter-folder.c (validate): change error to mail context.
-
- * Makefile.am (em-filter-i18n.h): added rule for i18n of mail
- filter type stuff.
- (libevolution_mail_la_SOURCES): added in the filter and vfolder
- rule stuff specific to mail.
-
- ** See #59885.
-
- * em-format-html-quote.[ch]: remove and remove from build, not
- used.
-
- * Makefile.am (libevolution_mail_la_LIBADD): add libeabutil and
- evolutionsmime.
-
- * mail-component-factory.c (factory): there is no mail_config
- anymore.
-
-2004-06-16 Rodney Dawes <dobey@novell.com>
-
- * em-folder-properties.c: Include gtk[hv]box.h so we can use them
- (emfp_dialog_got_folder): Fix the border widths and spacings for
- the internal widgets and the dialog's vbox and action area to be
- compliant with the HIG
- Fix the general layout of the dialog to be HIG-compliant as well
- Use ngettext for the row labels for number of messages
- Add a cancel button, since we are not instant-apply
- Align the message counts to the right
- Part of this patch is from Christian Neumair <chris@gnome-de.org>
-
- * mail-component.c (view_changed_cb): Fix a typo for the sent folder
- send is not a pluralization of sent
-
-2004-06-16 JP Rosevear <jpr@novell.com>
-
- * em-composer-prefs.c (spell_set_ui): clear the error, don't free
- it, so NULL is handled properly
-
-2004-06-16 Not Zed <NotZed@Ximian.com>
-
- * em-utils.c (em_utils_selection_get_urilist): handle comments in
- the urilist. Can't remember the rfc for it.
-
- ** See #56479.
-
- * em-utils.c (em_utils_in_addressbook): use the main thread to
- setup the addressbook list.
- (em_utils_in_addressbook): only check against the "completion"
- sources, not all of them.
-
-2004-06-15 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c (emfb_mail_stop): call mail_cancel_all to
- implement the stop button.
-
- * em-utils.c (emu_addr_sources_refresh): don't unref the group
- list, otherwise the sources become broken now (?).
- (em_utils_in_addressbook): add some locking. add cancellation.
- this is almost certainly going to cause issues.
-
- * mail-mt.c (mail_cancel_hook_add, mail_cancel_hook_remove)
- (mail_cancel_all): new functions to implement a global mailer stop
- button.
-
-2004-06-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (save_part_save): This code no longer needs to do
- charset conversion. Yay. Fixes bug #60225.
-
- * em-utils.c (em_utils_save_part_to_file): Use the proper e-error
- namespace.
-
-2004-06-15 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree.c (emft_popup_copy_folder_selected): frombase is
- simply the select_path, since selected_path is now just the
- full_name rather than the path. Fixes bug #60075.
-
- * em-composer-utils.c (attribution_format): New function to format
- an attribution string (won't crash if translators were sloppy with
- their strftime/printf-style formatters). Also nice/extendable for
- future feature enhancements such as user-customisable attribution
- strings.
- (composer_set_body): Use above function rather than using
- e_strftime/etc ourselves.
-
-2004-06-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-view.c (emfv_init): Changed the second
- gtk_selection_add_target() to use GDK_SELECTION_CLIPBOARD rather
- than GDK_SELECTION_PRIMARY again. This should fix bug #60022.
-
-2004-06-14 Radek Doulik <rodo@ximian.com>
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): the check button
- label has now opposite meaning (after UI changes), call
- toggle_button_init with 'not' parameter set to TRUE
- (toggle_button_toggled_not): new helper function, sets negative
- value to gconf bool key
-
-2004-06-14 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (rule_changed): don't check rule->source, its
- irrelevent to vfolder sources, and clean up the logic a bit.
- #59158.
-
- * em-folder-tree.c (emft_popup_new_folder_response): destroy the
- create dialogue if we're firing up the vfolder creation window.
-
- * em-composer-utils.c (get_reply_all): if we removed all of the
- addresses because they were 'us', add the first to
- address back. otherwise reply-to-all behaves strange.
-
-2004-06-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (em_folder_tree_set_selected): Free any old
- select_uri string we may have.
- (emft_tree_row_expanded): Remove the gross hack that was here.
- (emft_get_folder_info__got): Check for priv->select_uri and try
- selecting it (if we can't select it yet, it'll just be re-queued
- for later).
- (emft_tree_row_activated): Clear the select_uri if set, the user's
- selection overrules any auto-selection.
- (emft_tree_selection_changed): Same.
-
-2004-06-11 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (emft_tree_button_press): rearrange the setting
- up of the target flags, stores can have a null path.
-
- * em-folder-selector.c (emfs_create_name_changed): use
- get_selected_uri rather than path. a valid uri may have a null
- path now.
- (emfs_create_name_activate): and here too.
- (em_folder_selector_get_selected_path): check the uri is null for
- a selected path, and then handle a null path.
-
- * em-folder-tree-model.c (em_folder_tree_model_add_store): revert
- previous change. Stupid emftm.
-
- * em-utils.c (em_uri_from_camel): handle a null path or fragment.
-
- * em-folder-tree-model.c (em_folder_tree_model_add_store): set the
- full name of the store to "". Fixes #59925 and probably other
- issues. Related to the removal of folderinfo->path.
-
-2004-06-10 Jeffrey Stedfast <fejj@novell.com>
-
- Fixes bug #58825. Ugh. Really Gross Hack (tm).
-
- * em-folder-tree.c (emft_tree_row_expanded): If the store that we
- are expanding matches the uri that we've been requested to select
- (e.g. from before the store was added to the tree), then give the
- uri to the get_folder_info_op.
- (em_folder_tree_set_selected): If the store for the uri isn't in
- the tree yet, save the uri for later.
-
- * mail-component.c (folder_selected_cb): Set the selected state of
- the folder-tree and save it.
- (impl_createControls): Restore the selected state on the
- folder-tree.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_selected): New
- function to set the selected-uri saved state.
- (em_folder_tree_model_get_selected): New function to get the
- selected uri saved state.
- (em_folder_tree_model_save_state): Renamed.
-
- * em-folder-tree.c (emft_update_model_expanded_state): Don't let
- path be NULL if the node is a store node (path == NULL for any
- other case is a bug).
- (emft_maybe_expand_row): Same.
-
-2004-06-10 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (message_list_set_selected): use new
- etreeselectionmodel api to select paths in one call. Fixes
- #59546.
-
- * em-folder-view.c (emfv_message_reply): check that we have
- content selected, not just a selection, before trying to reply to
- that content. #59146.
- (emfv_message_reply): strip call content-* headers (fixme), and
- set transfer-encoding to 8bit.
-
-2004-06-08 Rodney Dawes <dobey@ximian.com>
-
- * mail-config.glade: Fix for SSL options appearing for sendmail
-
-2004-06-08 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree.c (em_folder_tree_set_selected): Scroll to the
- selected folder if needed. Fixes bug #59609.
-
- * em-folder-selector.c (em_folder_selector_construct): Make the
- chooser non-modal. Fixes bug #53735.
-
- * em-folder-tree.c (emft_tree_row_collapsed): Only change the
- cursor if the currently selected folder is a subfolder of the
- folder collapsed. Fixes bug #59801 without breaking bug #57665.
- (emft_tree_test_collapse_row): Renamed from
- emft_tree_collapse_row() to match the new signal we are connected
- to.
-
-2004-06-07 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_add_store): Set the
- store's FULL_NAME to NULL here. Fixes the crash in bug #59713.
-
-2004-06-07 Dan Winship <danw@novell.com>
-
- * em-folder-view.c (emfv_popup_menu, emfv_message_pixmaps):
- s/stock_save_as/stock_save-as/
-
- * em-popup.c (emp_standard_select_popups,
- emp_standard_object_popups): Likewise
-
-2004-06-05 Christian Neumair <chris@gnome-de.org>
-
- * em-folder-tree.c: Shuffle usage of trailing "..." in menus according
- to the HIG.
-
-2004-06-05 Christian Neumair <chris@gnome-de.org>
-
- * mail-component.c (view_changed_cb): Use ngettext for message count
- information.
-
-2004-06-04 Radek Doulik <rodo@ximian.com>
-
- * default/C/Inbox (Content-Type): added size info to IMG tags so
- that it loads the message smoother
-
-2004-06-03 William Jon McCann <mccann@jhu.edu>
-
- * mail-session.c (request_password): Don't pack entry and checkbox
- widgets directly into the dialog vbox so that they line up
- correctly with the action area buttons.
-
-2004-06-02 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mc_add_local_store_done): put this back in,
- local folders not being noted properly all the time.
-
-2004-06-01 Jeffrey Stedfast <fejj@novell.com>
-
- * em-composer-utils.c (forward_non_attached): Don't attach
- anything ever. This is confusing way too many users who expect it
- to attach all or nothing. Since Forward-Attached is what users
- should be using to forward a message and all attachments, make
- these not attach anything (which is what other mailers do
- anyway). This wlso makes Forward-Quoted consistant with
- Reply-Quoted which is a Good Thing (tm).
-
-2004-06-01 Not Zed <NotZed@Ximian.com>
-
- * em-folder-selector.c (em_folder_selector_get_selected_uri): set
- the right path on the url.
-
- * mail-signature-editor.c (load_signature): ugh, unlike camel
- exceptions, you can't pass NULL to CORBA calls.
- (mail_signature_editor): ditto. See bug #58815.
-
-2004-05-28 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree.c (d): Disable debug here too - all this code has
- been working fine.
-
- * em-folder-selector.c (d): Disable debug spew here too (not that
- this debug was ever seen since it never hit those conditions).
-
- * mail-folder-cache.c (d): Disable debug here too.
-
- * em-folder-tree-model.c: Disable debug spewage that we don't need
- anymore. The amount of debug spewage on the console is getting to
- be too much to find anything.
-
- * em-folder-tree.c (emft_expand_node): Use p+1 as the full_name
- rather than p. Fixes bug #59187.
-
-2004-05-27 Jeffrey Stedfast <fejj@novell.com>
-
- * em-folder-tree.c (emft_get_folder_info__got): Instead of
- removing the "Loading..." row for toplevel folder nodes on failure
- (which indicates a failure conenct to the server, most likely),
- collapse the store node so that if the user expands the store
- node, it will automagically try connecting again. Fixes bug #57493.
-
-2004-05-27 Rodney Dawes <dobey@novell.com>
-
- * Makefile.am (EXTRA_DIST): Add $(error_i18n)
-
-2004-05-26 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (vfolder_adduri_desc): initialise desc to NULL
- before using it later on. gcc doesn't warn on this if you're not
- optimising. Sigh. Probably fix #59070, #59060, #58972 and
- friends.
-
- * importers/evolution-mbox-importer.c (create_control_fn): set the
- default selection to inbox.
-
- * importers/evolution-outlook-importer.c (folder_selected)
- (create_control_fn): copied from mbox importer. fixes a crash &
- lets you choose the target folder.
-
-2004-05-25 Jeffrey Stedfast <fejj@novell.com>
-
- * mail-errors.xml: a few fixes.
-
- * em-format-quote.c (emfq_text_plain): Only strip the signature if
- we are in some wy modifying the content (we don't want to remove
- the signature if we are editing the message as a new
- message). Fixes bug #58826.
-
-2004-05-25 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mc_add_local_store_done): removed, now
- redundant.
-
- * em-folder-tree.c (em_folder_tree_set_selected): fix for path changes.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_unread_count):
- change to use full name rather than path name.
-
- * em-folder-tree-model.h: renamed path_hash to full_hash.
-
- * em-folder-tree-model.c (folder_subscribed): dont use
- g_path_get_dirname here, it is os dependent, we want / always.
- (full_hash_free): rename from path_hash free.
-
- * em-folder-view.c (emfv_popup_menu[]): disable add sender to
- addressbook bar if it is also disabled. #58955.
-
-2004-05-24 Not Zed <NotZed@Ximian.com>
-
- * mail-account-gui.c (mail_account_gui_build_extra_conf): don't
- enable the widget based on its writability if it is a dependent
- option which is now disable.
- (setup_toggle): return whether the widget is sensitive too.
- #57171.
-
- * em-popup.c (em_popup_target_new_select): only enable add sender
- if we also have 1 selected. #56663.
-
- * em-folder-view.c (emfv_enable_menus): remove some debug.
-
- * em-format-html.c (efh_format_header): output commas between
- newsgroups, and also append_printf.
-
-2004-05-24 Sivaiah Nallagatla <snallagatla@novell.com>
-
- * mail-account-gui.c (mail_account_gui_build_extra_conf): added
- empty handling for CAMEL_PROVIDER_CONF_HIDDEN
- (extract_values): added handling for CAMEL_PROVIDER_CONF_HIDDEN
-
-2004-05-24 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (em_folder_tree_set_selected): use set_cursor
- instead of scroll_to_row. See #58383.
- (get_selected_uris_iterate): removed.
- (em_folder_tree_get_selected_uris): use an interative call based
- on gtk_tree_selection_get_selected_rows rather than
- selected_foreach, as the gtk+ docs suggest. was trying to fix a
- bug but it seems gtktreeselection bug (shift-select rows using
- keyboard only)
-
- * message-list.c (regen_list_regened): pull the message from the
- regen list before we check the list and pending uid.
-
- * em-folder-view.c (emfv_enable_menus): remove the hack for
- enabling select delete from here and put it in the right place.
- (em_folder_view_get_popup_target): put it here so its consistent.
-
-2004-05-22 Not Zed <NotZed@Ximian.com>
-
- * mail-tools.c (mail_tool_uri_to_folder): put note_store back in.
- Quick hack to fix the issue of folders being opened before we hook
- onto folder_created.
-
- * mail-folder-cache.c: remove 'name' from update struct, not used
- anymore
-
- ** Another unread count bug, #58814.
-
- * mail-vfolder.c (context_rule_added):
- * mail-tools.c (mail_tool_uri_to_folder):
- * mail-component.c (mc_add_local_store_done): don't call mail note
- folder anymore, fix up headers.
-
- * mail-folder-cache.c (store_folder_opened)
- (mail_note_store_remove, mail_note_store): handle the new
- store:folder_opened signal. Don't need the mail_note_folder hack
- anymore, mail_tool_uri_to_folder slowly does less.
-
-2004-05-21 Not Zed <NotZed@Ximian.com>
-
- * mail-mt.c (do_call): add marshaller for p_ppppp call.
-
- * mail-session.c (get_password): fix for camel api changes.
- (forget_password): same.
-
- ** See #58376.
-
- * message-list.c (mail_regen_list): do some timeout foo so we
- don't keep doing list regnerations if we're getting called too
- often. God knows what this will break.
- (message_list_set_selected): removede bug printf.
- (regen_list_free): move the message-list poking stuff into
- regen_list_regened.
- (message_list_set_folder): call mail_regen_cancel to cancel any
- regen stuff.
- (mail_regen_cancel): cancel/clear outstanding regenerations.
- (message_list_destroy): do it here too.
- (message_list_select_uid): also set the pending select uid if we
- have a timeout pending.
-
- * mail-component.c (impl_createControls): set the defualt parent
- to the main folderview as soon as its created.
-
- * em-folder-tree.c (emft_popup_copy_folder_selected): use
- get_toplevel rather than get_ancestor. seems the more reliable
- one. also we're always parented so we shoudl always find a
- toplevel window.
- (em_folder_tree_create_folder): same.
- (emft_popup_delete_response): set error parent.
- (emft_popup_delete_folder, emft_popup_rename_folder)
- (emft_popup_rename_folder, emft_popup_rename_folder):
-
- * em-migrate.c (update_passwords_1_2): finally put the 1.2
- password upgrade patch in. Untested. #42721.
-
-2004-05-20 Jeffrey Stedfast <fejj@novell.com>
-
- Fixes for bug #57305.
-
- * mail-account-gui.c (sig_add_new_signature): Updated for changes
- below.
-
- * em-composer-prefs.c (em_composer_prefs_new_signature): No longer
- takes a script argument (makes no sense to edit a script with an
- HTML editor if we require that the script already exist before we
- let the user add it anyway).
- (sig_add_cb): Updated for above change.
- (sig_add_script_response): Don't pop up an editor window for the
- newly added script, the script has already been created! Instead
- simply create a new ESignature object, set the sig->name, and add
- it to the signature list.
-
-2004-05-20 Radek Doulik <rodo@ximian.com>
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): remove "use
- daemon" handling code
-
- Fixes #56909
-
-2004-05-20 Not Zed <NotZed@Ximian.com>
-
- ** See #58388.
-
- * mail-mt.c (mail_msg_check_error): surpress any errors about
- messages not found because of invalid uid's. They're really just
- internal errors.
-
- ** See #57583.
-
- * message-list.c (build_tree): save/restore the selection when we
- update.
- (message_list_set_selected): util to set the selected messages
- from a list of uids.
- (build_flat): same. I wonder if etree's unbroken enough to use it
- more directly?
-
- ** See #58693.
-
- * mail-send-recv.c (mail_autoreceive_setup): add bounds checking
- so sloppy ui work wont break it again.
-
- * mail-config.glade: put the minimum for autocheck back to 1
- minute. Naughty jeff.
-
-2004-05-19 Chris Toshok <toshok@ximian.com>
-
- * importers/pine-importer.c (import_contacts): use the new
- e_book_new_* and e_book_open apis.
-
- * em-utils.c (em_utils_in_addressbook): use the new e_book_new_*
- and e_book_open apis.
-
-2004-05-19 Jeffrey Stedfast <fejj@novell.com>
-
- * message-tags.glade: Fixed the icon name to get the right one.
-
- * message-list.c (message_list_init_images): Changed to load an
- empty pixbuf manually rather than relying on the pixbuf returned
- for "" from e_icon_factory_get_icon() since it has changed to
- return a broken image icon.
-
-2004-05-19 JP Rosevear <jpr@novell.com>
-
- * Makefile.am: don't dist the error .h file
-
-2004-05-19 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (send_queue_send): set seen when we set deleted. ?
- #56549.
-
- * em-inline-filter.c (emif_add_part): if we end up with an
- application/octet-stream part, pre-snoop it so we set the right
- mime type to start with. Fixes #58554.
-
- * em-format.c (emf_snoop_part): removed, now in em-utils.
-
- * em-utils.c (em_utils_snoop_type): rah rah, snoop a mime part's
- type.
-
- * em-format-html.c (efh_text_plain): Revert jeff's fix for #56290.
- Ugh, we already have all the citation info in local data. Removed
- the need for gconf too.
-
-2004-05-19 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_format_secure): make this match the efhd
- stuff.
-
- * em-format-html-display.c: removed stock_signature-nokey since it
- doesn't exist in gnome-icon-theme.
- (efhd_xpkcs7mime_button): if there is no signing, but encryption,
- use its icon. if there's no encryption too, use a broken icon
- (?).
-
-2004-05-05 William Jon McCann <mccann@jhu.edu>
-
- * GNOME_Evolution_Mail.server.in.in: Add menu_label and
- menu_accelerator.
-
-2004-05-19 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mc_quit_sync): fixed up the empty trash on
- exit thing, to update for all stores, not update the timestamp on
- the first store synced.
-
-2004-05-18 Cantona Su <paradisetux@hotmail.com>
-
- * em-format-html.c: Added header "X-Newsreader" for handle Outlook
- Express as Mailer.
-
-2004-05-18 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c (em_folder_browser_show_preview): don't
- nomarkseen when we restore the message when we show the preview.
- #58387.
-
- * mail-folder-cache.c (folder_changed): no new message test if its
- the drafts folder too.
-
- * mail-vfolder.c (vfolder_adduri_desc): use a nicer, account-based
- formatter for folder names. Hmm, that was a good waste of time.
- For #55412.
-
- * em-folder-view.c (emfv_list_selection_change): Listen to the
- tree selection change event directly & proxy out, so we can update
- the status bar properly. Blah. For #58600.
-
- ** Quick fix for #57434
-
- * em-format.c (emf_format_clone): fix the FIXME about cloning
- headers shown.
-
- * em-format-html.c (efh_format_headers): only show rupert if we're
- showing rupert.
-
- * em-format-html-print.c (efhp_init): default show_rupert to off.
-
- * em-format-html.c (efh_init): default show_rupert to on.
-
- * em-format-html.h: added show_rupert bit.
-
- * mail-folder-cache.c (folder_changed): don't emit new mail if its
- any vfolder, not just vtrash folder. #56350.
-
- * em-folder-view.c (emfv_list_done_message_selected): run
- enable_menu's to make sure we're up to date. #58352.
-
- ** crappy hacks for #58385.
-
- * em-folder-selection-button.c
- (em_folder_selection_button_clicked): leave Ok button for this
- selection.
-
- * em-folder-selection.c (em_select_folder): added oklabel here too.
-
- * em-folder-selector.c (em_folder_selector_new)
- (em_folder_selector_construct, em_folder_selector_create_new):
- Added oklabel- text for ok label.
- (em_folder_selector_create_new): Set the ok label to Create.
-
- * em-message-browser.c (emmb_set_message): don't mark message seen
- if user has disabled auto-mark seen feature. #58629.
-
- * em-format.c (em_format_part): if we have no content-type header,
- then we get no mime-type set, so assume text/plain. #58470.
-
-2004-05-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-mailer-prefs.c: #include <gtk/gtkliststore.h>. Fixes bug
- #58407.
-
-2004-05-17 Not Zed <NotZed@Ximian.com>
-
- * mail-account-gui.c (mail_account_gui_setup): put the None item
- at the head of the providers list.
- (mail_account_gui_setup): only set the transport default fallback
- if it is not a STORE_AND_TRANSPORT type provider (since that was
- just disabled). #57939.
-
- * message-list.c (on_selection_changed_cmd): only NOOP if we have
- no selection and no uid, if we have a selection and no uid, then
- always update. Fixes #58267 without breaking the double-load
- thing.
-
- * em-folder-view.c (em_folder_view_open_selected): keep the hide
- deleted status. Makes #51082 work at last.
-
- ** Bug #6556.
-
- * message-list.c (ml_drop_async_desc, ml_drop_async_drop)
- (ml_drop_async_done, ml_drop_async_free, ml_drag_data_action)
- (ml_drop_popup_copy, ml_drop_popup_move, ml_drop_popup_cancel)
- (ml_tree_drag_data_received): implement async drop operations and
- the ask drop option menu.
-
-2004-05-14 Not Zed <NotZed@Ximian.com>
-
- ** Bug #6556.
-
- * message-list.c (ml_selection_received_uidlist): removed, not
- needed anymore.
- (ml_selection_received): call get_uidlist to paste the selection.
- (ml_tree_drag_data_received): same here.
-
- * em-folder-tree.c (emft_drop_uid_list): removed, not needed
- because of below change.
-
- * em-utils.c (em_utils_selection_get_uidlist): actually do the
- copy now, don't just decode the data.
-
- * em-folder-tree.c (tree_drag_data_received): just copy the
- selection data data itself, dont decode yet.
- (emft_import_message_rfc822): removed, not needed, use em utils
- stuff instead.
- (emft_drop_message_rfc822): same.
- (emft_drop_text_uri_list): same.
- (emft_drop_async_free): simply free stuff.
- (emft_drop_async_drop): call em_utils stuff where they exist to do
- the drop.
-
- * message-list.c (ml_tree_drag_data_get): send x-mailbox instead
- of message/rfc822 for the mailbox.
- (ml_tree_drag_data_received): handle drop of x-mailbox differently
- to message/rfc822.
- (ml_tree_drag_motion): implement so proper options are setup
- whilst dragging.
- (message_list_construct): seutp the drag src/dest types for
- changes typs and with ASK action.
-
- * em-utils.c (em_utils_read_messages_from_stream): dont unref the
- stream when we get it.
- (em_utils_selection_get_mailbox): add an argument to scan from or
- not, for message/rfc822 vs x-mailbox drops.
- (em_utils_read_messages_from_stream): Same.
-
- * em-folder-tree.c (tree_drag_motion): default to move properly.
-
- * message-list.c (ml_selection_received_uidlist): take a move flag.
- (ml_tree_drag_data_received): handle move action.
-
- * em-folder-tree.c (em_folder_tree_new_with_model): got sick of
- this bloody warning.
-
- * em-format.c (default_headers[]): just remove x-mailer from the
- header list, if it isn't on by default. This is the default list.
- (em_format_default_headers): loop through everything.
-
-2004-05-14 Jeffrey Stedfast <fejj@novell.com>
-
- * em-popup.h: s/RESEND/EDIT/
-
- * em-popup.c (em_popup_target_new_select): s/RESEND/EDIT/
-
- * em-folder-view.c: s/RESEND/EDIT/
- (emfv_popup_edit): Renamed from emfv_popup_resend. Part of the fix
- for bug #58358 (The main fix was just a change to the ui file).
-
- * mail-config.c (mail_config_init): Build the path to the gtkrc
- filename and store it on the config struct so we don't have to
- keep rebuilding it.
- (config_write_style): Reuse config->gtkrc string instead of
- constructing the path again.
- (mail_config_write_on_exit): Free the gtkrc path.
- (config_write_style): fflush the gtkrc file.
-
- * em-popup.c (emp_popup_resend): Updated the #if 0'd code for the
- API chanegs made to em_utils_edit_messages().
-
- * em-folder-view.c (em_folder_view_open_selected): Pass TRUE as
- the replace argument to em_utils_edit_messages() here.
- (emfv_popup_resend): Pass FALSE here. Fixes bug #58357.
-
- * em-composer-utils.c (em_utils_edit_messages): Now takes a
- 'replace' argument specifying whether or not the original message
- should be deleted when the edited message is sent or saved.
-
- * em-format-html.c (efh_format_secure): Same. Also changed the
- "Valid signature, cannot verify sender" string to "Valid signature
- but cannot verify sender" as I think it reads nicer.
-
- * em-format-html-display.c (efhd_format_secure): Since signature
- status is a tri-state, use 3 different colours too (yellow for
- valid sig but unknown sender).
-
-2004-05-13 Jeffrey Stedfast <fejj@novell.com>
-
- * em-format.c (em_format_default_headers): Don't include the last
- default_header when setting the default headers. If the user has
- configured Evolution to display the Mailer header, then it will be
- set in em-folder-view.c as appropriate when it checks the gconf
- settings. Fixes bug #58217.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Default
- "x-evolution-mailer" header to disabled.
-
- * em-format-quote.c (emfq_text_plain): Add a stripsig
- filter. Fixes bug #52767.
-
- * em-stripsig-filter.[c,h]: New filter class to strip
- signatures. Useful when generating forwards/replies.
-
-2004-05-13 Not Zed <NotZed@Ximian.com>
-
- * em-migrate.c (em_migrate_folder): move ignore case outside of
- block. Stupid c language.
-
- * em-folder-view.c (emfv_format_popup_event): fix warning with
- cast.
-
- ** See bug #58304.
-
- * em-junk-filter.c (em_junk_sa_setting_notify): listen to sa
- settings changes, update some globals.
- (em_junk_filter_get_plugin): setup the gconf client here and
- listen to changes.
- (em_junk_sa_get_local_only, em_junk_sa_get_use_daemon)
- (em_junk_sa_get_daemon_port): removed, use globals instead.
-
-2004-05-13 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_message_reply): re-enabled the reply to
- selection stuff. I worked out how to make it work; I think.
-
- * em-format-html-display.c (efhd_html_button_press_event): if we
- aren't on a clickable object, do a null popup event instead.
-
- * em-folder-view.c (emfv_format_popup_event): do the full popup if
- we aren't on anything (not on a uri or part). See #8414.
-
- * GNOME_Evolution_Mail.server.in.in: added "email" to the
- uri_schema's attribute.
-
- * mail-component.c (impl_handleURI): handle email: uri's, specify
- opening a message on a folder.
- (handleuri_got_folder): open the message. For some 1337 s3Kr3t
- ha0x.
-
-2004-05-12 Not Zed <NotZed@Ximian.com>
-
- ** See bug #58302.
-
- * em-composer-utils.c (em_utils_post_to_folder):
- * em-composer-utils.c (em_utils_compose_new_message_with_mailto):
- poke the composer headers from account directly, don't call set
- headers which overwrites stuff.
-
-2004-05-12 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (setup_search_context): enable threading option
- type on the search bar.
-
- * mail-errors.xml.h: add for translators.
-
- * Makefile.am (%.xml.h): fix for xml i18n stuff.
-
- * mail-errors.xml: moved from the .xml.in file.
-
-2004-05-11 Not Zed <NotZed@Ximian.com>
-
- * em-utils.c (em_uri_from_camel): pass an exception to
- provider_get, it relies on one.
-
- * em-migrate.c (em_migrate_1_4): fix some error messages, and fail
- with fatal errors properly.
- (em_migrate_local_folders_1_4): EEP! Who cares if this fails!
- Well I do. Setup exceptions and return codes.
- (em_migrate_dir): and here too. Sloppy!
- (em_migrate_dir): change the code slightly, 1.4 would recurse all
- folders, even if the parent folder doesn't have a
- folder-metadata.xml. Make sure we copy that mode.
- (get_local_store_uri): Make it copy the 1.4 behaviour properly.
- Any error -> use defaults.
- (em_migrate_dir): lots of changes.
- (mbox_build_filename): take the output string as an arg.
- (cp): add an argument to overwrite/append or require a unique
- empty file.
- (cp_r): add mode arg here too.
- (em_migrate_folder): split the folder copy stuff from em_migrate
- dir entirely. blah.
- (em_upgrade_accounts_1_4): can't fail, remove return code, etc.
- (em_upgrade_xml_1_4): removed this rather redundant odd api.
- (upgrade_xml_uris): this can't fail, remove return codes etc.
- (em_upgrade_xml_1_0): another oddly redundant function.
- (em_migrate_pop_uid_caches_1_4): error messages, blah blah.
- (em_migrate_folder_expand_state_1_4): no fatal states here.
- (em_migrate_folder_view_settings_1_4): nor here.
- (emm_setup_initial): do i18n 'better', using
- gnome_i18n_get_language_list, rather than hacky code.
-
-2004-05-10 Not Zed <NotZed@Ximian.com>
-
- * mail-tools.c: remove e-meta.h, not used anymore.
-
-2004-05-11 Dan Winship <danw@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Remove the mail folder
- control factory
-
- * mail-component-factory.c (factory): Remove support for the mail
- folder control
-
- * mail-component.c: Remove the property bag stuff
- (mail_control_new): Gone
-
-2004-05-10 David Malcolm <dmalcolm@redhat.com>
-
- * em-subscribe-editor.c (sub_queue_fill_level): Fixed warning
-
-2004-05-10 Jeffrey Stedfast <fejj@novell.com>
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Default the
- Mailer header to enabled. Fixes bug #58217.
-
-2004-05-10 JP Rosevear <jpr@ximian.com>
-
- * mail-ops.c (mail_send_message): set header to just Evolution
- (mail_append_mail): ditto
-
- * em-message-browser.c (em_message_browser_window_new): set title
- to just Evolution
-
-2004-05-10 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_activate): cleanup the view menus if they
- were created.
-
- * em-folder-view.h: added list_active bit, means the view is
- showing the list and needs e.g. view menus.
-
- * em-folder-view.c (emfv_setup_view_instance): was
- create_view_instance. Now also setup the menu's if we're showing the list.
-
- * em-folder-browser.c (emfb_create_view_menus): removed. moved
- functionality into emfolderview.
-
-2004-05-07 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #57152.
-
- * em-folder-tree.c (emft_get_folder_info__got): If we queried for
- a recursive folder-info listing, then pass fully_loaded as TRUE to
- set_folder_info().
- (emft_get_folder_info__got): If we find that a folder doesn't have
- children, set the expanded state to FALSE.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
- Now takes a "fully_loaded" argument to hint to set_folder_info
- whether or not folder-info's without child nodes can possibly have
- children (eg. if fully_loaded is set and fi->child is NULL, then
- 'load' will be FALSE no matter what fi->flags contains).
-
-2004-05-07 Radek Doulik <rodo@ximian.com>
-
- * mail-config.c (config_write_style): set cite_color property of
- gtkhtml widgets
- (mail_config_init): add /apps/evolution/mail/display dir to gconf
- client and watch for mark_citations and citation_colour changes
-
- See bug #57587
-
-2004-05-07 Not Zed <NotZed@Ximian.com>
-
- * mail-account-editor.c: include missing header.
-
- ** See bug #57935.
-
- * em-folder-view.c (emfv_set_message): add new arg, nomarkseen,
- don't mark the selected message seen once its loaded.
- (emfv_list_message_selected): clear the nomarkseen flag once we've
- processed the selection.
- (emfv_list_done_message_selected): handle the nomarkseen flag,
- don't mark a message seen if it was explictly selected.
-
- * em-folder-browser.c (emfb_list_built): use
- em_folder_view_select_message rather than doing it via the
- messagelist directly.
-
- ** Dunno why i bothered, but see bug #58090.
-
- * importers/netscape-importer.c
- (netscape_filter_parse_conditions): check for custom headers
- properly.
- (netscape_filter_flatfile_get_entry): put in some validate checks.
- (netscape_filter_to_evol_filter): implement custom headers properly.
- (ns_filter_condition_types): add missing "status" string.
-
- ** See #58017.
-
- * message-list.c (mail_regen_list): use thread_queued, so we don't
- regen out of order.
-
- * em-folder-view.c (emfv_list_message_selected): use the queue
- thread so we don't get messages out of order.
-
- * mail-ops.c (mail_transfer_messages): use thread_queued_slow.
- (mail_prep_offline): and here too.
-
-2004-05-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c (folder_selected_cb): Check that the folder is
- selectable using the new flags argument.
-
- * em-folder-selector.c (folder_selected_cb): Updated for below
- changes.
-
- * em-folder-tree.c (emft_tree_selection_changed): Updated to pass
- a flags argument to the folder_selected signal.
- (emft_tree_row_activated): Same.
-
-2004-05-06 Radek Doulik <rodo@ximian.com>
-
- * em-composer-prefs.c (sig_selection_changed): reset the preview
- if no signature is selected
-
- Fixes #57167
-
-2004-05-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_tree_row_collapsed): Select the row that
- was just collapsed. Fixes bug #57665.
-
- * mail-autofilter.c (rule_match_thread): Removed.
- (rule_from_message): Removed the AUTO_THREAD bit.
-
- * em-folder-view.c: Removed vFolder/Filter on Thread. These were
- both broken.
- (struct _filter_data): Removed a bunch of data members since most
- of them weren't used.
-
-2004-05-05 Not Zed <NotZed@Ximian.com>
-
- ** See bug #57720.
-
- * em-folder-browser.c (emfb_create_view_menus): removed some stuff
- done in create_view_instance in the superclass.
-
- * em-folder-view.c (emfv_create_view_instance): moved here from
- em-folder-browser, setup the view instance for the folder.
- (emfv_set_folder): if the folder is set, create the view instance.
-
- * em-folder-browser.c: moved the galview instance and menu
- pointers to EMFolderView, since they're basically meta-data on the
- messagelist @ to fix issues.
-
- * em-folder-view.c (em_folder_view_open_selected): copy over the
- threaded list value when the message browser is brought up.
-
- ** some clean up
-
- * evolution-mail.schemas.in.in: removed xmailer_mask stuff.
-
- * em-migrate.c (mail_display_map[]): Removed xmailer_mask stuff.
-
- * em-folder-view.c (emfv_setting_notify): removed xmailer_mask stuff.
-
- * em-format-html.c (em_format_html_set_xmailer_mask): removed.
- This isn't used anymore.
-
- ** Fixes the double-draw on separate mail view.
-
- * message-list.c (on_cursor_activated_cmd): noop if the cursor and
- uid match for all cases (clearing uid).
- (on_selection_changed_cmd): noop if the cursor and new selection
- hasn't changed & fix a memleak.
-
-2004-05-04 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #55303, but ideally there would be a nicer way of
- doing this - likely with some added ETree API but that's not
- likely to happen anytime soon.
-
- * em-folder-browser.c (scroll_idle_cb): Recall the saved scrollbar
- position state and set it, then reconnect to the
- message_list_scrolled signal.
- (emfb_list_built): Calculate a default scrollbar position for
- scroll_idle_cb to use if there's no saved state.
- (emfb_set_folder): Disconnect from the message_list_scrolled
- signal and the idle_scroll_id.
- (emfb_list_scrolled): Save the scrollbar position state.
- (emfb_destroy): Disconnect from list_scrolled_id and
- idle_scroll_id.
-
- Fix for bug #58004.
-
- * mail-account-gui.c (display_license): Fixed to compile.
- (select_account_signature): Activate the signature menu item.
- (signature_added): Connect to the activate signal for each item.
- (sig_changed): Removed.
- (prepare_signatures): Don't bother connecting to the
- "selection-done" signal, it doesn't seem to work the way we
- expected it to work.
-
-2004-05-04 Sarfraaz Ahmed <asarfraaz@novell.com>
-
- * mail-account-gui.c (display_license): This now takes CamelProvider
- as argument. Made the display message more generic. Removed the signal
- connects for buttons and replaced those with proper gtk_reponses.
- (mail_account_gui_check_for_license): Modified the gconf key for
- licenses to be a string list.
- * evolution-mail.schemas.in.in: Added the gconf schema entry for a
- string list to handle the component names whose licenses are accepted.
- * mail-license.glade: Modified the display string and added the
- appropriate gtk_response types for the buttons.
-
-2004-05-03 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #57968
-
- * message-list.c (message_list_set_folder): Save the tree/hide
- state of the current folder before clearing the message-list.
- (message_list_set_folder): Note that a new folder has just been
- set (now needed by the regen code to tell whether or not it should
- save the tree state before clearing the tree).
- (message_list_destroy): Save the tree/hide state before destroying
- the message-info's, not after.
- (regen_list_regened): If the regen is being performed in response
- to a message_list_set_folder, don't save the tree state before
- clearing the tree or we'll clobber the real state with bogus data.
-
-2004-05-03 William Jon McCann <mccann@jhu.edu>
-
- * mail-account-gui.c: Add gtkdialog header to fix build.
-
-2004-05-03 Not Zed <NotZed@Ximian.com>
-
- * em-composer-utils.c (create_new_composer): take fromuri and
- subject to set the basic headers/account.
- (em_utils_compose_new_message)
- (em_utils_compose_new_message_with_mailto, forward_attached)
- (em_utils_forward_attached, forward_non_attached)
- (em_utils_forward_inline, em_utils_forward_quoted)
- (em_utils_forward_message, em_utils_forward_messages): Take the
- from folder uri to set the from account if it can. Fixed all
- callers. For #57964.
-
- * mail-send-recv.c (receive_update_done): removed.
-
- * em-mailer-prefs.h:
- * message-tag-followup.h:
- * mail-config-druid.h:
- * mail-tools.h: clean up & use forward decls. Fix users with
- busted includes.
-
- * em-composer-utils.c (em_utils_compose_new_message)
- (em_utils_compose_new_message_with_mailto)
- (em_utils_post_to_folder, em_utils_post_to_url)
- (em_utils_edit_message, em_utils_edit_messages)
- (em_utils_forward_attached, em_utils_forward_inline)
- (em_utils_forward_quoted, em_utils_forward_message)
- (em_utils_forward_messages, em_utils_redirect_message)
- (em_utils_redirect_message_by_uid) :
- (em_utils_reply_to_message, em_utils_reply_to_message_by_uid)
- (em_utils_post_reply_to_message_by_uid): Moved these here from
- em-utils.c.
-
-2004-04-30 Priit Laes <amd@tt.ee>
-
- * mail-config.glade: fix typo. #53466.
-
- * evolution-mail.schemas.in.in: use American English instead of
- British. #53466.
-
-2004-04-30 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #56645
-
- * em-folder-tree.c (tree_drag_motion): If the row the cursor is
- hovering over has children and is not expanded already, setup a
- timer to auto-expand it if the user hovers there long enough.
- (tree_autoexpand): Callback to expand the row.
- (tree_drag_leave): Disconnect the timer.
- (tree_drag_drop): Same.
- (em_folder_tree_destroy): Same.
-
-2004-04-30 Enver ALTIN <enver.altin@frontsite.com.tr>
-
- * evolution-mail.schemas.in.in: Fixed a type-o.
-
-2004-04-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (message_list_set_folder): Properly initialise
- the strikeout column for both types of folders (trash and not
- trash). Completes the fix for bug #57304.
-
-2004-04-30 Not Zed <NotZed@Ximian.com>
-
- * em-utils.c (emu_can_save): fix the overwrite? question. #57822.
-
-2004-04-29 Not Zed <NotZed@Ximian.com>
-
- * mail-errors.xml.in: change all the session-message-* things to
- just be secondary, otherwise they look awful all big fonted.
-
- * mail-session.c (error_type[]): forgot to prefix error type with
- "mail:"
-
- * em-account-prefs.c (account_delete_clicked): duh, use the right
- error id.
-
- * mail-send-recv.c (receive_update_got_store): call
- mail_note_store rather than get_folder_info so that unread counts
- are propagated to the ui too.
-
- * mail-errors.xml.in: fix the password dialogue text.
-
-2004-04-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree-model.c (sort_cb): Sort the VFolders. Fixes bug
- #56636.
-
- * em-mailer-prefs.c (citation_color_set): We only want 8bits per
- color. Fixes bug #57588.
-
- * em-folder-tree-model.c (em_folder_tree_model_remove_store):
- Duh. If the lookup of si fails, don't use si->display_name in the
- warning message. Actually, don't bother with a warning message at
- all, this is a perfectly valid situation. Fixes bug #57746.
-
- * mail-ops.c (mail_send_message): Don't set the Date header here
- anymore. It has either already been set (when written to the
- Outbox) or will automagially be set to the current time if a Date
- hasn't already been set when the transport sends it. Fixes bug
- #57599.
-
- * em-composer-prefs.c (sig_add_script_response): Use
- g_shell_parse_argv() to get the actual script path and then check
- that we can exec argv[0] rather than treating the entire
- command-line as the signature script. Fixes bug #57305.
-
-2004-04-28 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (ml_selection_clear_event): return the right
- type, related to #53839.
-
- ** Changed error messages to use EError.
-
-2004-04-27 Not Zed <NotZed@Ximian.com>
-
- ** See bug #57659.
-
- * mail-ops.c (fix_unmatched_info): removed, done in camel now.
-
- ** See bug #57511.
-
- * mail-config.glade: gave the whole smime frame (vbox) a name so
- we can use it from code.
-
- * mail-account-gui.c (mail_account_gui_new): get the smime_vbox
- widget if we have no NSS, the name changed and the HIG patches
- didn't fix it.
-
-2004-04-26 Radek Doulik <rodo@ximian.com>
-
- * em-format-html.c (efh_format_timeout): set gtk_html_begin's
- flags to avoid scroll to top of the message and
- reloading+flickering of images
-
- * em-html-stream.c: added GtkHTMLBeginFlags flags field
- (em_html_stream_set_flags): new helper function to set new flags
- field
- (emhs_sync_write): use gtk_html_begin_full with new flags field
- (em_html_stream_new): zero flags field
-
- Fixes #51654
-
-2004-04-23 Sarfraaz Ahmed <asarfraaz@novell.com>
-
- * mail/mail-license.glade: Glade file for displaying the license.
-
-2004-04-23 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (em_format_html_load_http): fix the check to
- see if we've already loaded the images. #57450.
-
-2004-04-23 Sarfraaz Ahmed <asarfraaz@novell.com>
-
- * mail-account-gui.c (mail_account_gui_source_complete): Added a
- check for HAS_LICENSE flag.
- (mail_account_gui_check_for_license)(display_license)
- (populate_text_entry)(check_button_state)(set_license_accepted)
- (set_license_rejected): Implemented
-
-2004-04-22 Not Zed <NotZed@Ximian.com>
-
- * em-migrate.c (em_migrate_imap_cmeta_1_4): do the imap cmeta
- files, it just does the sync offline stuff. #56674.
- (em_migrate_1_4): non-fatalise some of the options, call above.
-
- * mail-component.c (view_changed_cb): display selected count
- instead of unread if we have >1 selected. Also don't do special
- case drafts/sent/outbox stuff if folders are inbox or re-used.
- (view_control_activate_cb): force check of autosaved messages as
- soon as the mailer starts up (well, after a delay, this seems
- wrong). #57093.
-
-2004-04-21 Not Zed <NotZed@Ximian.com>
-
- * em-inline-filter.c (emif_scan): use a better test for non-full
- lines.
-
- * em-folder-browser.c (emfb_activate): dont desensitise
- HideDeleted just 'cause we have no folder, it needs to depend on
- Trash folder only.
- (emfb_set_folder): set the hidedeleted sensitivity based on
- whether we have a trash folder or not. Fixed #57226.
-
- * em-folder-view.c (emfv_class_init): use the right signal
- callback for the changed signal. Fixes #57246.
-
- * mail-component.c (impl_createControls): fix for
- e_user_creatable_items api changes.
- (create_item): split out the code to create the item.
- (create_local_item_cb): new callback for local item creation.
- (impl_requestCreateItem): call create_item to do the work.
-
-2004-04-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-browser.c: Use E_ICON_SIZE_* enums for the menu icon
- sizes.
-
- * em-folder-view.c: Use E_ICON_SIZE_* enums for the menu/toolbar
- icon sizes.
-
- * message-tag-followup.c (construct): Same.
-
- * message-list.c (message_list_init_images): Same.
-
- * mail-send-recv.c (build_dialog): Same.
-
- * mail-mt.c (do_op_status): Same.
-
- * mail-config-druid.c (evolution_mail_config_wizard_new): Same.
-
- * em-popup.c (em_popup_create_menu): Same.
-
- * em-format-html-display.c (efhd_format_prefix): Same.
-
- * em-format-html.c (efh_format_secure): Same as below.
-
- * em-folder-tree.c (render_pixbuf): Don't use absolute icon sizes,
- use the e-icon-factory enums.
-
-2004-04-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-composer-prefs.h: Removed variables that got re-added with
- the icon-theme patch somehow.
-
- * em-account-prefs.c: Don't bother keeping global references to
- the enable_pixbuf anymore, since it's unnecessary.
-
-2004-04-19 Michael Terry <mike@mterry.name>
-
- * GNOME_Evolution_Mail.server.in.in:
- * em-account-prefs.[ch]:
- * em-composer-prefs.[ch]:
- * em-folder-browser.c:
- * em-folder-tree.c:
- * em-folder-view.c:
- * em-format-html-display.c:
- * em-format-html.[ch]:
- * em-popup.c:
- * mail-component.c
- * mail-config-druid.c:
- * mail-config.glade:
- * mail-mt.c:
- * mail-send-recv.c:
- * message-list.c:
- * message-tag-followup.c:
- * message-tags.glade: Update the mailer to use icon themes through the
- EIconFactory object in e-util
-
-2004-04-16 David Malcolm <dmalcolm@redhat.com>
-
- * importers/netscape-importer.c (netscape_import_accounts):
- Removed unused and uninitialised "url" local that gets g_free-ed
-
-2004-04-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (config_write_style): Change the message display
- widget names to match the ones we are using in 1.5 (rather than
- the ones from earlier versions). Fixes bug #57070.
-
-2004-04-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c: Added a new "message_list_scrolled" signal so
- our users can listen to this event in order to update saved state.
- (message_list_get_scrollbar_position): Simplified.
- (message_list_set_scrollbar_position): Simplified.
-
- * em-format.c: Don't complain about message errors ("Internal
- Error: ..."), instead silently fall back to display the message as
- source. Fixes bug #56876.
-
-2004-04-14 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_set_folder_uri): ugh, use the queued
- thread to get the folder, otherwise we can get folders set on the
- display out of order.
-
- * message-list.c (message_list_set_search): if we set this while
- frozen, save the search elsewhere.
- (message_list_thaw): if we had a frozen-time search, use it when
- we regenerate.
-
- * em-folder-browser.c (emfb_set_folder): freeze/thaw the
- messagelist around changes so we don't have multiple updates fire
- off changing folders.
- (emfb_activate): remove an unused variable i never used.
-
- * message-list.c (message_list_freeze, message_list_thaw): lock
- some updates to the ui, so you can do things like set folder and
- search atomically.
- (message_list_set_threaded, message_list_set_hidedeleted)
- (message_list_set_search, message_list_hide_uids)
- (message_list_hide_clear, message_list_set_folder): dont refresh
- the list if we're frozen.
-
- * mail-component.c (impl_createControls): remove debug comment.
-
- ** See #56641.
-
- * em-format-html-display.c (efhd_format_secure): fix a small
- memleak.
- (efhd_bonobo_unknown, efhd_format_attachment): close the <object>
- tag properly, and <br> it as well to make sure its separated.
-
- * em-sync-stream.c: add some runtime and compile time stream
- logging stuff.
-
- ** See bug #56149.
-
- * em-folder-view.c (emfv_edit_cut): similar to below, use focus to
- determine who we select from.
- (emfv_edit_copy): ditto.
-
- * message-list.c: Remove primary selection stuff. It just annoys.
-
- * em-folder-browser.c (emfb_edit_copy): use focus rather than
- selection owner to determine who to copy from.
- (emfb_edit_cut): similarly.
-
- * em-format.c (emf_multipart_related): hmm, use the right pointer
- when iterating the pending uri list.
-
-2004-04-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c (impl_createControls): We don't actually want
- to disallow clicking on \NoSelect folders. Fixes a bug campd has
- been complaining to me about :-)
-
- * mail-config.c (mail_config_signature_run_script): If we get an
- empty charset string from gconf, don't try to use the result to
- create a charset filter. Real fix for bug #51924.
-
- * mail-config.glade: Removed crackrock usage of GtkFixed as
- fillter. Also HIGified some other stuff.
-
-2004-04-13 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_set_folder): track the messagelist
- hidedeleted value since it looks it up when we set the folder.
-
- * em-folder-browser.c (emfb_hide_deleted): use new method below to
- propagate change.
- (emfb_activate): same.
-
- * em-folder-view.c (em_folder_view_set_hide_deleted): accessor to
- set the hide_deleted state, emits a view_changed event.
-
- * mail-component.c (view_changed_cb): use VISIBLE rather than
- TOTAL for the displayed total count. Also deleted if we're not in
- hide deleted mode. And do spethal things with spethal folders,
- etc.
-
- * mail-ops.c (mail_refresh_folder): run this in the
- thread_queued_slow, so it runs in sequence and after folder_sync.
-
- * em-folder-view.c (emfv_set_folder): fire off a refresh_folder
- once the folder is loaded. Addresses #56871.
-
- * em-format-html.c (efh_format_headers): use %% for %%.
- (efh_format_done): reset load_http_now once we've done, should
- fix #56338 finally.
-
- * em-folder-view.c (emfv_init, emfv_finalise, emfv_activate):
- revert dans' creatable items handler patch, moved to
- mail-component instead (which deals with the actual menu's).
-
- * mail-component.c (impl_createControls): setup a user creatable
- items handler on the view widget.
- (view_control_activate_cb): activate the user creatable items
- handler on the view widget.
-
- * em-folder-view.c (emfv_init): add a comment about jeff's last
- fix.
-
- * em-utils.c (forward_non_attached): Set attachments from
- forwardee before we set the body, otherwise images wont resolve
- properly. Related to #56566.
-
-2004-04-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-view.c (emfv_init): Need to set the session on the
- preview object. Fixes bug #56862.
-
- * em-folder-tree.c (em_folder_tree_set_selected): Scroll to the
- auto-selected folder. Fixes bug #56707.
-
- * message-list.c (message_list_get_scrollbar_position): New
- function.
- (message_list_set_scrollbar_position): New function.
-
- * em-utils.c (em_uri_to_camel): If the provider is unavailable,
- return euri like the other fail cases. Fixes bug #56846.
-
-2004-04-10 Francisco Javier F. Serrador <serrador@cvs.gnome.org>
-
- * evolution-mail.schemas.in.in.h: Correct typo s/hight/height/ at
- "Subscribe dialog default hight"
-
-2004-04-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_init): Don't bother adding the
- autogen sig here, e-signature-list.c handles this now.
-
- * em-migrate.c (em_upgrade_accounts_1_4): Migrate the signature
- uids. Fixes bug #56726.
-
-2004-04-09 Chris Toshok <toshok@ximian.com>
-
- * importers/pine-importer.c (import_contact): use
- e_destination_export_to_vcard_attribute instead of exporting to
- xml, and use e_contact_set_attributes.
-
- * em-utils.c (em_utils_camel_address_to_destination):
- EABDestination -> EDestination.
- (reply_get_composer): same
- (post_reply_to_message): same.
-
- * em-composer-utils.c (ask_confirm_for_unwanted_html_mail):
- EABDestination -> EDestination.
- (composer_get_message): same.
-
-2004-04-09 Radek Doulik <rodo@ximian.com>
-
- * em-format-html.c (efh_format_headers): add width=16 height=16 to
- rupert's image so that it doesn't flicker/move
-
-2004-04-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-selection.c (em_select_folder): Set the excluded bits
- on the folder-tree. Don't allow the user to xfer messages into
- folders which are: NoSelect, Virtual, nor vTrash. Fixes bug
- #56229.
-
-2004-04-09 Dan Winship <danw@ximian.com>
-
- * em-folder-view.c (emfv_init): Create an
- EUserCreatableItemsHandler for the view.
- (emfv_finalise): Unref it.
- (emfv_activate): Activate it
-
- * mail-component.c (impl__get_userCreatableItems): add
- object/folder flags to the items
-
-2004-04-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (cp_r): Now takes a pattern argument to limit files
- that get copied over (so we can limit imap cache to only the
- summary files - makes it faster).
-
- * mail-account-gui.c (mail_account_gui_build_extra_conf): Fixed up
- a bit to look nicer and make it closer to HIG compliant.
-
- * em-folder-tree.c (emft_drop_folder): We need to recursively copy
- the dragged folder tree over to the drop location, not just the
- parent folder. We also need to subscribe to the newly created
- folder in some cases.
-
-2004-04-08 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_format_headers): add the monkey button if
- we're from evolution. See #52977.
- (emfh_gethttp): cast away a warning.
-
- * mail-folder-cache.c:
- (update_1folder): VJUNK_FOLDER's dont exist, they're VTRASH
- folders now.
-
- * em-folder-view.c: remove message_changed stuff from camel folder
- stuff.
-
- * mail-component.c (mail_component_init): don't setup the search
- context here, wait till its requested. Fixes #56672.
-
-2004-04-07 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (view_changed_cb): hook to update the info
- label when the folderview changes.
-
- * em-folder-view.c (emfv_class_init): added 2 signals 'loaded' and
- 'changed'. For when a folder is set/cleared or when some state
- changes.
- (emfv_set_folder): emit LOADED signal when we set the folder.
- (emfv_list_message_selected): emit changed event.
- (emfv_gui_folder_changed): emit changed event.
-
-2004-04-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_tree_button_press): Check that
- emft_selection_get_selected() returns TRUE before we try to use
- the iter. Fixes bug #56652.
- (emft_popup_delete_response): Same idea here.
- (emft_popup_delete_folder): Same.
- (emft_popup_rename_folder): Same.
- (emft_popup_properties): Same.
-
- Fix for bug #56538
-
- * em-folder-view.c (emfv_set_folder_uri): Don't set the preview
- empty here.
- (emfv_set_folder): If the folder is the same as the folder already
- on the emfv, just return. Otherwise clear the preview and continue
- setting the folder as normal.
-
-2004-04-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-account-prefs.c (em_account_prefs_apply): Removed.
-
- * em-mailer-prefs.c (em_mailer_prefs_apply): Removed.
-
- * em-composer-prefs.c (em_composer_prefs_apply): Removed.
-
- * mail-config-factory.c (mail_config_control_factory_cb): No
- longer need the Apply stuff.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Don't call a
- function that doesn't exist anymore.
-
-2004-04-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Changed to save
- the settings in the signal callbacks.
- (em_mailer_prefs_apply): Don't save the settings here.
-
- * em-composer-prefs.c (em_composer_prefs_apply): Don't save the
- settings here.
- (em_composer_prefs_construct): Changed to save the settings in the
- signal callbacks.
-
-2004-04-06 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (emft_tree_row_expanded): ref the emfoldertree
- in our thread message.
- (em_folder_tree_set_selected): same.
- (emft_get_folder_info__free): unref it.
-
- * mail-folder-cache.c (ping_store): use thread_queued_slow not
- thread_queued - we dont care when it runs.
-
- * em-folder-view.c (emfv_set_folder_uri): use thread_new for
- getting the folder, we do elsewhere, and it aids interactivity.
-
-2004-04-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (em_migrate_dir): Migrate the thread_list
- setting. Fixes bug #56297.
-
-2004-04-05 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_xpkcs7mime_button): if we have no
- sign status, use signed-nokey, rather than no icon.
- (efhd_xpkcs7mime_viewcert_clicked): show the certificate viewer
- since certificate_viewer_show doesn't show it.
- (efhd_xpkcs7mime_viewcert_foad): foad foad foad. The api changed
- and we need to foad it ourselves.
-
- ** See bug #52822.
-
- * em-format-html-display.c (efhd_xpkcs7mime_add_cert_table): if we
- can't find the cert, then desensitise the cert button.
-
- ** See bug # 56402.
-
- * mail-folder-cache.c (update_folders): if we're cancelled, noop.
- (mail_note_store_remove): mark the update data cancelled.
-
- * mail-ops.c (add_special_info): removed, this is done in camel
- now.
- (fix_unmatched_info): renamed from add_unmatched_info.
- (get_folderinfo_got): Removed the meaningless comment here.
-
-2004-04-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (cp_r): Revert my "fix" from yesterday. We can't
- necessarily show progress (progress window may have been destroyed
- already).
-
- Fixes bug #53851
-
- * em-folder-view.c (emfv_popup_move_cb): Save the uri as the
- default for copy/move.
- (emfv_popup_move): Use the default copy/move uri.
- (emfv_popup_copy): Same.
-
- * em-folder-selection.c (em_select_folder): Select the uri *after*
- the dialog gets shown.
-
-2004-04-02 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #37416
-
- * mail-folder-cache.c (update_1folder): Same as below. Also add
- vJunk fodlers to the list of folders that we display the total
- count for (as discussed on the mailing lists).
-
- * em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
- Use 'total - deleted' as the count for Outbox rather than just the
- total count.
-
-2004-04-02 Not Zed <NotZed@Ximian.com>
-
- * em-inline-filter.c: do a per-line validation of the uuencoded
- stuff, based on the length byte.
-
- ** See bug #56338.
-
- * em-format-html.c (emfh_gethttp): fix the fugly "load http if"
- that doesn't work to be a fugly "load http if" that does work.
- (efh_format_timeout): dont set load_http_now here, its only an
- override now.
-
-2004-04-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (cp_r): Report progress. "Fixes" bug #56355.
-
- * mail-account-gui.c (signature_changed): Set the updated
- sig->name on the menu item.
-
- * importers/netscape-importer.c (netscape_import_accounts):
- Updated for signature API changes.
-
- * mail-account-gui.c: Same.
-
- * mail-signature-editor.c: Same.
-
- * em-composer-prefs.c: Same.
-
- * mail-config.c: Rewrote the signature stuff to use ESignatureList
- instead. Much cleaner and less broken.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Always make the
- Add/Remove Header buttons de-sensitised at the start. Fixes bug
- #56284.
-
-2004-04-01 Eric Zhao <eric.zhao@sun.com>
-
- * mail-account-gui.c (transport_type_changed): Commented grabbing
- focus on hostname edit, fix the focus issue of Account Assistant.
-
-2004-03-31 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html.c (efh_text_plain): Only do citation colouring if
- the user has specified to do so and use the user's specified
- colour when appropriate. Fixes bug #56290.
-
- * em-subscribe-editor.c (em_subscribe_editor_new): Save/restore
- the subscribe dialog's window size. Fixes bug #56230.
-
-2004-03-31 Not Zed <NotZed@Ximian.com>
-
- * mail.h: REMOVED! And there was much rejoicing.
-
- * *.[ch]: Cleaned up header inclusions and added plenty of forward
- declarations. Sped up complete re-compilation by upto 20%.
-
- ** See bug #55950.
-
- * em-utils.c (em_utils_in_addressbook): utility for checking if an
- email address is in the addressbook. I can't tell if it works
- 'cause it crashes eds.
-
- * em-format-html.c (emfh_gethttp): handle addressbook checking.
-
-2004-03-30 Not Zed <NotZed@Ximian.com>
-
- * mail-config.h: clean up the headers and use some forward decl's
- instead.
-
- * em-format-html.c (em_format_html_set_load_http): change state to
- an int 'style' instead.
-
- * em-folder-view.c (emfv_setting_notify): set the format load http
- option to the config value directly.
-
- ** See bug #56147.
-
- * message-list.c (clear_info): set the node data to NULL when we
- unref its data.
- (ml_get_save_id): use a different test for the root node, and
- return NULL if we don't have any data on the node (because we're
- cleaing it).
-
- ** See bug #54962.
-
- * em-folder-tree.c (emft_popup_new_folder_response): put back the
- old hack to open the vfolder editor if you try to create a folder
- under vfolders.
-
- ** See bug #55940.
-
- * mail-autofilter.c (mail_filter_rename_uri): map the uri to an
- email uri before passing to filter code.
- (mail_filter_delete_uri): same here.
-
-2004-03-30 Radek Doulik <rodo@ximian.com>
-
- * mail-config.glade: add spellLiveToggled signal
-
- * em-composer-prefs.c (em_composer_prefs_construct): fix typo,
- call toggle_button_init on prefs->spell_check instead of againg on
- prefs->auto_smileys
- (spell_setup): connect spellLiveToggled signal
-
- Fixes #55964
-
-2004-03-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_create_folder__free): Free the
- folder-info.
-
- * em-folder-browser.c (emfb_activate): Instead of comparing
- sstate[0] to '1', compare it against '0' like all the other code
- does.
-
-2004-03-25 Sivaiah Nallagatla <snallagatla@novell.com>
-
- * Makefile.am : remove local-config.glade from glade_DATA as it
- is removed from CVS
-
-2004-03-25 Rodney Dawes <dobey@ximian.com>
-
- * em-composer-prefs.c (sig_edit_cb):
- (sig_add_script_cb): Use gtk_window_present instead of doing a show
- then raise, as this also puts the window on the current workspace
- (em_composer_prefs_construct): Fix the border widths for the dialog
- vbox and action area to be HIG-compliant, and realize the window
- Remove the dialog separator
- Use a box_pack_start, rather than box_pack_start_defaults which causes
- some weird behaviour when changing the border widths
- * em-subscribe-editor.c (em_subscribe_editor_new): Realize the dialog
- and set the border widths for its vbox and action area to be compliant
- with the HIG
- * local-config.glade: Removed this file as it is no longer used
- * mail-account-editor.c (construct): Realize the dialog, remove its
- separator, and set the border widths for its vbox and action area to
- be HIG-compliant
- * mail-account-editor.c (source_type_changed):
- (transport_type_changed): Fix the showing and hiding of the widgets
- related to the SSL options
- (mail_account_gui_new): Get the transport/source frames for the SSL
- options, and hide them by default
- Show the default folder buttons by default here
- (mail_account_gui_setup): Only call _show not _show_all here, so we
- don't mess up the shown/hidden state of things
- * mail-account-gui.h: Add ssl_frame widget to the MailAccountGuiService
- * mail-config.glade:
- * mail-search.glade:
- * mail-security.glade: HIG-compliance fixes for the glade dialogs
- * message-tag-followup.c (construct): Don't set border_width on the
- dialog itself
- Remove the separator from the dialog
- Set the border_widths for the dialog's vbox and action areas to be
- compliant with the HIG
- * message-tags.glade:
- * subscribe-dialog.glade: HIG-compliance fixes for these dialogs
-
- Original patch from Martyn Russell
-
-2004-03-24 Danilo Å egan <dsegan@gmx.net>
-
- * mail-ops.c (get_messages_desc): Use ngettext for handling plural
- forms (fixes bug #53464).
-
-2004-03-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html.c (emfh_gethttp): Use sizeof() to decide how big
- buffer is so that in the future, if we change the length of
- bufefr, things will Just Work (tm).
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Fixed the key to
- fetch the value from the correct location. It's
- junk/check_incoming, not junk/sa/check_incoming. Fixes bug #55903.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_expanded):
- Fixed some logic bugs.
-
-2004-03-23 Radek Doulik <rodo@ximian.com>
-
- * em-format-html-display.c (efhd_format_attachment): use
- EM_FORMAT_HTML_VPAD
-
- * em-format-html.h (EM_FORMAT_HTML_VPAD): added new define for
- vertical padding
-
- * em-format-html.c (efh_format_message): change padding table so
- that it works OK with fixed gtkhtml
-
-2004-03-23 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_attachment_popup): dont add the
- show/hide menu items if we can't ever show it inline.
- (efhd_attachment_button): disable the ">" button if we can't view
- the content inline. See #52086.
-
- * em-format-quote.c (emfq_format_attachment): format inline(d)
- parts automatically into the reply. Part of #55702.
-
- * em-utils.c (em_uri_from_camel): if we get an email uri passed in,
- just pass it out again, without first going to camel to do it.
-
-2004-03-22 Not Zed <NotZed@Ximian.com>
-
- * em-format.c:
- * em-mailer-prefs.c: Add Newsgroups to the default header list.
-
- * em-format-html.c (efh_format_header): handle the newsgroups
- header, output news: url's. For bug #??? i can't recall, i closed
- it already!
-
-2004-03-19 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #54800.
-
- * em-folder-tree.c (tree_drag_drop): Remove the autoscroll
- timeout.
- (tree_drag_leave): Remove the autoscroll timeout.
- (tree_autoscroll): New autoscroll timeout callback - automagically
- scrolls the treeview if appropriate.
- (tree_drag_motion): Setup the autoscroll timeout.
-
-2004-03-19 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mail_component_remove_store): ref the store
- before running the async disconnect, otherwise we unref one too
- many times.
-
-2004-03-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_setup): Don't set the
- account source/transport types to disabled simply because the
- provider is NULL (think of the "None" option).
- (source_type_changed): Need to update widget sensitivity based on
- locked'ness here.
- (transport_type_changed): Same.
-
- * em-utils.c (em_utils_add_address): rfc2047 decode the address
- here before passing it off to the addressbook (which expects it to
- be in human-readable form, not encoded). Fixes bug #55591.
-
-2004-03-18 Not Zed <NotZed@Ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): save the source and
- transport vbox's to enable/disable the whole lot easier.
- (mail_account_gui_setup): enable above based on perms.
- (mail_account_gui_build_extra_conf): also disable extra page, as
- above.
-
- * em-account-prefs.c (account_cursor_change): disable the whole
- account editor if accounts are ro.
-
-2004-03-17 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_message_deliverystatus): format as plain
- text too.
-
- * em-format.c (emf_message_deliverystatus): format delivery
- status messages as plain text, rather than as messages. since
- they wont be CamelMimeMessages. Maybe they should be silently
- hidden.
-
- * mail-offline-handler.c (store_go_online): split this, only call
- add_store/note_store once we've actually set the store online.
- (store_went_online): set the store up once we're fully online.
- Works around a deadlock in #55618.
-
- * em-account-prefs.c (account_cursor_change): disable
- editing/adding/removing accounts etc if accounts aren't editable.
- (em_account_prefs_construct): call above after setup.
-
- * mail-component.c (mc_quit_sync): if we have empty on exit days,
- check that. keep track of the last empty on exit time.
-
- * em-mailer-prefs.c (emmp_empty_trash_init): init the trash stuff
- here.
- (em_mailer_prefs_apply): save empty trash on exit frequency.
-
-2004-03-16 Not Zed <NotZed@Ximian.com>
-
- * mail-account-gui.c (mail_account_gui_auto_detect_extra_conf):
- check extra conf items are writable.
- (mail_account_gui_build_extra_conf): same.
- (setup_service): add gui arg, and do above for auth and ssl args.
-
-2004-03-16 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #55358.
-
- * em-folder-tree.c (emft_expand_node): Changed to be the callback
- function for em_folder_tree_model_expand_foreach().
- (emft_maybe_expand_row): Renamed from emft_loading_row_cb(). We
- now handle both "loading-row" an "loaded-row" signals. Also
- updated for slight change in key generation.
- (em_folder_tree_new_with_model): Connect to the "loaded-row"
- signal.
- (emft_update_model_expanded_state): Updated for slight change in
- key generation.
-
- * em-folder-tree-model.c (em_folder_tree_model_add_store): Emit
- the "loaded-row" signal for the newly added store.
- (em_folder_tree_model_set_folder_info): Emit "loaded-row" for the
- row we've just set the info on (but only after we've added a child
- node if there is one, so the signal handler can expand the newly
- added row if appropriate).
- (em_folder_tree_model_class_init): Setup the "loaded-row" signal.
- (em_folder_tree_model_finalize): The tree-state is now an xml file
- and not a binary file, so change the expanded free func.
- (em_folder_tree_model_load_state): Load the expand-state xml
- file. If one doesn't exist, setup some defaults.
- (em_folder_tree_model_get_expanded): Scan the XML tree for the
- node.
- (em_folder_tree_model_set_expanded): Same.
- (em_folder_tree_model_save_expanded): Save the expand-state xml
- tree to disk.
- (em_folder_tree_model_expand_foreach): New function to iterate
- over all xml nodes and call the callback if the expand state is
- "true".
-
-2004-03-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c (impl_requestCreateItem): Don't focus the
- name_entry widget here.
-
- * em-folder-selector.c (em_folder_selector_create_new): Focus the
- name_entry widget here rather than in mail-component.c
-
- * em-folder-tree.c (emft_drop_async_desc): New function to return
- a description of the async drop operation. Fixes bug #54808.
-
-2004-03-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-utils.c (reply_to_message): If the mail_get_message() async
- op fails, it will still call us with a NULL message to check for
- that. Fixes bug #55612.
- (post_reply_to_message): Same.
-
- * em-folder-tree.c (emft_copy_folders__copy): Use
- camel_store_rename_folder() when appropriate (m->tostore ==
- m->fromstore && m->delete)
-
-2004-03-15 Not Zed <NotZed@Ximian.com>
-
- * em-format.c (em_format_format_error): make this a varags
- function, which then calls the virtual method to do the work.
- (emf_multipart_appledouble, emf_multipart_mixed)
- (emf_multipart_alternative, emf_multipart_related)
- (emf_message_rfc822): print an error to explain why you're getting
- source content displayed.
- (em_format_format_secure): make this a function. and if we're
- done formatting a secure part, and we dont have a parent anymore,
- null out the validity. See #55541.
-
-2004-03-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-browser.c (emfb_search_search_activated): No-op if
- emfv->folder is NULL (this means we are looking at a store folder?
- or else the folder hasn't loaded yet). Fixes bug #55293.
-
-2004-03-11 Radek Doulik <rodo@ximian.com>
-
- * mail-ops.c: remove junk learning thread, it's handled in
- camel-folder.c:folder_changed now
-
- * em-folder-view.c (emfv_popup_mark_junk): use
- em_folder_view_mark_selected, set junk, junk-learn and seen flags
- (emfv_popup_mark_nojunk): similar, reset junk, set junk-learn flags
-
-2004-03-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_mail): Removed. No longer in use (hasn't
- been since before 1.2).
- (send_queue_send): Before enetring the main send loop, create a
- temporary uid array containing ONLY the messages we will send
- (ie. not any that have been marked deleted) so that we can more
- accurately report the number of messages total that we are
- sending. Also continue sending even if we encounter an exeption in
- mail_send_message() (unless, of course, it is a
- user-cancel). Merge any exceptions we get into the master
- exception variable and ALWAYS sync/expunge the queue folder.
-
-2004-03-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-browser.c (emfb_set_folder): Reverted signal blocking
- stuff. Doesn't work and is unneeded with the proper fix.
-
- * em-format-html.c (efh_format_header): Fixed a bug where txt
- wasn't being properly initialised in all cases for Date
- headers. Also fixed the x-evolution-mailer code to simply use the
- ehader->value that was passed in.
- (efh_format_headers): Fixed to handle the special
- X-Evolution-Mailer header.
-
-2004-03-11 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c (emfb_set_folder): a really gross hack,
- disable all search handlers before setting the search and set hte
- search manually rather than going through the callbacks. Partial
- fix for #55267, and ugly as it is.
- (emfb_init): save the search signal id's.
- (emfb_set_folder): ugh, properly set the defaults if the settings
- haven't been stored on the folder, and properly move them upstream
- to the bonobo menus.
-
- * em-folder-tree-model.c (sort_cb): when we sort, handle not
- having the node in the tree. otherwise we always compare against
- "" which puts it at the head of the branch, rather than the tail.
- See #55428.
-
- * em-folder-tree.c (tree_drag_motion): make dnd look funny for
- joe. #55246.
-
- * mail-component.c: change stores hash to point to a structure, in
- which we maintain the vtrash and vjunk folders for the entirety of
- the session. memory use be damned i guess. #55417 and partially
- #55391.
-
-2004-03-11 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_format_header): pass the raw header in
- instead of name and value.
- (efh_format_headers): if we have specific headers to show, iterate
- over all headers and print out all matching ones, so duplicate
- headers are properly displayed. Related to #55298.
-
- * em-folder-selector.c (em_folder_selector_construct): dont set
- this to be modal. otherwise you can't click on error popups. duh.
-
-2004-03-08 Not Zed <NotZed@Ximian.com>
-
- * em-folder-selection-button.c
- (em_folder_selection_button_clicked): don't let the user select
- virtual/vtrash folders or non-selectable folders.
-
- * mail-component.c (impl_createControls): disable selection of
- non-select rows.
-
- * em-folder-selector.c (em_folder_selector_create_new): exclude
- folders with noinferiors set.
-
- * em-folder-tree.c (folder_tree_new): add folder tree arg, hook
- onto the selection funciton for the tree selection.
- (emft_select_func): selection override function. allow certain
- things to be excluded.
- (em_folder_tree_set_excluded): api to set what is excluded from
- the selectability.
- (emft_tree_row_activated): call emft_select_func check to see if
- this row is excluded before emitting an activated signal.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
- save folder info->flags in the tree store.
-
- * mail-folder-cache.c (create_folders): use tail recursion.
- (get_folders): tail recurse.
-
- * (*): Fixed for api changes in camel.
-
-2004-03-10 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #55298.
-
- * em-format-html.c (efh_format_header): Now takes a default txt
- argument (header value). For address/date headers, if this isn't
- set, default back to the old behaviour of looking it up.
- (efh_format_headers): If we are iterating thru the camel raw
- headers, always pas the header value as the txt argument,
- otherwise always pass NULL.
-
-2004-03-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html-display.c (efhd_xpkcs7mime_validity_clicked):
- Removed an unused variable left over from an old attempted fix.
-
- * em-folder-selector.c (emfs_response): Select the same folder in
- the create-folder dialog as is selected in the parent selector
- dialog. Fixes the rest of bug #53862.
-
- Partial fix for bug #53862.
-
- * em-folder-selector.c (emfs_response): Connect to the newly added
- "folder-added" signal and save a created_uri string so that we can
- be sure to only listen for the creation of the folder the user
- created in *our* create-folder dilog (and not from some other
- place).
-
- * em-folder-tree-model.c (folder_subscribed): Emit a new
- "folder-added" signal.
-
- * mail-session.c (request_password): Focus the entry widget. Fixes
- bug #55330.
-
-2004-03-10 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (pipe_to_sa_with_error): call
- camel_stream_close and close the fds[1]
- (pipe_to_sa_with_error): do not call close, camel_stream_close
- should be enough to be sure the fd was closed
-
-2004-03-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_create_folder): New async function to
- create a folder.
- (em_folder_tree_create_folder): Partly moved into
- emft_create_folder. Might be able to remove this code, but lewing
- might be using it in Connector or something? Need to ask him...
- (emft_popup_new_folder_response): Use emft_create_folder()
- instead.
-
-2004-03-08 Radek Doulik <rodo@ximian.com>
-
- * mail-ops.c (mail_filter_junk): new method, filter folder with
- FILTER_SOURCE_JUNKTEST type filter
-
- * em-folder-view.c: added Filter Junk command and junk icons to
- menus, added apply filters icon to popup menu
- (emfv_popup_filter_junk): new helper method, calls
- mail_filter_junk
-
-2004-03-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html-display.c (em_format_html_display_search): Don't
- set our parent window as the efhd, ehfd isn't even a widget.
-
- Fixes bug #54030
-
- * em-format-html-display.c (efhd_search_response): Reset the
- searching tokeniser on Cancel.
-
- * e-searching-tokenizer.c (e_searching_tokenizer_reset): New
- function to reset a search tokeniser.
-
-2004-03-05 Not Zed <NotZed@Ximian.com>
-
- ** See bug #55096.
-
- * importers/evolution-mbox-importer.c (process_item_fn): hack,
- unref when complete
-
- * importers/evolution-outlook-importer.c (outlook_importer_new):
- init status lock.
- (process_item_fn): hack, unref ourselves when we're complete. i
- think the shell leaks the ref.
-
-2004-03-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-view.c (emfv_popup): If event == NULL, don't try to
- use event->key.time
-
- * em-migrate.c (upgrade_vfolder_sources_1_4): New function to
- upgrade vfolder sources.
- (em_upgrade_xml_1_4): If the doc is vfolders.xml, upgrade the
- sources nodes.
-
-2004-03-03 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53738.
-
- * mail-ops.c (fetch_mail_fetch): if we've been cancelled, uncancel
- so syncing can work. and always sync the folder (with expunge if
- deleting).
-
- ** See bug #54924.
-
- * em-utils.c (em_utils_selection_set_urilist): Try to get the drop
- filename from the message subject, or folder name.
- (em_utils_empty_trash): kill warning.
-
- ** See bug #54121.
-
- * mail-component.c (impl_requestCreateItem)
- (emc_new_folder_response): Hack in a nastish implementation of
- create folder for the new menu.
- (impl__get_userCreatableItems): add 'new mail folder' to new
- button.
-
-2004-03-03 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
- if we have the folder opened already, and its the outbox, then use
- the total count instead of unread count. Bit of hack, but copies
- mail-folder-cache stuff.
-
- * mail-component.c (mc_add_store): renamed from
- mail_component_add_store, internal call. Added a done callback.
- (mc_add_local_store): renamed from mc_add_store, callback for
- local store.
- (mail_component_add_store): call mc_add_store to do the work.
- (mc_add_local_store_done): ugh, the target of all this shit - note
- all the default folders now they should be setup.
-
- * mail-folder-cache.c (mail_note_folder): clean up the logic a
- bit. was gonna do osmething else but it didn't work.
-
-2004-03-02 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (mail_send): if we're already sending, up the
- again count to tell it we need to re-send again.
- (receive_done): if we've been asked to run a send again while we
- were already running it, run it again to make sure we didn't miss
- any new messages. See bug #46839.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): update
- check_incoming_imap changes for merge conflicts.
- (settings_changed): i have no idea what these changes jeff did do,
- but check_incoming_imap is no longer needed, so i've deleted most
- of it.
-
-2004-02-27 Not Zed <NotZed@Ximian.com>
-
- * em-format.c (emf_multipart_encrypted, emf_multipart_signed): If
- validation fails, display as multipart/mixed rather than unkown
- attachment type, and make the error a little clearer that its an
- error. See #52939.
-
-2004-02-26 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (regen_list_regened): NOOP if the folder has
- changed.
-
- * mail-session.c (mail_session_check_junk_notify): remove
- check_incoming_imap test.
- (mail_session_init): "
-
- * evolution-mail.schemas.in.in: Remove check_incoming_imap option.
-
- * mail-config.glade: Remove check incoming imap checkbox.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): remove
- check_incoming_imap test.
- (em_mailer_prefs_apply): "
- (settings_changed): "
-
-2004-03-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_tree_button_press): s/||/&&/. Fixes a
- dumb bug I introduced yesterday.
-
-2004-03-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-selector.c (em_folder_selector_construct): Connect to
- the folder-activated signal.
- (folder_activated_cb): Call gtk_dialog_response() with
- GTK_RESPONSE_OK. Fixes bug #54793.
-
- * em-folder-tree.c (emft_tree_row_activated): New callback to emit
- the "folder-activated" signal which is needed to fix bug #54793.
- (emft_tree_button_press): Handle button1 double-clicks too (also
- for bug #54793).
- (emft_tree_button_press): On right-click, we also want to select
- the folder the user right-clicked on. Fixes bug #54772.
-
-2004-02-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Fixed some
- console warnings from my last commit.
-
- * em-folder-view.c (emfv_setting_notify): If
- gconf_entry_get_value() returns NULL, then it means the key was
- unset or something. Don't use g_return_if_fail() for that.
-
- First of the lockdown fixes...
-
- * em-composer-prefs.c (em_composer_prefs_construct): Same as
- below.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Respect
- locked-down keys by disabling their sensitivity to the user.
- (settings_changed): Don't re-enable check_incoming_imap if the key
- is locked.
-
-2004-02-26 Rodney Dawes <dobey@ximian.com>
-
- * em-format-html-display.c (efhd_attachment_button): Create the
- arrows in these widgets as GTK_SHADOW_NONE, since the default arrow
- type in GTK+ 2.x is flat triangle arrows, and shadow types are
- generally ignored for arrows anyway, and so we don't look ugly with
- themes that handle shadow types on arrows correctly
-
-2004-02-26 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #54352
-
- * em-message-browser.c (emmb_class_init): Set update_message_style
- to FALSE.
-
- * em-folder-view.c (emfv_setting_notify): Only update message
- display style if our subclass wants us to.
- (emfv_class_init): Set update_message_style to TRUE.
- (emfv_view_mode): Don't save the gconf key unless our class allows
- us to.
-
-2004-02-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-utils.c (em_utils_folder_name_from_uri): Make sure url->path
- is non-NULL before setting folder_name to url->path + 1. Could
- possibly fix bug #54853.
-
-2004-02-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html-display.c (efhd_attachment_button): Protect
- against using NULL pixbufs. Gets rid of a lot of console warning
- spewage on my system.
-
- * em-folder-view.c (emfv_list_key_press): Removed Delete/KP_Delete
- from here. Now handled via the bonobo-ui menu accels. Fixes bug #53504.
-
-2004-02-25 Radek Doulik <rodo@ximian.com>
-
- * mail-session.c (main_get_filter_driver): set seen flag for junk
- messages
-
- * em-folder-view.c (emfv_popup_mark_junk): do not set DELETED
-
-2004-02-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (construct): Removed Apply button. As
- discussed on IRC, UI doesn't feel we should have an Apply button
- here.
-
-2004-02-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (construct): Need to listen for changes to
- S/MIME options, the signature option menu, and any extra
- provider-specific config options. Fixes bug #54036.
-
- * em-folder-view.c (emfv_popup_mark_junk): Set the SEEN flag as
- well.
- (emfv_list_key_press): Removed the skip-to-next-message logic as
- this was already being handled in emfv_popup_delete(). Fixes bug
- #54471.
- (emfv_enable_menus): Re-enable MessageDelete here. Fixes bug
- #54770.
-
- * em-utils.c (em_utils_folder_is_drafts): Use the new
- camel_store_folder_uri_equal() function.
- (em_utils_folder_is_sent): Same.
-
-2004-02-23 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #54057
-
- * em-utils.c (em_utils_folder_is_sent): Use provider->url_equal()
- rather than camel_store_uri_cmp() since that function did not do
- anything close to what it claimed to do. Also use
- em_uri_to_camel() here on the account sent_folder_uri.
- (em_utils_folder_is_drafts): Same.
-
-2004-02-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-message-browser.c (emmb_list_message_selected): Protect
- against NULL uids.
- (emmb_set_message): Same.
-
- * em-format-quote.c (emfq_format_message): Print the headers when
- forwarding inline/quoted. Fixes bug #53916.
-
- * em-folder-tree.c (tree_drag_motion): We want UID_LISTs to drop
- with the MOVE action by default. Fixes a common complaint from
- IRC.
-
-2004-02-23 Not Zed <NotZed@Ximian.com>
-
- * em-format.c (emf_multipart_signed): check mps->protocol != NULL
- before dereferencing it. See #54406.
-
-2004-02-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-view.c (emfv_list_key_press): Delete key should always
- delete, never undelete (bug #53215). Also fixes a bug where
- uids->len was being accessed after uids had been free'd.
-
- Fix for bug #53997
-
- * em-folder-view.c (emfv_list_message_selected): Ref the emfv
- before spawning the async event.
- (emfv_list_done_message_selected): Check emfv->preview !=
- NULL. Also unref the emfv when done.
-
-2004-02-20 Dan Winship <danw@ximian.com>
-
- * mail-component.c (set_prop): Remove the debug message here.
-
-2004-02-20 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (mail_vfolder_add_uri): fix for vfolder-rule api
- changes.
-
- * mail-folder-cache.c (unset_folder_info, setup_folder)
- (rename_folders): switch the sense of the no select checks. TEST!
-
-2004-02-19 Chris Toshok <toshok@ximian.com>
-
- * em-format.c (emf_application_xpkcs7mime): wrap code with
- ENABLE_SMIME instead of HAVE_NSS.
- (emf_multipart_signed): same.
- (type_builtin_table): same.
-
-2004-02-19 Rodney Dawes <dobey@ximian.com>
-
- * em-folder-tree.c (emft_save_state): Revert previous change, doh
-
-2004-02-19 Rodney Dawes <dobey@ximian.com>
-
- * em-folder-tree.c (emft_save_state): Don't set the timeout id to 0
- and then immediately return FALSE, which tries to remove the timeout
-
-2004-02-19 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (get_receive_type):
- * mail-config.c (mail_config_get_account_by_source_url)
- (mail_config_get_account_by_transport_url):
- * mail-component.c (mail_component_load_store_by_uri):
- * mail-account-gui.c (mail_account_gui_setup)
- (mail_account_gui_save):
- * em-utils.c (em_utils_empty_trash, em_uri_from_camel):
- * em-folder-tree-model.c (account_changed):
- * em-folder-selector.c (em_folder_selector_get_selected_uri): fix
- camel provider api changes.
-
-2004-02-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-composer-prefs.c (sig_fill_list): Changed the name to not
- imply we are working with a GtkCList widget (since we are using a
- GtkTreeView).
-
- * em-folder-tree.c (emft_tree_button_press): Pass flags to
- em_popup_target_new_folder() instead of just an isstore arg.
- (emft_tree_button_press): Fake the fi flags for vTrash/vJunk so
- that em-popup.c can disable the delete flag for these.
-
- * em-popup.c (em_popup_target_new_folder): Instead of taking an
- isstore argument, take a flags argument so that our caller can
- give us hints about the selected folder/store. Also fixed a logic
- bug from my previous commit.
-
-2004-02-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_tree_button_press): Updated for em-popup
- API change (altho currently passes a dummy value).
-
- * em-popup.c (em_popup_target_new_folder): Check for vTrash/vJunk
- by checking the CAMEL_FOLDER_VIRTUAL info flags bit. (perhaps this
- flag should be renamed to SPECIAL? VIRTUAL might not have been a
- good name). Also changed to check flags & CAMEL_FOLDER_NOSELECT
- rather than checking the uri string for a noselect param.
-
- * mail-folder-cache.c (unset_folder_info): Instead of checking for
- ";noselect" in the uri, check for a CAMEL_FOLDER_NOSELECT flag on
- mfi->flags.
- (setup_folder): Copy the fi->flags to mfi->flags here.
- (rename_folders): Same.
- (setup_folder): Check fi->flags for CAMEL_FOLDER_NOSELECT here
- instead.
- (rename_folders): Same. Also gets rid of a FIXME.
-
-2004-02-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html-display.c (efhd_xpkcs7mime_validity_clicked):
- Revert change from yesterday.
- (efhd_xpkcs7mime_button): Use the icon from the table.
-
-2004-02-18 Not Zed <NotZed@Ximian.com>
-
- ** See bug #54492.
-
- * em-folder-tree.c (emft_popup_copy_folder_selected): check the
- store flags, not the fragment presence to find out if we use the
- fragment as the path.
-
-2004-02-17 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #54060 (except for the "don't let users copy/move
- messages to Outbox" bit).
-
- * em-folder-tree.c (emft_drop_target): Rearranged a little. We can
- check for special dest folders right away. Also added a check for
- the default local folders (Drafts/Inbox/Outbox/Sent) since we
- don't want to be able to move them anywhere else (copying is ok).
- (emft_popup_copy_folder_selected): Don't allow moving any of the
- default local folders to be consistant with drag&drop changes.
- (emft_popup_rename_folder): Don't allow the user to rename a
- default local folder.
- (emft_popup_delete_folder): Don't allow deletion of special local
- folders.
-
- * mail-component.c (mail_component_peek_local_store): New function
- to peek the local store.
-
-2004-02-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html-display.c (efhd_xpkcs7mime_validity_clicked):
- Display an alternate description based on the trust value if we
- have a trust to work with.
-
- * em-folder-browser.c (emfb_hide_deleted): Set the hide_deleted
- bool on EMFolderView.
-
- * em-folder-view.c (emfv_popup_delete): Fix Sarfraaz Ahmed's fix
- to only jump to the previous message if hide_deleted is
- set. Otherwise his fix gets extremely irritating.
- (emfv_list_key_press): Same.
-
-2004-02-17 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53914.
-
- * em-utils.c (guess_account): do some extra checks, message
- source, and source folder.
- (guess_account_folder): helper to guess account based on folder.
-
- ** See bug #54200.
-
- * em-popup.c (em_popup_target_new_select): add
- EM_POPUP_SELECT_FOLDER - to find out if we have a folder at
- all. Handle getting a NULL folder passed in.
-
- * em-folder-view.c (em_folder_view_get_popup_target): Added
- EM_FOLDER_VIEW_SELECT_FOLDER - to detect when we dont have a
- folder set on the emfolderview.
-
- * em-folder-browser.c (emfb_mark_all_read): if we don't have a
- folder, dont try and run.
- (emfb_enable_map[]): Disable a bunch of stuff we have no
- folder set.
-
- * importers/pine-importer.c (import_contact): fix for the
- weird-arsed e-contact list api. and fix a small memleak.
-
-2004-02-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_drop_folder): Make sure the drop-target
- folder doesn't already contain a folder named identical to the one
- we are dropping by using the new CAMEL_STORE_FOLDER_EXCL
- flag. Fixes bug #53810.
-
-2004-02-13 Radek Doulik <rodo@ximian.com>
-
- * evolution-mail.schemas.in.in: added defaults for composer
- width/height
-
-2004-02-13 Sarfraaz Ahmed <asarfraaz@novell.com>
-
- * em-folder-view.c (emfv_popup_delete): added the code to get
- the previous mail in a list, if get_next_mail fails. This is a
- fix for #54195
- (emfv_list_key_press): Same as above
-
-2004-02-13 Not Zed <NotZed@Ximian.com>
-
- * importers/netscape-importer.c: use mail-importer to import the
- mail tree, fix the account stuff to talk directly to mail config.
- Added cancel button. etc. This is completely untested apart from
- compiling with no warnings.
-
- * importers/mail-importer.c (import_mbox_import): dont re-use the
- exception for syncing.
-
- * importers/evolution-outlook-importer.c: major reworking. Some
- platform fixes, runs in another thread, simpler/cleaner main loop.
- This is completely untested apart from compiling with no warnings.
-
- * importers/evolution-mbox-importer.c (support_format_fn): we dont
- want to check the From_ line case insensitive!
- (create_control_fn): implement this weird api.
-
-2004-02-12 Not Zed <NotZed@Ximian.com>
-
- * importers/elm-importer.c: rewrote all importing stuff.
-
- * importers/mail-importer.c (mail_importer_import_folders_sync):
- split out into a recursive function & entry. Now handles mozilla
- format stuff with a flag.
- (import_mbox_import): made the cameloperation properly
- save/restore multiple registrations.
-
-2004-02-12 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (pipe_to_sa_with_error): use
- g_find_program_in_path to avoid fork in case program is not
- available
-
-2004-02-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c (mail_control_new): Disable the
- bonobo-ui-component statusbar when using the EMFolderBrowser
- outside of the mail component. This prevents the Connector
- component from having 2 status bars.
-
- * em-popup.c: #include <libgnomevfs/gnome-vfs-mime.h>
- (em_popup_create_menu): Wrap item->label with _() so
- that the strings get translated properly.
-
-2004-02-11 Christian Neumair <chris@gnome-de.org>
-
- * em-folder-tree-model.c (sort_cb): "On this Computer" -> "On This
- Computer".
-
- * mail-component.c (mc_setup_local_store): Ditto.
-
-2004-02-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html-print.c: Same.
-
- * em-junk-filter.c: #include <config.h>
-
- * em-popup.c: Add license & config.h
-
-2004-02-11 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (em_junk_sa_test_spamd): if spamc is not
- available, try /usr/sbin/spamc
-
-2004-02-10 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (em_junk_sa_test_spamd): try to check if system
- wide spamd has --local parameter set according to our setting
- (em_junk_sa_test_spamd): in case we were unable to start our own
- spamd, try to run it from /usr/sbin before giving up
-
-2004-02-11 Not Zed <NotZed@Ximian.com>
-
- * importers/mail-importer.c (mail_importer_import_folders_sync):
- call the right recursive function, oops.
-
- * importers/mail-importer.h: don't include camel-operation.h, but
- fix up the forward decl usage.
-
-2004-02-11 JP Rosevear <jpr@ximian.com>
-
- * importers/mail-importer.h: include camel-operation.h
-
-2004-02-11 Not Zed <NotZed@Ximian.com>
-
- * importers/pine-importer.c: Basically rewrote this, the import
- tasks run in another thread. It tells you more about what's going
- on, and its cancellable.
- (pine_store_settings): changed the meaning of the settings
- slightly, if set it means we've processed them already.
-
- * mail-component-factory.c (factory): hook in importer factory
- callback.
-
-2004-02-10 Not Zed <NotZed@Ximian.com>
-
- * importers/*-importer.c: removed module init, just provide a new
- method. Updates for api changes.
-
- * Makefile.am: link mail importers in directly.
-
- * mail-importer.c: changed to do stuff in-memory with linked
- stuff, moved to importers/.
-
- * importers/GNOME_Evolution_Mail_Importers.server.in.in: merge all
- importer .server info's here, point them all to the mailer
- factory. Removed the others.
-
- * importers/Makefile.am: remove Mailer.idl stuff. Move all
- importers to a single library.
-
-2004-02-09 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (tree_drag_data_delete): merged in code from
- em_folder_tree_model_drag_data_delete.
- (tree_drag_data_get): similar.
- (tree_drag_data_received): similar.
- (drag_text_uri_list): removed, use em_utils_selection_set_urilist
- in tree_drag_data_get instead.
- (em_folder_tree_enable_drag_and_drop): merged in
- em_folder_tree_model_set_drag_drop_types.
- (tree_drag_motion): merge in drop_possible, handle qualifiers, and
- return the right type.
- (em_folder_tree_model_row_drop_target): rename to
- emft_drop_target, and make private. Beefed up substantially,
- handles illogical drops, dropping on to special folders and
- properly handling vfolder uri's (at least within the same tree
- instance).
-
- * em-folder-tree-model.c: Moved all of the DND stuff to
- em-folder-tree, where it belongs, made it all static. Should
- allow for some sharing of code too.
-
- * em-format-quote.c (emfq_format_message): just print the \n after
- the credits in the same printf, rather than adding an else. Add a
- <br> too, otherwise it has no effect.
-
-2004-02-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html.c (efh_format_headers): Make private (only
- EMFormatHTMLQuote used it and that class is no longer in use).
- (efh_format_message): Updated for above change.
-
- * em-format-quote.c (emfq_format_message): Always write a \n after
- the credits line.
-
- * em-subscribe-editor.c (sub_folderinfo_get): Set the NO_VIRTUAL
- flag bit for get_folder_info(). Fixes bug #51887.
-
-2004-02-06 Radek Doulik <rodo@ximian.com>
-
- * em-folder-view.c (emfv_popup_mark_nojunk): move to the next
- message after mark not junk as well
-
- * em-junk-filter.c (em_junk_sa_test_spamd): split into
- spamassassin and spamd tests
- (em_junk_sa_is_available): test spamd only if spamd usage enabled
- (pipe_to_sa_with_error): extended pipe_to_sa, last added parametr
- specifies return value if an error occured
- (em_junk_sa_check_junk): don't use /bin/sh -c when running
- spamassassin, it's not needed and we need to avoid getting 126,127
- exit codes from the shell
- (em_junk_sa_check_junk): pass 0 rv_err to pipe_to_sa_with_error to
- avoid false positives in case someone removes/uninstalls SA while
- evolution runs
-
-2004-02-06 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53258.
-
- * em-format-html-display.c (efhd_find_handler): force any bonobo
- handler types to always be inline, even attachments.
-
- * em-format.c (em_format_is_inline): use handler flags for special
- cases, removing all hard-coded types.
-
- * em-format.h (EMFormatHandler): add a flags field, so far a flag
- to set default inline viewing of the content.
-
-2004-02-06 Not Zed <NotZed@Ximian.com>
-
- * em-folder-properties.c: include string.h to kill warning.
-
- ** See bug #53627.
-
- * em-folder-view.c (emfv_popup_mark_junk): changed to work like
- delete does, jumping to the next message if required, and marking
- things immediately, then queuing up the junk marking job if
- required.
-
- * mail-ops.c (mail_mark_junk): ugh, this stuff totally can't go
- accessing messagelist from another thread!!!! Changed so this
- code only does the junk reporting, not setting flags. UGH! It
- should be doing this implictly on the folder when you set the
- flags, or at least when you sync the folder!!! Changed ot use the
- queued thread.
-
- * message-list.c (find_next_undeleted): changed to find
- next-unhidden, i.e. junk as well as deleted, if we're in
- hide-deleted mode.
- (build_tree): always call find_next_undeleted if we have a cursor.
- (build_flat): same.
-
-2004-02-05 Rodney Dawes <dobey@ximian.com>
-
- * em-message-browser.c (emmb_list_message_selected): Grab focus on
- the HTML widget when we display
-
- Fixes #52942
-
-2004-02-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-message-browser.c (emmb_list_message_selected): Set the new
- title.
- (em_message_browser_window_new): Connect to the message_selected
- signal in the message-list widget. Fixes bug #52232.
-
- * em-folder-tree-model.c (em_folder_tree_model_row_drop_target):
- Now takes a GdkContext arg... will need this later when we want to
- re-enable dnd of vfolders.
-
- * em-folder-browser.c (emfb_set_folder): Always set the
- search_state, even if it is NULL (NULL means default/unset state).
-
- * em-folder-view.c (emfv_mail_next_flagged): Pass TRUE as
- wraparound (to both be consistant with prev_flagged and to fix bug
- #48681.
-
-2004-02-05 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (emft_copy_folders__copy): sync the from folder
- if we're going to delete it, otherwise we can't because its not
- empty. See #53815.
-
-2004-02-05 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree-model.c
- (em_folder_tree_model_drag_data_received): hmm, another well
- tested bit of code ... if you launch another thread you gotta copy
- the selection since it wont hang around until we're done with it.
- So copy/parse the selection data into appropriate structures.
- (drop_folder): just take the async message as an argument, rather
- than copying half of it to the stack.
- (drop_text_uri_list, drop_uid_list): replace most args with the
- thread message.
- (drop_message_rfc822): removed, now trivial.
- (emftm_drag_data_received_async__drop): change for changed args,
- and fix a memleak.
- (emftm_drag_data_received_async__free): fixed for changed
- structure.
-
- * em-folder-tree.c (em_folder_tree_create_folder): call abort
- before we unref, aid debugging if we hit it.
-
- * mail-vfolder.c (uri_is_spethal): check for vfolder/vtrash
- folders. Based on name check and store options.
-
-2004-02-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_row_drop_target):
- Don't allow dropping into a vfolder (store). Fixes bug #53757.
-
-2004-02-04 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53683.
-
- * mail-ops.c (mail_sync_store): new async op to call
- CamelStore::sync.
-
- * mail-component.c (impl_requestQuit): implement, check to see if
- we can quit, or have open or unsent messages (and are in online
- mode).
- (impl_quit): implement. Trigger off a sync of all open stores,
- and return FALSE until its done.
- (impl_upgradeFromVersion): fixed the signature to match the idl,
- killed that warning at last.
-
- ** See bug #53832.
-
- * em-folder-browser.c (emfb_folder_properties): only show this if
- we have a uri set. Strictly, the menu item shouldn't be
- activated.
-
- ** See bug #53131.
-
- * em-folder-browser.c (em_folder_browser_show_preview): copy the
- message list's cursor_uid before calling set_message, since it can
- get freed during setting the message.
-
-2004-02-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (tree_drag_data_received): Modified
- slightly. The model now calls gtk_drag_finish() for us when it is
- done.
-
- * em-folder-tree-model.c
- (em_folder_tree_model_drag_data_received): Make this perform camel
- operations in another thread so we don't block.
- (em_folder_tree_model_drag_data_get): Updated args to be
- consistant with drag_data_received.
-
-2004-02-03 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c: handle the sa prefs here, have own gconf
- client with sa dir added
-
- * mail-session.c: removed sa prefs
-
-2004-02-02 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #52941
-
- * em-message-browser.c (em_message_browser_window_new): Set window
- size based on previous size; load from gconf if necessary.
- (window_size_allocate): Save window size changes.
-
-2004-02-02 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53549.
-
- * em-folder-selector.c: Fix handling a parent path of "/".
-
- * mail-ops.c (mark_junk_mark): removed the really innacurate cut and
- paste comment. This has nothing to do with filter_folder.
-
- ** See bug #52994.
-
- * em-folder-properties.c (em_folder_properties_show): redirect
- vFolder uri's to the vFolder editor.
-
- ** See bug #53502.
-
- * em-folder-browser.c (emfb_folder_properties): implement.
-
- * em-folder-tree.c (emft_popup_properties): fixed for change
- below.
-
- * em-folder-properties.[ch]: Moved the folder properties window
- from em-folder-tree.c to its own file.
-
-2004-02-02 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53559.
-
- * em-folder-tree.c (folder_tree_new): set CAN_FOCUS flag on the
- folder tree content widget.
-
- * em-folder-selector.c (em_folder_selector_construct): Don't wrap
- the folder tree in a scrolled window. Its already in one ????.
- (em_folder_selector_construct): dont set can_focus on the folder
- tree.
-
-2004-02-01 Bill Zhu <bill.zhu@sun.com>
-
- Fixes for bug #53530
-
- * em-utils.c (em_utils_redirect_message): Removed the duplicate
- adding of attachments
-
-2004-01-30 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes for bug #53348
-
- * mail-account-gui.c (mail_account_gui_save): Only add the new
- store to the mail-component if the mail-component doesn't already
- know about it (ie. only if we are adding a new account).
-
- * em-folder-tree-model.c (em_folder_tree_model_add_store): Hash
- our store-info based on account here.
- (em_folder_tree_model_init): Listen for
- account_changed/account_removed signals.
- (em_folder_tree_model_finalize): Disconnect above handlers.
- (account_changed): Tear down the account store node and replace it
- with the new store (assuming it belongs in the tree after the
- changes).
- (account_removed): Remove the account store from the tree.
-
-2004-01-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_tree_row_expanded): Get recursive folder
- listing (needed or folders that have as-of-yet-unloaded-subfolders
- that contain unread mail will not be bolded). Fixes bug #51045.
-
- Fix for bug #53195.
-
- * em-folder-browser.c (emfb_set_folder): Restore search_state.
- (emfb_search_search_activated): Save search_state.
-
-2004-01-30 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53549, partial fix.
-
- * em-folder-selector.c (emfs_create_name_activate): only emit the
- ok response if the ok button would be active (i.e. entered a valid
- path).
-
- ** See bug #52992.
-
- * message-list.c (message_list_hide_clear): save the hide state
- after its been cleared, so any popup windows inherit it.
- (message_list_hide_uids): same.
-
- ** See bug #53123.
-
- * em-folder-tree-model.c (drop_folder): changed to take store and
- dest folder as arg, to handle the case of the parent folder being
- "" properly.
- (em_folder_tree_model_drag_data_received): special case dropping a
- folder, and don't allow dropping to "" for any other types.
-
-2004-01-30 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53558 (plus other fixes/cleanups)
-
- * em-format.c (emf_format_secure): default implementation, handle
- output of inner part, but dont output any sign/encrypt info.
- (emf_multipart_signed, emf_multipart_encrypted): replaced with
- implementations from em-format-html.c, which now call
- em_format_format_secure to output guts.
- (emf_class_init): hook-up virtual method format_secure.
-
- * em-format.[ch]: add a virtual method for outputing secured
- parts. Moved all validity stuff from em-format-html.[ch] to here.
-
- * mail-component.c (impl_createControls): set the session
- interactive too.
-
- * em-format-html-display.c: make smime stuff dependent on
- HAVE_NSS.
- (efhd_multipart_signed, efhd_application_xpkcs7mime): removed, now
- handled by root class.
- (efhd_output_secure): renamed to efhd_format_secure, and use
- EMFormat::format_secure to kick off.
- (efhd_class_init): setup format_secure virtual method.
-
- * em-format-html.c (efh_multipart_encrypted): We need to handle
- this here so we can properly keep track of the ciphervalidity
- stuff. Also do it directly using the context, not
- multipartencrypted part.
- (efh_multipart_signed): with unsupported signature format, format
- as multipart/mixed, not as an attachment.
- (efh_multipart_signed): make the smime stuff optional.
- (efh_multipart_signed, efh_multipart_encrypted): Moved to
- em-format.c.
- (efh_application_xpkcs7mime): moved to em-format.c
- (efh_output_secure): renamed to efh_format_secure, linked into
- virtual method. call parent class to do the validation foo then
- output the info if needed.
- (efh_format_message): fixed access to validity stuff to parent
- object.
- (efh_class_init): hook up format_secure virtual method.
- (*): removed some now-unused headers.
-
-2004-01-29 Nicel KM <mnicel@novell.com>
-
- * mail-component.c: removed CAMEL_PROVIDER_IS_EXTERNAL check
- * mail-account-gui.c: likewise
- * mail-offline-handler.c: likewise
-
-2004-01-29 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_attachment_button): check the
- snooped type for the icon/etc.
- (efhd_format_attachment): save the snooped type in the
- attach_puri.
-
- * em-format-html.c (efh_text_plain): If we had a snooped type, use
- that as the base type, rather than octet-stream, which will cause
- an attachment in attachment loop.
-
- * em-format.c (em_format_part_as): save the current snooped mime
- type in a stack if we had any.
-
-2004-01-29 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53320 and probably others
-
- * message-list.c (message_list_set_folder): NULL out
- message_list->folder when we clear it so it isn't left for another
- free when we switch again.
-
-2004-01-29 Not Zed <NotZed@Ximian.com>
-
- ** See bug #52190.
-
- * message-list.c: Added folder/folder uri to the data stored for
- primary/secondary selection, uses a struct to store the data now.
- This is needed so when you cut/copy messages, and paste them, it
- doesn't end up 'pasting' the messages from the current folder, but
- from the one where the copy/cut took place.
- (clear_selection): helper to free data inside selection struct.
-
-2004-01-29 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53506.
-
- * mail-tools.c (mail_tools_folder_to_url): use a camelurl to do
- this properly, and handle fragment folder-paths.
-
- * em-composer-utils.c (em_utils_composer_send_cb): removed
- outbox_folder local, not necessary.
-
-2004-01-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_add_store): If the
- store is already in the model, remove it and then re-add it. Fixes
- bug #53422.
-
-2004-01-28 Jeffrey Stedfast <fejj@ximian.com>
-
- And thus completes the fixes for bug #52766.
-
- * em-folder-tree.c (tree_drag_drop): Don't call
- gtk_drag_get_data() manually here or we end up getting 2
- drag-data-received callbacks which is Not Good (tm).
-
- * em-folder-tree-model.c (drop_folder): Now takes a moved argument
- to specify whether or not the contents were moved (the move
- argument is just a hint).
- (drop_uid_list): Same.
- (em_folder_tree_model_drag_data_received): Updated for the above
- api changes.
-
-2004-01-28 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53179
-
- * mail-tools.c (mail_tool_get_local_movemail_path): Fix the
- movemail path.
-
- * mail-component.c (load_accounts): hack alert!
- * mail-send-recv.c (get_receive_type): hack alert! hardcode mbox:
- to be a movemail source.
-
-2004-01-28 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (setup_send_data): ref folder from
- mail_component_get_folder.
-
- * mail-ops.c (fetch_mail_fetch): ref the folder we get from
- mail_component_get_folder since it doesn't ref it.
-
-2004-01-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (cp): Removed unneeded debug printfs.
-
- * em-folder-tree.c (tree_drag_data_received): Use
- gtk_tree_view_get_dest_row_at_pos() instead of
- gtk_tree_view_get_path_at_pos() since this is what Nautilus
- uses. Unfortunately, it still gives us back the wrong GtkTreePath
- so it looks to me like Gtk+ is borked. Apparently you need the
- latest and greatest gtk+-2.3.x cvs snapshot for this to work.
-
- * em-migrate.c (em_migrate_imap_caches_1_4): Copy the imap cache
- into the right place. Duh.
-
-2004-01-27 Not Zed <NotZed@Ximian.com>
-
- ** See bug #53084 and others.
-
- * em-migrate.c (em_migrate): remove the vfolder_revert hack.
-
- * em-composer-utils.c (ask_confirm_for_only_bcc): removed unused
- vars.
-
- * mail-tools.c (mail_tool_get_local_inbox): removed, handled by
- mail_component_get_folder now.
-
- * mail-component.c (mail_component_*): Changed the api slightly.
- Using NULL as the component argument automatically implies you
- want the default component.
- (em_uri_from_camel, em_uri_to_camel): moved to em-utils.[ch]. Ok
- so it isn't namespaced right ... *shrug*.
- (mail_component_get_local_inbox): removed.
- (mail_component_get_folder): single entry point for getting
- standard folders. This is MT-Safe.
- (mail_component_get_folder_uri): single entry point for getting
- standard folder uri's. This is MT-Safe.
- (add_store): removed, moved to mail_component_add_store.
- (mail_component_load_store_by_uri): call mail_component_add_store
- directly rather than copying its code.
- (default_*_folder*): Removed, use accessor methods instead, fixed
- all callers.
- (setup_local_store): renamed to mc_setup_local_store, use proper
- url encoding too. make run-once and thread-safe.
- (MailComponentPrivate): Added a lock.
- (mail_control_new): exported properly to kill warnings.
- (mail_component_init): dont setup_local_store or add accounts
- here.
- (impl_createControls): setup local store/accounts here.
- (mail_component_peek): dont setup vfolder storage here.
- (mc_startup): internal function to startup stuff needed for gui
- operation.
- (setup_search_context): make run-once.
- (mail_component_peek_search_context): call setup_search_context
- incase it isn't setup yet.
- (impl_upgradeFromVersion): remove the local store setup hack.
-
-2004-01-27 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree-model.c (folder_renamed): fix the parent-finding
- logic.
-
-2004-01-23 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mail_component_init): add the offline handler
- interface to the component.
- (store_go_online, go_online): removed, handled by the offline
- handler.
-
- * mail-offline-handler.c (store_go_online): add the store to the
- tree model when we go online.
-
-2004-01-26 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes for bug #53251.
-
- * mail-account-gui.c (mail_account_gui_new): Convert the account
- drafts/sent folder uris to camel uris.
- (mail_account_gui_save): Convert drafts/sent camel uris into
- mailer uris when setting them on the account. Also, don't compare
- against file: anymore since those uris don't exist anymore.
-
- * em-migrate.c (em_upgrade_accounts_1_4): Update the drafts/sent
- folder uris.
-
-2004-01-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (tree_drag_begin): Set priv->drag_row.
-
-2004-01-26 Aaron Weber <aaron@ximian.com>
-
- * mail/default/C/Inbox: edited default message
-
-2004-01-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_copy_folders__copy): Use FOLDER_INFO_FAST
- bitflag here, since we don't care about unread counts when copying
- folders around.
- (emft_popup_delete_folders): Same.
- (emft_tree_row_expanded): Don't use FOLDER_INFO_FAST here.
-
-2004-01-26 Radek Doulik <rodo@ximian.com>
-
- * mail-session.c (main_get_filter_driver): translate DEMAND to
- INCOMING to get the right rules
-
- * mail-ops.c (mail_filter_on_demand): use FILTER_SOURCE_DEMAND
-
- Fixes #53266
-
-2004-01-25 Rodney Dawes <dobey@ximian.com>
-
- * em-folder-selector.c (em_folder_selector_create_new): Cast the
- name entry to a GtkWidget to avoid a compiler warning
- * em-folder-tree.c (emft_popup_new_folder): Grab focus on the name
- entry when we show the dialog (#53089)
-
- Fixes #53089
-
-2004-01-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_get_type): Removed
- the drag & drop interfaces, apparently these aren't good enough
- for what we need. Gotta implement this all the Hard Way (tm).
- (em_folder_tree_model_drag_data_received): Helper function called
- by the drag_data_received signal callback in em-folder-tree.c
- (em_folder_tree_model_row_drop_possible): Same idea.
- (em_folder_tree_model_row_drop_target): Again.
- (em_folder_tree_model_row_draggable): You get the idea...
- (em_folder_tree_model_drag_data_get): And again.
- (em_folder_tree_model_drag_data_delete): Same.
- (em_folder_tree_model_set_drag_drop_types): Setup the drag & drop
- types on the widget (since the target drag & drop types are now
- internal to the model code rathr than the tree code).
-
- * em-folder-tree.c (em_folder_tree_enable_drag_and_drop):
- Rewritten. Connect to all the drag & drop signals and implemnent
- them.
-
-2004-01-23 Larry Ewing <lewing@ximian.com>
-
- * mail-component-factory.c (factory): add the control id to the
- factory.
-
-2004-01-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (upgrade_xml_uris_1_4): Handle where the file: url
- is roken (ie, points to a location out of the evolution
- namespace).
-
-2004-01-23 Rodney Dawes <dobey@ximian.com>
-
- * em-folder-selector.c: Set the mnemonic widget for "Folder _name:"
-
- Fixes #53088
-
-2004-01-23 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c: use mail_session_get_sa_daemon_port
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): added
- check_incoming_imap
- (em_mailer_prefs_apply): ditto
- (settings_changed): set check_incoming_imap sensitivity by
- check_incoming state
-
- * mail-session.c: add sa_daemon_port
- (mail_session_init): init sa_daemon_port and check_junk_for_imap
- (mail_session_check_junk_notify): watch for sa_daemon_port and
- check_junk_for_imap
- (mail_session_get_sa_daemon_port): new wrapper
- (mail_session_set_sa_daemon_port): ditto
-
-2004-01-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-junk-filter.c (em_junk_sa_test_spamd): Oops, when calling
- spamassassin rather than spamc, we need to invoke /bin/sh -c
- since spamassassin is a shell script.
- (em_junk_sa_check_junk): Same.
-
- Fixes bug #53175.
-
- * em-junk-filter.c (pipe_to_sa): Don't need an argc (we don't even
- seem to use it??).
- (em_junk_sa_test_spamd_running): Don't invoke /bin/sh.
- (em_junk_sa_test_spamd): Simplified, also don't invoke /bin/sh.
- (em_junk_sa_check_junk): Cleaned up/simplified. Also don't invoke
- /bin/sh.
- (em_junk_sa_report_junk): Same.
- (em_junk_sa_report_notjunk): Same.
- (em_junk_sa_commit_reports): Same.
-
-2004-01-22 Gary Ekker <gekker@novell.com>
-
- ** See bug #53051
-
- * em-subscribe-editor.c (subscribe_set_store): fix typo in label
-
-2004-01-22 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (em_junk_sa_test_spamd): uncomment system wide
- spamd test
-
-2004-01-20 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c: lock report calls by em_junk_sa_report_lock
- mutex
-
-2004-01-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (em_migrate_1_4): Migrate the ETree expanded state
- files as well as the GalView files.
-
- * message-list.c: s/hide_save_state/save_hide_state/g and
- s/hide_load_state/load_hide_state/g to be more consistant with the
- other state saving function names.
-
-2004-01-21 Not Zed <NotZed@Ximian.com>
-
- * em-migrate.c (cp_r): use camel_mkdir(0777) rather than 0777 &
- st.st_mode which isn't set anyway.
- (cp): use simple 0666 for the mode open, and then chmod after.
- (cp): check the return code of close, not just fsync.
- (cp): dont use fd[0] and fd[1] when we really just want simple
- variables, rename to readfd and writefd.
-
- ** See bug #53159.
-
- * em-format.c (emf_message_rfc822): removed incorrect comment,
- this is not a fallback.
-
- * em-format-html.c (efh_text_plain): check the content-type of the
- containee object, not the holder.
-
- ** See bug #52979.
-
- * em-format-html.c: take out text/x-patch and put in text/* for a
- text/plain fallback handler instead.
-
- * em-format-html-display.c (efhd_find_handler): allow the bonobo
- handlers to override the builtin ones.
-
-2004-01-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (em_migrate_imap_caches_1_4): New function to
- migrate the imap cache.
- (em_migrate_1_4): Migrate the IMAP cache. Fixes bug #52985.
- (em_migrate_1_4): Copy over the searches.xml file. Fixes bug
- #52980.
-
- * mail-session.c (request_password): Changed the logic of the
- visibility of the passwd text so that we hid ethe passwd if the
- flags have the SECRET bit set.
-
-2004-01-20 Not Zed <NotZed@Ximian.com>
-
- ** See Bug #52817.
-
- * mail-session.c (request_password, do_get_pass, get_password):
- Fix for api changes to camel_session_get_password.
- (request_password): if we have a STATIC password, don't show any
- 'remember' checkbox.
-
-2004-01-20 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (EMFolderView): Make displayed_uid public.
-
- * em-folder-browser.c (em_folder_browser_show_preview): use
- em_folder_view_set_message rather than message_list_select_uid.
- When clearing, clear view->displayed_uid too.
-
-2004-01-20 Not Zed <NotZed@Ximian.com>
-
- ** See bug #52965.
-
- * mail-component.c (mail_component_init): removed an epfixme, it
- already is an object.
- (impl_upgradeFromVersion): call mail_note_store after running the
- upgrade for local folders.
-
- * em-migrate.c (em_migrate): revert the vfolders.xml after we've
- imported them.
-
- * mail-vfolder.c (vfolder_revert): new api to re-load the vfolders
- file.
-
- ** See bug #52885.
-
- * em-folder-browser.c (emfb_create_view_menus): unref the view
- instance/menu's rather than asserting, if they exist.
- (emfb_set_folder): call create_view_menu's rather than
- create_view_instance, so the view menu's are properly setup.
- (emfb_set_folder): call superclass first.
-
- ** See bug #53028.
-
- * message-list.c (on_selection_changed_cmd): emit the
- cursor_activated if more than 1 item is selected also.
-
-2004-01-20 Not Zed <NotZed@Ximian.com>
-
- ** See bug #52990.
-
- * mail-component.c (mail_component_init): re-enable auto-send-recv
- setup.
-
- ** See bug #52989.
-
- * message-list.c (hide_load_state): clear the hidden table if
- setup, before loading.
-
-2004-01-19 Radek Doulik <rodo@ximian.com>
-
- * mail-config.c (MAIL_CONFIG_RC_DIR): path to gtkhtml's rc file
- (config_write_style): use MAIL_CONFIG_RC_DIR
- (mail_config_init): ditto
-
- see http://bugzilla.ximian.com/show_bug.cgi?id=52969
-
-2004-01-19 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (add_vjunk_info, add_vtrash_info): removed this like
- i asked radek to ages ago, just call the parent directly.
- (add_vtrash_or_vjunk_info): renamed to something saner.
- add_special_info.
- (add_special_info): removed the 'unread count' parameter & return
- the added info.
-
- ** See bug #52854.
-
- * em-folder-tree.c (emft_tree_button_press): setup a FOLDER target
- for the popup menu.
-
- * em-popup.c (em_popup_target_free): implement free for
- TARGET_FOLDER, changed the target options somewhat.
- (em_popup_target_new_folder): implement folder selection target.
- Total Hack(tm) alert.
- (emp_standard_menu_factory): removed the stupid
- g_assert_if_not_reached() call.
-
- * message-list.c (message_list_destroy): NULL out the uid_nodemap
- when we destroy it.
-
-2004-01-19 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c (emfb_folder_expunge): get the toplevel
- widget here too, similar to bug 52161.
-
- ** See bug #52956
-
- * em-composer-prefs.c (sig_edit_cb): The
- fileentry_add_script_script widget is a GnomeFileEntry not a
- GtkEntry.
- (sig_add_script_response): use get_full_path rather than snooping
- the gtkentry. Also, don't close/quit the script dialogue on a bad
- name.
-
-2004-01-19 Not Zed <NotZed@Ximian.com>
-
- * em-migrate.c (em_upgrade_pop_uid_caches_1_4): if we can't open
- the pop3 cache dir, because it doesn't exist, it is not an error.
-
- ** See bug #52983.
-
- * mail-component.c (em_uri_from_camel, em_uri_to_camel): Handle
- vfolder: uri's properly. And make sure local uri's are properly
- encoded.
- (mail_component_get_folder_from_evomail_uri)
- (mail_component_evomail_uri_from_folder): removed, no longer used.
- (em_uri_from_camel): don't leak the camelurl.
- (d): disable debug
-
- * mail-vfolder.c (vfolder_load_storage): move the vfolder storage
- location to ~/.evolution/mail/vfolder rather than
- ~/.evolution/mail (this is currently unused anyway).
- (uri_is_ignore): short-circuit exit if we find a match.
- (mail_vfolder_add_uri): dont exit immediately if we have a vfolder
- uri, but don't add it to local/remove either.
- (mail_vfolder_delete_uri): remove any uri from the local/remote
- source list while we're at it.
-
-2004-01-19 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_on_url_cb): properly decode the mailto
- url rather than treating it as a simple string.
-
- * em-format-html.c (efh_format_address): if we have a name part,
- add it to the mailto part. As per rfc2368. So it isn't lost for
- clicking/etc.
-
-2004-01-16 JP Rosevear <jpr@ximian.com>
-
- * em-format-html-display.c (efhd_bonobo_object): pass in an
- exception to use
-
-2004-01-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format-html.c (efh_format_address): Dump a struct
- _camel_header_address to an html string.
- (efh_format_header): Use efh_format_address() and set the
- EM_FORMAT_HTML_HEADER_HTML bit on the flags so we don't re-convert
- our html string into html.
-
- * mail-vfolder.c (mail_vfolder_rename_uri): s/g_fre/g_free/
-
- * em-utils.c (guess_account): Change 'tmp' to not be const - fixes
- a compile warning.
- (em_utils_expunge_folder): Cast parent to a GtkWindow.
- (em_utils_empty_trash): Same.
-
- * em-migrate.c (cp): Oops, still need to stat() the src file so we
- can report what percentage of the file has been completed so far
- and also so we don't quit copying until we've copied the whole
- file.
-
- * message-list.c (message_list_set_folder): Move
- 'message_list->folder = folder;' out of the uri compare if-block
- and move it into the if-block that tests that folder != NULL.
- (regen_list_regen): Abort if the regen folder is not the same as
- the ml->folder.
-
-2004-01-16 Not Zed <NotZed@Ximian.com>
-
- * mail-folder-cache.c (storeinfo_find_folder_info): change this to
- check the store using the provider url_cmp and just lookup the
- folder name directly. folder_compare can't be used for uri's,
- this stuff was so broken, my fault :(
-
- ** See bug #52467.
-
- * em-folder-tree-model.c (sort_cb): handle null path (root?).
-
- * mail-vfolder.c (mail_vfolder_add_uri): map uri to euri before
- processing.
- (rule_changed): map uri to camel uri before looking up.
- (mail_vfolder_delete_uri): handle as euri internally.
- (mail_vfolder_rename_uri): "
-
- * mail-autofilter.c (vfolder_rule_from_message): map camel uri to
- euri before setting as vfolder source.
-
-2004-01-16 Not Zed <NotZed@Ximian.com>
-
- * default/C/Inbox:
- * default/C/Makefile.am:
- * default/Makefile.am: Startup files/folders.
-
- * em-migrate.c (emm_setup_initial): initial implementation of
- startup setup.
-
- ** See bug #52896.
-
- * em-format-html-display.c (efhd_html_button_press_event): do this
- based on get_object_at rather than get_point_at, so we get the
- offset properly.
-
-2004-01-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c: Make vfolder_store 'global'.
-
- * em-folder-tree-model.c (sort_cb): Fix bug #12600 by not sorting
- VFolders (ie. show them in the same order they appear in the
- editor).
-
- Fixes bug #52888
-
- * em-folder-tree-model.c (sort_cb): New sort function for the
- folder-tree.
- (em_folder_tree_model_init): Set the default sort func.
- (em_folder_tree_model_new): Set the default sort column.
-
- * em-folder-browser.c (emfb_list_built): Don't select the first
- unread mesg in the case where no mesg was previously
- selected. Fixes bug #52887 until we are able to add a user
- preference (for 2.2?).
-
- * em-migrate.c (cp): Only abort the copy if the dest folder both
- exists and contains data. Fixes bug #52880.
- (em_migrate): Abort if config.xmldb cannot be loaded. Fixes bug
- #52886.
-
-2004-01-15 Rodrigo Moya <rodrigo@ximian.com>
-
- * em-folder-browser.c: removed ForgetPasswords verb.
- (emfb_forget_passwords): removed.
-
-2004-01-15 Not Zed <NotZed@Ximian.com>
-
- ** See bug #52891.
-
- * em-format-html.c (em_format_html_get_type): protect against http
- cache not being able to be created.
-
- ** See bug #52878.
-
- * em-folder-view.c (emfv_finalise): unhook message_changed too.
- (emfv_set_folder): hook/unhook message_changed too.
- (emfv_message_changed): implement, proxy to folder_changed.
-
-2004-01-15 Not Zed <NotZed@Ximian.com>
-
- ** See bugs #51609 and #43515.
-
- * em-format-html-display.c (efhd_format_prefix): output flag for
- followup details above the message.
- (efhd_write_image): added to output icon data.
-
- * em-format-html.c (efh_format_do): call format_prefix before
- outputting the message in normal display mode.
-
- * em-format.c (emf_format_prefix): method called to format data
- before the first message output. Default impl == noop.
-
-2004-01-14 Jeremy Katz <katzj@redhat.com>
-
- * evolution-mail.schemas.in.in: Add a description for
- /apps/evolution/mail/junk/sa/local_only.
-
-2004-01-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c: Split out the remapping code into
- e-util/e-bconf-map.[c,h] to be shared among components.
-
-2004-01-13 Ross Burton <ross@burtonini.com>
-
- * em-folder-browser.c (emfb_empty_trash):
- Pass the parent window, fixing a crasher. Bug #52161.
-
-2004-01-14 Not Zed <NotZed@Ximian.com>
-
- ** See bug 51660.
-
- * em-format-html-quote.c (efhq_multipart_related): setup part_id
- appropriately.
-
- * em-format-html-display.c (efhd_output_secure): use part_id in
- classid, and add .signed to part_id for subpart.
- (efhd_bonobo_unknown): use part_id in classid.
- (efhd_format_attachment): use part_id in classid's.
-
- * em-format-html.c (efh_multipart_related)
- (emfh_multipart_related_check): setup part_id for each subpart.
- (efh_output_secure): as above, and use the part_id for the
- classid.
- (em_format_html_add_pobject): use part_id for a generated classid.
- (efh_text_plain): setup pseudo-parts into part_id.
-
- * em-format.c (emf_format_clone): setup the part_id base, folder +
- uid.
- (emf_finalise): free the part_id gstring.
- (emf_init): allocate the part_id gstring.
- (em_format_add_puri): build the cid from the part_id rather than
- an arbitrary number, so it is more persistent. Also save the
- part_id in the puri for multipart/related use.
- (emf_multipart_mixed, emf_multipart_alternative)
- (emf_multipart_appledouble, emf_multipart_encrypted)
- (emf_multipart_related, emf_multipart_signed): Set the part_id for
- each subpart.
- (emf_clear_puri_node): free part_id.
-
-2004-01-13 Not Zed <NotZed@Ximian.com>
-
- ** See bug 51660.
-
- * em-format-html-print.c (em_format_html_print_print): dont take
- message, get the message from the source formatter.
-
- * em-format.c (emf_format_clone): Added folder and uid parameters,
- changed camelmedium to a mimemessage.
-
- * em-format-html-display.c (efhd_attachment_button): check the
- icon image cache and if the image is there use it.
-
- * em-icon-stream.c (em_icon_stream_get_image): api to lookup
- finished images in cache.
- (em_icon_stream_new): add a cache key arg.
- (emis_sync_close): store the image in the cache once its
- completed.
-
-2004-01-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (em_migrate): Handle upgrading from 1.0.x and 1.2.x
- (code basically moved verbatim from e_config_upgrade).
-
- * mail-component.c (impl_upgradeFromVersion): Move all the
- major/minor/revision logic into em_migrate().
-
-2004-01-12 Meilof Veeningen <meilof@wanadoo.nl>
-
- * em-composer-utils.c: support for posting both to mail and to
- (multiple) folders
-
- * em-folder-browser.c: use em_utils_post_to_folder (works with NNTP)
-
- * em-folder-selection-button.[ch]: added multiple selection mode
-
- * em-folder-selector.[ch]: idem
-
- * em-folder-tree.[ch]: added multiple selection mode, no longer show
- disabled accounts
-
- * em-utils.c: various changes to allow posting to (multiple) folders
-
- * em-subscribe-editor.c: double-clicking a node in the editor updates
- it directly
-
- * mail-ops.c: for appending messages, set the "X-Mailer" header
-
-2004-01-12 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (em_junk_sa_check_junk): use
- mail_session_get_sa_use_daemon
-
- * mail-session.c: added SA prefs
- (mail_session_get_sa_local_only): new helper method
- (mail_session_set_sa_local_only): ditto
- (mail_session_get_sa_use_daemon): ditto
- (mail_session_set_sa_use_daemon): ditto
- (mail_session_check_junk_notify): fix the key comparison
- (mail_session_init): add gconf dir so that we get notified
-
- * mail-config.glade: added SA preferences
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): added more junk
- prefs
- (em_mailer_prefs_apply): ditto
-
- * em-junk-filter.c: use preferences
-
-2004-01-12 Larry Ewing <lewing@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: fix up the controls factory
- location.
-
- * mail-component.c (mail_control_new): add new interface for
- getting a mail control with a folder_uri property bag.
- (get_prop): pbag get method.
- (set_prop): pbag set method.
-
-2004-01-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (cp): Don't O_TRUNC the dest file, instead use
- O_EXCL and don't do anything if the dest file already exists (this
- way we don't re-migrate an mbox or corrupt any summary/ibex/meta
- files).
-
-2004-01-12 Not Zed <NotZed@Ximian.com>
-
- ** See bug 52737.
-
- * em-format-html.c (efh_text_plain): treat text/* as inline
- content from the made-up multipart.
-
-2004-01-09 Not Zed <NotZed@Ximian.com>
-
- ** See bug 52696.
-
- * mail-component.c (setup_search_context): move the searches to
- ~/.evolution/mail/searches.xml (migration?).
- (setup_search_context): fix a merge error,
- vfoldertypes.xml->searchtypes.xml since it includes the system
- searches now.
-
-2004-01-09 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (emft_popup_properties_got_folder): add total +
- unread counts to properties page.
-
- * em-utils.c (filter_editor_response):
- * mail-vfolder.c (vfolder_editor_response): change for rule editor
- changes, ACCEPT->OK.
-
-2004-01-09 Not Zed <NotZed@Ximian.com>
-
- * em-format.c (em_format_format_text): keep the windows charset
- filter around until we're done since if we set it up we reference
- its memory. Causes warnings and breaks message display.
-
- ** See bug #52637.
-
- * em-inline-filter.c (em_inline_filter_new): added a content-type
- paramter for the base content type.
- (em_inline_filter_finalize): free base content type.
- (emif_types[]): Added 'plain' parameter, indicates type needs
- plain parameters set on content type.
- (emif_add_part): inherit the full base type if it is set, for
- plain parts.
-
- * em-format-html.c (efh_text_plain): pass the part's content-type
- to the inline filter.
-
-2004-01-08 Not Zed <NotZed@Ximian.com>
-
- ** See bug #50786
-
- * GNOME_Evolution_Mail.server.in.in: Remove :: from startup wizard
- iid, and put the mail wizard into the right factory.
-
- * mail-component.c (impl_requestCreateItem, impl_handleURI):
- * em-folder-browser.c (emfb_mail_compose): check we have an
- account before trying to send mail.
-
-2004-01-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c (mail_component_init): Don't migrate stuff here
- anymore.
-
- * mail-ops.c (uid_cachename_hack): Removed a hack that checked for
- the really old uid cache location and make the uid cache live in a
- better location (why have mail/pop/<account> and
- mail/pop3/cache-<account>? simply put the cache file in
- mail/pop/<account>/uid-cache).
-
- * em-migrate.c (em_migrate_dir): When copying over mbox folders,
- don't abort if we fail to copy over a summary file (big
- whoop). Also, if indexing was turned on in the evolution 1.4
- version of the folder, turn on indexing for that folder in the
- migrated mbox folder as well.
- (em_migrate_pop_uid_caches): Migrate the pop3 uid-cache
- files. Fixes bug #52464.
- (em_migrate): Call em_migrate_pop_uid_caches().
-
- * em-format-html.c (efh_format_address): Removed.
- (efh_format_header): Handle address formatting a little
- differently to address dwmw's complaints. Also now handles other
- headers such as Resent-* and Sender as well.
-
-2004-01-07 Radek Doulik <rodo@ximian.com>
-
- * em-message-browser.c (emmb_init): as below
-
- * em-folder-browser.c (emfb_init): always show vertical scrollbar,
- we do the same for message list and it avoids ugly flicker
-
-2004-01-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-message-browser.c (emmb_set_message): Protect against a NULL
- message-info. Afaik, this can only happen if the message has since
- been removed? Might be a larger problem here... Anyways, fixes the
- crash in bug #52297.
-
-2004-01-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree-model.c (folder_renamed_cb): Clone the
- CamelRenameInfo and ref the store before emitting the async event.
- (folder_deleted_cb): Same idea but for CamelFolderInfo's.
- (folder_created_cb): Here too.
- (folder_subscribed_cb): Same.
- (folder_unsubscribed_cb): And here.
- (folder_renamed): Split out from folder_rename_cb(), free the
- CamelRenameInfo and unref the store when done.
- (folder_unsubscribed): Same idea.
- (folder_subscribed): Same.
-
-2004-01-05 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c: add NULL at the end of argv for execvp (poited
- out by Frank Solensky, thanks)
-
-2004-01-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-browser.c (emfb_list_message_selected): Check that the
- folder isn't NULL (ie. no folder is selected). Fixes bug #52207.
-
- * message-list.c (message_list_set_folder): Remove the
- cursor-activated idle callback.
-
- * mail-send-recv.c (build_dialog): Set the send/recv dialog to
- non-modal. Fixes bug #50127.
-
- * em-folder-tree-model.c (folder_subscribed_cb): If we aren't in
- the main thread, proxy it over to the main thread.
- (folder_unsubscribed_cb): Same.
- (folder_created_cb): Here too.
- (folder_deleted_cb): And here.
- (folder_renamed_cb): Again here.
-
- * em-folder-view.c (emfv_set_folder_uri): Pass mail_thread_queued
- to mail_get_folder() instead of mail_thread_new so that we
- eliminate a race when switching folders in the UI.
-
-2004-01-05 Not Zed <NotZed@Ximian.com>
-
- ** See bug #50996.
-
- * em-format-html-display.c (efhd_find_handler): implement override
- for unknown types, try bonobo handlers.
- (efhd_bonobo_unknown): formathandler for bonobo objects.
-
- * em-format.c (em_format_find_handler): make virtual, rename to
- emf_find_handler.
-
-2004-01-04 ERDI Gergo <cactus@cactus.rulez.org>
-
- * em-folder-view.c (emfv_on_url_cb): Emit a hover-url signal when
- the user mouses over a URL, ...
- (emfv_hover_url_impl): ... and use BonoboUI to change the status
- bar message...
- (em_folder_view_set_statusbar): ... unless we are asked not to, ...
-
- * mail-component.c (impl_createControls): ... like in the case of
- the mail component, ...
- (view_hover_url_cb): ... that uses the ActivityHandler to do the
- same
-
- Add these together, and #127536 is neatly solved.
-
-2004-01-04 David Woodhouse <dwmw2@infradead.org>
-
- * em-format-html-display.c: Mail warning grammar typo fix.
-
-2003-12-22 David Moore <davmre@bellsouth.net>
-
- * em-popup.c (emp_part_popup_set_background): Implemented; sets an
- image attachment as the GNOME wallpaper.
-
- * em-utils.c (emu_save_part_done): Created a prototype at the top
- of the file.
- (em_utils_save_part_to_file): Added; save a message part to a
- specified file on disk.
-
-2003-12-18 Rodney Dawes <dobey@ximian.com>
-
- * em-message-browser.c (emmb_init): Merge in
- evolution-mail-message-display.xml first, since it is the parent UI
- XML, really fixes bug #49949
-
-2003-12-16 JP Rosevear <jpr@ximian.com>
-
- * em-format-html-display.c: #ifdef out certain code pieces if
- s/mime isn't supported
-
-2003-12-14 JP Rosevear <jpr@ximian.com>
-
- * em-folder-tree.c (emft_tree_row_collapsed): Fix erroneous
- function call
-
- Fixes #52120
-
-2003-12-12 Not Zed <NotZed@Ximian.com>
-
- * mail-config.c (config_write_style): put the style in .evolution.
-
- ** See bug #52023.
-
- * message-list.c (message_list_select_uid): noop if we've been
- destroyed (foldre == NULL).
-
- ** See bug #52108.
-
- * em-format.c (em_format_is_attachment): also recognise
- application/pkcs7-mime for mailers who like to make up their own
- standards.
-
- * em-format-html.c (type_builtin_table[]): *
- em-format-html-display.c (type_builtin_table[]): make recognise
- application/pkcs7-mime too.
-
-2003-12-11 Chris Toshok <toshok@ximian.com>
-
- * Makefile.am (INCLUDES): get the build moving again. add
- CERT_UI_CFLAGS here for the time being.
-
-2003-12-11 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #1717.
-
- * em-folder-browser.c (emfb_list_built): If we have a uid to
- select, select that instead of selecting the first unread.
- (emfb_set_folder): CamelObject::meta_get() actually returns a
- strdup'd buffer, so we need to free it. Get the last selected uid
- and set that up as the uid to select when the message-list
- finishes building.
- (emfb_list_message_selected): Save the selected uid.
- (emfb_init): Connect to the message-list's message_selected signal
- so that we can save selected state (don't want to do this in
- EMFolderView or MessageList because we don't want the state to be
- saved for the EMMessageBrowser).
-
-2003-12-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c: Shorten the namespace of some internal
- functions to just emft.
- (emft_popup_delete_rec): Don't delete the contents of a folder if
- it is a vFolder. Fixes bug #52029.
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): Use newv() here
- and pass an array of GTypes - makes it simpler to change the order
- of columns later and/or add new columns if we need to. Also makes
- the line shorter :-)
-
-2003-12-11 Grahame Bowland <grahame@angrygoats.net>
-
- * em-format-html.c (efh_format_header): display
- x-evolution-mailer pseudo header irrespective of
- xmailer_mask. This is now handled by a header
- configuration dialog.
-
- * mail-config.glade: add tab to mail configuration
- dialog to allow custom headers to be specified for
- display.
-
- * em-mailer-prefs.h: modify struct _EMMailerPrefs to
- add widgets for custom header tab. Add defines for custom
- header flags. Add struct EMMailerCustomHeader to describe
- custom headers, and add function
- em_mailer_custom_headers_from_xml to allow XML from gconf
- key to be parsed into this structure.
-
- * em-folder-view.c (emfv_setting_notify): catch changes to
- custom header gconf key and update mail view to correspond
-
- * em-mailer-prefs.c (em_mailer_prefs_apply): save custom
- headers to gconf
- (header_list_enabled_toggled): toggle clicked toggle column
- (add_header): add header to custom header list if valid
- (remove_header): remove selected custom header
- (is_valid_header): return true if passed header is valid,
- otherwise false
- (entry_header_changed): call add_header_update_sensitivity
- (em_mailer_prefs_construct): initialise header selection tab.
- Load gconf data for header selection dialog.
- (em_mailer_custom_header_to_xml): load a header structure
- from XML document structure
- (em_mailer_custom_header_from_xml): load a header
- structure from a string containing valid XML. if any failure,
- the header.name is set to NULL.
- (header_list_row_selected): call
- remove_header_update_sensitivity
- (remove_header_update_sensitivity): set the sensitivity of
- the remove button to FALSE if the list is empty or nothing
- is selected. Otherwise, set it to TRUE.
- (add_header_update_sensitivity): set the sensitivity of the
- the add button to FALSE if the entry box is empty, contains
- a duplicate header, or contains an invalid header. Otherwise,
- set it to TRUE.
-
- * evolution-mail.schemas.in.in: add mail/display/headers
-
-2003-12-10 Larry Ewing <lewing@ximian.com>
-
- * em-format-html.c: add text/x-patch as a plain type.
- (efh_text_enriched): add table around the enriched part so it
- matches html and text modes.
-
-2003-12-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (em_migrate_dir): Modified to simply copy mbox
- files from one place to another (and the summary files) rather
- than going thru camel so as to bypass the need for parsing MIME.
-
-2003-12-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (get_local_store): Fixed a leak.
-
- * mail-component.c (impl_upgradeFromVersion): Implemented.
-
- * em-folder-tree.c (em_folder_tree_set_selected): Add INFO_FAST
- here as we don't need it to get unread counts.
- (tree_row_expanded): Here too.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
- Check CAMEL_FOLDER_NOCHILDREN.
-
-2003-12-10 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #51045
-
- * mail-folder-cache.c (real_flush_updates): Update the unread
- count in the model if the folder got new mail.
-
- * em-folder-selection.c (em_select_folder): Updated.
-
- * em-folder-selection-button.c
- (em_folder_selection_button_clicked): Updated.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_unread_count):
- New function to update the unread count for a folder.
-
- * mail-component.c (mail_component_peek_tree_model): Don't ref the
- model. Also renamed s/get/peek/
-
-2003-12-10 Not Zed <NotZed@Ximian.com>
-
- * em-folder-tree.c (em_folder_tree_get_folder_info__got): check
- m->fi != NULL before dereferencing it.
-
-2003-12-10 Not Zed <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_multipart_signed):
- * em-format-html.c (efh_multipart_signed):
- * em-format.c (emf_multipart_signed): treat
- application/pkcs7-signature as application/x-pkcs-signature.
- Stupud non-rfc-compliant mailers from apple. Bug #51750.
-
- * em-folder-selection.c (em_select_folder): rewritten to get rid
- of hte old crap that should've been gotten rid of before. Bug
- #51602.
- (em_folder_selection_run_dialog_uri): removed.
- (em_folder_selection_run_dialog): removed. this file is gutted
- and should probably be removed.
-
- * em-folder-selector.h: use a POSITIVE value for the response
- value, gtk uses -ative ones. Bug #51752.
-
- * Makefile.am (INCLUDES): added smime/lib and smime/gui to
- includes.
-
- * em-folder-tree.c (emft_popup_rename_folder): removed unused 'why',
- why not?
-
- * em-format-html-display.c (efhd_xpkcs7mime_validity_clicked):
- setup a table of buttons to view any certs we have.
-
- * em-folder-browser.c (emfb_activate): separeate view_menu
- unreffing from view_instance. fixes a runtime warning.
-
- ** See bug #51718.
-
- * mail-component.c (em_uri_to_camel): handle an e-uri which has an
- account uid which isn't in user@host format.
-
-2003-12-09 Not Zed <NotZed@Ximian.com>
-
- ** See bug #51899.
-
- * em-folder-tree-model.c (em_folder_tree_model_set_folder_info):
- CAMEL_FOLDER_CHILDREN is only advisory, some servers don't give it
- to you.
-
-2003-12-06 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: Remove hard coded disable deprecated flags
-
-2003-12-05 Rodney Dawes <dobey@ximian.com>
-
- * em-folder-tree.c (render_display_name): Remove the extra || unread
- check in the conditional in the g_object_set () call
-
-2003-12-05 Rodney Dawes <dobey@ximian.com>
-
- Fixes bug #51482
-
- * em-folder-tree.c (render_display_name): Don't hardcode colors
- for the folder tree, instead use bold for unread, as in 1.4
-
-2003-12-05 Radek Doulik <rodo@ximian.com>
-
- * em-html-stream.c (emhs_sync_flush): use new gtk_html_flush
- method instead of forcing processing of all gtk events
-
-2003-12-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree-model.c (em_folder_tree_model_remove_folders):
- Make sure folder_path is non-NULL ("Loading..." nodes will have a
- NULL path). Fixes bug #51731.
-
-2003-12-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (empty_trash_empty): Get the proper local folders
- store uri (it's not file:/ anymore). Fixes bug #51618.
-
-2003-12-04 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #51605.
-
- * em-folder-selector.c (emfs_response): Handle creating a new
- folder (pop up a create-folder-selector dialog).
-
- * em-folder-tree.c (emft_popup_new_folder_response): Moved all the
- logic into em_folder_tree_create_folder().
- (em_folder_tree_create_folder): New function to create a folder.
-
-2003-12-04 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (pipe_to_sa): add new err_retval parameter,
- which specifies which value to return if something went wrong
- (like failed to exec, ...). update all calls by that. actual junk
- check has err_retval = 0 to avoid marking false spam - non-zero
- retval means junk.
-
- * em-folder-view.c: set junk toolbar buttons pixmaps
-
- * mail-session.c: monitor gconf key
- /apps/evolution/mail/junk/check_incoming and keep session junk
- flag uptodate
-
- * em-mailer-prefs.c (em_mailer_prefs_construct): added junk
- preferences
-
-2003-12-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (uri_to_evname): Updated to add use mail subdirs.
- (mail_config_uri_renamed): Updated cachenames[]
- (mail_config_folder_to_cachename): Fixed to use the correct path.
-
- * em-folder-browser.c (emfb_create_view_menus): Updated the
- galview path to point to the evo-1.5 location.
- (emfb_set_folder): Update the galview view_instance.
- (emfb_create_view_instance): Split out from
- emfb_create_view_menus()
- (emfb_create_view_menus): Reduced code, call
- emfb_create_view_instance().
-
- * em-folder-selector.c (emfs_create_name_activate): Emit the OK
- response, not the CREATE_NEW response. Also,
- g_signal_emit_by_name() does not take a GQuark detail argument, so
- don't pass one. Fixes bug #51661.
-
-2003-12-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-view.c (emfv_set_folder): Sync the folder before
- replacing it with the new folder.
-
- * em-folder-tree.c (em_folder_tree_set_selected): Need to prepend
- a "/" to path if the path is the url fragment. Also fixed to
- select the store node if path == "/".
- (emft_popup_rename_folder): Set oldpath and newpath to the proper
- values. Fixes bug #51656.
-
- * em-folder-selector.c (em_folder_selector_get_selected_uri):
- Fixed a FIXME by using the CamelProvider url flags to determine if
- the url used url->fragment or url->path as the folder path.
- (em_folder_selector_get_selected_path): Don't allow path strings
- to start with "//".
-
-2003-12-03 JP Rosevear <jpr@ximian.com>
-
- * em-folder-tree.c (em_folder_tree_destroy): remove the source
- before saving
-
-2003-12-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (em_folder_tree_save_state): Set the
- save_state_id to 0 or we will never get a chance to run again.
-
-2003-12-03 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-vfolder.c: Do not #include "evolution-shell-component.h".
-
- * Makefile.am (libevolution_mail_la_SOURCES): Don't compile
- mail-importer.[ch] for now.
-
- * mail-component-factory.c: Do not #include
- <evolution-shell-client.h>.
- * mail-config.c: Likewise.
-
- * mail-vfolder.h: Do not #include <evolution-storage.h> or
- <evolution-shell-component.h>.
-
- * mail.h: Do not #include <evolution-storage.h>.
-
- * mail-ops.h: Do not #include <evolution-storage.h>.
- (mail_scan_subfolders): Remove prototype.
- (mail_update_subfolders): Likewise.
-
-2003-12-03 JP Rosevear <jpr@ximian.com>
-
- * em-folder-tree.c (em_folder_tree_destroy): save the state
- immediately if there is a timeout set
- (em_folder_tree_save_state): be true GSourceFunc and just return
- FALSE to remove the source
-
-2003-12-03 Not Zed <NotZed@Ximian.com>
-
- * mail-autofilter.c (rule_match_thread): changed to setup the rule
- part properly, it could never have worked. Bug #51601.
-
- * em-popup.c (emp_uri_popup_address_add): implement.
-
- * em-folder-view.c (emfv_popup_add_sender): implement.
- (emfv_add_sender_addressbook): hook up to above func.
-
- * em-utils.c (em_utils_add_address): implementation to add an
- email address to the addressbook.
- (emu_add_address_cb): callback required for funny api. Bug
- #51321.
-
-2003-12-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree-model.c (drop_uid_list): Moved here.
- (drop_folder): Moved here.
- (import_message_rfc822): Moved here.
- (drop_message_rfc822): Moved here.
- (drop_text_uri_list): Moved here.
- (model_drag_data_received): Moved the logic from em-folder-tree.c
- into here.
- (model_row_drop_possible): Same.
- (model_row_draggable): Same.
- (drag_text_uri_list): Moved here.
- (model_drag_data_get): Moved logic here.
- (model_drag_data_delete): Moved logic here.
-
- * em-folder-tree.c (drag_data_get_cb): Pass the full_name to
- camel_store_get_folder() rather than the path.
- (drag_data_received_cb): Same.
- (drop_uid_list): Removed.
- (drop_folder): Removed.
- (import_message_rfc822): Removed.
- (drop_message_rfc822): Removed.
- (drop_text_uri_list): Removed.
- (drag_data_received_cb): Removed.
- (row_drop_possible_cb): Removed.
- (row_draggable_cb): Removed.
- (drag_text_uri_list): Removed.
- (drag_data_get_cb): Removed.
- (drag_data_delete_cb): Removed.
- (em_folder_tree_enable_drag_and_drop): Don't connect to any of the
- drag & drop signals, they don't exist anymore.
-
- * mail-component.c (impl_createControls): Enable drag-and-drop.
-
- * em-folder-tree.c (em_folder_tree_new_with_model): Connect to the
- loading row signal.
- (loading_row_cb): Expand the path if needed.
- (em_folder_tree_destroy): Disconnect from the loading-row signal.
- (em_folder_tree_enable_drag_and_drop): New function to enable
- drag-and-drop.
- (em_folder_tree_new): Remove drag-and-drop setup code.
-
- * em-folder-tree-model.c (em_folder_tree_model_class_init): Define
- the loading-row signal.
- (em_folder_tree_model_set_folder_info): emit the loading-row signal.
-
-2003-12-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (em_folder_tree_new): Fixed to pass the
- evolution dir into em_folder_tree_model_new().
- (model_save_state): Removed.
- (em_folder_tree_save_state): Moved all the saving logic into
- em_folder_tree_model_save_expanded().
-
- * em-folder-tree-model.c (em_folder_tree_model_new): Load the
- expanded state off disk.
- (em_folder_tree_model_save_expanded): New function to save
- expanded state.
- (em_folder_tree_model_get_expanded): new function to get if a node
- should be expanded.
- (em_folder_tree_model_set_expanded): new function to set the
- expanded state of a node.
-
- * mail-component.c (mail_component_init): Pass the evo dir to
- em_folder_tree_model_new() which now requires it.
-
-2003-12-02 Rodney Dawes <dobey@ximian.com>
-
- * Makefile.am: Version the schemas
- * evolution-mail.schemas: Removed
- * evolution-mail.schemas.in.in: Added
-
-2003-12-02 Not Zed <NotZed@Ximian.com>
-
- * mail-config-druid.c (mail_config_druid_new): moved the
- gtk_widget_show_all to before we add the pages, otherwise it can
- override per-page logic. Bug #50790.
-
- * message-list.c (message_list_create_extras): setup another image
- (followup completed) to flag status list.
- (states_pixmaps[]): added flag_for_followup_done.
- (ml_tree_value_at): return 0,1 or 2 for completed icon. also use
- the real ints, these shouldn't have been true/false. Bug #43514.
-
- * evolution-mail.schemas: Added empty_trash prompt key.
-
- * em-utils.c (em_utils_prompt_user): changed to take the gconf
- 'prompt again' key directly. Fixed callers.
- (em_utils_expunge_folder): prompt the user with an expunge
- specific message.
- (em_utils_empty_trash): have an empty-trash specific message for
- prompting confirm.
- (emu_confirm_expunge): removed, no longer needed. Bug #38613.
- (em_utils_expunge_folder): remove most line feeds, let the label
- wrap them.
- (em_utils_empty_trash): ditto.
-
- * em-subscribe-editor.c (sub_folder_subscribed): update the ui
- selection state after we're done. maybe we should listen on the
- model but this is easier. Bug #50861.
-
- * em-message-browser.c (emmb_activate): hook up our own verb list.
- (emmb_message_verbs[], emmb_close): implement the close verb.
- Bug #51558.
-
- * em-format-html-display.c (efhd_attachment_popup): duh, actually
- add the menu list we create. Bug #49902.
-
- * em-format.c (d): turn off debug, committed by accident.
-
-2003-12-01 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-mt.c (do_op_status): Use data->activity_id, not local
- activity_id.
-
-2003-12-01 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-mt.c (struct _mail_msg_priv): Remove member "activity".
- (mail_operation_status): Un-#if 0 the code.
-
- * mail-component.c (struct _MailComponentPrivate): New member
- activity_handler.
- (mail_component_init): Initialize.
- (impl_dispose): Unref.
- (mail_component_peek_activity_handler): New.
- (impl_createControls): Create an ETaskBar, attach it to the
- ActivityHandler, and return it to the caller as the statusbar
- control.
-
-2003-12-01 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c (impl_createControls): Pass a label for the
- status bar control for now.
-
-2003-12-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_signature_run_script): Use fcntl() to
- set FD_CLOEXEC on each fd rather than close()ing it. Apparently
- Linux's older pthread implementations use sockets and so this
- fouls threading up. GO LINUX! GO!
-
-2003-12-01 Rodney Dawes <dobey@ximian.com>
-
- * GNOME_Evlution_Mail.server.in.in:
- * em-account-prefs.c:
- * em-composer-prefs.c:
- * em-mailer-prefs.h:
- * mail-component-factory.c:
- * mail-config-factory.c:
- * mail-font-prefs.h:
- * importers/*.server.in.in:
- * importers/elm-importer.c:
- * importers/evolution-mbox-importer.c:
- * importers/evolution-outlook-importer.c:
- * importers/netscape-importer.c:
- * importers/pine-importer.c: Use BASE_VERSION for repo_ids and OAFIIDs
-
-2003-12-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (em_folder_tree_get_folder_info__got): Updated
- to call em_folder_tree_model_set_folder_info().
- (folder_subscribed_cb): Removed.
- (folder_unsubscribed_cb): Removed.
- (folder_created_cb): Removed.
- (folder_deleted_cb): Removed.
- (folder_renamed_cb): Removed.
-
- * em-folder-tree-model.c (em_folder_tree_store_set_folder_info):
- New function to replace tree_store_set_folder_info() which had
- been in em-folder-tree.c
- (em_folder_tree_model_remove_uri): Made private.
- (em_folder_tree_model_remove_store_info): Made private.
- (em_folder_tree_model_remove_folders): New function to replace
- remove_folders() from em-folder-tree.c
- (em_folder_tree_model_new): No longer takes any args.
-
- * em-folder-tree.c (em_folder_tree_new): Updated.
-
- * mail-component.c (add_store): Add the store to the model rather
- than the treeview.
- (impl_createControls): create a new treeview based on the
- already-instantiated model.
- (mail_component_init): Create a new tree model.
- (mail_component_remove_store): Remove the store from the model
- directly.
- (mail_component_get_tree_model): Updated.
-
- * em-folder-tree.c (folder_unsubscribed_cb): Call
- em_folder_tree_model_remove_folders() rather than the deprecated
- internal remove_folders() function.
- (folder_renamed_cb): Same.
- (em_folder_tree_remove_store): Removed.
- (em_folder_tree_add_store): Removed.
- (remove_folders): Removed.
-
-2003-12-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-composer-utils.c (composer_get_message): rfc2047 encode the
- Organization header value.
-
- * em-folder-tree.c (em_folder_tree_get_folder_info__got): Make
- sure our parent folder hasn't been unsubscribed or else we get a
- segfault here if it has.
-
-03-11-28 Dave Camp <dave@ximian.com>
-
- * em-folder-tree.c (render_pixbuf): Set the pixbuf renderer
- invisible for stores.
-
-2003-11-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_get_account_by_uid): New function.
-
- * em-folder-tree.c (tree_store_set_folder_info): Expand the tree
- node if the saved state tells us it was expanded the previous
- session.
- (em_folder_tree_load_state): Load the saved state.
- (em_folder_tree_add_store): Conditionally expand the store node.
- (em_folder_tree_new_with_model): Expand all the nodes that should
- be expanded.
-
-2003-12-01 Radek Doulik <rodo@ximian.com>
-
- * em-folder-tree.c (render_pixbuf): use CAMEL_VTRASH_NAME,
- CAMEL_VJUNK_NAME
-
-2003-11-28 Radek Doulik <rodo@ximian.com>
-
- * em-folder-tree.c (render_pixbuf): added junk icon to folder
- icons
-
-2003-12-01 Not Zed <NotZed@Ximian.com>
-
- * em-folder-browser.c (emfb_edit_cut, emfb_edit_copy)
- (emfb_edit_paste): override the em-folder-view impl, and handle
- the search bar properly. For #48746.
-
- * mail-security.glade: added some padding to the security details
- frames.
-
- * em-format-html-display.c (efhd_xpkcs7mime_validity_clicked):
- some cosmetic layout changes.
-
-2003-11-27 Charles Zhang <charles.zhang@sun.com>
-
- * mail-account-editor.c (construct): connect "changed" signal.
- (mail_account_editor_changed): change signal handler.
- Fixes bug #48998.
-
-2003-11-30 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-offline-handler.c: Remove all the syncFolder stuff since
- it's not in the Component interface anymore.
-
- * mail-mt.c: Remove declaration for global_shell_client. #if 0
- all the code that uses that.
-
- * mail-component-factory.c: Remove declaration for
- global_shell_client.
-
- * mail-vfolder.c: Remove declaration for global_shell_client.
-
-2003-11-26 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: turn on deprecated Gtk stuff
-
-2003-11-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (em_folder_tree_save_state): New function to
- save tree expanded state.
- (em_folder_tree_queue_save_state): New function to queue saving of
- the expanded state.
- (em_folder_tree_construct): Connect to the row-collapsed signal.
- (tree_row_collapsed): Queue a save-state.
- (tree_row_expanded): Queue a save state.
- (em_folder_tree_get_folder_info__got): Queue a save-state.
-
-2003-11-25 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (em_folder_view_print): set session on print
- formatter for signatures to work.
-
- * em-message-browser.c (emmb_destroy): kill warning.
-
- * em-format-html.c (efh_output_secure): same as
- efhd_output_secure, output the security bar, but for
- printing/plain html.
- (efh_application_xpkcs7mime): use output_secure.
- (em_format_html_multipart_signed_sign): removed, output_secure
- does what this did.
-
- * em-format-html-display.c (smime_sign_table,
- smime_encrypt_table): Added a short description for the mail
- display.
- (efhd_xpkcs7mime_button): only good/bad signature at this point,
- if only encrypted, then display 'bad' icon.
- (efhd_output_secure): output the security bar/button and handle
- multi-level enveloping properly.
- (efhd_application_xpkcs7mime): just call output_secure to do
- the security bar.
- (efhd_multipart_signed): same.
- (efhd_signature_button): removed, no longer used.
- (efhd_signature_check): removed, no longer used.
-
-2003-11-24 Radek Doulik <rodo@ximian.com>
-
- * em-format-html.c (efh_text_plain): use new colors
- (efh_text_html): ditto
-
- * em-format-html-display.c (efhd_gtkhtml_realise): set new colors
- according to style
-
- * em-format-html.c (efh_init): init new colors
-
- * em-format-html.h: added frame and content colors
-
- * em-format.c (emf_multipart_mixed): do not use horizonal rule,
- attachment content is now inside simple frame
-
- * em-format-html.c (efh_text_plain): add 6 points around text
- plain content and frame it
- (efh_text_html): frame text/html
- (efh_format_do): fix body tag, set bgcolor
- (em_format_html_format_headers): do not put headers into own
- table, content body is framed now instead
- (efh_format_message): update for headers/body changes
-
- * em-format-html-display.c (efhd_format_attachment): put
- additional vertical space around attachment button
-
-2003-11-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree-model.c (model_drag_data_received)
- (model_row_drop_possible, model_row_draggable)
- (model_drag_data_get, model_drag_data_delete): Swap the retval
- varargs value to the last argument instead of the first.
-
-2003-11-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_uri_deleted): Removed call to
- mail_tool_delete_meta_data(). Fixes bug #51236.
-
- * mail-component.c (impl_handleURI): Implemented.
- (mail_component_class_init): Overload the handleURI method.
-
-2003-11-20 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #51012.
-
- * em-folder-tree.c (emft_popup_rename_folder): Fixed a FIXME to
- not use the OS-specific g_path_*() stuff.
- (em_folder_tree_set_selected): For the case where the tree has
- already loaded enough subfolders to include the path we need to
- select, exopand the nodes to that path as well. For the case that
- the tree hasn't loaded enough of the folder nodes, load them and
- then have the node selected/expanded to.
-
-2003-11-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-selector.c (emfs_create_name_activate): Emit the
- response signal with the RESPONSE_NEW value.
- (emfs_create_name_changed): Sanity check the entry text and set OK
- sensitivity.
- (folder_selected_cb): If there is an entry widget, then call
- name_changed() to decide sensitivity, else set OK to be sensitive.
-
- * em-utils.c (em_utils_selection_set_urilist): Same.
-
- * em-format-html-display.c (efhd_drag_data_get): Same as below.
-
- * em-folder-tree.c (drag_text_uri_list): Terminate each url of a
- text/uri-list with a \r\n.
-
-2003-11-19 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Add an
- "evolution:uri_schemas" attribute.
-
-2003-11-19 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (em_uri_to_camel): if we're setting the
- fragment, strip leading /'s.
-
- * mail-tools.c (mail_tool_get_meta_data)
- (mail_tool_delete_meta_data, meta_data_key): old stuff killed.
- (mail_tool_uri_to_folder): handle email: uri's specially. this is
- a bit of a hack, the filter callbacks should manage this itself
- since filters are the only bits which use those uri's.
-
-2003-11-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (em_migrate_dir): Don't leak the message objects.
-
- * em-folder-tree.c (em_copy_folders): Execute asynchronously by
- queueing the copy in another thread.
- (em_copy_folders__copy): Moved the original logic here.
-
-2003-11-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (tree_row_expanded): Queue the
- camel_store_get_folder_info() call in another thread.
- (em_folder_tree_get_folder_info__got): Moved all the logic of
- tree_row_expanded here.
-
-2003-11-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (tree_row_expanded): Fixed to check fi->child
- as well (since mbox does it right).
- (emft_popup_new_folder_response): Fixed to subscribe to the
- correct folder.
- (emft_popup_delete_folders): Fixed to use the full_name rather
- than the path.
-
- * em-folder-selection-button.c (set_contents): Fixed to not
- include leading '/' in the folder name in the label.
-
- * em-folder-tree.c (emft_popup_new_folder_response): Implemented
- error reporting via gtk dialogs.
- (emft_popup_copy_folder_selected): Same.
-
-2003-11-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_popup_new_folder_response): Use a
- folder_name rather than a path as the name argument to
- camel_store_create_folder(), fixes creation of IMAP folders.
-
-2003-11-17 Not Zed <NotZed@Ximian.com>
-
- * em-folder-selection-button.c (set_contents): handle an
- unparsable url without crashing.
-
- * mail-tools.c (mail_tool_get_local_inbox): thin wrapper on
- mail_component_get_local_inbox.
-
- * mail-component.c (mail_component_get_local_inbox): helper to get
- the default local inbox.
-
- * mail-ops.c (fetch_mail_fetch): if we can't get the inbox, make
- sure we still unref the filter driver here by using hte same exit
- code. Fixes a crash.
-
-2003-11-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-tree.c (emft_popup_new_folder_response): We can't use
- a uri to do a lookup of a store-info on the store_hash, we have to
- get a CamelStore first.
- (row_draggable_cb): validate the iter before using it.
- (row_drop_possible_cb): Same.
- (drag_data_received_cb): Here too.
- (drag_data_get_cb): Same.
- (drag_data_delete_cb): Again here.
- (tree_store_set_folder_info): Recursively add nodes if fi->child
- is non-NULL rather than adding a dummy node.
- (folder_renamed_cb): Implemented.
-
-2003-11-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (set_stop): Removed most of the code. This is
- basically now a nop. Need to somehow get the uic and fix this.
-
- * folder-browser-factory.[c,h]: Removed.
-
- * mail-component.c (folder_selected_cb): Don't create a new view
- anymore, simply set the new folder uri on the folder browser. This
- makes the mailer use a lot less memory than in 1.x
- (view_control_activate_cb): Moved here from
- folder-browser-factory.c
- (impl_createControls): Connect to the activate signal on the view
- control.
-
-2003-11-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-selection.c (folder_selected_cb): Only set OK to
- sensitive if the selected node is not a store node.
-
- * em-folder-tree-model.c: Moved the store_hash and uri_hash from
- EMFolderTreePrivate into here instead.
-
- * em-folder-tree.c: Updated for above changes.
-
-2003-11-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-view.c (emfv_popup_move): Updated.
- (emfv_popup_copy): Updated.
-
- * em-folder-tree.c (emft_popup_copy): Updated.
- (emft_popup_move): Updated.
-
- * em-folder-selection.c (create_dialog): New convenience function
- to construct the dialog contents for all three public functions.
- (em_folder_selection_run_dialog): Now longer takes a caption arg.
- (em_folder_selection_run_dialog_uri): Same.
- (em_select_folder): Here too.
-
-2003-11-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c (mail_component_get_tree_model): Use
- em_folder_tree_get_model() since an emft is not a GtkTreeView.
-
- * em-folder-tree.c (em_folder_tree_get_model): New function to get
- the tree model.
-
-2003-11-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-selection.c: Rewritten to use EMFolderTRee.
-
- * mail-vfolder.c (vfolder_load_storage): Updated for function name
- changes in mail-component.c
-
- * mail-offline-handler.c: Updated for function name changes in
- mail-component.c
-
- * mail-account-gui.c (add_new_store): Fixed to not use EStorage.
- (mail_account_gui_save): Updated for function name changes.
-
- * em-account-prefs.c (account_delete_clicked): Updated for
- function name changes.
- (account_able_clicked): Same.
- (account_able_toggled): Same.
-
- * mail-component.c: Renamed mail_component_*storage*() functions
- to mail_component_*store*() since we are no longer dealing with
- storages, but instead with CamelStore's.
- (create_view_widget): If the user selects a store node, don't try
- to open it as a folder.
-
-2003-11-13 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c (impl_sendAndReceive): New, implementation for
- Evolution.Component.sendAndReceive.
- (mail_component_class_init): Install.
-
-2003-11-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (context_rule_removed): Modified to not use
- EStorage* functions. I don't even think it *needs* to remove the
- folder from the mail-component, the mail-component should just
- pick it up automagically via CamelStore events.
-
- * em-folder-tree.[c,h]: New folder-tree widget that replaces the
- shell's folder-tree widget.
-
- * em-folder-tree-model.[c,h]: New source files subclassing
- GtkTreeStore for handling the mess that is drag&drop.
-
- * em-folder-selection-button.c: Ported to use EMFolderTree.
-
- * em-folder-selection.c: Ported to use EMFolderTree.
-
- * em-folder-selector.c: Ported to use EMFolderTree.
-
- * mail-component.c: Ported to use EMFolderTree.
-
- * mail-offline-handler.c (storage_go_online): Updated to not pass
- a storage argument.
-
- * mail-folder-cache.c: Removed storage stuff.
-
- * mail-send-recv.c (receive_update_got_store): Don't do EStorage*
- stuff anymore.
-
-2003-11-13 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c (impl__get_userCreatableItems): New,
- implementation for the Component.userCreatableItems attribute.
- (impl_requestCreateItem): New, implementation for the
- Component.requestCreateItem() method.
- (mail_component_class_init): Install.
-
-2003-11-13 Radek Doulik <rodo@ximian.com>
-
- * em-junk-filter.c (em_junk_sa_is_available): new helper function,
- use it before any call to spamassassin, spamc and sa-learn
- (em_junk_sa_test_spamd): first test if spamassassin is available
- (em_junk_sa_test_spamd): rename em_junk_sa_spamd_tested to
- em_junk_sa_tested, always set em_junk_sa_tested
-
- * mail-folder-cache.c (folder_changed): don't call
- CAMEL_IS_VJUNK_FOLDER, it was added by mistake
-
-2003-11-13 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (em_format_html_add_pobject): use malloc0 for
- the pobject memory.
-
-2003-11-12 Not Zed <NotZed@Ximian.com>
-
- * mail-account-gui.c (smime_sign_key_select)
- (smime_encrypt_key_select, smime_encrypt_key_selected)
- (smime_sign_key_selected): implement the key selector popup using
- e-cert-selector.
-
-2003-11-11 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_application_xpkcs7mime): output icons of
- the status.
- (em_format_html_add_pobject): Changed to take a size specificier,
- return the pobject, and re-ordered args to be more consistent with
- puri stuff.
- (em_format_html_remove_pobject): handle the free callback if set.
-
- * em-format.c (emf_application_xpkcs7mime): moved this to
- em-format-html since it needs to do icon stuff.
-
- * mail-security.glade: new glade file for security related stuff.
-
- * mail-config.glade: removed the message security dialogue, it
- gets opened automatically by the config code :(
-
-2003-11-10 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Set an
- "evolution:component_alias" property with a value of "mail".
-
-2003-11-10 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (em_format_html_multipart_signed_sign): changed
- for cipher context api changes.
- * em-format.c (emf_multipart_signed): ditto.
-
-2003-11-07 Not Zed <NotZed@Ximian.com>
-
- * mail-config.glade: added security_information_dialog (probably
- temporarily in this file).
-
- * em-format.c (em_format_is_attachment): also treat pkcs7-mime as
- non-attachment.
- (emf_application_xpkcs7mime): no longer need to worry about
- scanning the part.
-
-2003-11-07 Dan Winship <danw@ximian.com>
-
- * message-list.c: Don't #include e-name-western.h, since the code
- that uses it is commented out, and we want to remove the local
- copy, but we don't want to make the mailer depend on the e-d-s
- copy if it's not even going to be using it.
-
-2003-11-07 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: build the marshall files right at the beginning
-
-2003-11-11 Not Zed <NotZed@Ximian.com>
-
- * mail-security.glade: new glade file for security related stuff.
-
- * mail-config.glade: removed the message security dialogue, it
- gets opened automatically by the config code :(
-
-2003-11-10 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Set an
- "evolution:component_alias" property with a value of "mail".
-
-2003-11-10 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (em_format_html_multipart_signed_sign): changed
- for cipher context api changes.
- * em-format.c (emf_multipart_signed): ditto.
-
-2003-11-07 Not Zed <NotZed@Ximian.com>
-
- * mail-config.glade: added security_information_dialog (probably
- temporarily in this file).
-
- * em-format.c (em_format_is_attachment): also treat pkcs7-mime as
- non-attachment.
- (emf_application_xpkcs7mime): no longer need to worry about
- scanning the part.
-
-2003-11-07 Dan Winship <danw@ximian.com>
-
- * message-list.c: Don't #include e-name-western.h, since the code
- that uses it is commented out, and we want to remove the local
- copy, but we don't want to make the mailer depend on the e-d-s
- copy if it's not even going to be using it.
-
-2003-11-07 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: Make sure the marshal files are listed above other
- sources
-
-2003-11-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.c (em_migrate_filter_file): Call em_migrate_uri()
- instead of em_uri_from_camel().
- (em_migrate_uri): Special-case file: uri's by converting them into
- email://local@local/ uri's since these folders will have been
- migrated to the newer mbox tree structure.
-
-2003-11-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (mail_vfolder_delete_uri): User vfolder rules
- should be in ${evolution_dir}/mail/vfolders.xml rather than
- ${evolution_dir}/vfolders.xml
- (mail_vfolder_rename_uri): Same.
- (store_folder_deleted): Here too.
- (store_folder_renamed): And here.
- (vfolder_load_storage): Again here.
- (vfolder_editor_response): Same.
- (edit_rule_response): And here.
- (new_rule_clicked): Here too.
-
- * mail-session.c (main_get_filter_driver): User filter rules
- should be in ${evolution_dir}/mail/filters.xml rather than
- ${evolution_dir}/filters.xml
-
- * mail-autofilter.c (filter_gui_add_from_message): Same.
- (mail_filter_rename_uri): And here.
- (mail_filter_delete_uri): Here too.
-
- * em-utils.c (filter_editor_response): Again here.
- (em_utils_edit_filters): Same.
-
- * em-migrate.c (em_migrate_filter_file): Same (also for
- vfolders.xml)
-
-2003-11-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-migrate.[c,h]: New source files to migrate from the old mail
- directory to the new mail directory.
-
- * mail-component.c (mail_component_init): Changed to use
- ~/.evolution and added code to migrate the old mail folders over
- if ~/.evolution/mail does not yet exist.
-
-2003-11-03 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Use "evolution2:config_item"
- properties for the config item instead of "evolution:config_item"
- ones.
-
-2003-11-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-view.c: setup filter-on-thread and vfolder-on-thread.
-
- * mail-autofilter.c (rule_from_message): handle AUTO_THREAD
- (rule_match_thread): new function to setup a filter on a msgid
-
-2003-10-31 Not Zed <NotZed@Ximian.com>
-
- * mail-config.glade: Rearranged smime config slightly, and added
- encrypt key preference.
-
- * mail-account-gui.c (mail_account_gui_save,
- mail_account_gui_new): enable smime always if have_nss. Added new
- options in glade file and handle changed names.
- (smime_changed, smime_sign_key_select, smime_sign_key_clear)
- (smime_encrypt_key_select, smime_encrypt_key_clear): Add a bunch
- of mostly dummy UI behaviour management stuff.
-
-2003-10-30 Not Zed <NotZed@Ximian.com>
-
- * em-format.c (em_format_is_inline): show application/x-pkcs7-mime
- inline always by default.
-
-2003-10-30 Not Zed <NotZed@Ximian.com>
-
- * em-format.c (emf_multipart_signed): handle
- application/x-pkcs7-signature.
-
-2003-10-29 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (em_format_html_multipart_signed_sign): handle
- application/x-pkcs7-signature.
-
- * em-format.c (emf_application_xpkcs7mime): Handle
- application/x-pkcs7-mime.
-
-2003-10-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-account-prefs.h: Changed the OAFIID.
-
- * em-composer-prefs.h: Changed the OAFIID.
-
- * em-mailer-prefs.h: Changed the OAFIID.
-
- * GNOME_Evolution_Mail.server.in.in: Changed OAFIIDs for the prefs
- controls.
-
-2003-10-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Nuked the MailConfig
- interface stuff.
-
- * Mailer.idl: Removed. None of the interfaces are needed/used
- anymore.
-
- * folder-info.[c,h]: Removed. The summary was the only thing that
- needed/used this code and it has been nuked into oblivion, so
- these interfaces are no longer needed.
-
- * mail-config.c: Removed old crufty CORBA interface snot that is
- no longer needed or used.
-
-2003-10-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * Fixes bug #49816
-
- * em-popup.c (emp_part_popup_reply_sender): No need to pass a
- parent window arg anymore.
- (emp_part_popup_reply_list): Same.
- (emp_part_popup_reply_all): Here too.
- (emp_part_popup_forward): Same.
- (emp_uri_popup_address_send): Here too.
-
- * em-folder-browser.c (emfb_mail_compose): No need to pass a
- parent window arg anymore.
- (emfb_mail_post): Same.
-
- * em-folder-view.c (emfv_message_reply): Don't pass a parent
- window argument anymore.
- (emfv_popup_forward): Same.
- (emfv_popup_resend): Same here.
- (em_folder_view_open_selected): Same.
- (emfv_message_forward_attached): Here too.
- (emfv_message_forward_inline): And here.
- (emfv_message_forward_quoted): Same.
- (emfv_message_redirect): Here too.
- (emfv_message_post_reply): And here.
- (emfv_format_link_clicked): ANd finally here.
-
- * em-utils.c (create_new_composer): Don't set_transient_for()
- anymore.
- (em_utils_compose_new_message): No longer takes a parent window
- argument.
- (em_utils_forward_attached): No longer takes a parent window arg.
- (em_utils_forward_inline): Same.
- (em_utils_forward_quoted): Same.
- (em_utils_forward_message): Same.
- (em_utils_forward_messages): Here too.
- (redirect_get_composer): Don't set_transient_for() here either.
- (em_utils_redirect_message): No longer takes a parent window arg.
- (em_utils_redirect_message_by_uid): Same.
- (reply_get_composer): Don't set_transient_for() here.
- (em_utils_reply_to_message): No longer takes a parent window arg.
- (em_utils_reply_to_message_by_uid): Same.
- (post_reply_to_message): Don't set_transient_for() here.
- (em_utils_post_reply_to_message_by_uid): No longer takes a parent
- window arg.
- (em_utils_compose_new_message_with_mailto): Don't
- set_transient_for() here.
- (em_utils_post_to_url): Same.
- (em_utils_edit_message): No longer takes a parent window arg.
- (em_utils_edit_messages): Same.
-
-2003-10-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-account-prefs.[c,h]: Re-Namespaced mail-accounts.c
-
- * em-composer-prefs.[c,h]: Re-Namespaced mail-composer-prefs.c
-
- * em-mailer-prefs.[c,h]: Re-Namespaced mail-preferences.c
-
- * mail-accounts.[c,h]: Removed.
-
- * mail-composer-prefs.[c,h]: Removed.
-
- * mail-preferences.[c,h]: Removed.
-
- * mail-account-editor.c: Updated.
-
- * mail-account-gui.c: Updated.
-
- * mail-config-factory.c: Updated.
-
- * mail-component-factory.c: Updated.
-
-2003-10-22 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Add an
- "evolution:button_icon" attribute.
-
-2003-10-22 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Add an
- "evolution:button_sort_order" attribute.
-
-2003-10-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c (parse_uid_list): Removed, use
- em_utils_selection_get_uidlist() instead.
- (drop_uid_list): Use em_utils_selection_get_uidlist() to parse the
- x-uid-list selection data and use mail_tool_uri_to_folder()
- directly since we have the uri (originally we expected the first
- component of the selection data to be the e-storage-set-view
- folder path rather than the uri).
- (folder_receive_drop_cb): Call gtk_drag_finish() here.
-
- * message-list.c: s/x-evolution-message/x-uid-list/
-
- * em-utils.c: Same.
-
-2003-10-22 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c (impl_createControls): Use
- e_storage_browser_peek_widget_scrolled() to retrieve the scrolled
- window that the EStorageSetView is contained in.
-
-2003-10-22 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Add an
- "evolution:button_label" attribute to the Component for use in the
- shell.
-
-2003-10-22 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (em_copy_folders): handle destination of ""
- properly.
- (emc_popup_copy_folder_selected): handle url->path properly, strip
- leading /.
- (em_copy_folders): if we just created a new folder on a
- subscribable store, subscribe to it.
- (em_copy_folders): handle nonselectable folders specially.
-
-2003-10-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c (drag_text_uri_list, folder_dragged_cb)
- (drop_uid_list, drop_folder, import_message_rfc822)
- (drop_message_rfc822, drop_text_uri_list, folder_receive_drop_cb):
- New functions to handle drag & drop to/from the folder tree.
- (impl_createControls): Setup drag & drop support.
-
- * em-format.c (emf_multipart_mixed): Put an <hr> between parts of
- a multipart.
-
-2003-10-21 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (emc_popup_properties): implement.
- (emc_popup_properties_got_folder): builds dynamic
- folder-properties dialogue.
- (emc_popup_properties_response): set the properties on the folder
- on an ok response.
- (emc_popup_properties_free): free the properties working data.
-
- * mail-folder-cache.c (unset_folder_info): unhook from the right
- function for message_changed.
-
-2003-10-20 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (emc_popup_new_folder): pass the right object
- to set_selected(). Fixes a new real bug. Undid reformatting.
-
-2003-10-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-component.c: General compile fixes.
- (emc_popup_new_folder): Fixed to not shadow a parameter. Fixes a
- real bug.
-
- * mail-component.h: Added some prototypes.
-
-2003-10-13 Not Zed <NotZed@Ximian.com>
-
- * em-popup.c (em_popup_create_menu_once): only hookup target free
- if we have a target set.
-
- * mail-component.c (load_accounts): removed debug i accidentally
- left in.
- (emc_tree_right_click): handle right-click context menu, using an
- EMPopup table.
- (emc_popup_*): setup empty popup handlers.
-
-2003-10-13 Not Zed <NotZed@Ximian.com>
-
- * em-folder-selection.c (em_select_folder): asynchornous folder
- selection call.
- (emfs_folder_selected): callback for folder selected.
-
- * em-folder-view.c (emfv_popup_move): implement.
- (emfv_popup_copy): "
- (emfv_popup_move_cb): async folder select callback to run it.
-
-2003-10-10 Not Zed <NotZed@Ximian.com>
-
- * mail-account-gui.c
- (mail_account_gui_folder_selector_button_new): use
- em_folder_selection_button.
- (mail_account_gui_new): "
- (folder_selected): "
-
- * em-folder-selection-button.c: Make this use camel uri's rather
- than camelfolders.
- (set_selection): removed, redundant.
- (impl_dispose): removed, not needed.
-
- * em-folder-selection-button.h: change the selected signal not to
- actually return the selection, which must get retrieved later.
-
- * mail-component.c (em_uri_from_camel): create an evo mail uri
- from a camel one.
- (em_uri_to_camel): the reverse.
-
- * mail-signature-editor.c (mail_signature_editor): up the version
- of the gtkhtml editor.
-
-2003-10-09 Not Zed <NotZed@Ximian.com>
-
- * em-folder-selection-button.c (set_selection): always set
- selected_folder, otherwise we don't unset it properly.
-
- * em-folder-selection.c (em_folder_selection_run_dialog): fix a
- small memleak.
- (em_folder_selection_run_dialog_uri): do the same as run_dialog
- but take, and return physical uri's.
-
- * mail-component-factory.c (factory): removed some fixme's, and
- re-hookedup the composer.
-
-2003-10-09 Frederic Crozat <fcrozat@mandrakesoft.com>
-
- * em-icon-stream.c (emis_sync_close): Use
- gnome-thumbnail_scale_down_pixbuf if available, for better
- performance.
-
-2003-10-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-view.c: Add a hide_mask to the
- create-rule-from-message bars so that we don't segfault when we
- right click with a multi-selection.
-
-2003-10-08 Chris Toshok <toshok@ximian.com>
-
- * em-utils.c (em_utils_camel_address_to_destination): EDestination
- => EABDestination, and e_destination => eab_destination.
- (reply_get_composer): same.
- (post_reply_to_message): same.
-
- * em-composer-utils.c (ask_confirm_for_unwanted_html_mail)
- EDestination => EABDestination, and e_destination =>
- eab_destination.
- (composer_get_message):same.
-
-2003-10-08 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (mail_component_peek): setup vfolders once we
- hve the component, since its setup will call mail_component_peek,
- fun recursion.
-
-2003-10-08 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (setup_local_folder): removed.
- (setup_local_store): setup various needed globals properly.
- (setup_account_storages): renamed to load_accounts.
- (go_online): turn on interactivity as well as onlinedness.
-
- * GNOME_Evolution_Mail.server.in.in: point the preferences pages
- to the right factory.
-
-2003-10-07 Not Zed <NotZed@Ximian.com>
-
- * mail-component.[ch]: Fix copyrights.
-
-2003-10-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (identity_prepare): Fixed.
-
- * mail-ops.c (fetch_mail_fetch): Always save the uid cache no
- matter what.
-
-2003-10-03 Frederic Crozat <fcrozat@mandrakesoft.com>
-
- * mail-config-druid.c (identity_prepare), (config_wizard_new):
- Convert real name to UTF-8 if needed.
-
-2003-10-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-folder-browser.c (emfb_set_folder): Disable the selection of
- the first unread message for now. This is actually annoying the
- fuck out of me, Radek, and a few other people.
-
-2003-10-02 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (add_storage): Add the storage to the hash
- after we've initialised it.
- (mail_component_evomail_uri_from_folder): hardcode "local" account
- pseudo-id for local folders.
- (mail_component_get_folder_from_evomail_uri): handle the "local"
- account case.
-
-2003-10-02 Not Zed <NotZed@Ximian.com>
-
- * mail-component.c (setup_local_store): use mbox:/path rather than
- mbox:///path - the mbox code is 'wrong', but this is easier to
- fix. fixes local unread counts. maybe the provider url-compare
- should address this too.
-
-2003-10-02 Suresh Chandrasekharan <suresh.chandrasekharan@sun.com>
-
- * mail-config-druid.c: Fix for 40917 "Backspace shouldn't
- highlight the whole remaining string in Setup Assistant".
- (identity_changed): Removed repeated focussing per keystroke.
- functions
- (source_changed): Same.
- (transport_changed): Here too.
- (management_changed): And here.
- (identity_prepare): Removed the initial highlighting for Full
- Name, also the unneeded intial grab_focus.
-
-2003-10-02 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_format_timeout): zero out last_part if
- we're clearing. Uh, this fixes, but shouldn't, part of #49034.
- The problem is the 'last part' logic is based on the address,
- which can quite easily be repeated for different messages.
-
- * em-folder-view.c (emfv_list_message_selected): reverted jeff's
- patch for #48618, use a much simpler method.
-
- * em-message-browser.c (emmb_destroy): hook onto destroy handler,
- we need to destroy the messagelist ourselves, since we dont attach
- it to any parent window.
-
-2003-10-01 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_init): turn off blocking writes.
- (efh_format_timeout): don't do a htmlbegin on the page yet, it'll
- be handled by em-html-stream when it has data, to reduce flicker.
- (efh_format_do): close the main gtkhtml stream as soon as we're
- done writing the body. any sub-jobs should be using frames etc.
- (efh_text_plain): dont write a table around the text, try to
- reduce flickering. layout may be out now though.
-
- * em-html-stream.c (emhs_sync_write): if we have no html_stream
- yet, begin a new one.
-
-2003-09-30 Rodney Dawes <dobey@ximian.com>
-
- * em-format-html-print.c: Use "Sans Regular" instead of "Helvetica"
- Fixes bug #47878
-
-2003-09-30 Not Zed <NotZed@Ximian.com>
-
- * em-format-html.c (efh_init): remove gconf stuff.
- (em_format_html_set_xmailer_mask): new method to set the xmailer mask.
-
- * em-folder-view.c (emfv_display_keys[]): Added charset key to
- monitor/retrieve, and xmailer_mask.
- (emfv_setting_notify): Monitor charset setting, pass onto the
- formatter, as well as xmailer_mask.
-
- * mail-preferences.c (mail_preferences_construct): use the new
- charset key.
- (mail_preferences_apply): use the new charset key.
-
- * evolution-mail.schemas: Moved the mail/format/charset to
- mail/display/charset. 1. it makes more sense, and 2. it makes
- notification update easier in em-folder-view.c
-
- * em-format.c (emf_init): remove the gconf charset stuff, for bug
- #48791, and also actually fixes the fixme that jeff thought he
- fixed.
- (em_format_format_text): use default charset as fallback.
- (em_format_set_default_charset): New method to set the default charset.
- (gconf_charset_changed): removed.
-
-2003-09-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-format.c (emf_init): Oops, put the arguments in the right order.
-
-2003-09-29 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c: New member local_store in
- MailComponentPrivate.
- (impl_dispose): Unref.
- (mail_component_load_storage_by_uri): Return the CamelStore.
- (setup_local_folder): New.
- (setup_local_store): New.
- (mail_component_init): Call it.
- (mail_component_peek_storage_set): New.
- (mail_component_get_folder_from_evomail_uri): New.
- (mail_component_evomail_uri_from_folder): New.
-
- * em-folder-selection-button.c: New.
- * em-folder-selection-button.h: New.
-
- * em-folder-selection.c: New.
- * em-folder-selection.h: New.
-
- * em-marshal.list: Add NONE:POINTER.
-
-2003-09-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Allow any file: uri
- to point to a sent or drafts folder.
-
-2003-09-25 Rodney Dawes <dobey@ximian.com>
-
- * mail-send-recv.c: Make the dialog more HIG-compliant by fixing
- widget alignment/spacing issues, and removing separators
-
-2003-09-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-preferences.c (mail_preferences_construct): Same as below.
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): gconf can
- return empty string if the charset has not been set, so if the
- charset string is empty, default the charset to the user's locale
- charset. Partial fix for bug #47638.
-
-2003-09-23 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c (add_storage): Remove unused arg "uri".
- (mail_component_add_store): Likewise.
- (add_storage): Don't set the "Connecting..." node.
- (mail_component_init): Set up local store at
- ~/.evolution/mail/local.
-
- * evolution-mbox-upgrade.c (get_local_store): Remove a double
- xmlFree() that was causing it to crash.
-
-
-2003-09-23 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c (add_storage): Note the new store.
-
- * mail-component-factory.c: Don't include "mail-callbacks.h"
- anymore.
-
- * em-format-html.c (em_format_html_get_type): Get the base
- directory with mail_component_peek_base_directory().
- * em-utils.c (filter_editor_response): Likewise.
- (em_utils_edit_filters): Likewise.
-
- * em-folder-browser.c (emfb_init): Get the search context through
- mail_component_peek_search_context().
-
-2003-09-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * evolution-mbox-upgrade.c (get_local_store): Don't xmlFree (name)
- until after we've g_strdup'd it.
- (em_migrate_dir): If the metadata file doesn't exist, don't even
- bother trying subfolers (the shell just ignores them so we should
- too).
-
-2003-09-23 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #48791 (and also fixes a FIXME)
-
- * em-format.c (emf_init): Setup a gconf listener for changes to
- the charset setting.
- (gconf_charset_changed): Update the cached gconf charset value.
- (emf_finalise): Free the EMFormatPrivate data, unref the gconf
- client, disconnect the charset notify id, and free the cached
- gconf charset value.
- (em_format_format_text): Use the cached gconf charset value.
-
-2003-09-22 Not Zed <NotZed@Ximian.com>
-
- ** See bug #32996
-
- * mail-folder-cache.c (real_flush_updates): don't just pass TRUE
- to the 'can work offline' parameter of new shell folder.
-
- ** See bug #39410
-
- * mail-ops.c (prep_offline_do): sync all messages, not just
- unread or flagged ones.
-
-2003-09-22 Not Zed <NotZed@Ximian.com>
-
- * em-popup.c (emp_uri_popup_link_copy): removed, moved to
- em-folder-view, for now, it has access to an invisible.
-
- * em-folder-view.c (emfv_setting_notify): honour the load_http
- setting, at least the all setting.
- (emfv_format_popup_event): setup the popup menu item for copy link
- location here.
-
-2003-09-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-preferences.c (mail_preferences_construct): Connect to
- "value-changed" rather than "changed" for spin buttons.
-
-2003-09-21 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (ms_thread_msg_new): implement, we hook into the
- mail progress reporting stuff by overriding the CamelOperation
- member with one from a dummy mail_msg.
- (ms_thread_msg_free): handle freeing.
-
- * mail-mt.c (mail_msg_free): mute the camel-operaiton when we free
- it so we no longer get updates.
-
-2003-09-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * em-message-browser.c (emmb_set_message): Set the window title to
- be that of the message subject. Fixes bug #48617.
-
-2003-09-19 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #48618.
-
- * em-folder-view.c (emfv_list_message_selected): See if we have
- already loaded the message uid that has just been selected, if so
- - don't bother re-loading it.
- (emfv_list_done_message_selected): Update loaded_uid and
- loading_uid.
-
-2003-09-18 Radek Doulik <rodo@ximian.com>
-
- * em-format-html.c (efh_init): use gtkhtml's blocking
-
-2003-09-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * evolution-mbox-upgrade.c: New source file to migrate from the
- old mbox structure to the new mbox structure.
-
-2003-09-08 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-folder-cache.c (mail_note_store): Allow NULL storage in
- precondition.
-
- * mail-component.c (mail_component_init): Remove debugging
- message.
-
-2003-08-22 Not Zed <NotZed@Ximian.com>
-
- * mail-format.c (write_date): translate the local time format.
-
-2003-08-20 David Woodhouse <dwmw2@infradead.org>
-
- * 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-18 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Rename
- GNOME_Evolution_Mail_Component2 to
- GNOME_Evolution_Mail_Component_2 and GNOME_Evolution_Mail_Factory2
- to GNOME_Evolution_Mail_Factory_2.
- * mail-component-factory.c: Update accordingly.
-
-2003-08-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Added a comment for
- translators.
-
-2003-08-19 David Woodhouse <dwmw2@infradead.org>
-
- * mail-callbacks.c (mail_generate_reply): Add a timezone offset to
- the attribution string.
-
-2003-08-19 Not Zed <NotZed@Ximian.com>
-
- * 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 <dwmw2@infradead.org>
-
- * mail-format.c (write_date): Show date in localtime too.
-
-2003-08-19 Harry Lu <harry.lu@sun.com>
-
- ** For #45348
-
- * mail-display.c (mail_display_render): Change "%P" to "%p" so
- that strftime() can work under solaris.
-
-2003-08-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * 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-13 Suresh Chandrasekharan <suresh.chandrasekharan@sun.com>
-
- * 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 <fejj@ximian.com>
-
- * mail-tools.h: Removed unused function prototype.
-
-2003-08-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (remove_timeout): Removed.
- (register_timeout): Removed.
-
-2003-08-09 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c (storage_go_online): Pass NULL for the
- operation pointer to mail_note_store(), to sync with Michael's
- changes.
-
-2003-08-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- ** 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * em-format-html.c (efh_finalise, efh_format_timeout): Use a
- proper hash free func, otherwise it dont work.
-
-2003-09-11 Not Zed <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <dwmw2@infradead.org>'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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * em-utils.c (get_reply_list): Implemented.
-
-2003-08-27 Not Zed <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * mail-local.c (mlf_meta_set, mlf_meta_get): proxy meta-data stuff
- to subservient folder.
-
-2003-08-23 Not Zed <NotZed@Ximian.com>
-
- * em-folder-view.c (emfv_init): init preview here always.
-
-2003-08-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * em-*.c: more updates, incl threaded formatting queue.
-
-2003-08-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- * em-format-html-display.c (efhd_format_attachment): Added bonobo
- embeddables.
-
-2003-08-01 Harry Lu <harry.lu@sun.com>
-
- *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 <yuedong.du@sun.com>
-
- * message-browser.c (on_key_press): close mail message window
- using 'ESC' key, fix bug #47087
-
-2003-07-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c: Removed smime functions as they were stale.
-
-2003-07-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-browser.c (message_browser_new): Handle our own Delete
- key presses. Fixes bug #45597.
-
-2003-07-25 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-callbacks.c (do_view_message): No need to pass a shell
- argument to message_browser_new() anymore.
-
- * message-browser.c (message_browser_new): Removed arg shell. No
- need to pass it to folder_browser_new() either.
-
- * mail-component.c (create_view_callback): No need to pass a shell
- arg to folder_browser_factory_new_control() anymore.
-
- * folder-browser-factory.c (folder_browser_factory_new_control):
- Removed arg shell; folder_browser_browser_new() doesn't need it
- anymore.
-
- * folder-browser.c (folder_browser_destroy): No need to unref
- ->shell anymore.
- (folder_browser_new): Removed shell arg.
- (folder_browser_gui_init): Removed a const qualifier that was not
- supposed to be there.
-
- * folder-browser.h: Removed member shell from struct
- FolderBrowser.
-
-2003-07-25 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser.c (folder_browser_gui_init): Get the search
- context through mail_component_peek_search_context(), since it's
- no longer a global variable.
- (folder_browser_gui_init): Cleaned up an extra unneeded if()
- statement.
-
- * mail-component.c: New member search_context in struct
- MailComponentPrivate.
- (mail_component_peek_search_context): New.
- (setup_search_context): New function to initialize the
- search_context, based on the old code in component-factory.c.
- (mail_component_init): Call it here.
- (impl_dispose): Unref the rule_context.
-
- * mail-component-factory.c: Removed global variable
- search_context.
-
-2003-07-25 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-component.c (browser_page_switched_callback): New callback
- for the "page_switched" signal on EStorageBrowser; deactivate the
- previous page, activate the new one.
- (impl_createControls): Connect.
-
-2003-07-24 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-mt.c (do_op_status): Pass "evolution-mail" as the ID to
- evolution_activity_client_new(). [This is just a temporary thing
- to avoid the fact that we don't have component-factory.h anymore.
- Eventually we'll just get rid of the activity client stuff.]
-
- * mail-component-factory.c: Added to the build. Also, finished
- implementing and moving the factory over from component-factory.c.
-
- * component-factory.c: Removed from the build.
- * component-factory.h: Removed from the build.
-
- * mail-component.c: Removed some debugging messages.
-
-2003-07-23 Ettore Perazzoli <ettore@ximian.com>
-
- * subscribe-dialog.c: Converted to use EStorages instead of
- EvolutionStorages and the new MailComponent object.
-
- * mail.h: Nuked a bunch of stuff. This will go away when I am
- done refactoring.
-
- * mail-offline-handler.c: Use the new MailComponent object.
-
- * mail-folder-cache.c, mail-folder-cache.h: Converted to use
- EStorages instead of EvolutionStorages.
-
- * mail-display.c: Use g_timeout and g_source functions instead of
- gtk_timeout functions.
-
- * mail-send-recv.c: Use g_timeout and g_source functions instead
- of gtk_timeout functions.
- (receive_update_got_store): Updated for the new mail_note_store().
-
- * mail-session.c: Use g_timeout and g_source functions instead of
- gtk_timeout functions.
-
- * mail-config-factory.c (factory): Removed.
-
- * folder-browser.c (folder_browser_destroy): Use GLib
- timeout/source functions instead of the deprecated GTK ones.
- (done_message_selected): Likewise.
- (folder_browser_gui_init): Protect against fb->search being NULL.
-
- * mail-account-gui.c (add_new_store): Use new MailComponent object
- and EStorages instead of EvolutionStorages.
- (mail_account_gui_save): Likewise.
-
- * mail-accounts.c (account_delete_clicked): Use new MailComponent
- object and EStorages instead of EvolutionStorages.
- (account_able_clicked): Likewise.
- (account_able_toggled): Likewise.
-
- * mail-autofilter.c: Use mail_component_peek_base_directory()
- instead of the evolution_dir global.
- * mail-callbacks.c: Likewise.
- * mail-config.c (uri_to_evname): Likewise.
- (mail_config_get_signature_list): Likewise.
- (delete_unused_signature_file): Likewise.
- * mail-display.c (mail_display_class_init): Likewise.
- * mail-importer.c (mail_importer_make_local_folder): Likewise.
- * mail-local.c (mlf_getv): Likewise.
- * mail-ops.c (uid_cachename_hack): Likewise.
- * mail-summary.c (generate_folder_summaries): Likewise.
- * mail-tools.c (mail_tool_get_local_inbox): Likewise.
- (mail_tools_folder_to_url): Likewise.
- * mail-vfolder.c (mail_vfolder_delete_uri): Likewise.
- (mail_vfolder_rename_uri): Likewise.
- (context_rule_removed): Likewise.
- (store_folder_deleted): Likewise.
- (store_folder_renamed): Likewise.
- (vfolder_load_storage): Likewise.
- (vfolder_editor_response): Likewise.
- (edit_rule_response): Likewise.
- (new_rule_clicked): Likewise.
- (vfolder_gui_add_rule): Likewise.
- * mail-session.c (main_get_filter_driver): Likewise.
- (mail_session_forget_password): Likewise.
- (mail_session_init): Get a base_directory arg.
-
- * component-factory.c, component-factory.h: Disabled a bunch of
- stuff to get it to compile in the new configuration. These files
- will eventually go away when I am done refactoring this.
-
- * Makefile.am: Do not build importers, compile generate
- skels/stubs for Evolution.
-
- * GNOME_Evolution_Mail.server.in.in: Rename control factory to
- OAFIID:GNOME_Evolution_Mail_Factory2. Add new component
- GNOME_Evolution_Mail_Component2.
-
- * mail-component-factory.c: New file implementing the Bonobo
- factory.
-
- * mail-component.c, mail-component.h: New files implementing the
- new mail component, using the new Evolution::Component IDL.
-
-2003-07-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_format_data_wrapper_write_to_stream): Revert
- prior changes.
-
-2003-07-23 Dan Winship <danw@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <federico@ximian.com>
-
- * 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 <yuedong.du@sun.com>
-
- * 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 <antonio.xu@sun.com>
-
- * 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 <maxx.cao@sun.com>
-
- ** 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 <yuedong.du@sun.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <danw@ximian.com>
-
- * mail-display.c (pixbuf_for_mime_type): Gone
- (pixbuf_gen_idle): Use e_icon_for_mime_type instead.
-
-2003-06-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * 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 <rodo@ximian.com>
-
- * mail-config.c (config_write_style): provide hardcoded default
- (red) spell error color
-
-2003-06-24 Jeffrey Stedfast <fejj@ximian.com>
-
- 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 <NotZed@Ximian.com>
-
- ** 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 <rodo@ximian.com>
-
- * 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 <danw@ximian.com>
-
- * message-list.c (on_selection_changed_cmd): Save the idle_id
-
-2003-06-23 Larry Ewing <lewing@ximian.com>
-
- * folder-browser.c (do_message_selected): make sure not to strcmp
- a possibly NULL string.
-
-2003-06-19 Not Zed <NotZed@Ximian.com>
-
- ** 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- ** 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 <fejj@ximian.com>
-
- * 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 <lewing@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <fejj@ximian.com>
-
- * 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 <NotZed@Ximian.com>
-
- ** 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 <NotZed@Ximian.com>
-
- ** 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 <NotZed@Ximian.com>
-
- ** 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 <federico@ximian.com>
-
- * 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).
-
diff --git a/mail/ChangeLog.pre-1-4 b/mail/ChangeLog.pre-1-4
deleted file mode 100644
index 5933f09baa..0000000000
--- a/mail/ChangeLog.pre-1-4
+++ /dev/null
@@ -1,24750 +0,0 @@
-2003-06-02 Not Zed <NotZed@Ximian.com>
-
- ** This and jeffs patch for #43862.
-
- * mail-folder-cache.c (store_online_cb): If the store is still
- around, then flow on to a get folderinfo update, otherwise just
- clear up.
-
- * mail-ops.c (mail_store_set_offline): return the msgid of this so
- it can be cancelled.
-
-2003-05-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-folder-cache.c (mail_note_store): If the session is
- 'online' and we are noting a CamelDiscoStore, make sure that it is
- changed to online status and call mail_get_folderinfo().
-
-2003-05-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (load_metainfo): Stat the XML file before trying to
- parse it to make sure it exists.
-
-2003-05-29 Not Zed <NotZed@Ximian.com>
-
- * Makefile.am (BUILT_SOURCES): added server_DATA (*.server) so
- make clean works. For #42691.
-
-2003-05-30 Radek Doulik <rodo@ximian.com>
-
- * mail-config.c (config_write_style): use %02x instead of %2x when
- formatting color for rc file
-
-2003-05-29 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #43805.
-
- * mail-session.c (session_system_beep): Proxy the gdk_beep() call
- to the main thread.
- (session_play_sound): Proxy the gnome_sound_play() call to the
- main thread.
-
-2003-05-27 Not Zed <NotZed@Ximian.com>
-
- * message-tag-editor.c (message_tag_editor_init): set the default
- open size to something reasonable. For #43410.
-
- * mail-signature-editor.c (d): turn off debugging.
-
- * mail-config.c (mail_config_signature_add): save new signature in
- signature list. For #43688.
-
-2003-05-21 Radek Doulik <rodo@ximian.com>
-
- * mail-signature-editor.c (menu_file_save_cb): set signature html
- flag even if it's newly signature, we don't set it in
- format_html_cb as sig could be "live" (when it's not new one)
-
-2003-05-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-importer.c: Updated copyright years.
-
- * mail-callbacks.c (ask_confirm_for_empty_subject): Fixed the
- logic a bit - if the gconf key *isn't* set, we want to return
- TRUE.
-
- * mail-search.c (mail_search_finalise): We need to weak_unref()
- the mail-display here. Fixes bug #43392.
-
-2003-05-21 Larry Ewing <lewing@ximian.com>
-
- * mail-config.glade: remove link hilighting option that isn't
- attached to anything.
-
-2003-05-20 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c: filter notification events to keep the redisplay
- count down.
-
- * mail-composer-prefs.c: remove references to gtkhtml property
- manager. Connect to missing settings.
-
- * mail-preferences.c: remove references to gtkhtml property
- manager. Connect to missing settings.
-
- * mail-config.glade: remove keybinding setting.
-
- * mail-display.c (mail_display_destroy): remove notification.
- (display_notify): set animate and redisplay. We have to redisplay
- because the citation color may have changed.
-
- * evolution-mail.schemas: add composer and display gconf entries.
-
-2003-05-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Only re-add the
- store to the folder-tree if the account is enabled. Oops. Fixes
- bug #43214.
-
-2003-05-20 Larry Ewing <lewing@ximian.com>
-
- * mail-config-factory.c: remove references to font prefs.
-
- * component-factory.c: Remove stale refernces the the font prefs.
- (make_factory): remove unused variables.
-
- * mail-config.c (mail_config_init): add a notify callback to the
- spelling color.
- (config_write_style): rename and write out the spell color as
- well.
-
-2003-05-20 Not Zed <notzed@lostzed.mmc.com.au>
-
- ** See bug #43234
-
- * mail-display.c (mail_display_set_message): if we've been
- destroyed, noop.
-
-2003-05-16 Dan Winship <danw@ximian.com>
-
- * mail-ops.c (mail_empty_trash): New async "empty trash" op.
-
- * mail-callbacks.c (empty_trash): Use it rather than requiring
- that mail_tool_get_vtrash() work without blocking. #43091
-
-2003-05-16 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (footer_info_new): gnome_font_get_descender
- returns negative value
-
-2003-05-17 Larry Ewing <lewing@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: remove font prefs server from
- the list.
-
-2003-05-17 Jeremy Katz <katzj@redhat.com>
-
- * mail-offline-handler.c: Add #include to fix warning.
-
- * mail-mt.c (mail_msg_new): Use glib macros for pointer/int
- conversions.
- (mail_msg_free): Likewise.
- (mail_msg_cancel): Likewise.
- (mail_msg_wait): Likewise.
- (mail_msg_active): Likewise.
- * mail-session.c (main_register_timeout): Likewise.
- (register_timeout): Likewise.
- (main_remove_timeout): Likewise.
- (remove_timeout): Likewise.
- * message-list.c (ml_value_to_string): Likewise.
-
- * mail-identify.c: Add #include to fix warning.
-
- * mail-config.c (config_write_fonts): Don't pass extra arguments
- to g_warning.
-
- * mail-callbacks.c: Add #include to fix warning.
-
-2003-05-15 Not Zed <NotZed@Ximian.com>
-
- ** See bug #42838.
-
- * mail-account-gui.c (mail_account_gui_build_extra_conf): always
- add the extra entry to the hash table, most paths wouldn't.
-
-2003-05-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c: Disabled some debugging messages.
-
-2003-05-14 JP Rosevear <jpr@ximian.com>
-
- * mail-local.h: add proto
-
- * mail-local.c (storage_listener_startup): don't listen for
- destruction, because we have a ref and it'll never happen
- (mail_local_storage_shutdown): release and unref the local storage
-
- * mail-display.c (retrieve_shell_view_interface_from_control):
- return a new copy every time
- (set_status_message): release and unref the shell view
-
- * folder-browser.c (folder_browser_destroy): guard for multiple
- destroys
-
- * folder-browser-factory.c (control_activate): release and unref
- the shell view
- (control_destroy_cb): just remove the control from the list
- (folder_browser_factory_new_control): don't weak ref the folder
- browser
-
- * component-factory.c (owner_unset_cb): shutdown local storage
-
-2003-05-13 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (segv_redirect): Removed.
- (make_factory): No need to set up the SIGSEGV redirect handler
- here, since it's already done in the shell now, and it's in-proc.
-
- * folder-browser-ui.c (folder_browser_ui_rm_all): Only do the
- bonobo_ui_component() stuff if the component does have a
- container.
-
-2003-05-08 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-session.c (mail_session_set_interactive): Set the
- password_dialog pointer to NULL. Prevents a crash that could
- happen if the shell would quit with the password dialog still up.
-
-2003-05-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (mail_display_render): Make sure that we haven't
- been destroyed before we start writing to the html engine. Fixes
- bug #42333.
-
-2003-05-07 Not Zed <NotZed@Ximian.com>
-
- ** See bug #42456
-
- * mail-composer-prefs.c (spell_language_button_press): set the
- enable/disable button to the right text when we toggle a column.
- Added a fixme about the weird code in the whole routine.
-
-2003-05-07 Jeremy Katz <katzj@redhat.com>
-
- * evolution-mail.schemas
- (/schemas/apps/evolution/mail/display/mime_types): Correct
- default for list.
-
-2003-05-06 Not Zed <NotZed@Ximian.com>
-
- ** See bug #42400
-
- * mail-tools.c (meta_data_key): protect against getting an
- unparsable uri.
-
-2003-05-05 Not Zed <NotZed@Ximian.com>
-
- ** See bug #42294.
-
- * mail-config.c (config_write_fonts): Also set the custom font
- style for *BonoboPlug*GtkHTML.
-
-2003-05-05 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-session.c (request_password): Set OK as the default
- response for the password_dialog.
-
-2003-04-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mark_as_unseen): To be consistant with the
- message-list envelope toggle, undelete the message when we unmark
- the Seen flag here as well. Fixes bug #42118.
-
-2003-04-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (ml_tree_value_at): Fixed to return the correct
- values (swapped) in order to fix bug #42120.
-
-2003-04-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (regen_list_regened): Save the tree state before
- we tear down the tree and then load it back again. yay. Fixes bug
- #42170 and #40074.
-
-2003-04-30 Not Zed <NotZed@Ximian.com>
-
- ** See bug #41748
-
- * mail-send-recv.c (build_dialogue): make sure we dont add any
- SEND_SEND types to the receive table. When we add the SEND_SEND
- type, key it on a fixed string SEND_URI_KEY.
- (receive_done): if it is a SEND_SEND type, use SEND_URI_KEY to
- remove it from the active list.
- (mail_receive_uri): make sure we never add a SEND_SEND type to the
- receive list.
- (mail_send): key the send info on SEND_URI_KEY not transport url.
-
-2003-04-29 Jeremy Katz <katzj@redhat.com>
-
- * folder-browser-ui.c (fbui_sensitise_item): Don't just blindly
- cast an int to gpointer, use the proper glib magic instead.
-
-2003-04-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * importers/netscape-importer.c
- (netscape_add_priority_workaround_filters): Updated for API change
- in the filter code.
-
-2003-04-29 Not Zed <NotZed@Ximian.com>
-
- ** See bug #41972
-
- * message-list.c (ml_tree_value_at): fix (void *) casts on trinary
- ops.
-
- * folder-browser.c (on_right_click): Store the label tag in the
- label callback data, not the translated name.
-
- * mail-config.c (label_defaults[]): Initialise with the tag
- values.
- (config_clear_labels): free tag field.
- (config_cache_labels): setup the tag field based on the position
- of the label name.
- (mail_config_get_label_color_by_name): Lookup colour by the
- untranslated TAG, not the translated/customisable tag.
-
- * mail-config.h (MailConfigLabel): Add a tag field, we were using
- the translated name as the label(!).
-
-2003-04-29 Dan Winship <danw@ximian.com>
-
- * mail-format.c (write_xmailer_header): Remove preceding whitespace
-
-2003-04-28 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-session.c (mail_session_forget_passwords): Forget all
- passwords again. [#41817]
-
-2003-04-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.glade: Made toplevel container widgets set a
- border-width (including toplevel widgets within frames), set the
- table/hbox/vbox spacings, set the spacing between an image and the
- description text in hboxes to 12pts (as suggested by the HIG),
- Changed Add/Delete buttons to the stock Add/Remove buttons, etc
-
-2003-04-24 Jeffrey Stedfast <fejj@ximian.com>
-
- Fix for bug #41789
-
- * mail-config.c (mail_config_init): Cache the allowable
- mime-types.
- (mail_config_get_allowable_mime_types): New public function to get
- an array of allowable mime-types.
-
- * mail-format.c (mail_lookup_handler): Only allow a
- bonobo-component handler if the mime-type is something handled by
- evolution or the user has specifically chosen that type as
- available for viewing with a bonobo component in the gconf
- database.
- (mime_type_uses_evolution_component): New convenience function.
- (mime_type_can_use_component): Checks gconf to see if the user has
- allowed the mime-type to be viewed by a component.
-
-2003-04-24 Radek Doulik <rodo@ximian.com>
-
- * mail-display.c (html_button_press_event): as below
- (update_active): as below
-
- * folder-browser.c (html_button_press_event): update for changed
- coordinates in gtk-2
-
-2003-04-23 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (get_receive_type): pass an exception to
- get_provider, to silence some warnings/get a valid result.
-
-2003-04-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Only add the
- Organization: header if it is non-empty. Fixes bug #41730.
-
-2003-04-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c (spell_set_ui): Protect against a NULL
- strv result from parsing the language list string.
-
-2003-04-17 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes for bug #41142.
-
- * mail-search.c (dialog_response_cb): Handle a GTK_RESPONSE_CLOSE
- response.
- (mail_search_construct): Changed the Cancel button into a Close
- button.
-
-2003-04-18 Rodney Dawes <dobey@ximian.com>
-
- * Makefile.am:
- * folder-browser-ui.c:
- * mail-signature-editor.c:
- * message-browser.c:
- Use PREFIX instead of EVOLUTION_DATADIR for bonobo_ui_util_set_ui ().
- Fixes bug #21499.
-
-2003-04-17 Not Zed <NotZed@Ximian.com>
-
- * mail-signature-editor.c (menu_help): remove the help menu item
- handling, as the help menu is removed. Clean up of #38927.
-
-2003-04-16 Not Zed <NotZed@Ximian.com>
-
- * importers/Makefile.am (%.server.in): Remove COMPONENTDIR and set
- BINDIR and VERSION instead.
-
- * (importers/GNOME_Evolution_Mail_Pine_Intelligent_Importer.server.in.in,
- importers/GNOME_Evolution_Mail_Mbox_Importer.server.in.in,
- importers/GNOME_Evolution_Mail_Outlook_Importer.server.in.in,
- importers/GNOME_Evolution_Mail_Netscape_Intelligent_Importer.server.in.in,
- importers/GNOME_Evolution_Mail_Elm_Intelligent_Importer.server.in.in:) :
- Convert the type back to exe, and point to the main evolution
- executable. Fixes #41164.
-
-2003-04-16 Jeremy Katz <katzj@redhat.com>
-
- * evolution-mail.schemas: schema keys can't be directories (#41419)
-
-2003-04-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (config_wizard_set_page): Fixed a logic
- error that was the cause of bug #41389.
-
-2003-04-15 Not Zed <NotZed@Ximian.com>
-
- * For bug #41199.
-
- * subscribe-dialog.glade: New interface from Anna. Setup the
- wigdet names and add a progress bar, and set the default opening
- size to something reasonable.
-
- * subscribe-dialog.c (subscribe_dialog_construct): changes to
- match the glade file chagnes. remove the search stuff. hide the
- progress bar by default.
- (sc_activity_cb): show the progress bar when we're active, hide
- it when inactive. dont set any status.
- (struct _SubscribeDialogPrivate): Remove the appbar.
-
-2003-04-15 Hans Petter Jansson <hpj@ximian.com>
-
- * mail-mt.c (mail_msg_check_error): Free the temporary error text.
-
-2003-04-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (vfolder_gui_add_rule): Set the correct border
- width and vbox spacing to be HIG compliant. Fixes bug #41209.
- (vfolder_edit_rule): Same here.
-
- * local-config.glade: Updated to comply with the HIG. Fixes bug
- #41244.
-
-2003-04-14 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (build_dialogue): create a stock cancel button
- with a cancel all text.
- (build_dialogue): Create stock-like cancel buttons with no
- accelerators. A workaround for #41043.
-
- * message-list.c (ml_tree_value_at): if the node is the root node,
- do nothing. etable shouldn' really be searching the root node if
- it isn't visible ...? For #41190.
-
-2003-04-14 Larry Ewing <lewing@ximian.com>
-
- * evolution-mail.schemas: add proper defaults for the fonts
- settings.
-
-2003-04-11 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #41243.
-
- * message-tag-followup.c (construct): Change the window border
- width and packing to comply with the HIG.
-
- * message-tags.glade: Updated to comply with the HIG.
-
-2003-04-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (request_password): Add padding around the
- entry/checkbox and change the border width of the dialog window to
- comply with the HIG. Fixes bug #41004.
-
-2003-04-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-search.c (mail_search_construct): Change the action button
- ordering and also change the padding to comply with the HIG. Fixes
- bug #41046 and at least part of bug #41142 (except for the
- s/Search/OK/ thing, which has not been agreed upon yet).
-
- * mail-send-recv.c (build_dialogue): Change the padding to comply
- with the GNOME HIG. Fixes bug #41001.
-
-2003-04-09 Not Zed <NotZed@Ximian.com>
-
- ** See bug #40921
-
- * subscribe-dialog.c (subscribe_dialog_finalise): add a finalise
- funciton which actually free's resources.
- (get_short_folderinfo_got): dont call activity callback implicitly
- here, do it from the callers callback.
- (subscribe_get_short_folderinfo): dont call activity callback
- here.
- (fe_got_children): check implicitly if we were cancelled. also
- add back the node sort, and also call the activity callback from
- here instead of breaking layers of abstraction as above.
- (folder_etree_cancel_all): new method, force a cancel of all ops,
- but dont free anything.
- (store_data_free): dont unref the widget anymore, not needed.
- call cancel all on the ftree if its still active.
- (sc_close_pressed): destroy the subscribe dialogue as well as the
- app, it doesn't seem to get destroyed otherwise.
- (sc_activity_cb): do nothing if we have been cancelled.
- (subscribe_dialog_destroy): trigger a cancel of all outstanding
- ops. only free most data in the finalise method.
- (subscribe_dialog_class_init): hook onto finalise.
- (store_data_get_widget): dont ref the widget.
-
- * mail-callbacks.c (manage_subscriptions): sink the dialog.
-
-2003-04-09 Larry Ewing <lewing@ximian.com>
-
- * mail-preferences.c (font_share_changed): set sensitivity of
- font pickers based on share setting.
- (mail_preferences_construct): initialize font prefs.
- (mail_preferences_apply): set the font prefs.
- (font_changed): add gnome-font-picker changed function.
-
- * mail-preferences.h: add font pref widgets.
-
- * mail-config.c (mail_config_init): add notify to on fonts dir.
- (config_write_fonts): write out a gtkrc that overrides the gtkhtml
- fonts settings based on the gconf keys.
-
- * mail-config.glade: move display font setttings to mail prefs.
-
- * evolution-mail.schemas: add font settings.
-
-2003-04-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (do_view_message): Add a check for a NULL uid
- here. Don't see how it can happen, but it seems to have for
- Aaron. Anyways, this should fix bug #40904.
-
-2003-04-08 Dan Winship <danw@ximian.com>
-
- * mail-config.glade: Remove color specs from the druid so it will
- use the theme colors
-
- * importers/GNOME_Evolution_Mail_Elm_Intelligent_Importer.server.in.in:
- * importers/GNOME_Evolution_Mail_Netscape_Intelligent_Importer.server.in.in:
- * importers/GNOME_Evolution_Mail_Pine_Intelligent_Importer.server.in.in:
- Fix bad XML noticed by Not Zed
-
-2003-04-08 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (vfolder_gui_add_rule): swap button order. For
- #40900.
-
-2003-04-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (ml_tree_value_at): For string columns, never
- return NULL - always return "" if the value is empty. Fixes bug
- #40728.
-
- * mail-composer-prefs.c (sig_add_script_cb): Set the "script" data
- on the GtkEntry to NULL.
- (sig_add_script_response): If the "script" data on the GtkEntry
- object is non-NULL, then we are editing an existing signature, so
- just change the values in place and don't add it to the signature
- db.
- (sig_edit_cb): If sig->script is non-NULL, then we are editing a
- script signature, so pop up the script dialog instead. Fixes bug
- #38929.
-
-2003-04-07 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c (spell_load_values): use e_iconv_locale_language
-
-2003-04-07 Dan Winship <danw@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Clean up server names
-
- * importers/GNOME_Evolution_Mail_Elm_Intelligent_Importer.server.in.in:
- Likewise, and fix evolution-mail location
-
- * importers/GNOME_Evolution_Mail_Mbox_Importer.server.in.in:
- Likewise
-
- * importers/GNOME_Evolution_Mail_Netscape_Intelligent_Importer.server.in.in:
- Likewise
-
- * importers/GNOME_Evolution_Mail_Outlook_Importer.server.in.in:
- Likewise
-
- * importers/GNOME_Evolution_Mail_Pine_Intelligent_Importer.server.in.in:
- Likewise
-
- * importers/Makefile.am (%.server.in): Fix this for evolution-mail
- being a shlib.
-
-2003-04-03 Not Zed <NotZed@Ximian.com>
-
- ** Bug 40536
-
- * component-factory.c (send_receive_cb): run the warning dialogue
- asynchronously. Also, set the mail send/receive dialogue to
- transient for parent.
-
- * mail-send-recv.c (mail_send_receive): return the dialogue for
- send/receive.
-
-2003-04-02 Rodrigo Moya <rodrigo@ximian.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn):
- * importers/evolution-outlook-importer.c (load_file_fn): added
- "folder_type" parameter to EvolutionImporterLoadFileFn.
-
- * importers/elm-importer.c (elm_import_file): pass empty string for
- "folder_type" argument to GNOME_Evolution_Importer_loadFile.
- * importers/pine-importer.c (pine_import_file): ditto.
- * importers/netscape-importer.c (netscape_import_file): ditto.
-
-2003-04-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (save_part): Don't allow the 'prefix' argument to
- make_safe_filename() be NULL. If we don't yet have a save_dir in
- gconf, use $HOME, etc. Fixes bug #40608.
-
-2003-04-02 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (mail_session_forget_passwords): Only clear the
- Mail passwords.
-
- * component-factory.c (interactive_cb): Call
- composer_check_autosave if we're going interactive, to check for
- unsaved files. Fixes #40300.
-
-2003-04-01 Not Zed <NotZed@Ximian.com>
-
- * mail-display.c (mail_display_redisplay): if we're called and the
- idle handler is set, remove it, so we dont go and redisplay it
- again. Fixes #40522.
-
-2003-03-31 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (regen_list_regened): Save tree state and then
- after building the new tree, re-load the tree state. Finishes the
- fix for bug #40074.
-
- * mail-session.c: Properly init message_list. Fixed a type-o that
- initialized it to the password_list.
-
-2003-03-31 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (pass_response): need to check for config_service
- != NULL, not service != NULL before calling set_save_password.
- Fix for #40472.
-
-2003-03-28 Not Zed <NotZed@Ximian.com>
-
- * folder-browser-ui.c: include e-meta.h
-
- * folder-browser.c (on_right_click): remove unused var.
-
-2003-03-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * subscribe-dialog.c (fe_check_for_children): Declare a prototype
- for this function prior to fe_got_children() so that
- fe_got_children() can call us.
-
-2003-03-26 Dan Winship <danw@ximian.com>
-
- * mail-format.c (write_address): remove extra arg to
- camel_url_encode
-
-2003-03-27 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_gui_init): dont set the paned
- initial size here, but hook onto the realize signal.
- (paned_realised): set the paned size once we're realised. Fixes
- #37084, its a bit of a hack, but it seems to work.
-
-2003-03-26 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #40074.
-
- * folder-browser-factory.c (control_deactivate): Save message-list
- state.
-
- * message-list.c (message_list_save_state): Save the various
- states.
-
-2003-03-26 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes for bug #39870
-
- * message-browser.c (transfer_msg_done): Close the
- message-browser. Since the message doesn't exist anymore, we
- should close it.
- (message_browser_delete): New callback to handle deletion in the
- message-browser window.
-
-2003-03-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * subscribe-dialog.c (fe_got_children): If the CamelFolderInfo
- node doesn't have \NoInferriors set, then check for
- subfolders. Fixes bug #40314.
-
-2003-03-26 Not Zed <NotZed@Ximian.com>
-
- * mail-display.c (popup_window_destroy_cb): Undo jeff's patch
- below for #40275, the destroy timeout is already removed in
- popup_info_free. Unref the widget 'w' when we're done with it.
- (popup_info_free): Move everything in here to popup_window_destroy
- and remove, since nothing else uses it.
- (make_popup_window): Ref the widget so it doesn't go away before
- we're finished with it. Really fixes bug #40275/40188.
-
-2003-03-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (popup_window_destroy_cb): Remove the
- timeout. Should fix bug #40275.
-
- * subscribe-dialog.c: Remove search entry which never worked right
- (and can't work as users expect anyway, since we don't do
- namespace stripping). Fixes bug #40083.
- (ftree_node_new): Ignore \NoSelect as far as marking it
- "subscribable". Fixes bug #40124.
-
-2003-03-25 Dan Winship <danw@ximian.com>
-
- * mail-account-editor.c: Update for e_notice move
- (apply_changes): Pass a parent_window to e_notice
-
- * mail-account-gui.c: Update for e_notice move.
- (mail_account_gui_save): Pass a parent_window to e_notice
-
- * mail-callbacks.c: Update for e_notice move
- * mail-local.c: Likewise
- * mail-signature-editor.c: Likewise
- * mail-vfolder.c: Likewise
-
- * component-factory.c (interactive_cb): Update prototype
-
-2003-03-25 Not Zed <NotZed@Ximian.com>
-
- * mail-tools.c (meta_data_key): strdup the key before freeing the
- url as it is probably pointing there.
-
-2003-03-25 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (got_folder): remove a debug printf that
- made it in a commit.
-
- * folder-browser-ui.c (folder_browser_ui_add_global): Load
- per-folder setting of show_preview from meta data.
- (folder_browser_ui_add_list): Same, for thread_list.
-
- * mail-tools.c (mail_tool_get_meta_data)
- (mail_tool_delete_meta_data): helpers to lookup/delete meta data.
-
- * mail-config.c (mail_config_uri_deleted): delete the meta-data
- for the folder.
-
- * folder-browser.c (folder_browser_reload): dont reload the uri if
- we're in the process of loading it still.
- (folder_browser_new): load the folder meta data before loading the
- folder.
- (folder_browser_toggle_preview):
- (folder_browser_toggle_threads): save change to meta-data.
- (got_folder): Load the metadata if we have a folder to set, and
- the meta-data has changed from initislisation.
-
-2003-03-23 Chris Toshok <toshok@ximian.com>
-
- * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): pass
- FALSE for e_destination_get_textrep's include_email arg.
-
-2003-03-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_format_data_wrapper_write_to_stream):
- Default to the charset provied in the MimePart's Content-Type over
- that of the user's mailer charset. Fixes bug #39204.
-
-2003-03-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c (spell_load_values): "en_us" should not be
- translated. Fixes bug #40088.
-
-2003-03-21 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (pixbuf_gen_idle): remember to disconnect the
- destroy handler if whenever the loader is shut down.
-
-2003-03-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (owner_set_cb): Change the message_destroy
- callback to just gtk_widget_destroy. No need to have a callback
- simply to call this function.
- (warning_response): Removed (see above).
-
- * mail-composer-prefs.c (sig_add_script_response): Don't forget to
- add the signature to the signature list if it is a valid script.
-
- * mail-config.c (mail_config_signature_unregister_client): Make
- sure we can find the registered handler before trying to remove it
- from the list.
-
- * mail-session.c (do_user_message): Make the 5th argument to
- gtk_message_dialog_new() "%s" and move the m->prompt to arg 6 so
- that we are safe if the prompt string contains any %'s. Also
- connect to the response signal for the user_msg dialog and set the
- callback to gtk_widget_destroy so that the user can actually close
- the dialog. We also need to g_object_weak_ref() the dialog so that
- we can set the global message_dialog pointer back to NULL when it
- gets destroyed. Fixes bug #40043.
-
-2003-03-20 Dan Winship <danw@ximian.com>
-
- * mail-ops.c (build_from): Remove this since there's a function in
- CamelMimeMessage to do it now.
- (save_messages_save): Use camel_mime_message_build_mbox_from.
-
-2003-03-21 Not Zed <NotZed@Ximian.com>
-
- ** for mail part of bug #38461.
-
- * importers/evolution-outlook-importer.c (load_file_fn): dont pass
- in create flag to uri_to_folder, the folder must already exist.
-
- * importers/evolution-mbox-importer.c (folder_created_cb):
- Removed, we now force the caller to create the destination folder
- first.
- (load_file_fn): Dont try and create a folder if it doesn't exist.
- Also, use the uri directly as the destination uri, so we can
- import into any folder.
- (process_item_fn): If we dont have a folder, thats just an error,
- return BAD_FILE.
-
- * importers/netscape-importer.c (netscape_import_file): As below
- for elm_import_file.
- (import_next): similarly as for pine import_next.
- (importer_cb): just record result.
- (importer_timeout_fn): removed.
-
- * importers/pine-importer.c (import_next): Similar to below for
- the elm import_next.
- (pine_import_file): As below for elm_import_file.
- (importer_timeout_fn): removed.
- (importer_cb): just record the result, and exit.
- (import_next): change around to behave more like the elm importer,
- cleaning up when we're done.
-
- * importers/elm-importer.c (elm_import_file): Create the
- destination folder ourselves, dont pass it onto the mbox importer.
- Simplify logic, just do the import within a while loop, polling
- the g main loop as necessary, remove need for idle callbacks and
- other crap.
- (import_next): If elm_import_file fails, then just go straight to
- the next folder, stops it falling in a heap.
- (import_item_idle): removed.
- (importer_cb): just record result/exit.
-
- * mail-importer.c (mail_importer_create_folder): removed.
- (mail_importer_make_local_folder): new function to create a
- local-only folder from a path. It runs synchronously by using a
- recursive main loop.
- (folder_created_cb): callback for make_local_folder.
-
-2003-03-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (mail_config_druid_new): Revert ettore's
- broken patch.
-
- * mail-search-dialogue.c: Removed - nothing uses this.
-
-2003-03-19 Ettore Perazzoli <ettore@ximian.com>
-
- * importers/GNOME_Evolution_Mail_Mbox_Importer.server.in.in:
- Replace "evolution:menu-name" prop with "evolution:menu_name".
- [#39692]
- * importers/GNOME_Evolution_Mail_Outlook_Importer.server.in.in:
- Likewise.
-
-2003-03-19 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-config-druid.c (mail_config_druid_new): Give the druid the
- DIALOG hint. [#39741 and friends.]
-
-2003-03-19 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c (spell_load_values): changed default
- language to en_us instead of en
- (spell_language_button_press): new handler, ported from 1.2
- (spell_setup): use spell_language_enable and
- spell_language_button_press
-
-2003-03-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_get_message):
- e_msg_composer_get_subject() now returns a const char *, so update
- appropriately.
-
-2003-03-18 Larry Ewing <lewing@ximian.com>
-
- * mail-callbacks.c (do_mail_print): fix leak, cleanup variable
- name, and call gtk_window_set_transient_for with a parent that is
- actually a GtkWindow.
- (mark_as_unseen): use g_source_remove.
-
-2003-03-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (mail_config_druid_new): Set the type hint
- to DIALOG so that Metacity shows this window on top. Fixes bug
- #39914.
-
-2003-03-18 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (new_rule_clicked): validate rule & rule is
- unique. Workaround for #39464. Should this just use
- rule_context_add_rule_gui??
-
- * mail-search.c (mail_search_destroy): unhook from the html engine
- signals here, before we redisplay the message. Also make sure
- this processing only happens once. For #39759.
- (mail_search_finalise): dont unhook from signals here.
-
-2003-03-12 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c (expunge_folder): use a hack to find out if the
- message-list was focussed before we desensitise it.
- (expunged_folder): If the message-list was focussed before,
- re-grab the focus. For bug #29564.
-
-2003-03-17 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-signature-editor.c (mail_signature_editor): Give the editor
- the GDK_WINDOW_TYPE_HINT_DIALOG hint. [#38926]
-
-2003-03-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (pixbuf_gen_idle): If we fail to load the pixbuf,
- don't use it (stops some g_warnings).
-
- Part of a fix for bug #39809
-
- * mail-vfolder.c (vfolder_edit): Don't add the cancel button here.
-
- * mail-callbacks.c (filter_edit): Don't add the cancel button here.
-
-2003-03-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (do_external_viewer): Lookup the handler for the
- type. If we don't have a registered handler or if the registered
- handler is not meant to be handled via a bonobo component, don't
- use a bonobo component.
-
- * mail-format.c (mail_lookup_handler): If we register a new
- handler that is to be handled by a bonobo component, set
- handler->is_bonobo to TRUE.
-
-2003-03-14 Dan Winship <danw@ximian.com>
-
- * component-factory.c (storage_connect, storage_connected): Update
- for EvolutionStorage change
-
-2003-03-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-signature-editor.c (menu_file_save_cb): Rewritten to do the
- same as the composer's build_message() code.
-
-2003-03-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (account_add_clicked): Use
- gtk_window_set_transient_for() on the druid with the settings
- dialog as the parent window.
-
-2003-03-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-signature-editor.c (do_exit): Remove the yes/no
- buttons. Fixes bug #39382.
-
- * mail-accounts.c (account_able_toggled): New callback function to
- handle the checkbox getting toggled.
- (mail_accounts_treeview_new): Save the toggle renderer so we can
- later connect to it's toggled signal.
- (mail_accounts_tab_construct): Connect to the toggle-cell's
- toggled signal. Fixes bug #39325.
-
-2003-03-11 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (vfolder_editor_response): Fix the response code,
- because some bastard changed the filter/* code and didn't fix the
- callers. Partial fix for #39165.
-
-2003-03-10 Not Zed <NotZed@Ximian.com>
-
- * Makefile.am (libevolution_mail_la_SOURCES): removed main.c from
- the build.
-
- * component-factory.c (component_factory_init): Remove, not used
- anymore, causes linking problems some places.
- (factory): Removed the debug printf. Added a case for the
- composer. Part of fixing #39256.
-
-2003-03-07 Jeffrey Stedfast <fejj@ximian.com>
-
- All this snot just to fix bug #38925 and an attempt to fix bug
- #38926 (but it seems no matter what I do, I can't work around the
- bonoboness/modality/whatever of the shell's preferences dialog).
-
- * mail-account-gui.c (sig_add_new_signature): Get the toplevel
- parent GtkWindow and pass that along to
- mail_composer_prefs_new_signature() so that window layering can be
- done correctly.
-
- * mail-composer-prefs.c (mail_composer_prefs_new_signature):
- Simplify. We don't want to add the signature to the list until
- after they have saved.
- (sig_edit_cb): Pass FALSE as the is_new argument to
- mail_signature_editor().
- (sig_event_client): Listen for signatures being added.
- (mail_composer_prefs_new_signature): Now takes a GtkWindow arg as
- the first arg rather than a MailComposerPrefs arg since we don't
- really need it to be a MailComposerPrefs object. We'd rather use
- the first arg as the parent GtkWindow so that we can set
- transience for the editor window.
-
- * mail-signature-editor.c (mail_signature_editor): Now takes a
- 'parent' argument (so we can set transient_for()) and a 'is_new'
- argument specifying whether the editor is editing a new signature
- or not. If it is, when the user saves, it will be added to the
- signature list. otherwise it won't.
- (sig_name_changed): Only use the mail_config_signature_set_name()
- interface if it is *not* a new signature.
- (menu_file_save_cb): If is_new, then save the signature to the
- config - otherwise do what we did before and set the modifications
- to it and emit the CHANGED event.
-
- * mail-config.c (mail_config_signature_new): Renamed from
- mail_config_signature_add(). We no longer immediately add the
- signature to the list of saved signatures.
- (mail_config_signature_add): New function which adds the signature
- and emits the SIG_ADDED event.
-
-2003-03-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (on_url_requested): If the part url is a text
- part, use mail_format_data_wrapper_write_to_stream(). This should
- fix bug #39204.
-
- * mail-format.c (mail_format_data_wrapper_write_to_stream): Make public.
-
-2003-03-06 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-accounts.c (mail_accounts_treeview_new): Set the
- shadow_type of the scrlled window to GTK_SHADOW_IN.
-
-2003-03-06 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-config.glade: Add some spacing to the buttons. [#38227]
-
-2003-03-06 Ettore Perazzoli <ettore@ximian.com>
-
- * importers/evolution-mbox-importer.c (IN): Use G_GNUC_FUNCTION
- instead of __FUNCTION__.
- (OUT): Likewise.
- * importers/netscape-importer.c (netscape_import_file): Likewise.
- * mail-send-recv.c (receive_done): Likewise.
- * mail-summary.c (SUMMARY_OUT): Likewise.
- (SUMMARY_IN): Likewise.
- (folder_changed_cb): Likewise.
- (message_changed_cb): Likewise.
-
-2003-03-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-factory.c: #include <string.h>
-
- * e-searching-tokenizer.c (camel_utf8_getc): Don't use __inline__
- as not all platforms/compilers support this keyword.
- (g): Same.
-
-2003-03-06 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (owner_unset_cb): remove debug printf.
-
-2003-03-05 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (idle_quit): Removed old quit code.
- (owner_unset_cb): Make this call synchronous. Wont cover all
- cases but should be ok most of the time.
-
-2003-03-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-search.c: Prototype some functions to shut the compiler up.
-
- * mail-callbacks.c (composer_get_message): Go back to using
- e_destination_get_address() but use the camel-address parser on
- the strings to make sure they are non-empty. Fixes bug #37854.
-
-2003-03-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-signature-editor.c (menu_file_save_cb): Use 'filename' when
- creating the uri rather than using the uninitialised 'uri'
- variable to create itself. Fixes bug #38864.
-
-2003-03-03 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (do_user_message): Do the same as below for
- request_password, so we dont leave a mainloop lying around.
-
-2003-03-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (request_password): Don't connect to the response
- signal if we are in the main thread - instead just use the return
- value from gtk_dialog_run and then call pass_response() with the
- response value.
-
-2003-03-03 Not Zed <NotZed@Ximian.com>
-
- * subscribe-dialog.c (fe_got_children): Remove the
- e_tree_memory_sort_node, currently it crashes inside gal, the root
- node seems to get free'd under it.
-
-2003-02-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-preferences.c: Reverted back to using e-iconv
-
- * mail-composer-preferences.c: Same.
-
-2003-02-26 Dan Winship <danw@ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: add a repo_id and a priority
- level to the startup wizard
-
-2003-02-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c: Reverted back to using e-iconv instead of
- camel-iconv.
-
-2003-02-25 Dan Winship <danw@ximian.com>
-
- * mail-config-druid.c: Update for new EvolutionWizard interfaces.
-
-2003-02-25 Dan Winship <danw@ximian.com>
-
- * mail-config-druid.c: Redo this to not use the CORBA interfaces
- in the local case (in preparation for redoing the CORBA
- interfaces).
- (mail_config_druid_new): Remove unused "shell" arg
-
- * mail-account-gui.c (mail_account_gui_transport_complete): Don't
- crash if there's no transport selected at all.
- (mail_account_gui_new): Don't try to set cc_addrs/bcc_addrs if
- they're NULL.
-
- * mail-accounts.c (account_add_clicked): Don't need to pass shell
- to mail_config_druid_new.
-
- * mail-callbacks.c (configure_mail): Don't need to pass shell to
- mail_config_druid_new.
-
-2003-02-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (request_password): Make sure m->config_service
- is non-NULL before using m->config_service->save_passwd since PGP
- stuff will not have a config_service. Fixes bug #38149.
-
- * mail-account-gui.c (mail_account_gui_save):
- s/e_account_list_changed/e_account_list_change - otherwise we get
- an undefined symbol and we crash :-)
-
- * mail-composer-prefs.c (mail_composer_prefs_new_signature): Don't
- always append "[script]" to the signature name. Also cleaned up
- some memory leakage.
-
-2003-02-20 Not Zed <NotZed@Ximian.com>
-
- * mail-preferences.c (mail_preferences_apply): fix the g_snprintf
- stuff.
-
- * mail-config.c (mail_config_add_account): Use new
- e_account_list_add.
- (mail_config_remove_account): Use new e_account_list_remove.
- (mail_config_set_default_account): Similarly for
- e_account_list_set_default.
- (mail_config_get_default_account): Same for
- e_account_list_get_default.
- (mail_config_get_account_by_name): Use e_account_list_find.
-
- * mail-account-gui.c (mail_account_gui_save): use new
- e_account_list_changed call instead of manual signalling.
-
-2003-02-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c: Set the local provider description field to a
- string rather than NULL to prevent a segfault on solaris. Fixes
- bug #38418.
-
-2003-02-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (write_text_header): bitwise-or in
- CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES to fix bug #38499.
-
- * mail-search.c (mail_search_destroy): New overloaded virtual
- method, does what dialog_destroy_cb was trying to do.
- (mail_search_construct): Connect to the "response" signal rather
- than "clicked" to correspond to the GtkDialog API
- (instead og the old GnomeDialog API).
- (dialog_response_cb): Changed the function name and made it check
- button == GTK_RESPONSE_ACCEPT to search, any other button
- closes. Fixes bug #37947.
-
-2003-02-21 Hans Petter Jansson <hpj@ximian.com>
-
- * component-factory.c (factory): Don't try to get a FontPrefs control.
-
- * mail-config-factory.c (mail_config_control_factory_cb): Just return
- NULL if a FontPrefs control was requested.
-
- * mail-config.c (mail_config_get_default_account): If no accounts
- are defined, don't try to set the default account.
-
-2003-02-21 Dan Winship <danw@ximian.com>
-
- * Makefile.am (libevolution_mail_la_LIBADD): Remove libebook's
- dependencies.
-
- * importers/Makefile.am (libevolution_pine_importer_la_LIBADD):
- Likewise.
-
-2003-02-21 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_build_extra_conf): Use
- tables instead of vboxes, so that groups of label/entry pairs (as
- in Connector's config page) can line up nicely.
-
- * mail-config.glade: Turn extra_vbox and extra_mailcheck_vbox into
- tables.
-
- * mail-config-druid.c (get_fn): s/extra_vbox/extra_table/
-
- * Makefile.am (libevolution_mail_la_LIBADD):
- s/libcomposer.a/libcomposer.la/
-
-2003-02-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mark_all_as_seen): Use
- camel_folder_free_uids().
-
- * mail-format.c (write_headers): Use
- camel_charset_canonical_name() here instead of
- e_iconv_charset_name().
-
- * mail-preferences.c (mail_preferences_construct): Same as below.
- (mail_preferences_apply): Again here.
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): Use
- camel_charset_locale_name() here instead of
- e_iconv_locale_charset().
- (mail_composer_prefs_apply): Same.
-
-2003-02-20 Dan Winship <danw@ximian.com>
-
- * Makefile.am (libevolution_mail_la_LIBADD):
- s/libemiscwidgets.a/libemiscwidgets.la/ and likewise for
- libefilterbar
-
-2003-02-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mark_all_as_seen): Fixed a memory leak - make
- sure to free all uids.
-
- * mail-config.c (uri_to_key): Removed.
- (lookup_signature): Removed.
- (xml_get_int): Removed.
- (xml_get_bool): Removed.
- (mail_config_get_time_24hour): Removed.
-
- * evolution-mail.schemas: s/long/int/g and change default_account
- to be a string instead of an int.
-
- * mail-config.c (mail_config_get_default_account): default_account
- now uses the account uid, so change the code a bit to match uid
- strings rather than use an index.
- (mail_config_remove_account): Same here. simplifies the code a
- bunch.
- (mail_config_set_default_account): Here too.
-
- * folder-browser-ui.c (folder_browser_ui_setup_view_menus): Update
- the GalView path.
-
-2003-02-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (do_get_pass): Change the logic here
- slightly. Instead of only reprompting the user if the cache is
- empty, also reprompt the user if the backend is forcing a
- reprompt.
- (request_password): If we have a cached passwd string for the
- account, fill-in the GtkEntry box with that value by
- default. This, together with the camel changes, fixes the
- "Evolution forgets my POP passwd if it gets a -ERR response during
- the login phase" bug.
-
-2003-02-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * e-searching-tokenizer.c: #include <stdio.h>
-
- * mail-config-factory.c: #include <string.h>
-
- * mail-config-druid.c (identity_prepare): Use
- gtk_editable_select_region() since gtk_entry_select_region() has
- been deprecated.
- (construct): Use gtk_window_set_resizable() instead of
- gtk_window_set_policy().
- (wizard_free): account_destroy() is no longer around, use
- g_object_unref() instead. (how did this even compile before?)
-
- * mail-account-gui.c (mail_account_gui_build_extra_conf): Use
- gtk_label_set_text_with_mnemonic() instead of
- gtk_label_parse_uline() as the latter has been deprecated.
-
-2003-02-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * importers/netscape-importer.c: Removed unused variables.
-
- * importers/pine-importer.c: Removed unused variables.
- (parse_address): Removed - it's unused and we have CamelAddress
- available to us anyway.
-
- * importers/elm-importer.c: Removed unused variables.
-
- * importers/evolution-mbox-importer.c (load_file_fn): Removed an
- unused variable.
-
-2003-02-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (construct): Use
- gtk_window_set_resizable() instead of gtk_window_set_policy().
-
- * mail-config.c: Fix a bunch of warnings.
- (mail_config_signature_write): Removed.
-
- * mail-callbacks.c: Removed unused variables.
-
- * mail-accounts.c (mail_accounts_tab_class_init): Register a
- destroy virtual method.
- (mail_accounts_tab_destroy): Set mail_display->destroyed = TRUE.
-
- * message-list.c (message_list_destroy): Set
- mail_display->destroyed = TRUE. This is a workaround for the
- GTK_OBJECT_DESTROYED() macro that we used to use before.
-
- * mail-display.c (mail_display_destroy): Set
- mail_display->destroyed = TRUE. This is a workaround for the
- GTK_OBJECT_DESTROYED() macro that we used to use before.
-
-2003-02-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (build_tree): Use g_signal_emit() rather than
- gtk_signal_emit().
- (build_flat): Same here.
-
- * mail-signature-editor.c: #include <string.h>
-
- * mail-vfolder.c: #include <string.h>
-
- * mail-session.c: #include <string.h>
-
- * mail-search.c: #include <string.h>
-
- * mail-mt.c: #include <string.h>
-
- * mail-ops.c (save_part_save): Use strcasecmp() instead of
- g_strcasecmp().
-
- * mail-local.c: #include <string.h>
- (reconfigure_folder_reconfigured): Use a GtkDialog instead of
- gnome_error_dialog().
-
- * mail-format.c (find_preferred_alternative): Use g_ascii_strdown
- since g_strdown is deprecated.
- (fake_mime_part_from_data): Removed, no longer used it seems.
- (destroy_part): Also removed.
-
- * mail-display.c (make_popup_window): Replace call to
- gtk_window_set_polociy() with gtk_window_set_resizable() instead.
- (popup_size_allocate_cb): Use gtk_window_set_position() with
- GTK_WIN_POS_MOUSE instead of calculating the position to put it
- in.
-
-2003-02-10 Ettore Perazzoli <ettore@ximian.com>
-
- * importers/Makefile.am: Split the ORBit IDL compilation rules to
- work properly with parallel makes.
- (BUILT_SOURCES): Add this.
- (CLEANFILES): Add this.
-
- * Makefile.am: Split the ORBit IDL compilation rules to work
- properly with parallel makes.
- (BUILT_SOURCES): Add $(IDL_GENERATED) here.
- (CLEANFILES): Remove from here.
-
-2003-02-10 Rodney Dawes <dobey@ximian.com>
-
- * importers/Makefile.am: Add LDFLAGS to ported libs
-
-2003-02-10 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (save_url): look in the http cache for images
- when saving
- (image_save_as): remove random warning.
- (do_external_viewer): remove unused variable.
- (do_attachment_header): use g_ascii_strdown
-
-2003-02-07 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (save_data_cb): don't use random memory as a
- gconf client.
-
-2003-02-06 Chris Toshok <toshok@ximian.com>
-
- * importers/pine-importer.c (import_addressbook): track change to
- e_book_load_uri type.
-
-2003-02-06 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser.c (on_right_click): Use
- e_auto_kill_popup_menu_on_selection_done() instead of
- e_auto_kill_popup_menu_on_hide().
-
-2003-02-06 Dan Winship <danw@ximian.com>
-
- * Makefile.am (INCLUDES): add EVOLUTION_PRIVDATADIR. Fix
- EVOLUTION_ICONSDIR
-
- * component-factory.c (owner_set_cb): Use EVOLUTION_PRIVDATADIR
- * mail-autofilter.c (filter_gui_add_from_message): Likewise
- (mail_filter_rename_uri): Likewise
- (mail_filter_delete_uri): Likewise
- * mail-callbacks.c (filter_edit): Likewise.
- * mail-search-dialogue.c (mail_search_dialogue_construct):
- Likewise
- * mail-session.c (main_get_filter_driver): Likewise
- * mail-summary.c (generate_folder_summaries): Likewise
- * mail-vfolder.c (vfolder_load_storage): Likewise
-
-2003-02-06 Dan Winship <danw@ximian.com>
-
- * Makefile.am: Remove *dir defs that are in configure.in now
- (INCLUDES): clean up using new *dir variables
- (libevolution_mail_la_LDFLAGS): remove -export-dynamic, add
- -module
-
- * main.c (main): s/PACKAGE/GETTEXT_PACKAGE/ in gettext init
-
- * importers/Makefile.am (INCLUDES): change EVOLUTION_DATADIR to
- EVOLUTION_PRIVDATADIR
-
- * importers/netscape-importer.c (netscape_import_filters): use
- EVOLUTION_PRIVDATADIR
-
-2003-02-06 Larry Ewing <lewing@ximian.com>
-
- * mail-session.c (pass_activate): add an activate handler to the
- entry so that hitting return will return an OK response.
-
-2003-02-05 Dan Winship <danw@ximian.com>
-
- * main.c (main): s/glade_gnome_init/glade_init/
-
-2003-02-05 Not Zed <NotZed@Ximian.com>
-
- * importers/netscape-importer.c: update from ../../importers/.
- (main): Removed.
- (mail_importer_module_init): Setup module init fn.
- (factory_fn): api changes.
- (is_dir_empty): deprecated changes, and clean up logic.
- (importer_cb): pulse progress bar, use idle function for
- processing next item.
- (import_next): Remove link before recursing, also fix memleak, and
- api changes.
- (netscape_import_file): dont release importer.
- (*): gconf'ify
-
- * importers/elm-importer.c (elm_factory_fn): Track the
- evolution_intelligent_importer, so we can unref it when done.
- (*): gconf'ify.
-
- * importers/pine-importer.c (parse_line): use gobject stuff rather
- than gtkobject.
- (import_addressfile): close down 'properly' when finished.
- (importer_timeout_fn): Do most processing decisions here, either
- from a timeout or idle function. This prevents us getting 1 stack
- frame per message and per folder. Close down properly also.
- (importer_cb): Add a timeout, ignore the callback, or add an idle
- function to process the next item.
- (pine_import_file): dont release the importer if we can't load it,
- its released elsewhere, i think.
- (import_addressfile): step the progress bar as we go.
- (factory_fn): Track the evolution_intelligent_importer, so we can
- unref when done.
- (*): gconf'ify
-
-2003-01-31 Not Zed <NotZed@Ximian.com>
-
- * importers/elm-importer.c (elm_can_import): g_file_exists ->
- lstat, and g_build_filename api changes.
-
- * importers/pine-importer.c: moved from
- ../../importers/pine-importer.c
- (factory_fn): oaf->bonobo_activation
- (mail_importer_module_init): setup factory.
- (main): Removed.
- (*): REemove bonobo config stuff.
- (factory_fn): destroy signal -> weak ref.
- (pine_destroy_cb): Fix signature for weak ref notify.
- (import_addressfile): use new glib filename stuff.
- (import_addressbook): same.
- (pine_can_import): and here.
- (import_next): and here.
- (scan_dir): and here
- (pine_create_structure): And here.
- (pine_can_import): g_file_exists -> lstat.
- (importer_cb): If there are more items, use an idle handler to
- drop back a few stack frames rather than recursing for each
- message.
- (import_next): unlink data from dir_list before recursing, and fix
- leak.
-
-2003-01-30 Not Zed <NotZed@Ximian.com>
-
- * importers/elm-importer.c (elm_destroy_cb): Change for weak ref
- setup.
- (elm_factory_fn): destroy -> weak ref.
-
-2003-01-29 Not Zed <NotZed@Ximian.com>
-
- * importers/elm-importer.c (importer_cb): Pass processItem off to
- an idle handler, so we dont blow our stacks. Also update to use
- progress_bar_pulse().
- (import_item_idle): Get the next message here instead.
- (import_next): Fix a glist leak. Unlink the file before we import
- it too. And close the dialogue and clean up when we've run out of
- folders to import.
-
-2003-01-17 Not Zed <NotZed@Ximian.com>
-
- * importers/elm-importer.c (elm_create_structure): use/free elmdir
- rather than double-free maildir.
-
-2003-01-16 Not Zed <NotZed@Ximian.com>
-
- * importers/elm-importer.c: update from ../importers/elm-importer.c
-
-2003-02-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (mail_regen_list): Get the thread_subject setting
- here instead of in regen_list_regen since that function will be
- called in another thread and we can't make corba calls in anything
- but the main thread.
- (regen_list_regen): Don't make CORBA calls here! (shame on me).
-
- * mail-identify.c (mail_identify_mime_part): Just use
- gnome_vfs_get_mime_type_from_name() so we can forget all the crap
- I implemented before.
-
-2003-02-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (on_link_clicked): Pass in the *address* of the
- GError to gnome_url_show(), otherwise bad things happen :-)
-
-2003-01-31 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_get_labels): New function to return a
- cached list of labels.
- (mail_config_get_label_color_by_name): New convenience function to
- search the cached labels.
- (mail_config_get_label_color_by_index): Same.
- (mail_config_init): Cache the labels and also listen for changes
- to them in the gconf db.
- (config_cache_labels): Internal function to cache the labels.
-
- * folder-browser.c (on_right_click): Fixed the label colours in
- the menu by using the cached linked list of labels.
-
- * mail-preferences.c (colorpicker_set_color): Now takes a string
- argument allowing us to get rid of converting a string into an rgb
- guint32 all over the place when trying to set defaults, since we
- now store colors in gconf as strings.
- (mail_preferences_construct): Use the cached labels (they are
- already parsed for us).
-
-2003-01-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (storage_remove_folder): Change
- strcmp(fi->path, path) to strcmp(fi->name, name) and now the
- execution takes the right path. My patch base on Callie's patch
- for bug #33525.
-
- * mail-identify.c (mail_identify_mime_part): Fixed a #warning by
- converting a local path into a file: uri before feeding it to
- gnome-vfs.
-
- * message-list.c (message_list_set_folder): Removed a FIXME that
- I've decided is no longer needed.
-
-2003-01-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_add_account): Emit the account-added
- event.
- (mail_config_remove_account): Emit the account-removed event.
-
- * mail-account-gui.c (mail_account_gui_save): Emit the changed
- event on the account-list for the changed account.
-
-2003-01-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_add_global): Set the
- paned_size here.
-
- * folder-browser.c (folder_browser_gui_init): Don't bother
- connecting to the hide-deleted, message-display-style, paned-size,
- nor show-preview gconf notifications anymore, since we can just
- set them when the view becomes active again in
- folder-browser-ui.c. Cuts down on extra overhead.
- (folder_browser_destroy): No need to disconnect from those
- notifications anymore either.
-
-2003-01-24 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (iconsdir): Remove, this is now defined in
- configure.in.
-
-2002-12-07 leon.zhang <leon.zhang@sun.com>
-
- * component-factory.c (user_create_new_item_cb): transfer the
- current acount info, which will be regarded as the sender of
- new composer, to send_to_url().
-
- * mail-callbacks.h (send_to_url): Add a new parameter for parent
- folder uri.
-
- * mail-callbacks.c (send_to_url): Create composer base on source
- account info from parent folder physical uri.
- (post_to_url): create composer based on current account from
- parent folder physical uri.
-
- * mail-display.c (on_link_clicked): Apply new format of function:
- send_to_url.
-
- Fixes bug #35123 #35289
-
-2003-01-24 Not Zed <NotZed@Ximian.com>
-
- * mail-local.c (non_equal): We do actually need to check they are
- file url's, otherwise, all url's match.
-
-2003-01-23 Rodney Dawes <dobey@ximian.com>
-
- * folder-browser.c (fb_resize_cb): Use button_release instead of
- size_allocate, and get the position from the Paned widget to prevent
- calling CORBA all the time for GConf stuff
-
-2003-01-23 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (componentdir): Removed definition; this is now
- defined in configure.in.
-
-2003-01-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_get_thread_list): Removed.
- (mail_config_set_thread_list): Removed.
- (mail_config_uri_renamed): No longer needs to change threaded
- state for each url either.
- (mail_config_write_on_exit): Updated.
-
- * folder-browser-ui.c (folder_browser_ui_add_list): Get the
- threaded state via gconf.
-
- * folder-browser.c (folder_browser_toggle_threads): Save the
- threaded state.
-
-2003-01-22 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_setup_view_menus): Use
- EVOLUTION_GALVIEWSDIR.
-
- * message-browser.c (set_bonobo_ui): Get
- evolution-mail-messagedisplay.xml from EVOLUTION_UIDIR.
-
- * mail-signature-editor.c (mail_signature_editor): Get
- evolution-signature-editor.xml from EVOLUTION_UIDIR.
-
- * folder-browser-ui.c (ui_add): Get the evoluiton-mail* XML files
- from EVOLUTION_UIDIR.
-
- * Makefile.am (INCLUDES): Define EVOLUTION_GALVIEWSDIR; update
- EVOLUTION_IMAGESDIR to include the $(BASE_VERSION).
- (gladedir): Version using $(BASE_VERSION).
- (etspecdir): Likewise.
- (iconsdir): Likewise.
- (buttonsdir): Likewise.
- (etspecdir): Likewise.
-
- * component-factory.c (owner_set_cb): Look for vfoldertypes.xml in
- the new version-aware location.
- * mail-summary.c (generate_folder_summaries): Likewise.
- * mail-search-dialogue.c (mail_search_dialogue_construct): Likewise.
- * mail-vfolder.c (vfolder_load_storage): Likewise.
-
- * mail-autofilter.c (filter_gui_add_from_message): Look for
- filtertypes.xml in the new version-aware location.
- (mail_filter_rename_uri): Likewise.
- (mail_filter_delete_uri): Likewise.
- * mail-session.c (main_get_filter_driver): Likewise.
- * mail-callbacks.c (filter_edit): Likewise.
-
-2003-01-22 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (do_mail_print): put unrealized html widget
- into top level widget (gtk window) before realizing it
- destroy temporary widgets (w, html)
-
-2003-01-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_remove_account): Don't unref the
- account object, e_list_remove() apparently handles this for us.
-
- * mail-accounts.c (account_delete_clicked): Don't unref the
- confirm dialog, it was already destroyed.
-
-2003-01-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * evolution-mail.schemas: Default to hiding deleted
- messages. Fixes bug #35929.
-
- * mail-preferences.c (entry_changed): Removed.
- (toggle_button_toggled): Removed.
- (settings_changed): New callback that replaces the two above. No
- need to have multiple callback functions when the signature is the
- same.
-
- * folder-browser.c (folder_browser_toggle_hide_deleted): Don't
- !atoi (state) for the message_list_set_hidedeleted() call.
-
-2003-01-18 Larry Ewing <lewing@ximian.com>
-
- * mail-callbacks.c (save_msg_ok): e_question returns a boolean,
- don't test for a specific value.
-
- * mail-display.c (html_button_press_event): make the event
- handlers return FALSE so that gtkhtml can process the events.
- (on_link_clicked): call gnome_url_show with all its arguments so
- that it actually does something. Also pass news and nntp urls to
- gnome_url_show so that they can be handled properly.
-
-2003-01-17 Larry Ewing <lewing@ximian.com>
-
- * mail-format.c (handle_text_enriched): wrap eriched entries with
- a table so that they get proper indentation.
-
-2003-01-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (do_get_pass): Updated.
- (request_password): Same.
-
- * mail-send-recv.c (mail_send): Fixed to use EAccountService.
-
- * mail-config-druid.c (make_account): Updated to use EAccount and
- friends.
-
- * mail-account-gui.c (service_check_supported): Updated to use
- EAccountService.
- (mail_account_gui_new): Ref the account passed in and also update
- to use EAccount objects.
- (save_service): Updated to use an EAccountService.
- (add_new_store): Updated to use an EAccount.
- (mail_account_gui_save): Updated to use EAccounts.
- (setup_signatures): Updated because the new account->id->def_sig
- is now an int and not a structure pointer.
-
- * mail-account-editor.c (construct): Updated.
- (mail_account_editor_new): Now takes an EAccount object as an
- argument instead of a MailConfigAccount.
-
- * mail-crypto.c (mail_crypto_get_pgp_cipher_context): Updated to
- use EAccounts.
-
- * subscribe-dialog.c (populate_store_foreach): Removed.
- (populate_store_list): Can't use populate_store_foreach here
- because of the change to EAccountList so do it manually.
-
- * mail-vfolder.c (uri_is_ignore): Rewrote to use EAccountList and
- EIterator and all that fun.
-
- * mail-send-recv.c (build_dialogue): Updated to use EAccountList
- and EAccount object stuff. *ugh*
- (mail_send_receive): Here too.
- (mail_autoreceive_setup): Same.
-
- * mail-callbacks.c (check_send_configuration): Updated.
- (composer_get_message): Updated.
- (compose_msg): "
- (list_add_addresses): "
- (guess_me): "
- (guess_me_from_accounts): Same.
- (forward_get_composer): Here too.
- (mail_generate_reply): Same.
- (redirect_get_composer): "
- (empty_trash): And finally here.
-
- * mail-accounts.c (account_edit_clicked): Updated.
- (account_delete_clicked): Same.
- (account_default_clicked): Here too.
- (account_able_clicked): "
- (account_cursor_change): "
- (mail_accounts_load): Again here.
-
- * folder-browser.c (folder_browser_is_drafts): Updated to use
- EAccountList and EAccount stuff.
- (folder_browser_is_sent): Same.
-
- * component-factory.c (mail_load_storages): Updated to use
- EAccount and EAccountList stuff.
- (owner_set_cb): Same.
- (send_receive_cb): Here too.
-
- * mail-config.c: Rewritten to use EAccount and EAccountList
- objects.
-
-2003-01-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (get_fn): Connect to the toggled event on
- the transport_needs_auth toggle button so if the user turns this
- off after having deleted the username field, the Next button
- becomes re-enabled. Fixes bug #36862.
-
-2003-01-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c (sig_fill_clist): Same as below.
-
- * mail-account-gui.c (sig_fill_options):
- mail_config_get_signature_list() now returns a GSList instead of a
- GList.
-
- * mail-config.c (signature_new_from_xml): New function to parse a
- signature xml blob into a MailConfigSignature structure.
- (config_read_signatures): Rewritten to use above function.
- (signature_to_xml): New function to write a signature to xml.
- (config_write_signatures_num): Removed.
- (config_write_signature): Removed.
- (config_write_signatures): Rewritten to use signature_to_xml and
- gconf.
-
-2003-01-16 Dan Winship <danw@ximian.com>
-
- * mail-config.h (MailConfigAccount): Add a UID field (to match
- EAccount), which never changes and can be used by gconf watchers
- to distinguish an account rename from a deletion and creation.
-
- * mail-config.c (account_copy): Create a new UID on the new
- account.
- (account_new_from_xml): Read the UID. (If it doesn't have one,
- make one.)
- (account_to_xml): Write the UID.
-
- * mail-config-druid.c (make_account): add a UID to each account
-
-2003-01-15 Not Zed <NotZed@Ximian.com>
-
- * mail-accounts.c (account_able_clicked): Change the
- enable/disable button when the state changes.
-
-2003-01-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (save_metainfo): Back to using e_xml_save_file().
-
-2003-01-14 Ettore Perazzoli <ettore@ximian.com>
-
- * message-tag-editor.c (message_tag_editor_init): Make dialog
- Cancel/OK to match HIG.
-
- * mail-signature-editor.c (do_exit): Make confirmation dialog
- Discard/Cancel/Save to match the HIG.
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): Make
- dialog Cancel/OK to match HIG.
-
- * mail-account-editor.c (construct): Make the dialog
- Apply/Close/OK to match HIG.
-
-2003-01-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Call
- mail_config_save_accounts ().
-
- * mail-config.c (mail_config_save_accounts): New function to save
- accounts without having to re-load them.
-
-2003-01-14 Radek Doulik <rodo@ximian.com>
-
- * folder-browser.c (etree_key): use gtk_scrolled_window_*
- functions for mail_display->scroll
-
- * mail-display.c (mail_display_new): use gtk_scrolled_window_*
- functions
-
- * mail-display.h: use GtkScrolledWindow instead of EScrollFrame
-
-2003-01-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (pixmap_press): Change the user_data argument to
- be of type gpointer instead of EScrollFrame, since, well, it's not
- an EScrollFrame anymore.
-
-2003-01-14 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (libevolution_mail_la_SOURCES): Add mail-format.h.
- (EXTRA_DIST): Add $(schema_DATA).
-
-2003-01-14 Rodney Dawes <dobey@ximian.com>
-
- * Makefile.am: Make the component be unversioned as a shlib
-
-2003-01-14 Rodney Dawes <dobey@ximian.com>
-
- * folder-browser.c: Use GtkPaned instead of EPaned
-
-2003-01-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (account_new_from_xml): Perform some sanity
- checking on the auto-check-timeout value.
-
- * folder-browser.c (folder_browser_copy): Correctly create the
- clipboard buffer by using a nul to delimit the uri and the list of
- uids.
-
- * folder-browser-ui.c (folder_browser_ui_add_message): Check the
- state of message_style in gconf and set the menus accordingly.
-
- * folder-browser.c (folder_browser_destroy): Remove listener for
- message_style change notification.
- (folder_browser_gui_init): Connect a listener for changes to
- message_style.
-
- * mail-config.c (account_to_xml): Save the auto-check timeout
- value.
- (account_new_from_xml): Load the auto-check-timeout value.
-
-2003-01-13 Dan Winship <danw@ximian.com>
-
- * folder-info.c: s/BonoboXObject/BonoboObject/
-
- * mail-config.c: Likewise
-
- * mail-offline-handler.c: Likewise
-
-2003-01-13 Not Zed <NotZed@Ximian.com>
-
- * mail-mt.c (mail_msg_check_error): hook onto destroy to remove
- dialogue from active table.
- (error_response): Just destroy on any response, dont unref either.
-
-2003-01-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_format_data_wrapper_write_to_stream):
- g_strdup the md->charset otherwise we'll get memory corruption
- later. This may be why non-usascii text is displaying incorrectly.
-
-2003-01-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_add_list): We also need
- to call message_list_set_hidedeleted() here so that any
- deactivated folder controls will change to the currently set state
- when re-activated.
- (folder_browser_ui_add_global): Same for show_preview.
-
- * folder-browser.c (hide_deleted_changed): Don't call
- message_list_set_hidedeleted() here.
- (folder_browser_toggle_hide_deleted): Instead, call it here. This
- way we get a faster "response time". Also, this will make it so
- that not all folder controls will regen their message-list at the
- same time.
- (folder_browser_toggle_preview): Same idea as the hide-deleted
- changes.
- (show_preview_changed): See above.
-
- * mail-config-druid.c (make_account): Default the new account to
- enabled.
- (wizard_finish_cb): Don't set enabled here.
-
-2003-01-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (hide_deleted_changed): New callback for when
- the HideDeleted state changes.
- (folder_browser_gui_init): Listen for changes to hide_deleted so
- we can update the menu state.
- (folder_browser_destroy): Remove the hide_deleted notify handler.
- (folder_browser_toggle_hide_deleted): When saving the setting,
- remember that it is !atoi (state) rather than atoi (state) because
- show vs hide. yea.
-
- * mail-session.c (main_get_filter_driver): notify-type is a int,
- not a bool. Duh.
-
-2003-01-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (factory): Updated for function rename.
-
- * mail-config-factory.c (mail_config_control_factory_cb):
- Namespaced the function name.
-
- * folder-browser-ui.c (folder_browser_ui_add_global): Don't add
- the listener for show_preview here, it was moved into
- folder-browser.c so we could detach the listener when the
- folder-browser is destroyed. Also prevents a listener being added
- multiple times (which was possible? before).
-
- * folder-browser.c (folder_browser_destroy): Remove the gconf
- notify handler for show_preview.
- (show_preview_changed): Moved here from folder-browser-ui.c
-
- * component-factory.c (storage_remove_folder): Fixed a situation
- in which we could notify the shell listener twice.
-
-2003-01-10 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_gui_init): Save the paned_size
- notify handle.
- (folder_browser_destroy): Remove gconf notify handler.
-
-2003-01-09 Chris Toshok <toshok@ximian.com>
-
- * mail-config-druid.c (wizard_finish_cb): enable the account
- before attempting to saving it.
-
- * mail-accounts.c (account_delete_clicked): need to show the
- buttons added to the dialog.
-
-2003-01-10 Not Zed <NotZed@Ximian.com>
-
- * mail-config.glade: Remove info.png from a couple of images, the
- image is set via code at runtime. Removes some annoying runtime
- warnings.
-
- * mail-send-recv.c (dialogue_response): dont unref the dialogue.
- (dialog_destroy_cb): null out the send_recv_dialogue after destroy.
- (build_dialogue): show the stop button
-
-2003-01-09 Chris Toshok <toshok@ximian.com>
-
- * folder-info.c (evolution_folder_info_notify_ready): pass bag to
- bonobo_pbclient_set_boolean.
-
-2003-01-09 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (owner_set_cb): Don't call
- mail_config_register_factory() or
- evolution_mail_config_wizard_init().
-
-2003-01-09 Not Zed <NotZed@Ximian.com>
-
- * mail-config-druid.c: Added druidpagestart1 to the pages list.
- (construct): Change the limits on the page initialisation, and
- widget_show_all on the page rather than the content.
-
- * GNOME_Evolution_Mail.server.in.in: Make Mail a shlib component.
-
- * folder-info.c (evolution_folder_info_factory_init): Removed.
- (evolution_folder_info_factory_fn): renamed to evolution_folder_info_new().
-
- * mail-config-druid.c (evolution_mail_config_wizard_factory_fn):
- Renamed to evolution_mail_config_wizard_new().
- (evolution_mail_config_wizard_init): Removed.
-
- * mail-config-factory.c (mail_config_register_factory): Remove.
- (config_control_factory_cb): make this public.
-
- * Makefile.am: setup evolution-mail as a shared library.
-
- * component-factory.c (make_factory): implement the bonobo-plugin
- factory for shlib operation. Also, preliminary work to setup mailer-specific
- (factory): Implement the factory which starts various components.
-
- * mail-config.c (xml_get_prop): g_free->xmlFree
- (account_to_xml): copy xml memory to glib memory when adding the 0
- on the end of the string.
- (accounts_save): Use slightly different logic with appending to
- the tail of the list, we can't use the &node trick with gslists.
- (accounts_changed): Same here.
-
-2003-01-08 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am: Images are now in $(datadir)/evolution/images
- instead of $(datadir)/images/evolution.
-
-2003-01-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_add_global): Call
- folder_browser_set_message_preview().
-
- * mail-config.c (mail_config_get_show_preview): Removed.
- (mail_config_set_show_preview): Removed.
-
- * folder-browser.c (folder_browser_toggle_preview): Simply set the
- gconf show_preview setting and let the code in folder-browser-ui.c
- detect it and update the UI.
-
- * folder-browser-ui.c (folder_browser_ui_add_global): Listen for
- changed events on the show_preview setting.
-
- * mail-config.c (mail_config_set_default_account): Save the
- setting via gconf.
- (mail_config_add_account): Immediately save the list of accounts.
- (mail_config_remove_account): Same.
- (mail_config_signature_run_script): g_free the charset value and
- use the composer's charset rather than the display charset.
- (mail_config_get_default_account_num): Removed.
-
-2003-01-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (save_cursor_pos): Use gconf to get the paned
- size.
- (folder_browser_set_message_preview): Same.
- (folder_browser_toggle_hide_deleted): Use gconf to set the
- hide-deleted state.
- (folder_browser_set_message_display_style): Same but for the
- message_display_style.
- (fb_resize_cb): Save the paned_size via gconf.
- (paned_size_changed): Callback for when the paned_size gets
- changed. Change the folder-browser's paned size to the new
- setting.
- (folder_browser_gui_init): Listen to changes to the paned_size and
- also get the initial size from gconf.
-
- * message-list.c (message_list_set_folder): Use gconf.
- (regen_list_regen): Use gconf.
-
- * message-browser.c (transfer_msg_done): Use gconf to get the
- hide_deleted setting.
-
- * mail-account-gui.c (sig_add_new_signature): Use gconf.
-
- * folder-browser-ui.c (folder_browser_ui_add_list): Use gconf.
-
- * folder-browser.c (save_cursor_pos): Use gconf.
- (folder_browser_set_message_preview): Same.
- (folder_browser_toggle_hide_deleted): Here too.
- (folder_browser_set_message_display_style): And here.
- (folder_browser_gui_init): Here too.
- (done_message_selected): And here.
-
- * mail-config.c (mail_config_get_thread_subject): Removed.
- (mail_config_set_thread_subject): Removed.
- (mail_config_get_empty_trash_on_exit): Removed.
- (mail_config_set_empty_trash_on_exit): Removed.
- (mail_config_get_last_filesel_dir): Removed.
- (mail_config_set_last_filesel_dir): Removed.
- (mail_config_get_hide_deleted): Removed.
- (mail_config_set_hide_deleted): Removed.
- (mail_config_get_paned_size): Removed.
- (mail_config_set_paned_size): Removed.
- (mail_config_get_send_html): Removed.
- (mail_config_set_send_html): Removed.
- (mail_config_get_confirm_unwanted_html): Removed.
- (mail_config_set_confirm_unwanted_html): Removed.
- (mail_config_get_citation_highlight): Removed.
- (mail_config_set_citation_highlight): Removed.
- (mail_config_get_citation_color): Removed.
- (mail_config_set_citation_color): Removed.
- (mail_config_get_do_seen_timeout): Removed.
- (mail_config_set_do_seen_timeout): Removed.
- (mail_config_get_mark_as_seen_timeout): Removed.
- (mail_config_set_mark_as_seen_timeout): Removed.
- (mail_config_get_prompt_empty_subject): Removed.
- (mail_config_set_prompt_empty_subject): Removed.
- (mail_config_get_prompt_only_bcc): Removed.
- (mail_config_set_prompt_only_bcc): Removed.
- (mail_config_get_confirm_expunge): Removed.
- (mail_config_set_confirm_expunge): Removed.
- (mail_config_get_confirm_goto_next_folder): Removed.
- (mail_config_set_confirm_goto_next_folder): Removed.
- (mail_config_get_goto_next_folder): Removed.
- (mail_config_set_goto_next_folder): Removed.
- (mail_config_get_http_mode): Removed.
- (mail_config_set_http_mode): Removed.
- (mail_config_get_default_forward_style): Removed.
- (mail_config_set_default_forward_style): Removed.
- (mail_config_get_default_reply_style): Removed.
- (mail_config_set_default_reply_style): Removed.
- (mail_config_get_message_display_style): Removed.
- (mail_config_set_message_display_style): Removed.
- (mail_config_get_default_charset): Removed.
- (mail_config_set_default_charset): Removed.
- (mail_config_get_x_mailer_display_style): Removed.
- (mail_config_set_x_mailer_display_style): Removed.
-
- * subscribe-dialog.c (populate_store_list): Use the list of
- accounts. We can't get the list of sources anymore.
- (populate_store_foreach): Updated.
-
- * mail-callbacks.c (guess_me_from_accounts): Use account->enabled.
- (mail_generate_reply): Same.
- (empty_trash): Here too.
-
- * mail-accounts.c (account_delete_clicked): Use account->enabled
- rather than source->enabled.
- (account_able_clicked): Same.
- (account_cursor_change): Here too.
- (mail_accounts_load): And here.
-
- * component-factory.c (owner_unset_cb): Use gconf empty-on-exit
- settings.
- (mail_load_storages): Use account->enabled rather than
- account->source->enabled. The struct changed.
-
- * mail-composer-prefs.c (sig_add): Get the send_html pref from gconf.
-
- * message-tag-followup.c (target_date_new): Use gconf.
-
- * mail-config.c (mail_config_get_week_start_day): Removed.
-
- * mail-tools.c (mail_tool_quote_message): Use gconf here too, but
- we don't need to parse the colour - just use it as a raw string.
- (mail_tool_forward_message): Use gconf.
-
- * mail-format.c (mail_format_data_wrapper_write_to_stream): Use gconf.
- (write_headers): Use gconf.
- (handle_text_plain): Same.
-
- * mail-display.c (mail_text_write): Updated to use gconf and parse
- GdkColour strings.
- (on_url_requested): Updated to use gconf.
-
- * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): Use gconf
- rather than the old mail-config APIs which will be removed.
- (ask_confirm_for_empty_subject): Same.
- (ask_confirm_for_only_bcc): Here too.
- (composer_get_message): And here.
- (create_msg_composer): Same.
- (transfer_msg_done): Again here.
- (delete_msg): Here too.
- (confirm_expunge): And finally here.
-
- * mail-config.c (mail_config_write): Use gconf.
- (mail_config_get_sources): Removed.
-
- * mail-account-gui.c (mail_account_gui_save): No need to save
- enabled-state anymore for a source.
-
- * mail-config-druid.c (wizard_finish_cb): Instead of setting
- account->source->enabled to TRUE, just set account->enabled to
- TRUE. The structures changed a bit.
-
- * mail-send-recv.c (mail_send_receive): Get the list of accounts
- instead of sources, and pass them along to build_dialogue. I'm
- trying to get rid of the mail_config_get_sources() api.
- (mail_autoreceive_setup): Here too.
-
- * mail-config.c (mail_config_get_filter_log): Removed.
- (mail_config_set_filter_log): Removed.
- (mail_config_get_filter_log_path): Removed.
- (mail_config_set_filter_log_path): Removed.
- (mail_config_get_new_mail_notify): Removed.
- (mail_config_set_new_mail_notify): Removed.
- (mail_config_get_new_mail_notify_sound_file): Removed.
- (mail_config_set_new_mail_notify_sound_file): Removed.
-
- * mail-session.c (main_get_filter_driver): Updated to use the
- gconf settings.
-
-2003-01-07 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_auto_detect_extra_conf,
- mail_account_gui_build_extra_conf): Don't translate the conf
- strings. Camel already did it.
-
-2003-01-06 Dan Winship <danw@ximian.com>
-
- * Makefile.am: remove idldir definition. (It's defined in
- configure.in now)
-
-2003-01-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Use
- e_destination_get_email() instead of e_destination_get_address()
- when checking that we have a list of valid recipients to send the
- message to because get_email() returns the addr-spec portion of
- the address, which is what we care about. if that doesn't exist,
- then the address is useless. This does all we can do mailer-side
- for the recent "SMTP Problem" thread.
-
-2003-01-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c: Fixed some build issues.
-
- * mail-search.c: Same.
-
- * mail-callbacks.c (save_draft_done): Use
- g_signal_handlers_disconnect_by_func().
- (manage_subscriptions): Use a weak_ref instead of connecting to
- the destroy event.
-
-2002-12-17 Jeffrey Stedfast <fejj@ximian.com>
-
- ...And a whole bunch more build fixes.
-
- * mail-vfolder.c (mail_vfolder_delete_uri): Don't use
- g_string_sprintfa() anymore since it is apparently deprecated.
-
- * mail-session.c (main_get_filter_driver): Don't use
- g_string_sprintfa() anymore since it is apparently deprecated.
-
- * mail-ops.c (build_from): Don't use g_string_sprintfa() anymore
- since it is apparently deprecated.
-
- * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): Don't use
- g_string_sprintfa() anymore since it is apparently deprecated.
-
- * mail-autofilter.c: Don't use g_string_sprintfa() anymore since
- it is apparently deprecated.
-
- * folder-browser.c: Don't use g_string_sprintfa() anymore since it
- is apparently deprecated.
-
- * mail-search.c (mail_search_set_subject): Remove the unnecessary
- g_strdup()'age as well as fix a possible buffer overrun.
-
- * mail-local.c (mail_local_folder_construct): Use
- g_path_get_basename().
-
- * mail-config-druid.c (make_account): Don't use e_utf8_*
- functions.
-
-2002-12-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c #define a STANDARD_ISSUE_TABLE_OPEN string used
- for wrapping textual message parts to keep them being fully-left
- justified.
- (mail_format_raw_message): Wrap the content with a table so that
- text isn't fully left-justified.
- (write_hr): Use it here too.
- (handle_text_plain): And finally here.
-
-2002-12-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (mail_error_printf): Use camel_text_to_html()
- instead of e_text_to_html().
- (mail_text_write): Write the content directly to gtkhtml through
- an html stream filter.
-
- * mail-format.c (attachment_header): Use camel_text_to_html()
- instead of e_text_to_html().
- (write_text_header): Same.
- (write_address): Here too.
- (mail_get_message_rfc822): And here.
- (mail_get_message_body): And finally here.
-
-2002-12-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_text_plain): Re-implemented to use
- streams. Also no need to check for html since
- camel-mime-part-utils.c now does this for us and will re-tag the
- mime-type as text/html thus the UI can be completely ignorant of
- this process.
- (handle_text_plain_flowed): Removed.
- (write_one_text_plain_chunk): Removed.
- (try_uudecoding): Removed.
- (try_inline_binhex): Removed.
- (handle_text_enriched): Re-implemented to use streams too.
-
-2002-12-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (write_text_header): Change the order of the args
- to be consistant with other write functions.
- (write_date): Same.
- (write_field_row_begin): Here too.
- (write_headers): Here too.
- (write_one_text_plain_chunk): Don't strdup just to pass it to
- mail_text_write() so that it can dup it yet again into html text
- and dup it yet a 3rd time into a GByteArray. Instead just write it
- to gtkhtml.
- (handle_*): Fixed arguments to take a MailDisplayStream instead of
- a GtkHTML widget and a GtkHMLStream.
-
- * mail-display.c (mail_display_render): Create a MailDisplayStream
- to pass to mail_format_mime_message() and
- mail_format_raw_message().
-
- * mail-display-stream.[c,h]: New stream to replace
- mail-stream-gtkhtml.c
-
- * mail-stream-gtkhtml.[c,h]: Removed.
-
-2002-12-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (check_send_configuration): Make sure the
- folder-browser is not NULL or we'll crash.
-
- * mail-preferences.c (mail_preferences_construct): Fix the colour
- code to get a guint32 rgb correctly (I think - can't test because
- the shell keeps crashing, yay).
-
- * message-tag-followup.c (construct): Don't re-use cell renderers
- - I'm not sure this is actually safe to do.
-
- * mail-session.c: Get rid of unneeded CamelObject casts.
- (user_message_response): Don't unref the dialog object after we've
- destroyed it.
-
- * mail-display.c (write_data_to_file): Don't unref the dialog
- object after we've destroyed it.
-
- * mail-callbacks.c: Same here.
-
- * component-factory.c: Here too.
-
- * message-tag-editor.c: Added MESSAGE_TAG_EDITOR_GET_CLASS macros.
-
-2002-12-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (mail_accounts_tab_construct): Setup
- double-click here.
-
-2002-12-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (account_delete_clicked): Get rid of the ETable
- #ifdef's - we won't ever be using ETable.
- (account_default_clicked): Same.
- (account_able_clicked): Here too.
- (mail_accounts_load): And here.
- (mail_accounts_treeview_new): Renamed from etable_new since we
- won't ever be using an etable.
- (mail_accounts_tab_construct): And finally here.
-
-2002-12-12 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (my_folder_browser_init): cast a-warning a-way.
-
- * mail-composer-prefs.c (spell_setup): Terminate list_store_set
- with -1.
-
- * mail-accounts.c (mail_accounts_etable_new): clist -> gtktreeview
- stuff. Yes, this is not an etable.
- (mail_accounts_tab_construct): Same.
- (mail_accounts_load): Same.
- (account_cursor_change): Same.
- (account_able_clicked): And this.
- (account_default_clicked): Same.
- (account_delete_clicked): Guess?
- (account_edit_clicked): And here too.
-
-2002-12-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_format_data_wrapper_write_to_stream): New
- function to handle a lot of the filtering/etc that was done in
- mail_format_get_data_wrapper_text(). This is the first step toward
- getting rid of e-text-to-html crap and using my tohtml stream
- filter instead.
- (mail_format_get_data_wrapper_text): Use the new function.
- (mail_format_raw_message): Use camel streams to write the content
- to gtkhtml rather than using get_data_wrapper_text() and then
- converting that to html and then writing it to the gtkhtml stream.
-
-2002-12-10 Not Zed <NotZed@Ximian.com>
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): language
- is a treeview now. Not sure what to do with it yet, but get rid
- of one warning anyway.
- (mail_composer_prefs_construct): Same for sig_clist, but setup
- model.
- (sig_fill_clist): Change to use a gtktreeview instead of a clist.
- (sig_selection_changed): New method to handle signature selection
- changes with the new widgets.
- (sig_delete): clist -> treeview.
- (mail_composer_prefs_new_signature): Same.
- (sig_edit): ditto.
- (sig_current_sig): removed.
- (sig_row_unselect): Removed.
- (sig_row_select): Removed, now redundant.
- (spell_select_lang): Removed, redundant.
- (spell_set_ui_language): New implementation using list model more
- effectively.
- (spell_get_language_str): Same here.
- (spell_set_ui_language): Removed this too, merged into
- spell_set_ui, it was just wasting stack space.
- (spell_language_selection_changed): renemd from
- spell_language_select_row, converted to gtktreeview, etc.
- (spell_language_unselect_row): Removed.
- (spell_language_enable): Redone to use tree model.
- (spell_language_button_press): Removed, i dont think this is
- needed anymore.
- (spell_setup): dont hook onto redundant signals.
-
- * mail-config-factory.c (config_control_factory_cb): ignore
- mail-font-prefs in a different way (so we dont assert)
-
-2002-12-09 Chris Toshok <toshok@ximian.com>
-
- * mail-session.c (pass_response): pass "Mail" to e_passwords_*.
- (do_get_pass): same.
- (main_forget_password): same.
- (mail_session_get_password): same.
- (mail_session_remember_password): same.
- (mail_session_forget_password): same.
-
- * mail-config.c (mail_config_write_on_exit): pass "Mail" to
- e_passwords_*.
-
- * main.c (main): e_passwords_init is gone.
-
-2002-12-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (guess_me_from_accounts): Use the same logic as
- mail_generate_reply(). Fixes bug #34882
-
- Fixes bug #34315
-
- * component-factory.c (message_rfc822_dnd): Return TRUE if we
- successfully handled all messages in the mbox stream, or FALSE
- otherwise.
- (destination_folder_handle_drop): For TEXT_URI_LIST, use the
- retval from message_rfc822_dnd() rather than relying on an
- exception, because one will not always necessarily be set. For
- MESSAGE_RFC822, also use the retval from message_rfc822_dnd().
-
-2002-12-03 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_finalise/destroy): frobbed
- around with these till it exits without crashing.
-
- * message-list.c (message_list_destroy): made a destroy
- handler again (was dispose). Frobbed around with this and
- finalise till it can destroy without crashing.
-
- * message-browser.c (message_browser_new): ref/sink the
- folderbrowser.
-
-2002-11-25 Radek Doulik <rodo@ximian.com>
-
- * mail-preferences.c (mail_preferences_construct): magic_check -->
- magic_links_check
-
-2002-11-27 Not Zed <NotZed@Ximian.com>
-
- * message-tag-followup.c (construct): gnome_pixmap -> gtkimage.
- (construct): gtk_clist -> gtk_tree_view, setup columns. They dont
- size well :-/
- (message_tag_followup_append_message): Append using model, remove
- clist stuff.
- (construct): Show date edit (glade bugs?)
-
- * folder-browser.c (folder_browser_class_init): gtk_marshal -> g_cclosure_marshal
- (setup_popup_icons): gnome_pixmap -> gtk_image.
- (on_right_click): gtk_pixmap -> gtk_image.
-
- * mail-accounts.c (account_delete_clicked): removed #if 0'd out code.
-
- * mail-send-recv.c (receive_done): remove FIXME and extra unref.
-
- * mail-session.c (request_password): Removed #if 0'd out stuff.
-
- * mail-vfolder.c (new_rule_clicked): proper cast for g_object_get_data.
-
- * mail-local.c (reconfigure_response): cast for g_object_get_data.
-
- * mail-account-editor.c (construct): GNOME_DIALOG -> GTK_DIALOG.
-
- * *.[ch]: re-ran fix.sh for e_notice change
-
- * mail-callbacks.c (save_msg_ok): g_object_get_data +
- gtk_object_remove_no_notify -> g_object_steal_data.
- (find_socket): gtk_container_children ->
- gtk_container_get_children
- (edit_msg): gnome_*_dialog -> gtk_message_dialog.
- (resent_msg): "
- (search_msg): "
- (confirm_goto_next_folder): gtkmessagedialogised (even if not
- used).
- (confirm_expunge): gtkmessagedialogised
- (filter_edit): "
- (do_mail_print): e_notice -> gtk_message_dialog.
- (are_you_sure): removed e_gnome_ok_cancel_dialog crap, replaced
- with a gtk dialog.
- (are_you_sure): gtkmessagedialogised.
- (edit_msg_internal): Dont free uids array, are_you_sure() free's
- it.
- (resend_msg): Same.
- (check_send_configuration): Use e_notice for stuff. Sigh, here we
- go again ...!
- (e_question): A utility function to ask a question, potentially
- with 'dont ask again' as well.
- (configure_mail): use e_question to save code. Here we go again,
- again ...
- (ask_confirm_for_unwanted_html_mail): "
- (ask_confirm_for_only_bcc): "
- (ask_confirm_for_only_bcc): "
- (composer_get_message): Use e_notice.
- (composer_save_draft_cb): Use e_question
- (edit_msg): use e_notice, & change to an ERROR.
- (resend_msg): same.
- (save_msg_ok): Properly initialise ret to OK, and use e_question,
- and use access() to determine existance/write access rather than
- stat, display an error if we can't write to a file that exists,
- and print the filename in all dialogues.
- (confirm_goto_next_folder): Use e_question.
- (confirm_expunge): use e_question.
- (filter_edit): Use e_notice.
- (do_mail_print): use e_notice.
-
-2002-11-26 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (vfolder_gui_add_rule): clicked->response signal
- for gtk dialogue.
- (new_rule_clicked): Dont unref after destroy (duh, idiot again).
- (edit_rule_response): Same here.
- (mail_vfolder_delete_uri): Connect response signal to
- gtk_widget_destroy directrly using g_signal_connect_swapped.
- (close_dialogue): Removed, as no longer needed.
-
- * message-list.c (get_normalised_string): Duh idiot, "un-fixed"
- the memleak i added.
-
- * mail-callbacks.c (composer_get_message): Set parent window in
- message dialogue & DESTROY_WITH_PARENT flag.
- (composer_save_draft_cb):
- (configure_mail):
- (check_send_configuration): Add DESTROY_WITH_PARENT flag to
- gtk_message_dialog's
- (local_configure_done): remove some unecessary/wrong casts.
- (empty_trash_expunged_cb): "
- (do_mail_print): use gtk_window_set_transient_for instead of
- e_dialog_set_parent.
-
-2002-11-26 Not Zed <NotZed@Ximian.com>
-
- * mail-account-editor.c (mail_account_editor_new):
- gtk_widget_set_parent_window -> gtk_window_set_transient_for.
-
- * mail-callbacks.c (composer_send_queued_cb): dont unref composer.
-
- * message-browser.c (message_browser_destroy): moved back from
- finalise.
-
-2002-11-25 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (message_list_dispose): move saving tree state
- here.
- (message_list_finalise): And take it from here.
-
- * mail-display.c (mail_display_destroy): @#$@# gtk. changed this
- around a bit.
- (mail_display_init): Fix prototype, its a gobject.
- (mail_display_init): ref/sink the invisible gtkobject.
-
-2002-11-22 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): removed
- e_messagebox, and use gtk_message_dialog directly.
- (ask_confirm_for_empty_subject): and here.
- (ask_confirm_for_only_bcc): And here too.
- (msgbox_destroy_cb): Removed, since no longer needed.
-
-2002-11-15 Harry Lu <harry.lu@sun.com>
-
- * mail-display.c (write_data_to_file): Show file name when prompt
- to user for overwrite. Fixes bug #34180.
-
-2002-11-21 Harry Lu <harry.lu@sun.com>
-
- * mail-display.c (do_attachment_header): Enable dragging of all
- attachments. For bug #34327.
-
-2002-11-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-preferences.c (mail_preferences_construct): Since the
- GSList returned from gconf needs to be free'd by us, we don't need
- to strdup the values. Also make sure we don't leak the GSList
- itself.
- (mail_preferences_apply): Don't leak our GSList data.
-
-2002-08-30 Radek Doulik <rodo@ximian.com>
-
- * mail-display.c (mail_display_render): don't set margins for raw
- message view
-
- * mail-format.c (mail_format_raw_message): as below
- (handle_text_plain_flowed): as below
- (mail_format_raw_message): don't use data_urls
-
- * mail-display.c (mail_text_write): put text in iframe, so it has
- margins and should not be placed in table which changes wrapping
- behavior
-
-2002-11-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): gconfify.
- (mail_composer_prefs_apply): gconfify this also.
-
- * mail-preferences.c (mail_preferences_construct):
- gconf_client_get_string() probably returns an allocated buffer.
-
-2002-11-20 Not Zed <NotZed@Ximian.com>
-
- * importers/Makefile.am (%.server.in): provide a proper implicit
- rule for building .server.in from .server.in.in. The other one
- just copied the first target to all destinations(!).
-
- * importers/evolution-outlook-importer.c (outlook_factory_fn):
- destroy -> weak ref.
-
-2002-11-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-preferences.c (mail_preferences_apply): Save the settings
- via gconf.
- (mail_preferences_construct): Load the values from gconf.
-
-2002-11-19 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c (sig_load_preview): use
- gtk_html_begin_content to specify utf-8
-
-2002-11-19 Not Zed <NotZed@Ximian.com>
-
- * importers/evolution-mbox-importer.c (mail_importer_module_init):
- fix warning message, outlook->mbox.
-
- * importers/Makefile.am: fix serverdir to point to
- $libdir/bonobo/servers.
-
- * mail-callbacks.c (addrbook_sender): add type to
- bonobo_widget_set_property.
-
- * mail-vfolder.c (vfolder_editor_response): dont unref after destroy.
-
- * mail-session.c (pass_response): dont unref aftrer destroy.
-
- * mail-local.c (reconfigure_response): dont unref after destroy.
-
- * mail-display.c (launch_cb): dont unref after destroy.
- (launch_cb): "
- (drag_data_get_cb): "
- (html_button_press_event): add type to bonobo_widget::set_property
-
- * mail-config.c (mail_config_check_service): dont unref after
- destroy.
-
- * component-factory.c (send_receive_cb): dont unref after destroy.
- (request_quit): "
-
- * mail-signature-editor.c (mail_signature_editor): Use version 3.0
- of gtkhtml editor interfaces.
- (do_exit): dont unref after destroy.
- (format_html_cb): Add type to bonobo_widget::set_property.
-
-2002-11-18 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c (spell_setup_check_options): check
- exception state and take care when exception raised
-
-2002-11-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (mail_accounts_load): Specify the default
- account. Also, don't need to use e_utf8_to_gtk_string() here.
-
-2002-11-18 Not Zed <NotZed@Ximian.com>
-
- * Makefile.am (evolution_mail_LDADD): Added back
- libevolution-importer stuff.
- (SUBDIRS): Added back importers.
-
- * importers/evolution-mbox-importer.c (load_file_fn): build the
- uri without deprecated funcs.
- (load_file_fn): dont free/alloc a camel_exception for no obvious
- purpose.
- (mbox_factory_fn): use weak_ref rather than destroy.
- (importer_destroy_cb): fix signature for weak ref notify.
- (mbox_factory_fn): add cid param.
-
- * importers/*.[ch]: ran fix script over everything.
-
- * importers/*.server.in.in: Added bonobo activation files. Moved
- evolution-mail to @LIBEXEC@ as below.
-
- * importers/Makefile.am: oaf->bonobo activation stuff.
-
- * importers/evolution-outlook-importer.c (outlook_factory_fn): Add
- component id to callback.
-
-2002-11-15 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am: Add rules to substitute @LIBEXEC@ in
- GNOME_Evolution_Mail.server.in.in and install evolution-mail in
- $(libexecdir) instead of $(bindir).
-
- * GNOME_Evolution_Mail.server.in.in: Replaced evolution-mail with
- @LIBEXECDIR@/evolution-mail.
-
-2002-11-15 Rodney Dawes <dobey@ximian.com>
-
- * component-factory.c: Use bonobo_main_quit instead of gtk
-
-2002-11-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c (sig_edit): Correctly spell Advanced.
-
-2002-11-15 Not Zed <NotZed@Ximian.com>
-
- * mail-summary.c (create_summary_view): weak notify -> ref.
-
- * mail-send-recv.c (build_dialogue): weak notify -> ref.
-
- * mail-accounts.c (account_edit_clicked): weak notify -> ref, i
- presume this is what jeff meant, 'cause it dont compile otherwise.
-
-2002-11-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (account_edit_clicked): Use g_object_weak_ref
- rather than connecting to destroy.
- (account_add_clicked): Same.
-
- * mail-callbacks.c (addrbook_sender): Make this use
- g_object_weak_notify also.
- (subscribe_dialog_destroy): Add NULL guards here since I think we
- really do want to connect to the "destroy" signal in the function
- that connects us to that signal.
-
- * mail-config-factory.c (config_control_factory_cb): Same.
-
- * mail-display.c (save_part): Here too.
- (make_popup_window): And here.
-
- * mail-send-recv.c (build_dialogue): Same here.
-
- * mail-summary.c (create_summary_view): Use g_object_weak_notify
- instead of connecting to the destroy signal.
-
-2002-11-14 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (owner_set_cb): Want a (GWeakNotify) cast
- here, not (GWeakNotify *).
-
- * subscribe-dialog.c (fete_init): g_object_set() instead of
- gtk_object_set().
- (populate_store_list): Likewise.
- (menu_item_selected): g_object_get_data() instead of
- gtk_object_get_data().
-
- * message-list.c (message_list_create_extras): g_object_set()
- instead of gtk_object_set().
-
- * message-browser.c (message_browser_message_list_built):
- g_object_get_data() instead of gtk_object_get_data().
-
- * mail-vfolder.c (edit_rule_response): g_object_get_data() instead
- of gtk_object_get_data().
-
- * mail-summary.c (generate_folder_summaries): g_object_unref() the
- context instead of gtk_object_destroy().
-
- * mail-local.c (reconfigure_response): g_object_get_data() instead
- of gtk_object_get_data().
-
- * mail-display.c (pixbuf_gen_idle): g_object_unref() the GdkPixbuf
- loader instead of gtk_object_destroy().
- (pixbuf_gen_idle): Likewise.
- (embeddable_destroy_cb): Likewise.
-
- * mail-config-druid.c (mail_config_druid_destroy): No need to
- gtk_object_destroy() the GladeXML object.
- (construct): g_object_set() instead of gtk_object_set().
-
- * folder-browser.c (folder_browser_gui_init): g_object_get_data()
- instead of gtk_object_get_data().
-
-2002-11-14 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (create_view): shell client objref.
- (mail_add_storage): "
- (mail_remove_storage): "
-
-2002-11-13 Joe Shaw <joe@ximian.com>
-
- * Makefile.am: Remove a couple backslashes that were causing
- automake to complain, even though they were on lines that were
- -commented out-. Sigh.
-
-2002-11-13 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-info.c (evolution_folder_info_factory_fn): Use
- g_object_new() instead of gtk_type_new().
- * folder-browser.c (folder_browser_new): Likewise.
- * mail-account-gui.c
- (mail_account_gui_folder_selector_button_new): Likewise.
- * mail-font-prefs.c (mail_font_prefs_new): Likewise.
-
-2002-11-13 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-format.c: Do not #include <libgnome/gnome-defs.h>.
- * mail-importer.c: Likewise.
- * mail-mt.c: Likewise.
- * mail-ops.c: Likewise.
- * mail-search-dialogue.c: Likewise.
- * mail-session.c: Likewise.
- * mail-vfolder.c: Likewise.
- * message-tag-followup.c: Likewise.
- * main.c: Likewise, and <libgnomeui/gnome-init.h>.
-
- * mail-callbacks.c: Do not #include <libgnome/gnome-paper.h>.
- (do_mail_print): Remove the GnomePaper local variable.
-
-2002-11-13 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (owner_set_cb): destroy->weak ref.
- (owner_set_cb): shell client changes.
-
- * mail-signature-editor.c (mail_signature_editor): bonobo api changes.
-
- * mail-local.c (save_metainfo): go back to using xmlSaveFile.
-
- * Makefile.am: Removed libevolution-importer from mail.
-
-2002-11-13 Not Zed <NotZed@Ximian.com>
-
- * GNOME_Evolution_Mail.server.in.in: Added to cvs. Currently
- contains no configurable stuff, but maybe it will one day.
-
- * Makefile.am (server_DATA): change oaf stuff to server stuff for
- bonobo activation.
-
- * mail-preferences.c (mail_preferences_apply): handle const entry text.
-
- * mail-composer-prefs.c (url_requested): Fixed typo.
- (mail_composer_prefs_construct): gnomepixmap->gtkimage.
-
- * mail-callbacks.c (configure_mail): destroy dialogue before dealing
- with response.
- (mail_generate_reply): Fix a typo.
- (popup_listener_cb): fix prototype.
- (tag_editor_response): Handle gtk dialog response.
- (flag_for_followup): Change gnome dialog to gtk dialog stuff.
- (tag_editor_destroy_cb):
- (tag_editor_cancel):
- (tag_editor_ok): Removed, handled in _response().
- (filter_editor_response): renamed from _clicked, handle gtk
- dialogue signal.
- (filter_editor_destroy): Removed.
- (footer_info_new): gnome font api changes.
- (do_mail_print): port to gnome print 2.
-
- * mail-autofilter.c (mail_filter_delete_uri): message_dialog uses
- a specific button enum, not the stock ones.
-
- * mail-accounts.c (mail_accounts_tab_get_type): gobjectify.
- (account_delete_clicked): gdkdialogise.
-
- * mail-account-gui.c (mail_account_gui_setup): Hack around font
- metric determination code.
-
- * mail-account-editor.c (mail_account_editor_get_type):
- gobjectise.
- (mail_account_editor_new): ""
-
- * folder-info.c (evolution_folder_info_notify_ready): use pbclient
- interface.
-
- * folder-browser-factory.c (control_destroy_cb): fix a typo.
- (folder_browser_factory_new_control): More typos.
-
- * folder-browser.c (on_right_click): cast around const warning.
- (context_menu_position_func): fix for api change.
-
- * e-searching-tokenizer.c (e_searching_tokenizer_finalise):
- Changed from destroy since it only frees memory.
- (e_searching_tokenizer_get_type): glibify.
-
- * component-factory.c (request_quit): gtkdialogise.
- (send_receive_cb): "
- (create_component): gdk_pixbuf api.
- (component_factory_init): bonobo activation stuff.
- (warning_response): renamed from warning_clicked.
- (owner_set_cb): gtkdialogise.
-
-2002-11-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * Makefile.am: Added files I've ported.
-
- * mail-config.c: Remove gnome-defs.h, this header no longer exists
- in GNOME2.
-
-2002-11-13 Not Zed <NotZed@Ximian.com>
-
- * Makefile.am: Commented out stuff that doesn't build yet. Also
- fixed idl build rule. importers still not built.
-
- * main.c (main): bonobactivationise. remove push visual/colormap.
- (main): no longer activate activation, let bonobo_init do it.
-
- * mail-signature-editor.c (menu_help): Change help api.
-
- * mail-session.c (user_message_destroy_noreply): removed. Not
- used?
-
- * mail-local.c (load_metainfo): xml root->children.
-
- * mail-format.c (g_string_append_len): Removed, it exists now.
-
-2002-11-12 Not Zed <NotZed@Ximian.com>
-
- * subscribe-dialog.c: gnome2ised, use gtkdialog.
- (subscribe_get_global_extras): use a weak ref rather than destroy
- signal.
-
- * message-tag-followup.c: gnome2ised.
-
- * message-tag-editor.c: gnome2ised & converted to gtkdialog.
-
- * message-list.c: gnome2ised.
- (message_list_finalise): From destroy method. maybe should be
- destroy still.
-
- * message-browser.c: port to gnome2
- (message_browser_finalise): renamed from destroy method.
-
- * mail-stream-gtkhtml.c: removed redundant
- camel_class_get_global_classfuncs() call.
-
- * mail-signature-editor.c: gtkdialogised, & bonobo api changes.
-
-
- * mail-search-dialogue.c: gtkdialogised.
-
- * mail-folder-cache.c: cleaned up camel ref/hook casts.
-
- * mail-composer-prefs.c (mail_composer_prefs_get_type): convert to
- gtype.
-
- * mail-font-prefs.c (mail_font_prefs_destroy): from finalise.
-
- * mail-config.c: s/bonobo_config/e_config_listener/ Added
- /apps/Evolution prefix to the evolution keys. Changed to use
- e_config_listener, etc.
- (mail_config_init): remove bonobo_config stuff.
- (mail_config_check_service): gtk dialogise.
- (check_response): from check_cancelled.
-
- * mail-config-druid.c (mail_config_druid_destroy): renamed from
- _finalize, turned into destroy handler.
- (construct): set type to toplevel, GTK_WINDOW_DIALOG no longer
- exists.
-
- * mail-config-factory.c (mail_config_register_factory): bonobo api
- changes.
-
- * mail-crypto.c (mail_crypto_get_pgp_cipher_context): cleaned up
- unref casts.
-
- * mail-display.c (write_data_to_file): gnome->gtkdialog.
- (on_link_clicked): use ascii_str*cmp on url.
- (save_part): g_path stuff.
- (launch_cb): gtk dialog.
- (pixmap_press): de-oafify.
- (pixbuf_for_mime_type): gnome-vfs api changes.
- (do_attachment_header): Change the pixmap to a gtkimage.
- (do_signature): "
- (pixbuf_gen_idle): "
- (do_attachment_header): ascii_str*cmp
- (do_attachment_header): gnome pixmap->gtkimage.
- (mail_display_destroy): protect against gtk mentalness.
- (html_button_press_event): ascii_str*cmp
- (drag_data_get_cb): added comment for translators of filename.
-
- * mail-format.c (component_supports): de-oafise.
- (is_anonymous): ascii_strncmp
- (attachment_header): remove utf8<>locale stuff, and gnomevfs api
- changes.
- (format_mime_part): fix g_strdown call.
- (write_field_row_begin): kill utf8->gtk stuff.
- (write_address): "
- (default_header_index): ascii_strcasecmp
- (handle_text_plain): "
- (handle_text_enriched): "
- (handle_multipart_encrypted): remove utf/gtk stuff.
- (handle_message_external_body): ascii_str*cmp
-
- * mail-identify.c (mail_identify_mime_part):
- (identify_by_magic): gnome vfs api changes.
-
- * mail-importer.c: Converted.
-
- * mail-local.c (load_metainfo): xml childs -> children.
- (mls_get_folder): g_strerror.
- (mls_delete_folder): g_strerror.
- (reconfigure_got_folder): Gnome->GtkDialog
- (reconfigure_response): from reconfigure_clicked.
-
- * mail-mt.c (mail_msg_check_error): gnome -> gtk dialog
- (error_response): renmae from error_gone. destroy widget on any
- response.
-
- * mail-offline-handler.c (impl_finalise): renamed from
- impl_destroy since thats what it should be anyway.
-
- * mail-ops.c: removed utf8 widget conversion & camel_object_un/ref
- casts.
-
- * mail-preferences.c (mail_preferences_get_type): glib2'ised.
-
- * mail-search.c (mail_search_finalise): renmaed from destroy &
- properly chain.
- (mail_search_get_type): glib2 & make gtkdialog parent.
- (entry_run_search): run search when entry activated. not sure if
- gtkdialog has anohter way to do this on an arbitrary widget.
-
- * mail-send-recv.c (dialogue_response): renamed from clicked. Use
- gtkdialog.
-
- * mail-session.c (request_password_deleted): removed, redundant.
- (pass_response): rename from pass_got, changed for gtkdialog.
- (user_message_destroy): Removed, redundant.
- (user_message_response): Renamed from user_message_clicked.
-
-2002-11-11 Not Zed <NotZed@Ximian.com>
-
- * mail-stream-gtkhtml.c (mail_stream_gtkhtml_class_init): dont use
- get_global_classfuncs, just get the type
-
- * mail-tools.c: converted gnome2 api's.
-
- * mail-vfolder.c (vfolder_editor_response): clicked->response.
- (vfolder_editor_destroy): Removed.
- (vfolder_edit): gtk dialog api
- (edit_rule_response): clicked->response.
- (vfolder_edit_rule): gnomedialog->gtkdialog.
- (vfolder_gui_add_rule): "
- (new_rule_clicked): clicked->response
-
-2002-11-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c: Half way ported. I'll finish the rest later.
-
- * mail-autofilter.c: Ported.
-
- * mail-account-gui.c: Ported.
-
- * mail-account-editor.c: Ported.
-
- * folder-browser-ui.c: Ported.
-
- * folder-browser-factory.c: Ported.
-
- * folder-browser.c: Ported.
-
- * e-searching-tokenizer.c: Roughly ported.
-
-2002-11-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * *.glade: Converted to libglade-2's format.
-
-2002-11-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c: Ported.
-
-2002-10-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_query_changed): No longer need
- to check for a CLEAR_ID.
-
-2002-10-28 Larry Ewing <lewing@ximian.com>
-
- * mail-format.c (handle_multipart_mixed): instead of bailing with
- an assertion dump the body.
-
-2002-10-27 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (fetch_next): don't queue the action until we've
- added ourselves to the active list, because the fetch_done
- callback can fire immediately and we'll end up queueing something
- that has already been destroyed.
-
-2002-10-24 Jeffrey Stedfast <fejj@ximian.com>
-
- Update the upgrade script to handle the new url format introduced
- with NotZed's most recent commits.
-
- * upgrade-mailer.c (mailer_upgrade): Save an encoded version of
- the namespace too, for use later.
- (si_free): Free the encoded namespace too.
- (imap_url_upgrade): Use the encoded namespace when creating the
- new url.
- (shortcuts_upgrade_xml_file): Upgrade the default: urls. Fixes bug
- #32127.
-
-2002-10-25 Not Zed <NotZed@Ximian.com>
-
- * mail-config.c (mail_config_uri_renamed): Always strdup the new
- key in the threaded/preview hash/always free the working copy.
- For #32799.
-
-2002-10-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (write_data_to_file): Use the mode 0666 when
- creating a new file and let the user's umask handle permissions.
-
- * folder-browser.c (message_list_drag_data_get): When using open()
- with the O_CREAT flag, we need to pass a mode argument. Also use
- O_EXCL.
-
-2002-10-24 Not Zed <NotZed@Ximian.com>
-
- * subscribe-dialog.c (fe_got_children): Use a hashtable to only
- insert nodes we dont have already, rather than relying on the
- scanning logic. Also, only re-sort this tree level once done
- rather than on each insert.
- (folder_etree_init): Setup hash to track nodes setup.
- (folder_etree_clear_tree): Reset hash.
- (fe_destroy): Free hash.
-
-2002-10-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_query_changed): Only perform
- the search if it is either a clear or advanced search.
-
-2002-10-22 Mike Kestner <mkestner@ximian.com>
-
- * mail-callbacks.c (transfer_msg): pass fb->uri to the folder
- selection dialog so the current folder is selected on display.
- "fixes" 15966.
-
-2002-10-21 Dan Winship <danw@ximian.com>
-
- * upgrade-mailer.c (mailer_upgrade): Fix the transport URL on any
- Exchange accounts. Fixes #30209, which is to say that it fixes
- #28490 correctly.
-
-2002-10-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-tools.c (mail_tool_quote_message): Strip the signature from
- the body-text. Fixes bug #5529.
-
-2002-10-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_multipart_signed): Don't need to pass a
- path to camel_gpg_context_new () anymore.
- (mail_get_message_body): Same here.
- (handle_multipart_encrypted): Use camel_gpg_context_new () instead
- of mail_crypto_get_pgp_cipher_context ().
-
- * mail-preferences.c (mail_preferences_construct): There's no
- security tab anymore.
- (mail_preferences_apply): No need to save any pgp config data,
- there's nothing to configure!
-
- * mail-crypto.c (mail_crypto_get_pgp_cipher_context): Updated to
- not pass a pgp path into camel_gpg_context_new ().
-
- * mail-config.c (mail_config_clear): No need to free a pgp_path
- variable anymore, we don't need one.
- (config_read): Don't read in a pgp-path or pgp-type anymore.
- (mail_config_write_on_exit): Don't save a pgp-path or pgp-type
- anymore, we don't use them.
- (pgpopen): Removed.
- (pgpclose): Removed.
- (mail_config_pgp_type_detect_from_path): Removed.
- (auto_detect_pgp_variables): Removed.
- (mail_config_get_pgp_type): Removed.
- (mail_config_set_pgp_type): Removed.
- (mail_config_get_pgp_path): Removed.
- (mail_config_set_pgp_path): Removed.
-
-2002-10-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): If mode == REPLY_LIST
- and the mlist is "" (we only checked NULL before), change the mode
- to REPLY_ALL so that we don't accidently reply to the user's
- address. Fixes bug #28735
-
-2002-10-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): If we are trying to
- reply to a list, first check that we can by getting the mlist
- token (makes it easier to fix the mem leak). If not, then change
- the mode to REPLY_ALL. If we can reply to list, the make sure we
- free the CamelMessageInfo when we're done so we don't leak.
-
-2002-10-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (main_get_filter_driver): Add the new-mail-notify
- rule to the filter driver before adding the user defined filter
- rules so that we can be sure that the new-mail-notify rule gets
- invoked. Fixes bug #32328.
-
- * mail-composer-prefs.c (mail_composer_prefs_new_signature): Make
- sure that name[0] cannot ever be NULL. Should maybe fix bug
- #32230.
-
-2002-10-15 Dan Winship <danw@ximian.com>
-
- * upgrade-mailer.c (shortcuts_upgrade_xml_file): Change the type
- in LDAP shortcuts from "ldap-contacts" to "contacts/ldap". Rewrite
- this to use libxml since that was easier than trying to make the
- old code do both kinds of changes at once.
-
-2002-10-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (management_prepare): Only set an account
- name if one doesn't already exist. Also use the
- e_utf8_gtk_entry_get/set_text functions since account names are
- supposed to be in UTF8. Fixes bug #31891.
-
-2002-10-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (main_folder_changed): Don't do anything if the
- message_list is NULL (this means the FolderBrowser has been
- destroyed). Fixes bug #32002.
-
-2002-10-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (storage_remove_folder): The CamelFolderInfo
- that we get back has nodes for all parent folders, so do not
- delete all folders that have nodes in the returned tree. Instead,
- descend into the tree until we find the folder we want to delete
- and start deleting from there.
-
-2002-10-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-signature-editor.c (mail_signature_editor): Mark a string
- for translation, fixes bug #31942. Thanks to kmaraas@gnome.org for
- this patch.
-
- * mail-offline-handler.h: Don't #include config.h here. Fixes bug
- #31941.
-
-2002-10-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c (spell_load_values): Don't mark "en" for
- translation. Fixes bug #31788.
-
- * mail-config.glade: Removed a "xxxxxxxxxxx" string so that
- translators don't need to translate it. It was only a filler
- string. Fixes bug #31789.
-
-2002-10-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Don't default 'me' to
- the source account until after we've tried to detect the account
- based on recipients. When adding accounts to the account hash, if
- any accounts have identical email addresses, the ones that are
- enabled take precedence over ones that aren't. This will hopefully
- make everyone happy with reply account picking. Fixes bug #31693.
-
-2002-10-01 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (drag_data_get_cb): add support for dragging the
- content type directly.
- (do_attachment_header): add the target for the mime type to the
- drag source.
- (drag_data_get_cb): silence warning.
-
-2002-10-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (get_fn): Connect to the changed signal for
- the reply_to entry box. Fixes bugs #31553 and #31554.
-
- * mail-composer-prefs.c (spell_setup): Only setup the languages if
- the language_seq is not CORBA_OBJECT_NIL. Fixes bug #31559
- (presumably at least).
-
- * mail-account-gui.c (mail_account_gui_new): Use
- e_utf8_gtk_entry_set_text for the email address and reply-to
- fields. Fixes bug #31555.
-
- * mail-format.c (mail_get_message_body): Handle a
- multipart/encrypted part. Fixes bug #31547.
-
- * upgrade-mailer.c: Shut up some compiler warnings.
-
- * importers/evolution-mbox-importer.c (process_item_fn): Use the
- camel_message_info_new/free functions rather than g_new0 and
- g_free. Also, if we fail to parse a message make sure we don't
- later try to use that message object.
- (get_info_from_mozilla): Use camel_message_info_new and strtoul
- instead of string_to_int.
-
-2002-09-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * subscribe-dialog.c (fe_node_to_shell_path): Removed (useless).
-
-2002-10-01 Ettore Perazzoli <ettore@ximian.com>
-
- [Fix #24732]
-
- * importers/evolution-mbox-importer.c (process_item_fn): Set
- deleted to FALSE when not having Mozilla status headers. Before
- it was being left uninitialized and so there was a pretty good
- chance that its value would be nonzero and hence the message would
- not be imported...
-
-2002-10-01 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (on_cursor_activated): cursor activated on
- etable is required to know when the selection changes on a single
- row, update selection changed info with this signal too. Sounds
- like an etable bug to me, but this fixes #29808.
- (folder_browser_gui_init): Hook onto above signal.
-
-2002-09-30 Aaron Weber <aaron@ximian.com>
-
- * mail-signature-editor.c (mail_signature_editor): change
- string to "Enter a name for this signature" on line 372.
-
- * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): change
- HTML-mail warning on 255
-
- * component-factory.c (component_factory_init): change
- "Evolution's foo" to "the Evolution foo" in string on 1078
-
-2002-09-30 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (request_password): translate prompt from utf8 to
- gtk widget. #31365.
-
-2002-09-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * e-searching-tokenizer.c: #include <stdlib.h> for alloca
- (searcher_next_token): Changed slightly to make sure that m is not
- NULL before dereferencing it. Also initialise m to NULL so that it
- can't be used uninitialised (NULL is a safe initialised value
- here).
- (build_trie): Same, but for n.
-
-2002-09-26 Dan Winship <danw@ximian.com>
-
- * mail-config.c (impl_GNOME_Evolution_MailConfig_addAccount,
- impl_GNOME_Evolution_MailConfig_removeAccount): Set a timeout to
- call mail_config_write() in 2 seconds. Otherwise changes made by
- this interface would not be saved to disk unless the user also
- changed some other preference.
- (mail_config_write_on_exit): If there's a config_write_timeout
- pending, call mail_config_write() too.
-
-2002-09-25 Dan Winship <danw@ximian.com>
-
- * mail-display.c (mail_display_render): Add a margin around the
- "flag for followup" table so it lines up with everything else.
- Also, don't add "at your earliest convenience" after the flag if
- there's no date set, since that doesn't make any sense for half of
- the flags. ("For Your Information at your earliest convenience").
-
-2002-09-25 Dan Winship <danw@ximian.com>
-
- * component-factory.c (folder_types): add "mail/public". Leave
- "vtrash" as it is rather than renaming it to "mail/vtrash",
- because we want it to behave differently from normal mail folders
- more often than we want it to behave the same.
- (type_is_mail, type_is_vtrash): utility funcs
- (create_view, create_folder, remove_folder, xfer_folder,
- populate_folder_context_menu, unpopulate_folder_context_menu,
- destination_folder_handle_drop, storage_create_folder): Use
- type_is_mail/type_is_vtrash.
- (create_component): Register "New Post" with "mail/public" instead
- of "mail" so it becomes the default New icon for it. (29024)
-
- * mail-callbacks.c (transfer_msg): Use "mail/*" for allowed type.
-
- * message-browser.c (transfer_msg): Likewise.
-
- * mail-account-gui.c (mail_account_gui_new): Use "mail/*" instead
- of "mail" here for sent/drafts allowed type. (?)
-
-2002-09-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * upgrade-mailer.c (imap_url_upgrade): NULL-check si->folders
- before passing it into find_folder so we don't crash. Fixes bug
- #30915.
-
-2002-09-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c: Allow users to delete already deleted
- messages, fixes bug #30827.
-
-2002-09-24 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_query_changed): Always do a
- search if the query changed. For #31060 & #29625.
-
-2002-09-23 Radek Doulik <rodo@ximian.com>
-
- * mail-config.c (mail_config_signature_run_script): pass name of
- the script as 1st parameter
-
- * mail-composer-prefs.c (sig_add_script_add): fix entry's glade
- name
-
-2002-09-23 Dan Winship <danw@ximian.com>
-
- * mail-signature-editor.c (exit_dialog_cb): Fix non-ANSI switch
- statement.
-
- * mail-account-gui.c (mail_account_gui_auto_detect_extra_conf):
- Likewise.
-
- * mail-composer-prefs.c (spell_load_values): add some dummy
- typedefs to avoid empty macro arguments, which have undefined
- behavior.
-
- * mail-importer.c: #include <sys/types.h> for OS X
-
-2002-09-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (save_part_save): Use 0666 as the create mode so that
- the user's umask is used to it's fullest.
-
-2002-09-23 Dan Winship <danw@ximian.com>
-
- * Makefile.am (idldir, idl_DATA): add these and install Mailer.idl
-
-2002-09-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-preferences.c (mail_preferences_construct): Connect signal
- handlers to the GtkHTML preferences so that when the widgets
- change we can update the OK/Apply buttons. Also removed the
- omenuShortcutsType widget reference since this was not being used?
- Fixes bug #30731.
-
-2002-09-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (do_edit_messages): Unset the changed bit on
- the composer and also drop any undo operations (since we loaded
- the message into the composer). Fixes bug #30580.
-
-2002-09-19 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (main_get_filter_driver): Fix for filter driver
- api change.
-
-2002-09-18 Not Zed <NotZed@Ximian.com>
-
- * mail-config-druid.c (wizard_back_cb): If going back from a page
- past our end (i.e. the final page), jump to the last page we know
- of. For #29293.
-
- * component-factory.c (notify_listener_exception): helper to map a
- camel excpeiton to a listener result.
- (storage_create_folder): Use above to return more meaningful error.
- (storage_remove_folder): "
- (storage_xfer_folder): ". For #28209.
-
-2002-09-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (mail_display_render): Use e_strftime_fix_am_pm
- here which fixes locale issues as well as working around systems
- that don't support %P (afaik).
-
- * mail-ops.c (prep_offline_do): Cache important messages too.
-
- * mail-composer-prefs.c (d): Disable debugging printf's
-
- * mail-ops.c: fixed a comment
-
-2002-09-13 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (fb_resize_cb): If the vpaned isn't realized,
- don't call mail_config_set_paned_size. Fixes a problem with the
- saved pane size being repeatedly lost (#29933)
-
-2002-09-13 Dan Winship <danw@ximian.com>
-
- * Mailer.idl: rename this from "Mail.idl" so that the generated .h
- file won't overwrite "mail.h" on Mac OS X. Remove some
- never-implemented IDL and add MailConfig_removeAccount.
-
- * Makefile.am: Update for IDL rename
-
- * mail-config.c: #include Mailer.h, not Mail.h
- (impl_GNOME_Evolution_MailConfig_removeAccount): Implement.
-
- * folder-info.c: #include Mailer.h, not Mail.h
-
- * message-list.c: Remove Mail.h include.
-
-2002-09-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * main.c (main): Ignore SIGXFSZ to fix bug #30269.
-
- * upgrade-mailer.c (cache_upgrade_and_free): The new callback
- function for the g_hash_table_foreach which both upgrades the
- cache for that store and then free's the struct _storeinfo
- afterwards.
- (cache_upgrade): Upgrade a cached folder by moving the old cache
- folder into the appropriate new location.
-
-2002-09-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_query_changed): Only abort if
- the user selected ADVANCED_SEARCH, not the other way around. Any
- other menu item and we are supposed to perform an actual
- search. Fixes bug #30183.
-
- * mail-display.c (pixbuf_for_mime_type): check the new gnome-vfs
- icon_filename key. If that fails, fall back to checking
- icon-filename. Also don't leak the fm_icon string and rearranged
- some code.
-
-2002-09-11 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (configure_folder_popup): Handle file uri's
- too.
-
- * mail-callbacks.c (configure_folder): clear message list before
- calling configure folder.
- (local_configure_done): completion callback to reset message list
- when done.
-
- * mail-local.c (mail_local_reconfigure_folder): changed args to
- accept uri, and done callback.
- (reconfigure_got_folder): moved code to callback which presents
- the configure uri once we have the folder.
-
-2002-09-10 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c: Handle file: as well as vfolder: uri's.
- Pass both to the normal configure_folder callback. For #20849.
-
- * folder-browser.c (got_folder): If we already have a folder, make
- sure we unref/unhook from it. Fixes a crash on exit.
-
- * message-list.c (message_list_hide_clear): clear thread tree
- cache if set.
- (message_list_set_search): Same. For bug #28834.
-
-2002-09-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_scan_selection): Make
- sure that fb->message_list is non-NULL before checking
- fb->message_list->threaded? I guess this'll fix bug #29965.
-
- * mail-callbacks.c (composer_save_draft_cb): NULL-check the ccd
- before reffing it.
- (composer_send_cb): Same.
-
- * upgrade-mailer.c (shortcuts_upgrade_xml_file): Don't look for an
- end quote, instead look for </item> to terminate the uri.
- (shortcuts_upgrade_uri): Hex decode the imap folder name after
- we've constructed the final version of it.
-
-2002-09-08 Dan Winship <danw@ximian.com>
-
- * upgrade-mailer.c (exchange_url_upgrade): Don't modify the URL if
- the path doesn't start with "exchange". (Means it's already a 1.2
- URL.)
- (shortcuts_upgrade_uri): Need to hex-decode exchange URLs here too.
- (shortcuts_upgrade_xml_file): Fix an off-by-one error here (twice)
- so it actually works instead of always claiming shortcuts.xml
- doesn't need to be upgraded.
- (mailer_upgrade): Check the size of the accounts hash rather than
- imap_sources since we have work to do if the user has an exchange
- account but no imap accounts.
-
-2002-09-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * upgrade-mailer.c (upgrade): Sync the database after upgrading
- mailer stuff.
- (imap_url_upgrade): Since we need 'p' if we fail to find the
- folder, don't g_free it until later.
- (hex_encode): Don't forget to increment inptr after hex encoding a
- character.
- (exchange_url_upgrade): Apprently exchange uri's are rebelious and
- do not want to be hex encoded like every other url, so hex decode
- the folder names here before concatenating them onto the base url.
-
-2002-09-05 Jeffrey Stedfast <fejj@ximian.com>
-
- All this snot is to fix bug #29930. What I think was happening was
- that the composer's destroy callback got fired off before the
- async callback did.
-
- * mail-callbacks.c (ccd_new): New convenience function to malloc a
- new ccd.
- (ccd_ref): ccd is now ref_counted (it needs to be) so we now have
- this.
- (ccd_unref): And we need this now too of course.
- (composer_destroy_cb): composer's new destroy callback function -
- unref's the ccd.
- (composer_send_queued_cb): unref the ccd.
- (composer_send_cb): ref the ccd here.
- (save_draft_done): unref the ccd.
- (composer_save_draft_cb): ref the ccd.
-
-2002-09-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * upgrade-mailer.c (imap_url_upgrade): Hex decode the folder names
- when searching for them in the memory buffer, and re-hex encode
- them when combining them with the rst of the URL.
- (mailer_upgrade): Instead of reading in the storeinfo file as raw
- binary data, use the camel-file-utils to correctly parse it.
-
-2002-09-05 Anna Marie Dirks <anna@ximian.com>
-
- * GNOME_Evolution_Mail.oaf.in: Changed the descriptions of the
- fonts, mail, accounts and composer pages of the settings dialog to be
- hopefully more descriptive and less confusing.
-
-2002-09-04 Ettore Perazzoli <ettore@ximian.com>
-
- * upgrade-mailer.c (upgrade): Return FALSE here.
- (get_base_url): Add a cast.
-
- * component-factory.c (storage_xfer_folder): Removed unused
- variables.
-
- * Makefile.am: Rename upgrade-mailer to evolution-mail-upgrade.
-
-2002-09-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * Makefile.am: Add upgrade-mailer.c to the build.
-
- * upgrade-mailer.c: New program to upgrade configuration files
- from 1.0 to 1.2.
-
-2002-09-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Made sure
- account->id->address is not NULL before adding it to the hash
- table. This is to prevent bug #29877 from crashing, although it is
- still an invalid error condition.
-
-2002-09-04 Dan Winship <danw@ximian.com>
-
- * folder-info.c (get_prop): Remove the "Get!" printf.
- (set_prop): Likewise for "Set!"
-
-2002-09-04 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Remove unused
- variable.
-
- * component-factory.c (unpopulate_folder_context_menu): New.
- (create_component): Pass it to evolution_shell_component_new().
-
-2002-09-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (mark_as_seen_cb):
- (mark_as_unseen_cb):
- (mark_as_important_cb):
- (mark_as_unimportant_cb): New callback functions that wrap the
- mail-callbacks versions of mark_as_<whatever>. Thanks to Owen
- Taylor for this fix.
-
-2002-09-04 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (storage_xfer_folder): Dont translate / to
- dir_sep anymore, we always use /.
-
-2002-08-29 Peter Williams <peterw@ximian.com>
-
- * folder-browser-ui.c: Add HAS_FLAGS to a few miscellaneous commands
- that don't use IS_xMESSAGE.
-
-2002-08-28 Dan Winship <danw@ximian.com>
-
- * GNOME_Evolution_Mail.oaf.in: Add an
- evolution:shell_component_launch_order and rename
- evolution:shell_component_icon.
-
-2002-08-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (make_safe_filename): Fix some broken logic here,
- `p = strrchr (path, '/') + 1` will *never* be NULL!! If the
- strrchr returns NULL, then that expression will evaluate to 0x1!!
-
- * main.c (main): We now always need to init gconf for our later
- call to e_proxy_init() which initialises the proxy settings for
- soup to use.
-
-2002-08-28 Peter Williams <peterw@ximian.com>
-
- * folder-browser-ui.c (default_ui_nodes): Add some new flags for
- sensitizing nodes based on the flags of the currently selected
- messages.
- (folder_browser_ui_add_message): Reset the sensitivity cache when
- we re-add UI items.
- (folder_browser_ui_add_list): Same.
- (folder_browser_ui_add_global): Same.
- (fbui_sensitise_item): Only cache the sensitivity in the hash
- table if we actually change it.
- (folder_browser_ui_scan_selection): New function, getting the bulk
- of the contents of folder_browser_ui_set_selection_state. Now
- with code to iterate over the currently selected messages and
- check their flags so we can sensitize based on them.
- (folder_browser_ui_set_selection_state): Now just set the
- selection state if necessary and pass off to _scan_selection. Don't
- skip of we're trying to go from SELSTATE_SINGLE to SELSTATE_SINGLE,
- eg, as the flags of the selected messages may have changed.
-
- * folder-browser-ui.h: Prototype folder_browser_ui_scan_selection.
-
- * folder-browser.c (main_folder_changed): Call
- folder_browser_ui_scan_selection as the flags on a selected
- message may have just changed.
-
-2002-08-28 Peter Williams <peterw@ximian.com>
-
- * mail-format.c (component_supports): Also check that the component
- has PersistStream.
- (mail_lookup_handler): Get a list of all components and go with the
- first matching one.
-
-2002-08-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (regen_list_regen): Pass
- mail_config_get_thread_subject() as the third argument to
- camel_folder_thread_messages_new().
-
- * mail-config.c (config_read): Read in the thread_by_subject
- config option.
- (mail_config_write_on_exit): Save the thread_by_subject config
- option.
- (mail_config_get_thread_subject): New function to get the
- thread_subject value.
- (mail_config_set_thread_subject): New function to set the
- thread_subject value.
-
-2002-08-27 Radek Doulik <rodo@ximian.com>
-
- * mail-signature-editor.c: removed tip frame
-
-2002-08-27 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes for bug #4480
-
- * folder-browser-factory.c (control_activate): Call
- folder_browser_reload() instead of refreshing the folder
- ourselves.
-
- * folder-browser.c (folder_browser_reload): New convenience
- function. If the folder-browser's folder is already loaded,
- refresh the contents, otherwise if the folder has not been loaded
- - try loading the folder again (it may have failed to open last
- time for some reason?).
-
-2002-08-27 Peter Williams <peterw@ximian.com>
-
- * mail-format.c (handle_text_plain_flowed): Fix bug #29493.
-
-2002-08-26 Peter Williams <peterw@ximian.com>
-
- * mail-callbacks.c (toggle_flags): Logic change for when untoggling
- a message from deleted-dom.
-
-2002-08-26 Peter Williams <peterw@ximian.com>
-
- * mail-ops.c (transfer_messages_transfer): Enforce the mailer policy
- that deleted messages are marked as seen. Fixes 29448. This could
- go in camel_folder_transfer_messages_to, but I don't think we
- necessarily want to enforce that policy for Camel in general.
-
-2002-08-23 Peter Williams <peterw@ximian.com>
-
- Address most of bug #4940. Fails on the last page of the add account
- dialog as called from the prefs dialog due to EvolutionWizard being
- weird.
-
- * mail-config-druid.c (goto_next_page): New function, little
- wrapper around wizard_next_cb. Also potential place to work around
- EvolutionWizard weirdness in the future.
- (identity_activate_cb): New function, calls goto_next_page if
- identity page is complete.
- (source_activate_cb): Analogous.
- (transport_activate_cb): Analogous.
- (management_activate_cb): Analogous.
- (get_fn): Hook up the activate signals of the various GtkEntries
- to the correct callbacks above.
- (management_check): Return the result of the check so that
- management_activate_cb can use it.
-
-2002-08-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-tools.c (mail_tool_restore_xevolution_headers): Reset the
- X-Evolution-PostTo header.
- (mail_tool_remove_xevolution_headers): Remove the
- X-Evolution-PostTo header.
-
-2002-08-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-folder-cache.c (ping_store): Spawn a new thread to ping the
- server but only if it is connected.
- (ping_cb): This needs to return TRUE so the timeout keeps getting
- called.
-
-2002-08-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (class_init): Don't bother overloading the
- timeout virtual methods since they don't exist anymore.
-
- * mail-folder-cache.c (mail_note_store): Register a ping timeout
- callback to ping each store to keep the connections alive.
-
-2002-08-20 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (do_mail_print): be sure that widget is
- realized so that e_utf8_from_gtk_string works properly
- (footer_print_cb): save/restore
-
-2002-08-20 Mike Kestner <mkestner@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_setup_view_menus): guard
- against the view_instance disappearing during earlier CORBA work.
-
-2002-08-20 Peter Williams <peterw@ximian.com>
-
- * message-list.c (search_func): Once we hit the target node,
- update the cursor_uid if it's set. Fixes #29085.
-
-2002-08-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-preferences.c (mail_preferences_apply): Fix a
- copy/paste-o. Use the pgp_path GnomeFileEntry widget rather than
- the notify_sound_file GnomeFileEntry widget for the pgp path stuff
- :-)
-
-2002-08-19 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_setup): source_type_changed
- may try to change the transport optionmenu (incorrectly in this
- case), so don't call gtk_option_menu_set_history on it until after
- emitting "activate" on the source type menuitem.
- (mail_account_gui_save): Fix the saving of STORE_AND_TRANSPORT
- transports and add a comment so it doesn't get mistakenly unfixed
- again.
-
-2002-08-09 Peter Williams <peterw@ximian.com>
-
- * subscribe-dialog.c: Change this into a GnomeApp so we get a
- statusbar and the dialog is a little more comprehensible.
-
- * subscribe-dialog.c: (struct _FolderETree): Add members for
- tracking activity callback information.
- (get_short_folderinfo_got): Notify the activity callback.
- (subscribe_get_short_folderinfo): Here too.
- (folder_etree_init): Initialize the activity level to 0.
- (folder_etree_construct): Take new parameters of our activity
- callback and user_data.
- (folder_etree_new): Here too.
- (store_data_get_widget): Take the parameters here and pass them
- on.
- (sc_close_pressed): New callback for when close button is pressed.
- (sc_activity_timeout): New timeout to move the activity bar when
- folders are being scanned.
- (sc_activity_cb): If activity_level > 0, start the progressbar
- moving and set the status.
- (menu_item_selected): Pass the callback to store_data_get_widget.
- (subscribe_dialog_construct): Load some more widgets and adapt to
- some changes in the XML. Also connect the close button signal and
- initialize the progress bar's settings.
-
- * mail-callbacks.c (manage_subscriptions): Don't call
- gnome_dialog_set_close on it anymore since it's no longer a gnome
- dialog.
-
-2002-08-14 Dan Winship <danw@ximian.com>
-
- * mail-config.glade: Add a "don't sign meeting requests" option to
- the security pane, since some versions of Outlook won't recognize
- pgp-signed meeting requests. Sigh.
-
- * mail-config.c (account_copy, config_read, mail_config_write):
- Handle pgp_no_imip_sign.
-
- * mail-account-gui.c (mail_account_gui_new,
- mail_account_gui_save): Setup/save "don't sign meeting requests"
- button.
-
-2002-08-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (forward_message): Removed an unused variable.
-
- * mail-account-editor.c (construct): Set the focus on the Account
- Name entry widget. Fixes bug #10350.
-
-2002-08-12 Dan Winship <danw@ximian.com>
-
- * mail-display.c (on_url_requested): Replace no-longer-existent
- e_book_query_address_locally with e_book_query_address_default.
-
-2002-08-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (forward_message): Use mail_get_messages()
- instead of mail_get_message().
- (do_forward_non_attached): Fixed to work as a callback from
- mail_get_messages().
- (do_edit_messages): Only set the drafts_folder and drafts_uid if
- the folder-browser is a drafts folder. Fixes bug #28863.
-
-2002-08-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (save_draft_done): If the ccd is NULL, create a
- new ccd, disconnect the old signal handlers, and then reconnect
- the signal handlers using the non-NULL ccd as the user_data.
- (composer_send_queued_cb): Same, but only if the queue append
- operation failed.
-
-2002-08-09 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (composer_send_queued_cb, save_draft_done):
- Handle the fact that ccd may be NULL (if the composer was created
- via CORBA). Quick temporary fix for sending meeting requests.
-
-2002-08-09 Peter Williams <peterw@ximian.com>
-
- * mail-config.c (mail_config_uri_renamed): When a URI is changed,
- try to copy over threaded view settings, preview pane shown
- settings, headers, hide state, tree expansion, and GAL view files.
- (uri_to_evname): New utility function.
-
-2002-08-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Instead of comparing
- old/new CamelStore objects, just compare their account urls since
- changing params would still result in the same CamelStore
- object. Fixes bug #18539.
-
- * mail-callbacks.c (delete_msg): Don't check permanent_flags for
- the CAMEL_MESSAGE_DELETED bit here, if we are gonna check to see
- if the folder supports the permanent flag then there are better
- places to check this. Besides, it was the cause for bug #28038.
-
-2002-08-08 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_toggle_threads): Force a
- refresh of the menu sensitivity when the thread state changes.
-
-2002-08-07 Not Zed <NotZed@Ximian.com>
-
- * folder-browser-ui.c: Added EditSelectThread to only enable
- threaded mode if threaded is on. For #19941. Added some macro's
- to simplify the table.
- (folder_browser_ui_set_selection_state): Implement IS_THREADED
- mask.
-
-2002-08-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_send_queued_cb): Delete the Draft
- item that this was edited from if that is the case as well as
- setting any replied flags if we need to. Fixes bug #18171.
- (save_draft_done): Not only delete the previously saved draft, but
- also set any PostSendData on the message being replied to or
- whatever. Fixes bug #20224.
- (compose_msg): Create an empty callback data struct which is now a
- MUST.
- (mail_reply): Fill in the new post_send_data info and also move
- the creation of the post_send_data to AFTER the creation of the
- composer widget so we don't leak on fail.
- (forward_get_composer): Pass an empty post_send_data structure as
- the user_data to the signal callbacks.
- (send_to_url): Same.
- (post_to_url): Here too.
- (redirect_get_composer): And here.
- (do_edit_messages): We no longer use the evil kludge of setting
- data on the composer object to denote the drafts_uid etc, this is
- now part of the post_send_data struct.
-
-2002-08-07 Peter Williams <peterw@ximian.com>
-
- * component-factory.c (request_quit): If outbox_folder is NULL,
- don't try and get its message count (this should never happen, but
- has.)
-
-2002-08-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (save_metainfo): No need to save a temporary file
- first anymore since I updated e_xml_save_file() to do this for us.
-
-2002-08-07 Not Zed <NotZed@Ximian.com>
-
- * folder-browser-ui.c: Enable the view type menu's always. See
- #20901.
-
- * message-tag-followup.c (target_date_new): Set the week start day
- from the calendar prefs, do same for 24 hour format. See #23423.
-
- * mail-config.c (config_read): Added week_start_day from
- Calendar/Display config. Also time_24hour format.
- (mail_config_get_week_start_day):
- (mail_config_get_time_24hour): And read-only accessors.
-
-2002-08-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (save_metainfo): Save to a temporary file first
- using e_xml_save_file rather than xmlSaveFile, if the save
- completes successfully then rename it to the real filename. Make
- sure that errno is saved.
- (mls_get_folder): save_metainfo doesn't return -1 on fail, it
- returns FALSE.
-
-2002-08-06 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_search_menu_activated): Set the
- rule name to include the search string, for #10979.
-
- * message-list.c (message_list_hidden): Only count hidden messages
- which are in the folder. Should probably maintain hidden table
- better. For #4334.
-
- * mail-ops.c (filter_folder_filter): Unref the driver before
- returning to main thread, so any closing operations are handled
- async (as in fetch_mail_fetch()), for #28072.
- (fetch_mail_fetch): Check driver != NULL, if folder_filter freed
- it already.
-
- ** fixes for #24605.
-
- * mail-vfolder.c (vfolder_gui_add_from_mlist): Removed.
-
- * folder-browser.c (filter_type_uid,vfolder_type_uid): Changed to
- accept args directly. Fixed callers.
- (filter_mlist_uid,vfolder_mlist_uid): Use filter_type_uid instead
- of mlist variant.
- (vfolder_type_current): new function to handle setup of vfolders
- from the main menu. It now uses the vfolder_type_uid function the
- same as the popup.
- (vfolder_subject, vfolder_sender, vfolder_recipient,
- vfolder_mlist): Changed to use vfolder_type_current.
- (filter_type_current): Similar for filters.
- (filter_subject, filter_sender, filter_recipient,
- filter_mlist): Changed to use filter_type_current.
-
- * mail-autofilter.c (rule_from_message): Handle AUTO_MLIST type.
- (rule_from_mlist):
- (vfolder_rule_from_mlist):
- (filter_rule_from_mlist): Removed.
- (filter_gui_add_from_mlist): Removed.
-
- * mail-autofilter.h: Added AUTO_MLIST type.
-
-2002-08-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (mail_msg_check_error): If we are not in interactive
- mode, don't display error dialogs.
-
- * component-factory.c (interactive_cb): Updated to use the new
- function mail_session_set_interactive().
- (owner_unset_cb): Same here.
-
- * mail-session.c (mail_session_set_interactive): Renamed from
- mail_session_enable_interaction().
- (mail_session_get_interactive): New function to get the
- interactive state.
-
-2002-08-01 Peter Williams <peterw@ximian.com>
-
- * mail-offline-handler.c (struct _sync_info): Add a GHashTable pointer
- so we can remove the info once the operation is done.
- (sync_done): Remove the info from the hash table.
- (impl_syncFolder): Save the table to which the info was added.
-
-2002-08-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (user_create_new_item_cb): Updated to call
- post_to_url if the id is "post".
-
- * mail-callbacks.c (post_to_url): New function so that we don't
- need a FolderBrowser to post a new message.
- (post_message): Call post_to_url since they shared so much code.
-
-2002-08-05 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (mail_reply): Only reply to all or reply to
- list, set CAMEL_MESSAGE_ANSWERED_ALL too.
-
-2002-08-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-tag-followup.c (construct): Set the default flag to
- Follow-Up.
-
- * mail-display.c (mail_display_render): Updated to use the new
- Follow-Up tags. Instead of storing a string containing the
- follow-up tag value, we now have to store the CamelMessageInfo.
- (mail_display_destroy): Unref the folder and the message-info.
-
- * folder-browser.c (followup_tag_complete): No longer needed.
- (on_right_clicked): Use the individual follow-up tags to decide
- whether or not to enable something.
-
- * message-list.c (ml_tree_value_at): Update to use the new
- Follow-Up tags.
-
- * mail-callbacks.c (flag_for_followup): Update to use the new
- MessageTagEditor API.
- (tag_editor_ok): Update this too.
- (flag_followup_completed): Updated this too.
- (flag_followup_clear): Set all the follow-up tag values to "".
-
-2002-08-01 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Use
- "post-message-16.png" as the icon for the "New Message Post" item.
-
-2002-08-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): If we are editing an
- account, then get the CamelStore associated with the old account
- info and save it in a struct that we will pass along as user_data
- to mail_get_store() for the new account url.
- (add_new_store): If the old account and new account stores are
- identical, then don't remove the old store from the folder
- tree. If they are not the same, then remove the old store and add
- the new store to the folder tree.
-
-2002-07-31 Peter Williams <peterw@ximian.com>
-
- * mail-folder-cache.c: Add another bitfield "unsub"
- (real_flush_updates): If unsubscribing, manually remove the folder
- from the shell.
- (unset_folder_info): Add another parameter which is used to set
- the unsub member.
- (store_folder_unsubscribed): Pass true for @unsub.
- (unset_folder_info_hash): Pass false for @unsub.
-
- * subscribe-dialog.c (fe_done_subscribing): Don't notify the shell
- here. The folder cache does it now, and it was broken to make the
- CORBA call in another thread anyway.
-
-2002-08-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (setup_mime_tables): Don't setup a handler for
- multipart/digest.
- (handle_multipart_digest): Removed.
-
-2002-07-31 Jeffrey Stedfast <fejj@ximian.com>
-
- * Makefile.am: Removed folder-browser-window from the build.
-
- * folder-browser-window.[c,h]: Removed.
-
- * mail-callbacks.c (view_digest): Removed.
-
- * mail-display.c (mail_display_digest_clicked): Removed.
- (on_link_clicked): Don't handle digest: urls anymore.
-
-2002-07-31 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Put "New Mail Message"
- before "New Message Post" instead of vice versa.
-
-2002-07-31 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Pass "mail" as
- @folder_type to
- evolution_shell_component_add_user_creatable_item().
-
-2002-07-31 Not Zed <NotZed@Ximian.com>
-
- * mail-display.c: Added global cameldatacache for managing remote
- image cache.
- (fetch_remote): Lookup data in cache first, use that if available,
- or setup a new cache item.
- (fetch_data): Write any retrieved data to cache as well as html
- stream.
- (fetch_free): Unref cache stream.
- (fetch_done):
- (fetch_cancel): If failed/cancelled, remove cache items so they
- dont foul the result. Probably need a header in cache items to
- guarantee this, but this is ok for now.
- (mail_display_class_init): Setup cache structure. Also ensure
- globals are initialised at-most once.
-
-2002-07-30 Radek Doulik <rodo@ximian.com>
-
- * mail-config.c (mail_config_signature_set_name): save signature
- here to remember the changed name
-
-2002-07-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (write_date): Use camel_medium_get_header to get
- the date header rather than getting the time_t and converting it
- into a string.
-
-2002-07-29 Not Zed <NotZed@Ximian.com>
-
- * mail-display.c (mail_display_init): setup private data.
- (mail_display_destroy): cancel any outstanding fetches, and free
- private data.
- (mail_display_set_message): Cancel any outstanding fetches.
- (fetch_cancelled):
- (fetch_next):
- (fetch_remote):
- (fetch_data):
- (fetch_free):
- (fetch_cancel):
- (fetch_done): Implement, used to use soup to download remote
- images.
- (load_http): Removed.
- (on_url_requested): When requesting a http* url, use the
- fetch_remote call above.
-
- * mail-display.h (struct _MailDisplay): Added priv(ate) member.
-
-2002-07-29 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-session.c (request_password): Left-align the check button's
- label.
-
-2002-07-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Get the "Reset
- Defaults" folders button and connect to the clicked signal.
- (default_folders_clicked): Set the default uris on for the Drafts
- and Sent folders.
-
-2002-07-26 Peter Williams <peterw@ximian.com>
-
- * mail-offline-handler.c (storage_go_online): Call mail_note_store
- to get the folders to be updated and new ones to be inserted into
- the tree.
-
-2002-07-29 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-session.c (request_password): Add an accelerator for the
- "Remember this password" checkbox.
-
-2002-07-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_execute_shell_command): No real need for this
- to be an async function sync we are going to call
- gnome_execute_async anyway.
-
- * component-factory.c (create_component): Add a new menu item for
- posting to the New toolbar button thing.
- (destination_folder_handle_drop): Don't use a NULL exception when
- we already have one to use anyway.
- (got_folder): Move the *fp = folder; to before the check to make
- sure folder != NULL, this makes it so that if getting a folder
- fails at least have have a known value to look out for (NULL)
- rather than some random garbage.
-
-2002-07-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (create_label): Make the gtk label line-wrap
- instead of us forcing \n's in the label, that was just
- wrong. Fixes bug #10320.
-
- * mail-callbacks.c (composer_send_cb): Make sure that the url
- isn't an empty string and also make sure to free it when we're
- done with it. Also check that we got the folder - if it is NULL,
- then just abort.
-
-2002-07-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_folder_to_safe_url): Use
- mail_tools_folder_to_url().
-
- * mail-tools.c (mail_tools_folder_to_url): New convenience
- function to take a CamelFolder and return the URL associated with
- it.
-
- * mail-callbacks.c (composer_get_message): Pass in a 'post'
- argument so we know whether or not we can ignore a NULL set of
- recipients.
- (composer_send_cb): Default send->send to TRUE unless we are in
- Post-To mode, in which case set send->send to FALSE (since we'll
- have nothing to send). Also, if we are in Post-To mode, append to
- the folder the user wants to post to rather than appending to
- Outbox.
- (composer_send_queued_cb): Only queue a send thread if send->send
- is TRUE (ie, the composer was not in Post mode - if it was in Post
- mode, then the message post has already been saved in the correct
- folder so there is nothing to do).
- (post_message): New function to create an empty composer widget in
- Post mode.
- (post_reply): New function that calls mail_reply with the new mode
- of REPLY_POST.
- (mail_generate_reply): If the mode is REPLY_POST, create a Post
- composer widget otherwise create a normal composer widget.
-
-2002-07-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_execute_shell_command): Update to take argc and
- argv arguments since this is the new definition for the
- CamelFilterDriverShellFunc.
-
- * mail-session.c (main_get_filter_driver): Updated for the renamed
- function.
-
- * mail-display.c (link_open_in_browser): Make sure that the
- html->pointer_url is non-NULL. Should fix bug #28159 (this seems
- to be the only questionable way for a NULL url to be passed into
- on_link_clicked).
-
-2002-07-24 Peter Williams <peterw@ximian.com>
-
- * mail-callbacks.c (do_mail_fetch_and_print): Check for whether
- current_message is NULL as well as preview_shown (if we tried to
- load the message and failed, as may happen in offline mode.)
- (done_message_selected): Only print if we actually got the message.
-
- * folder-browser.c (folder_browser_query_changed): New function,
- use this on the query_changed signal. Don't run the search if
- they only changed the dropdown.
-
-2002-07-23 Peter Williams <peterw@ximian.com>
-
- * mail-ops.c (get_store_get): Call camel_session_get_service
- instead of camel_session_get_store, as _get_store calls
- _get_service_connected which is not what we want to do on startup.
- (set_offline_do): Rework the logic here. It was failing when
- trying to go online with a disco store that couldn't work offline.
-
- * mail-folder-cache.c (mail_note_store): If we're using an offline
- (well, non-online) disco store that cannot work offline, don't get
- the folderinfo as that will fail.
-
-2002-07-24 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c (sig_add): use
- mail_config_get_send_html for html format flag
-
- * mail-account-gui.c (sig_add_new_signature): use
- mail_config_get_send_html for html format flag
-
-2002-07-24 Not Zed <NotZed@Ximian.com>
-
- * mail-folder-cache.c (real_flush_updates): Propagate name changes
- or removes to the mail config. #15951. Doesn't enitrely work for
- local folders, because they are never renamed only removed and
- added thanks to the shell's api.
-
- * mail-config.c (mail_config_uri_renamed): If a store folder is
- renamed, this checks for any config that needs updating, so far
- sent and drafts folders.
- (mail_config_uri_deleted): Same, for deleted folders.
-
-2002-07-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_multipart_encrypted): Commit a fix that I
- thought I committed a while ago:
-
- * mail-format.c (handle_multipart_encrypted): Pass the correct
- pointer into camel_multipart_encrypted_decrypt().
-
- * mail-ops.c (mail_send_message): Rework the logic a bit. If we
- find an account, use that to set the sent_folder_uri and the
- transport_url, otherwise use the X-Evolution-Transport and
- X-Evolution-Fcc headers.
-
-2002-07-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-tag-followup.c (message_tag_followup_decode): Don't pass
- the length of the tag name into strncmp, instead use the length up
- to the first ':' in the value string.
-
-2002-07-22 Peter Williams <peterw@ximian.com>
-
- * folder-browser.c (folder_browser_gui_init): Also perform a search
- on the query_changed signal, which is what gets emitted when the
- Search menu is used.
-
-2002-07-24 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (owner_set_cb): Initialise the standard
- uri's before doing anything else.
-
- * mail-vfolder.c (uri_is_ignore): Return true if the uri is any
- sent, drafts or outbox folder uri.
- (mail_vfolder_add_uri): Dont automagically add any
- sent/outbox/drafts folder with "local" or "remote" etc rules, only
- add sent folders if explictly listed as folder rules. Maintain
- the remote/local folders list accordingly.
- (vfolder_adduri_do): dont check against sent_folder, drafts_folder
- or outbox_folder, this is checked by above code. For #14863.
-
- * mail-display.c (drag_data_delete_cb): use uri_list before we set
- "uri-list" to NULL, which will automagically free it for us, so
- dont free it either. Found with vagrind.
-
-2002-07-23 Not Zed <NotZed@Ximian.com>
-
- * message-browser.c (message_browser_destroy): Disconnect from
- folderbroser signals when we unref it, so we dont get signals
- later on if someone else has a ref on it (causing crash).
-
-2002-07-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_signature_run_script): Check to make
- sure the script output is valid UTF-8, if not then attempt to
- convert it into UTF-8. Fixes bug #28086.
-
-2002-07-22 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (regen_list_regened): Remove the assert, and
- always copy over the threadtree which represents the current view,
- unreffing the old one if set. For #28021. Haven't tested this a
- lot, but i guess it cant be worse than what is there.
-
- * mail-vfolder.c (store_folder_renamed): When renaming, use
- full_name to set the folder, not name, so the path is preserved.
-
-2002-07-20 Larry Ewing <lewing@ximian.com>
-
- * mail-format.c (mail_get_message_body): recognize urls in plain
- text reply quoting logic (bug #27908).
-
-2002-07-19 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c: Try including gtkhtml/gtkhtml.h instead. Test
- really is a 4 letter word obviously.
-
-2002-07-18 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-folder-cache.c: Removed bogus static pre-declaration.
-
- * e-searching-tokenizer.c (e_searching_tokenizer_end): Removed
- unused variables.
-
- * mail-callbacks.c: #include <gtkhtml.h>.
-
- * folder-info.h (evolution_folder_info_get_type): Add prototype.
-
-2002-07-18 Peter Williams <peterw@ximian.com>
-
- * mail-format.c (handle_multipart_digest): Change the HTML to
- make this a little prettier.
-
- * folder-browser-window.c (folder_browser_window_new): Load the
- messagedisplay XML file as a base for the UI, so that things
- appear. Don't add the global UI items as they don't make sense
- here.
- (fb_window_close): New function, used to ... close the window,
- suprisingly.
-
-2002-07-18 Not Zed <NotZed@Ximian.com>
-
- * main.c (main): Put the mcheck stuff back in, which was removed
- without a changelog entry.
-
-2002-07-08 Peter Williams <peterw@ximian.com>
-
- * Makefile.am: Reference the new libefilterbar.a.
-
-2002-07-17 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (save_draft_done): use "saved" gtkhtml command
-
-2002-07-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (add_storage): Oops, Don't comment out the
- mail_note_store call.
-
-2002-07-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (account_able_clicked): Re-enable some #if 0'd code.
-
- * mail-vfolder.c (vfolder_load_storage): Updated to not pass TRUE
- for an auto_connect argument since that argument no longer exists.
-
- * mail-account-gui.c (add_new_store): Updated to not pass an
- auto_connect argument.
-
- * component-factory.c (add_storage): Don't ever auto-connect here.
- (mail_add_storage): No longer takes an auto_connect argument.
- (mail_load_storages): Only load the account storages that are
- enabled.
-
-2002-07-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_send_cb): Pass 'info' into
- mail_append_mail(), seems I created the info but forgot to pass it
- in.
- (composer_send_queued_cb): If the message is successfully queued,
- we destroy the composer, otherwise we unref it. Don't ever destroy
- and then unref it.
-
-2002-07-15 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c: use new save_header_state flag
-
-2002-07-15 Peter Williams <peterw@ximian.com>
-
- * mail-offline-handler.c (service_is_relevant): Account for the
- case that when a disco store is "online" but actually offline and
- we're going online, we should actually connect it.
-
- * component-factory.c (mail_load_storages): Always set
- auto_connect to FALSE, same reason as below.
-
- * mail-session.c (mail_session_init): Initialize our session to
- not be online, since the shell will tell us to go online if we
- need to.
-
-2002-07-10 Peter Williams <peterw@ximian.com>
-
- * Makefile.am (importerdir): Define this in terms of the new
- privlibdir, again resulting in a new directory name.
-
- * importers/Makefile.am (importersdir): Here too.
-
-2002-07-15 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (ml_tree_value_at): Lookup the label colour based
- on the label token, not an integer.
-
- * folder-browser.c (on_right_click): Lookup the label name from
- the filter type. Sigh, a bunch of other code should do similar
- but i'm going to leave it as integers.
- (set_msg_label): Set the label directly.
-
- * mail-vfolder.c (vfolder_editor_clicked): Set the vfolder_editor
- variable to null before we close the dialogue, otherwise the close
- destroys it and reverts the file.
-
- * component-factory.c (populate_folder_context_menu): Oops,
- accidentally checked in some unfinished, unworking code.
- Reverted.
-
-2002-07-10 Not Zed <NotZed@Ximian.com>
-
- ** fixes for #10781
-
- * mail-callbacks.c (filter_edit): Add back a cancel button. We
- dont need to do anything special to 'undo' here, as the rules are
- loaded every time they're used.
-
- * mail-vfolder.c (vfolder_editor_clicked): If ok wans't clicked,
- revert the ruleset.
- (vfolder_editor_destroy): Fake a button of -1 if we get destroyed
- with no click.
- (context_rule_removed): Unref the folder after we delete it. If
- we're the last ref to the folder, unrefing it means it no longer
- exist,s which means no delte processing occurs ...
-
-2002-07-04 Not Zed <NotZed@Ximian.com>
-
- * mail-accounts.c (news_add_destroyed): Pass teh autoconnect flag,
- whcih shoudlnt' exist anyeway.
-
-2002-07-03 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (populate_folder_context_menu): If this is a
- file url, look up its component, if we have it, then use the
- mail-callback reconfigure call.
-
- * folder-browser-factory.c (folder_browser_factory_get_browser):
- Util to get the folder browser from a uri.
-
-2002-07-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (pixmap_press): Rename "Save to disk..." to "Save
- Attachment..."
-
-2002-07-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c: Modified to use a single list of UI node
- elements with an enable-mask rather than split into groups. This
- allows much more control and easier modification to get the
- desired enable/disable effects.
-
- * mail-display.c (mail_display_set_message): If we unref'd a
- current_message, clear the datalist. Don't bother connecting to
- the message's finalise signal because something else may own a ref
- to the original message when we replace it with a new one.
- (mail_display_destroy): Only clear the datalist if we have a
- current_message, otherwise it's safe to assume that it is already
- cleared.
-
-2002-07-08 Peter Williams <peterw@ximian.com>
-
- * Makefile.am (INCLUDES): Add -I flags to get the ebook headers.
-
-2002-07-10 Ettore Perazzoli <ettore@ximian.com>
-
- * subscribe-dialog.c (recursive_add_folder): Pass zero as
- @sorting_priority to evolution_storage_new_folder().
-
- * mail-folder-cache.c (real_flush_updates): Pass zero as
- @sorting_priority to evolution_storage_new_folder().
-
-2002-07-09 Ettore Perazzoli <ettore@ximian.com>
-
- * subscribe-dialog.c (recursive_add_folder): Pass NULL for
- @custom_icon_name to evolution_storage_new_folder().
-
- * mail-folder-cache.c (real_flush_updates): Pass NULL for
- @custom_icon_name to evolution_storage_new_folder().
-
-2002-07-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (redirect): Don't ever use the mail-display's
- current_message, this can cause problems.
-
- * mail-ops.c (get_message_free): Unref the gotten message. All of
- the callers seemed to think that they didn't have to unref the
- message.
-
- * mail-display.c (mail_display_set_message): Now refs the message.
- (mail_display_destroy): Unref the current_message if we still have
- ownership of it.
-
-2002-07-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_send_queued_cb): Only queue a send
- operation if we are in Online mode, otherwise don't bother wasting
- our time.
-
-2002-07-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * main.c (main): No longer need to pass a postpone_cb function
- into the composer factory_init.
-
- * mail-send-recv.c (get_receive_type): If the provider is a
- transport, return SEND_SEND.
-
- * mail-config.c (mail_config_get_default_transport): If the
- default account doesn't have a transport, find the first account
- that does.
-
- * mail-callbacks.c (append_mail_cleanup): Don't bother freeing the
- appended_uid here.
- (composer_send_internal): New helper function that does all the
- similar work that composer_send_cb and composer_postpone_cb did.
- (composer_send_cb): Append the message to Outbox and in the async
- callback, queue a message send operation.
- (composer_postpone_cb): Removed.
- (composer_send_queued_cb): The new async callback for
- composer_send_cb(). If the append is successful, queue a message
- send operation and destroy the composer otherwise re-show the
- composer.
- (save_draft_done): g_strdup the appended uid.
- (compose_msg): Don't connect to the postpone signal anymore as it
- no longer exists.
- (send_to_url): Same.
- (mail_reply): Here too.
- (forward_get_composer): And here.
- (redirect_get_composer): Again here.
- (do_edit_messages): And finally here.
-
- * mail-ops.c (append_mail_free): Free the appended uid.
-
-2002-07-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor-news.[c,h]: Removed.
-
- * mail-accounts.c: Removed special-case code for NNTP support.
-
- * mail-account-gui.c (mail_account_gui_setup): Allow configuration
- of both mail and news accounts.
-
- * component-factory.c (mail_load_storages): No longer need the
- is-account argument.
-
- * subscribe-dialog.c (populate_store_list): Don't special-case
- news accounts anymore.
-
- * mail-config.c (mail_config_get_default_news): Removed.
- (mail_config_get_news): Removed.
- (mail_config_add_news): Removed.
- (mail_config_remove_news): Removed.
-
-2002-07-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (vfolder_load_storage): Pass TRUE as the
- auto_connect argument to mail_load_storage_from_uri().
-
- * mail-account-gui.c (add_new_store): Pass FALSE as the
- auto_connect value to mail_load_storage_from_uri().
-
- * mail-format.c (handle_multipart_encrypted): Pass the correct
- pointer into camel_multipart_encrypted_decrypt().
-
- * component-factory.c (mail_add_storage): Now takes an
- auto-connect argument which it passes along to add_storage().
- (mail_load_storage_from_uri): Same.
- (add_storage): Only call mail_note_store() if we plan on
- auto-connecting.
-
-2002-07-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (on_right_click): Increase the size of the
- escapped mlist buffer, we can't assume that there can only ever be
- a single '_' in the mlist name afaik.
- (filter_type_uid): Ugh, we need to copy the fdata->source here.
-
- Fixes bug #27263.
-
- * folder-browser.c (filter_subject): Decide the filter source type
- based on the folder we are in (Sent/Outbox folders use
- FILTER_SOURCE_OUTGOING).
- (filter_sender): Same.
- (filter_recipient): Here too.
- (filter_mlist): And here.
- (on_right_click): Set the fdata->source.
- (filter_type_got_message): Pass fdata->source into
- filter_gui_add_from_message().
- (filter_mlist_uid): Same.
-
- * mail-autofilter.c (filter_gui_add_from_message): Now takes a
- source argument so that we don't always add incoming rules.
- (filter_gui_add_from_mlist): Same.
-
- * mail-tools.c (mail_tool_make_message_attachment): Remove Bcc
- headers too. Fixes bug #27302.
-
-2002-07-02 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser.c (folder_browser_gui_init): Don't connect
- folder_browser_search_do_search to "query_changed" since we don't
- want the search to happen unless the user clicks "Find Now", for
- consistency.
-
-2002-07-02 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Pass a tooltip to
- evolution_shell_component_add_user_creatable_item.
-
-2002-07-02 Sean Atkinson <sean@cantab.net>
-
- * mail-preferences.c: remove dependency on removed file
- camel/camel-pgp-context.h
-
-2002-07-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_multipart_related): Make sure that cid is
- non-NULL.
-
-2002-07-01 Not Zed <NotZed@Ximian.com>
-
- * mail-folder-cache.c (folder_deleted): Removed. The
- folder's deleted event isn't needed since we're listening to the
- store's folder_deleted signal. Also, the code was wrong, it
- cleared the folder without disconnecting events, etc. See #16486,
- and probably others.
- (mail_note_folder): Dont hook onto deleted anymore.
- (unset_folder_info): Or unhook from it.
-
-2002-06-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (mail_load_storages): Don't skip over
- disabled accounts - put them in the folder tree too.
-
-2002-06-28 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #27055.
-
- * mail-accounts.c (account_add_finished): Unref the main accounts
- widget.
- (account_add_clicked): Ref the main accounts widget.
- (account_edit_finished): Unref the main accounts widget.
- (account_edit_clicked): Ref the main accounts widget.
-
-2002-06-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (storage_remove_folder): Recursively delete
- any subfolders.
-
-2002-06-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (config_read): Don't allow the pgp type to be
- anything except NONE or GPG.
-
- * mail-preferences.c (mail_preferences_apply): Don't allow someone
- to use anything other than GnuPG.
-
- * mail-crypto.c (mail_crypto_get_pgp_cipher_context): No need to
- handle pgp5 or pgp6 types anymore since we are no longer
- supporting them. Ding dong the witch is dead!
-
- * mail-format.c (handle_multipart_encrypted): Rewritten to use
- camel_multipart_encrypted_decrypt.
-
- * mail-crypto.c (mail_crypto_pgp_mime_part_verify): Removed.
- (mail_crypto_pgp_mime_part_encrypt): Removed.
- (mail_crypto_pgp_mime_part_decrypt): Are we seeing a trend yet?
-
-2002-06-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (on_url_requested): Also handle https urls.
-
- * component-factory.c (mail_add_storage): Some compiler warning
- fixes.
-
- * mail-crypto.c (mail_crypto_pgp_mime_part_sign): Removed.
- (mail_crypto_get_pgp_cipher_context): New convenience function to
- construct a pgp cipher context.
- (mail_crypto_pgp_mime_part_verify): Use the new
- get_pgp_cipher_context function.
- (mail_crypto_pgp_mime_part_encrypt): Same.
- (mail_crypto_pgp_mime_part_decrypt): Here too.
-
- * mail-account-gui.c (mail_account_gui_new): Initialise the
- pgp_always_trust checkbox.
- (mail_account_gui_save): Get whether or not to always_trust the
- user's pgp keys.
-
- * mail-config.c (account_copy): Copy over the pgp_always_trust
- option.
- (config_read): Read in the always_trust option.
- (mail_config_write): Save the always_trust option.
-
-2002-06-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c (mail_crypto_pgp_mime_part_verify): If the pgp
- type is gpg, then use the gpg context.
- (mail_crypto_pgp_mime_part_sign): Same.
- (mail_crypto_pgp_mime_part_encrypt): Same.
- (mail_crypto_pgp_mime_part_decrypt): Same.
-
- * mail-format.c (handle_multipart_signed): Use the new gpg cipher
- context.
-
-2002-06-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (message_list_change_first_visible_parent): New
- convenience function to find the first parent node that is visible
- and emit a changed signal on it.
- (main_folder_changed): If a message changed, call
- change_first_visible_parent() in case we are in a collapsed thread
- so that our first visible parent gets updated as well. Fixes bug
- #26263.
-
- * component-factory.c (storage_remove_folder): Simplify the error
- checking.
-
-2002-06-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (get_normalised_string): New convenience function
- to get a cached normalised string.
- (subject_compare): Removed, as we strip Re:'s when normalising the
- subject strings now.
- (ml_tree_value_at): Added support for the normalised columns (used
- for a sorting optimisation).
- (message_list_init): Initialise normalised_hash.
- (message_list_destroy): Destroy normalised_hash.
- (message_list_create_extras): Removed subject_compare.
- (main_folder_changed): De-cache normalised strings for any removed
- uids.
-
-2002-06-17 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (regen_list_regen): If we dont support searching,
- dont try to.
-
-2002-06-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (regen_list_regen): Move m->complete = TRUE; to
- within the cancel-check block, this way complete only ever gets
- set to TRUE if we weren't cancelled. I assume this is how it was
- supposed to work.
-
-2002-06-11 Not Zed <NotZed@Ximian.com>
-
- * folder-info.c (do_get_info): If we dont get a folder, dont try
- and get details off it. Should get rid of most of those annoying
- summary warnings, but not the cause of them.
-
-2002-06-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (account_able_clicked): Comment out the code to
- add/remove the store to the folder-tree when it gets
- enabled/disabled.
-
- * mail-callbacks.c (mail_generate_reply): If we are doing
- Reply-to-All, do not include any of the user's email accounts in
- the To: field. If, after this, the To: field is empty - then
- promote the first recipient in the Cc: list to the To: field.
-
-2002-06-07 Radek Doulik <rodo@ximian.com>
-
- * mail-config.c (mail_config_write_account_sig): call
- mail_config_init to be sure we have the db, save auto_signature as
- well
-
- * mail-composer-prefs.c (sig_add_script_cancel): hook this to
- cancel button in signature script dialog
-
- * mail-signature-editor.c (mail_signature_editor): fix some typos,
- set label usize to 500, -2
- (menu_help): added help link to Help menu
-
-2002-06-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): If this account is
- not a completely new account (ie, it is an edited account), then
- remove any trace of it from the shell storages. If the new account
- belongs in the folder-tree, add it to the list of storages.
-
- * component-factory.c (mail_add_storage): New function to add a
- single storage.
-
-2002-06-06 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): disable
- edit and delete when there are no signatures defined
-
-2002-06-06 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (mail_regen_list): Keep track of the regeneration
- request in a list.
- (regen_list_free): Remove the request from the regenreation list.
- (message_list_set_folder): If there are any outstanding
- regneration requests, cancel them.
- (regen_list_regened): If we were cancelled, do nothing.
- (regen_list_regen): If we were cancelled, shortcut processing.
- This is all for #23571.
-
- * message-list.c (regen_list_regen): Change the way we calculate
- the hide deleted messages and tree view options. Do it based on a
- search and uid's rather than a summary.
- (regen_list_regened): Handle changes to tree storage.
- (mail_regen_list): The tree is now stored between updates, so we
- can update the tree structure incrementally. This blows out
- memory use some however. We need an etree that uses this as its
- model directly?
- (message_list_destroy): Free the thread tree.
- (message_list_set_folder): Clear the thread tree when changing
- folder.
-
-2002-06-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_get_message_rfc822): Don't forget to free
- the date string buffer.
-
-2002-06-05 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c (sig_fill_clist): use gtk string instead
- of utf8 one
-
-2002-06-04 Jeffrey Stedfast <fejj@ximian.com>
-
- The following changes take a great leap toward fixing bug #1042.
-
- * mail-display.c (mail_display_push_content_location): New
- function to push a Content-Location value onto the MailDisplay.
- (mail_display_get_content_location): Gets the current
- Content-Location CamelURL value.
- (mail_display_pop_content_location): Pop the Content-Location off
- the stack.
-
- * mail-format.c (get_location): Do URL merging if the
- Content-Location isn't a full URL. If the Content-Location doesn't
- exist, pretend the URL is actually the Content-Location URL of our
- parent multipart (assuming it exists). If that doesn't exist, then
- yes - return NULL.
- (handle_multipart_related): Push the Content-Location header value
- of the multipart/related so that we can do URL merging in
- get_location() as we process each of the subparts. When we're
- done, pop it back off the stack.
-
-2002-06-04 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.etspec: Added priorities.
-
-2002-06-04 Christopher James Lahey <clahey@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_setup_view_menus): Set
- the title of our GalViewCollection.
-
-2002-06-04 Not Zed <NotZed@Ximian.com>
-
- * mail-accounts.c (mail_accounts_tab_construct): Duh, we want to
- set the news_edit/delete buttons for the news page, not overwrite
- the mail ones! That would've saved a bit of angst ...
-
- * mail-config-druid.c (extra_prepare): dont call build_extra_conf,
- otherwise it blows away any settings with defaults.
-
-2002-06-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Write the signature
- after the account has been added.
- (sig_new_html): Don't write the signatures at this time.
- (sig_new_text): Same.
-
-2002-06-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (account_delete_clicked): Correctly get the
- GtkWindow ancestor of the prefs widget.
-
-2002-06-03 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c (composer_get_message): Changed to check
- everything from the composer before the message is requested.
- Otherwise we could end up signing/encrypting it twice, etc.
-
- * mail-format.c (handle_multipart_signed): removed some dead wood.
-
-2002-06-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (request_quit): Prompt the user to see if he
- really wants to quit when there are queued messages in the Outbox.
-
-2002-06-01 Not Zed <NotZed@Ximian.com>
-
- * mail-local.c (mlf_getv): Implement, return a text description of
- the localfolder.
-
- * message-list.c (ml_duplicate_value):
- (ml_free_value):
- (ml_initialize_value):
- (ml_value_is_empty):
- (ml_value_to_string):
- (ml_tree_value_at): Implement COL_LOCATION, original location of
- message (useful for vfolder).
-
-2002-06-02 Larry Ewing <lewing@ximian.com>
-
- * mail-tools.c (mail_tool_quote_message): make these citations as
- well.
-
- * mail-format.c (handle_text_plain_flowed): make these blockquotes
- into citations.
-
-2002-05-31 Not Zed <NotZed@Ximian.com>
-
- * mail-format.c (handle_multipart_signed): Changed to handle new
- multipart-signed type.
-
-2002-05-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-send-recv.c (mail_send_receive): Noop if we are in offline
- mode.
-
- * component-factory.c (mail_remove_storage): If the store is not
- in the storage hash, then it must not have ever been added. Fixes
- bug #25456.
-
- * mail-callbacks.c (view_msg): Oops, create a message-browser
- window here, not a folder-browser-window window.
-
-2002-05-29 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c: moved spell checking options to separate
- page, updated UI by Anna's design
-
- * mail-accounts.c (mail_accounts_load): use _ instead of U_ for
- clist
- (mail_accounts_tab_construct): justify marks column to right
-
-2002-05-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-window.c (folder_browser_window_new): Revert a
- failed idea.
-
-2002-05-24 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): ops,
- revert array size
-
-2002-05-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): If we can't find the
- mailing list address in the recipients list, just Reply-to-All
- instead.
-
-2002-05-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-window.c (folder_browser_window_new): Set the ui
- to be the evolution-mail-global.xml file thingy. Still broken but
- oh well. I give up. bonobo-ui sucks.
-
- * message-browser.c (set_bonobo_ui): Fixed to not crash.
-
-2002-05-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-window.c (folder_browser_window_new): If the
- folder-browser has a parent, reparent it.
-
- * message-browser.[c,h]: Revert back to the old broken
- implementation since that's what users want. They're not happy
- unless it's broken.
-
-2002-05-23 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c: be more careful about language_str{_orig}
- (mail_composer_prefs_construct): add auto smiley check button
-
-2002-05-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (sig_fill_options): Only clear the text/html
- signature menus if they are non-NULL.
-
- * mail-composer-prefs.c (spell_save_values): Use a new macro,
- STR_EQUAL, to tell if the 2 values are equal or not rather than
- using strcmp since one or both strings could be NULL.
-
-2002-05-21 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_config_search): Split the
- search word up for a body search and add it to the tokeniser to
- highlight.
-
-2002-05-18 Not Zed <NotZed@Ximian.com>
-
- * e-searching-tokenizer.c
- (e_searching_tokenizer_add_primary_search_string):
- (e_searching_tokenizer_add_secondary_search_string): New functions
- to add additional search strings one at a time. Maybe it should
- just split the word itself?
- (all): Basically, entirely rewritten. Now implements the
- Aho-Corasick multiple pattern search algorithm and handles
- multiple search strings and only ever has to decode any utf8
- character once, etc etc.
-
-2002-05-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_get_message_body): Only get the contents of
- a mime part if it is marked as "inline". Fixes bug #7527.
-
- * mail-display.c (mail_display_render): Fixed the "Overdue:"
- string to not contain any HTML tags.
-
-2002-05-20 Ettore Perazzoli <ettore@ximian.com>
-
- * subscribe-dialog.c (recursive_add_folder): Pass TRUE for
- @sync_offline to evolution_storage_new_folder().
-
- * mail-folder-cache.c (real_flush_updates): Pass TRUE for
- @sync_offline to evolution_storage_new_folder().
-
-2002-05-20 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-callbacks.c (composer_sent_cb): Always unref the composer
- [even when we are destroying it], otherwise we leak it and we get
- the nasty bug where you can't quit.
-
-2002-05-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (ml_tree_value_at): Check for a label tag when
- doing a lookup on the COLOR column.
-
- * mail-config.c (mail_config_get_label_color_string): Return the
- colour in string format.
-
- * folder-browser.c (set_msg_label): Replaces colourise_msg and
- sets the "label" tag rather than the "colour" tag.
-
- * mail-preferences.c (mail_preferences_apply): Call
- mail_config_write() so that the settings get synced to disk.
-
-2002-05-16 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (request_quit): New.
- (create_component): Pass it as the @request_quit_fn to
- evolution_shell_component_new().
-
-2002-05-15 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Pass NULL as
- @request_quit_fn.
-
-2002-05-15 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (prep_offline_do):
- (prep_offline_done):
- (prep_offline_free):
- (mail_prep_offline): Implement prep_offline for an individual
- folder.
- (set_offline_do): Only call disco_store_set_status or disconnect
- for the store, dont do any offline prep stuff.
-
- * mail-offline-handler.c: Applied patch from Ettore to hook in
- extra offline interfaces.
- (impl_destroy): Dont free listener here anymore, its removed, but
- free sync table.
- (mail_offline_handler_init): Same for setup.
- (impl_syncFolder): Implement.
- (sync_done): handles finalising synchronisation of 1 folder.
- (sync_status): progress reporting, camel side.
- (sync_timeout): progress reporting, gmainloop side.
- (impl_cancelSyncFolder): Implement.
- (impl_goOffline, storage_go_offline, went_offline): Dont copy the
- listener to our struct - its an argument, not a member, so give
- each thread its own copy.
-
-2002-05-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (ml_tree_value_at): Instead of g_assert()ing that
- the msg_info is not NULL, if it is NULL just return NULL. This
- fixes a crash when ETree requests the value at a root node (I
- don't understand why it needs to do that??).
-
-2002-05-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-info.h: Added.
-
-2002-05-14 Christopher James Lahey <clahey@ximian.com>
-
- * component-factory.c: Added #include "folder-info.h".
-
- * folder-browser-window.c (folder_browser_window_new),
- mail-account-editor.c (apply_changes), mail-account-gui.c
- (mail_account_gui_save), message-tag-editor.c: Removed some unused
- variables.
-
- * folder-info.c: Added #include "folder-info.h". Removed static
- declaration of evolution_folder_info_get_type.
-
- * folder-info.c (destroy), mail-callbacks.c
- (confirm_goto_next_folder, find_current_folder,
- find_next_folder_r, find_next_folder,
- do_evil_kludgy_goto_next_folder_hack), mail-composer-prefs.c
- (sig_name_changed): Commented out these unused functions.
-
- * mail-config.c (add_new_storage): Removed this unused function.
-
- * mail-local.c (mlf_init): Fix the declaration of this function to
- match the required signature.
-
-2002-05-13 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.etspec: Added search="string" where appropriate.
-
-2002-05-13 Dan Winship <danw@ximian.com>
-
- * (various places): Update for camel_folder_append_message /
- camel_folder_transfer_messages_to API change.
-
- * mail-ops.c (mail_append_mail): Pass the appended_uid to the
- callback.
-
- * mail-callbacks.c (composer_save_draft_cb, save_draft_done,
- do_edit_messages): Take advantage of the append_message change to
- keep track of the UID of the saved draft so that we can delete the
- old copy of the draft each time we save a new one. Remove the
- FIXME suggesting we should do that, since we're doing it now. :)
-
-2002-05-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (do_view_message): Update for the new
- message-browser api.
-
- * message-browser.c (message_browser_new): A brand new
- implementation that just shows the message, none of that next/prev
- crap that always caused problems anyway.
-
- * mail-config.c (mail_config_add_account): Don't add any shortcuts
- here.
- (mail_config_remove_account): And don't remove them here. This
- code has never worked properly.
-
- * mail-ops.c (save_part_save): Use the exception enum names rather
- than '1' since it makes the code clearer.
-
-2002-05-10 Dan Winship <danw@ximian.com>
-
- * mail-ops.c (transfer_messages_transfer): Simplify. Use
- transfer_messages_to instead of picking between copy and move.
- Remove vtrash special-casing since it's all in
- camel-vtrash-folder.c now. Remove duplicate source == dest check.
-
- * mail-local.c (mail_local_folder_reconfigure): Use
- transfer_messages_to instead of copy_messages_to.
-
-2002-05-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Make sure that even
- if the new source url is NULL, that we preserve the enabledness of
- the source.
-
-2002-05-09 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (add_storage): Pass %FALSE as
- @has_shared_folders to evolution_storage_new().
-
-2002-05-09 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: dist Spell.idl
-
-2002-05-08 Radek Doulik <rodo@ximian.com>
-
- * mail-composer-prefs.c: implemented (c'n'p-ed and updated) spell
- checking settings
-
-2002-05-08 Iain Holmes <iain@ximian.com>
-
- * component-factory.c (owner_set_cb): Tell the folder info listeners
- that they're ready.
-
- * folder-info.c: Add a property bag to the CORBAObject.
- (do_get_info): Remove a load of cruft. Add some error checks.
- (do_free_info): Unref the listener.
- (destroy): Unref the propertybag.
- (set_prop): Set the property.
- (get_prop): Get the property.
- (evolution_folder_info_factory_fn): Create a propertybag.
- (evolution_folder_info_notify_ready): Notify all the listeners that
- the folder info is ready for querying.
-
-2002-05-08 Not Zed <NotZed@Ximian.com>
-
- * mail-autofilter.c (mail_filter_rename_uri): Changed for
- rule_context_rename_uri api changes.
- (mail_filter_delete_uri): Same. Also, popup a dialogue similar to
- vfolder deleted dialogue to notify the user something has
- changed. Partial fix for #18826.
-
-2002-05-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (filter_folder_free): Flush the filter log to make
- Tuomas happy :-)
-
- * mail-session.c (mail_session_flush_filter_log): New convenience
- function to flush the session's filter log file.
-
- * mail-callbacks.c (mail_reply): Set the Seen flag as well since
- it's safe to assume that if the user has replied to an email
- message that he has read it. Not always true, but usually ;-)
-
- * folder-browser.c (on_right_click): If we are in a
- Sent/Drafts/Outbox folder, don't show the "Add Sender to
- Addressbook" menu item.
-
-2002-05-06 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (idle_quit): Check all threads are idle as
- well, using new e_thread_busy call. Should fix #22553? Also
- sleep a little bit, to let the other threads run.
-
-2002-05-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (sig_new_text): Update the code to actually
- work.
- (sig_new_html): Same.
-
- * mail-composer-prefs.c (mail_composer_prefs_new_signature): Allow
- 'prefs' to be NULL.
-
- * folder-browser.c (on_right_click): Fix the filter_menu static
- array to use the E_POPUP_MENU_CC macros since we plan on using
- custom closures for this.
- (on_right_click): Fixed so that you can "Edit as New" for any Sent
- folder and not just the local Sent folder.
-
-2002-05-01 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.h (FOLDER_BROWSER_IS_DESTROYED): Also check
- folder!=NULL. Fixes race where folder isn't setup yet, and
- neither is bonobo menu status (because its delayed), and we get a
- menu event before we're setup yet. For bug #21939.
-
-2002-04-30 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (delete_msg): If the folder's permanent_flags
- don't include CAMEL_MESSAGE_DELETED, don't do anything. (In
- particular, don't move the cursor.)
-
-2002-04-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-tag-followup.c (message_tag_followup_append_message):
- Convert UTF-8 to gtkstrings since we are using a clist and not an
- E-widget that takes UTF-8.
-
- * mail-display.c (mail_display_add_url): If the data-urls is NULL,
- add a data-urls hash to the datalist. This finishes up bug #90.
-
- * mail-account-gui.c (save_service): Strip leading/trailing
- whitespace from the username because users sometimes accidently
- add extra spaces here and there. Fixes bug #24009 (along with a
- number of other "bugs").
- (mail_account_gui_auto_detect_extra_conf): Use a CamelURL instead
- of a GHashTable *settings. Also parse out the port # from the
- hostname.
-
-2002-04-29 Larry Ewing <lewing@ximian.com>
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): clean up
- propmanager initialization code.
-
- * mail-preferences.c (mail_preferences_construct): small clean
- ups to propmanager code.
-
- * mail-config-factory.c (config_control_factory_cb): handle
- requests for the font manager control.
-
- * mail-config.glade: add fonts tabs and reorder composer options
- to match the new dialogs from anna.
-
- * GNOME_Evolution_Mail.oaf.in: add font manager control definition.
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): hook to
- the gtkhtml propmanager.
- (mail_composer_prefs_apply): apply propmanager changes.
- (mail_composer_prefs_finalise): unref the propmanager.
-
- * mail-composer-prefs.h: add propmanager member.
-
- * mail-font-prefs.c: initialize gui properly.
-
- * mail-preferences.c (mail_preferences_construct): hook to
- gtkhtml's propmanager.
- (mail_preferences_apply): apply propmanager changes.
- (mail_preferences_finalise): unref the propmanager.
-
- * mail-preferences.h: add propmanager member.
-
- * Makefile.am (evolution_mail_SOURCES): add mail-font-prefs.[ch]
- to the build.
-
- * mail-tools.c (mail_tool_quote_message): use the html reply logic
- even for plain parts so that we can test out the new gtkhtml cite logic.
-
- * importers/evolution-mbox-importer.c (process_item_fn): add const
- to silence warning.
-
- * mail-display.c: add gtkhtml.h include so to pick up the
- object_relative prototype.
-
-2002-04-26 Larry Ewing <lewing@ximian.com>
-
- * mail-font-prefs.c: Add the font config dialog.
-
- * mail-font-prefs.h: add font config dialog headers.
-
-2002-04-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * Makefile.am: Don't link with libibex anymore, it's been
- deprecated.
-
- * mail-callbacks.c (next_unread_msg): Do away with the
- goto-next-folder stuff, it's very annoying.
-
- * mail-config-druid.c (extra_prepare): After building the extra
- config options into a Gtk form, auto-detect any values that we can
- and populate them by calling
- mail_account_gui_auto_detect_extra_conf.
-
- * mail-account-gui.c (mail_account_gui_auto_detect_extra_conf):
- New function to auto-detect the extra config options for a source.
-
-2002-04-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_build_extra_conf): Allow
- providers to override text entry boxes too.
- (source_type_changed): Remove the logic to decide upon default
- paths, these paths can now be set by the provider.
-
-2002-04-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (label_menu): Update to use
- E_POPUP_MENU_PIXMAP_WIDGET_ITEM_CC so that our callback gets
- called without per-item closure rather than being called with NULL
- and causing a segfault.
-
- * mail-account-gui.c (mail_account_gui_build_extra_conf): Set the
- default Username label and handle the new
- CAMEL_PROVIDER_CONF_LABEL enum allowing the provider to setup a
- label.
-
-2002-04-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c: Added back the checkmark icon for enabled
- accounts.
- (account_able_clicked): Don't reload the accounts list, that was
- just lame.
-
-2002-04-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (mail_display_render): Plug-in Anna's html for
- the flag-for-followup stuff. Finishes up bug #90.
-
-2002-04-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_finalise): Free the
- loading/pending/new/loaded_uid string buffers.
-
- * mail-config.c (config_read_signature): Free some temporary path
- buffers.
-
- * mail-display.c (stream_write_or_redisplay_when_loaded): Ref the
- html object here, this is an async handler so it's possible for
- our caller (or someone else) to unref the html object before we
- finish.
- (load_content_free): Unref the async handler's ref of the html
- object here.
- (mail_display_new): Ref the html widget here so that we can be
- sure that so long as the mail-display is "alive", so is the html
- object. See bug #22328 for details. Basically, the message-browser
- is being closed before the message gets loaded and so the html
- object was being destroyed but the mail-display was still alive.
- (mail_display_destroy): Unref the html object when the
- mail-display is destroyed.
-
-2002-04-19 Anna Marie Dirks <anna@ximian.com>
-
- * mail-config.glade: Added yet more accelerators for the new config
- dialog--this time for the composer pages
-
-2002-04-19 Anna Marie Dirks <anna@ximian.com>
-
- * mail-config.glade: Added a bunch of accelerators for the new config
- dialog
-
-2002-04-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (redirect_get_composer): Removed all
- Delivered-To headers before redirecting. Fixes bug #23635.
-
-2002-04-18 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (do_mail_print): use default paper name in case
- of wrong translation
-
-2002-04-15 Not Zed <NotZed@Ximian.com>
-
- * mail-identify.c (mail_identify_mime_part): Turn off the code
- which downloads the part if we can't identify it. See discussion
- in #11778.
-
-2002-04-17 Christopher James Lahey <clahey@ximian.com>
-
- * folder-browser.c, mail-display.c: Updated these to match the new
- EPopupMenu.
-
-2002-04-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_multipart_signed): Handle broken
- multipart/signed parts such as where the signature part is not the
- last part (as it should be). Fixes bug #23583.
-
- * folder-browser.c (message_list_drag_data_get): Free the temp
- GByteArrays.
-
-2002-04-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (mail_local_folder_construct): Just use g_basename.
- (mlf_finalize): Free the real_path.
-
- * folder-browser.c (on_right_click): Unref the GdkGC so we don't
- leak it.
-
-2002-04-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-tools.c (mail_tool_destroy_xevolution): Free the format
- string.
-
- * mail-config.c (config_write_signature): Don't leak the path
- strings here.
-
- * mail-signature-editor.c (menu_file_save_cb): Free the dirname
- string.
-
- * mail-config-factory.c (config_control_factory_cb): Ref the prefs
- widget here since we unref in the destroy callback. Caught this
- thanks to purify.
-
-2002-04-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c: Build fixes for --enable-nntp.
-
-2002-04-13 Christophe Merlet <redfox@eikonex.org>
-
- * mail-config.glade: Little typo. s/IS0/ISO/
-
-2002-04-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): Make it
- so that unchecking the "Enable Advanced Options" in the signature
- tab disables the advanced settings and vise versa.
-
- * mail-accounts.c (mail_accounts_tab_construct): Setup News
- preferences too if it is enabled.
-
- * mail-account-gui.c (mail_account_gui_new): Set the text of the
- reply-to.
- (mail_account_gui_save): Get the reply-to text here.
- (mail_account_gui_identity_complete): If there is text in the
- reply-to widget make sure it's valid.
-
- * mail-config.c (identity_copy): Copy the reply-to.
- (config_read): Read in the reply-to for all the accounts.
- (mail_config_write): Save the reply-to.
- (impl_GNOME_Evolution_MailConfig_addAccount): Get the reply-to.
- (identity_destroy): Free the reply-to.
-
-2002-04-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.etspec: s/Sent/Date. This fixes bug #11159.
-
-2002-04-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (confirm_expunge): Set the 'No' button as the
- default.
-
-2002-04-10 Dan Winship <danw@ximian.com>
-
- * mail-config.c (config_read, mail_config_write,
- mail_config_get_x_mailer_display_style,
- mail_config_set_x_mailer_display_style): Handle the X-Mailer
- display style. (There is currently no GUI for configuring this.)
-
- * mail-format.c (write_headers, write_xmailer_header): Show
- X-Mailer/User-Agent (and Rupert's stamp of approval) as
- appropriate.
-
-2002-04-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (setup_service): Kludge around the brokeness
- that is GtkOptionMenu just like we kludge around it for the
- authtype option menu.
-
-2002-04-09 Dan Winship <danw@ximian.com>
-
- * component-factory.c (create_view): Add view_info arg, but don't
- do anything with it.
-
-2002-04-08 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (receive_update_got_folderinfo): Argh!
- get_folder_info owns and frees its *OWN* folder info, it shouldn't
- be free'd here! See mail-ops.c:get_folderinfo_free.
- This should fix #17259 and friends.
-
-2002-04-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-signature-editor.c (menu_file_save_cb): Simplify a bit and
- write to a temp file first and then rename() it to the real
- filename. This protects against losing data if the drive is full
- too. Also use a real mode, not 0, so that we can actually
- save/read the content ;-)
-
- * GNOME_Evolution_Mail.oaf.in: Re-added the config wizard
- interfaces. Ettore accidently removed them thinking they were
- duplicates of the new mail-config interfaces.
-
- * mail-config.glade: Remove the OK, Apply, Cancel buttons from the
- keyboard shortcut tab in the composer_prefs dialog.
-
- * mail-account-gui.c: No need to check gui->source before using
- gui->source->url, since gui->source *has* to exist.
-
-2002-04-06 JP Rosevear <jpr@ximian.com>
-
- * GNOME_Evolution_Mail.oaf.in: add config_item:type
-
-2002-04-04 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Make the drafts and
- sent folder buttons be EvolutionFolderSelectorButtons. Remove the
- code to deal with drafts_folder_name and sent_folder_name, since
- they were only used to construct the button and aren't needed now.
- (mail_account_gui_save): Remove drafts/sent name references.
- (mail_account_gui_destroy): Likewise
- (folder_selected): Handle the "selected" signal on the folder
- selector button by updating the URI in the MailAccountGui.
- (mail_account_gui_folder_selector_button_new): Glade custom widget
- constructor.
-
- * mail-callbacks.c (transfer_msg): Update for
- evolution_shell_client_user_select_folder change.
-
- * message-browser.c (transfer_msg): Likewise. (Sigh. Why is this
- cut+pasted?)
-
- * mail-config.glade: Make the drafts/sent folder buttons custom
- widgets.
-
- * mail-config.c (account_copy): Remove drafts/sent folder name
- handling.
- (account_destroy): Likewise.
- (config_read): Likewise.
- (mail_config_write): Likewise.
-
- * Mail.idl (MailConfig:Account): remove drafts_folder_name and
- sent_folder_name.
-
-2002-04-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-tag-followup.c (construct): Set the window title/icon
- here instead.
-
- * message-tag-editor.c (message_tag_editor_init): Don't set the
- title or window icon here, this is a generic class.
-
- * mail-format.c (handle_multipart_signed): Replace
- get_url_for_icon with the new mail_display_get_url_for_icon
- function.
- (handle_multipart_digest): Here too.
- (get_cid): Use mail_display_add_url instead.
- (get_location): Same.
- (handle_text_enriched): Here too.
- (handle_multipart_signed): And here.
-
- * message-tag-followup.c (message_tag_followup_i18n_name): Use the
- U_() macro, not the _() macro as it is what we really want.
-
- * mail-ops.c (mail_send_message): Don't cast the message into a
- CamelMedium before sending anymore.
-
- * mail-callbacks.c (expunge_folder): Set the followup argument to
- NULL here.
- (done_message_selected): Get the followup value here and pass it
- to the mail-display here.
- (do_mail_fetch_and_print): Again with the NULL followup here.
-
- * folder-browser.c (folder_browser_set_message_preview): Update to
- pass in NULL as the followup since we are setting the message to
- NULL here.
- (done_message_selected): Get and set the appropriate followup
- value here.
- (do_message_selected): Update to pass in NULL as the followup
- since we are setting the message to NULL here.
-
- * mail-display.c (mail_display_set_message): Now takes a followup
- tag value.
- (mail_display_init): Set md->followup to NULL.
- (mail_display_destroy): Free md->followup.
- (mail_display_add_url): New: replaces the static add_url function
- originally in mail-format.c
- (mail_display_get_url_for_icon): New: replaces get_url_for_icon
- which was originally in mail-format.c
-
-2002-04-03 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c: Changes to allow combined store/transport
- providers (like exchange and nntp). You can only select the
- transport if the account is also using that provider for the
- source.
- (source_type_changed): If changing away from a combined
- store/transport type, disable that provider on the transport page.
- If change to a combined store/transport type, enable and select
- that provider on the transport page.
- (mail_account_gui_setup): Do some additional bookkeeping here to
- make the above stuff work.
- (transport_type_changed): If the provider is a combined
- store/transport type, pretend it doesn't need any additional URL
- configuration.
- (mail_account_gui_transport_complete): if the transport provider
- is also a store provider, then as long as it matches the source
- for the account, it's considered complete.
- (mail_account_gui_save): If the selected transport is a combined
- store/transport provider, use the source page's information to
- fill in the transport url.
-
- * mail-local.c (mail_local_provider_init): Don't set up
- service_cache.
-
-2002-04-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (do_edit_messages): Pass the UID of the message
- being edited to the save-draft signal handler.
- (composer_save_draft_cb): Pass the old draft uid to our async
- append_message function and let the append_message callback worry
- about deleting the old draft message on success.
- (save_draft_done): Delete the old draft message if we successfully
- appended the new draft message.
-
-2002-04-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c: Removed an unused pixmap from
- Tools/Settings to avoid a big nasty bonobo warning.
-
- * mail-composer-prefs.c (mail_composer_prefs_construct):
- Re-Implemented the signature editor stuff (mostly just copy/paste
- from Radeks original code).
-
- * mail-signature-editor.c (mail_signature_editor): Use the right
- oafiid for the html editor control.
-
-2002-04-01 Dan Winship <danw@ximian.com>
-
- * importers/Makefile.am (liboutlook_la_LDFLAGS,
- libmbox_la_LDFLAGS): Use -avoid-version -module. (From Max Horn
- <max@quendi.de>)
-
-2002-03-29 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.oaf.in: Added priorities for all the
- configuration pages [evolution:config_item:priority].
-
-2002-03-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-preferences.c (colorpicker_get_color): Don't shift the r, g
- and b values here either.
-
- * mail-composer-prefs.c (colorpicker_get_color): Don't shift the
- r, g, b values.
-
- * mail-preferences.c (mail_preferences_construct): Restore the
- labels & colours options from the grave.
- (mail_preferences_apply): Save these labels & colours options.
-
-2002-03-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-composer-prefs.c (mail_composer_prefs_construct): Same
- here.
-
- * mail-preferences.c (mail_preferences_construct): Do some gtk
- hackery action so we can detect if a option menu has changed.
-
-2002-03-29 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.oaf.in: Cleaned up a bunch [removing
- duplicates ;-)], set up icons for all the configuration pages.
-
-2002-03-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c: Use a GtkCList instead of an ETable, for some
- reason the etable was getting into some infinite resize loop or
- something. I probably did something wrong but I can't figure out
- what so I'm using a clist for now.
- (account_cursor_change): Make sure that event is non-NULL here.
-
-2002-03-27 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-accounts.c (mail_accounts_tab_construct): Use
- gtk_container_add() to put the toplevel in the parent widget,
- instead of just gtk_widget_set_parent().
- * mail-preferences.c (mail_preferences_construct): Likewise.
- * mail-composer-prefs.c (mail_composer_prefs_construct): Likewise.
-
-2002-03-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Updated to respect the
- new mail-config options for default reply style that NotZed had
- started to implement before there was a gui.
-
-2002-03-27 Dan Winship <danw@ximian.com>
-
- * mail-display.c (do_attachment_header): unset GTK_CAN_FOCUS on
- the button so that it can't grab focus when you click it.
- (do_signature): Likewise on the signature button. #3904
-
-2002-03-26 Jeffrey Stedfast <fejj@ximian.com>
-
- Sync with yet-another-mail-config branch.
-
- * mail-composer-prefs.c: Updated to get the right widgets and
- whatnot. Also updated to tell the evolution-config-control that
- stuff has changed.
-
- * mail-preferences.c: Updated to get the right widgets and
- whatnot. Also updated to tell the evolution-config-control that
- stuff has changed.
-
- * mail-accounts.etspec: New file needed by mail-accounts.c
-
-2002-03-26 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c (addrbook_sender): Changed to get the address
- from the messageinfo of the current selected message rather than
- from the current_message.
- (requeue_mail_reply): Only re-queue if we got a message, could
- potentially cause an infinite loop trying to get a message it
- can't.
- (reply_to_sender, reply_to_list, reply_to_all): Always pass NULL
- as the msg to mail_replay, this forces mail_reply to always load
- the message anew. Fixes FIXME's and popup behaviour. Basically
- this and stuff below fixes #8542. Its probably not the nicest
- way, but it works.
- (mark_as_important): Use the flags properly, we can set all flags
- to any combination of on or off as we want, so we just need to
- call set_flags once, thats why its set flags and not set_option.
- (toggle_flags): Fixed the logic here also, so we dont have to call
- set_message_flags more than once, and also implement a true toggle
- for any number of simultaneous flags (whilst simplifying code).
-
- * mail-vfolder.c (vfolder_gui_add_from_mlist): Removed the 'msg'
- parameter, its not used, fixed callers.
-
- * folder-browser.c (on_right_click): Lookup the mlist from
- messageinfo, and change the 'no selected' logic slightly, fixes
- most of #8542.
- (filter_data_free): Free filter data struct.
- (vfolder_type_got_message): Actually create vfolder once we have
- the message we need to use for it. Code could probably be changed
- to use messageinfo instead.
- (vfolder_type_uid): Lookup a message based on uid, and use that to
- create a vfolder based on type.
- (vfolder_subject_uid, vfolder_sender_uid, vfolder_receipient_uid,
- vfolder_mlist_uid): Callbacks for the popup menu, used to create
- rules based on the uid rather than the message, which it loads as
- required.
- (filter_type_got_message, filter_*_uid): Similar to vfolder
- stuff above.
- (filter_menu[]): Changed callbacks to popup specific ones, not
- folderbrowser specific ones used by bonobo.
- (on_right_click): Initialise callback data for the filter submenu
- so it can look up messages for callback implementation.
-
- * local-config.glade: New version from anna, with fixed widget
- names.
-
-2002-03-20 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser.c: Reorder folder_browser_search_menu_items
- according to #16246.
-
-2002-03-24 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-send-recv.c: Remove member current_folder from struct
- _send_data.
- (build_dialogue): Remove arg @current_folder.
- (mail_send_receive): Likewise.
- (free_send_data): No need to refresh the current folder here.
- [Well, hopefully, at least.]
-
- * component-factory.c (send_receive_callback): New.
- (create_component): Connect.
-
- * mail-callbacks.c (send_receive_mail): Removed.
-
- * folder-browser-ui.c: Remove "MailGetSend" verb.
-
-2002-03-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * GNOME_Evolution_Mail.oaf.in: Add info about the new config
- controls.
-
- * mail-config-factory.c: New file to handle the creation/etc of
- the config controls.
-
- * mail-accounts.c:
-
- * mail-preferences.c:
-
- * mail-composer-prefs.c: No longer handle their own bonobo control
- creation.
-
-2002-03-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (sig_new_text): Temporarily #if 0 this
- function out.
- (sig_new_html): Same.
-
- * mail-config.c (config_read): Read in the default reply style
- setting.
- (mail_config_write_on_exit): Same the default reply style.
- (mail_config_get_default_reply_style): New function to get the
- default reply style.
- (mail_config_set_default_reply_style): New function to set the
- default reply style.
-
- * folder-browser-ui.c: There is no longer a Tools/Mail Settings
- menu item.
-
- * mail-account-gui.c: Updated the widget types for the
- MailAccountsDialog->MailAccountsTab change.
-
- * mail_account_editor.c: Same.
-
- * mail-callbacks.c (providers_config): Removed.
-
- * mail-composer-prefs.c: New file that implements the composer
- preferences tab of anna's new config design.
-
-2002-03-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c: Reimplemented. This time we only have to worry
- about accounts. Also this now implements Annas config gui changes.
-
- * mail-preferences.c: Implements the mailer's Preferences tab in
- Anna's new config GUI.
-
-2002-03-19 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c: add missing NULL closure data to popup menu
- initialization.
-
-2002-03-19 Dan Winship <danw@ximian.com>
-
- * Makefile.am (evolution_mail_LDADD): s/libversit.la/libversit.a/
-
-2002-03-18 Ettore Perazzoli <ettore@ximian.com>
-
- * main.c (main): Report a message before entering bonobo_main() to
- simplify debugging.
-
-2002-03-18 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser.c: Remove E_FILTERBAR_RESET menu entry.
-
-2002-03-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (on_right_click): Draw colour rectangles for
- each of the colour items and set a closure on each.
- (colourise_msg): colourise the message, yo.
-
-2002-03-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (colour_msg): New callback to set a colour on a
- message.
-
- * folder-browser.c (on_right_click): Setup our popup icons and
- stuff. Also add a submenu for Labels.
-
- * mail-display.c (pixmap_press): Sync up with the new EPopupMenu
- API. Note: This code can probably now be fixed to use per-item
- closures - yay!
-
- * mail-accounts.c (construct): Connect to the label GtkEntry's and
- GnomeColorPickers and also to the Restore Defaults button.
-
- * mail-config.c (mail_config_get_label_name): New function to get
- a label's name.
- (mail_config_set_label_name): New function to set the label name.
- (mail_config_get_label_color): New function to get the label
- color.
- (mail_config_set_label_color): New function to set the label
- color.
- (config_read): Read in the config options for the labels and their
- colors.
- (mail_config_write_on_exit): Save the label options.
-
-2002-03-15 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c: expand the relative urls of the object at the
- point so that relative images can be saved correctly.
-
- * folder-browser.c: add a closing quote in a comment.
-
-2002-03-15 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser-factory.c (control_activate): Set the UI
- component on the search bar.
-
-2002-03-14 Dan Winship <danw@ximian.com>
-
- * component-factory.c (folder_types): Remove "mailstorage", since
- it's not needed any more.
- (storage_activate): Gone, although some of it is moved to
- storage_connect.
- (create_view): Remove mailstorage code.
- (add_storage): Connect to the storage's open_folder signal.
- Instead of creating a "mailstorage" folder, call
- evolution_storage_has_subfolders to let the shell know we haven't
- finished filling it in yet.
- (storage_connect): Handler for the storage's asyncOpenFolder
- signal. Call mail_note_store() to try to connect.
- (storage_connected): Callback for above. If the connection attempt
- failed, call evolution_storage_has_subfolders again to make the
- shell re-close the storage.
-
- * mail-folder-cache.c (update_folders): Remove a piece of
- mailstorage legacy code from here.
-
-2002-03-14 Radek Doulik <rodo@ximian.com>
-
- * mail-config.c (get_new_signature_filename): create new signature
- file
- (delete_unused_signature_file): be more careful about signature
- file path before unlinking
-
-2002-03-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (next_thread): Implemented.
-
- * message-list.c (message_list_select_next_thread): New function
- to select the next thread.
-
-2002-03-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-window.c (folder_browser_window_new): Set a
- default size of the window, so we don't get this itty-bitty window
- the size of a quarter on the screen when it first gets shown.
-
-2002-03-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (on_link_clicked): Handle digest: urls.
-
- * mail-format.c (setup_mime_tables): Add a handler for
- multipart/digest.
- (handle_multipart_digest): Handle multipart/digest parts.
-
-2002-03-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_set_folder): Set the folder on
- a folder-browser object.
-
- * folder-browser-window.c (folder_browser_window_new): Simple
- window to display a folder-browser.
-
- * mail-callbacks.c (view_digest): New callback to open a
- folder-browser-window with a digest folder.
-
-2002-03-08 Radek Doulik <rodo@ximian.com>
-
- * mail-signature-editor.c (menu_file_save_cb): truncate stream
- before saving
-
- * mail-config.c (mail_config_signature_set_html): new function
-
- * mail-accounts.c (sig_event_client): watch for HTML changed event
-
- * mail-signature-editor.c: added HTML check menu item to Format
- menu
-
-2002-03-08 Dan Winship <danw@ximian.com>
-
- * mail-config-druid.c (management_prepare): Rewrite this to not
- use stpcpy, which isn't portable.
-
-2002-03-08 Radek Doulik <rodo@ximian.com>
-
- * mail-accounts.c (sig_event_client): handle name changed event
- (sig_load_preview): don't run script before each reload
- (sig_script_activate): run script only if script entry is
- activated
-
- * mail-signature-editor.c (mail_signature_editor): added signature
- name entry
-
-2002-03-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (management_changed): Re-focus the account
- name entry widget.
- (identity_prepare): If a name is not set, try and get the user's
- full name for them and set the text on the entry widget.
- (management_prepare): If the account name is already taken,
- generate a unique one by appending " (%d)".
-
-2002-03-07 Radek Doulik <rodo@ximian.com>
-
- * mail-account-gui.c (sig_new_html): make edit button sensitive
- after new signature is created
- (sig_new_text): ditto
-
-2002-03-07 Anna Marie Dirks <anna@ximian.com>
-
- * folder-browser.c: Made all the acclerators in the context menu
- on a message work. (There are 22 different menu items here, so
- picking a unique accelerator for each label was tricky, and some
- of the choices I made are different from the ones I would have
- made if there weren't so many stinking menu items.)
-
-2002-03-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (config_import_old_signatures): Don't use an
- uninitialized 'id'.
-
-2002-03-07 Radek Doulik <rodo@ximian.com>
-
- * mail-signature-editor.c: notify accounts dialog about signature
- content change
-
- * mail-accounts.c (run_script): run script only if file regular
- file exists and has x flag
-
- * mail-signature-editor.c (mail_signature_editor): set initial
- focus to editor
- (do_exit): use hasUndo to avoid question dialog when content is
- unchanged
-
-2002-03-07 Dan Winship <danw@ximian.com>
-
- * component-factory.c (add_storage): Update for storage changes:
- explicitly create a root folder.
-
-2002-03-06 Dan Winship <danw@ximian.com>
-
- * mail-display.c (mail_display_render): Fix the "don't scroll back
- to the top of the HTML widget when opening an attachment" hack
- again by moving it here from mail_display_redisplay(). (It has to
- happen after the gtk_html_begin.)
- (mail_display_redisplay): Pass reset_scroll arg to
- mail_display_render.
-
- * mail-callbacks.c (do_mail_print): Pass reset_scroll (TRUE) to
- mail_display_render.
-
-2002-03-05 Dan Winship <danw@ximian.com>
-
- * folder-browser-ui.c: Don't try to set pixmap for
- /Toolbar/MailCompose, since it doesn't exist any more.
-
-2002-03-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (save_service): "use_ssl" can now be 3
- options, modify the code to handle this.
- (setup_service): Toggle the correct ssl option.
- (source_type_changed): Show/hide the ssl hbox container widget.
- (transport_type_changed): Same.
-
-2002-03-05 Dan Winship <danw@ximian.com>
-
- * mail-folder-cache.c (mail_note_store): Pull up assertion change
- from evolution-1-0-branch to allow external storages.
-
-2002-03-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (mail_unselect): If the clicked column was
- column 0, enable/disable it.
- (mail_select): Same.
-
- * mail-display.c (load_http): Added more debugging code to help
- figure out why a certain image isn't loading - looks like
- gnome-vfs is getting a premature EOF?
-
- * folder-browser.c (my_folder_browser_init): Connect to the
- focus-in/out events on the message-list so that we can disable the
- EditInvertSelection and EditSelectThread menu items when the
- message-list is not in focus.
-
- * folder-browser-ui.c (folder_browser_ui_message_list_unfocus):
- New function to de-sensitize some items if the message-list is not
- in focus.
- (folder_browser_ui_message_list_focus): New function to sensitize
- some items if the message-list is not in focus.
-
- * mail-callbacks.c (invert_selection): Only invert the selection
- of the message-list if it is the widget in focus.
-
- * message-list.c (message_list_select): Do not explicitly grab the
- focus here.
-
-2002-03-04 Ettore Perazzoli <ettore@ximian.com>
-
- [Fix #19303.]
-
- * mail-ops.c (mail_send_message): Set X-Mailer to say "Ximian
- Evolution", not just "Evolution".
-
-2002-03-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (forward_message): Forward all selected
- messages. Fixes bug #21190.
-
-2002-02-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_text_html): Get the Content-Base if the
- header exists and use gtk_html_set_base to set this base url.
-
- * mail-display.c (on_link_clicked): No longer need to calculate
- the full url. This is now handled by GtkHTML.
- (on_set_base): Removed.
- (on_url_requested): No longer need to calculate the full url.
- (mail_display_initialize_gtkhtml): Don't connect to the set_base
- signal anymore. We don't care.
-
- * mail-display.h: No longer need base_url (it was broken anyway).
-
-2002-02-26 Not Zed <NotZed@Ximian.com>
-
- * mail-display.c (on_url_requested): If a related part is
- requested, remove it from the related undisplayed list.
-
- * mail-format.c (handle_multipart_related): Check if related parts
- are displayed, if not, remove them. For #2741.
-
-2002-02-24 Chris Toshok <toshok@ximian.com>
-
- * folder-browser.c (folder_browser_search_do_search): rename
- folder_browser_search_query_changed to this.
- (folder_browser_gui_init): hook both query_changed and
- search_activated up to folder_browser_search_do_search, preserving
- current behavior.
-
-2002-02-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (on_message_list_built): Removed, this wasn't
- working as intended and seemed to break other features.
-
-2002-02-21 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Add an icon for the "New
- message" user creatable item.
-
-2002-02-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (on_message_list_built): Connect to our own
- message_list_built signal. Focus the list and select the first
- unread message (or frst message depending). Fixes bug #3900.
-
-2002-02-20 Anna Marie Dirks <anna@ximian.com>
-
- * message-tag-editor.c (message_tag_editor_init): Gave the editor
- window a title and an icon.
-
-2002-02-20 Anna Marie Dirks <anna@ximian.com>
-
- * message-tags.glade: Changed the policy for table2 so that it
- does not expand/fill. This was necessary to allow the message list
- as much growing room as possible. (And besides, there's no reason for
- table2 to expand/fill; its child widgets can't change size.
-
-2002-02-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (confirm_goto_next_folder): Prompt the user to
- find out if he/she wants to go to the next folder with unread mail
- in it.
- (find_current_folder): Find a given CamelFolderInfo node based on
- a given uri.
- (find_next_folder_r): Recursively look for a CamelFOlderInfo node
- which has unread messages.
- (find_next_folder): Given a currently selected CamelFolderInfo
- node, look for the next node containing unread messages.
- (do_evil_kludgy_goto_next_folder_hack): Find the currently
- selected folder and then find the very next folder after it that
- contains unread messages and then select it via a CORBA call to
- the shell.
- (next_unread_msg): If we fail to find an unread message in the
- message-list, prompt the user to find out if we should jump to the
- next fodler containing unread messages. If so, call
- do_evil_kludgy_goto_next_folder_hack().
-
- * message-list.c (message_list_select): Return a boolean value
- based on whether the call was successfull or not.
-
- * mail-config.c (mail_config_get_confirm_goto_next_folder):
- (mail_config_set_confirm_goto_next_folder):
- (mail_config_get_goto_next_folder):
- (mail_config_set_goto_next_folder): All new functions, yay.
- (config_read): Read in the confirm_goto_next_folder and
- goto_next_folder config options.
- (mail_config_write_on_exit): Same the options here.
-
-2002-02-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (basename_from_uri): Ack, strip off the
- leading '/' char and also only translate if it is a local uri,
- imap folders and other external folders will be named by the user
- so no need to translate those.
-
- * mail-display.c (do_attachment_header): Don't display a
- down-arrow if the attachment is undisplayable. Fixes bug #6919.
- (launch_cb): Some programs are buggy when it comes to parsing
- file: uris, so make sure we do file://%s. Fixes bug #20456.
-
-2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (basename_from_uri): Replacement for using
- g_basename and also translates the basename string to fix bug
- #7160.
- (mail_account_gui_save): Use basename_from_uri().
- (folder_picker_clicked): Here too.
-
- * mail-callbacks.c (mail_generate_reply): Default the from-account
- to the source account. If that fails, then guess the from-account
- based on the recipients. Fixes bug #20479.
-
-2002-02-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (drag_data_get_cb): Implement.
- (drag_data_delete_cb): Implement.
- (do_attachment_header): Setup Drag & Drop. This implements
- bugzilla bug #1066.
-
- * folder-browser-ui.c: Set the followup icon to use the new flag
- icon rather than the exclamation mark icon.
-
- * mail-callbacks.c (flag_for_followup): Append the selected
- messages to the clist in the followp editor.
-
- * message-list.c: Include the new flag-for-followup icon.
-
- * message-tag-followup.c (message_tag_followup_append_message):
- New method to add a message to the message-list.
- (construct): Get the message_list widget and load the flag icon
- pixmap.
-
-2002-02-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-tag-followup.c (set_widget_values): Fixed a bug.
-
- * mail-callbacks.c (flag_for_followup): If only 1 message is
- selected and it happens to already be marked for follow-up, set
- the value of the flag on the editor so the settings are restored.
-
- * folder-browser-ui.c: Set the pixmaps on MarkAsRead, MarkAsUnread
- and MarkAsImportant bonobo verbs. Also connect to
- flag-for-followup verb.
- (folder_browser_ui_set_selection_state): Added MessageFollowUpFlag
- verb to the array of verb strings.
-
- * folder-browser.c: Set key accelerators on the follow-up
- right-click menu items to match Outlook.
-
-2002-02-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (create_msg_composer): No longer need to call
- e_msg_composer_show_sig_file(). This gets handled auto-magically
- by a signal emition when the default From address chooser gets
- created.
- (do_forward_non_attached): No longer need to call it here either
- because e_msg_composer_set_body_text() now makes sure to re-show
- the signature.
-
-2002-02-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (do_forward_non_attached): Show the signature.
-
-2002-02-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (ml_tree_value_at): Get followup-up message-list
- values. Also highlight the message in red if the due-by date is
- past due (this is what Outlook does).
- (ml_duplicate_value): Handle follow-up columns.
- (ml_free_value): Same.
- (ml_initialize_value): Here too.
- (ml_value_is_empty): And here.
- (ml_value_to_string): And finally here.
-
- * message-tag-followup.c (message_tag_followup_i18n_name): New
- convenience function.
-
-2002-02-11 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (create_msg_composer): unset changed, drop
- editor undo
- (mail_generate_reply): drop editor undo
- (do_forward_non_attached): ditto
- (do_forward_attach): ditto
- (do_redirect): ditto
-
-2002-02-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (followup_tag_complete): Implemented.
- (on_right_click): Do better enabling/hiding of unwanted
- flag-for-followup options.
-
-2002-02-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-tag-followup.c (set_widget_values): Set the correct
- drop-down menu item.
- (message_tag_followup_encode): Return NULL if the type is NONE.
- (clear_clicked): Set the drop-down menu to None.
- (type_changed): Hide the None menu item.
- (construct): Create a None menu item and set it as the default.
-
-2002-02-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-tag-followup.[c,h]: New flag-for-followup tag editor
- dialog.
-
- * mail-callbacks.c (flag_for_followup): New callback that pops up
- a flag-for-followup editor dialog.
- (flag_followup_completed): Marks all flag-for-followup'd messages
- as 'complete'.
- (flag_followup_clear): Clears all flag-for-followup tags from the
- selected messages.
-
- * message-tags.glade: glade file for tag editors.
-
-2002-02-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-tag-editor.[c,h]: Base class for a message tag editor.
-
- * folder-browser.c (on_right_click): Setup the hide/enable masks
- for "Flag for Follow-up"
-
- * mail-callbacks.c (confirm_expunge): Instead of hiding deleted
- messages and then expunging, disable the use of the message-list
- completely during the expunge operation.
- (expunged_folder): Re-enable the use of the message-list widget
- here.
-
-2002-02-07 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): call set_body later to
- allow ignored words to be sent to gtkhtml control ahead
-
-2002-02-07 JP Rosevear <jpr@ximian.com>
-
- * component-factory.c (create_component): remove "New" from user
- creatable menu item
-
-2002-02-07 Christopher James Lahey <clahey@ximian.com>
-
- * folder-browser.c, folder-browser.h, folder-browser-ui.c,
- folder-browser-ui.h
- (folder_browser_ui_setup_view_menus,
- folder_browser_ui_discard_view_menus): Changed this to use the new
- GalViewMenus stuff. Made these exported functions.
-
- * mail-callbacks.c, message-browser.c: Changed these to not pass
- the now removed row parameter to message_list_select.
-
- * mail-config.c, mail-config.h (mail_config_folder_to_safe_url):
- Refactored this out of mail_config_folder_to_cachename.
-
- * message-list.c, message-list.h (message_list_select): Removed
- the row argument. Changed this to use the new function in ETree
- for finding the next cursor row that matches a test.
- (message_list_construct): Handle a failed construction of the
- ETree here.
- (message_list_setup_etree, save_tree_state): Don't load or save
- the header state. folder-browser-ui.c deals with this now.
-
-2002-02-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Rearranged the #if
- checks so that we don't ever try to access any smime widgets
- (since they are now being destroyed) if smime isn't enabled.
- (mail_account_gui_save): Same here.
-
- * message-list.c: Removed references to NEEDS_REPLY.
-
- * mail-callbacks.c (mark_as_needing_reply): Removed.
- (mark_as_not_needing_reply): Removed.
- (toggle_need_reply): Removed.
-
- * folder-browser.c (on_right_click): Remove CAN_MARK_NEEDS_REPLY
- stuff, this is going to be implemented in an entirely different
- way.
-
- * mail-format.c (handle_text_plain): Look for DOCTYPE XML comments
- too to decide if the message content is really HTML.
-
-2002-02-06 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Dont double-free the
- text body data.
-
-2002-01-31 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Add attachments after
- we've seen if the composer object is valid.
- (mail_generate_reply): Support new flag REPLY_NO_QUOTE - if set,
- then dont quote any of the message in the reply.
-
-2002-02-02 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Destroy the S/MIME
- frame if not available, instead of just graying it out. [I would
- just hide it, but it looks like there is a show_all somewhere so
- that doesn't work.]
-
-2002-02-02 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-config.glade: Some touchups from me and Anna.
-
-2002-01-31 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Don't bother setting
- the auto-cc/bcc recipients here. I'm moving the code to add them
- in the GUI in the composer so they will already be in the
- recipient list by this point.
-
-2002-01-31 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): ignore spell checking of
- words in addresses, move set_body_text after all ignored words are
- set so we don't have to spell check whole document again
- (mail_ignore_address): helper function
- (mail_ignore): ditto
-
-2002-01-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (mail_edit): Pass the parent window to
- mail_account_editor_new().
-
- * mail-account-editor.c (mail_account_editor_new): Set the parent
- window here because construct() inadvertantly
- gtk_widget_show_all's the editor.
-
- * mail-account-gui.c (mail_account_gui_save): Use g_basename()
- rather than strrchr for '/' especially since the strrchr code
- wasn't doing any NULL checks.
-
-2002-01-30 Radek Doulik <rodo@ximian.com>
-
- * mail-format.c (handle_text_plain_flowed): print quoted text in
- italic
-
-2002-01-30 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (create_component): re-enable popup menu.
- (populate_folder_context_menu): If we're on a vfolder, and its not
- UNMATCHED, create a change properties item, and set it up
- approriately.
- (change_prop_popup): Callback to edit the vfolder rule. For
- #3358.
-
-2002-01-29 Dave West <kat@unleashed.org>
-
- * mail-callbacks.c (create_msg_composer): Changed the function
- signature so that we can pass in whom we want to compose as.
- Should fix bug #10391.
- (compose_msg): Get the current profile account and pass it along
- to create_msg_composer.
- (send_to_url): Pass in a NULL profile account to cause
- create_msg_composer to use the default account.
-
-2002-01-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): Make X-Evolution-Account take
- priority over X-Evolution-Transport. Should we just get rid of
- X-Evolution-Transport? Anyways, this ought to fix a number of
- complaints.
-
- * mail-accounts.c (construct): Don't pass NULL text to
- gtk_entry_set_text. Maybe this will fix bug #18971.
-
-2002-01-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (redirect): New function that implements the
- Redirect feature.
-
- * mail-ops.c (mail_send_message): If we are redirecting a message,
- get the Resent-* recipients otherwise get the normal To/Cc/Bcc
- recipients and use them in the CamelTransport::send_to() method.
-
- * mail-session.c (main_get_filter_driver): Set the beep_func to
- the beep_cb, not the play_sound_func. Oops ;-)
-
- * folder-browser-ui.c: Add Redirect bonobo verb thingy here.
- (folder_browser_ui_set_selection_state): Add MessageRedirect to
- the proper string arrays.
-
-2002-01-29 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (do_mail_print): initialize line to 0 to make
- everybody happy ;-)
- ops, set local_font to NULL
- (do_mail_print): get rid of static global variables, as they are
- not thread safe (thanks to clahey for pointing this out)
- (footer_info_free): unref footer font
-
-2002-01-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Don't bother checking
- for invalid recipients anymore. If a recipient is invalid, the
- transport error message will specify that now.
-
-2002-01-28 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (do_mail_print): print footer
- (footer_print_cb): print page number and number of pages
-
-2002-01-27 Ettore Perazzoli <ettore@ximian.com>
-
- * importers/Makefile.am: Use IMPORTERS_CFLAGS.
-
-2002-01-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (delete_event_cb): We need to return a value
- here. I think FALSE is fine (I hope).
-
- * mail-display.c (save_data_cb): Save the pathname.
- (save_part): Use the new mail_config cruft to get the last used
- save pathname.
-
- * mail-config.c (config_read): Read in last_filesel_dir string.
- (mail_config_write_on_exit): Save the last_filesel_dir setting.
- (mail_config_get_last_filesel_dir): New
- (mail_config_set_last_filesel_dir): New
-
- * component-factory.c (destination_folder_handle_motion): Do some
- NULL checking on the url before using it.
- (destination_folder_handle_drop): Make sure the uri is non-NULL
- before freeing.
-
-2002-01-24 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am: s/MAILER_CFLAGS/EVOLUTION_MAIL_CFLAGS/,
- s/MAILER_LIBS/EVOLUTION_MAIL_LIBS/.
-
-2002-01-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (session_system_beep): This wrapper for gdk_beep().
-
- * mail-account-gui.c (is_email): Don't bother trying to see if the
- domain looks like a FQDN.
-
- * mail-callbacks.c (select_all): If the mail-display is in focus,
- then select-all in the mail display rather than the
- message-list. Fixes bug #19126.
-
-2002-01-23 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (create_component): Pass a NULL icon to
- `evolution_shell_component_add_user_creatable_item()'.
-
-2002-01-23 Jeffrey Stedfast <fejj@ximian.com>
-
- Implements bug #15692
-
- * folder-browser.c (html_button_press_event): New callback that
- checks to make sure that the mouse isn't over a link or image in
- the html view and then calls the on_right_click handler after
- getting the appropriate args.
- (my_folder_browser_init): Connect to the button_press_event here.
-
-2002-01-23 Dan Winship <danw@ximian.com>
-
- * Makefile.am (INCLUDES): Define CAMEL_PROVIDERDIR to be the
- configure.in-defined camel_providerdir. (Was supposed to have been
- committed a month ago... oops.)
-
-2002-01-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_filter_folder): Now takes a boolean notify
- argument. If this is *not* set, then remove the sound-notify
- filter rule that mail-session adds. Kinda kludgy, but good enough
- for the moment.
-
- * mail-callbacks.c (guess_me): Simplified.
-
-2002-01-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_text_plain): If the first "token" in the
- body is "<html>", then treat this as a text/html part rather than
- a text/plain part. Fixes bug #16817.
-
- * component-factory.c (destination_folder_handle_drop): Removed
- some unused variables.
-
-2002-01-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (try_uudecoding): Update to match new uudecode
- interface (ie, no longer need a uulen state variable).
-
-2002-01-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (on_set_base): New callback to handle the
- set_base signal.
- (on_url_requested): If the base_url is set, prepend it to the data
- url (we don't want to do this for cid urls or part urls tho).
- (mail_display_init): Initialize md->base_url to NULL.
- (mail_display_destroy): Free the base_url.
- (mail_display_initialize_gtkhtml): Connect to the set_base signal.
- (on_link_clicked): If the base_url is set, prepend it to the url
- string passed to us from gtkhtml.
-
-2002-01-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (do_edit_messages): Don't remove any
- X-Evolution* headers here, the composer already knows to ignore
- these. Besides, it needs to know the X-Evolution-Format header.
-
-2002-01-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_save_draft_cb): Do proper refcounting
- on the draft folder.
-
- * message-list.c (message_list_select): When performing a
- wraparound, check to see if the first (or last depending on
- direction) message fits the selection criteria before telling
- etable to find the next/previous matching node.
-
- * mail-account-gui.c (mail_account_gui_new): When connecting to
- the transport username changed event, pass the gui->transport not
- the gui->source.
-
-2002-01-08 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c (string_to_int): Takes a hex
- string and converts it to an int.
- (get_info_from_mozilla): Creates a CamelMessageInfo structure from
- the X-Mozilla-Status header.
- (process_item_fn): Check for the X-Mozilla-Status header and if it
- is present call get_info_from_mozilla. If get_info_from_mozilla
- returns that the message was marked as deleted but never expunged
- it isn't imported.
-
- * importers/mozilla-status-headers.h: Stuff Evolution cares about
- from the mozilla header.
-
-2002-01-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_set_new_mail_notify_sound_file): Renamed.
- (mail_config_get_new_mail_notify_sound_file): Renamed.
-
- * mail-accounts.c (notify_radio_toggled): Replace EXEC with
- PLAY_SOUND.
- (construct): renamed the exec_command stuff to play_sound.
-
- * main.c (main): Init and shutdown gnome_sound.
-
- * mail-ops.c (fetch_mail_fetch): Don't do any new-mail
- notification here.
- (filter_folder_filter): call camel_filter_driver_flush.
-
- * mail-session.c (main_get_filter_driver): Set the filter-driver
- exec_func here instead.
-
- * mail-ops.c (mail_fetch_mail): Don't set the filter-driver
- exec_func here.
-
-2002-01-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Add an Organization
- header.
-
-2002-01-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (list_add_addresses): Simplified. Also no
- longer needs an "ignore_addr" argument as far as I can tell so
- that has been removed.
- (mail_generate_reply): Don't pass an ignore_addr argument to
- list_add_addresses and also change to use g_strcase_hash and
- g_strcase_equal since addresses are not case snesitive
- (mostly). Also, Reply-To can contain multiple addresses, so handle
- this case too.
-
-2002-01-02 JP Rosevear <jpr@ximian.com>
-
- * mail-callbacks.c: remove e_gnome_dialog util functions and use
- e-util ones instead
-
-2001-12-21 Jeffrey Stedfast <fejj@ximian.com>
-
- The idea here is that if we consistantly name the movemail file
- between Send&Receive sessions that if the user cancells the
- "download" of a mbox spool that the next Send&Receive will not
- "lose" mail that didn't finish the previous session. Fixes bug
- #17759. Well, mostly. If you have 200 messages and cancel after
- the first 100, say, then the next time you hit Send&Receive, it
- will start over from 1 so you'll end up duplicating the first 100
- messages, but at least you won't "lose" mail.
-
- * mail-tools.c (mail_tool_get_local_movemail_path): Now a static
- internal function, takes a char *uri argument and no longer
- generates movemail.%d filenames... they are now based on the uri
- provided.
- (mail_tool_do_movemail): Pass along the source_uri.
-
-2001-12-20 Jon Trowbridge <trow@ximian.com>
-
- * message-list.c (on_click): Makes the auto-undelete behavior when
- changing message flags a bit more sane. (Fixes #17634)
-
-2001-12-20 Ettore Perazzoli <ettore@ximian.com>
-
- [Fixes #17377, Evolution doesn't work on multi-depth displays.]
-
- * main.c (main): Push GdkRGB visual and colormap.
-
-2001-12-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Add the auto-cc/bcc
- recipients here. The problem with setting them in the composer is
- that what if the user changes which account he wants to use? We'd
- either have to clear the cc/bcc lists *or* we'd have to leave them
- alone. Either way is bad. We can't just clear the entries because
- the user may have added addresses since the composer was
- opened. We don't want to leave any old auto-cc/bcc addresses there
- because that isn't desirable either. So we give up and add them
- here after the user has already hit the send button.
-
- * mail-config.c (account_copy): Update to copy the always-[b]cc
- options.
- (account_destroy): Update to destroy the above options.
- (config_read): Update to read in those values.
- (mail_config_write): Save those options.
-
- * mail-account-gui.c (mail_account_gui_new): Setup Always Cc/Bcc
- widgets.
- (mail_account_gui_save): Get the user-entered values for the
- always-cc/bcc stuff.
-
-2001-12-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (setup_service): If the provider is NULL,
- don't do anything.
-
- * mail-accounts.c (construct): Oops, no wonder the exec command
- thing never stuck around... I wasn't getting the right widget from
- libglade. Also connect to the GtkEntry's changed event since a
- GnomeFileEntry doesn't have that signal in its ancestry.
-
-2001-12-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (filter_folder_free): Argh, don't notify about new
- mail here.
- (fetch_mail_fetch): Notify about new mail here instead.
-
- * mail-accounts.c (construct): Setup the new-mail-notification
- widgets.
- (notify_command_changed): Update the command-line for new mail
- notification.
- (notify_radio_toggled): Update the new-mail-notification type.
-
- * mail-ops.c (filter_folder_free): See if we got any new mail and
- "sound the alarm" if we did.
-
-2001-12-17 Jon Trowbridge <trow@ximian.com>
-
- * mail-format.c (handle_text_plain_flowed): Set citation color to
- black when we are printing.
-
- * mail-format.c (attachment_header): Avoid embedding <object> tags
- when we are printing.
- (handle_multipart_signed): Don't do the click-for-info signature
- stuff when we are printing.
- (handle_via_bonobo): Don't embed an <object> tag if we are
- printing.
-
- * folder-browser.c: Changed context_menu[] array so that we can
- print when the preview pane is closed.
-
-2001-12-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_fetch_mail): Set the filter driver's shell-exec
- callback.
-
-2001-12-12 Jeffrey Stedfast <fejJ@ximian.com>
-
- * mail-config.c (mail_config_check_service): Connect to the
- destroy signal on the popup dialog.
-
-2001-12-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_text_plain): Make sure i != num_specials
- after we check for any special text markers. Fixes bug #12265.
-
-2001-12-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (compose_msg): Connect to the save-draft signal.
- (send_to_url): Here too.
- (mail_reply): And here...
- (forward_get_composer): Same.
- (do_edit_messages): And finally here.
-
- * mail-format.c (try_inline_pgp):
- (try_inline_pgp_sig): Start reiplementing The Right Way and not
- danw's fucking half-assed kludge that doesn't work.
-
-2001-12-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_set_new_mail_notification_command):
- set the new-mail-notify command.
- (mail_config_get_new_mail_notification_command): get the
- new-mail-notify command.
- (mail_config_set_new_mail_notification): set the
- new-mail-notification action.
- (mail_config_get_new_mail_notification): get the
- new-mail-notification action.
- (mail_config_write_on_exit): save the new-mail-notification
- settings.
- (config_read): Read in the new-mail-notification settings.
-
- * mail-ops.c (mail_execute_shell_command): New function to execute
- a shell command async. Will be used for playing sounds on new mail
- or whatever.
-
-2001-12-11 Jon Trowbridge <trow@ximian.com>
-
- * mail-identify.c (mail_identify_mime_part): Fixed for
- mail_content_loaded's new signature.
-
- * mail-format.c (attachment_header): Don't convert URLs, etc. if
- we are printing.
- (write_address): Don't convert addresses to mailto: links if we
- are printing.
- (write_one_text_plain_chunk): Add a printing flag, that we pass
- along to mail_text_write.
- (handle_text_plain): Pass our printing flag to
- write_one_text_plain_chunk.
- (mail_get_message_rfc822): Don't unneccesarily convert URLs.
- (mail_content_loaded): Add a GtkHTML parameter.
-
- * mail-display.c (mail_display_initialize_gtkhtml): Added. Breaks
- all of the signal hookups out of mail_display_new.
- (mail_display_new): Call mail_display_initialize_gtkhtml.
- (mail_text_write): Don't convert URLs, etc., if we are printing.
- Lots of other changes to pass around GtkHTML/GtkHTMLStream objects.
-
- * mail-callbacks.c (do_mail_print): Call
- mail_display_initialize_gtkhtml on our GtkHTML object.
-
- * folder-browser.c (update_status_bar): Make the status bar more
- useful when you have a large number of hidden messages.
-
- * message-list.etspec: Add ETable magic for our new "Needs Reply"
- column. (The next few entries are for bug #90)
-
- * message-list.h: Add COL_NEED_REPLY.
-
- * message-list.c: Move mail_need_reply_xpm to the end of
- states_pixmaps.
- (ml_duplicate_value): Handle COL_NEED_REPLY.
- (ml_free_value): Handle COL_NEED_REPLY.
- (ml_initialize_value): Handle COL_NEED_REPLY.
- (ml_value_is_empty): Handle COL_NEED_REPLY. Added
- needs_reply_map[] array.
- (ml_value_to_string): Handle COL_NEED_REPLY.
- (ml_tree_value_at): Fix magic numbers, undoing my changes from the
- otehr day. Add handler for COL_NEED_REPLY.
- (message_list_create_extras): Attach icons for COL_NEED_REPLY.
- (on_click): Undo my previous changes to display need-reply status
- in COL_MESSAGE_STATUS. Add handing for COL_NEED_REPLY.
-
- * mail.h: Change mail_format_mime_message, mail_format_raw_message
- and the MailMimeHandlerFn typedef to take GtkHTML and
- GtkHTMLStream args, as per our changes in mail-format.c.
-
- * mail-format.c: Giant refactoring. Remove the assumption
- throughout that we will always want to render into the GtkHTML
- object contained in the MailDisplay. Instead, always pass in the
- GtkHTML and GtkHTMLStream that we want to write to. Also, ignore
- theme work-arounds if the printing flag is set. (This and what
- follows fixes bug #82)
-
- * mail-display.h: Remove GtkHTMLStream *stream from MailDisplay.
- We don't need it anymore.
-
- * mail-display.c (mail_display_render): Added. Breaks the code
- that renders the message into the GtkHTML object out of
- mail_display_redisplay.
- (mail_display_redisplay): Call mail_display_render.
- (mail_display_init): Remove reference to ->stream.
- (mail_display_new): Remove reference to ->stream.
-
- * mail-callbacks.c (do_mail_print): Create a new GtkHTML to render
- our printed version into (via the new function
- mail_display_render. Set the MailDisplay's printing flag to TRUE
- before we render, and set it back to FALSE afterwards.
- (do_mail_fetch_and_print): If the preview pane isn't open when we
- try to print, fetch the message before printing.
- (print_msg): Call do_mail_fetch_and_print.
- (print_preview_msg): Call do_mail_fetch_and_print.
-
- * folder-browser-ui.c: Remove "PrintMessage" and
- "PrintPreviewMessage" from message_pane_enables... these now work
- when the preview pane is closed. Disable printing if multiple
- messages are selected.
-
-2001-12-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (filter_folder_filter): Don't expunge when we sync
- anymore, this fixes bug #4472.
-
-2001-12-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-autofilter.c (rule_from_message): Make sure that the
- message subject is non-NULL beforetrying to base a vfolder rule
- off it. Fixes bug #16284.
-
-2001-12-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (construct): Connect to the dialog's "destroy"
- event and close any druids/editors that may be open when that
- signal is caught. Fixes bug #16501.
-
- * mail-vfolder.c (vfolder_edit): Set the window title to "Virtual
- Folders". Fixes bug #16695.
-
-2001-12-05 Radek Doulik <rodo@ximian.com>
-
- * mail-callbacks.c (do_mail_print): set paper size to
- _("US-Letter"), use gtk_html_print_set_master
-
-2001-12-08 Dan Winship <danw@ximian.com>
-
- * mail-display.c (on_object_requested): Don't just assume all of
- the GtkHTMLEmbedded's fields are filled in, since HTML messages
- may have <object>s in them that we're not expecting.
-
-2001-12-07 Dan Winship <danw@ximian.com>
-
- * mail-send-recv.c (mail_send_receive): Add a "current_folder"
- arg.
- (build_dialogue): Remember the current_folder
- (free_send_data): If current_folder is set, refresh it so it's
- guaranteed to be synced with the folder tree. Fixes #14770.
-
- * mail-callbacks.c (send_receive_mail): Pass current_folder to
- mail_send_receive().
-
-2001-12-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (stream_write_or_redisplay_when_loaded): Check
- that the mail-display hasn't been destroyed.
- (mail_display_redisplay): Same here.
-
-2001-12-07 Dan Winship <danw@ximian.com>
-
- * mail-send-recv.c (receive_update_got_store): If updating a store
- that we don't have an associated storage for, just request a
- folder tree and then free it. (For the Connector)
-
- * mail-callbacks.h: Add missing part of Jeff's 12-03 patch so this
- actually compiles.
-
-2001-12-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): s/PREVIEW_RELEASE/VERSION_COMMENT
-
-2001-12-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): Don't append "(Preview Version)"
- at the end of the version string. Use the PREVIEW_RELEASE #define
- instead.
-
-2001-12-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c: Setup the UI for the AddSenderToAddressbook
- ui verb thingy.
-
- * mail-callbacks.c (add_sender_to_addrbook): New bonobo-ui
- callback that adds a sender to the addressbook.
-
-2001-12-04 Jon Trowbridge <trow@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_set_selection_state):
- Allow 'n' and 'p' to work when multiple messages are selected.
- Fixes #12062.
-
-2001-11-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (save_msg_ok): If the path exists, make sure
- it's a regular file (or we can't possibly save to it). Fix for
- #14127.
-
-2001-11-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (message_list_select): Cleaned up the code.
-
- * mail-callbacks.c (previous_unread_msg): Pass wraparound as TRUE.
-
-2001-11-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (pgpopen): Fix the boolean check to be && and not
- ||.
-
-2001-11-20 Not Zed <NotZed@Ximian.com>
-
- * folder-browser-ui.c: Disable search if no message
- loaded/viewed. Also for #14348.
-
- * folder-browser.c: Disable "Add sender to addressbook" if we dont
- have a message loaded (it wont work). For #14348.
-
-2001-11-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (load_content_loaded): Make sure the mail-display
- object is still "alive" before accessing any of it's data.
-
-2001-11-14 Zbigniew Chyla <cyba@gnome.pl>
-
- * mail-autofilter.c (rule_match_recipients, rule_from_message,
- rule_from_mlist): s/_/U_/ (filter_rule_set_name requires UTF-8 string)
-
-2001-11-14 Dan Winship <danw@ximian.com>
-
- * main.c (segv_redirect): Instead of doing pthread_exit() after
- redirecting the SEGV, try to lock a mutex we know is already
- locked. This will hopefully help debug a bunch of bugs where the
- crashed thread seems to be missing from the bug-buddy report.
-
-2001-11-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (pass_got): Call e_passwords_remember_password()
- for account passwords if the user set the "remember password"
- checkbox.
-
-2001-11-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (vfolder_load_storage): Add a NULL check for
- rule->name.
- (mail_vfolder_add_uri): Same here.
-
-2001-11-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (forward_message): If we already have the
- message loaded in the mail-display, don't bother re-loading. This
- happens to fix bug #14848.
-
-2001-11-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-tools.c (mail_tools_x_evolution_message_parse): Was
- x_evolution_message_parse from folder-browser.c. A space char is
- no longer used to separate the folder URI and the first uid,
- instead this is now done with a nul-char so update to parse the
- newer/better format.
-
- * component-factory.c (destination_folder_handle_drop): Update to
- parse the new/better format.
-
- * folder-browser.c (x_evolution_message_parse): Moved to
- mail-tools.c
- (message_list_drag_data_get): Instead of placing a space char
- after the folder URI, instead use a nul-char.
-
-2001-11-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (pgp_path_changed): Call
- mail_config_pgp_type_detect_from_path() instead of doing our own
- lame auto-detection that didn't even work ;-)
-
- * mail-config.c (auto_detect_pgp_variables): Execute the pgp
- binary and look at it's version string if we have a version string
- to compare to.
- (mail_config_pgp_type_detect_from_path): New function that takes a
- pgp path and attempts to figure out what pgp version it is.
-
-2001-11-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (try_inline_pgp): Add a "x-inline-pgp-hack=true"
- paramter to the multipart's content-type.
-
-2001-11-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (construct): Don't make the account editor
- modal either.
-
- * mail-accounts.c (mail_add): Use the new global account druid
- variable so that we can avoid having more than a single druid at a
- time. If a druid already exists, bring it to the top.
- (mail_edit): Same idea only for the account editor this time.
- (mail_editor_destroyed): Set the global editor to NULL.
- (mail_add_finished): Set the global druid to NULL.
- (mail_delete): Don't allow any deletes if an account editor is
- opened (we don't want to be able to delete the account we are
- editing...)
- (news_edit): Same thing for the news editor.
- (news_editor_destroyed): Set the news editor to NULL.
- (news_add): And again for the news add.
-
- * mail-account-gui.c (service_check_supported): Updated to pass a
- GtkWindow argument to mail_config_check_service().
-
- * mail-config.c (mail_config_check_service): Now takes a GtkWindow
- argument so we can set our parent window. Also, don't make this
- dialog modal either.
-
- * mail-config-druid.c (construct): Don't make this druid modal.
-
-2001-11-05 <NotZed@Ximian.com>
-
- * message-browser.c (set_bonobo_ui): Override the Move/Copy
- handlers setup by the folder_browser_ui code, and use our own,
- because we need to pass it a live window which we can't.
- (transfer_msg): Our own version of mail-callbacks.c:transfer_msg,
- so we can properly pass the parent to the user_select_folder.
- (transfer_msg_done): Also copy this so we can pass it diff args.
- All fix #13919.
-
- * mail-callbacks.c (transfer_msg): Set physical/uri to NULL before
- calling, because althought he shell client api call is supposed to
- null these out, it doesn't with its stupid assertion checks on
- entry. Also free physical to plug a memleak. Bugs exposed by
- #13919.
-
-2001-11-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.h (mail_html_write): Renamed from
- mail_html_write_string.
-
- * mail-display.c (mail_text_write): Don't bother with varargs
- since nothing used them, we were only passing strings anyway...
- (mail_error_printf): Renamed from mail_error_write, this makes
- more sense.
- (mail_html_write): Removed.
-
- * mail-format.c: Updated to use gtk_html_stream_printf directly
- and s/mail_html_write_string/mail_html_write.
- (mail_lookup_handler): Don't use %.*s here either...
- (handle_text_enriched): Same.
- (write_one_text_plain_chunk): And finally here (also update for
- new mail_text_write api).
- (handle_multipart_signed): Update for new mail_text_write api.
- (format_mime_part): Update for new mail_error_text/printf name
- change.
- (handle_multipart_encrypted): Same.
-
- * mail-tools.c (mail_tool_generate_forward_subject): Same as
- mail_generate_reply.
-
- * mail-callbacks.c (mail_generate_reply): Don't use %.*s in any
- *printf* functions.
-
-2001-11-02 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (ml_tree_value_at): Use GINT_TO_POINTER here for
- platforms where simply casting an int to void * won't work.
- (build_flat_diff, main_folder_changed): Call
- e_tree_model_pre_change here.
-
-2001-11-02 <NotZed@Ximian.com>
-
- * message-browser.c (message_browser_message_list_built):
- Disconnect from the message_list_built function so we dont do it
- every time the list is rebuilt.
-
- * mail-callbacks.c (composer_send_cb): Disable autosave when we're
- sending mail.
- (composer_sent_cb): Re-enable autosave.
-
- * folder-browser-ui.c (fbui_sensitize_timeout): Make sure we reset
- any data we're using on the folderbrowser before doing anything
- 'cause things could vanish while we're doing it, and also
- ref/unref the folderbrowser so it doesn't vanish while w'ere
- working.
-
- * folder-browser.c (folder_browser_set_ui_component): If we are
- changing the ui comp, remove any pending timeouts. For #13719.
-
-2001-11-01 Larry Ewing <lewing@ximian.com>
-
- * folder-browser.c (folder_browser_copy): fix cut & paste from the
- message body.
-
-2001-11-01 Dan Winship <danw@ximian.com>
-
- * mail-format.c (handle_multipart_signed): Write out the url
- before callind add_url since add_url may free it. Fixes #13839.
- Remove debug printf.
-
- * mail-display.c (on_object_requested): Remove debug printf.
-
-2001-10-31 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (list_add_addresses): Don't use a
- case-sensitive comparison.
-
-2001-10-31 Dan Winship <danw@ximian.com>
-
- * mail-format.c (try_inline_pgp_sig): Make this work again.
-
-2001-10-30 Larry Ewing <lewing@ximian.com>
-
- * mail-account-gui.c (delete_event_cb): add delete_event_handler.
- (menu_file_save_close_cb): add save and close command.
- (launch_signature_editor): initial the editor as having changed
- and attach the delete event handler.
-
-2001-10-30 <NotZed@Ximian.com>
-
- * message-browser.c (d): Turn it off.
-
- * mail-mt.c: Added exception strings to some of the op logging.
-
- * mail-format.c (elide_quotes): Remove, uh, what was this for, its
- not used anywhere? Also loops the instant it had a ", good one
- trow! :)
- (write_address): Remove name_arg/email_arg, these aren't used
- anywhere.
-
- * mail-mt.c (mail_msg_received): If we have a cancellation setup,
- destroy it immediately, to save fd's.
- (mail_msg_cancel): Check cancel != NULL.
- (mail_msg_free): Same.
-
- * folder-info.c: Comment out the Folder: and you've got mail
- prints.
-
- * mail-config-druid.c (wizard_next_cb): If we have a next
- function, honour if it tells us its going to set the page, and
- dont set it, otherwise, set it to the next page, unless we're at
- the end of our pages, and let the wizard do it itself.
- (wizard_back_cb): Same for going back. Rest of fix for #12127,
- see e-shell-startup-wizard for the rest.
- (next_func): If we're not on the last page, tell the druid we're
- gonna handle the next button, so we can sync properly with it,
- needed for above changes.
- (back_func): Similarly for going back past page 0.
- (wizard_listener_event): We want to set the page to the actual one
- asked for not, pagenum-1.
-
- * mail-local.c (mls_rename_folder): Oops, dont use the url storage
- path to offset the folder name we're renaming/opening, etc.
-
- * subscribe-dialog.c (fe_cancel_op_foreach): Argh!!! Dont free the
- async op data here, the async op is still running and will access
- it! Just try to cancel it and mark it as cancelled (id == -1)
- (fe_done_subscribing): Only remove outselves from the hash table
- if we're not cancelled. The handle should always be set here,
- since this code runs in the gui thread.
-
- * message-list.c (on_cursor_activated_idle): If nothing
- selected/cursor not activated, then select no message.
-
- * mail-folder-cache.c (update_1folder): Make the trash count
- optional on EVOLUTION_COUNT_TRASH, becuase some lusers are just
- too stupid to understand what its for.
-
- * component-factory.c (storage_xfer_folder): Return slightly
- better error codes for copying folders, since its not implemented
- yet.
-
- * mail-vfolder.c, mail-local.c, mail-folder-cache.c,
- message-list.c component-factory.c, mail-ops.c,
- subscribe-dialog.c, mail-session.c: d() out some debug printfs,
- w() out some warnings.
-
- * folder-browser-ui.c (folder_browser_ui_add_message): Fix typo,
- Resent->Resend.
-
-2001-10-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (transfer_messages_transfer): Don't warn the user if
- the source and destination folders are the same.
-
-2001-10-29 Dan Winship <danw@ximian.com>
-
- * mail-format.c (handle_multipart_signed): add some debug spew re
- 13839.
-
- * mail-display.c (on_object_requested): here too
-
-2001-10-29 Christopher James Lahey <clahey@ximian.com>
-
- * e-searching-tokenizer.c (search_info_set_match_size_increase):
- Fixed a warning by #if 0ing out this function.
-
- * folder-browser.c, folder-browser.h (on_selection_changed):
- Update status bar in an idle call. Fixes Ximian bug #13929.
-
- * mail-folder-cache.c (folder_renamed, store_folder_renamed):
- Fixed some warnings here.
-
-2001-10-29 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (folder_browser_copy): Fix the focus check.
- It's not fb->message_list that has focus, it's one of its
- children. #13616.
-
-2001-10-29 <NotZed@Ximian.com>
-
- * mail-folder-cache.c (store_folder_renamed): Sort the folder
- updates first, since we dont seem to get them in the right order,
- or infact in any tree representation whatsoever when using IMAP
- ...? get_folder_info bugs?
-
- Unrelated note to self, the subscribe dialogue may interfere with
- the folder cache.
-
- * mail-vfolder.c (rule_changed): Copy the folder's full_name
- before trying to use it to rename.
- (vfolder_edit_rule): Set 'orig' to be a reference of the original
- rule.
- (edit_rule_clicked): Dont lookup orig by name, copy it over
- instead.
-
- * folder-browser.c (got_folder): oops, emit signal before
- unreffing object, incase we got killded during getting folder.
- (got_folder): Reset get_id.
- (folder_browser_new): Set get_id of the get_folder task.
- (folder_browser_init): Init get_id.
- (folder_browser_destroy): IF we have outstanding 'get folder' op,
- cancel it.
-
-2001-10-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Call
- mail_autoreceive_setup() instead of
- mail_autoreceive_setup_account() since that code was completely
- broken anyway.
-
- * mail-send-recv.c (mail_autoreceive_setup_account): Removed.
-
- * mail-callbacks.c (transfer_msg_done): Move the message-list
- cursor to the next message.
- (transfer_msg): If we are moving messages, then pass
- transfer_msg_done() to mail_transfer_messages() so when it
- finishes it can move the cursor to the next undeleted message.
-
- * mail-format.c (try_inline_pgp): Check that the special PGP lines
- begin and end with \n so as to avoid matching against quoted PGP
- lines.
-
-2001-10-28 <NotZed@Ximian.com>
-
- * mail-callbacks.c (mark_all_as_seen): fb = user_data, not fb =
- fb!, fixes 13844.
-
- * mail-local.c (mlf_rename): add the folder name to the path when
- passing down to the subordinate folder.
-
- * folder-browser-ui.c (fbui_sensitize_timeout): Remove uic, kill
- dumb warning.
-
- * mail-autofilter.c (mail_filter_rename_uri): Implement function
- for filters to keep track of uri's being renamed.
- (mail_filter_delete_uri): Similarly for deleting uri's. Note that
- these functions are just noops though.
-
-2001-10-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c: Deactivate the Print right-click menu option
- if the message isn't loaded. Fixes bug #10346.
-
-2001-10-28 <NotZed@Ximian.com>
-
- * mail-vfolder.c (mail_vfolder_rename_uri): Implemented.
- (mail_vfolder_rename_uri): We do want to check renamed uri's from
- vstores.
- (mail_vfolder_delete_uri): Same.
- (store_folder_renamed): Fix the folder hash at the same time.
-
- * mail-folder-cache.c (real_flush_updates): Pass the rename event
- to vfolder rename uri.
- (real_flush_updates): Also rename and delete uri's from filters.
-
- * mail-local.c (mail_local_folder_reconfigure): Change the store
- path to be same as parent + mbox to be full path.
- (mls_delete_folder): Change store path to be parent path, and mbox
- to be full path.
- (mail_local_folder_reconfigure): Fix a leak of tmpname.
- (mls_delete_folder): Unref the store when done.
- (mls_rename_folder): Fix implementation, shell already created
- destination folder, so we can't just rename :(
-
- * component-factory.c (xfer_folder): Only do a rename if we have
- remove set, cleaned up logic a bit.
- (idle_quit): Put the components still active check last last of
- all.
- (storage_create_folder): IF we have a fragment, use that as part
- part for parent.
- (xfer_folder): Manually call rename code, since the shell will do
- a remove/add later on, AND there's no way we can determine the new
- path from the crock of an api we have to work with.
-
-2001-10-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_format_get_data_wrapper_text): Allow the
- user to shoot him/herself in the foot when overriding message
- charsets. Permanantly fixes bug #921.
-
-2001-10-26 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (etree_key): Work around something that we
- think is a GtkHTML bug, where sometimes the adjustments have
- slightly bogus values and scrolling ends up working backwards.
- (Ximian 4939)
-
- * mail-display.c (do_signature, do_attachment_header): Set the
- icon to be 24x24 here so that (assuming it's not a thumbnail), no
- resizes will have to be queued later. (There's still a bug with
- the text to the left of the button being drawn twice for some
- reason though.)
-
- * mail-callbacks.c (delete_msg): Fix a bug here that makes
- deleting multiple messages cause a gratuitous message body fetch.
- (Ximian 12355)
-
-2001-10-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (providers_config): Set the GdkWindow of the
- FolderBrowser, not the GtkWindow...
-
-2001-10-26 <NotZed@Ximian.com>
-
- * mail-local.c (mlf_set_folder): Changed to open the source store
- from '/', so we can do renames across directories. Of course,
- this doesn't quite work with different filesystems, but we'll
- assume this isn't a problem we're going to have.
- (mail_local_folder_get_type): Setup parent_class.
- (mlf_rename): Implement folder rename call, rename internal data.
-
- Is this a security issue? Well, not really, no more than anything
- else.
-
- * mail-folder-cache.c (mail_note_store): Listen to rename event.
- (store_folder_renamed): Function to handle it, empty.
- (mail_note_store_remove): Unhook from rename event.
- (mail_note_folder): Hook onto renamed event.
- (unset_folder_info): Unhook from renamed event.
- (folder_finalised): Lock around update.
- (folder_deleted): Lock around update.
- (real_flush_updates): If we have a path to remove remove it.
- (rename_folders): Scan folderinfo's, if we can find ones renamed,
- rename them, otherwise add them.
-
- * component-factory.c (owner_unset_cb): Use a timeout not an idle
- handler.
- (storage_xfer_folder): Implementation of xfer_folder signal
- handler, so we can rename imap/vfolders/etc.
-
- * component-factory.c (owner_unset_cb): Use a timeout not an idle
- handler.
-
- * mail-callbacks.c (providers_config): Only set the parent window.
-
- * mail-accounts.c (mail_edit): Set the parent on the account editor.
-
-2001-10-25 <NotZed@Ximian.com>
-
- * openpgp-utils.c (openpgp_verify): s/iconv/e_iconv/.
-
-2001-10-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (send_mail_free): Don't forget to unref the filter
- driver here.
-
-2001-10-25 <NotZed@Ximian.com>
-
- * folder-browser-ui.c (fbui_sensitize_timeout): So apparently the
- uicomp can just 'vanish' while we're using it. Joy. Take care of
- that case here, fixes #13482.
- (fbui_sensitise_item): Check here too just for kicks.
-
- * mail-folder-cache.c (store_finalised): If we can't destroy our
- async event, then queue another one to do it.
- (store_finalised_finish): And handle it here, until we can, then
- free it.
- (mail_note_store): Queue an async event to get folderinfo, dont
- use mail_get_folderinfo.
- (update_folders_get): thread-async event to retrieve the
- folderinfo, and build it, then queues gui-async event to update
- the gui.
- (add_unmatched_info): Taken from mail-ops, adds unmatched if
- required.
- (add_vtrash_info): From mail-ops, add trash if required.
- (update_folders): Thread async event to update gui.
- (mail_note_store): Ref the store and storage when created.
- (update_1folder): Changed to assume we have info_lock, and store
- updates in an updates list.
- (setup_folder): Same.
- (folder_changed): Changed to call update_1folder directly.
- (real_folder_changed): Removed.
- (mail_note_folder): Changed to call update_1folder directly.
- (real_note_folder): Removed.
- (store_folder_subscribed): Call setup_folder directly.
- (real_folder_created): Removed.
- (real_flush_update): Function that actually does the updates in
- the gui thread.
- (mail_note_store): Go back to using mail_get_folderinfo.
- (update_folders): Fixed upf ro changed api's.
- (unset_folder_info): Changed to queue pending updates.
- (real_folder_deleted): Removed.
- (store_folder_unsubscribed): Do the removal work directly.
- (mail_note_store): Dont link to finalised event of store - we now
- ref it.
- (mail_note_store_remove): If we have any pending updates, clear
- them out. Also cancel any pending folderinfo retrieve operations.
- (update_folders): Remove our update from the storeinfo list, if it
- still exists.
- (update_1folder): Make 'sent folder shows all counts' optional via
- an environmental variable EVOLUTION_COUNT_SENT for all those
- bloody whinging lusers out there.
- (mail_note_store_remove): Unref the storage when done.
-
- * mail-mt.c (mail_async_event_emit): If we're in main and have a
- gui task, set it to run via an idle function.
- (idle_async_event): Wrapper for calling do_async_event from idle
- function, and freeing the message when done.
- (idle_async_event): Call mail_msg_free not free on the finished
- message.
-
- * component-factory.c (mail_remove_storage): Destroy the storage
- async.
- (store_disconnect): This does the work.
- (free_storage): Un-note the store when we remove it, so the store
- noting code can unref things properly.
- (idle_quit): Return false when done, dont loop.
-
-2001-10-24 <NotZed@Ximian.com>
-
- * component-factory.c (owner_set_cb): Setup an async_event
- handler.
- (idle_quit): Try to destroy the async_event, or keep dropping out
- if it can't (deadlock).
-
- * mail-mt.c (do_async_event): Set the threadid of the thread we're
- running in so we know its running/which thread its in.
- (mail_async_event_emit): Added new argument 'type' which is the
- type of thread to execute against, gui or another one. Fixed all
- callers.
- (mail_async_event_destroy): Return -1 if this operation will fail
- (deadlock possibility). If we're in the thread of the task
- we're going to wait for, then return a failure (since we will
- deadlock).
- (mail_async_event_emit): Changed to use MailAsyncFunc type as the
- function type, which just takes 3 void args, change args to suit.
-
- * mail-folder-cache.c (mail_note_store): Record the pending update
- events in a pending list. We should really be able to use an
- async event for this, but that doesn't return to the gui loop when
- done :-/
- (update_folders): Remove from pending update when done.
-
-2001-10-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-send-recv.c (get_receive_type): Check for a NULL provider.
- (build_dialogue): Check for invalid source urls.
- (mail_receive_uri): Same.
-
-2001-10-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): No longer need to pass a
- settext argument.
- (do_forward_non_attached): Same.
-
- * mail-format.c (mail_get_message_body): Fix to not always return
- NULL for html parts, doh!.
-
-2001-10-24 <NotZed@Ximian.com>
-
- * folder-browser-ui.c (ui_add):
- (fbui_sensitize_timeout): Same.
-
- * folder-browser-factory.c (control_activate): Comment out freeze/thaw.
- (control_deactivate):
-
-2001-10-24 Jon Trowbridge <trow@ximian.com>
-
- * mail-search.c (mail_search_construct): Fixed some weird casting
- crack that got in here somehow, removed superfluous box-packing
- that was generating a gtk warning.
-
-2001-10-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (owner_unset_cb): Unref the global
- search_context.
- (owner_set_cb): create the global search_context.
-
- * folder-browser.c (folder_browser_gui_init): Pass along the
- global search_context to the e_filter_bar_new call.
-
-2001-10-24 <NotZed@Ximian.com>
-
- * message-browser.c (message_browser_message_loaded): Call
- ui_message_loaded when we are.
-
- * folder-browser-factory.c (control_activate): Freeze/thaw around
- all updates.
- (control_deactivate): Freeze/thaw around all updates.
-
- * folder-browser.c (folder_browser_init): Setup a hashtable to
- keep track of *our* sensitise state, so we can optimise pushes to
- bonobo.
- (folder_browser_finalise): Free hash here.
- (folder_browser_set_message_preview): Call a ui_message_loaded,
- even though it isn't, so it updates sensitivities right.
- (done_message_selected): Call ui_message_loaded when it really is,
- rather than the very fucked up idea of reversing the loaded_uid
- check.
-
- * folder-browser-ui.c (folder_browser_ui_set_selection_state):
- Dont enable the message-enabled options if the message display is
- hidden, e.g. print, view headers, etc.
- (folder_browser_ui_rm_all): Forget sensitise state.
- (fbui_sensitise_item): Sensitise items via a current-state table,
- so we dont have to do bonobo calls every time.
- (folder_browser_setup_property_menu): Call sensitise_item.
- (folder_browser_ui_add_message):
- (folder_browser_ui_add_global): Leave current set_prop "sensitive"
- for the stop button, so it doesn't get lost by the stuff in
- mail-mt.c
- (fbui_real_sensitize_items): Removed.
- (fbui_sensitize_timeout): Cleaned up, use sensitise_item to do
- work.
- (folder_browser_ui_message_loaded): Setup sensitive based on
- preview_shown too.
- (folder_browser_ui_set_selection_state): And here too.
-
-2001-10-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (service_check_supported): Don't allow an
- auth-type to be set when saving the service.
- (mail_account_gui_new): Initialize the source and transport
- provider_type's here so we don't forget to do it when it matters.
- (mail_account_gui_setup): Don't bother setting the provider_type's
- here, they are already set in mail_account_gui_new() now.
-
-2001-10-23 <NotZed@Ximian.com>
-
- * mail-display.c (mail_display_destroy): Remove the idle_id when
- we're destroyed so the idle func doesn't run on an invalid object.
-
- * message-list.c (regen_list_regened): Dont do anything if we're
- destroyed #13021.
-
- * mail-mt.c (mail_user_message):
- (mail_get_password): Removed, all functionality moved to
- mail-session.
-
- * mail-config.c (mail_config_write_on_exit): Check
- threaded/preview hash is null before using it, its setup on demand
- so itmight nto be initialised here.
-
- * mail-session.c (request_password): Remove password_current
- stuff.
- (alert_user): Redont, similar to get_pass. Do things as async as
- possible, and dont even wait for a response if we're not asking
- for the cancel button (this may or may not be right behaviour -
- need to check). mail_user_message() code replaced from the stuff
- in mail-mt.c
- (MailSession): Added a lock field.
- (init): Setup lock.
- (finalise): fRee lock.
- (register_timeout): Redone. We now allocate our own 'timeoutid's,
- and <> to the real things asynchronously. Use async_event's so we
- can make sure we have no outstanding ones after shutdown.
- (mail_session_enable_interaction): If interaction has been
- disabled, and we have either a message-box open, or a password
- request open and/or any pending message boxes/passwords, blow 'em
- away.
- (main_register_timeout): If we have pending remove of this same
- timeout, dont do anything.
- (timeout_timeout): Properly honour the result, remove the timout
- if it returns false.
- (do_user_message): Setup the message_destroy_id when we setup the
- destroy handler so it doesn't get called twice.
-
-2001-10-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (reply_to_sender): Make sure the fb and it's
- message-list exist.
- (reply_to_list): same.
- (reply_to_all): And here...
- (forward_message): Here too.
- (forward_attached): Again here.
- (transfer_msg): Here too.
- (apply_filters): Same.
- (select_all): Yet again here...
- (select_thread): And here.
- (invert_selection): Same.
- (flag_messages): Here too.
- (mark_as_unseen): and here...
- (mark_all_as_seen): ...
- (zoom_in):
- (zoom_out):
- (zoom_reset):
- (search_msg):
- (load_images):
- (save_msg):
- (next_msg):
- (next_flagged_msg):
- (next_unread_msg):
- (previous_msg):
- (previous_unread_msg):
- (expunge_folder):
- (configure_folder):
- (empty_trash):
-
-2001-10-23 <NotZed@Ximian.com>
-
- * mail-mt.c: Added missing errno.h
- (mail_msg_new): Fix the logic a bit, dont try to open the log file
- unless logging is actually requested.
- (mail_enable_stop, mail_disable_stop, do_set_busy,
- mail_operation_statys): Dont bother propagating events if
- global_shell_client isn't up yet.
-
-2001-10-23 Dan Winship <danw@ximian.com>
-
- * mail-mt.c (mail_msg_new): If the fopen() fails (eg, because
- evolution-mail was started by oafd with PWD=/), don't try to use
- the NULL file handle.
-
-2001-10-23 <NotZed@Ximian.com>
-
- * mail-session.c (get_password): Completely re-done. We now hae a
- completely async dialogue when requested from antoehr thread, and
- dont use gtk_main() if we can avoid it (which is normally the
- case). This stuff is only partially finished, and will mena the
- removal of the same from mail-mt.c, and the mail_user_message()
- code will be moved here and changed to work in a similar way.
-
- * mail-callbacks.c (empty_trash): Dont try and connect to remote
- stores just to get the trash. Also, always run empty trash async,
- and make sure we unref the trash.
- (empty_trash): Hmm, dont unref the trash, causes a problem on
- exit, i suspect something else is doing funky unrefs on it.
-
- * mail-tools.c (mail_tool_get_trash): Pass a 'connect' arg, tell
- it whether it should tryand connect or not to the parent service,
- if it isn't already connected.
-
- * component-factory.c (owner_unset_cb): Dont try wait_all here,
- could potentially deadlock.
- (idle_quit): Keep returning TRUE if we have outstanding
- processing. Note that this may busy-wait during exit processign
- with busy tasks :(
- (idle_quit): Keep calling ourselves till we no longer get called
- (i.e. gtk_main really quits).
-
- * mail-mt.c (mail_msg_active): New function, returns TRUE if
- events are still active/outstanding.
- (do_op_status): @$@$#@@!#@!! didn't unlock the mail_msg_lock if
- data->activity was NULL and we had no global_shell_client anymore!
- Also shortcut processing if this is going to be the case.
- (mail_msg_init): Setup a temporary other gui_port for redoing with
- new semantics password, user message and progress reporting.
- (mail_get_password): #ifdef'd out all this code temporarily, till
- it gets fully moved to mail-session.c
-
-2001-10-22 <NotZed@Ximian.com>
-
- * component-factory.c (owner_set_cb): Dont call enable_interaction
- here.
- (interactive_cb): But here instead, let the shell tell us when its
- ok to go interactive.
-
-2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (write_one_text_plain_chunk): Oops, revert my
- change to this function.
-
- * mail-display.h (mail_html_write_string): New fun macro.
-
- * mail-format.c (write_one_text_plain_chunk): Use gtk_html_write
- instead of mail_html_write so we avoid strdup'ing the text.
- (handle_text_plain_flowed): Use the mail_html_write_string macro.
- (handle_message_rfc822): Here too.
- (mail_format_raw_message): We can do it here also...
- (attachment_header): We can do it a little bit here...
- (write_address): A microscopic bit here...
- (write_hr): same.
-
-2001-10-22 Anna Marie Dirks <anna@ximian.com>
-
- * mail-config.glade: Added several new accelerators to the edit account
- dialog, and fixed the focus targets on all existing accelerators. I
- was hoping that since the widgets used in the account editor are also
- used in the first-time start-up druid and them mail-config druid,
- that this would fix all accelerator problems for those druids as well,
- but there is something wrong with Bonobo which is preventing
- the druids from responding to their accelerators. Sigh. Anyway,
- most accelerators in the edit account dialog work correctly
- now, though there are few (such as _Full Name) which fail to
- do anything. I don't know why.
-
-2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-stream-gtkhtml.c (mail_stream_gtkhtml_new): New class that
- wraps writing to a GtkHTML stream so that we don't have to write
- to an intermediate GByteArray.
-
- * mail-display.c (on_url_requested): Use the new Camel->GtkHTML
- stream - this means we don't have to chew up nearly as much
- memory...yay!
- (try_part_urls): Here too.
-
-2001-10-22 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-mt.c (do_op_status): Don't free `clientid' as it's
- uninitialized.
-
-2001-10-22 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.etspec (Score): disable this column. Fixes Ximian
- bug #12381.
-
-2001-10-22 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-mt.c: #include "component-factory.h".
- (do_op_status): Pass the component ID instead of the msg ID.
-
- * component-factory.h (COMPONENT_ID): #define here instead of
- `component-factory.c'.
- (SUMMARY_FACTORY_ID): Likewise.
-
-2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (format_mime_part): Don't wrap error text with
- <blockquote>, this is done inside mail_error_write.
- (handle_multipart_encrypted): If we get an exception trying to
- decrypt the mime part, display an error rather than trying to
- treat it as multipart/mixed.
-
- * mail-callbacks.c (empty_trash): Confirm expunge.
-
- * folder-browser.c (folder_browser_destroy): Move the folder sync
- code along with a few other things from folder_browser_finalise()
- into here instead.
- (folder_browser_finalise): Moved some cleanup functions into
- destroy.
-
-2001-10-22 Dan Winship <danw@ximian.com>
-
- PGP verification UI changes to make it not HTML spoofable.
-
- * mail-format.c (handle_application_pgp): Remove this unused
- hack.
- (mail_format_mime_message): Initialize a fourth hash table, used
- to keep track of fake MIME parts.
- (mail_part_set_default_displayed_inline): New routine to set the
- default disposition of a part (doesn't change it if the user has
- already overridden it).
- (format_mime_part): Wrap a blockquote around the error text (moved
- here from mail_error_write since it doesn't apply in other cases).
- (write_hr): Write a <hr> with appropriate padding between MIME
- parts.
- (write_one_text_plain_chunk): Write some plain text with
- appropriate margins.
- (handle_text_plain): Use write_one_text_plain_chunk. Update for
- inline specials handler API change.
- (fake_mime_part_from_data): Use the "fake_parts" hash to avoid
- recreating the same fake parts again if the message is
- redisplayed. Lets you toggle the shown/hiddenness of uudecode
- parts, and do the new pgp verification thing for inline pgp
- signatures.
- (try_inline_pgp): Don't do any actual PGP handling here: Just
- rewrite as a multipart/encrypted.
- (try_inline_pgp_sig): Likewise, just do a multipart/signed (with
- the x-inline-pgp-hack parameter set).
- (try_uudecoding, try_inline_binhex): Update for API changes.
- (handle_multipart_signed): Exciting and new. Use <object> to
- create a button which the user must click to do the
- verification. Change the formatting of the gpg output text a bit.
-
- * mail-display.c (on_link_clicked): Remove x-evolution-decode-pgp
- hack, which is no longer used.
- (pixbuf_gen_idle): Add a hack for the PGP verification button.
- (do_attachment_header, do_external_viewer): Split out of
- on_object_requeested for clarity.
- (do_signature): New routine to do the PGP verification button.
- (on_object_requested): Now just dispatches to
- do_attachment_header, do_external_viewer, or do_signature.
- (mail_error_write): Don't do <blockquote> here. Fixed the problem
- that was trying to fix elsewhere.
-
-2001-10-22 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (transfer_msg): Fix these functions so they
- don't crash evolution-mail. Too bad it still crashes in the
- shell.
-
-2001-10-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (on_url_requested): Use
- mail_format_get_data_wrapper_text for text parts so we get free
- charset conversion.
-
- * mail-format.c (mail_format_get_data_wrapper_text): Renamed from
- get_data_wrapper_text and now returns a GByteArray.
- (handle_text_plain): Updated to use the new get_data_wrapper_text.
- (handle_application_pgp): Same. Wow...also fixed a mem leak and
- made a bit more efficient by doing so.
- (handle_text_enriched): Here too. Also use string->len instead of
- strlen (string->str).
- (mail_format_raw_message): Same.
-
-2001-10-22 <NotZed@Ximian.com>
-
- * mail-callbacks.c (mark_all_as_seen): Instead of select_all()
- then using the tree's selected nodes to iterate, just do it on the
- folder which keeps the current selection. Fixes #3658.
-
-2001-10-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c: Call the new move/copy_msg_cb's
-
- * mail-callbacks.c (move_msg_cb): Renamed from move_msg.
- (copy_msg_cb): Renamed from copy_msg.
- (move_msg): The bonobo-ui-component callback.
- (copy_msg): Same.
-
-2001-10-21 <NotZed@Ximian.com>
-
- * mail-vfolder.c (mail_vfolder_shutdown): Clear variables once
- done, for debugging.
- (mail_vfolder_add_uri, mail_vfolder_delete_uri): Dont do anything
- if we're shutdown (context == NULL).
-
- * component-factory.c (idle_quit): Move mail_vfolder_shutdown
- here, it should be one of the last things shutdown.
-
- * mail-format.c (handle_text_plain): Dont use (if (!p++), and then
- check p!= later, since its now 1, oops. Fixes #13106, thought it
- was a start of uuencoded stuff!
-
- * folder-browser.c (on_right_click): Escape _'s before adding them
- to menu from mailing list name, also remove some dead code that
- someone forgot to remove when refactoring. #11307.
- (folder_browser_is_drafts): Use the store's uri_cmp function to
- compare to the drafts uri's.
- (folder_browser_is_sent): Same. Slight cleanup for #11351.
-
-2001-10-21 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Update for
- e_msg_composer_add_messages_attachments arg change.
- (do_forward_non_attached): Likewise.
-
-2001-10-20 Jon Trowbridge <trow@ximian.com>
-
- * mail-display.c (mail_display_new): Don't leak our
- ESearchingTokenizer.
-
-2001-10-20 Larry Ewing <lewing@ximian.com>
-
- * folder-browser-ui.c: hook up zoom functions.
-
- * mail-callbacks.h: add prototypes.
-
- * mail-callbacks.c (zoom_in): added.
- (zoom_out): added.
- (zoom_reset): added.
-
-2001-10-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (transfer_msg): Allow copy/move to/from vTrash
- folders as well.
-
- * component-factory.c (destination_folder_handle_drop): Properly
- handle local vTrash folders.
-
-2001-10-19 <NotZed@Ximian.com>
-
- * mail-account-gui.c (build_auth_menu): Dont translate camel strings.
- (mail_account_gui_setup): "
-
-2001-10-19 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (destination_folder_handle_motion): Get
- @folder_type here too [to match the changes in the
- EvolutionShellComponentDnd interface]. Also, remove a debugging
- message.
- (destination_folder_handle_drop): Likewise.
-
-2001-10-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Update to reflect API
- changes to e_msg_composer_add_message_attachments().
- (do_forward_non_attached): Same.
- (providers_config): Oops, pass a GdkWindow instead of a GtkWindow.
-
-2001-10-19 <NotZed@Ximian.com>
-
- * mail-folder-cache.c (store_finalised): Free folders_uri.
- (real_folder_deleted): If folder is deleted, remove it from the
- hashtables.
-
-2001-10-18 <NotZed@Ximian.com>
-
- * subscribe-dialog.c (get_short_folderinfo_get): Remove the
- register/unregister, they're already done above us.
-
- * mail-vfolder.c (vfolder_adduri): Added remove flag - its not
- adduri, its removeuri, its less typing than creating a removeuri.
- (vfolder_adduri_do): Implement the remove flag.
- (mail_vfolder_remove_uri): Changed to mail_vfolder_delte_uri, to
- indicate its actually been deleted.
- (mail_vfolder_add_uri): Added remove flag.
- (rule_changed): When adding existing folders to a new rule, strdup
- the list data.
- (mail_vfolder_delete_uri): Dont do any work to remove the actual
- folder from the vfolder (we'd have to look it up first), let the
- vfolder remove it itself. Just update the rules.
-
- * mail-folder-cache.c (store_finalised): Unhook from all events
- when done.
- (mail_note_store_remove): Remove a store from being noted.
- (free_folder_info): Also if we have a folder, unhook all events.
- Also remove the uri from vfolders.
- (mail_note_folder): Remove warning about adding folders to stores
- that aren't added yet - we might actually be removing the store.
-
- * component-factory.c (mail_remove_storage): Call
- mail_note_store_remove when we remove the storage.
-
-2001-10-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (providers_config): Don't make the mail
- settings dialog modal.
-
-2001-10-17 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-account-gui.c (folder_picker_clicked): Pass the toplevel to
- `evolution_shell_client_user_select_folder()'.
- * mail-callbacks.c (transfer_msg): Likewise.
-
-2001-10-18 <NotZed@Ximian.com>
-
- * mail-send-recv.c (build_dialogue): call setup_send_data *after*
- we've setup the global dialogue thingy.
- (mail_send_receive): Instead of using static local to check for
- re-running of dialogue, use a global, setup by build_dialogue.
- These fix #12335.
- (mail_send_receive): Dont assert dialogue is realized, it might
- still be being built, so only show if it is realized.
-
-2001-10-18 Dan Winship <danw@ximian.com>
-
- * mail-mt.c (mail_call_main): Use G_VA_COPY to make this compile
- on ppc again.
- (do_call): Here too.
-
-2001-10-17 <NotZed@Ximian.com>
-
- * mail-folder-cache.c (store_folder_subscribed): Clone the
- folderinfo before passing to async event.
- (real_folder_created): Free when done.
- (store_folder_unsubscribed):
- (real_folder_deleted): And same here.
-
- * mail-ops.c (mail_expunge_folder): Use the queued thread for
- expunging folders.
-
-2001-10-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): No longer need to copy the
- description now that camel-exceptions have been fixed.
-
- * subscribe-dialog.h (subscribe_dialog_show): Helper macro.
-
- * subscribe-dialog.c (subscribe_dialog_run_and_close): Removed.
-
- * mail-callbacks.c (check_send_configuration): Don't use
- gnome_dialog_run_and_close() here, we can easily get away with
- just using a gtk_widget_show().
- (providers_config): Don't use a gnome_dialog_run_and_close() here
- either. No longer need to use e_gnome_dialog utils.
- (manage_subscriptions): Don't run_and_close().
-
-2001-10-17 <NotZed@Ximian.com>
-
- * mail-callbacks.c (empty_trash): Only empty trash on enabled
- accounts, fixes #12821.
-
-2001-10-17 Dan Winship <danw@ximian.com>
-
- * mail-format.c (write_default_header): Make Reply-To bold too
- since no one ever figures out why it's not currently.
-
-2001-10-17 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c: Fix the typo.
-
-2001-10-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (uid_cachename_hack): Lets put the UID cache in
- ~/evolution/mail/pop3 as this makes more sense than ~/mail/config
- does. Perform checking to see what flavor cache-path the user is
- on and compensate.
-
- * message-list.c (on_cursor_activated_idle): Check that the
- cursor_uid is non-NULL before emitting a "message_selected"
- signal. Fixes bug #6015.
-
-2001-10-16 Jon Trowbridge <trow@ximian.com>
-
- * e-searching-tokenizer.c (e_searching_tokenizer_begin): Always
- explicitly clear out the SearchInfo.
-
-2001-10-16 <NotZed@Ximian.com>
-
- * mail-folder-cache.c: Added an async_event handler to store_info.
- (mail_note_store): Setup async event handler here.
- (store_finalised): Flush out async events here.
- (folder_changed): Use async event handler to emit event.
- (mail_note_folder): Chagned, do most of the work in the calling
- context, only do the corba stuff in main.
- (store_folder_subscribed): Use async event, and do more work locally.
- (store_folder_unsubscribed): Same.
- (store_folder_deleted): Call store_folder_unsubscribed if we have
- to do any work.
- (store_folder_created): Call store_folder_subscribed if we have to
- do any work.
- (store_folder_unsubscribed): Ref store while busy.
- (real_folder_deleted): And unref here.
- (store_folder_subscribed): Reg store while busy.
- (real_folder_created): Unref here.
- (mail_note_folder): Ref folder while busy.
- (real_note_folder): And unref here.
- (mail_note_folder): Hook onto folder_deleted event.
- (folder_deleted): Just mark this folder as no longer available.
-
- * mail-session.c (register_timeout): Use mail_call_main instead of
- proxy_event.
- (remove_timeout): Same here.
-
- * folder-browser.c (folder_changed): use the new mail_async_event
- stuff.
- (folder_changed_main): Remove old async event handling stuff.
- (FOLDER_BROWSER_LOCK/UNLOCK): Removed.
- (FolderBrowserPrivate): Removed too, sigh.
- (folder_browser_set_message_preview): Return do nothing if we're
- destroyed (message_list == NULL).
- (folder_browser_search_query_changed): "
- (folder_browser_toggle_preview): "
- (folder_browser_toggle_threads): "
- (folder_browser_toggle_hide_deleted): "
- (folder_browser_set_message_display_style): "
- (folder_browser_charset_changed): " All for #12613.
-
- * mail-mt.c (mail_async_event_new, mail_async_event_emit,
- mail_async_event_destroy): New functions to handle async events.
- (mail_proxy_event, mail_proxy_event_id): Removed old functions for
- async events.
- (do_call): Add suport for MAIL_CALL_p_pp.
- (mail_msg_free): Use mail_async_event instead of proxy_event.
-
- * message-list.c (message_changed): Promote the message_changed to
- a folder_changed and use main_folder_changed to process it.
- (main_message_changed): Remove.d
- (message_list_init): Setup async event handler.
- (message_list_destroy): Remove async handler.
- (folder_changed): Use async hanler to emit event in main loop.
- (message_changed): Same.
-
- * mail-mt.c (mail_proxy_event_id): New function to return the id
- of the currently executing proxied event.
-
- * folder-browser.h: Added private field.
-
- * folder-browser.c (folder_changed): Keep track of tasks
- outstanding in the tasks list, locked access.
- (FOLDER_BROWSER_LOCK, UNLOCK): Macros to lock the folder browser
- for poking about in diff threads.
- (folder_browser_finalise): Wait for any outstanding takss to
- finish before cleaning ourself up.
- (folder_browser_destroy): Move the seen_id handling to finalise,
- also add a loading_id handling code.
- (main_folder_changed): Remove our running task when done.
-
-2001-10-15 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (mail_error_write): don't write strings longer
- than they actually are.
-
-2001-10-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_destroy): Remove the mark_seen
- timeout.
-
-2001-10-15 Larry Ewing <lewing@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): don't apply the body
- text in replys since we will just replace it anyway.
-
-2001-10-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (owner_unset_cb): Call
- mail_vfolder_shutdown.
-
- * mail-vfolder.c (mail_vfolder_shutdown): Unref all of our
- VFolders.
-
- * mail-folder-cache.c (real_note_folder): Remember to unref the
- folder before returning if we have already noted this folder.
-
-2001-10-15 <NotZed@Ximian.com>
-
- * mail-session.c (get_password): Proxy get-password call to main
- thread.
- (forget_password): same for forget_password.
- (get_filter_driver): and same for get_filter_driver, since it uses
- gtk objects.
-
- * mail-mt.c (mail_call_main): new generic interface for calling
- stuff/proxying in the gui thread.
-
-2001-10-14 Jon Trowbridge <trow@ximian.com>
-
- * e-searching-tokenizer.c (e_searching_tokenizer_clone): Share
- more state between the parent and its clones, so that our multiple
- tokenizers don't get out of sync when we are rendering frames and
- iframes. (Bug #11638)
-
-2001-10-13 Jon Trowbridge <trow@ximian.com>
-
- * e-searching-tokenizer.c (search_info_compare): Bad hacker!
- Don't implicitly assume that utf8 characters are one byte in size!
- (Bug #9520)
- (e_searching_tokenizer_begin): As long as I'm touching those code:
- don't increase the size of search matches. I'll fix the colors
- later. (part of bug #11589)
-
-2001-10-13 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (create_msg_composer): Don't emit a gtk warning
- if the composer creation fails.
-
-2001-10-12 Dan Winship <danw@ximian.com>
-
- * message-list.c, message-list.h, message-list.etspec: Revert the
- change to remove the Score column until Chris can fix ETable so
- it's possible to remove a column without breaking everyone's
- exisiting settings.
-
-2001-10-12 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn): Don't ever create
- the folder here. Wait until the shell has created it. Otherwise we get
- loads of race conditions where the mailer can create a subfolder before
- the shell has registered the parent.
-
-2001-10-12 Chris Toshok <toshok@ximian.com>
-
- * main.c (main): call e_passwords_init and e_passwords_shutdown.
-
- * mail-session.h: add prototypes for
- mail_session_{get,add}_password.
-
- * mail-session.c (init): empty this out - we use e_passwords
- instead of a local hashtable.
- (get_password): use e_passwords_get_password and
- e_passwords_add_password.
- (forget_password): use e_passwords_forget_password.
- (mail_session_remember_password): use
- e_passwords_remember_password.
- (mail_session_forget_password): use e_passwords_forget_password.
- (mail_session_get_password): new function, use
- e_passwords_get_password.
- (mail_session_add_password): same, use e_passwords_add_password.
- (mail_session_forget_passwords): use e_passwords_forget_passwords.
-
- * mail-config.c (mail_config_write_on_exit): fix this up so it
- works as desired with the e_passwords stuff.
-
-2001-10-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (mail_error_write): Convert URLS so we can get
- clickable links.
-
- * message-list.c: Removed score stuff.
-
-2001-10-12 Jon Trowbridge <trow@ximian.com>
-
- * mail-display.c (html_button_press_event): Store our listener id.
- (popup_info_free): Disconnect our listener when we free the popup.
- (Bug #11040)
-
-2001-10-11 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (addrbook_sender): Listen for "destroy" events
- from the control, so that we don't leave stray windows laying
- around. (Bug #9101)
-
-2001-10-11 <NotZed@Ximian.com>
-
- * local-config.glade: Added a checkbox for body indexing.
-
- * mail-local.c (mail_local_reconfigure_folder): Get index_body
- widget.
- (mail_local_folder_reconfigure): Add an 'index_body' argument &
- implement. Dont do anything if nothing changed.
-
- * openpgp-utils.c (openpgp_verify): Use e_iconv_open.
-
-2001-10-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (do_forward_non_attached): Attach the message
- attachments. Fixes bug #5439.
-
-2001-10-11 Dan Winship <danw@ximian.com>
-
- * mail-folder-cache.c (update_1folder): No longer need to pass
- folder display name to storage update_folder methods.
- (setup_folder, free_folder_info): Meaning we no longer need to
- keep track of it.
-
- * evolution-outlook-importer.[ch], evolution-mbox-importer.[ch]:
- These copies are cruft. The real ones are in importers/.
-
-2001-10-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (free_storage): Make sure the
- service/storage are non-NULL.
-
- * mail-callbacks.c (e_gnome_dialog_parent_destroyed): Call
- gtk_main_quit.
- (send_receive_mail): Don't use e_gnome stuff since this doesn't
- need to be run using gnome_dialog_run_and_close().
- (composer_send_cb): Same.
- (edit_msg): Here too.
- (resend_msg): And here.
- (search_msg): Same.
- (filter_edit): Here too.
- (filter_edit): Don't use e_gnome_dialog_set_parent() because we
- don't do gnome_dialog_run_and_close on this dialog.
- (e_gnome_error_dialog_parented): Removed.
- (e_gnome_ok_dialog_parented): Removed.
-
-2001-10-10 Dan Winship <danw@ximian.com>
-
- * mail-config.c (new_source_created): Fix up the logic here.
-
-2001-10-10 Larry Ewing <lewing@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): use new function to copy
- the attachments from the source message. This still isn't perfect
- but it should avoid the problems with headers being transfered.
- This makes images in replies work again.
-
- * mail-display.c (save_url): copy the data. We can't ref the byte
- array and we can't free it so we have to copy it.
-
-2001-10-10 <NotZed@Ximian.com>
-
- * mail-ops.c (transfer_messages_transfer): IF the source and
- destination folders are the same, do nothing. Oh, and return an
- error, otherwise the shell goes and removes it anyway. Fixes a
- rather serious bug with dnd of folders onto their current
- location.
-
-2001-10-09 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (save_part): ref the part.
- (save_destroy_cb): new function to unref the part when we have
- closed the dialog.
- (save_url): fake a mime part so that we can save data urls without
- extra effort. This is less sucky than it seems since it handles
- filenames and ref counting with minimal fuss.
-
-2001-10-09 <NotZed@Ximian.com>
-
- * component-factory.c (owner_unset_cb): Disconnect from all the
- signals we were listening to, so we dont try and do shit twice on
- exit (one on unset_cb, one on destroy).
- (create_component): Setup the signal handlers using a table, so
- they're easier to disconnect on finish.
-
- * mail-folder-cache.c (folder_changed): Ref folder so it hangs
- around till we're done with it.
- (real_folder_changed): Unref folder when we are done with it.
- Should fix #11981.
-
-2001-10-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (done_message_selected): Make sure the
- mail-display is non-NULL.
-
-2001-10-09 <NotZed@Ximian.com>
-
- * mail-local.c (mlf_search_by_uids): Implement.
-
-2001-10-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_add_message): Create a
- chaqrset picker submenu in the View menu.
-
- * mail-format.c (mail_format_raw_message): Pass the mail-display
- to get_data_wrapper_text.
- (get_data_wrapper_text): Use the user's override charset if one is
- provided, otherwise user the user's default charset.
- (handle_text_plain): Pass along the mail-display to
- get_data_wrapper_text.
- (handle_application_pgp): Same.
- (handle_text_enriched): Here too.
- (mail_get_message_body): Pass NULL as the mail-display to
- get_data_wrapper_text since we don't have access to a
- mail-display.
-
- * mail-display.c (mail_display_set_charset): New function to set a
- charset on the maildisplay. Once set, the message is redisplayed
- using the new charset.
- (mail_display_destroy): Free the charset.
-
- * folder-browser.c (folder_browser_charset_changed): New callback
- for when a user overrides the message charset.
-
-2001-10-09 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (e_gnome_dialog_set_parent): Use
- gtk_signal_connect_while_alive here so
- e_gnome_dialog_parent_destroyed doesn't get called on an
- already-destroyed dialog.
-
- * mail-config-druid.c (*_prepare): Record which page we're
- currently in.
- (*_changed): Only update the druid buttons if we're the current
- page. Fixes a problem that could make it impossible to get beyond
- the first page of the setup wizard.
-
- * mail-callbacks.c (mail_generate_reply): Revert the change to use
- e_msg_composer_new_with_message. That has unwanted side effects.
- (This commit re-breaks replying to HTML messages with inline
- images.)
-
-2001-10-08 Dan Winship <danw@ximian.com>
-
- * mail-local.c (mlf_set_folder, mlf_unset_folder): Update for
- folder_flags.
-
- * folder-browser-ui.c (folder_browser_ui_add_list): Check
- CAMEL_FOLDER_IS_TRASH flag rather than checking
- CAMEL_IS_VTRASH_FOLDER.
-
- * folder-browser.c (folder_browser_toggle_hide_deleted): Likewise
-
- * message-list.c (message_list_set_folder): Likewise.
- (message_list_set_hidedeleted): Remove redundant trash check.
-
-2001-10-08 Jon Trowbridge <trow@ximian.com>
-
- * mail-format.c (write_default_header): Write out the Bcc: header
- when applicable. Fixes bug #5823.
-
-2001-10-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (attachment_header): Convert the htmlinfo into
- utf8. Fixes bug #11966.
-
-2001-10-08 Dan Winship <danw@ximian.com>
-
- * component-factory.c (create_view): For mailstorage folders,
- connect to the control's "activate" signal, and don't try to
- connect to the store.
- (storage_activate): Instead, do it here, so if the connection
- fails, or the user cancels, or whatever else, he can try again
- later.
-
-2001-10-07 Dan Winship <danw@ximian.com>
-
- * mail-tools.c (mail_tool_do_movemail): Remove #ifndef
- MOVEMAIL_PATH code, since the setting of that variable has been
- meaningless for a while now, and the rest of the code DTRT whether
- that code executes or not.
-
-2001-10-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (pass_got): Fix a merge-conflict leftover.
-
-2001-10-05 <NotZed@Ximian.com>
-
- * folder-browser.c: reformatted the menu tables so they're a bit
- more bloody readable.
-
- * mail-folder-cache.c (mail_note_store): Hook into
- subscribed/unsubscribed events. Only 'add/remove' folders from
- the add/removed events if we aren't subscribed, otherwise use the
- subscribed events. Rest of fix for #11831
-
-2001-10-05 Jon Trowbridge <trow@ximian.com>
-
- * mail-config.glade: Add toggle button to config menu to turn the
- "confirm sending unwanted HTML" dialog on/off. (Bug 10794)
-
- * mail-accounts.c (construct): Make said toggle button actually
- work.
-
-2001-10-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (e_gnome_dialog_set_parent): New convenience
- function that not only sets the gnome-dialog's parent window but
- also makes sure that the gnome-dialog closes when it's parent
- closes.
- (e_gnome_warning_dialog_parented): New conmvenience wrapper around
- the libgnomeui version that also does the same thing as
- e_gnome_dialog_set_parent.
- (e_gnome_error_dialog_parented): Same.
- (e_gnome_ok_dialog_parented): And again...
- (e_gnome_ok_cancel_dialog_parented): And once again.
-
-2001-10-05 Larry Ewing <lewing@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): use
- e_msg_composer_new_with_message rather than e_msg_composer_new.
- This way we bring in all the attachment of the message we are
- replying to.
-
-2001-10-05 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (message_list_setup_etree): Turn on
- "uniform_row_height" argument.
-
-2001-10-04 <NotZed@Ximian.com>
-
- * folder-browser.c (update_status_bar): Show "nn sent" as total in
- sent folder, rather than just 'total'.
-
- * mail-folder-cache.c (update_1folder): Also show total message
- count for sent_folder.
-
- * folder-browser-ui.c (folder_browser_setup_property_menu): Do a
- better job of setting up the name. Also de-sensitise when we
- can't configure the folder.
-
-2001-10-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (providers_config): Set the parent window as
- the fb. This fixes bug #11723.
- (filter_edit): Do the same thing here too and also to the warning
- dialog.
- (edit_msg): Set the parent on the warning dialog.
- (resend_msg): And here.
- (search_msg): Here too.
- (confirm_expunge): Set the parent window on the dialog here too.
- (save_msg_ok): Same here.
-
- * mail-accounts.c (images_radio_toggled): Ignore the signal if the
- radio button is not "on". This fixes bug #10532 because the on/off
- signals don't always come in the off->on order.
-
- * mail-ops.c (mail_send_message): Reduced some redundancy.
-
-2001-10-04 Dan Winship <danw@ximian.com>
-
- * mail-format.c (write_address): Fix so that an email address with
- no name is once again just "foo@bar.com", not "<foo@bar.com>".
-
-2001-10-04 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn): Only pass
- CAMEL_STORE_FOLDER_CREATE when the shell will be creating the
- folder.
-
-2001-10-04 <NotZed@Ximian.com>
-
- * mail-callbacks.c (configure_folder): If we're accessing a
- vfolder uri, then popup the vfolder editor instead of trying the
- mail local one.
-
- * mail-vfolder.c (vfolder_edit_rule): Edit a vfolder by name.
-
-2001-10-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Added some more NULL
- checks.
-
-2001-10-04 <NotZed@Ximian.com>
-
- * component-factory.c (storage_remove_folder): Do the url
- fragment/path -> folder name hack. Removing vfolders from shell
- works now?
-
-2001-10-03 <NotZed@Ximian.com>
-
- * mail-send-recv.c (build_dialogue): Only build destination data
- if we have destination != NULL. Fixes crash of bug #10835.
-
- * folder-browser.c (folder_browser_config_search): Set 'to' ->
- 'recipient' data for search object. #6199.
-
- * mail-local.c (local_storage_new_folder_cb): Handle vtrash case,
- emit 'folder_created' event for the folder-cache to work, etc.
-
-2001-10-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_write_authenticity): Don't use the wax-seal
- icons for the pgp stuff anymore, use Jimmac's new icons instead.
-
-2001-10-03 <NotZed@Ximian.com>
-
- * mail-folder-cache.c (folder_changed): Dont wait for event to
- finish before returning. This could however mean we process it
- after things have vanished below us? Fixes another case of ctrl-d
- deadlock.
-
- * folder-browser.c (update_status_bar): If we have hide deleted
- set, then dont count deleted messages in the 'total' messages
- count. Fixes #6591.
-
- * mail-ops.c (add_vtrash_info): If we have a fragment, override
- that, rather than the path. Fixes #5251.
- (remove_folder_get): Freeze/thaw around deleting all messages in
- folder.
-
-2001-10-03 Rodrigo Moya <rodrigo@ximian.com>
-
- * importers/Makefile.am: add $BONOBO_GNOME_CFLAGS to make it work
- with latest Bonobo
-
-2001-10-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (transfer_msg): Pass an empty flags argument to
- mail_transfer_messages - destination folder should already be
- created by this point.
-
- * folder-browser.c (message_list_drag_data_received): Pass an
- empty flags argument to mail_transfer_messages.
- (selection_received): Same.
-
- * component-factory.c (xfer_folder): Pass the CREATE flag to
- mail_transfer_messages() so that the dest folder gets created.
- (destination_folder_handle_drop): Update for mail-ops API change.
-
- * mail-ops.c (mail_transfer_messages): Now takes a dest_flags
- argument that it passes along to mail_tool_uri_to_folder when
- opening the destination folder.
-
-2001-10-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (vfolder_setup_do): Pass an empty flags argument
- to mail_tool_uri_to_folder.
- (vfolder_adduri_do): Same.
-
- * mail-session.c (get_folder): Pass an empty flags argument to
- mail_tool_uri_to_folder.
-
- * mail-send-recv.c (receive_get_folder): Pass an empty flags
- argument to mail_tool_uri_to_folder.
-
- * mail-ops.c (get_folder_get): Pass the flags to
- mail_tool_uri_to_folder.
- (mail_get_folder): Now takes a flags argument.
- (remove_folder_get): Pass an empty flags argument to
- mail_tool_uri_to_folder.
- (mail_send_message): Pass an empty argument flag to
- mail_tool_uri_to_folder.
- (transfer_messages_transfer): Same. Destination folder should
- already be created by this time.
-
- * folder-info.c (do_get_info): Pass an empty flags argument to
- mail_tool_uri_to_folder.
-
- * importers/evolution-mbox-importer.c (folder_created_cb): Pass
- the CREATE flag here too.
- (load_file_fn): And here.
- (load_file_fn): And here too.
-
- * importers/evolution-outlook-importer.c (load_file_fn): Pass the
- CREATE flag to mail_tool_uri_to_folder.
-
- * folder-browser.c (folder_browser_new): Pass an empty flags
- argument.
- (x_evolution_message_parse): Pass an empty flags argument to
- mail_tool_uri_to_folder.
-
- * component-factory.c (create_folder): Pass a CREATE flag to
- mail_get_folder here too.
- (owner_set_cb): And here.
- (xfer_folder): Shouldn't need the CREATE flag here, so not passing
- any flags.
- (destination_folder_handle_drop): Same.
-
- * mail-local.c (mail_local_store_add_folder): Pass a CREATE flag
- to mail_get_folder.
- (reconfigure_folder_reconfigure): Pass an empty flags argument to
- mail_tool_uri_to_folder.
-
- * mail-tools.c (mail_tool_uri_to_folder): Take a flags argument.
- (mail_tool_get_local_inbox): Pass an empty flags argument to
- mail_tool_uri_to_folder.
-
-2001-10-02 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-account-gui.c (launch_signature_editor): Use
- `bonobo_ui_component_new_default()', not
- `bonobo_ui_component_new()'.
-
-2001-10-01 Jon Trowbridge <trow@ximian.com>
-
- * mail-display.c (on_url_requested): Make sure we aren't dealing
- with a pathological message w/o a From: header.
- (ebook_callback): Properly check that the address we queried
- matches the address on the current message. (Bug #10038)
-
-2001-10-01 Iain Holmes <iain@ximian.com>
-
- * component-factory.c (component_factory_init): Check for errors.
-
- * mail.h: Change prototype for evolution_folder_info_factory_init.
-
- * folder-info.c (evolution_folder_info_factory_init): Return TRUE
- or FALSE.
-
- * mail-config.c (evolution_mail_config_factory_init): Return TRUE or
- FALSE.
-
- * mail-config.h: Change prototype for above.
-
-2001-10-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (mail_vfolder_remove_uri): replace my_list_find()
- == NULL with my_list_find() != NULL.
-
-2001-10-01 Dan Winship <danw@ximian.com>
-
- * component-factory.c (mail_load_storage_by_uri): create storages
- for providers that are STORAGE and aren't EXTERNAL, rather than
- "(STORAGE and REMOTE) or spool, maildir, or vfolder".
- (mail_remove_storage_by_uri): Use the same rule here (which makes
- it possible now to remove maildir and spool stores now, which
- weren't properly special-cased before). Remove some CamelException
- misuse.
-
- * mail-config.c (new_source_created): Fix up the broken INBOX-
- shortcut-generating assumption a little by only assuming that if
- you call camel_store_get_inbox(), that its full_name is the same
- as its path. (This happens to always be true for inboxes now, and
- will be always true by definition at some point in the future.)
- Now maildir stores get working Inbox shortcuts.
-
- * mail-send-recv.c (get_receive_type): If PROVIDER_IS_STORAGE
- then use SEND_UPDATE, if not, use SEND_RECEIVE.
-
- * mail-local.c (local_provider): The local provider is EXTERNAL.
- (The shell creates it.)
- (mail_local_reconfigure_folder): Allow reconfiguring between
- IS_LOCAL providers.
-
- * mail-accounts.c (news_delete): Don't need to check the provider
- flags here... we know nntp is a STORAGE.
-
-2001-10-01 Dan Winship <danw@ximian.com>
-
- * mail-local.c (mail_local_reconfigure_folder): Don't use
- mail_tool_get_folder_name here since that function only existed to
- be clever in a certain case that this is not.
- (reconfigure_folder_free): Remove the dialog from the hash table
- here so that it gets removed in the successfully-reconfigured case
- too. Don't unref folder_out if it never got set.
- (reconfigure_clicked): Remove the hash table code from here; it's
- in reconfigure_folder_free now.
-
- * mail-tools.c (mail_tool_get_folder_name): No longer used by
- anything.
- (mail_tool_get_folder_from_urlname): Also not used anywhere.
-
-2001-10-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-tools.c (mail_tool_uri_to_folder): Don't pass the CREATE
- flag, we shouldn't ever need this...
-
-2001-10-01 Larry Ewing <lewing@ximian.com>
-
- * mail-identify.c (mail_identify_mime_part): if gnome-vfs returns
- application/octet-stream with the magic check, use the filename
- check instead since it at least has a chance of being useful.
-
-2001-09-28 Dan Winship <danw@ximian.com>
-
- * folder-browser-ui.c (fbui_sensitize_timeout): wrap a
- bonobo_ui_component_freeze/thaw around all of the set_props so
- they all update at once.
-
-2001-09-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (construct): Don't create checkboxes for global
- Threaded or Preview options as they are now removed.
-
-2001-09-28 <NotZed@Ximian.com>
-
- * component-factory.c (owner_set_cb): Setup vfolder storage before
- all others.
-
- * mail-local.c (mail_local_store_remove_folder): Emit
- folder_deleted event.
- (remove_find_path): Fix, compare against path, not full_name.
-
- * mail-tools.c (mail_tool_uri_to_folder): Dont
- vfolder_register_source anymore.
-
- * mail-vfolder.c (rule_changed): Changed to access
- mail_fodler_cahce to find out if the folder exist yet before
- trying to open them, also use the cache as a cache so we dont have
- to open the folder if its already been opened.
- (vfolder_register_source, register_source): Removed.
- (source_finalise): Removed,
- (check_source): Removed. All handled through diff mechanism.
- (mail_vfolder_add_uri): New function, records uri's of available
- folders, and adds them to any active vfolders if required.
- (mail_vfolder_remove_uri): New function, removes a uri from
- available folders, and checks any rules to see fi they need
- updating.
- (vfolder_adduri): New async function to add a uri to all vfolders
- that need it.
- (store_folder_deleted): oops! free user, not rule!!
-
- * mail-folder-cache.c: Add uri->folderinfo hashtable, and the
- store from which they come into the store info struct.
- Add uri to the folder_info.
- (setup_folder): Store the uri in the folderinfo.
- (setup_folder): And the uri in the folder_uri hashtable.
- (mail_note_store): Store the store in the storeinfo, and setup the
- folders_uri hashtable via the store's hash functions.
- (setup_folder): Call mail_vfolder_add_uri to note this newly setup
- folder uri.
- (store_folder_deleted): Proxy call to main thread.
- (real_folder_deleted): And tell the vfolder to remove this uri
- from its folder list.
- (setup_folder): Dont call vfolder_add_uri if noselect is set on
- the uri.
-
-2001-09-27 <NotZed@Ximian.com>
-
- * mail-vfolder.c: Removed vfolder_info struct, vfolder_storage.
- Neither used anymore.
-
-2001-09-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_get_account_by_transport_url): Use
- Camel to compare the urls rather than using e_url_equal which does
- all sorts of funky shit that may not work in every case.
-
-2001-09-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (mail_local_provider_init): Setup the url_hash and
- url_equal functions for the local provider.
-
- * mail-account-gui.c (mail_account_gui_save): Add code here to
- check to make sure that the Drafts and Sent folders are pointing
- to valid urls. This is kinda nasty and only really solves the case
- where the user changes, say, his imap server or
- something. Unfortunately we still have the problem where if
- account A's sent/drafts folders point to account B's store and the
- user changes the url for account B.
-
- * mail-config.c (mail_config_get_account_by_source_url): Use Camel
- to compare the urls rather than using e_url_equal which does all
- sorts of funky shit that may not work in every case.
-
-2001-09-28 Dan Winship <danw@ximian.com>
-
- * mail-mt.c (pass_got): Don't call
- mail_config_service_set_save_passwd if we didn't find a service.
-
-2001-09-27 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-config.c (add_shortcut_entry): Just add the shortcut to the
- first group.
-
-2001-09-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_add_list): Call
- folder_browser_toggle_threads() here after setting the value. This
- should fix bug #6415 and if it doesn't, then this whole deal is
- just a lost cause.
-
- * mail-mt.h: Added mail_msg_cleanup() prototype.
-
-2001-09-28 Dan Winship <danw@ximian.com>
-
- * mail-format.c (get_data_wrapper_text): Deal with
- camel_mime_filter_charset_new_convert returning NULL. (Every other
- call to it does, and something's wrong with iconv on the Sun right
- now so it keeps failing.)
-
-2001-09-27 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-mt.c (do_user_message): Always make the Cancel button the
- last one.
-
-2001-09-27 <NotZed@Ximian.com>
-
- * mail-folder-cache.c (real_note_folder): No such event finalized!
- Its finalize.
- (mail_note_store): "
-
- Fixed dan's comment a bit, info != NULL for folder_created, info==
- NULL for changed.
-
-2001-09-26 <NotZed@Ximian.com>
-
- * mail-local.c (mlf_set_message_flags): Proxy the
- set_message_flags call too. Doesn't fix the 'local folder counts
- dont update' problem, but its more correct.
-
-2001-09-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (mail_session_remember_password): Perform a
- NULL-check. Hopefully fixes bug #7874.
-
-2001-09-27 Dan Winship <danw@ximian.com>
-
- * mail-offline-handler.c (service_is_relevant): A service needs to
- be disconnected if it's remote, not already offline, and either
- connected OR connecting.
- (storage_go_offline): Don't put non-relevant stores offline. (Eg,
- don't force an IMAP store which you hadn't already connected to to
- connect and sync.)
- (storage_go_online): Likewise, don't "reconnect" stores that
- weren't connected before.
-
- * mail-ops.c (set_offline_desc): Fix the message to say
- "reconnecting" instead of "disconnecting" when appropriate.
- (mail_store_set_offline): If offline is TRUE, call
- camel_service_cancel_connect on the store. (We do this here
- because we don't want the cancel_connect request to get queued up
- behind a hanging connection attempt.)
-
-2001-09-26 Anna Marie Dirks <anna@ximian.com>
-
- * mail-config.glade: Added a "Description:" label and moved
- the source_description and transport_description labels to
- a more appropriate place.
-
-2001-09-26 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (mlfe_callback): Check for the root node here.
- Fixes Ximian bug #11029.
-
-2001-09-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (do_get_pass): Change the wording of the password
- dialog if we are getting a pgp passphrase so that users don't
- misinterpret it to mean saving the passphrase forever.
-
-2001-09-26 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (composer_get_message): strdup our "This
- message contains invalid recipients" string, since it gets freed
- later. And then don't leak the message string. (Bug #10877)
-
- * mail-format.c (write_address): Use camel_address_format,
- not camel_address_encode.
-
- * mail-display.c (html_button_press_event): Decode our URL before
- extracting the address to pop up contact info.
-
- * mail-format.c (write_address): When writing out a mailto: link,
- make sure we construct a valid URL w/ correct encoding. Make sure
- our address is properly quoted, if necessary.
-
-2001-09-26 Dan Winship <danw@ximian.com>
-
- * mail-folder-cache.c: Add a big comment explaining unread message
- counts so no one can mess them up again in the future. :-)
- (update_1folder): If info->unread_message_count is -1, don't do
- anything.
-
- * component-factory.c (component_factory_init): warn and exit if
- oaf_active_server_register returns OAF_REG_ALREADY_ACTIVE.
-
-2001-09-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (config_read): Oops, translate the fake account
- name to UTF-8.
-
-2001-09-26 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (message_list_foreach): Use
- e_tree_selected_path_foreach instead of
- e_tree_selected_row_foreach here.
-
-2001-09-27 Michael Meeks <michael@ximian.com>
-
- * mail-config.c (mail_config_init): report the
- exception on failure and abort quickly instead of hitting
- a strange assert later.
-
-2001-09-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (decode_pgp): Update to not send the
- remember-passphrase option to the context, it doesn't need it
- anymore.
- (try_inline_pgp_sig): Same.
-
- * mail-accounts.c (construct): The remember-passphrase option is
- no longer there. This can now be set on the passphrase prompt
- dialog.
- (construct): Add confirm expunge options.
-
- * mail-config.c (config_read): We no longer read-in the
- remember-passphrase state because we no longer need it.
- (mail_config_write_on_exit): We no longer save it either.
- (mail_config_get_remember_pgp_passphrase): Removed.
- (mail_config_set_remember_pgp_passphrase): Removed.
-
- * mail-crypto.c (mail_crypto_pgp_mime_part_sign): No longer do we
- need to send the remember passphrase state to the pgp context.
- (mail_crypto_pgp_mime_part_verify): Same.
- (mail_crypto_pgp_mime_part_encrypt): Here too.
- (mail_crypto_pgp_mime_part_decrypt): And here.
-
-2001-09-25 Ettore Perazzoli <ettore@ximian.com>
-
- [Patch for Automake 1.5 compatibility pointed out by Richard
- Boulton <richard@tartarus.org>, as per #9258.]
-
- * Makefile.am (CLEANFILES): Assign directly, not with `+='.
-
-2001-09-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-folder-cache.c (update_1folder): The folder-info needs to
- take priority over the folder because of the way IMAP works (which
- is that it doesn't actually update the folders until you SELECT
- them and so when you do get_folder_info(), it doesn't actually
- SELECT the folders, it just STATUS's them).
-
-2001-09-25 <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_destroy): Deal with destroy vs
- finalise semantics. Only destroy widgets here.
- (folder_browser_finalise): object finalise function, actually
- unref/free all other objects here.
- (folder_browser_class_init): Init the finalise hook.
- (got_folder): Check if message_list == NULL -> we've been
- destroyed before the thread got a chance to finish loading the
- folder.
- (folder_browser_is_drafts): Dont use a g_return_if_fail to return
- in what could be a valid state of the object.
- (folder_browser_is_sent): Likewise.
- (folder_browser_copy): Do nothing if message_list == NULL.
-
- * main.c (main): call mail_msg_cleanup() before leaving threads.
-
- * component-factory.c (owner_unset_cb): Wait for all outstanding
- operations to finish before setting up to quit.
- (idle_quit): Wait for all outstanding ops to finish before
- cleanup.
- (unref_standard_folders): NULL out the standard folder before
- unreffing it.
-
- * mail-mt.c (mail_msg_wait_all): New function to wait for all
- outstanding thread operations.
- (mail_msg_cleanup): Destroy the io channels before we're
- finished. Also wait for all outstanding threads first. Made
- public.
- (mail_msg_init): Dont call mail_msg_cleanup atexit automatically.
-
-
-2001-09-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (get_data_wrapper_text): If the data wrapper
- contains raw text, treat the contents as if they were in the
- user's default charset and convert them to UTF-8.
-
- * component-factory.c (owner_set_cb): Throw up a warning dialog if
- we suspect the config database is corrupt.
-
- * mail-config.c (config_read): If the account name is NULL, then
- we have a corrupt config database most likely - so generate a fake
- account name and set the corrupt but to TRUE.
- (mail_config_is_corrupt): New function to find out if the config
- is suspected of being corrupted.
-
-2001-09-25 Iain Holmes <iain@ximian.com>
-
- * mail-config.c (impl_GNOME_Evolution_MailConfig_addAccount):
- Check if the transport is NULL.
-
-2001-09-25 Iain Holmes <iain@ximian.com>
-
- * mail-display.c (link_menu): Remove the Save Link as (FIXME)
- item.
-
-2001-09-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (pass_got): Only cache the password for the service if
- it has an entry in the account database. Fixes bug #10875.
-
-2001-09-24 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (filter_date): Use e_strftime_fix_am_pm instead
- of strftime.
-
-2001-09-24 <NotZed@Ximian.com>
-
- * mail-local.c (mls_get_folder): Removed unused variables.
-
- * component-factory.c (storage_create_folder): Remove unused
- variable.
-
- * mail-format.c (write_default_header): Used to write a header
- that we know about/normally print. Use a static header table to
- index these.
- (write_header): removed.
- (default_header_index): Return the index of the default header.
- (write_headers): Changed the way it writes headers a bit. Use
- write_default_header or write_text_header directly. Also try and
- use the header charset as a fallback if the header can't be
- decoded using the locale charset.
-
-2001-09-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (pass_got): Always cache POP and IMAP passwords, even
- if the user didn't tell us to. Fixes bug #10569.
-
-2001-09-21 <NotZed@Ximian.com>
-
- * mail-mt.c (mail_msg_check_error): If we have an operation that
- failed before, dont show the dialogue for the the new error. Also
- use gtk_widget_show rather than invoking another main loop. Fix
- for lazy people who like to leave their mailers running and go
- home.
-
-2001-09-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): Use the mail-tools convenience
- functions to remove and restore the X-Evolution headers.
- (mail_update_subfolders): Removed.
-
-2001-09-21 <NotZed@Ximian.com>
-
- * mail-callbacks.c (mail_storage_create_folder, folder_created,
- create_folders): All made redundant by new mail-folder-cache
- code.
- (delete_folders, folder_deleted): Uh, code that isn't used
- anywhere. Removed.
-
- * component-factory.c (storage_create_folder): Dont call
- folder_created, let the folder_created event handle the update.
-
- * mail-local.c (mail_local_store_add_folder): Use url path as
- full_name, not shell path.
- (mail_local_folder_construct): Remove path argument, and use the
- full_name instead.
- (mls_get_folder): Dont lookup folderinfo in cache. Like duh the
- shell hasn't told me its there yet, smaaaart.
-
- * mail-folder-cache.c (mail_note_store): Take a new argument
- 'done' that can callback when complete. Fixed callers
- appropriately.
-
- * mail-ops.c (mail_update_subfolders): Removed. Isn't used
- anymore.
- (mail_scan_subfolders): Remove, no longer used.
-
- * mail-send-recv.c (receive_update_got_store): Remove call to
- mail_update_subfolders.
-
-2001-09-20 <NotZed@Ximian.com>
-
- * mail-vfolder.c (check_source): Dont let drafts/outbox/sent be
- added via a generic 'all local folders' rule.
-
- * component-factory.c (got_folder): trigger a folder changed
- event, so the folderinfocache stuff has a chance to see if this is
- the outbox_folder or not.
-
- * mail-folder-cache.c (update_1folder): If we have -1 unread
- count, pass that as 0 to the shell so it doesn't go bolding.
- (setup_folder): Same.
-
-2001-09-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Only add the account
- if it doesn't already exist in the config db.
-
- * mail-config.c (mail_config_find_account): New convenience
- function.
-
- * mail-config-druid.c (wizard_finish_cb): Do not add the account
- here as this is taken care of in mail_account_gui_save() since it
- has to be able to set the default account.
-
- * mail-config.c (mail_config_set_default_account): Don't allow the
- index to become invalid.
-
- * mail-account-gui.c (mail_account_gui_save): Add the account
- before setting it as the default.
-
-2001-09-20 <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_set_shell_view): Update the
- status bar here, assuming we've just been activated.
-
- * mail-ops.c (add_vtrash_info): Scan whole list, rather than
- missing the last one. Also dont assume its always the last,
- otherwise we could lose following folders.
-
-2001-09-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-tools.c (mail_tool_uri_to_folder): Don't "note" the folder
- if we failed to get it.
-
-2001-09-20 Iain Holmes <iain@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Set the sensitivity
- of the edit buttons correctly.
-
-2001-09-20 <NotZed@Ximian.com>
-
- * mail-vfolder.c (vfolder_register_source): Lock around
- hashtable/list manipulation. Also dont try scan vfolder_hash if
- it hasn't been setup yet.
- (source_finalise): Lock around list access.
- (rule_changed): Lock around hash access.
- (context_rule_added): Lock around hash access.
- (context_rule_removed): "
- (rule_changed): Lock around list access.
- (all): d(x) out debug printfs
-
- * mail-local.c (storage_listener_startup): Fix for api change.
- (local_storage_new_folder_cb): Dont skip over leading / in path.
- (local_storage_removed_folder_cb): ditto.
-
- * mail-folder-cache.c (create_folders): No longer pass prefix
- between recursive calls - we have the path in the folderinfo.
- (setup_folder): No longer take path arg, we get it from
- folderinfo.
- (mail_note_folder): No longer take path arg, we use
- folder->full_name to key the folder table.
- (mail_note_store): Consolidate note_store interface, pass storage
- or corba_storage to it.
- (mail_note_local_store): Removed.
- (update_1folder): If its a vtrash folder, or the outbox_folder,
- and we have a folder, then make the 'count' the total message
- count, not unread messages count.
-
-2001-09-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (mail_local_store_add_folder): Set the folder info
- path.
-
-2001-09-20 <NotZed@Ximian.com>
-
- * mail-tools.c (mail_tool_uri_to_folder): Register vfolder sources
- here.
-
- * folder-browser.c (got_folder): Dont register vfolder sources
- here.
-
- * mail-ops.c (mail_get_folder): Add thread parameter. Fix callers.
- (add_unmatched_info): Scan for unmatched name and re-title.
-
- * mail-vfolder.c (vfolder_setup): Use the 'slow' queue for setting
- up vfolders.
-
- * mail-mt.c (mail_msg_init): Limit the maximum number of threads
- on the 'new' thread to 10.
- (mail_msg_init): Create a new queue 'slow' for doing slow
- operations.
-
-2001-09-20 Iain Holmes <iain@ximian.com>
-
- * mail-display.c (mail_error_write): Add a <blockquote> to make
- the error message look better.
-
-2001-09-20 <NotZed@Ximian.com>
-
- * mail-tools.c (mail_tool_uri_to_folder): Dont special case file:
- url's anymore.
-
- * mail-local.c: Add real_path to MailLocalFolder.
- (mail_local_folder_construct): Added path argument, setup
- full_name == path, and real_path == full_name.
- (mls_get_folder): First lookup folderinfo to confirm this folder
- exists, then use that to properly construct the folder paths.
- (mail_local_folder_reconfigure): Use real_path not full_name to
- create the store uri.
- (mlf_set_folder): Use real_path not folder_name to get real uri
- path.
-
-2001-09-19 <NotZed@Ximian.com>
-
- * mail-folder-cache.c (setup_store): Use the wrong spelling of
- finalised for the event hook.
- (real_note_folder): Use the wrong spelling of finalised for the
- event hook.
- (free_folder_info): Free the full_name parameter.
- (setup_folder):
- (real_note_folder): Key the folderinfo table on full_name, not
- path.
-
-2001-09-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (save_messages_save): Convert all textual parts to
- 8bit before saving. Fixes bug #10388.
-
- * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): Oops,
- don't free memory that we don't own.
-
-2001-09-20 Dan Winship <danw@ximian.com>
-
- * mail-config.c (evolution_mail_config_factory_init): No need to
- have g_warnings here. If it's done properly, therapeutically,
- there's no danger involved.
-
-2001-09-19 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Truncate extremely long
- subjects. (inspired by bug #9158)
-
- * mail-tools.c (mail_tool_generate_forward_subject): Truncate
- extremely long subjects. (bug #9158)
-
-2001-09-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-send-recv.c (receive_update_got_store): Here too.
-
- * component-factory.c (create_view): Call mail_note_store()
- instead of mail_scan_subfolders() here so that these folders get
- hooked up with the unread count code.
-
-2001-09-12 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn): Fix memory
- leak.
-
-2001-09-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): Convert
- the names to the locale charset.
-
-2001-09-19 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (create_folders): Pass the actual unread
- message count, not just whether or not it's > 0. Fixes ximian
- 9089.
-
-2001-09-19 <NotZed@Ximian.com>
-
- * component-factory.c: Added missing header.
-
- * mail-local.c (mail_local_store_add_folder): Async load the
- folder we just added, so it can update the folder counts in the
- display. We just discard the folder afterwards?
-
- * mail-ops.c (mail_get_folder): Use the queued thread to get
- folders.
-
- * General cleanup of mail debug printfs.
-
- * mail-folder-cache.[ch]: Completely rewritten. Removed all calls
- to the old code everywhere they were used. Nuff said.
-
- * folder-browser.h: Add shell_view to folder_browser & api to set
- it.
-
- * folder-browser-factory.c (control_activate): Set the shell-view
- on the folder_browser.
- (control_deactivate): And clear it here.
-
- * folder-browser.c (folder_browser_destroy): Unhook from changed
- events on the folder before giving it away.
- (got_folder): Hook onto the folder-changed events.
- (folder_changed): Event hook proxy for folder_changed events
- (main_folder_changed): And the main code version.
- (update_status_bar): And the one that actually does the work.
- (on_selection_changed): Also call update_status_bar() to update
- the selection count.
- (folder_browser_set_shell_view): Implement function to set the
- shell_view on the folder_browser.
- (folder_browser_destroy): Release the shell_view here too.
-
- * mail-tools.c (mail_tool_uri_to_folder): Dont 'note' the new
- folder if its from a file: url, this is handled by hte local store
- (yeeruughck).
-
- * mail-local.c (mls_init):
- (free_info):
- (mls_finalise): Setup init/finalise funcs for the folderinfo hash.
- (local_storage_removed_folder_cb): re-enable.
-
-2001-09-18 <NotZed@Ximian.com>
-
- * mail-local.c (MailLocalStore): Add a hash table to store
- uri<>folderinfo data.
- (mail_local_store_add_folder): Add a new folderinfo to our hash.
- (mail_local_store_remove_folder): Remove a folder by uri.
- (storage_listener_startup): Add this store to those monitored by
- the folder tree.
-
-2001-09-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (do_get_pass): Make the title translatable, and also
- use the account name when possible. Sorta fixes bug #6277.
-
-2001-09-17 <NotZed@Ximian.com>
-
- * mail-send-recv.c (get_receive_type): Function to get the real
- receive tpe for ag iven url. IMAP/SPOOL/MAILDIR types just update
- their info, dont download.
- (build_dialogue):
- (mail_receive_uri): Use function above to get the right receive
- type.
-
-2001-09-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-tools.c (mail_tool_remove_xevolution_headers): Oops, forgot
- about X-Evolution-Format.
- (mail_tool_restore_xevolution_headers): Same.
-
-2001-09-18 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (folder_browser_set_uri): Merged into
- folder_browser_new: nothing ever changes the URI of an existing
- folder browser any more.
- (folder_browser_new): Make this take a uri argument and do the
- work folder_browser_set_uri used to do, except that we set fb->uri
- right away, so that if the folder browser's control is activated
- before got_folder() gets called, then folder_browser_ui_add_list()
- will have access to the correct uri for purposes of setting
- ViewThreaded, etc. Fixes #4913.
- (got_folder): Don't set fb->uri here since it will already have
- been set. Don't call message_list_set_threaded, since it should be
- a noop now (and if it's not, it would make the message list not
- match the menu item).
-
- * folder-browser-ui.c (folder_browser_ui_add_list): Remove some
- code that was failing to work around the problems above.
-
- * message-browser.c (message_browser_new): Pass uri to
- folder_browser_new, remove call to set_uri.
-
- * folder-browser-factory.c (folder_browser_factory_new_control):
- Likewise. Also fix a s/destroy/unref/ in an error cleanup.
-
-2001-09-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (get_password): Pass a 'cache-me' argument to
- mail_get_password.
-
- * mail-mt.c (pass_got): Make less confusing...
- (mail_get_password): Now takes an argument 'cache' that allows our
- caller to determine if the user wanted to cache his/her password
- or not.
- (pass_got): Set the cache option.
-
-2001-09-18 Dan Winship <danw@ximian.com>
-
- * mail-format.c (mail_format_raw_message): Call
- mail_content_loaded here rather than blocking if the message data
- isn't available.
-
-2001-09-17 <NotZed@Ximian.com>
-
- * mail-ops.c (mail_get_folderinfo): Get folderinfo 1 at a time
- rather than all at once.
-
-2001-09-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (storage_remove_folder): Unsubscribe from
- the folder before deleting it. Also, use the url's path instead of
- the shell's path since IMAP doesn't necessarily have to use "/" as
- the dir sep.
-
- * mail-ops.c (remove_folder_get): If the store supports
- subscriptions, make sure to unsubscribe from the folder before
- deleting it.
-
-2001-09-17 <NotZed@Ximian.com>
-
- * mail-local.c (storage_listener_startup): Setup global
- corba_storage variable.
- (mls_get_folder): Set 'update lstorage' on the newly opened
- folder.
-
-2001-09-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (invisible_selection_get_callback): Do nothing if
- the selection is NULL? Maybe this is the cause of bug #6817.
-
- * mail-config.c (mail_config_folder_to_cachename): Go back to
- generating the cachename ourselves, but continue doing it the way
- the dfault implementation of camel_folder_get_uri worked.
-
-2001-09-16 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (ml_get_node_by_id): Made save_id const here.
-
-2001-09-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (pixbuf_gen_idle): Don;t destroy the pixbuf
- loader, unref it instead.
-
- * mail-config.c (mail_config_folder_to_cachename): Use
- camel_folder_get_uri().
-
-2001-09-15 <NotZed@Ximian.com>
-
- * mail-vfolder.c: Major rewrite of most of the guts, handle
- changes based on signals and events, etc. Use the main storage
- handling code that imap uses, etc.
-
- * mail-tools.c (mail_tool_uri_to_folder): Dont special case
- vfolder: anymore.
-
- * component-factory.c (owner_set_cb): use vfolder_load_storage(),
- new function to setup vfolder storage, after interaction has been
- enabled only. This might need some tweaking ...
- (storage_remove_folder): Removed all the folder lookup stuff.
- Just delete the folder based on the path passed in. There should
- be no reason this wouldn't work, right?
-
-2001-09-14 <NotZed@Ximian.com>
-
- * mail-ops.c (get_folderinfo_get): Only add vtrash folder info, if
- store supports vtrash.
-
- * component-factory.c (mail_load_storage_by_uri): Let 'vfolder'
- stores show up too.
-
-2001-09-13 <NotZed@Ximian.com>
-
- * mail-vfolder.c (vfolder_uri_to_folder): Open a vfolder then set
- its expression, since name?query open method is removed.
-
-2001-09-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * subscribe-dialog.c (fe_root_value_at): Return the cached value
- of camel_service_get_name so that we don't leak memory.
- (fe_real_value_at): Don't strdup the node's name.
- (folder_etree_construct): Set the service_name.
- (fe_destroy): Free the service_name.
-
- * mail-ops.c (add_vtrash_info): Free the temporary path variable
- here.
-
- * subscribe-dialog.c (store_data_new): Added a refcount variable
- so set the refcount to 1.
- (sd_got_store): Unref the store-data.
- (store_data_async_get_store): Ref the store-data.
- (store_data_ref): New function.
- (store_data_unref): New function.
- (subscribe_dialog_destroy): Instead of freeing the store-data
- here, unref it instead. We may just have an async function
- running. Set the callback function to NULL so that when the
- (remaining) async functions finish, they become no-ops.
-
- * mail-send-recv.c (build_dialogue): Revert my bar_destroy code
- and replace it with dialog_destroy instead.
-
- * mail-ops.c (mail_send_message): Append a message to any
- exception we get appending to any folders after having sent the
- message successfully saying that the message was sent successfully
- so the user doesn't misinterpret the error.
-
-2001-09-13 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Fixed double-freeing of
- EDestination vector when sending html mail to people who don't
- necessarily want it. Fixes bug #9848.
-
-2001-09-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * subscribe-dialog.c (get_short_folderinfo_desc):
- (get_short_folderinfo_get):
- (get_short_folderinfo_got):
- (get_short_folderinfo_free):
- (subscribe_get_short_folderinfo): Modified to take a FolderETree
- instead of a CamelStore (since the CamelStore is inside the
- FolderETree anyway) so that we could ref the ETree to prevent a
- race condition. Should fix bug #9827.
-
- * mail-format.c (try_inline_pgp_sig): Make sure that the
- charset_filter is non-NULL before using it since iconv may fail.
-
-2001-09-13 Larry Ewing <lewing@ximian.com>
-
- * mail-tools.c (mail_tool_quote_message): free the credits string.
-
-2001-09-12 <NotZed@Ximian.com>
-
- * mail-vfolder.c (vfolder_remove_cb): Fixed the remove callback
- prototype, and return the result properly using the listener.
- (vfolder_uri_to_folder): Always use the same store uri, so we dont
- create a new store for each folder.
-
-2001-09-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_write_on_exit): Save transport
- passwords too. This fixes bug #3020.
-
-2001-09-11 Dan Winship <danw@ximian.com>
-
- * mail-folder-cache.c (mail_folder_cache_note_folderinfo): Don't
- set the folderinfo's unread count to 0 when camel reports -1,
- since that may overwrite a valid unread count from before.
- (get_folder_info): Do it here instead when first creating a new
- folderinfo structure.
- Should fix bug #1756.
-
-2001-09-11 Larry Ewing <lewing@ximian.com>
-
- * mail-account-gui.c (menu_file_save_cb): call menu_file_save_error
- when there is an exception while saving.
- (menu_file_save_error): pop up a dialog telling the user the file
- has not been saved.
-
-2001-09-10 <NotZed@Ximian.com>
-
- * mail-local.c (mail_local_reconfigure_folder): Dynamically create
- the folder type list from camel.
- (reconfigure_clicked): And change code to handle changes.
-
-2001-09-10 <NotZed@Ximian.com>
-
- * merged mail_local patch from peterw. Many changes.
-
-2001-09-10 Iain Holmes <iain@ximian.com>
-
- * mail-config.c (impl_GNOME_Evolution_MailConfig_addAccount): Add a
- none account if the url is empty.
-
-2001-09-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Don't use
- new_with_sig_file, that function no longer exists.
- (forward_get_composer): Same here.
-
-2001-09-10 Zbigniew Chyla <cyba@gnome.pl>
-
- * mail-config.c
- (add_shortcut_entry): Marked string for translation.
- (new_source_created): Ditto.
-
- * mail-send-recv.c
- (format_url): Marked strings for translation.
- (build_dialogue): Ditto.
-
-2001-09-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Hide the S/MIME frame
- if we don't support S/MIME.
-
- * mail-send-recv.c (build_dialogue): Attach to the destroy event
- for each progressbar using bar_destroyed as the callback.
- (bar_destroyed): New callback to unregister the timeout and set
- the send-info's bar member to NULL so we don't try to update a
- destroyed progressbar.
-
- * mail-callbacks.c (mail_generate_reply): Pass along the right
- string, this fixes bug #9518.
-
- * mail-account-gui.c (save_service): Don't save the authmech if
- the username doesn't exist. Fixes bug #9474.
-
- * mail-callbacks.c (do_edit_messages): Remove some mailer-set
- headers. Fixes bug #9462.
-
-2001-09-10 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Fix obvious dumb
- mistake in previous commit that made it *always* complain you had
- invalid recipients.
-
-2001-09-09 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Complain if we are
- trying to send to invalid recipients. (Bug #8875)
-
-2001-09-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (evolution_mail_config_wizard_factory_fn):
- We need to initialize all of the struct fields or else god knows
- what will happen later when we try to use 'em. Also set a destroy
- function for the MailConfigWizard so we don't leak it.
-
-2001-09-08 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (ask_confirm_for_unwanted_html_mail): Added.
- Shows a (hopefully) informative dialog warning you that some
- recipients might not want HTML mail (who are listed), and gives
- the option to cancel sending. (FIXME: The wording of this dialog
- could use some work.)
- (composer_get_message): Check if we are sending HTML to someone
- who might not want it, and raise the dialog if we are. Use our
- new destination-vector based api when talking to the composer.
- Touch our destinations here, boosting their use scores. This is
- the right place for this to happen --- closer to the end of the
- sending process, where incorrect/artificial use score inflation is
- less likely to occur.
-
- * mail-config.c (config_read): Added
- /Mail/Format/confirm_unwanted_html key. This flag determines
- whether or not we want to see the warning dialog when we send HTML
- mail to contacts who don't want it. Default is TRUE.
- (mail_config_write_on_exit): Write out the confirm_unwanted_html
- key.
- (mail_config_get_confirm_unwanted_html): Added.
- (mail_config_set_confirm_unwanted_html): Added.
-
-2001-09-08 Dan Winship <danw@ximian.com>
-
- * mail-display.c (mail_display_destroy): Unref the invisible,
- don't just destroy it.
-
-2001-09-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_write_authenticity): Give the full path of
- the wax-seal icons.
- (try_inline_pgp_sig): Convert the charset from UTF-8 to whatever
- charset it should be. Now takes a CamelMimePart argument as well.
- (try_uudecoding): Now takes a part argument as well.
- (try_inline_pgp): Here too.
- (try_binhex): And finally here.
- (handle_text_plain): Pass along the mime part to the try_*
- functions.
-
-2001-09-06 Chris Toshok <toshok@ximian.com>
-
- * component-factory.c (notify_listener): new function, to notify
- the bonobo listener in remove_folder/create_folder.
- (storage_create_folder): match EvolutionStorage create_folder
- signal's signature.
- (storage_remove_folder): match EvolutionStorage remove_folder
- signal's signature.
-
-2001-09-06 Dan Winship <danw@ximian.com>
-
- Fix a bunch of replying/forwarding-related formatting bugs.
-
- 2749 - Message text not included in reply, but html attachment is
- 4294 - "forward inline" should quote the same headers as the
- normal mail display
- 6100 - Reply to a forwarded email displays email headers
- 7255 - Replying to HTML message
- 7527 - replying to forwarded message w/ attachments does the wrong
- thing
-
- * mail-format.c (mail_get_message_rfc822): New function to get
- message headers and body together, for inline forwards, or replies
- containing attached messages.
- (mail_get_message_body): Redo this to always return HTML, but keep
- the "want_plain" flag, to decide whether to return HTML that looks
- like HTML or HTML that looks like plain text. Use
- mail_get_message_rfc822 to handle attached message/rfc822 parts.
- Don't include the text of vcard or icalendar attachments. Don't
- fail to include text parts just because we found an HTML part.
- (Since we're always returning HTML now, this doesn't cause
- problems any more.)
-
- * mail-tools.c (mail_tool_quote_message): Simplify greatly.
- mail_get_message_body always returns HTML now, and we let it take
- care of prepending "> "s too. We then let GtkHTML deal with
- converting the HTML to plain text if the user wants to reply in
- plain text.
- (mail_tool_forward_message): Simplify this a ton too: parts of it
- are moved into mail_get_message_rfc822 and parts are now
- unnecessary.
-
- * mail-callbacks.c (do_forward_non_attached): Call
- mail_tool_forward_message here always, and let it do the "> "
- quoting in the "quoted" case, so that we get the headers too when
- forwarding quoted. Related to bug #4294.
-
-2001-09-05 Dan Winship <danw@ximian.com>
-
- * mail-display.c (launch_cb): the "command" of a
- GnomeVFSMimeApplication can include arguments as well. Deal with
- that. Fixes support for CodeWeavers' CrossOver Plugin.
-
-2001-09-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_remove_account): Adjust the
- default_account index correctly.
-
-2001-09-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_get_accounts): Added a g_assert to
- make sure that config wasn't NULL. This is meant to help debug bug
- #4911 and friends.
-
- * component-factory.c (owner_set_cb): Do not mail_config_init()
- here as we've already called this in main() in main.c.
-
-2001-09-05 Ettore Perazzoli <ettore@ximian.com>
-
- [Fix #958, ShellComponents should not be created by factories, for
- the mailer case.]
-
- * GNOME_Evolution_Mail.oaf.in: Remove the
- GNOME_Evolution_Mail_ShellComponentFactory.
-
- * component-factory.c: Changed to not use a factory.
- (COMPONENT_FACTORY_ID): Removed.
- (COMPONENT_ID): New.
- (idle_quit): Don't unref the component_factory.
- (create_component): Renamed from `component_fn'. Take no args.
- (component_factory_init): Create the component with
- `create_component' and register it on OAF.
-
-2001-09-06 Radek Doulik <rodo@ximian.com>
-
- * everywhere updated for new mail_content_loaded definition
- (prototype)
-
-2001-09-05 Radek Doulik <rodo@ximian.com>
-
- * mail-display.c (mail_display_redisplay): increase
- redisplay_counter
- (try_part_urls): new helper function
- (try_data_urls): ditto
- (load_content_loaded): if it has stream handle available and if
- it's still valid, it writes to this stream instead of
- redisplaying, uses try_part_urls and try_data_urls
-
- * mail-display.h: added redisplay_counter to MailDisplay, I use
- it in load_content_loaded to be sure that there wasn't any
- redisplay and that remembered handle is still valid
-
- * mail-display.c (on_url_requested): don't end stream with error
- if part is not loaded yet
- (on_url_requested): don't end stream in cases when we are going to
- load image using http
- (stream_write_or_redisplay_when_loaded): new helper function,
- which is extracted from mail_display_redisplay_when_loaded. it's
- extended to handle gtkhtml stream writting
- (mail_display_redisplay_when_loaded): use
- stream_write_or_redisplay_when_loaded
- (mail_display_stream_write_when_loaded): new function, uses
- stream_write_or_redisplay_when_loaded
- struct _load_content_msg: added handle, url and redisplay_counter
- fields
-
- * mail-format.c (mail_content_loaded): added redisplay, url and
- handle parameter for case when we are loading image content and
- want it write to stream instead of redisplaying
-
-2001-09-05 Ettore Perazzoli <ettore@ximian.com>
-
- * message-browser.c (message_browser_new): s/Evolution/Ximian
- Evolution/.
-
-2001-09-04 Ettore Perazzoli <ettore@ximian.com>
-
- [Fix #7542, "Crash Afer Closing".]
-
- * component-factory.c (owner_unset_cb): NULL the
- global_shell_client as the first thing here. Otherwise we might
- get into a slight race that causes the shell to crash. [Still, of
- course the shell shouldn't crash, but I haven't been able to track
- that down yet.]
-
-2001-09-04 Zbigniew Chyla <cyba@gnome.pl>
-
- Fixes #7251
-
- * mail-ops.c (add_vtrash_info): Mark "Trash" with U_(), not _().
-
-2001-09-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (fetch_mail_fetch): Unref the source folder here
- because it might be a POP folder. We do this because on store
- finalize, we now try to disconnect cleanly which means that we may
- block.
-
- * mail-send-recv.c (build_dialogue): Fix capitalization. Fixes bug
- #7486.
-
-2001-09-04 Peter Williams <peterw@ximian.com>
-
- * mail-local.c (mlf_init): Remove accidentally left-in "choke on
- this" preprocessor thingie.
- (mail_local_folder_reconfigure): Instead of creating our own local
- exception, just assert that ex != NULL.
- (*): Staticize everything that can be and remove some obnoxious
- prototypes.
-
-2001-08-31 Peter Williams <peterw@ximian.com>
-
- * mail-local.c (mail_local_reconfigure_folder): Use (NULL, NULL)
- as the arguments to g_hash_table_new instead of g_direct_foo.
- Instead of checking the URI, check MAIL_IS_LOCAL_FOLDER (fb->folder)
- to check whether we can reconfigure the folder. Instead of
- gnome_dialog_run_and_close, use gnome_dialog_run...
- (reconfigure_clicked): And deal with removing the hash table
- elements here.
- (local_storage_new_folder_cb): Set the folder's name to the
- displayName to i18nize correctly (after shell patch is applied).
-
-2001-08-30 Peter Williams <peterw@ximian.com>
-
- * mail-local.c: Rewrite as a more complete CamelStore.
-
- * component-factory.c (create_folder): We can now chuck out most
- of this function and just call mail_get_folder.
- (xfer_folder_done): If we succeeded in moving the messages, now
- delete the source folder as we should be.
- (xfer_folder): In order to do so, create a new xfer_folder_data
- struct that records the value of 'remove_source' Fix a leak by
- unreffing the source folder.
-
- * mail-ops.[ch]: We no longer need the mail_new_folder operation.
-
- * folder-browser.[ch]: Don't need the 'reconfigure' member
- anymore, because the loaded folder's URL doesn't change.
- (do_message_selected): Don't check it
- (on_right_click): Same.
- (folder_browser_set_uri): Same.
- (got_folder): Same.
-
-2001-08-31 Zbigniew Chyla <cyba@gnome.pl>
-
- * mail-vfolder.c (vfolder_create_storage): Marked string for
- translation (with U_).
-
-2001-08-28 Zbigniew Chyla <cyba@gnome.pl>
-
- * message-list.c (e_mail_address_compare): Use g_utf8_collate
- instead of g_strcasecmp for comparing names.
- (subject_compare): Replaced g_strcasecmp, isspace, var++ with
- UTF-8 counterparts.
-
-2001-08-30 Iain Holmes <iain@ximian.com>
-
- * importer/evolution-mbox-importer.c (load_file_fn): Check if it's
- a folder, if so, create a folder.
- (process_item_fn): If it was a folder created, just finish up
- importing
-
-2001-08-29 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c: Turn off debugging, remove
- spewage.
- (process_item_fn): Notify the importer if the folder isn't opened
- or created yet.
- (load_file_fn): Allow the function to continue if the folder is
- being created.
-
-2001-08-30 Peter Williams <peterw@ximian.com>
-
- Due to the introduction of mail_folder_cache_remove(), we can no
- longer assume that mail_folder_info's always exist, so we need to
- robustify a lot of this.
-
- * mail-folder-cache.c (folder_browser_destroyed): New
- function. Called when the folder browser is destroyed -- analogous
- to camel_folder_finalized.
- (mail_folder_cache_note_fb): Hook it up here.
- (struct _mail_folder_info): Add a member, mail_info_id, that
- records the get_mail operation's id, so that we can cancel it if
- we need to.
- (get_folder_info): Initialize it here.
- (get_mail_info_reply): Clear it here.
- (mail_folder_cache_remove_folder): If necessary, cancel it here.
- (mail_folder_cache_note_folder): Check it here before starting a
- new operation, just in case.
- (update_message_counts_main): Take a URI instead of a
- mail_folder_info *, in case the MFI has gotten destroyed.
- (update_message_counts): Take a quark of the URI instead of a
- mail_folder_info *, for the same reason. We use a quark instead of
- an allocated gchar * because figuring out when to free the string
- gets tricky. Then go from quark -> URI string -> MFI. Return if
- the folder is no longer valid, because this indicates that the MFI
- was removed before this signal got called. Pass a string to
- update_message_counts_main instead of an MFI.
- (camel_folder_finalized): Don't bother unhooking the signals here.
- Same change as above, but don't bother checking for a valid folder
- because we're about to make it invalid anyway.
- (message_list_built): Analogous to the above, except with the
- FolderBrowser instead of the CamelFolder.
- (selection_changed): As above.
- (folder_browser_destroyed): As above.
- (struct get_mail_info_msg): Instead of taking a mail_folder_info
- *, take a URI, for reasons explained above.
- (get_mail_info_receive): Go from URI -> MFI before doing anything.
- (get_mail_info_reply): Same.
- (get_mail_info_destroy): Free the URI.
- (get_mail_info): Take a URI and return the message id so that it
- can be cancelled if necessary.
- (mail_folder_cache_remove_folder): Disconnect from signals and
- events before removing.
- (mail_folder_cache_note_folder): Use a GQuark instead of the
- mail_folder_info * as the user_data.
- (mail_folder_cache_note_fb): Same.
- (mail_folder_cache_note_folderinfo): Little formatting change.
-
-2001-08-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-browser.c (message_browser_message_loaded): Fixed a
- memory leak.
- (message_browser_new): Added a comment as to why , after
- reparenting, we do not unref the mail_display.
- (message_browser_destroy): Don't call gtk_widget_destroy() on the
- message_list here.
-
-2001-08-30 Peter Williams <peterw@ximian.com>
-
- * mail-ops.c (remove_folder_get): Instead of removing the folder
- from the folder cache here...
- (remove_folder_got): ... do it here, in the main thread.
-
-2001-08-29 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (composer_get_message): When calling
- e_msg_composer_get_message, pass in TRUE for the 'sending' arg.
- (Part of the fix for bug #8332)
-
-2001-08-29 Peter Williams <peterw@ximian.com>
-
- * folder-browser-ui.c: Fix the pixmap for /commands/MessageUndelete.
-
- * component-factory.c (owner_set_cb): Toss in a call to
- mail_config_init () cause it might contribute to solving
- bug 4911, and it won't hurt.
-
-2001-08-28 Peter Williams <peterw@ximian.com>
-
- * component-factory.c (owner_unset_cb): Disable interaction once
- the shell has quit.
- (create_view): Instead of
- folder_browser_factory_new_control ("", corba_shell) when looking
- at a mailstorage folder, use create_noselect_control().
-
-2001-08-27 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-local.c: Match the studlyCapsification of
- shell/Evolution*.idl.
-
- * mail-config-druid.h: Change type of `event_source' from
- `Bonobo_EventSource *' to `Bonobo_EventSource'.
-
- * mail-accounts.c (mail_delete): Remove unused local variable
- `label'.
-
- * folder-info.c (do_get_info): `#if 0' unused variables.
-
-2001-08-27 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Check if we are trying
- to reply to a message with no From: field, and try to do something
- graceful in that case. (Bug #7028)
-
- * mail-display.c (ebook_callback): Add paranoid checks for the
- case of a message with a From: field. (Also maybe bug #7028)
-
-2001-08-27 Iain Holmes <iain@ximian.com>
-
- * mail-config-druid.c (druid_finish): Free the list and hash table.
- (druid_cancel): Free the list and hash table.
-
-2001-08-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Set the source and
- transport description labels.
- (transport_type_changed): Set the transport description label.
- (source_type_changed): Set the source description label.
-
- * mail-tools.c (mail_tool_make_message_attachment): Remove
- X-Evolution* headers.
- (mail_tool_remove_xevolution_headers): New function to convenience
- removing the X-Evolution headers.
- (mail_tool_restore_xevolution_headers): New convenience function
- to restore the X-Evolution headers.
- (mail_tool_destroy_xevolution): New function to cleanup the
- structure.
- (mail_tool_forward_message): Remove and restore the X-Evolution
- headers here too.
-
-2001-08-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-send-recv.c (receive_update_got_store): If the store is not
- connected, scan it's subfolders first.
-
- * mail-ops.c (report_status): Call va_end() so LinuxPPC doesn't
- have a caniption.
-
-2001-08-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (launch_cb): Use the new e_mkdtemp function.
-
- * folder-browser.c (message_list_drag_data_get): Use the new
- e_mkdtemp function.
-
-2001-08-24 Ettore Perazzoli <ettore@ximian.com>
-
- [Fix #8024, Empty strings marked for translation.]
-
- * component-factory.c: Don't mark empty strings for translation.
- Rather, give descriptions and display names to types "mailstorage"
- and "vtrash".
-
-2001-08-24 Peter Williams <peterw@ximian.com>
-
- * mail-ops.c (remove_folder_get): Save the folder's full_name,
- unref it, and *then* unref the store, so that the folder has been
- closed before it gets deleted.
-
-2001-08-24 Peter Williams <peterw@ximian.com>
-
- * mail-config.c (add_shortcut_entry): Instead of using the length
- of the shortcuts list as the index for the shortcut, use -1, which
- means "last".
-
- * mail-config-druid.c (druid_finish): Remove the account adding
- stuff since that happens in wizard_finish now.
-
- * mail-config.c (add_new_storage): New function. Add a
- MailConfigAccount to the shell as a storage.
- (maybe_add_shortcut): Renamed to new_source_created.
- (new_source_created): Call add_new_storage here.
-
- * component-factory.c (mail_remove_storage_by_uri): Don't warn if
- the storage isn't remote... no point in making the caller do extra
- work.
-
-2001-08-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_set_thread_list): Don't let the uri
- be an empty string (how the fuck is this even happening in the
- first place??).
- (mail_config_get_thread_list): Same.
- (mail_config_set_show_preview): And here.
- (mail_config_get_show_preview): And finally here.
-
-2001-08-23 Larry Ewing <lewing@ximian.com>
-
- * mail-search.c (mail_search_construct): attach to the destroy
- handler to reset the tokenizer.
- (dialog_destroy_cb): reset the tokenizer here so that destroying
- the dialog with the window manager still clears the hilighted
- items.
-
-2001-08-23 Peter Williams <peterw@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Eek, let the user create
- new accounts if old_account == NULL.
-
-2001-08-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (destination_folder_handle_drop): Check to
- make sure we actually have drag data.
-
- * folder-browser.c (message_list_drag_data_received): Check to
- make sure we have valid data.
-
-2001-08-21 Christopher James Lahey <clahey@ximian.com>
-
- * Revert fix for Ximian bug #6995.
-
-2001-08-23 Peter Williams <peterw@ximian.com>
-
- * mail-folder-cache.c (maybe_update): Record the timeout_id so we
- can cancel it if the mail_folder_info is later freed. Also obviates
- the use of the _UPDATE_QUEUED flag.
- (mail_folder_cache_remove_folder): Cancel the timeout if we need to.
- Lock around the hash table operations. Free mfi itself. Add debugging
- spew.
- (get_folder_info): Initialiae the timeout_id to 0.
-
-2001-08-22 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c (ask_confirm_for_only_bcc): Provide alternative
- text for this dialog for the case when a message has only Bcc
- recipients because of a hidden contact list's addresses being
- moved from To/Cc to Bcc.
- (composer_get_message): Try to detect when our message has only
- Bcc recipients because of moving addresses around due to a hidden
- contact list, and show the dialog with the revised wording in this
- case.
-
-2001-08-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (create_view): Don't blindly make all vtrash
- folder types have a uri of vtrash:file:/, instead only make it use
- vtrash:file:/ if it's a file: uri, else use physical_uri.
-
-2001-08-22 jacob berkman <jacob@ximian.com>
-
- * mail-display.c: rework how the e-card-popup thing has its life
- managed. we now hide the window on the Hide event and destroy it
- on the Destroy event emitted from its event source
-
-2001-08-22 Peter Williams <peterw@ximian.com>
-
- * mail-send-recv.c (set_send_status): We don't need to escape this
- for printf'ing.
-
-2001-08-22 Peter Williams <peterw@ximian.com>
-
- Prevent the user from creating two accounts with the same name.
-
- * mail-config.c (impl_GNOME_Evolution_MailConfig_addAccount):
- Abort if the account has the same name as another account.
-
- * mail-account-gui.c (mail_account_gui_save): Don't let the user
- save if the account has the same name as another account.
-
- * mail-config-druid.c (management_check): Disable the next button
- if the account name is the same as a preexisting account.
- (construct): The only part of 'pages' that was being used was the
- name. 'wizard_pages' now has the callbacks, while 'pages' is just
- an array of char *'s.
- (wizard_finish_cb): Save the account first because that's the
- right way, and try to honor mail_account_gui_save's return value.
-
- * mail-config.glade: Add a label noting that you're not allowed to
- create two accounts with the same name.
-
-2001-08-22 Peter Williams <peterw@ximian.com>
-
- * folder-browser-ui.c (fbui_sensitize_timeout): Check for NULL uic
- here as well.
- (fbui_sensitize_items): Up the timeout interval to 110 ms.
-
-2001-08-21 Peter Williams <peterw@ximian.com>
-
- * mail-account-editor.c (apply_changes): Honor the return value of
- mail_account_gui_save.
-
- * mail-ops.c (sync_folder_desc): Say which folder is getting
- saved.
-
-2001-08-21 Dan Winship <danw@ximian.com>
-
- * mail-identify.c (mail_identify_mime_part): Don't trust gnome-vfs
- when it says "text/plain" if gnome_vfs_mime_type_from_name says
- something different. Fixes a problem with recognizing icalendar
- attachments labeled "application/octet-stream". Also, don't bother
- asking gnome-vfs about winmail.dat attachments, since it will
- often claim that they're MPEGs due to some mis-magic.
-
-2001-08-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (mail_session_forget_password): zero-ize the
- password before freeing.
- (forget_password): Same.
-
-2001-08-21 Peter Williams <peterw@ximian.com>
-
- * message-list.c (message_list_set_folder): Don't sink the extras
- since _set_folder can get called more than once (on reconfigure.)
- (message_list_destroy): So just unref the extras here.
-
- * mail-send-recv.c (build_dialogue): Treat the spool provider like
- IMAP: update instead of performing an explicit receive.
-
-2001-08-21 Peter Williams <peterw@ximian.com>
-
- * folder-browser-ui.c (fbui_sensitize_items): Rename to
- fbui_real_sensitize_items. Now we queue a change and set up a
- timeout, making sure weed out redundant changes, fixing flicker.
- (fbui_sensitize_timeout): New function. The timeout.
- (fbui_real_sensitize_items): Semi-new function. Rename of old
- fbui_sensitize_items.
- (folder_browser_ui_set_selection_state): Pass the FB instead of
- only the UIC to sensitize_items.
- (folder_browser_ui_message_loaded): Same.
-
- * folder-browser.c (folder_browser_destroy): Kill the new timeout
- if it is registered.
-
- * folder-browser.h: Add some members to FolderBrowser for keeping
- track of the queue of changes.
-
-2001-08-20 Iain Holmes <iain@ximian.com>
-
- * mail-config.druid: Fix the jumping around.
-
-2001-08-20 Peter Williams <peterw@ximian.com>
-
- * mail-ops.c (remove_folder_get): Fix double-unref of the store.
-
-2001-08-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (create_folder): Modify the url and set the
- protocol to mbox rather than hacking it and prepending mbox: to
- the uri.
-
- * mail-local.c (get_folder): Don't prepend the folder_name with
- the store's path because the hash key is folder_name, not
- /folder_name.
-
-2001-08-20 Iain Holmes <iain@ximian.com>
-
- * mail-config-druid.c: Change some of the text labels.
- (create_label): Make a label instead of a GtkHTML widget.
-
-2001-08-18 Iain Holmes <iain@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_setup): Stop hiding the source
- and transport frames.
-
-2001-08-20 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser-ui.c (folder_browser_setup_property_menu):
- Updated as ChangeFolderProperties is now in the
- ComponentPlaceholder.
-
-2001-08-20 Peter Williams <peterw@ximian.com>
-
- * mail-accounts.c (mail_able): Whoops, make sure that the account
- has a source before removing it or what-have-you.
-
- * subscribe-dialog.c: Add a few comments.
-
-2001-08-20 Damon Chaplin <damon@ximian.com>
-
- * folder-browser-ui.c: use new small trash icon for Delete command.
-
-2001-08-20 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-ops.c (sync_folder_desc): s/Synchronising/Synchronizing/.
-
-2001-08-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (storage_create_folder):
- camel_folder_create_folder can now return a heirachial tree so
- subscribe to down the tree.
-
-2001-08-20 Damon Chaplin <damon@ximian.com>
-
- * folder-browser-ui.c: use new Cut/Copy/Paste icons.
-
-2001-08-19 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c: Update the folder list to include a display
- name and a description.
-
-2001-08-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (do_op_status): Allow the activity to be NULL if there
- isn't a global_shell_client so that we don't try and report status
- updates when the shell is destroyed.
-
- * mail-config.c (add_shortcut_entry): Return if there isn't a
- global_shell_client.
-
- * component-factory.c (owner_set_cb): set the global_shell_client
- here and connect to the destroy signal.
-
- * mail-vfolder.c (vfolder_create_storage): Use an extern
- global_shell_client.
-
-2001-08-19 Christopher James Lahey <clahey@ximian.com>
-
- * mail-callbacks.c (delete_msg): Made delete make the cursor go
- backwards if the user is sorting by descending date. Fixes Ximian
- bug #6995. (Reverted.)
-
-2001-08-19 Jeffrey Stedfast <fejj@ximian.com>
-
- Note: The following changes were based on Zbigniew Chyla's fixes.
-
- * mail-callbacks.c (mail_generate_reply): Convert the date string
- to UTF-8.
- (do_forward_non_attached): Same here.
-
-2001-08-05 Zbigniew Chyla <cyba@gnome.pl>
-
- * folder-info.c: Added missing #include <config.h>. (applied by Damon)
-
-2001-08-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (config_read): Change the default values for
- "always-sign" to false.
-
- * mail-callbacks.c (open_msg): if the folder is Outbox, let the
- user edit the message(s) too I guess.
-
-2001-08-18 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser-ui.c: Hook the new `delete-message.png' up.
-
-2001-08-17 Damon Chaplin <damon@ximian.com>
-
- * mail-display.c (pixmap_press): stop signal emission so the GtkButton
- class method doesn't mess up the popup menu. Hopefully fixes bug #1828.
-
-2001-08-17 Zbigniew Chyla <cyba@gnome.pl>
-
- * mail-search.c (mail_search_construct): Put _() instead of N_()
- around of the "Search" string, gnome_dialog_constructv doesn't
- translate button names.
-
-2001-08-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_write_authenticity): We want wax-seal.png
- instead, since I added the png files to cvs and renamed it to
- wax-seal.png.
-
-2001-08-17 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn): Fix
- warnings.
-
-2001-08-17 JP Rosevear <jpr@ximian.com>
-
- * component-factory.c (owner_set_cb): don't init the config here
-
- * main.c (main): init the config here
-
-2001-08-17 JP Rosevear <jpr@ximian.com>
-
- * mail-config-druid.c: remove dead structure
-
-2001-08-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_write): Save the always-sign options
- for pgp and smime.
- (config_read): Read in the always-save options for pgp and smime.
-
-2001-08-17 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.etspec: Made the default values for column
- expansions here more reasonable.
-
-2001-08-16 Iain Holmes <iain@ximian.com>
-
- * GNOME_Evolution_Mail.oaf.in: Add the Wizard stuff.
-
- * component-factory.c (component_fn): Init the Wizard factory.
- (mail_load_storages): Check service isn't NULL before it's been
- dereferenced.
-
- * mail-account-gui.c (mail_account_gui_setup): Only show the top level
- widget is it's not NULL.
- Change the gtk_widget_set_usizes to gtk_widget_hides.
-
- * mail-config-druid.c: Rewrite to use the EvolutionWizard stuff.
-
- * mail-config-druid.h: Add stuff to the MailConfigDruid struct.
-
- * mail-config.c (mail_config_get_default_account): Init the config if
- it's not been inited.
-
-2001-08-16 Jason Leach <jleach@ximian.com>
-
- * mail-tools.c (mail_tool_quote_message): Only starting cutting
- the signature out when we match "-- \n", so "--\n" in the middle
- of a mail won't omit the rest for a quoted reply. Bug #7454.
-
-2001-08-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (confirm_expunge): Respect the user's desire to
- be prompted to confirm that he wants to expunge the blasted
- folder. Also, don't set the usize - that's just an evil hack and
- you may find it will cut off text once the label has been
- translated.
- (create_msg_composer): In order for the security options to be
- checked when composing a new message, we must set the from account
- explicitly even though the composer hdrs sets the default from
- account and emits the signal because at that stage the composer
- hasn't yet connected to the signals and thus the bonobo menu items
- don't get set.
-
- * mail-config.c (mail_config_set_confirm_expunge): New.
- (mail_config_get_confirm_expunge): New.
-
-2001-08-16 Peter Williams <peterw@ximian.com>
-
- * subscribe-dialog.c (fe_got_children): Sort the nodes here...
- (fe_sort_folder): ... using this function.
-
- * folder-browser-ui.c (folder_browser_ui_message_loaded): Check
- for uic == NULL. I'm not sure how this could happen, but...
-
-2001-08-16 Peter Williams <peterw@ximian.com>
-
- * folder-browser-ui.c (folder_browser_ui_set_selection_state):
- Disable "Search Message" when more or less than exactly one
- message is selected.
-
- * subscribe-dialog.c (fe_done_subscribing): Instead of hackfully
- getting the path, use a CamelURL so that escaping is
- handled. Silly me. -- See below --
- (fe_node_to_shell_path): Use node->name and node->full_name to
- generate the the shell path of this item. Don't need to escape the
- URL, and handle cases when dir_sep != '/'
- (fe_done_subscribing): Use fe_node_to_shell_path instead of the
- CamelURL. Third time's the charm... * folder-browser-ui.c
- (folder_browser_ui_set_selection_state): Disable "Search Message"
- when more or less than exactly one message is selected.
-
- * subscribe-dialog.c (fe_done_subscribing): Instead of hackfully
- getting the path, use a CamelURL so that escaping is
- handled. Silly me. -- See below --
- (fe_node_to_shell_path): Use node->name and node->full_name to
- generate the the shell path of this item. Don't need to escape the
- URL, and handle cases when dir_sep != '/'
- (fe_done_subscribing): Use fe_node_to_shell_path instead of the
- CamelURL. Third time's the charm...
-
-2001-08-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (save_part): Remember the filename is in utf8, so
- use the e_utf8 functions to set the filename in the file selection
- dialog.
-
-2001-08-15 Peter Williams <peterw@ximian.com>
-
- * message-list.c (on_cursor_activated_idle): Always remove the
- idle and return FALSE, instead of returning TRUE if more than one
- message is selected.
-
-2001-08-15 Jason Leach <jleach@ximian.com>
-
- * mail-tools.c (mail_tool_quote_message): Stop building the quote
- after a sigdash, hence, omitting the signature from a
- reply/forward. Bug #5529.
-
-2001-08-15 Anna Marie Dirks <anna@ximian.com>
-
- * mail-callbacks.c (expunge-folders): Re-added, at Ettore's
- request, the confirm-expunge dialog.
-
-2001-08-15 Jason Leach <jleach@ximian.com>
-
- * message-list.c (message_list_init): Use ALWAYS for scroll frame
- policy because ETable acts lame with AUTOMATIC. Bug #6925.
-
-2001-08-16 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c (expunge_folder): Don't confirm expunge.
-
-2001-08-15 Not Zed <NotZed@Ximian.com>
-
- * mail-local.c (register_folder_register): Remove operation
- registration/etc. Handled by mail-mt.c
-
- * message-list.c (regen_list_regen): Remove camel operation
- registration/etc.
-
-2001-08-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (load_accounts): Convert the UTF-8 account name
- string into a gtk-string before using it in the GtkCList.
-
-2001-08-14 Peter Williams <peterw@ximian.com>
-
- * mail-callbacks.c (previous_unread_msg): Make previous unread
- wrap around too.
-
- * mail-accounts.c (load_accounts): If the account is enabled,
- set a checkmark pixmap instead of a strange plus sign.
- (mail_accounts_dialog_init): Load the pixmap here.
- (mail_accounts_dialog_finalise): Free it here.
-
- * mail-accounts.h: Prototype it here.
-
-2001-08-14 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (message_list_drag_data_get): Fix the fix for
- #6722.
-
- * mail-ops.c (save_messages_save): Likewise.
- (save_part_save): Deal with the possibility that
- camel_mime_filter_charset_new_convert will return NULL (bad
- charset name). Fixes #6611.
-
-2001-08-13 Jon Trowbridge <trow@ximian.com>
-
- * mail-search.c (mail_search_construct): Disable the "search
- forward/backward" option in the search dialog. Why? Well, it
- doesn't work properly (bug #4869), and the reason it doesn't work
- is because of some scary stuff deep inside of gtkhtml that I don't
- understand at all. So since I'm paranoid, and since the GUI
- freeze is tomorrow, and since it isn't really an important feature
- at all, I'm #if 0-ing it out. If the gtkhtml stuff gets sorted
- out, we can slip it back in for 1.1.
-
-2001-08-13 Peter Williams <peterw@ximian.com>
-
- * component-factory.c (user_create_new_item_cb): New function,
- handle "user creatable items".
- (component_fn): Tell the shell that we're capable of creating
- mail messages.
-
-2001-08-13 Jason Leach <jleach@ximian.com>
-
- * mail-local.c (get_folder): Fix this so it can actually get
- folders from the hash of folders on the local store (it was
- looking up plain @folder_name, which is typically "mbox", instead
- of the full URI, /home/jleach/evolution/local/Foo/mbox).
-
- * component-factory.c (do_remove_folder): Rename to
- remove_folder_done, more fitting for it's purpose.
- (do_xfer_folder): Similar name change.
- (do_create_folder): Similar name change.
- (remove_folder): Don't notifyResult for the component here, we
- will notify with our result in remove_folder_done.
- (xfer_folder): Ditto.
-
- * mail-vfolder.c (vfolder_refresh): Create new folders with unread
- counts of "0" instead of #FALSE (which just happens to be #defined
- as zero).
-
-2001-08-13 Peter Williams <peterw@ximian.com>
-
- * mail-send-recv.c (mail_autoreceive_setup): Break most of the
- functionality into a separate function.
- (autoreceive_setup_list): Rename of mail_autoreceive_setup that is
- passed a list of accounts.
- (mail_autoreceive_setup_account): New function. Set up a single
- account using autoreceive_setup_account.
-
- * mail-send-receive.h: Prototype mail_autoreceive_setup_account.
-
- * mail-account-gui.c (mail_account_gui_save): Instead of setting
- up all accounts, set up only this source with the new
- mail_autoreceive_setup_account.
-
- * mail-config-druid.c (druid_finish): ... which means we can call
- mail_config_add_account() after the MailConfigAccount has been
- created by mail_account_gui_save() because we no longer need the
- account to be in the list for mail_autoreceive_setup()
-
- * mail-config.c (mail_config_add_account): ... which means we can
- possibly add a shortcut to the account's sources's Inbox here.
- (maybe_add_shortcut): New function. If the store is a storage, add
- a shortcut to its inbox. Hope that /INBOX exists.
- (add_shortcut_entry): New function. Creates a shortcut if it doesn't
- yet exist.
-
-2001-08-13 Peter Williams <peterw@ximian.com>
-
- * mail-account-gui.c (service_complete): Take account of the fact that
- service->path may be NULL (if service is a transport.)
-
- * mail-config-druid.c (druid_finish): Bleah, bugfix in case the
- account has no source.
-
-2001-08-13 Anna Marie Dirks <anna@ximian.com>
-
- * mail-config.glade: Changed all instances of "Wizard" and "Druid"
- to "Assistant".
-
- * mail-config-druid.c: Ditto.
-
-2001-08-13 Anna Marie Dirks <anna@ximian.com>
-
- * mail-accounts.c: Changed the title of the Mail Settings
- dialog from "Evolution Account Manager" to "Mail Settings" .
-
-2001-08-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (get_message_uid): Do some g_assert()
- action. Make sure that the node passed in is non-NULL and also
- make sure that the CamelMessageInfo gotten from the ETree is
- non-NULL.
- (get_message_info): Same here.
-
- * mail-callbacks.c (expunge_folder): Confirm that the user really
- wants to expunge.
- (save_msg_ok): Set the parent window here.
-
-2001-08-13 Peter Williams <peterw@ximian.com>
-
- * mail-config.c (remove_account_shortcuts): Remove the shortcuts
- corresponding to an account (they all point to
- evolution:/accountname/..)
- (mail_config_remove_account): When deleting the account, remove
- its shortcuts.
-
-2001-08-10 Peter Williams <peterw@ximian.com>
-
- * mail-config-druid.c (druid_finish): Whoa, fatal typo. Sorry.
-
-2001-08-13 Jason Leach <jleach@ximian.com>
-
- * mail-local.c (init_trash): Tell folder cache the path for our
- Trash is /Trash, because that's what Shell needs to hear for
- updating folders.
-
-2001-08-11 Jason Leach <jleach@ximian.com>
-
- * mail-offline-handler.c (impl_goOnline): Set the session as
- online so auto mail checking (and the composer) will be doing the
- right things when you go online. Bug #6343 and #4601.
-
- * folder-browser.c: Make the right click "Resend..." into "Edit as
- New Message...", bug #6838.
-
- * mail-accounts.h: Remove unecessary #include <camel.h>
-
- * mail.h: Removed a prototype for a non-existant
- mail_view_create().
-
-2001-08-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (build_auth_menu): Fix bug #4523 for good.
- (save_service): If service->authitem is NULL, then the user tried
- to enable authentication but the provider doesn't actually support
- it.
-
-2001-08-10 Jon Trowbridge <trow@ximian.com>
-
- * folder-browser.c: Set our ESearchBarItems subitems to NULL.
-
-2001-08-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (transfer_msg): Prepend the uri with evolution:
- to fix bug #6916.
-
-2001-08-10 Jason Leach <jleach@ximian.com>
-
- * folder-browser.c: Make the context menu for the Sent folder have
- "Resend..." instead of "Resend", to clarify that it will bring up
- a dialog needing your input rather than just blindly sending the
- message again. Also give it the 'e' accelerator. Bug #6838.
-
- * mail-callbacks.c (next_unread_msg): Since 'N' keypresses go
- through here now, use wrap-around selecting.
- (previous_unread_msg): Same for 'P' here.
-
- * message-list.c (on_cursor_activated_idle): Stop this idle timer
- when we have multiple items selected, this keeps it from loading
- and then marking the last item in your selection list as read.
- Bug #4693.
-
-2001-08-10 Peter Williams <peterw@ximian.com>
-
- * mail-accounts.c (mail_delete): Don't remove the account from the
- tree if it's not enabled.
-
-2001-08-10 Jason Leach <jleach@ximian.com>
-
- * mail-ops.c (remove_folder_get): Remove all the messages from a
- folder that's being deleted before actually doing the
- camel_store_delete_folder, so it won't leave behind an mbox file
- that's going to prevent the actual directory from being deleted,
- and strange effects like new folders with the same name being made
- in it's place. Bug #5618.
-
- * mail-folder-cache.c (mail_folder_cache_remove_folder): New
- function, a way to get something out of the folder cache, like
- folders being deleted. Bug #6878.
-
-2001-08-10 Peter Williams <peterw@ximian.com>
-
- * mail-accounts.c (news_add_destroyed): Whoops, compile fix.
-
-2001-08-10 Jason Leach <jleach@ximian.com>
-
- * mail-callbacks.c (mark_as_unseen): If marking messages as
- unread, remove the automatic mark-as-read timer. Bug #4153.
-
-2001-08-08 Peter Williams <peterw@ximian.com>
-
- * component-factory.c (mail_load_storages): Don't load the storage
- if it isn't enabled.
- (mail_remove_storage_by_uri): New function. Goes through the
- gymnastics of getting a CamelStore from the URI and calling
- mail_remove_storage. Copied from mail_delete().
- (mail_load_storage_by_uri): Break out the storage-loading part of
- mail_load_storages into a single function.
- (mail_load_storages): Just call mail_load_storage_by_uri several
- times.
-
- * mail.h: Prototype our new _by_uri functions.
-
- * mail-accounts.c (news_add_destroyed): Instead of hacking around
- mail_load_storages, call mail_load_storage_by_uri.
- (mail_delete): Move this chunk of code into
- mail_remove_storage_by_uri.
- (mail_able): Add or remove the storage as necessary, with our
- new _by_uri functions.
-
- * mail-config-druid.c (druid_finish): See news_add_destroyed above.
-
-2001-08-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_get_show_preview): Free dbkey if we
- don't use it.
-
- * folder-browser.c (on_right_click): Added a comment about leaking
- memory here, but we seem to not even use the 2 strings we
- strdup...is this code still under construction?
-
- * mail-ops.c (mail_send_message): Free the sent_folder_uri at the
- bottom of the function (ironically enough we were freeing it if we
- encountered an error but never free'd it on success :-)
- (get_folderinfo_got): Fixed a memory leak...this one would have
- gone away once we got rid of the debug g_warning though.
-
-2001-08-10 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (mail_transfer_messages): Dont want it to keep on
- running if it got bad arguments, want it to bloody well crash.
- (mail_append_mail): Same here.
-
-2001-08-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (mlfe_callback): Added a g_assert_not_reached() -
- I'm hoping this will help us track down the "can't delete message
- sometimes" (ie bug #6637 and friends) bugs that users have been
- reporting. If herein lies the problem, then we can expect some
- crashes and some good backtraces, hopefully.
-
-2001-08-09 Peter Williams <peterw@ximian.com>
-
- * folder-browser.c (on_key_press): The bonobo menu items now
- handle 'n' and 'p'.
- (on_key_press): 'q' as well.
-
- * message-list.c (message_list_select): Fix inline documentation.
-
-2001-08-09 Anna Marie Dirks <anna@ximian.com>
-
- Fixes bug #6918
-
- * folder-browser.c: Changed the "Store search as vFolder" menu
- item to "Create vFolder from Search".
-
-2001-08-09 Jeffrey Stedfast <fejj@ximian.com>
-
- Fixes bug #6722
-
- * mail-ops.c (save_messages_save): Don't set the default perms
- here, let the user's umask deal with permissions.
-
- * folder-browser.c (message_list_drag_data_get): Don't set any
- default perms.
-
-2001-08-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Save the pgp and
- smime always-sign options.
-
- * mail-config.c (account_copy): Copy the always-sign options over
- too.
-
-2001-08-08 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (send_mail_send): Dont double-register this
- operation, mail-mt will do it for us.
- (get_folderinfo_get): "
- (get_folder_get): "
- (get_store_get): "
- (create_folder_get): "
- (remove_folder_get): "
- (sync_folder_sync): "
- (get_message_get): "
-
- * message-list.c (message_list_setup_etree): Free the etstate
- object after we're done using it.
-
-2001-08-08 Peter Williams <peterw@ximian.com>
-
- * subscribe-dialog.c (sc_selection_changed): New function. Set the
- sensitivity of the subscribe buttons based on whether any folders
- are selected.
- (menu_item_selected): If getting the widget for the first time,
- hook up sc_selection_changed.
-
-2001-08-08 Peter Williams <peterw@ximian.com>
-
- * mail-ops.c (mail_update_subfolders): Change this gtk_object_ref
- on the storage to a bonobo_object_ref.
-
- * component-factory.c (mail_lookup_storage): And here.
-
- * mail-vfolder.c (mail_vfolder_get_vfolder_storage): And here.
-
-2001-08-07 Ettore Perazzoli <ettore@ximian.com>
-
- * message-browser.c (set_bonobo_ui): Remove the "Customize
- Toolbar" thing.
-
-2001-08-07 Not Zed <NotZed@Ximian.com>
-
- * mail-config.c (mail_config_get_thread_list): Free the dbkey if
- we found the config option.
-
- * mail-send-recv.c (build_dialogue): Free the pretty_url after
- we've used it.
- (free_send_info): Free the 'what' string.
- (receive_done): Use free_send_info to make sure we free
- everything.
-
- * mail-ops.c (send_queue_free): Unref the filter driver when done.
- (send_queue_send): Unref the driver here too, force any long
- taking operations to run in our thread.
-
-2001-08-07 Peter Williams <peterw@ximian.com>
-
- * Revert Jeff's changes to subscribe-dialog.[ch]. It's not a widget,
- it's an object from which you can obtain a widget.
-
-2001-08-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (manage_subscriptions): Hide the app->window.
- (do_mail_print): Set the parent of the gnome-dialog to be the
- folder-browser so that when evolution is closed, the print dialog
- gets destroyed. Should fix bug #4781.
-
- * subscribe-dialog.c (subscribe_dialog_new): This should return a
- GtkWidget not a GtkObject.
-
- * mail-session.c (get_filter_driver): Update to use user's logging
- preferences.
-
- * mail-accounts.c (filter_log_toggled): New.
- (filter_log_path_changed): New.
- (construct): Get and attach signals to the filter logging option
- widgets.
-
- * mail-config.c (config_read): Read in filter logging options.
- (mail_config_write_on_exit): Save filter logging options.
- (mail_config_set_filter_log_path): Implemented.
- (mail_config_get_filter_log_path): Implemented.
- (mail_config_set_filter_log): Implemented.
- (mail_config_get_filter_log): Implemented.
-
-2001-08-07 Peter Williams <peterw@ximian.com>
-
- * subscribe-dialog.c (folder_etree_construct): Move
- fe_create_root_node farther down, so we can check for its children
- without problems.
-
- * mail-callbacks.c (folder_created): Use bonobo_object_unref on
- the storage since it's a bonobo object.
- (mail_storage_create_folder): Same.
- (folder_deleted): Same.
-
- * mail-send-recv.c (receive_update_got_store): Same.
-
- * mail-ops.c (do_update_subfolders): Same.
-
- * subscribe-dialog.c (fe_destroy): Unref the e_storage since
- lookup_store gives us a ref.
-
-2001-08-07 Peter Williams <peterw@ximian.com>
-
- * subscribe-dialog.c (folder_etree_construct): Move
- fe_create_root_node farther down, so we can check for its children
- without problems.
- (storage_tree_path): Removed, this was broken.
- (subscribe_get_short_folderinfo): Use the queued thread instead of
- the new thread.
- (subscribe_do_subscribe_folder): Same.
- (ftree_node_new_root): Don't create the path anymore; it was
- broken and there's a better way to get it now.
- (fe_got_children): Remove some debugging output.
- (fe_check_for_children): Here too.
- (fe_done_subscribing): Get the path from the URI instead of the
- ftree_node.
- (_SubscribeDialogPrivate): Add all of our useful widgets as
- members.
- (sc_refresh_pressed): Don't clear the search... that makes no
- sense now.
- (sc_search_activated): Don't set the filter radio button as active
- now; we use sensitivity instead.
- (sc_all_toggled): Make the search entry insensitive.
- (sc_filter_toggled): Make the search entry sensitive.
- (kill_default_view): New function. Gets rid of the default view
- stuff and makes all the widgetry sensitive.
- (menu_item_selected): Check if we moved off of the default view
- and, if so, call kill_default_view().
- (subscribe_dialog_construct): Initialize our new private widget
- members, and by default insensitize most of the buttons because
- they make no sense in the default view.
-
-2001-08-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.glade: Added key accelerators to a bunch of the
- config options and moved the Bcc and empty-subject checkboxes to
- the composer tab where they belong.
-
- * mail-callbacks.c (providers_config): Raise the dialog if it
- exists already.
- (manage_subscriptions): Raise the dialog if it already exists.
- (main_select_first_unread): Removed (we haven't needed this code
- in ages).
- (select_first_unread): Same.
- (save_msg_ok): If the path is empty, just return.
-
- * mail-local.c (mail_local_reconfigure_folder): Raise the dialog
- if it already exists.
-
-2001-08-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (expunge_folder): Set the message-display
- message to NULL if we can't get an info too.
-
-2001-08-06 Jason Leach <jleach@ximian.com>
-
- * mail-callbacks.c (create_folders): Make vtrash folders on other
- storages with a "vtrash" type, so they get the little trashcan
- icon.
-
-2001-08-06 Peter Williams <peterw@ximian.com>
-
- * subscribe-dialog.[ch]: Reimplement to be asynchronous and pretty,
- with progressive folder loading and all sorts of wonderful
- improvements.
-
- * mail-callbacks.c (manage_subscriptions): Change to reflect API
- update.
-
- * Makefile.am (etspec_DATA): Add subscribe-dialog.etspec.
- (glade_DATA): And the glade file.
-
- * subscribe-dialog.etspec: New file, break out the specification
- from inside the subscribe-dialog.c
-
- * subscribe-dialog.glade: Update this, actually use it now.
-
-2001-08-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (empty_trash): Yuck. Special case whether or
- not we want to expunge all the trash folders syncronously or
- asyncronously based on whether or not we are doing Empty-On-Exit
- or emptying trash by user request respectively.
-
-2001-08-06 Jason Leach <jleach@ximian.com>
-
- * mail-folder-cache.c (make_folder_name): Removed this function,
- it's not needed anymore.
- (mail_folder_cache_note_folderinfo): Initialize mfi->unread to 0
- always, so the shell won't get sent a random int for vtrash or
- potentially other folders.
-
- * message-list.c (message_list_select): Fix a minor glitch with
- how it started a backwards wraparound at the 2nd to last message,
- skipping the very last message.
-
-2001-08-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.glade: s/character set/character encoding
-
-2001-08-05 Ettore Perazzoli <ettore@ximian.com>
-
- * message-browser.c (message_browser_message_loaded): Make the
- title of the window "subject - Message" instead of just "subject".
- Also, display "(No subject)" if the subject is NULL.
-
- [Fix #6399, 8-bit characters are not displayed in window title.]
-
- * message-browser.c (message_browser_message_loaded): Convert the
- subject from UTF-8 to GTK.
-
-2001-08-05 Ettore Perazzoli <ettore@ximian.com>
-
- [Revert the previous changes, there seems to be something wrong
- with it.]
-
- * component-factory.c (component_factory_init): Back to using
- `bonobo_generic_factory_new()'.
- (component_fn): Updated accordingly.
-
-2001-08-04 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (component_factory_init): Use
- `e_bonobo_generic_factory_multi_display_new()' instead of just
- `bonobo_generic_factory_new()'.
- (component_fn): Added @component_id arg.
-
-2001-08-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_part_is_inline): Add yet another
- special-case hack for application/pgp.
-
-2001-08-04 Jason Leach <jleach@ximian.com>
-
- * message-list.c (message_list_select): Add a @wraparound
- argument, so the 'n' and 'p' keypresses (or anything else that
- wants to) can wrap around to find the next unread.
-
- * folder-browser.c (on_key_press): Tell it to wrap around here.
-
- * mail-callbacks.c (delete_msg): Don't wrap around here (or the
- other callbacks in this file).
-
-2001-08-03 Jason Leach <jleach@ximian.com>
-
- * mail-folder-cache.c (update_idle): Updates for EvolutionStorage
- API changes.
-
- * mail-importer.c (mail_importer_create_folder): Ditto.
-
- * mail-local.c: Same here.
-
-2001-08-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (build_auth_menu): Try to restore the choice
- the user had chosen before hitting the "Check Supported Types"
- button.
-
- * mail-format.c (write_headers): Removed a no-longer-needed
- g_warning.
-
-2001-08-03 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (get_password): return the source url for
- popb4smtp auth request.
-
-2001-08-02 Jon Trowbridge <trow@ximian.com>
-
- * mail-ops.c (filter_folder_describe): Added. Provide
- description for filter_folder_op.
- (fetch_mail_describe): Added. Provide description for
- fetch_mail_op.
-
- * message-list.c (regen_list_describe): Added. Provide
- description for regen_list_op.
-
- * mail-config.c (check_service_describe): Added. Provide
- description for check_service_op.
-
- * folder-info.c (do_describe_info): Added. Provide description
- for get_info_op.
-
-2001-08-02 Larry Ewing <lewing@ximian.com>
-
- * mail-send-recv.c (format_url): handle null paths in the dialog
- so that we avoid printing NULL strings
-
-2001-08-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (filter_edit): Raise the filter-editor window
- if it's already created.
-
- * folder-browser.c (message_list_drag_data_received): I obviously
- can't spell recieved, er, received...uh, yea.
-
-2001-08-02 Jason Leach <jleach@ximian.com>
-
- * mail-config.glade: Set history_id's for the sig and html sig
- gnome file entry boxes so it can persist history, also add titles
- to the dialogs that popup when you click the "Browse..." button.
- Bug #5595.
-
-2001-08-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (vfolder_create_storage): Connect to the
- folder_remove signal on the storage.
- (vfolder_remove): New function to remove a vfolder.
- (vfolder_edit): Raise the window if it already exists.
-
-2001-08-02 Not Zed <NotZed@Ximian.com>
-
- * Makefile.am (INCLUDES): Add EVOLUTION_BUTTONSDIR to get to some
- different icons.
-
- * mail-ops.c (mail_sync_folder): Queue the folder sync operation,
- rather than running it in parallel.
-
- * mail-send-recv.c: applies anna's patch for prettier send-recv
- dialogue.
- (parse_url): Renamed to format_url, fixed callers.
- (format_url): Use camel_url_free instead of g_free, also handle
- case where we have no host (use path instead).
- (build_dialogue): Cleaned up some whitespace.
- (build_dialogue): Create the label directly with the right text,
- dont set any text in the progress bar, and save the label into the
- info struct for later updating.
- (struct _send_info): Added 'status' the label with the status
- string.
- (operation_status_timeout):
- (receive_done):
- (receive_cancel): Set the status label, not the progress format
- text.
- (hide_send_info): NULL out status too.
- (mail_receive_uri): Init status.
- (free_folder_info): Initiate a folder sync here, so we can ...
- (free_send_data): ... Remove the awful hack of iterating through
- bonobo controls to sync all open folders.
- (free_send_data): Initiate a sync of the inbox too.
- (build_dialogue): Remove set_alignment on the icon, its not a
- gtkmisc object.
-
-2001-08-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_copy): Do the Right Thing (tm)
- if the message list is not the widget in focus (which is to copy
- the text selected in the html viewer instead). Fixes bug #5868.
-
-2001-08-01 Jason Leach <jleach@ximian.com>
-
- * folder-browser-ui.c: Use the new Save As and Message Search
- icons from Jakub.
-
- * mail-callbacks.c (delete_msg): Don't move cursors around when
- deleting last message and Hide Deleted Messages isn't enabled.
- Bug #5928.
-
-2001-07-31 Anna Marie Dirks <anna@ximian.com>
-
- * mail-mt.c (do_get_pass): Changed the title of this dialog
- to "Enter Password".
-
-2001-07-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (do_get_pass): We are not guarenteed to have a
- non-NULL service (ie. PGP) thus check for it.
- (pass_got): And again here.
- (mail_get_password): And of course here too.
-
- * mail-format.c (decode_pgp): When writing out a CamelException to
- the HTML stream, be sure to translate it first.
- (handle_message_external_body): Convert to UTF8 here too - I know
- this function is basically a dead end right now but eventually we
- will want to do something. I mostly did this because param values
- are UTF8 encoded so we should avoid mixing and matching UTF with
- non UTF8.
- (format_mime_part): Avoid writing non-UTF8 to the HTML stream.
-
- * mail-tools.c (mail_tool_make_message_attachment): Convert
- translated strings to UTF8 here too.
- (mail_tool_forward_message): Here too.
-
-2001-07-23 Zbigniew Chyla <cyba@gnome.pl>
-
- * mail-format.c (attachment_header, write_address, decode_pgp,
- mail_write_authenticity):
- Convert translated strings to UTF8 before calling mail_html_write.
-
- I modified the patch slightly and cleaned up bits of code around
- it as well. For example, we probably want to avoid having HTML
- tags in the strings to be translated. -- fejj
-
-2001-07-30 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Restore old security
- settings from the saved configuration. Fixes bug #5710.
-
-2001-07-30 Not Zed <NotZed@Ximian.com>
-
- * mail-session.c (do_register_timeout): Actually add the timeout,
- this time in the gtk thread.
- (do_remove_timeout): And same for remove.
- (register_timeout):
- (remove_timeout): Proxy the gtk calls to the main thread, and
- wait for them to execute synchronously.
- (register_timeout): Instead of return with fail for a too small
- timeout, just increase the timeout.
-
-2001-07-27 Zbigniew Chyla <cyba@gnome.pl>
-
- * component-factory.c (populate_folder_context_menu): Added (unused)
- table with strings intended to be translated (i18n tools can't extract
- strings from XML data inside .c file).
-
-2001-07-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (focus_on_entry): Don't need this anymore.
- (do_get_pass): Since we already have the entry widget, no need to
- do the nasty focus_on_entry hack.
-
-2001-07-26 Peter Williams <peterw@ximian.com>
-
- * mail-mt.c (do_get_pass): Figure out whether we're getting the
- password for the source or the transport, and get the toggle
- button accordingly.
- (pass_got): Same.
-
- * mail-config.c (mail_config_get_account_by_transport_url): New
- function. Cut + paste + search + replace of _by_source_url.
-
- * mail-config.h: Prototype here.
-
-2001-07-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (message_list_drag_data_get): If we don't have
- any messages selected, break out. This fixes bug #5612.
-
- * component-factory.c (xfer_folder): Fixed a strstr (url,
- "noselect=yes") brokenness.
- (destination_folder_handle_motion): Same.
- (destination_folder_handle_drop): And again here.
-
- * mail-format.c (handle_application_pgp): Implemented.
- (setup_mime_tables): Setup the application/pgp handler to use
- handle_application_pgp instead of handle_text_plain.
- (handle_text_plain): Remove special-case hacks for application/pgp
- types.
-
- * mail-config.glade: beautification.
-
-2001-07-26 Peter Williams <peterw@ximian.com>
-
- * mail-mt.c (do_get_pass): Use magic to make the password
- remembering checkbutton come after the entry, visually.
-
-2001-07-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (write_headers): Respect Gtk theme colors for the
- fonts and calculate a new table gbcolor based on gtk theme
- preferences.
-
- * mail-config.glade: Label the enabled field.
-
-2001-07-26 Peter Williams <peterw@ximian.com>
-
- * message-list.etspec: Make the date column smaller and the
- subject column larger, relatively.
-
- * mail-folder-cache.c (make_folder_status): Don't display "0
- hidden".
-
- * folder-browser.c (on_key_press): Make 'q' a toggle, not one-way.
-
- * message-list.etspec: Rename "Date" column to "Sent".
-
-2001-07-25 Anna Marie Dirks <anna@ximian.com>
-
- * mail-config.glade: fixed a mis-spelling of "Fashion" in the mail
- accounts window. (See bug 5433)
-
-2001-07-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-session.c (make_key): Don't make the key url:item if we
- have the url, just make it url. This fixes bug #5339.
- (mail_session_set_password): Removed.
-
-2001-07-25 Peter Williams <peterw@ximian.com>
-
- * folder-browser.c (etree_key): Make it so Enter always opens the
- message in another window.
-
-2001-07-25 Peter Williams <peterw@ximian.com>
-
- * mail-mt.c (mail_get_password): Now take a CamelService parameter
- (as passed by Camel). Allows us to have a "remember password"
- checkbox that is set correctly and whose settings can be
- propagated back to the proper MailConfigService.
- (do_get_pass): Add a checkbutton allowing the user to change
- whether the password is remembered or not.
- (pass_got): Apply the setting of the "remember password"
- checkbutton (if not cancelled.)
-
- * mail-mt.h: Update the prototype here.
-
- * mail-config.c (mail_config_service_set_save_passwd): New
- function, pretty bland.
-
- * mail-config.h: Prototype our bland new function. (Get it? It's a
- pun!)
-
- * mail-session.c (get_password): Pass the service as well.
-
-2001-07-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (build_auth_menu): Now takes a
- check_supported gboolean argument saying whether or not to disable
- non-supported authtypes.
- (source_type_changed): Update for build_auth_menu.
- (transport_type_changed): Same.
- (service_check_supported): Pass in TRUE for the disable
- non-supported authtypes to build_auth_menu and also disable
- check-supported button and the authtype menu if we get a NULL
- supported auth list.
-
- * mail-callbacks.c (mail_generate_reply): Initialize `me' to NULL.
- (forward_attached): If we are only forwarding a single message,
- pass the message along as the callback data, else pass NULL.
- (do_forward_attach): Updated for changes to
- forward_get_composer().
- (do_forward_non_attached): Same.
- (forward_get_composer): Try to guess which account to forward the
- message from if the message passed in is non-NULL.
-
-2001-07-24 Peter Williams <peterw@ximian.com>
-
- * mail-config.c (mail_config_write): Um, write the HTML signature
- settings in the right place. Whoops.
-
-2001-07-24 Jason Leach <jleach@ximian.com>
-
- * mail-callbacks.c (delete_msg): If we're deleting the last
- message, select the previous, not next, which actually selects
- nothing. Fixes #5323.
-
-2001-07-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (save_part_save): Pass the O_TRUNC flag to open so
- that we don't leave trailing garbage at the end of the file if the
- new file content is shorter than the old file content.
-
- * component-factory.c (create_view): Fix for bug #5174.
-
-2001-07-24 Jason Leach <jleach@ximian.com>
-
- * mail-config.c (config_read): Match the prefix for the
- "remember_passphrase" setting with where it's being saved to
- (/Mail/Prompts), so the setting gets loaded correctly. Fixes
- #5351.
-
-2001-07-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_text_plain): check_specials if this is an
- application/pgp type as well.
-
- * mail-ops.c (add_vtrash_info): When dumping the CamelURL to a
- string, hide all the params.
-
-2001-07-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (guess_me): Do a case-insensitive comparison.
- (mail_generate_reply): Only resort to the source account's
- identity if we can't find out which identity to use based on the
- recipients of the message first.
-
- * mail-config.c (mail_config_get_default_account): Make sure to
- return the 0th account if we don't have a default. We don't want
- to return NULL.
-
- * mail-callbacks.c (empty_trash): Use mail_tool_get_trash for the
- remote store trash folders.
-
- * mail-tools.c (mail_tool_get_trash): New convenience function.
-
-2001-07-24 Jason Leach <jleach@ximian.com>
-
- * mail-config.c (config_read): get_boolean_with_default for the
- "Mark as read" timeout, not get_long_with_default. Fixes #5176.
-
-2001-07-24 Peter Williams <peterw@ximian.com>
-
- * mail-folder-cache.c (make_folder_name): Don't display "(0 unsent)" if
- the outbox is empty.
-
- * mail-local.c (init_trash): Set up the local trash in the folder
- cache.
-
- * mail-folder-cache.c (update_idle): Make the error reporting a little
- but more descriptive.
-
-2001-07-24 Peter Williams <peterw@ximian.com>
-
- * mail-config.glade: Add new label widgets with a message that SSL
- isn't supported.
-
- * mail-account-gui.h: Add a new member to the Transport GUI struct
- for the 'SSL is not supported' message.
-
- * mail-account-gui.c (source_type_changed): Change logic to display
- a message stating that SSL isn't supported if SSL isn't supported.
- (transport_type_changed): Same.
- (mail_account_gui_new): Also load the labels for the the no-SSL
- message.
-
- * mail-accounts.c (construct): Fix typo.
-
-2001-07-24 Not Zed <NotZed@Ximian.com>
-
- * component-factory.c (create_folder): Dont call notifyResult here
- if we've just launched a thread to do the work, it calls it
- itself. This apparently breaks the importers, but thats a
- different issue.
-
-2001-07-23 Not Zed <NotZed@Ximian.com>
-
- * mail-mt.c (mail_msgport_replied): Go back to calling
- mail_msg_free here.
- (mail_msg_destroy): Remove the operation unregistration stuff.
- (mail_msg_received): And put it here, so we unregister as soon as
- the async part of the operation is complete. I thought about this
- and we should be doing this anyway so we register/unregister
- always in the same thread, although the camel_operation api
- doesn't enforce it, this *is* what it expects.
-
- * message-list.c (regen_list_regen): re-add reporting to
- rebuilding the message list. Basically fixes #4931
-
-2001-07-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-search.c (toggled_fwd_cb): Oops. Uncomment this code since
- Trow fixed GtkHTML to actually have this function now.
-
- * mail-config.glade: Fixed the "Read" to be Read in the glade file
- per menesis' request.
-
- * mail-accounts.c (construct): Give the dialog a Close button
- instead of an OK button.
- (prompt_bcc_only_toggled): New.
- (threaded_list_toggled): New.
- (show_preview_toggled): New.
- (construct): Add code for the bcc-only-prompt, threaded-list, and
- show-preview checkboxes.
-
- * mail-ops.c (transfer_messages_transfer): If the source and
- destination folders are the same, just mark the uids as undeleted
- (in case they were marked as deleted before).
-
-2001-07-23 Jon Trowbridge <trow@ximian.com>
-
- * mail-search.c (begin_cb): Carefully check for NULL everywhere,
- and do the right thing if the message we are currently looking at
- gets expunged. (Bug #4870)
-
-2001-07-23 Jason Leach <jleach@ximian.com>
-
- [Bug #5225: No UI way to mark as unimportant]
-
- * folder-browser.c (on_right_click): Do the necessary stuff to
- show or hide the correct "Mark Important" or "Mark as Unimportant"
- menu items depending on the status of messages that are selected.
-
- * folder-browser-ui.c: Add the MarkAsUnimportant verb here.
-
- * mail-callbacks.c (mark_as_unimportant): Simple function that's
- the callback for these new menu items.
-
-2001-07-22 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (remove_folder): Updated to get a @type
- argument. Return an error if the type isn't "mail".
- (xfer_folder): Likewise.
-
-2001-07-21 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c: Make types "mailstorage" and "vtrash"
- non-user-creatable.
-
-2001-07-20 Jason Leach <jleach@ximian.com>
-
- * mail-summary.c (generate_html_summary): Change this back to the
- "evolution:/local/Inbox" URI.
-
-2001-07-20 Peter Williams <peterw@ximian.com>
-
- * component-factory.c (storage_remove_folder): Don't let the user
- remove vtrash folders.
-
-2001-07-20 Peter Williams <peterw@ximian.com>
-
- * mail-mt.c (mail_msgport_replied): Fix DanW's fix. Pass the right
- arguments to mail_msg_destroy.
-
- * component-factory.c (component_fn): Don't populate the context
- menu; our only action didn't even work.
- (populate_folder_context_menu): Removed. ChangeFolderProperties
- needs a FolderBrowser which we don't have. It didn't even work
- before.
-
- * mail-local.c (mail_local_reconfigure_folder): Bring the creation
- of the hash table to the beginning to prevent warnings. Complain
- if the mailbox is non-local.
-
-2001-07-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (filter_folder_filter): Don't expunge the source
- folder if we have a cache.
-
-2001-07-20 Dan Winship <danw@ximian.com>
-
- * mail-mt.c (mail_msgport_replied): Use mail_msg_destroy rather
- than mail_msg_free, so the cancellation operation gets
- unregistered and doesn't leak two file descriptors.
-
-2001-07-19 Jason Leach <jleach@ximian.com>
-
- * mail-summary.c (generate_html_summary): Update this
- evolution:/local/ URI to evolution:/Local Folders/ to go along
- with today's shell changes.
-
-2001-07-19 Jason Leach <jleach@ximian.com>
-
- * mail-display.c: Fix #4605: "Save Image as" should be "Save Image
- as...".
-
-2001-07-19 Jason Leach <jleach@ximian.com>
-
- * mail-display.c (mail_display_new): Set the vertical scrolling
- policy for the mail display to AUTOMATIC, only get a scrollbar if
- the e-mail is longer than one frame.
-
- * folder-browser.c (my_folder_browser_init): We were setting the
- policy twice (and to two different things). Removed this one.
-
- * message-list.c (message_list_init): Set the policy for the
- message list scroll frame to be horizontal=NEVER,
- vertical=AUTOMATIC (scrollbar only if you have >1 page of
- messages).
-
-2001-07-19 Peter Williams <peterw@ximian.com>
-
- Track the NoSelect changes in Camel.
-
- * mail-callbacks.c (create_folders): We don't need to check if
- the URL is NULL or not anymore.
-
- * component-factory.c (create_noselect_control): New
- function. Create a dummy control for folders that can't contain
- messages (ie \NoSelect)
- (create_view): If the URI says the folder is noselect, make a
- dummy control. FIXME: still should merge in the global UI
- elements.
- (xfer_folder): Don't allow the operation if the destination is
- NoSelect.
- (destination_folder_handle_motion): Ditto.
- (destination_folder_handle_drop): Ditto.
-
-2001-07-19 Not Zed <NotZed@Ximian.com>
-
- * mail-local.c (reconfigure_folder_reconfigure): remvoed
- register/start/end etc code.
-
- * mail-ops.c (get_messages_desc): Add the count here.
- (get_messages_get): Remove the register/start code, its handled
- above us.
- (save_messages_desc): Added count.
- (save_messages_save): Removed register/start/end code.
-
- * mail-mt.c (mail_msg_received, mail_msg_destroy): Changed to use
- camel_operation rather than mail_status.
- (mail_msgport_received, mail_msgport_replied): Turn of the
- mail_status stuff, we dont need to report on stuff running in the
- gui thread right?
- (retrieve_shell_view_interface_from_control, set_view_data,
- mail_statusf, mail_status, mail_status_end, mail_status_start,
- status_timeout, do_del_status, set_status_op): removed now
- redundant stuff.
- (mail_msg_free): Removed reference to timeout_id.
-
-2001-07-18 Not Zed <NotZed@Ximian.com>
-
- * mail-local.c (reconfigure_folder_reconfigure): Changed to use
- camel_operation rathre than mail_status.
- (reconfigure_folder_describe): re-enabled this function.
-
- * mail-ops.c (get_messages_get): Changed to use camel-progress for
- status reporting.
- (save_messages_save): Likewise.
-
-2001-07-17 Not Zed <NotZed@Ximian.com>
-
- * mail-mt.c (struct _mail_msg_priv, destroy_objects, mail_msg_new,
- mail_msg_free, do_op_status): Changed to use an EvolutionActivityClient for
- progress.
-
-2001-07-18 Jason Leach <jleach@ximian.com>
-
- * mail-tools.h (mail_tool_get_local_inbox_url): Remove this
- prototype for a function that was removed long ago.
- (mail_tool_get_local_movemail_url): Ditto.
-
-2001-07-18 Jason Leach <jleach@ximian.com>
-
- [Simplifying how default account is stored and used internally,
- fixes possabilities of having multiple default accounts and things
- like deleting the current default account]
-
- * mail-account-gui.c (mail_account_gui_new): Update for new way of
- finding out the default account.
- (mail_account_gui_save): Ditto.
-
- * mail-accounts.c (load_accounts): Ditto.
-
- * mail-config-druid.c (make_default_account): Ditto.
-
- * mail-config.c: Added an int MailConfig::default_account, to be
- used instead of a 'default_account' boolean on each mail account.
- (mail_config_set_default_account_num): New function, facilitates
- things.
-
- * Mail.idl: removed the Account::default_account boolean.
-
-2001-07-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-tools.c (mail_tool_generate_forward_subject): Do what was
- suggested in #4596.
-
-2001-07-18 Peter Williams <peterw@ximian.com>
-
- * mail-accounts.c (construct): Add GTK_WIDGET to the charset
- picker. Reportedly prevent a craash for someone... ?
-
- * mail-config.glade: Typo fix.
- Later: And actually fix the typo.
-
-2001-07-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (mail_delete): Setup the auto-receive here
- instead.
-
- * mail-config.c (mail_config_remove_account): Don't setup the
- auto-recv here.
-
-2001-07-17 Iain Holmes <iain@ximian.com>
-
- * mail-accounts.c (mail_able): Reset the auto receive.
-
- * mail-config.h (mail_config_remove_account): Reset the autoreceive.
-
-2001-07-17 Jason Leach <jleach@ximian.com>
-
- * mail-account-gui.c (source_type_changed): Fix for last change:
- hide the entire widget, not just the entry.
-
-2001-07-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (message_list_drag_data_recieved): Fix to
- correctly handle text/uri-lists that contain more than a single
- url.
-
- * component-factory.c (destination_folder_handle_drop): Fix to
- correctly handle text/uri-lists that contain more than a single
- url.
-
-2001-07-17 Jason Leach <jleach@ximian.com>
-
- * mail-config.glade: Make the Path: entry into a GnomeFileEntry so
- you get a nice "Browse..." button that pops up a file selector to
- locate your mbox files. Bug #3501.
-
-2001-07-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_part_toggle_displayed): Cleaned up a bit.
- (handle_multipart_encrypted): Replace the encrypted part with the
- decrypted part.
-
-2001-07-17 Iain Holmes <iain@ximian.com>
-
- * mail-accounts.c (mail_delete): Make a nicer dialog.
-
-2001-07-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (init_trash): Use CAMEL_VTRASH_NAME.
-
- * mail-ops.c (add_vtrash_info): Use CAMEL_VTRASH_NAME.
-
- * folder-browser.c: turned off some debugging
-
-2001-07-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (transfer_msg): Disallow vtrash for now...
-
- * mail-ops.c (add_vtrash_info): Use g_strcasecmp() when looking
- for a Trash folder - it may be lowercase or something funky.
- (transfer_messages_transfer): Special-case vtrash folders.
-
- * mail-local.c (init_trash): No need to specify the vfolder
- expression here. This code was moved into camel-vtrash-folder.c
- ages ago.
-
- * component-factory.c: Let VTrash folders accept/export the same
- dnd types as normal folders.
-
-2001-07-16 Peter Williams <peterw@ximian.com>
-
- * mail-folder-cache.c (outbox_folder): prototype outbox_folder so
- we can check if a folder is it.
- (make_folder_name): If the folder is the outbox, display the count
- of total messages as "unsent".
- (make_folder_status): If the folder is the outbox, display
- "unsent" instead of "total"
-
-2001-07-16 Peter Williams <peterw@ximian.com>
-
- * mail-display.c (mail_display_redisplay): Use our own
- display_style member instead of the global setting.
- (mail_display_init): Initialize display_style.
-
- * mail-display.h: Include "mail-config.h" and add a display_style
- member.
-
- * mail-format.c (write_headers): Look at the MailDisplay's
- display_style instead of using the full_headers data.
-
- * folder-browser.c (folder_browser_set_message_display_style): Set
- the MailDisplay's display style as well as the global display
- style.
- (my_folder_browser_init): Don't save preference changes by
- default. (This is only observered wrt. the message display style
- but should apply to other items.)
-
- * folder-browser-factory.c (folder_browser_factory_new_control):
- Set this FB to save the preferences set in it.
-
- * folder-browser-ui.c (folder_browser_ui_add_message): Read our
- display's state instead of the global setting.
-
-2001-07-16 Peter Williams <peterw@ximian.com>
-
- * mail-folder-cache.c (mail_folder_cache_set_folder_browser): DUH.
- No need to update every folder if we set the folder browser to
- NULL.
-
-2001-07-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Call
- mail_autoreceive_setup() so that any changes to the list of
- accounts will be respected the next time mail is checked.
-
-2001-07-13 Peter Williams <peterw@ximian.com>
-
- * mail-callbacks.c (expunge_folder): Segfault prevention here if
- no uid is currently loaded.
-
- * mail-vfolder.c (unlist_vfolder): New function. If a vfolder in
- our list gets finalized, NULL out info->folder (Is it wrong if
- this happens?) Also, locking issues?
- (vfolder_uri_to_folder): Hook up to the finalize event here.
-
-2001-07-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (filter_folder_filter): Updated to reflect changes in
- the filter API by passing in the provided uid cache to
- camel_filter_driver_filter_folder.
- (mail_filter_folder): Set the cache to NULL.
- (mail_fetch_mail): Set the cache to NULL.
- (fetch_mail_fetch): If a cache exists for this folder, set
- it. When we are finished filtering the incoming messages, the
- logic changes a bit. We now save the cache if keep_on_server is
- set *or* if there was an exception this way if the user's download
- gets interrupted, he won't have to download all the messages
- again.
- (fetch_mail_fetch): Oh yea, and just so if we get an exception
- with `delete' turned on, the next time the user checks mail and an
- exception *doesn't* occur, it will go back and mark all the
- messages for deletion.
-
-2001-07-12 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn): Check that
- the folder does exist before trying to import it.
-
-2001-07-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (expunge_folder): Force-hide all deleted
- messages before expunging.
- (expunged_folder): Restore the user's "hide deleted messages"
- preference.
-
-2001-07-12 Jason Leach <jleach@ximian.com>
-
- * mail-callbacks.c (expunge_folder): Only blank the mail display
- if the message being viewed is one of those to be expunged. Bug
- #4030.
-
-2001-07-12 Jason Leach <jleach@ximian.com>
-
- * mail-config.c (config_read): Should be saving the
- 'identity_html_signature' and 'identity_has_html_signature" keys
- in the /Mail/Accounts prefix (with the rest of the per-account
- stuff, not on it's own)
-
-2001-07-11 JP Rosevear <jpr@ximian.com>
-
- * mail-display.c (get_embedded_for_component): no longer need to
- set a my address property
-
-2001-07-10 Federico Mena Quintero <federico@ximian.com>
-
- * mail-display.c (link_copy_location): Set the CLIPBOARD selection
- as well as the primary selection so that Edit/Paste will work in
- other programs (e.g. Netscape).
- (mail_display_new): Add the target for the CLIPBOARD selection.
-
-2001-07-10 Jason Leach <jleach@ximian.com>
-
- [Bug #4305: Make the automatic mark-as-read timer optional]
-
- * mail-config.glade: Necessary changes to make the Mark as "Read"
- label a toggle button instead.
-
- * mail-accounts.c (construct): Connect to the "toggled" on our new
- toggle.
- (timeout_toggled): New callback, called from above.
-
- * mail-config.c (mail_config_get_do_seen_timeout): New.
- (mail_config_set_do_seen_timeout): New.
- (mail_config_write_on_exit): Save the preference here.
- (config_read): Load it here.
-
-2001-07-10 JP Rosevear <jpr@ximian.com>
-
- * folder-browser.c: Cosmetic patch - replace our defines with the
- e-popup ones
-
- * Makefile.am: Typo
-
-2001-07-10 Peter Williams <peterw@ximian.com>
-
- * mail-format.c (attachment_header): Took the logic of whether or
- not to make the attachment header out of the actual function.
- (mail_part_is_displayed_inline): Return if the part is being
- displayed inline (regardless of whether it is actually inline).
- (mail_part_toggle_displayed): Toggle whether it's displayed inline
- or not.
- (get_inline_flags): Determine whether the part is displayed inline
- and whether it is actually inline.
- (mail_format_mime_message): Initialize the attachment_status hash
- table.
-
- * mail-display.c (inline_cb): Instead of modifying the
- CamelMimePart, use mail_part_toggle_displayed
- (button_press): As above.
- (pixmap_press): Use mail_part_is_displayed_inline instead of
- mail_part_is_inline. Get the MailDisplay from the popup to do
- this.
-
- * mail.h: Add prototypes.
-
-2001-07-10 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: extra dist the news files
-
-2001-07-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_write_on_exit): Use
- bonobo_config_set_string_wrapper.
- (mail_config_write): Same.
- (bonobo_config_set_string_wrapper): Macro wrapping
- bonobo_config_set_string that passes "" as the val if the val is
- NULL.
-
- * mail-callbacks.c (mail_generate_reply): Make sure that the
- reply-to addr i non-NULL before trying to add it to the hash
- table.
-
-2001-07-09 JP Rosevear <jpr@ximian.com>
-
- * mail-account-gui.c (get_focused_widget): fix typo so it compiles
-
-2001-07-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (setup_mime_tables): Handle application/pgp using
- the text/plain handler.
-
- * mail-account-gui.c (get_focused_widget): New function to
- determine which widget is focused.
-
- * mail-account-editor.c (apply_changes): Not only flip to the
- notebook page that wasn't finished, but also grab the focus of the
- incomplete widget.
-
- * mail-config-druid.c (source_changed): Grab the focus of the
- incomplete widget.
- (transport_prepare): And here.
- (identity_changed): Here too.
-
- * mail-account-gui.c (mail_account_gui_identity_complete): Take an
- incomplete argument so we can set which widget is incomplete and
- then the caller can focus it or whatever.
- (service_complete): Same.
- (mail_account_gui_transport_complete): And again here.
- (mail_account_gui_management_complete): And here too.
-
-2001-07-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (decode_pgp): Update to pass in the `remember'
- argument when creating a new pgp context.
- (try_inline_pgp_sig): And here...
-
- * mail-crypto.c (mail_crypto_pgp_mime_part_sign): Update to pass
- in the `remember' argument when creating a new pgp context.
- (mail_crypto_pgp_mime_part_verify): Same.
- (mail_crypto_pgp_mime_part_encrypt): And here...
- (mail_crypto_pgp_mime_part_decrypt): And finally here.
-
- * mail-config.c (mail_config_get_remember_pgp_passphrase): New.
- (mail_config_set_remember_pgp_passphrase): New.
- (config_read): Read in the "remember passphrase" value.
- (mail_config_write_on_exit): Save the remember-passphrase value.
-
- * mail-accounts.c (construct): Allow the user to set "Remember PGP
- Passphrase".
- (remember_pgp_passphrase_toggled): Set the toggle state.
-
-2001-07-09 Peter Williams <peterw@ximian.com>
-
- * mail-ops.c (get_folderinfo_got): Check for an exception and
- print it. Call done anyway.
- (do_update_subfolders): Check for NULL info.
-
-2001-07-09 Peter Williams <peterw@ximian.com>
-
- * mail-config.c (mail_config_write): Some NULL protection for our
- strings: pgp_key, html_signature, smime_key. Probably we should do
- this for all strings. Either that or change Bonobo Config.
-
- * message-list.c (message_list_init): Explicitly initialize search
- to NULL. Bug 3951 might to be due to a problem wrt this, and it
- can't hurt.
-
-2001-07-09 Dan Winship <danw@ximian.com>
-
- * mail-display.c (save_part): g_strdup the result of
- g_get_home_dir since this variable will get free'd later.
-
- * mail-format.c (mail_lookup_handler): Use
- gnome_vfs_mime_get_short_list_applications rather than
- gnome_vfs_mime_get_default_application.
-
- * mail-display.c (pixmap_press): Construct the EPopupMenu array on
- the fly, based on the number of applications available to open the
- MIME type.
- (launch_cb): Figure out which menu item was clicked, and invoke
- the appropriate application. Ugh, messy, because of the EPopupMenu
- interface. Probably should get rewritten some day. Also, make this
- handle apps with expects_uris set too.
-
-2001-07-09 Peter Williams <peterw@ximian.com>
-
- * mail-config.c (mail_config_write): Change html_signature stuff
- over to bonobo-config -- someone forgot to do this.
-
- * mail-folder-cache.c (dm): Gave up and got rid of dm. Just
- replaced it with d(g_message()) and set G_LOG_DOMAIN.
-
-2001-07-09 Peter Williams <peterw@ximian.com>
-
- * mail-folder-cache.c (mail_folder_cache_set_update_shellview):
- Deleted
- (as opposed to #if 0)
- (get_folder_info): Changed to assume it has the folder lock.
- (make_folder_name): Same.
- (make_folder_status): Same.
- (update_idle): Don't unlock around the make_folder_ functions.
- (*): Changed behavior wrt. get_folder_info. Lock before calling,
- but also move preconditions before -- get_folder_info can only
- return NULL if uri is NULL. Also add preconditions for other
- arguments where necessary.
-
-2001-07-07 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (on_cursor_activated_cmd): Check for new_uid !=
- NULL here before strcmping.
-
-2001-07-07 Dan Winship <danw@ximian.com>
-
- * main.c (main): Only install the segv_redirect handler if SEGV's
- handler is not currently SIG_DFL. Otherwise you get an infinite
- SEGV loop if you run with GNOME_DISABLE_CRASH_DIALOG.
-
-2001-07-07 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (message_list_select): Made this handle being
- given a row that's outside the range better.
-
-2001-07-06 Jason Leach <jleach@ximian.com>
-
- [Fix bug #1100, default account is stored strangely]
-
- * mail-config.c (mail_config_get_default_account_num): New
- function, returns the integer of the position of the default
- account, used to save which account is the default to the config
- db.
- (mail_config_write): Save the default account number here in
- "/Mail/Accounts/default_account".
- (config_read): Load in which is the default here.
-
-2001-07-06 Larry Ewing <lewing@ximian.com>
-
- * mail-callbacks.c (composer_send_cb): add a NULL check since that
- is a valid return.
-
-2001-07-06 Peter Williams <peterw@ximian.com>
-
- * mail-format.c (format_mime_part): Prevent infinite recursion when
- viewing attachments that we can't / shouldn't display but are some
- form of plaintext. Cf bug #2234
-
-2001-07-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_copy): Freeze and Thaw the
- folder.
-
-2001-07-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_copy): Mark the messages as
- Seen also.
- (folder_browser_class_init): Create an atom type for
- X-Evolution-Message selection type.
- (my_folder_browser_init): Add our multiple selection types, one of
- which is the default string type.
-
- * component-factory.c (destination_folder_handle_drop): Update to
- use the new X-Evolution-Message type format.
-
- * folder-browser.c (selection_get): Convert the
- X-Evolution-Message clipboard type to whatever format the target
- wants.
- (message_list_drag_data_get): Update because the
- X-Evolution-Message type changed.
- (folder_browser_copy): Same.
- (x_evolution_message_parse): And here too.
-
-2001-07-06 Peter Williams <peterw@ximian.com>
-
- * mail-callbacks.c (composer_postpone_cb): Don't free the psd here --
- it will be freed on the "destroy" signal.
-
- * mail-folder-cache.c (maybe_update): Instead of an idle, use a very
- short timeout in hopes of reducing the number of redundant updates.
-
- * mail-tools.c (mail_tool_uri_to_folder): Only note the folder in the
- cache if we successfully got it.
-
-2001-07-06 Jason Leach <jleach@ximian.com>
-
- * mail-callbacks.c (delete_msg): Select the very next message
- after deleting, not the next undeleted (it can make things jump
- around in annoying ways if you are deleting many messages), bug #4032.
-
- * folder-browser.c: Forgot to commit the "Mark as Important" right
- click menu item.
-
- * message-list.c (message_list_set_folder): Setup the strikeout
- column here (after we've gotten the folder) so we can disable
- strikeouts for vtrash folders, part of bug #2224.
-
-2001-07-06 Dan Winship <danw@ximian.com>
-
- * mail-folder-cache.c (mail_folder_cache_set_folder_browser): Fix
- obvious bug in previous bugfix: Pass "fb" to check_for_fb_match()
- so only the selected folder gets updated, instead of "all folders
- that haven't yet been selected".
-
-2001-07-06 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (populate_folder_context_menu): New function
- to populate the right-click menu for mail folders.
- (component_fn): Pass it to `evolution_shell_component_new()'.
-
-2001-07-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (construct): Add a checkbox for prompting when
- sending a message with an empty subject.
-
- * mail-ops.c (mail_send_message): If filtering fails, return right
- away.
-
- * mail-config.c (mail_config_set_show_preview): Okay, apparently I
- was wrong. Oh well.
- (mail_config_set_thread_list): Fix this one too.
-
-2001-07-05 Peter Williams <peterw@ximian.com>
-
- * mail-vfolder.c (vfolder_uri_to_folder): Add mail folder cache
- hookups.
-
- * Makefile.am: Remove the ridiculuous relic known as
- test-mail. Clean up a bit.
-
- * mail-vfolder.c (vfolder_uri_to_folder): Add mail folder cache
- hookups.
-
-2001-07-05 Peter Williams <peterw@ximian.com>
-
- * mail-folder-cache.c (mail_folder_cache_set_folder_browser):
- Clear the shell view label if mailer loses focus.
-
- * mail-ops.c (do_update_subfolders_rec): Check for NULL url before
- calling folder cache functions.
-
-2001-07-04 Gediminas Paulauskas <menesis@delfi.lt>
-
- * folder-browser-ui.c (message_pixcache): set icon for
- ApplyFilters command.
-
-2001-07-04 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_set_show_preview): Revert Sam's
- changes.
-
- Note: Uhm, g_hash_table_lookup_extended gives us a pointer to the
- original value which we can just change to update the hash table
- without the need to re-insert - it's already there!! Also, you
- don't want to g_hash_table_insert the new value with the same key
- without at least first removing the existing bucket. And, you
- certainly don't want to g_free() the key after you insert it -
- eek!!
-
-2001-07-03 Sam Creasey <sammy@oh.verio.com>
-
- * mail-config.c (mail_config_set_show_preview): Replace value in
- config->preview_hash when it already exists. Old code never
- re-inserted into the hash, just assigned to val -- it's an int
- here, not a real pointer.
-
-2001-07-03 Joe Shaw <joe@ximian.com>
-
- * mail-callbacks.c (expunge_folder): Unset the message being displayed
- when expunging. This makes expunged messages not show in the preview
- pane when they're not there anymore. Fixes #3591.
-
-2001-07-03 Joe Shaw <joe@ximian.com>
-
- * mail-callbacks.c (mail_reply): If msg is NULL, fetch the message
- and requeue a mail_reply call. Fixes bug #3816.
- (requeue_mail_reply): Callback from mail_get_message().
-
-2001-07-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_get_show_preview): Use a better
- GHashTable technique that will hopefully solve some bugs and also
- use _with_default bonobo-config call.
- (mail_config_set_show_preview): No sense in removing the entry
- from the hash table and then re-inserting it. Just reset the
- value.
- (mail_config_get_thread_list): Use the same logic.
- (mail_config_set_thread_list): And again here.
-
-2001-07-03 Peter Williams <peterw@ximian.com>
-
- * mail-folder-cache.c (make_folder_name, make_folder_status):
- Split make_string into these.
- (update_idle): Use (name and status) instead of (wide and thin)
- for the text.
-
-2001-07-03 Jason Leach <jleach@ximian.com>
-
- * folder-browser-ui.c: "Mark as Important" menu thingy here.
-
-2001-07-03 Peter Williams <peterw@ximian.com>
-
- * folder-browser.c (message_list_drag_data_get): Compile fixes.
- #include errno.h and gnome-dialog-utils.h. s/dirname/tmpdir/
-
-2001-07-03 Peter Williams <peterw@ximian.com>
-
- Prevent folders from appearing to have -1 new messages. Prevent
- nonactive folders from updating the title bar. Make the title bar
- update when switching to an already-opened folder.
-
- * mail-folder-cache.c (update_message_counts): Ignore the value
- for 'unread' if it is -1.
- (get_mail_info_receive): Same
- (mail_folder_cache_note_folderinfo): Same.
- (get_folder_info): Initialize 'fb' to NULL.
- (mail_folder_info): Add 'fb' member.
- (mail_folder_cache_note_fb): Change note_message_list to this.
- (update_idle): Only update the ShellView if the active folder
- browser is the same as the one that the MFI references.
- (mail_folder_cache_set_folder_browser): New function. Use it to
- set the active folder browser. NULL is okay.
- (check_for_fb_match): Called from the above. If the MFI has the
- new folder browser as its view, queue an update.
-
- * mail-folder-cache.h: Fix prototypes.
-
- * mail-callbacks.c (create_folders): Check if fi->url is nonnull.
-
- * folder-browser.c (got_folder): Change to use note_fb instead of
- note_messge_list.
-
- * folder-browser-factory.c (control_activate): Set the folder
- browser
- (control_deactivate): Clear it here.
- (fb_get_svi): Kill some inappropriately cut-n-pasted code.
-
-2001-07-03 Dan Winship <danw@ximian.com>
-
- * mail-config.glade: Rename some of the widgets in the news config
- to not conflict with the mail config stuff, so the mail config
- druid will work again.
-
-2001-07-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (message_list_drag_data_get): Use mkdtemp if we
- have it, else use mktemp but make the code safer than it was
- previously.
-
- * mail-display.c (launch_cb): Free the template string if the
- tempdir failed to be created.
-
- * folder-browser.c (message_list_drag_data_get): Hide the URL
- passwd, auth, and params.
- (folder_browser_copy): Same.
-
-2001-07-03 Dan Winship <danw@ximian.com>
-
- * mail-ops.c (filter_folder_filter): Don't pass a dirty exception
- to camel_folder_sync. Fixes an IMAP filtering crash.
-
-2001-07-02 Sam Creasey <sammy@oh.verio.com>
-
- * mail-account-editor-news.c: Added an MailAccountEditorNews, for
- NNTP configuratuion. Based on MailAccountEditor, but stripped.
-
- * Makefile.am: added mail-account-editor-news.c and
- mail-account-editor-news.h to SOURCES if ENABLE_NNTP is defined.
-
- * mail-accounts.c (load_news): Moved this function, and fixed some
- slight brokenness.
- (news_edit): Added functional code using MailAccountEditorNews
- (news_add): Added functional code using news_edit after
- allocation.
-
- * mail-config.glade: news_editor_window widget added. Used by
- MailAccountEditorNews.
-
- * mail-display.c (save_data_cb): Store the pathname used when
- saving messages so that the next save box will default to the
- previous path.
-
- * message-browser.c (message_browser_new): add signal handler for
- size_allocate on the message browser. Thus new windows are size
- as they were last allocated.
- (message_browser_size_allocate_cb): handler to store allocations.
-
- * message-list.c (message_list_setup_etree): connect to the
- info_changed signals for the state of the message_list->tree.
- Save the folder state to disk, so that when additional
- message_lists are created, they are consistant. e.g. the next
- buttons do the same thing in the browser, and in the message
- viewer after changing sorting options.
-
- * subscribe-dialog.c (build_tree): freeze sc->folder model while
- building the tree. Not doing so takes a very long time over 40000
- newsgroups.
-
-2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (construct): Setup the Empty Trash On Exit
- widgets.
-
- * mail-config.c (config_read): Option to emtpy trash on exit.
- (mail_config_write_on_exit): Same.
- (mail_config_set_empty_trash_on_exit): Set the option.
- (mail_config_get_empty_trash_on_exit): Get the option.
-
- * component-factory.c (owner_unset_cb): Empty the trash folders if
- the user set the "empty trash on exit" option.
-
-2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (transfer_msg): Updated for the
- mail_transfer_messages API.
-
- * folder-browser.c (message_list_drag_data_recieved): Update for
- the mail_transfer_messages API.
- (selection_received): Same.
-
- * mail-ops.c (mail_transfer_messages): Renamed from
- mail_do_transfer_messages and also added a callback/data arguments
- since we need it component_factory::xfer_folder.
-
- * component-factory.c (xfer_folder): Use mail_transfer_messages
- instead.
- (destination_folder_handle_drop): Update to pass in a NULL
- callback arg and a NULL data argument to mail_transfer_messages.
-
-2001-07-02 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (save_part): move the saving logic out of save_cb
- so that we can reuse it for the image saving code.
- (save_cb): call save_part.
- (save_url): new function to resolve an save an html url.
- (image_save_as): save function for images and. Add it to the
- link_menu, and add MASK_URL and MASK_SRC to the structure so that
- we cans show the proper menus.
- (html_button_press_event): call get_src as well to find external
- urls references. Add popup masking.
-
-2001-07-02 Peter Williams <peterw@ximian.com>
-
- * README.async: Add a warning about how wrong this document is.
-
-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.
-
-2001-07-02 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c: #include widgets/misc/e-charset-picker.h since
- it was moved there from libgal.
-
-2001-07-02 Peter Williams <peterw@ximian.com>
-
- * importers/evolution-mbox-importer.c (mbox_factory_fn): Kill
- irritating "Returning" g_warning.
-
-2001-07-02 Dan Winship <danw@ximian.com>
-
- * mail-session.c (get_filter_driver): Implement this, based on
- code that used to be in mail-ops.c
-
- * mail-ops.c (mail_load_filter_context, setup_filter_driver):
- Moved into MailSession::get_filter_driver.
- (filter_get_folder): Moved to mail-session.c
- (mail_filter_folder, mail_filter_on_demand, mail_fetch_mail,
- mail_send_mail, mail_send_queue): Remove FilterContext args, use
- camel_session_get_filter_driver.
-
- * mail-send-recv.c (mail_send_receive, mail_receive_uri):
- Remove FilterContexts
-
-2001-07-01 Chris Toshok <toshok@ximian.com>
-
- * subscribe-dialog.c (subscribe_dialog_gui_init): the FolderSearch
- control is in a different dockitem now.
-
-2001-07-01 Dan Winship <danw@ximian.com>
-
- * 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.
-
-2001-06-30 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser-ui.c: Get MailNext/MailPrevious to use
- next-message.png and previous-message.png, respectively. Also
- change Print to use print.png.
-
-2001-06-30 Jon Trowbridge <trow@ximian.com>
-
- * mail-display.c (make_popup_window): Changed to return the
- created window.
- (find_socket): Added. Copied from e-shell-view.c. The fact
- that I'm copying this bit of code all over isn't cool.
- (html_button_press_event): Properly destroy the popup window when
- the widget inside the control is destroyed.
-
- * mail-callbacks.c (addrbook_sender): Added. Implements
- the "Add sender to addressbook" right-click. (Bug #3645)
- (find_socket): Added. Copied from e-shell-view.c.
-
- * folder-browser.c: Added "Add sender to addressbook" to
- context_menu[].
-
- * mail-display.c: (handle_embedded_address_object): Removed.
- (on_object_requested): Removed handling for embedded address
- objects. (Which was obsolete crap.)
-
-2001-06-29 Larry Ewing <lewing@ximian.com>
-
- * mail-display.c (html_button_press_event): remove redundant
- logic.
-
- * mail-callbacks.c (create_msg_composer): make sure we show the
- sig file.
-
-2001-06-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-factory.c (control_deactivate): Turn folder
- syncing back on here so that IMAP folders will sync without
- needing to hit Send & Receive.
-
- * mail-callbacks.c (ask_confirm_for_only_bcc): Throw up the
- confirmation dialog.
- (composer_get_message): If the user only specified Bcc recipients,
- prompt him/her to make sure we should continue and risk the server
- adding an Apparently-To header.
-
- * mail-config.c (config_read): Read in config option for prompting
- when only Bcc recipients are specified.
- (mail_config_write_on_exit): Save the option.
- (mail_config_get_prompt_only_bcc): New.
- (mail_config_set_prompt_only_bcc): New.
-
-2001-06-29 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c (build_auth_menu): Take two authtypes lists,
- "all", and "supported", and make the unsupported authtypes grayed
- out in the menu rather than missing.
- (source_type_changed, transport_type_changed,
- service_check_supported): Update build_auth_menu calls.
-
-2001-06-29 Radek Doulik <rodo@ximian.com>
-
- * mail-account-gui.c (menu_file_save_cb): implemented plain saving
-
-2001-06-28 Radek Doulik <rodo@ximian.com>
-
- * mail-account-gui.c (load_signature): implemented plain load
- (load_signature): use e_msg_composer_get_signature_html
-
-2001-06-28 Peter Williams <peterw@ximian.com>
-
- * mail-ops.c (mail_send_message): Revert fejj's Bcc header removal;
- this unsets the BCC recipients and so doesn't send to the Bcc'd
- people at all.
-
-2001-06-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-send-recv.c (free_send_data): The e_iterator_get() returns
- a gconstpointer and we need a non-const BonoboControl so cast it.
-
- * mail-account-gui.c (mail_account_gui_new):
- gui->check_html_signature is GtkToggleButton not a GtkCheckButton.
-
- * folder-info.c: Added some #include's to supress warnings.
-
-2001-06-28 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-display.c: Fix case of labels in the `link_menu' so that it
- is consistent with that of the other menus in Evolution
- [i.e. "Copy Link Location" instead of "Copy Location" etc.].
-
-2001-06-28 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-display.c (invisible_selection_get_callback): New, signal
- handler for "selection_get" on the GtkInvisible widget we use for
- selections.
- (invisible_selection_clear_event_callback): New, signal handler
- for "selection_clear_event" on the same invisible widget.
- (mail_display_init): Initialize the `selection' and `invisible'
- members. Also, explicitly initialize all the other fields as
- well.
- (mail_display_destroy): Free `selection'. Destroy `invisible'.
- (link_copy_location): Re-implemented to just make the mail display
- become the owner of the primary selection.
- (on_selection_get): Remove `#if 0'ed code.
- (mail_display_new): Remove the `#if 0'ed code that would connect
- selection stuff to the HTML widget.
- (mail_display_new): Connect the signals and add the targets to the
- invisible widget.
-
- * mail-display.h: New members `selection' and `GtkInvisible' in
- `MailDisplay'.
-
-2001-06-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_write_on_exit): Don't bother trying
- to save the passwd if the url is NULL.
-
- * folder-browser.c (vfolder_mlist): Strip the mlist name to fix
- bug #3732.
-
- * component-factory.c (destination_folder_handle_drop): Since we
- have an exception variable, we might as well use it when getting
- folders too.
-
- * folder-browser.c (message_list_drag_data_recieved): Call
- gtk_drag_finish.
-
-2001-06-28 Dan Winship <danw@ximian.com>
-
- * 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
-
-2001-06-28 Radek Doulik <rodo@ximian.com>
-
- * mail-config.c: use new fields everywhere
-
- * mail-config.h: as below
-
- * Mail.idl: added html_signature and has_html_signature
-
-2001-06-28 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (component_fn): Register for the "mailto"
- schema.
- (handle_external_uri_cb): Callback for the "handle_external_uri"
- signal.
- (component_fn): Connect it.
-
-2001-06-27 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (component_fn): Pass NULL as the
- @external_uri_schemas argument to
- `evolution_shell_component_new()'.
-
-2001-06-27 Peter Williams <peterw@ximian.com>
-
- * folder-browser-ui.c: Uncomment EditSelectThread. Yaay!
-
- * mail-callbacks.c (select_thread): New function. Self-explanatory
- name. Implementation is a little hairy.
-
- * mail-callbacks.h: Prototype it here.
-
- * mail-callbacks.c (invert_selection): Here too.
- (select_all): Here too.
-
- * subscribe-dialog.c (subscribe_select_all): Update to use new
- ETree accessors.
- (subscribe_invert_selection): Here too.
-
-2001-06-27 jacob berkman <jacob@ximian.com>
-
- * folder-browser.c (save_cursor_pos): work around an e-tree bug
-
-2001-06-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c: Fixed Cut/Copy/Paste to work - it turns out I
- couldn't share a single GtkInvisible between all the
- FolderBrowser's after all.
-
-2001-06-27 Peter Williams <peterw@ximian.com>
-
- * folder-browser-factory.c (control_deactivate): Change to use
- more reality-based API below.
- Include folder-browser-ui.h too.
- (control_activate): Remove now-unused 'int state'.
-
- * folder-browser-ui.h: Changed prototypes to match changes below.
-
- * folder-browser-ui.c (folder_browser_ui_rm_message): Commented out
- to reflect reality of how this stuff works (you can't actually remove
- the pieces).
- (folder_browser_ui_rm_global): Same.
- (folder_browser_ui_rm_list): Left because here we add the view menus.
- (folder_browser_ui_add_list): ... which were moved here.
- (folder_browser_ui_rm_all): New function, does the job of old ui_rm()
-
-2001-06-26 Peter Williams <peterw@ximian.com>
-
- * folder-browser-ui.c: New file derived from
- folder-browser-factory.c. Contains the Bonobo UI code, split into
- three groups as described in ui/ChangeLog. Also contains the
- GalView stuff and the hookups into the Bonobo UI stuff.
-
- * folder-browser-factory.c: Move most of the UI stuff to
- folder-browser-ui.c.
- (control_activate): Add all three kinds of UI element to this
- folderbrowser.
- (control_deactivate): Remove all three kinds.
-
- * folder-browser-ui.h: New file. Prototypes functions to add UI
- elements to a FolderBrowser.
-
- * Makefile.am: Add folder-browser-ui.{c,h}
-
- * message-browser.c (PARENT_TYPE): Change to BONOBO_TYPE_WINDOW
- (message_browser_destroy): Chain to parent destroy function.
- (set_bonobo_ui): New function. Add the 'message' functions from
- the folder browser to our UI.
- (message_browser_close): BonoboVerbify this.
-
- * message-browser.h: Convert to BonoboWindow.
-
-2001-06-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (my_folder_browser_init): Helps if I spell
- "received" correctly.
-
- * mail-config.c (mail_config_set_thread_list): If the value is
- already in the hash table, first remove it before setting the new
- value so we don't leak.
- (mail_config_set_show_preview): Same.
-
-2001-06-26 Dan Winship <danw@ximian.com>
-
- * mail-mt.c (op_status_timeout): Don't pop up a progress dialog to
- say "I already finished this a while ago".
-
- * component-factory.c (storage_create_folder): Pass the path
- prefix to folder_created so it can add it to the folder tree in
- the right place.
-
- * mail-callbacks.c (folder_created): Take a path prefix.
-
-2001-06-26 jacob berkman <jacob@ximian.com>
-
- * mail-config.c (mail_config_get_show_preview): make ettore stop
- complaining so i can get back to work
-
-2001-06-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (message_rfc822_dnd): No longer returns a
- gboolean and also takes a CamelException.
- (destination_folder_handle_drop): Do better error checking.
-
- * folder-browser.c (my_folder_browser_init): Connect to the
- tree-drag-data-recieved signal.
- (message_list_drag_data_recieved): New function that handles the
- recieving end of the DnD event.
- (x_evolution_message_parse): New convenience function to parse the
- x-evolution-message type so that the cut/paste and DnD code can
- share it.
- (selection_received): Use x_evolution_message_parse().
-
- * mail-config.c (config_read): Read in the default show_preview
- value.
- (mail_config_write_on_exit): Save the default show_preview value
- as well as saving the individual settings for each URI that has
- been changed.
-
-2001-06-25 Joe Shaw <joe@ximian.com>
-
- * folder-browser.c (invisible_destroyed): Check to make sure that
- clipboard_selection is non-NULL before we g_byte_array_free() it.
-
-2001-06-25 jacob berkman <jacob@ximian.com>
-
- * mail-send-recv.c (free_send_data): sync folders after we've
- gotten mail
-
- * folder-browser-factory.c (control_activate): set the ui
- component on the folder browser
- (control_activate): update the view preview item
- (control_deactivate): don't sync the folder here
- (control_deactivate): unset the ui component of the folder browser
-
- * mail-callbacks.c (toggle_flags): stuff from jleach to add an
- importance keybinding
- (mark_as_important): ditto
- (toggle_as_important): again
-
- * mail-config.c (mail_config_get_show_preview):
- (mail_config_set_show_preview): basically a copy of
- get_thread_list() but for the preview pane
-
- * folder-browser.c (folder_browser_destroy): unref the our ui
- component
- (folder_browser_set_ui_component): new function for setting the ui
- component
- (save_cursor_pos):
- (set_cursor_pos): try to show the selected row when the preview
- pane is shown
- (folder_browser_set_message_preview): implement
- (folder_browser_toggle_preview): toggle the preview (duh)
- (on_key_press): add keybindings for marking as important (!), and
- hiding the preview pane (q)
- (etree_key): clean up a little bit, and make enter either show the
- preview pane or open the message
- (fb_resize_cb): only save the paned size if the preview is alread
- shown
- (folder_browser_gui_init): pass ourselves to fb_resize_cb
- (on_message_selected): only add the timeout if the preview is
- shown
-
-2001-06-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (folder_browser_destroy): Unref the invisible
- window that we use for slections.
- (folder_browser_class_init): Init the clipboard_atam type.
- (selection_get): New
- (selection_clear_event): New
- (selection_received): New
- (folder_browser_copy): New function to copy the message-list
- selection.
- (folder_browser_cut): New function to cut the message-list
- selection.
- (folder_browser_paste): New function to paste the message-list
- selection.
- (my_folder_browser_init): Initialize `invisible` if it's NULL else
- ref it - also set some signals on it.
-
- * folder-browser-factory.c: Added verbs for cut/copy/paste.
-
-2001-06-23 Jason Leach <jleach@ximian.com>
-
- * mail-local.c (local_storage_removed_folder_cb): Fixes here for
- removing folders.
-
- * mail-ops.c (remove_folder_get): Some fixes in here too.
-
-2001-06-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (config_read): Duh, we saved the charset as
- "default_charset", not "charset" - no wonder the correct charset
- menu item was never being set.
-
-2001-06-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): Temporarily remove the Bcc
- header before sending the message.
-
-2001-06-21 Jon Trowbridge <trow@ximian.com>
-
- * mail-display.c (html_button_press_event): Remove empty "name"
- property setting from the popup control.
-
-2001-06-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_get_message): Allow the message to be
- sent even if there are no To recipients but only as long as there
- are other recipients defined.
-
-2001-06-21 Jason Leach <jleach@ximian.com>
-
- * component-factory.c (mail_remove_storage): Deregister the
- storage from the shell so it will get removed from the folder
- tree.
-
-2001-06-20 Kjartan Maraas <kmaraas@gnome.org>
-
- * folder-browser.c: More than one accel key is a tad
- confusing.
-
-2001-06-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c: #include "folder-browser-factory.h"
-
- * component-factory.c (mail_remove_storage): New function to
- remove an EvolutionStorage.
-
- * mail-accounts.c (mail_delete): Remove the storage from the
- folder-tree.
- (news_delete): Same.
-
-2001-06-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (destination_folder_handle_drop): Accept
- text/uri-list mime types - this allows us to drag messages from
- Nautilus into an Evolution folder.
-
- * folder-browser.c (message_list_drag_data_get): Do cleanup and
- better error handling.
-
-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.
-
-2001-06-19 Radek Doulik <rodo@ximian.com>
-
- * mail-format.c (write_field_row_begin): add column with &nbsp;
- between header name and value
- (write_field_row_begin): hmm, use just bold &nbsp; as it looks
- better
-
-2001-06-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (destination_folder_handle_drop): Use a nice
- switch statement and use the new enum values.
-
- * mail-callbacks.c (list_add_addresses): Now takes a hash table of
- already-used-recipients so that we don't get duplicates.
- (mail_generate_reply): Pass in a rcpt_hash argument to
- list_add_addresses(). These changes fix bug #1639.
-
-2001-06-18 Dan Winship <danw@ximian.com>
-
- * Makefile.am (evolution_mail_LDADD): Remove DB3_LDADD
-
-2001-06-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c: Change the drop-type "x-evolution-dnd" to
- "x-evolution-message" since we want to be able to DnD more than
- one data type ;-)
-
- * folder-browser.c: Change supported DnD drop types to disclude
- URI_LIST as that seems to crash Nautilus and seems overly
- complicated. Since I am going to be supporting message/rfc822,
- hopefully Nautilus can handle that or else maybe something like
- text/plain.
- (message_list_drag_data_get): Remove the code for URI_LIST.
-
-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.
-
-2001-06-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (my_folder_browser_init): Allow user's to
- "copy" drag & drop rather than just "move".
-
-2001-06-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (destination_folder_handle_drop): Implemented.
-
- * message-list.c (message_list_construct): Don't connect to the
- DnD signals here.
- (message_list_drag_data_get): Removed.
- (add_uid): Removed.
-
- * folder-browser.c (my_folder_browser_init): Connect to DnD signals.
- (message_list_drag_data_get): Implemented.
-
-2001-06-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): Fixed misuse of an uninitialized
- variable.
-
- * component-factory.c (destination_folder_handle_drop): Implemented.
-
- * mail.h: Added prototype for evolution_folder_info_factory_init.
-
- * mail-ops.c (mail_do_transfer_messages): Now takes a const char*
- as the dest_uri. This works better all around since we strdup'd
- the string anyway.
-
-2001-06-15 Dan Winship <danw@ximian.com>
-
- * mail-format.c (mail_format_mime_message): We can't output
- "<html>" and "</html>" here because it gets called recursively to
- display message/rfc822 subparts.
- (mail_format_raw_message): Add padding to match the formatted
- display.
-
- * mail-display.c (mail_display_redisplay): Move rodo's html header
- changes from mail_format_mime_message to here.
-
-2001-06-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c (got_folder): Updated to reflect changes to
- mail_config_[g,s]et_thread_list().
- (folder_browser_toggle_threads): Same.
-
- * folder-browser-factory.c (control_activate): Updated to reflect
- changes to mail_config_[g,s]et_thread_list().
-
- * mail-config.c (mail_config_write_on_exit): Do cleanup when we're
- done.
- (mail_config_set_thread_list): Send in a URI so we can save the
- state on a per-folder basis.
- (mail_config_get_thread_list): Send in a URI so we can retrieve
- the state on a per-folder basis.
-
- * component-factory.c: Setup the accepted_dnd_types. Also added
- skeleton code for DnD.
-
-2001-06-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-factory.c: Add Reply-to-List bonobo verbs.
-
- * folder-browser.c: Add Reply-to-List menu items.
-
- * mail-callbacks.c (mail_reply): Use an enum for specifying the
- reply mode, becaus enow we can reply-to-list.
- (reply_to_list): Implement.
- (reply_to_sender): Use REPLY_SENDER.
- (reply_to_all): Use REPLY_ALL.
- (mail_generate_reply): Handle the different modes.
-
-2001-06-12 JP Rosevear <jpr@ximian.com>
-
- * Makefile.am: Remove folder-info.h until iain checks it in
-
-2001-06-12 Not Zed <NotZed@Ximian.com>
-
- * mail-account-gui.c (source_type_changed): Setup default spool
- location same as for mbox mail retrieval.
-
-2001-06-08 Dan Winship <danw@ximian.com>
-
- * folder-browser-factory.c: fix some commands to match the ui file
- again.
-
-2001-06-07 Iain Holmes <iain@ximian.com>
-
- * GNOME_Evolution_Mail.oaf.in: Add server info for FolderInfo
- Remove server info for the Summary server
-
- * Mail.idl: Add a FolderInfo interface to retreive information about
- a mail folder.
-
- * Makefile.am: Remove the executive summary stuff. Add the folder-info
- files.
-
- * component-factory.c: Remove the mail-summary.h include.
- Remove summary_factory.
- (summary_fn): Remove.
- (component_factory_init): Remove the summary_factory creation.
- Initialise the info_factory.
-
-2001-06-08 Jon Trowbridge <trow@ximian.com>
-
- * mail-ops.c (mail_send_message): Reattach X-Evolution-Account
- information to the message after sending it. This way it can
- be used to set the identity properly if we later Resend the
- message.
-
- * 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.
-
-2001-06-07 Jon Trowbridge <trow@ximian.com>
-
- * mail-ops.c (fetch_mail_fetch): Pass the original source URI
- to camel_filter_driver_filter_mbox.
- (mail_send_message): Pass NULL as the orginal source URI
- to camel_filter_driver_filter_message.
-
-2001-06-06 Jon Trowbridge <trow@ximian.com>
-
- * mail-account-gui.c (source_type_changed): Check that the chain
- of deferences in gui->account->source->url is safe. This was
- causing a segfault when adding a new account if any of the
- existing accounts had their sources set to "None".
- (i.e. gui->account->source == NULL)
-
- * mail-accounts.c (load_accounts): Check that account->source !=
- NULL before dereferencing it.
- (load_accounts): The selection is cleared when the account clist
- is rebuilt (say after a call to add), but no unselect event is
- emitted. Yes, the clist is evil. We work around this by
- explictly calling mail_unselect, our unselect signal handler.
- (Otherwise, the edit and delete buttons remain sensitive and
- accounts_row != 0, but the user can't see which row the dialog
- thinks is selected.)
- (load_news): Check the account->source != NULL before
- dereferencing it.
- (mail_unselect): If an insensitive button in a button box has the
- focus, and if you hit tab, there is a segfault deep inside of gtk.
- This is probably a gtk bug. We work around it by having the add
- button (which is always sensitive) grab the focus on an unselect.
-
-2001-06-05 Jason Leach <jleach@ximian.com>
-
- (Fix bug #3211: Should undelete when flagging a delete message as
- important)
-
- * message-list.c (on_click): When flagging a message as important,
- check to see if it's flagged as deleted, if so, undelete it.
-
- (Fix bug #314: Display URLs in statusbar on mouseover)
-
- * mail-display.c (html_on_url): New function, callback for
- GtkHTML's "on_url" signal.
-
-2001-06-05 Radek Doulik <rodo@ximian.com>
-
- * mail-format.c: make HTML and plain mails to have the same
- boundary
-
-2001-06-03 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (evolution_mail_LDADD): Move `$(DB3_LDADD)' before
- libeutil.
-
-2001-06-01 Federico Mena Quintero <federico@ximian.com>
-
- * folder-browser.h (FolderBrowser): Added fields for the
- GalViewMenus and GalViewCollection, since we need to keep them
- around while the component is active.
-
- * folder-browser-factory.c (folder_browser_setup_view_menus): Plug
- leaks; unref the spec and factory. Set the view collection and
- the view menus on the FolderBrowser object.
- (folder_browser_discard_view_menus): New function.
- (control_deactivate): Discard the menus.
-
- * folder-browser.c (folder_browser_destroy): Destroy the view
- collection and the view menus.
-
-2001-06-01 Ettore Perazzoli <ettore@ximian.com>
-
- * Makefile.am (evolution_mail_LDADD): Add `$(DB3_LDADD)'.
-
-2001-06-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_save): Save the pgp and
- smime settings.
- (mail_account_gui_new): Setup the pgp and s/mime page (but disable
- the s/mime frame if we are not compiled with s/mime support).
-
- * mail-config.c (account_copy): Updated to save extra pgp and
- smime options.
- (account_destroy): Free draft/sent folder info and also the new
- pgp/smime keys.
- (config_read): Read in the pgp and s/mime config options.
- (mail_config_write): Save the account pgp and smime options.
-
-2001-06-01 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (source_type_changed): Call
- build_extra_conf() here too. This is when we REALLY want to call
- it anyway, not on switch-page because then we'd lose any data on
- the Receive Options page if we never switch to that page before
- applying the changes.
-
- * mail-account-editor.c (construct): Don't connect to the
- switch-page event, instead just call build_extra_conf() here with
- the source->url.
-
-2001-06-01 Dan Winship <danw@ximian.com>
-
- * mail-config.c (config_read): Fix dumb misuse of g_get_charset.
-
-2001-05-31 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_multipart_signed): Removed the code to
- check for the validity of an S/MIME part. Stuff works differently
- now.
-
- * mail-crypto.c: Rewrote how the S/MIME stuff is going to work.
-
-2001-05-30 Dan Winship <danw@ximian.com>
-
- * mail-config.glade: Rename the "PGP" page back to "Other" and add
- a "default charset" option menu.
-
- * mail-config.c (config_read, mail_config_write_on_exit,
- mail_config_get_default_charset, mail_config_set_default_charset):
- Handle "default charset".
-
- * mail-accounts.c (construct): Fill in the "default_charset" menu
- with an e_charset_picker menu.
- (charset_menu_deactivate): Update the default charset.
-
-2001-05-29 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (list_add_addresses): Take another argument to
- ignore a certain address.
- (mail_generate_reply): Ignore references to the reply-to address
- when constructing the Cc list.
-
-2001-05-29 Jason Leach <jleach@ximian.com>
-
- * message-browser.c (message_browser_new): one-line fix for bug
- #2536: File->Close in message viewer doesn't work.
- (message_browser_new): Also replaced like 4 lines of code with a
- one-liner featuring gnome_app_create_toolbar_with_data().
-
-2001-05-28 Jason Leach <jleach@ximian.com>
-
- * mail-local.c (load_metainfo): Don't need to check if (foo!=NULL)
- before doing an xmlFreeDoc().
-
-2001-05-28 Dan Winship <danw@ximian.com>
-
- * mail-format.c (write_text_header): Fix a bug that could cause a
- crash on messages with an empty subject. Oops.
-
-2001-05-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c: Removed the etable spec string.
- (message_list_construct): Load the etable spec from a file.
-
- * folder-browser-factory.c: Load the etable spec from the file,
- not a string.
-
- * Makefile.am: Add message-list.etspec to be installed.
-
- * message-list.etspec: New file containing the ETable file
- specification.
-
- * mail-config.h: Prototype evolution_mail_config_get_type.
-
-2001-05-27 Dan Winship <danw@ximian.com>
-
- * folder-browser-factory.c: #include
- "evolution-shell-component-utils.h" rather than "e-gui-utils.h"
- for e_pixmaps_update.
-
- * subscribe-dialog.c: Likewise.
-
-2001-05-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (try_inline_pgp_sig): Fix to work properly.
- (handle_multipart_signed): Fixed a bug that caused some
- multipart/signed messages to be handled by the multipart_mixed
- handler.
-
-2001-05-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-factory.c: Added callbacks for Next/Previous
- Unread and Next/Previous Flagged message.
-
- * mail-callbacks.c (previous_flagged_msg): Implemented.
- (next_flagged_msg): Implemented.
-
-2001-05-26 Dan Winship <danw@ximian.com>
-
- * mail-ops.c (mail_send_message, transfer_messages_transfer,
- set_offline_do): When unreffing a folder we got ourselves (as
- opposed to one passed in by the caller), sync before unreffing,
- since we might be holding the only reference to it.
- (mail_refresh_folder): New op, like mail_sync_folder, but does a
- camel_folder_refresh_info instead.
-
- * folder-browser-factory.c (control_activate): Call
- mail_refresh_folder, not mail_sync_folder. (The goal is to see new
- messages: sync used to work with imap because imap_sync was
- broken, but it doesn't work for that any more.)
-
-2001-05-25 Peter Williams <peterw@ximian.com>
-
- * Makefile.am: Reference libeshell.la instead of libeshell.a.
-
-2001-05-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-factory.c (control_activate): Disable Resend on
- non-Sent folder FolderBrowsers. Thanks to Wayne Davis for this
- patch.
-
- * component-factory.c (xfer_folder): This code should be correct
- now. Still waiting on the shell to do it's job of creating the
- metadata xml file in the destination folder though.
-
-2001-05-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (message_list_select_uid): g_strdup the uid into
- the ml->cursor_uid.
-
- * message-browser.c (message_browser_forward_msg): Use the default
- forward style.
-
-2001-05-24 Dan Winship <danw@ximian.com>
-
- * mail-identify.c (mail_identify_mime_part): If the message data
- is online, sniff the data for a MIME type first, and use the
- filename second. Makes it more reliable, and deals with the
- specific case of "application/octet-stream; name=foo.vcf" which
- gnome-vfs will identify as vcalendar, but which can also be a
- vcard.
-
-2001-05-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (try_inline_pgp_sig): Only write the message up to
- (but not including) the attached signature block.
-
-2001-05-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (composer_postpone_cb): Don't free the
- folder-info here, instead have mail_append_mail() call our new
- function, append_mail_cleanup() which'll free the
- folder-info. This fixes the problem of send-later segfaulting.
-
- * message-list.c (message_list_set_folder): Make the message-list
- respect the "hide deleted messages" setting. Fixes bug #2248.
-
- * component-factory.c (xfer_folder): New function that the shell
- component calls to copy/move a folder.
- (component_fn): Set the xfer_folder_fn argument.
-
- * mail-ops.c (mail_remove_folder): New async function to remove a
- folder. God knows if it does what the ShellComponent needs or not
- yet.
- (mail_xfer_folder): Yet another yummy async function to move or
- copy a folder to a new location.
-
- * component-factory.c (storage_remove_folder): New function for
- removing folders.
- (remove_folder): New function that the shell component calls to
- delete a folder.
- (component_fn): Set the remove_folder_fn argument.
-
-2001-05-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_write_on_exit): Save the
- message-display style.
- (config_read): Read the message-display style.
-
-2001-05-22 Dan Winship <danw@ximian.com>
-
- * mail-display.c (on_url_requested): If http mode is
- HTTP_SOMETIMES, use e_book_query_address_locally to check the From
- address and load images if it's found.
-
- * mail-config.c (config_read): Default http_mode to
- MAIL_CONFIG_HTTP_SOMETIMES. Fix typo to make default forward style
- actually work.
-
-2001-05-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * Makefile.am: Use MAILER_CFLAGS and MAILER_LIBS.
-
- * message-browser.c (message_browser_folder_loaded): Instead of
- calling message_list_select_uid() here, instead connect to the
- "message_list_loaded" signal since the message-list is not built
- yet at this point.
- (message_browser_message_list_built): Call
- message_list_select_uid() here instead.
-
- * message-list.c: Lets have a new signal, MESSAGE_LIST_BUILT, that
- gets emitted when the message-list has finished being built by one
- of the built_*() functions.
- (message_list_class_init): Setup the signal stuff.
- (regen_list_regened): Emit the signal here (should this perhaps be
- moved into each of the build_*() functions instead?).
-
-2001-05-21 Kjartan Maraas <kmaraas@gnome.org>
-
- * mail-local.c: Mark a string for translation.
-
-2001-05-18 Jon Trowbridge <trow@ximian.com>
-
- * Makefile.am (evolution_mail_LDADD): Added libebook.la (which is
- now required by the composer.)
-
-2001-05-17 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (composer_postpone_cb): mark Outbox messages as
- read.
-
-2001-05-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_write_authenticity): New convenience
- function for all signature verification functions to use to
- display whether or not the signed part was authentic.
- (try_inline_pgp_sig): Use mail_write_authentic().
- (handle_multipart_signed): Add code to handle S/MIME
- multipart/signed parts and also use mail_write_authenticity().
-
-2001-05-17 Dan Winship <danw@ximian.com>
-
- * mail-config.glade: add new icons from jimmac.
-
-2001-05-16 Dan Winship <danw@ximian.com>
-
- * mail-format.c (mail_format_raw_message): add
- E_TEXT_TO_HTML_ESCAPE_8BIT to the flags
-
-2001-05-16 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (folder_browser_is_drafts,
- folder_browser_is_sent, folder_browser_is_outbox): Functions to
- determine if a folderbrowser is one of the drafts, sent, or outbox
- folders.
- (got_folder): Pass TRUE for the "outgoing" flag to
- message_list_set_folder if this is a Sent, Drafts, or Outbox
- folder.
-
- * message-list.c (message_list_set_folder): Take a flag saying
- whether or not the folder is an "outgoing" folder.
- (message_list_setup_etree): Ditto. Use that rather than a
- hardcoded list of foldernames for deciding whether to swap From
- and To in the default layout.
-
- * mail-config.c (mail_config_folder_to_cachename): Make IMAP
- folders have unique cachenames rather than only one per store, so
- that IMAP Sent and Drafts folders don't get forced into having the
- same layout as the INBOX.
-
- * mail-callbacks.c: (is_sent_folder, is_drafts_folder): Gone.
- Replaced with simpler folder_browser_is_* routines.
- (edit_msg, resend_msg, open_msg): Use folder_browser_is_*
- routines.
-
- * mail-local.c (reconfigure_clicked): Update call to
- message_list_set_folder.
-
-2001-05-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c (mail_crypto_is_smime_v3_signed): Removed (this
- now exists in camel/camel-smime.c).
- (mail_crypto_is_pkcs7_mime): Same.
- (mail_crypto_smime_part_sign): new
- (mail_crypto_smime_part_verify): new
- (mail_crypto_smime_part_encrypt): new
- (mail_crypto_smime_part_decrypt): new
- (mail_crypto_pgp_mime_part_sign): Added code to set an exception
- if the context fails to be created.
- (mail_crypto_pgp_mime_part_verify): And here...
- (mail_crypto_pgp_mime_part_encrypt): Same.
- (mail_crypto_pgp_mime_part_decrypt): And here too.
-
-2001-05-16 Dan Winship <danw@ximian.com>
-
- * mail-display.c (mail_display_redisplay): Deal with full-header
- mode in addition to source mode
-
- * mail-format.c (write_field_row_begin): Add WRITE_NOCOLUMNS flag
- to write the header in a single table cell rather than two. Output
- the second columns's "<td>" when not in NOCOLUMNS mode. Don't
- include the ":" in the passed-in header name.
- (write_date, write_address): Update for write_field_row_begin
- changes.
- (write_text_field): Genericified and updated from write_subject.
- (write_headers): Deal with both normal and full-header mode.
-
-2001-05-15 Dan Winship <danw@ximian.com>
-
- * mail-display.c (on_url_requested): Load http images if the user
- has force-loaded images too.
- (mail_display_redisplay): Update for normal/headers/source changes.
- (mail_display_load_images): New. Force HTTP image loading for the
- current message.
-
- * mail-config.c (mail_config_get_message_display_style,
- mail_config_set_message_display_style): Updated and renamed from
- mail_config_{get,set}_view_source
-
- * mail-callbacks.c (load_images): New.
-
- * folder-browser.c (folder_browser_set_message_display_style):
- Renamed and updated from folder_browser_toggle_view_source.
-
- * folder-browser-factory.c (verbs): Add ViewLoadImages.
- (control_activate): Update for normal/headers/source change to
- radio group.
-
-2001-05-15 Dan Winship <danw@ximian.com>
-
- * folder-browser-factory.c (verbs): Update for changes in
- evolution-mail.xml (many commands were renamed to better match the
- current menu layout).
- (pixcache): Refer to commands via their paths in /commands/
- rather than hardcoding their menu paths.
-
-2001-05-14 Jon Trowbridge <trow@ximian.com>
-
- * mail-search.c (mail_search_construct): Put frame around dialog
- vbox, put mail subject in that frame's label. (Patch by Duncan.)
- (mail_search_set_subject): Break out subject-setting code.
- Truncate long subjects with ellipses.
-
-2001-05-14 Duncan Mak <duncan@ximian.com>
-
- * mail-search.c (mail_search_construct): set the dialog's
- window_icon to jimmac's new find_message.xpm.
-
-2001-05-13 Iain Holmes <iain@ximian.com>
-
- * Makefile.am: Make the LDADD line longer so it actually compiles
- everything correctly.
-
-2001-05-14 Dan Winship <danw@ximian.com>
-
- * mail-config.glade: Split "Other" page into three pages, Display,
- Composer, and PGP. Add HTML image stuff on the Display page and
- default forward style on the Composer page.
-
- * mail-config.c (mail_config_get_default_forward_style,
- mail_config_set_default_forward_style): User-specified default
- style for forwarding messages.
- (config_read, mail_config_write_on_exit): Deal with forward style.
-
- * mail-accounts.c: Handle HTML image display options and default
- forward style.
-
- * mail-callbacks.c (forward): New. Forward in the user-selected
- default style.
- (forward_inline, forward_quoted): Simplify these some. Remove the
- fallback to forward attached when forwarding multiple messages: it
- should just forward the multiple messages inline or quoted in
- those cases. (Which it doesn't yet, but that's a bug.)
-
- * folder-browser.c (context_menu): Remove "Forward inline" and
- make "Forward" call forward() rather than forward_attached().
-
- * folder-browser-factory.c: Update command/menu/toolbar/pixmap
- gunk for the "MessageForwardAttached" vs "MessageForward" split.
-
- * mail-session.c (mail_session_get_type):
- * mail-format.c (format_mime_part):
- * mail-account-gui.c (setup_service): Fix warnings.
-
- * mail-mlist-magic.c: Remove this... it's not used any more.
-
- * folder-browser.c:
- * message-browser.c: Remove references to mail-mlist-magic.h
-
-2001-05-14 Jon Trowbridge <trow@ximian.com>
-
- * folder-browser.c (folder_browser_config_search): Use secondary
- searches here, so that we control the interference between the two
- bits of searching UI.
-
-2001-05-13 Jon Trowbridge <trow@ximian.com>
-
- * mail-search.c (mail_search_construct): Destroy the MailSearch
- dialog if the underlying MailDisplay is destroyed. I don't like
- the way that label in the dialog with the message subject in it
- looks, so I've #ifdef-ed it out for now. Center the Matches
- label --- it makes the dialog look more balanced, I think.
- (dialog_clicked_cb): Changed to reflect adjusted
- ESearchingTokenizer API, using primary searches.
- (toggled_case_cb): Use the primary search API.
-
- * e-searching-tokenizer.c: Make searching routines utf8-friendly.
- Rationalize how the match begin/end markup is handled; allow for
- begin/end markup that varies by search. Add concept of primary and
- secondary matching, to disentangle possible interactions between
- search-bar searches and search-dialog searches.
-
-2001-05-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (mail_local_storage_shutdown): Get rid of this - we
- don't need it.
-
- * component-factory.c (owner_unset_cb): Don't unref the LocalStore
- - we don't own a ref on it!!
-
-2001-05-12 Duncan Mak <duncan@ximian.com>
-
- * mail-search.c (begin_cb): Updates the subject on refresh and
- sets subject to "Untitled Message" if subject is NULL.
- (mail_search_construct): Moved msg_subject to its own GtkLabel,
- sets subject to "Untitled Message" if subject is NULL. Give focus
- to entry by default. Made <enter> in entry run
- dialog_clicked_cb by setting gnome_dialog_editable_enters.
-
-2001-05-12 Gediminas Paulauskas <menesis@delfi.lt>
-
- * folder-browser-factory.c: load pixmaps for MessageCopy and
- MessageForwardAttached. Thanks Wayne Davis <wfdavis@seas.upenn.edu>
- for a patch.
-
-2001-05-11 Dan Winship <danw@ximian.com>
-
- * mail-display.c (load_http): callback to use GNOME-VFS to load
- http data.
- (on_url_requested): Handle http: URLs that refer to either MIME
- parts or web data.
- (mail_display_redisplay_when_loaded): Moved out of
- mail_content_loaded and made more generic.
-
- * mail-format.c (add_url): Handle two different kinds of URLs
- (URLs that point to CamelMimeParts and URLs that point to
- GByteArrays).
- (mail_content_loaded): Use mail_display_redisplay_when_loaded.
- (format_mime_part): Renamed from "call_handler_function". Also,
- record Content-Location if the part has one. (This is not yet 100%
- correct: it doesn't deal with relative URLs at all.)
- (handle_text_html): Use Content-Location URL rather than
- Content-ID, when available (will help deal with relative URLs once
- GtkHTML supports that better).
- (etc): Update for changes.
-
- * mail-config.c (mail_config_get_http_mode,
- mail_config_set_http_mode): get/set HTTP image downloading mode.
- (config_read, mail_config_write_on_exit): save/load that data.
-
-2001-05-11 JP Rosevear <jpr@ximian.com>
-
- * mail-importer.h: add proto
-
- * mail-importer.c (mail_importer_uninit): release and unref the
- local storage
-
- * mail-local.c (mail_local_store_finalize): use
- bonobo_object_release_unref rather than doing Bonobo_Unknow_unref
- and a corba release
- (register_folder_registered): "sink" the local_store ref to
- prevent circular ref
- (mail_local_storage_shutdown): unref the local store
-
- * mail-local.h: new proto
-
- * component-factory.c (owner_unset_cb): uninit the importer and
- shutdown the local storage
-
-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 :-)
-
-2001-05-11 Martha Burke <martha@ximian.com>
-
- * gui/Makefile.am: sanitize LD_ADDS and CFLAGS so the libtool
- lines are shorter (fixes problem on solaries due to sed)
-
-2001-05-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vfolder.c (vfolder_edit): Don't allow multiple copies of
- this to be run at a time.
-
- * mail-callbacks.c (providers_config): Don't allow multiple copies
- of this to be run at a time.
- (manage_subscriptions): Same, but this was a tad more kludgy since
- we don't gnome_dialog_run_and_close() this one. I had to make the
- widget a semi-global variable. yuck :\
- (filter_edit): Same.
-
-2001-05-11 Jon Trowbridge <trow@ximian.com>
-
- * e-searching-tokenizer.c (e_searching_tokenizer_new):
- Remove a snippet of debugging code I left in by mistake.
-
-2001-05-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (forward_inlined): If the cursor_uid is NULL,
- then we can't forward anything so just return.
- (forward_quoted): Same.
-
-2001-05-10 Jon Trowbridge <trow@ximian.com>
-
- * folder-browser.c (folder_browser_config_search): Use the
- ESearchingTokenizer to highlight search matches for folder-level
- searches. Still mildly broken, but it works for the simple cases.
-
- * mail-display.c (mail_display_new): Use our ESearchingTokenizer
- for the mail display GtkHTML widget.
-
- * mail-search.c (dialog_clicked_cb): Use the ESearchingTokenizer to
- highlight search matches.
- (mail_search_construct): Add a match count to the search dialog.
-
- * e-searching-tokenizer.c
- (e_searching_tokenizer_set_search_string): Added. A custom HTML
- tokenizer that does highlighting of search strings.
-
- * mail-config.c: No, we don't want to include
- bonobo-running-context.h... just bonobo-context.h.
-
-2001-05-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c: Fix some compiler warnings by including the
- correct bonobo headers and by using the correct bonobo types.
- (config_read): Some fixes so that we can never have an empty
- string as a URL.
-
-2001-05-10 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (on_key_press): Don't advance to the next
- undeleted message after "Delete"...
-
- * mail-callbacks.c (delete_msg): ...instead, do it here, whether
- the user used Delete, Alt+D, or the toolbar. (But only if they
- only deleted a single message.)
-
- * message-list.c (message_list_select): Don't clear the display on
- failure.
- (build_tree): Clear the display when the currently-selected
- message stops existing and we don't have an obvious message to
- select instead of it. (Eg, when deleting the last message with
- "hide deleted messages" set, or expunging while a deleted message
- is selected.)
-
-2001-05-09 Dan Winship <danw@ximian.com>
-
- * mail-offline-handler.c: New file, started by Ettore, finished by
- me, to implement the GNOME_Evolution_Offline interface.
-
- * Makefile.am (evolution_mail_SOURCES): Add
- mail-offline-handler.[ch]
-
- * mail-ops.c (mail_store_set_offline): Set a store online or
- offline.
-
- * mail-send-recv.c (auto_timeout): Don't run auto-check-for-mail
- while the session is offline.
-
- * component-factory.c (component_fn): Set up offline handler.
-
-2001-05-09 Christopher James Lahey <clahey@ximian.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn): Made a const
- char * here.
-
-2001-05-08 Iain Holmes <iain@ximian.com>
-
- * mail-config.[ch]: Moved all references to the Bonobo stuff into the .c file
-
-2001-05-08 Iain Holmes <iain@ximian.com>
-
- * mail-callbacks.c (filter_edit): Set the title of the dialog.
-
- * GNOME_Evolution_Mail.oaf.in: Add a reference for the MailConfig
- interface stuff.
-
- * Mail.idl: Add the MailConfig interface, and a MailFilter interface.
-
- * component-factory.c (component_factory_init): Call
- evolution_mail_config_factory_init.
-
- * mail-account-gui.c (setup_service): Just return if url == NULL,
- don't crash.
-
- * mail-config.c: #include bonobo-object.h, #include Mail.h and define
- the Config factory IID.
- Implement the MailConfig interface with a BonoboObject.
- (impl_GNOME_Evolution_MailConfig_addAccount): Convert the CORBA struct
- into the correct MailConfig structures and add the account.
- (evolution_mail_config_class_init): Initialise the class.
- (evolution_mail_config_init): This function is intentionally left blank.
-
- (evolution_mail_config_factory_fn): Create an EvolutionMailConfig object
- and return it.
- (evolution_mail_config_factory_init): Set up the bonobo factory.
-
- * mail-config.h: #include bonobo-xobject.h and Mail.h
- Declare the object structures.
-
- * importers/Makefile.am: Remove the intelligent importers.
-
- * importers/evolution-mbox-importer.c (folder_created_cb): Callback
- from when the folder is created. Opens the folder and unrefs the
- listener.
- (load_file_fn): Create the folder if it doesn't exist.
-
-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().
-
- * mail-callbacks.c (edit_msg_internal): Free the UIDs if the user
- decides to not go through with editing all the messages he
- selected.
- (resend_msg): If the user attempts to resend more than 10
- messages, make sure he really means it.
- (do_resend_messages): Richard Zach feels that "Resend" should open
- the message(s) in a composer since he might want to edit at least
- the recipients (maybe he needs to resend because the message
- bounced the first time) and Ettore wants pretty much the same
- thing. This makes "Resend" basically the same as "Edit" but for
- previously sent messages, whereas "Edit" is only for Drafts.
-
-2001-05-08 Gediminas Paulauskas <menesis@delfi.lt>
-
- * mail-search.c: convert search entry to utf8.
-
- * mail-local.c: d() debugging message.
-
- * mail-send-recv.c: replace " ..." with "..."
-
- * Makefile.am: removed EVOLUTION_VERSION.
-
-2001-05-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c: s/HAVE_NSS/HAVE_SSL for the SSL checkbox
- stuff.
-
-2001-05-07 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (my_folder_browser_init): Connect to
- key_press_event on the GtkHTML widget.
- (etree_key): Only handle space/backspace here, pass the rest off
- to on_key_press.
- (on_key_press): Handle Delete/N/P/Menu in either MessageList or
- MailDisplay.
-
- * message-list.c (message_list_select): Grab focus if we don't
- have it.
-
-2001-05-03 Dan Winship <danw@ximian.com>
-
- * message-list.c: #include <camel/camel-file-utils.h>
-
- * mail-ops.c (get_folderinfo_get):
- * subscribe-dialog.c (build_tree): Update for
- camel_store_get_folder_info prototype change.
-
- * mail-format.c (handle_text_plain_flowed): Improve more on the
- fix from the other day: the first level of indentation adds blank
- lines, but further levels don't...
-
-2001-04-30 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (folder_browser_destroy): Unhook event handlers
- before syncing the folder, since the folder browser will have been
- destroyed by the time the sync thread completes and calls the
- signal handlers.
-
-2001-04-29 Dan Winship <danw@ximian.com>
-
- * mail-format.c (handle_text_plain_flowed): Mojo this a bit so
- that "\n\n>" gets translated to "<br><blockquote>" rather than
- "<br><br><blockquote>", since the transition to blockquote mode
- creates a blank line itself. Makes Mozilla-generated flowed
- replies look better.
-
-2001-04-27 Dan Winship <danw@ximian.com>
-
- * mail-session.c: Renamed from session.c and made to be a subclass
- of CamelSession.
-
- * mail-mt.c (mail_user_message): Renamed from mail_get_accept and
- made more general-purpose, to implement the new
- camel_session_alert_user.
-
-2001-04-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * main.c (main): No need to camel_shutdown() anymore...
-
- * mail-callbacks.c (next_msg): Don't filter on Seen status.
- (previous_msg): Same.
- (next_unread_msg): New function that does what the old callback
- next_msg callback did (only better named).
- (previous_unread_msg): Same.
-
- * message-list.c (hide_load_state): Updated to use camel-file-util
- routines.
- (hide_save_1): Same.
- (hide_save_state): And here too.
-
-2001-04-26 Dan Winship <danw@ximian.com>
-
- * Makefile.am (INCLUDES): Remove UNICODE_CFLAGS
-
- * mail-format.c (handle_text_plain_flowed): Use <font color=...>
- to mark citations rather than italicizing them, which has never
- looked very nice. Now this is more consistent with the non-flowed
- case.
-
-2001-04-26 Jon Trowbridge <trow@ximian.com>
-
- * folder-browser-factory.c: Added "MessageSearch" verb.
-
- * mail-callbacks.c (search_msg): Added search callback.
- (are_you_sure): Added some casts to fix compiler warnings.
-
- * mail-search.c: Added. A simple search-in-message widget,
- that uses GtkHTML's searching capabilities.
-
-2001-04-25 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (are_you_sure): New foot-shooting-prevention
- helper function.
- (edit_msg_internal, view_msg): If the user has more than 10
- messages selected, ask before opening them all in separate
- windows, to protect against misclicks/typos after "select all"
- (which we've had at least two reports of now).
-
-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
-
-2001-04-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser.c: Added a new signal, "message_loaded" that gets
- emitted when the message has been loaded and set on the
- mail_display.
- (folder_browser_class_init): Define the "message_loaded" signal
- stuff.
- (done_message_selected): Emit the "message_loaded" signal here.
-
- * message-browser.c (message_browser_next_msg): Do our own
- message-list manipulation. We want the next message, not the next
- unread message.
- (message_browser_prev_msg): Same here but for previous.
- (message_browser_new): Connect to the folder browser's
- "message_loaded" signal.
- (message_browser_folder_loaded): Don't connect to the
- message-list's "message_selected" signal.
- (message_browser_message_loaded): Nw callback which replaces the
- old message_browser_message_selected callback's functionality.
-
-2001-04-24 Dan Winship <danw@ximian.com>
-
- * folder-browser.c: Add accelerators to the context menu.
- (on_right_click): Use e_tree_get_cell_geometry and a
- GtkMenuPositionFunc when responding to a Menu-key press so we can
- line the menu up with the selected row rather than the cursor.
-
- * message-browser.c: include <gal/util/e-util.h> for E_MAKE_TYPE.
-
-2001-04-23 Jon Trowbridge <trow@ximian.com>
-
- * mail-display.c (html_button_press_event): Check for mailto:
- links, and pop up our mail address menu when we find one.
- (make_popup_window): The main piece of code (ignoring a zillion
- little callbacks) to pop up our windows with reasonable semantics
- for having them close automatically.
- (mail_text_write): Enable converting addresses to mailto links
- in message bodies.
-
- * mail-format.c (write_address): Simplify code, removing Radek's
- <DATA> hacks. Write out addresses as mailto: links.
-
-2001-04-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (do_view_message): Use the message-browser
- widget rather than the mail-view window.
-
- * mail-view.c: Removed.
-
- * folder-browser.c: Added a folder_loaded signal.
-
- * message-browser.[c,h]: New window to solve all our message
- browsing needs. This replaces mail-view.c.
-
- * message-list.c (message_list_select_uid): New function needed by
- the new message-browser window.
-
-2001-04-23 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (save_msg): Append a "/" to the result of
- g_get_home_dir so gets the default dir it was supposed to.
-
-2001-04-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): Lets do proper refcounting on
- the sent-folder. Also, g_strdup() the sent_folder_uri since we
- later free it. If we don't, then we get lovely corrupt memory.
-
- * mail-crypto.c (mail_crypto_pgp_mime_part_sign): Make sure we
- have a context before we try and use it.
-
-2001-04-22 Gediminas Paulauskas <menesis@delfi.lt>
-
- * folder-browser.c, mail-autofilter.c, mail-callbacks.c,
- mail-ops.c, mail-summary.c, mail-vfolder.c: use system =
- EVOLUTION_DATADIR "/file" instead of g_strdup_printf. Rename
- userrules to user (and system) to be consistent.
-
- * mail-send-recv.c: set window icon to send-receive.xpm
-
-2001-04-21 Gediminas Paulauskas <menesis@delfi.lt>
-
- * mail-summary.c: translate "Mail summary".
-
-2001-04-20 Dan Winship <danw@ximian.com>
-
- * mail-config-druid.c (make_default_account): Convert the result
- of g_get_real_name() from the locale charset to UTF8. Noted by
- Petter Sundlöf (NOT "Petter Sundl_" :)
-
-2001-04-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_set_pgp_type): Use a CamelPgpType.
- (mail_config_get_pgp_type): Return a CamelPgpType.
- (auto_detect_pgp_variables): auto-detect the user's pgp settings.
-
-2001-04-20 Dan Winship <danw@ximian.com>
-
- * mail-format.c (handle_text_plain): Fix a dumb thinko in my 04-11
- patch.
-
-2001-04-20 Kjartan Maraas <kmaraas@gnome.org>
-
- * mail-ops.c: (send_mail_desc): Convert subject from utf8
- before passing it on.
-
-2001-04-20 Gediminas Paulauskas <menesis@delfi.lt>
-
- * mail-display.c: #if 0'd out my not-working selection code
-
-2001-04-19 Dan Winship <danw@ximian.com>
-
- * mail-format.c (mail_format_raw_message): Make this more raw:
- don't do URLs and citations.
-
-2001-04-18 Dan Winship <danw@ximian.com>
-
- * session.c (request_callback): Don't need to dup the string: the
- relevant gnome-dialog routine already does.
-
- * message-list.c (message_list_destroy): Free the uid_nodemap.
- (hide_save_state): Free the filename when we're done.
-
-2001-04-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (is_sent_folder): Implemented.
- (resend_msg): Use is_sent_folder().
-
-2001-04-17 Dan Winship <danw@ximian.com>
-
- * mail-mt.c (mail_msg_check_error): Fix a memory leak.
-
-2001-04-16 Ettore Perazzoli <ettore@ximian.com>
-
- * importers/Makefile.am (INCLUDES): Add `$(EXTRA_GNOME_CFLAGS)'
- here.
-
-2001-04-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mark_all_as_seen): Mark the messages as seen,
- not unseen.
- (is_drafts_folder): New function to attempt to determine if a
- folder is a drafts folder.
- (open_msg): Use is_drafts_folder().
- (edit_msg): And here.
- (edit_msg_internal): New function that doesn't do the drafts
- checking and is only to be used internally. This should save us
- from having to doubly-check a folder to see if it's a drafts
- folder when doing an Open on the message.
- (open_msg): Call edit_msg_internal once we've established that the
- folder is a drafts folder.
-
-2001-04-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c (mail_crypto_pgp_mime_part_verify): Only use
- non-NULL contexts.
- (mail_crypto_pgp_mime_part_encrypt): Same.
- (mail_crypto_pgp_mime_part_decrypt): And here too.
-
- * mail-format.c (try_inline_pgp_sig): Make sure to not use the
- context if it is NULL.
- (decode_pgp): Same.
-
- * folder-browser-factory.c: Added stuff for filtering/vfoldering
- on mailinglists.
-
-2001-04-13 Dan Winship <danw@ximian.com>
-
- * Makefile.am (evolution_mail_LDADD): Remove some redundant LIBS
- variables... purify complained that the command line was too
- long. :-}
-
- * mail-account-gui.c: Plug leaks.
-
- * mail-display.c (on_url_requested): close the html stream on
- error too.
-
- * mail-ops.c (fetch_mail_fetch): Move a line around that probably
- doesn't affect anything, but it's correct.
-
- * session.c (auth_callback): Plug leak.
-
- * mail-send-recv.c (receive_status): Initialize "now".
-
-2001-04-13 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (on_cursor_activated_cmd): Only activate the
- message if the cursor has moved.
-
-2001-04-12 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (e_mail_address_new): Updated this function to be
- a correct full ordering.
- (ml_has_get_node_by_id, ml_get_node_by_id): Implemented these
- functions.
- (find_next_undeleted): Changed this to find next sorted undeleted
- message. Also, changed it so that if the current message is not
- deleted, it returns NULL.
- (build_tree, build_flat): Changed these to only set the cursor if
- the cursor is changed.
-
- * subscribe-dialog.c: Changed this to pass NULL, NULL for
- has_get_node_by_id and get_node_by_id.
-
-2001-04-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * session.c (auth_callback): If the service is NULL, just use the
- item as the key.
-
- * mail-crypto.c (mail_crypto_pgp_mime_part_sign): Use the
- CamelCipherHash enum.
- (mail_crypto_pgp_mime_part_verify): Use a CamelCipherValidity.
-
- * mail-format.c (try_inline_pgp_sig): Updated to use
- CamelCipherValidity instead of CamelPgpValidity.
- (handle_multipart_signed): Same.
-
-2001-04-12 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (do_message_selected, on_message_selected):
- Don't printf NULL
-
- * mail-format.c (mail_part_is_inline): Don't leak memory.
-
-2001-04-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (pgp_path_changed): Updated for changes to PGP
- code.
-
- * component-factory.c (owner_set_cb): Don't init openpgp anymore
- because we don't need it.
-
- * mail-crypto.c: Simply wrap the camel-pgp-mime functions (also
- renamed the functions to be prefixed with mail_crypto).
-
- * mail-format.c (handle_multipart_signed): Update to use
- camel_pgp_mime_is_rfc2015_signed() and other camel-pgp-mime
- functions.
- (handle_multipart_encrypted): Same but for rfc2015_encrypted.
- (decode_pgp): Updated to use camel-pgp-context
- (try_inline_pgp): Updated to use camel-pgp-context's.
- (try_inline_pgp_sig): Same.
-
-2001-04-11 Dan Winship <danw@ximian.com>
-
- * mail-format.c (handle_text_plain): Only look for special
- pseudo-multipart-isms (binhex, uucode, old pgp, etc) if the MIME
- type is really text/plain. Otherwise, since there's no handler for
- applciation/mac-binhex40, it gets sent to mail-identify.c, which
- thinks it's text/plain because it starts with English words, and
- so it gets sent back to the text/plain handler, which finds an
- embedded binhex part...
-
- * mail-callbacks.c (do_view_message): mark messages as seen when
- opening then in a separate window.
-
-2001-04-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * openpgp-utils.c (openpgp_encrypt): Don't g_free the recipient
- array members here because we free them in the caller.
-
-2001-04-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c (pgp_mime_part_verify): Huh, somehow I forgot to
- apply the from filter when verifying signed parts. Oh well,
- probably not all that common. Fixed now though.
-
-2001-04-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (save_msg): Use the homedir as the default
- filename.
-
-2001-04-11 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (save_tree_state, message_list_setup_etree): Save
- the expanded state using the ETree built in expanded state code.
-
-2001-04-05 Not Zed <NotZed@Ximian.com>
-
- * Merge from evolution-0-10 to evolution-0-10-merge-0 into head.
-
-2001-04-04 Kjartan Maraas <kmaraas@gnome.org>
-
- * mail-account-gui.c: Add prototype for service_changed().
- * message-list.h: Remove #include <gal/e-table/e-tree-simple.h>
- since it doesn't get installed.
-
-2001-04-04 Gediminas Paulauskas <menesis@delfi.lt>
-
- * mail-config-druid.c (create_html): set content type to utf8.
- * mail-config.c (mail_config_check_service): fix warning.
- * mail-display.c (link_open_in_browser): just call on_link_clicked().
- (link_menu): Open link works.
- (link_copy_location): claim selection.
- (on_selection_get): new function, selection handler.
- (mail_display_new): connect to selection_get. FIXME: does not work.
-
-2001-04-04 Gediminas Paulauskas <menesis@delfi.lt>
-
- * component-factory.c: use big trash icon, stolen from mc.
-
-2001-04-03 Jeffrey Stedfast <fejj@ximian.com>
-
- * openpgp-utils.c (openpgp_encrypt): Add --no-tty argument to gpg.
-
-2001-04-03 Dan Winship <danw@ximian.com>
-
- * folder-browser-factory.c (control_activate): Sync the folder on
- activate.
-
- * session.c (mail_session_remember_password): Use the same
- URL-transforming rules we use when hashing the password so this
- actually works.
-
-2001-04-02 Iain Holmes <iain@ximian.com>
-
- * importers/elm-importer.c (elm_can_import): Call is_kmail to check for
- KMail files.
- (is_kmail): Checks if the given directory is a KMail directory.
-
-2001-04-02 Iain Holmes <iain@ximian.com>
-
- * importers/elm-importer.c (elm_can_import): Check for some MH files
- to make sure that the dir really is an Elm dir.
-
-2001-04-02 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c: Add a "provider_type" arg to
- MailAccountGuiService.
- (transport_needs_auth_toggled): Call service_changed if enabling
- the auth pane so the status of the "Check supported types" button
- will be correct.
- (service_check_supported): Use gsvc->provider_type, not
- CAMEL_PROVIDER_STORE.
- (mail_account_gui_new): Pass the transport as the user_data to the
- "changed" signal on transport.hostname, not the store.
- (mail_account_gui_setup): Set up provider_type fields
-
-2001-04-01 Gediminas Paulauskas <menesis@delfi.lt>
-
- * component-factory.c: changed vtrash icon to trash. doh
- * folder-browser-factory.c: pixmap cache got moved from here to
- e-util/e-gui-utils.c. Changed pixmap paths according to file renames.
- Added icons for print, get mail, etc., changed get mail icon as Jacub
- suggested.
- * subscribe-dialog.c: also use new pixmap cache.
-
-2001-03-30 Dan Winship <danw@ximian.com>
-
- * mail-config.c (check_service_check): Register for cancellation.
- (mail_config_check_service): Pop up a modal dialog with a message
- and a "Cancel" button for the duration of the check.
-
-2001-03-30 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c (load_file_fn): Check if
- foldername is \0.
-
- * importers/evolution-outlook-importer.c (load_file_fn): Ditto.
-
-2001-03-30 Jon Trowbridge <trow@ximian.com>
-
- * mail-display.c (mail_text_write): Add (commented-out)
- E_TEXT_TO_HTML_CONVERT_ADDRESSES.
-
- * mail-config.c (mail_config_get_account_by_source_url):
- Call e_url_equal to compare URLs.
-
-2001-03-30 Dan Winship <danw@ximian.com>
-
- * component-factory.c (debug_cb): If the EvolutionShellComponent
- emits a "debug" signal, turn on camel_verbose_debug.
-
-2001-03-30 Radek Doulik <rodo@ximian.com>
-
- * mail-display.c (mail_display_redisplay): reset last_active
-
-2001-03-29 Jon Trowbridge <trow@ximian.com>
-
- * mail-callbacks.c: Added #include <time.h> to get things
- to compile.
-
- * mail-callbacks.c (mail_generate_reply): Look at the
- X-Evolution-Source header, and try to find a corresponding
- account. If this works, send the mail from this account.
- If not, use the default account.
-
- * mail-ops.c (send_queue_send): Strip out the X-Evolution-Source
- header before sending.
-
- * mail-config.c (mail_config_get_account_by_source_url): Added.
- Look up accounts by source URL.
-
-2001-03-29 Dan Winship <danw@ximian.com>
-
- * mail-format.c (call_handler_function): if called with a
- multipart that's really a 0-part, spew an error and display as
- source.
-
- * message-list.c: #include <camel/camel-vtrash-folder.h>
-
- * mail-callbacks.c: #include <libgnome/gnome-paper.h>
- for the gnome-print stuff.
-
- * mail-display.c (pixmap_press): Ignore "funky" button clicks
- (like scroll wheel scrolls)
-
-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.
-
-2001-03-29 Dan Winship <danw@ximian.com>
-
- * mail-account-editor.c (switch_page): Fix this so the "Receiving
- Options" page gets filled in again.
-
- * mail-send-recv.c (receive_get_folder): Doh! This was storing
- "struct _folder_info"s in the cache and then trying to read them
- back as CamelFolders. Fixicate. Fixes the "crash with 2 POP
- accounts" bug.
-
- * session.c (auth_callback): Update call to camel_url_to_string.
- (Don't include the params in the password hash table key.)
-
- * mail-config.c (mail_config_folder_to_cachename): Call
- camel_url_to_string with HIDE_PASSWORD and HIDE_PARAMS so that
- changing URL params doesn't change the cachename.
-
- * mail-ops.c (add_vtrash_info):
- * mail-local.c (reconfigure_folder_reconfigure):
- * mail-account-gui.c (save_service): Update calls to
- camel_url_to_string.
-
-2001-04-03 Dan Winship <danw@ximian.com>
-
- * folder-browser-factory.c (control_activate): Sync the folder on
- activate.
-
- * session.c (mail_session_remember_password): Use the same
- URL-transforming rules we use when hashing the password so this
- actually works.
-
-2001-04-03 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (mail_send_message): Strip header content before using it.
-
-2001-04-02 Iain Holmes <iain@ximian.com>
-
- * importers/elm-importer.c (elm_can_import): Calls is_kmail to
- check for kmail files.
- (is_kmail): Checks if the given directory is a KMail directory.
-
-2001-04-02 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c: Add a "provider_type" arg to
- MailAccountGuiService.
- (transport_needs_auth_toggled): Call service_changed if enabling
- the auth pane so the status of the "Check supported types" button
- will be correct.
- (service_check_supported): Use gsvc->provider_type, not
- CAMEL_PROVIDER_STORE.
- (mail_account_gui_new): Pass the transport as the user_data to the
- "changed" signal on transport.hostname, not the store.
- (mail_account_gui_setup): Set up provider_type fields
-
-2001-04-02 Iain Holmes <iain@ximian.com>
-
- * importers/elm-importer.c (elm_can_import): Check for some MH files
- to make sure that the dir really is an Elm dir.
-
-2001-03-30 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_toggle_hide_deleted): New
- function to listen for hide_deleted changes.
- (folder_browser_toggle_hide_deleted): Only svae the hide-deleted
- state if we are not setting a trash folder.
-
- * folder-browser-factory.c (control_activate): Set the
- hide_deleted flag appropriately/setup the menu's appropriately.
- (control_activate): Workaround to Force setting of options by
- bypassing bonobo notification, since it doesn't properly handle
- changed components.
-
- * mail-config.c (mail_config_get_hide_deleted):
- (mail_config_set_hide_deleted): New functions for
- accessing/setting the hide deleted state.
- (mail_config_write_on_exit):
- (config_read): Save/load the hide_deleted flag.
-
- * message-list.c (main_folder_changed): Oops, remember to copy
- over all the rest of the changes too if we removed some.
- (find_next_undeleted): Find the first undeleted message below us.
- This of course does not follow sorting conventions, but thats
- etree. Have to ask chris if there is a way to make it work like
- that.
- (message_list_set_hidedeleted): Check we dont set hide_delete on a
- vtrash.
- (build_tree): If the message has vanished, try and get the next
- undeleted message set, etc, if it still exists. The set_cursor()
- function seems very broken but i'm sure e-lahey will get to it
- soon.
- (build_flat): Similarly for above.
-
-2001-03-30 Dan Winship <danw@ximian.com>
-
- * mail-config.c (check_service_check): Register for cancellation.
- (mail_config_check_service): Pop up a modal dialog with a message
- and a "Cancel" button for the duration of the check.
-
- * component-factory.c (debug_cb): If the EvolutionShellComponent
- emits a "debug" signal, turn on camel_verbose_debug.
-
-2001-03-30 Radek Doulik <rodo@ximian.com>
-
- * mail-display.c (mail_display_redisplay): reset last_active
-
-2001-03-29 Dan Winship <danw@ximian.com>
-
- * mail-format.c (call_handler_function): if called with a
- multipart that's really a 0-part, spew an error and display as
- source.
-
- * mail-display.c (pixmap_press): Ignore "funky" button clicks
- (like scroll wheel scrolls)
-
-2001-03-29 Dan Winship <danw@ximian.com>
-
- * mail-account-editor.c (switch_page): Fix this so the "Receiving
- Options" page gets filled in again.
-
- * mail-send-recv.c (receive_get_folder): Doh! This was storing
- "struct _folder_info"s in the cache and then trying to read them
- back as CamelFolders. Fixicate. Fixes the "crash with 2 POP
- accounts" bug.
-
- * session.c (auth_callback): Update call to camel_url_to_string.
- (Don't include the params in the password hash table key.)
-
- * mail-config.c (mail_config_folder_to_cachename): Call
- camel_url_to_string with HIDE_PASSWORD and HIDE_PARAMS so that
- changing URL params doesn't change the cachename.
-
- * mail-ops.c (add_vtrash_info):
- * mail-local.c (reconfigure_folder_reconfigure):
- * mail-account-gui.c (save_service): Update calls to
- camel_url_to_string.
-
-2001-03-29 Not Zed <NotZed@Ximian.com>
-
- * mail-local.c (init_trash): Create a vtrash folder, not a vee folder.
-
- * folder-browser-factory.c (control_activate): Hook in the hide
- deleted thingy.
- Removed MessageHideDeleted menu stuff.
-
- * message-list.c (message_list_set_hidedeleted): New function, to
- set if we should hide deleted messages automatically/always.
- (regen_list_regen): If we have hide deleted messages turned on,
- then hide them.
- (main_message_changed): Promote to a folder_changed event with a
- change list, folder_changed has the optimisations to handle this
- appropriately.
- (main_folder_changed): IF we get changes events for
- deleted/undeleted stuff, change to added/removed events, rebuild
- if necessary.
- (message_list_set_folder): Setup the default hidedeleted state to
- be to hide everything unless it is in a vtrash folder.
-
-2001-03-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-gui.c (setup_service): Move the
- gtk_toggle_button_set_active outside the if.
-
-2001-03-28 Dan Winship <danw@ximian.com>
-
- * mail-account-gui.c (mail_account_gui_new): Set up the
- sent/drafts folder buttons.
- (folder_picker_clicked): Pop up the folder selector when sent or
- drafts is clicked.
- (mail_account_gui_save): Save the sent/drafts folders.
-
- * mail-config.c (account_copy): copy sent/drafts info
- (config_read): read sent/drafts info
- (mail_config_write): write sent/drafts info
-
- * mail-callbacks.c (composer_send_cb, composer_postpone_cb):
- split out some common code here (and fix inconsistencies). Always
- set headers on the message giving the account name, transport,
- and sent folder to use.
-
- * mail-ops.c (mail_send_message): If the message has an
- X-Evolution-Account header, use the transport/sent folder info for
- that account (assuming it still exists). Otherwise, if it has
- X-Evolution-Transport and/or X-Evolution-Fcc, use those. If not,
- use the default transport and sent folder.
- FIXME: Falls back silently to the default sent folder if it can't
- open the account-specific one...
- (send_queue_send): remove the X-Evolution-Transport, etc
- processing here, as it gets done by mail_send_message now.
- FIXME: We only sync the default sent folder.
-
- * component-factory.c (owner_set_cb): While setting up the
- standard folders, also record their URIs.
-
-2001-03-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (switch_page): Lets do some NULL checking
- here. First, make sure the gsrc isn't NULL and also make sure that
- account->source isn't NULL either.
-
- * mail-account-gui.c (mail_account_gui_setup): If there isn't a
- source_proto, make sure we select "None" as the source type.
-
-2001-03-27 Dan Winship <danw@ximian.com>
-
- * mail-config-druid.c (construct): set the initial druid button
- state after doing the mail_account_gui_setup, since that may
- invoke signal handlers that will change it.
-
- * mail-account-gui.c (mail_account_gui_new): Fill in signature and
- organization too.
- (mail_account_gui_save): Preserve the "enabled" flag on the source.
- (save_service): Don't look at authtype if the widget is
- insensitive. (Fixes the "smtp://;auth=PLAINservername" bug.)
-
-2001-03-27 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (receive_done): Use gnome-dialog-close instead
- of object_unref, for some reason it doesn't like being unref'd
- with a refcount of 1, _who knows_. Gets rid of that refcount
- warning on get mail.
-
-2001-03-27 Dan Winship <danw@ximian.com>
-
- * mail-config.glade: Probably the very last new config dialog
- ever. (Ha ha). From Anna, based on a story by me.
-
- * mail-account-gui.c: New code for the new mail-config.glade. This
- abstracts out all of the common code between the account editor
- and the druid. It also handles the spiffy new provider-specific
- config stuff.
-
- FIXME: The code to check if a service is ok or not is no longer
- there... waiting until the online/offline stuff from the shell
- appears.
-
- * mail-account-editor.c, mail-config-druid.c: These are much
- smaller now, since most of the interesting bits moved to
- mail-account-gui.c
-
- * mail-accounts.c: Add an enabled/disabled column/button to
- replace the checkbox that used to be in the editor, because it
- really makes more sense to have it out here. This looks ugly.
- Probably ought to ETable it...
- (load_accounts): Fill in the enabled column.
- (mail_select, mail_unselect): toggle the sensitivity and name of
- the Enable/Disable button appropriately
- (mail_able): Handle the enable/disable button.
-
- * mail-config.c: Remove reply-to from MailConfigIdentity since it
- didn't belong there (and wasn't being saved anyway).
- (mail_config_check_service): Simplify this a bit. This really
- needs to pop up a dialog with a "connecting..." message and a
- cancel button.
-
- * mail-ops.c (uid_cachename_hack): Kludge, copied+modified from
- mail_config_folder_to_cachename to deal with the different
- behavior of the URL code now. Will go away when the keep-on-server
- code moves.
- (get_folderinfo_get): Only pass "subscribed_only" to
- camel_store_get_folder_info if the store supports subscriptions...
-
- * mail-local.c (local_provider): Update this to reflect the
- CamelProvider structure change
-
-2001-03-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (transfer_msg): Add "vtrash" as an allowed mail
- folder type.
-
- * mail-ops.c (transfer_messages_transfer): Updated to reflect
- changes made to the move/copy API in camel-folder.c
- (add_vtrash_info): Use /Trash as the path instead of Trash.
-
- * mail-local.c (reconfigure_folder_reconfigure): Updated this too.
-
-2001-03-20 Not Zed <NotZed@Ximian.com>
-
- * mail-local.c (init_trash): Fixed vfolder_new api.
-
-2001-03-26 Dan Winship <danw@ximian.com>
-
- * mail-format.c (get_cid): Make fake content-id URLs be guaranteed
- unique: the old way (with %p on the CamelMimePart *) would
- generate duplicates if memory was freed and re-allocated the right
- way.
-
- * mail-display.c (pixbuf_gen_idle, etc): Make the thumbnail cache
- global rather than per-MailDisplay, since content-ids ought to be
- globally unique. Also, don't leak content-id strings when the
- pixbuf generation fails, and remove pixbufs from the cache after 5
- minutes.
-
- * component-factory.c (mail_load_storages): Simplify a bit using
- camel_session_get_provider.
-
- * mail-callbacks.c (empty_trash): Ditto, and fix up use of
- CamelException.
-
-2001-03-26 Radek Doulik <rodo@ximian.com>
-
- * mail-format.c (write_address): clear name and email data after
- each address
-
-2001-03-25 Dan Winship <danw@ximian.com>
-
- * component-factory.c (unref_standard_folders): Fix a bug in this
- that probably would have been noticed sooner if ETree hadn't always
- made the mailer crash before you got here. :-)
-
-2001-03-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (transport_auth_type_changed): Allow the
- authtype to be NULL.
- (transport_auth_init): If the provider allows authtypes but
- doesn't *need* one, create a "None" menu item that the user can
- choose. This should fix the bug people have been seeing recently
- since dan removed the no_authtype authmech from the smtp provider.
-
-2001-03-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * openpgp-utils.c (openpgp_verify): Default to iso-8859-1 as the
- user's charset here if it is undefined. This is a better choice
- than us-ascii.
-
-2001-03-23 Jon Trowbridge <trow@ximian.com>
-
- * mail-display.c (handle_embedded_address_object): #ifdef away
- some code I don't quite want to delete yet.
- (html_button_press_event): Remove some of Radek's placeholder
- code, replace it with code to create my AddressPopup bonobo
- control.
-
- * mail-format.c: Remove some obsolete code that if #ifdef-ed out
- a while ago.
-
- * mail-ops.c (send_queue_send): Strip out the X-Evolution-Identity
- header when sending.
-
-2001-03-23 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c: Turned on BROKEN_ETREE.
-
-2001-03-22 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-outlook-importer.c: Update for new IDL.
-
- * importers/evolution-mbox-importer.c: Update for new IDL.
-
- * importers/Makefile.am: Build the elm importer.
-
-2001-03-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (mail_double_click): New callback to handle a
- double-click event in the account clist.
- (construct): Setup the double-click event for the account list.
-
-2001-03-22 Radek Doulik <rodo@ximian.com>
-
- * mail-display.c (mail_display_new): connect to button_press_event
- and iframe_created events of GtkHTML widget
- (html_button_press_event): new signal handler, runs popup on
- address fields and on links, later we should add popups for images
- and maybe some more? any ideas?
- (html_iframe_created): new signal handler, takes care of
- connecting to button_press_event of all iframes : plus bunch of
- empty methods for popup menu items - to be implemented
- (html_motion_notify_event): new handler, highlights addresses by
- underline
- (html_enter_notify_event): take care of enter event
- (update_active): helper function, extracted from
- html_motion_notify_event
- (update_active): move to absolute coordinates
- (html_button_press_event): ditto
-
- * mail-format.c (write_address): revert back to raw HTML text,
- store name and email to Text objects, workaround gtkhtml tables
- bug (to be fixed soon ;-)
-
-2001-03-21 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser-factory.c (update_pixmaps): Don't return if
- loading one image fails.
-
-2001-03-21 Dan Winship <danw@ximian.com>
-
- * mail-format.c (handle_multipart_related): Fix a bug in (illegal)
- 0-part messages
-
- * mail-config-druid.c (incoming_check, incoming_type_changed,
- transport_check, transport_type_changed): * mail-account-editor.c
- (transport_type_changed, source_check): Use the new URL part
- macros
-
- * mail-config.c (check_service_check): Use provider authtype list
- if not connecting.
-
-2001-03-20 Miguel de Icaza <miguel@ximian.com>
-
- * folder-browser-factory.c: Added new icons.
-
-2001-03-18 Miguel de Icaza <miguel@ximian.com>
-
- * folder-browser-factory.c: Remove duplicated verb.
-
-2001-03-20 Iain Holmes <iain@ximian.com>
-
- * importers/evolution-mbox-importer.c (process_item_fn): Step the
- parser so that it will import more than one message.
-
-2001-03-20 JP Rosevear <jpr@ximian.com>
-
- * importers/Makefile.am: extra dist the oaf files
-
-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
-
-2001-03-20 Christopher James Lahey <clahey@ximian.com>
-
- * folder-browser.c (etree_key): Made this check if the control
- mask is set.
-
-2001-03-20 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (remove_node_diff, build_flat_diff): Remove the
- node before freeing the data it points to.
-
-2001-03-19 Christopher James Lahey <clahey@ximian.com>
-
- * Merged e-tree-rework-branch:
-
-2001-03-18 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c: Added has_save_id and get_save_id methods.
-
- * subscribe-dialog.c: Added arguments for
- e_tree_memory_callbacks_new of get_save_id and has_save_id to
- NULL.
-
-2001-03-16 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c: Added a call to
- e_tree_memory_set_expanded_default to TRUE. Removed all calls to
- set_expanded on nodes while the tree is frozen since this fails
- miserably now.
-
-2001-03-13 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c (message_list_get_layout): Turned off draw-grid.
-
-2001-03-09 Christopher James Lahey <clahey@ximian.com>
-
- * folder-browser-factory.c, folder-browser.c, message-list.c,
- message-list.h, subscribe-dialog.c, subscribe-dialog.h,
- mail-callbacks.c: Converted these all to use ETree instead of
- ETable.
-
-End of branch
-
-2001-03-19 Iain Holmes <iain@ximian.com>
-
- * importers/pine-importer.c: Pine intelligent mail importer.
-
- * importer/elm-importer.c: Elm imtelligent mail importer.
-
- * importer/GNOME_Evolution_Mail_(Pine|Elm)_Intelligent_Importer.oaf.in:
- Pine and Elm oafinfo files.
-
- * importer/netscape-importer.c (maybe_replace_name): Replace some invalid
- names with valid ones (Trash -> Netscape-Trash). Change some netscape names
- to Evolution names (Unsent Messages -> Outbox).
- (scan_dir): Use less variables.
- (netscape_import_file): Simplify.
-
-2001-03-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c: Removed gnome.h and ctype.h
- (send_queue_send): Don't remove the X-Evolution header here.
- (mail_send_message): Remove it here instead (so we only have to
- remove it in one place - no matter if you send a single message or
- send_queue.
-
-2001-03-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (write_headers): Write the date header.
-
- * component-factory.c (owner_unset_cb): Call
- unref_standard_folders() here instead.
-
- * folder-browser-factory.c: Add Resend Message menu item.
-
- * folder-browser.c (on_right_click): Add resend to the right-click
- menu.
-
- * mail-callbacks.c (composer_sent_cb): Unref the message.
- (composer_postpone_cb): Unref the message here too.
- (resend_msg): New callback to allow resending of messages in the
- Sent folder.
-
-2001-03-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (unref_standard_folders): unref the standard
- folders.
- (owner_set_cb): Use g_atexit() to call unref_standard_folders()
- when evolution-mail exits. This should solve the problem where
- these folders are not synced when evolution-mail closes (because
- they still had refs on them on close).
-
-2001-03-17 Not Zed <NotZed@Ximian.com>
-
- * mail-mt.c (mail_msg_free): Move the proxy event outside the lock
- (otherwise we always deadlock).
-
- * mail-local.c (reconfigure_clicked): Clear the message list
- during update inside the folder thingy. This is a hell mess, need
- to move the gui stuff to mail-callbacks and make this reconfigure
- thing a more generic func.
-
- * message-list.c (ml_value_to_string): Cleanup the logic to use
- lookup tables.
- (sort_uid_to_rows): Removed due to rewrite below.
- (build_flat_diff): Changes for node/summary/etc changes. Also do
- changed nodes too.
- (clear_tree): Free the info reference for nodes in our hashtable.
- (build_subtree): Ref the info reference in our hash/tree node.
- (on_click): Dont free message info, since we just got our ref to
- it.
- (remove_node_diff): Free messageinfo off node.
- (build_flat): Ref messageinfo.
- (message_list_set_folder): Allow a NULL folder to be set -
- i.e. clear the view.
- (message_list_set_folder): Emit a no message sleeted signal.
- (build_tree): Change cursor keeping stuff to work with new info.
-
- Turned off BROKEN_ETREE - well maybe it'll work. Check for
- duplicate messages displayed, etc.
-
-2001-03-16 Not Zed <NotZed@Ximian.com>
-
- * message-list.h: Added uid_nodemap; mapping of uid's to e-tree
- nodes.
-
- * message-list.c (build_flat): Changed to take a summary argument,
- and to store node in node map, etc, and store info's in e-tree.
- (build_subtree): Changed to store node in node map, and to store
- info's in tree directly.
- (ml_tree_value_at): Changed to get info directly from tree node,
- removed allocated return value logic.
- (ml_tree_value_at): Removed all "fake node" handling, no fake
- nodes should ever exist.
- (id_is_uid, id_is_subject, id_uid, id_subject): Removed macro's no
- longer used.
- (new_id_from_uid, new_id_from_subject): Removed no longer used.
- (get_message_uid):
- (get_message_info): Treat tree node data as messageinfo.
- (message_list_select): Dont free the messageinfo, as its part of
- our data, not retrieved from folder.
- (message_list_drag_data_get): ditto.
- (subtree_unread): Treat tree node data as messageinfo.
- (subtree_size): ditto.
- (subtree_earliest): ditto.
- (clear_tree): Reset uid_nodemap on clear.
- (save_node_state): tree nodes == messageinfo's.
- (add_node_diff): ditto.
- (remove_node_diff): ditto.
- (main_folder_changed): use uid_nodemap to lookup changed nodes.
- (main_message_changed): ditto.
-
-2001-03-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c (pgp_mime_part_sign_prepare_part): New function to
- prepare the mime part and any subparts for pgp signing.
- (pgp_mime_part_sign_restore_part): New convenience function to
- undo the prepare_part.
- (pgp_mime_part_sign): Don't assume the part passed in is a leaf
- part, we could very easily get a multipart (and in fact were which
- is why people have been having unexpected results when signing
- messages with attachments) and set the encoding as if it were a
- leaf part. Use our 2 new convenience functions to set the
- encoding(s) instead.
-
-2001-03-15 Miguel de Icaza <miguel@ximian.com>
-
- * folder-browser-factory.c (folder_browser_setup_view_menus): Fix
- memory leak.
-
-2001-03-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (apply_changes): We don't care about SSL,
- yea baby...
- (apply_changes): Don't care about SSL, no baby...
- (construct): Yea, I said we don't care 'bout SSL, baby
- (construct): That's exactly what I said, uh huh...
- (transport_auth_type_changed): Set the sensitivity of the
- user/passwd entries.
- (transport_type_changed): If the hostname hasn't been set yet,
- just use "localhost" as it doesn't really matter, since all we
- need is a valid URL object.
-
- * mail-config.c: We no longer need `use_ssl' for sources and
- transports.
-
-2001-03-15 Dan Winship <danw@ximian.com>
-
- * mail-display.c (mail_display_redisplay): Remove a stray
- camel_object_ref that was causing messages to never be finalized
- if they got redisplayed (because of attachments, delayed-loading
- IMAP parts, etc)
-
-2001-03-15 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c: Added edit item to search-bar menu.
-
- * mail-callbacks.c (filter_edit): Changed for filter_editor_new()
- api addition/change.
-
- * mail-vfolder.c (vfolder_edit): Use vfolder_editor_new intead.
-
-2001-03-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * session.c (mail_session_init): Tell camel to init NSS.
- (mail_session_accept_dialog): Doh! NULL terminate the list of
- buttons and show the label.
-
- * mail-mt.c (do_get_accept): Same.
-
-2001-03-14 Ettore Perazzoli <ettore@ximian.com>
-
- * importers/Makefile.am (INCLUDES): Add `-I$(top_builddir)/shell'
- and `-I$(top_srcdir)'.
-
-2001-03-13 Dan Winship <danw@ximian.com>
-
- * mail-display.c (on_url_requested): Call gtk_html_end() on the
- stream so things happen. Fixes a problem with some inline images
- (just very small ones maybe?)
-
- * importers/.cvsignore: create
-
-2001-03-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * session.c (mail_session_init): Call camel_init with the
- evolution directory passed in. Also, abort if camel cannot be
- initialized.
-
- * main.c (main): Shutdown camel.
-
-2001-03-04 Michael Meeks <michael@ximian.com>
-
- * folder-browser-factory.c (free_pixmaps): impl.
- (update_pixmaps): accelerate with cache.
-
-2001-03-13 Iain Holmes <iain@ximian.com>
-
- * Makefile.am: Removed the importers and created a subdirectory
- for them to live happily as plugins.
-
- * mail-importer.c (mail_importer_create_folder): Modified the
- function to take a BonoboListener for the callback.
- (get_importer_list): Get a list of importer plugins.
- (free_importer_list): Free the list of plugins.
- (mail_importer_init): Initalise the list of plugins.
- (main_importer_uninit): Unload the modules.
-
- * GNOME_Evolution_Mail.oaf.in: Remove the oaf_server entries for
- the importers.
-
- * importers/*: Copy the importers in here.
-
-2001-03-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_write): Make the transport save
- whether or not it's supposed to use SSL as well.
- (config_read): Read in whether or not we should remember the
- transport password (for those that support SASL).
- (mail_config_write): Save whether or not to save transport
- passwords (needed for SASL enabled transports).
-
- * mail-ops.c (add_vtrash_info): Instead of always creating a new
- vTrash folder, if the store already has a Trash folder, replace it
- with the vTrash. Also, name the folder "Trash" instead of "vTrash"
- and i18nify the name.
-
-2001-03-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.h: Added protection.
-
- * folder-browser-factory.c: Add ActionsEmptyTrash. By the way -
- should we rename the bonobo verbs now that our menu structure has
- changed?
-
- * mail-callbacks.c (empty_trash): New callback to empty ALL of the
- trash folders.
-
-2001-03-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (send_queue_send): Remove our X-Evolution header
- before we send. Also don't send messages that are marked for
- deletion.
-
-2001-03-09 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (mail_get_accept): New async function that will be
- used for SSL certs later.
-
- * session.c (auth_callback): Changed to return a gpointer value.
- (mail_session_accept_dialog): New function to handle the new
- _ACCEPT authenticator mode.
-
-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.
-
-2001-03-08 Jon Trowbridge <trow@ximian.com>
-
- * mail-format.c (write_field_row_begin): Added. Table row HTML
- broken out into its own function.
- (write_subject): Added. Emits the proper HTML for the subject
- line.
- (write_field_to_stream): #ifdef-ed out of existence.
- (write_address): Take a CamelInternetAddress and spit out an
- <object> tag with the appropriate <param>s.
-
- * mail-display.c (on_object_requested): Check for an "address"
- object. If found, call...
- (handle_embedded_address_object): ...this function, which creates
- an AddressWidget bonobo control and passes in the necessary info.
- I never really realized just quite how much GtkHTML kicks ass
- until I figured out how to make this work.
-
-2001-03-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vtrash.[c,h]: Removed from cvs
-
- * Makefile.am: Removed mail-vtrash.[c,h]
-
- * main.c: Don't #include "mail-vtrash" anymore.
-
- * component-factory.c: Add "vtrash" as a folder type we support.
- (create_view): Kludgy-kludge around the vtrash type.
- (owner_set_cb): Don't create the vTrash folder here anymore...
-
- * folder-browser.c (on_double_click): Call open_msg here so that
- it does the Right Thing (tm).
-
-2001-03-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-local.c (mail_local_store_class_init): Override the default
- init_trash() with the our custom one (since MailLocalStore doesn't
- let the CamelStore keep a hash of opened folders and instead
- keepts track of them itself).
- (init_trash): custom implementation of the init_trash method for
- MailLocalStores
- (get_folder): i18nize.
- (register_folder_registered): Don't add the folder to the vtrash
- here.
-
-2001-03-08 Ettore Perazzoli <ettore@ximian.com>
-
- * component-factory.c (component_fn): Specify a NULL
- `EvolutionShellComponentGetDndSelectionFn'.
-
-2001-03-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-autofilter.c (filter_rule_from_message): Add an action-part
- widget.
- (filter_rule_from_mlist): Same here. This should get rid of the
- problem where people go to create a rule based on a message and
- forget to fill-in the action part.
-
-2001-03-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c (mail_crypto_is_smime_v3_signed): New function to
- decide if a mime part is an S/MIME v3 signed part.
- (mail_crypto_is_pkcs7_mime): New function to decide if a mime part
- is an application/pkcs7-mime part (or an application/octet-stream
- part with application/pkcs7-mime data).
-
- * mail-account-editor.c (source_auth_init): Move the signal
- emittion to after the set_menu call so that it actually works.
- (transport_type_changed): Updated to manipulate the user/passwd
- fields for the transport.
- (construct): Updated to init the user/passwd fields for the
- transport.
- (transport_auth_init): Renamed. Also fill in the user/passwd
- fields if available.
-
-2001-03-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (construct): Disable the NNTP code if NNTP is
- not enabled. This prevents some runtime warnings...
-
- * mail-config-druid.c: Updated to have a transport auth page.
-
-2001-03-01 Miguel de Icaza <miguel@ximian.com>
-
- * folder-browser.c (on_right_click): Move the context menus to
- the toplevel code; Use enumerations for the various bitfield
- constants.
-
- Add support for hiding items that are not required (read/unread
- and delete/undelete).
-
- This requires my previous patch, as it assumes "Open" does the
- right thing instead of having two operations: Open and Edit.
-
-2001-02-28 Miguel de Icaza <miguel@ximian.com>
-
- * folder-browser.c (on_right_click): Removed draft folders op
- here, since open_msg now does the right thing (edit or view).
-
- * folder-browser-factory.c (update_pixmaps): Removed MessageEdit
- from here.
-
- * mail-callbacks.c (open_msg): New function, does the "right
- thing" to a message (either, edit or open).
-
- * folder-browser-factory.c: Register new command here.
- (update_pixmaps): Rename keys that have been shuffled around.
- (update_pixmaps): Rename to match new updates on xml file.
-
- Rename MessageOpenNewWindow to MessageOpen. Change action from
- "view_message" to "open_message".
-
- * mail-callbacks.c (mark_all_as_seen): New command. Marks all
- messages as seen.
-
-2001-03-06 Dan Winship <danw@ximian.com>
-
- * mail-ops.c (get_folderinfo_got): If the folderinfo has no URL
- (ie, can't contain messages), don't add it as a vtrash source.
-
-2001-03-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c: Don't access the `active` data member of a
- GtkToggleButton directly - bad programming, shame on me.
-
- * mail-account-editor.c: Same here.
-
- * mail-accounts.c: And here too.
-
- * mail-callbacks.c (empty_subject_destroyed): And finally here.
-
- * mail-crypto.c (pgp_mime_part_sign): Correcty set the mime type
- for the multipart. Hmmm, still doesn't wrap correctly. NotZed?
- Ideas?
- (pgp_mime_part_encrypt): Here too.
-
-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.
-
-2001-03-02 Not Zed <NotZed@Ximian.com>
-
- * mail-mt.c (set_stop): Check the container is not NIL before
- trying to set thje prop.
-
-2001-03-01 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_search_menu_activated): Fixes
- for changes to search bar.
- (search_save): Removed.
- (search_full): Removed.
- (search_full_clicked): Removed.
- (folder_browser_search_option_items[]): Removed.
- (folder_browser_search_query_changed): Changed for search bar
- changes.
- (folder_browser_clear_search): Removed.
-
- * mail-vfolder.c (vfolder_clone_rule): New function to clone a
- filter/search rule into a matching vfolder rule.
-
- * mail-send-recv.c (mail_receive_uri): Setup a timeout for status
- updates.
- (build_dialogue): Setup timeout id for status updates.
- (operation_status_timeout): New function to set the status via a
- timeout.
- (receive_done): Remove the timeout handler if we need to.
- (operation_status):
- (receive_status): Just update the info, and let the timeout
- handler update the gui.
- (do_free_status):
- (do_show_status): Removed gui thread status message processing.
-
-2001-02-28 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_config_search): New function to
- configure the FilterRule for the search mechanism.
-
-2001-02-27 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (folder_browser_gui_init): Setup the search bar
- as a filterbar.
- (got_folder): Set the whole search bar sensitive or not based on
- the search capability of the folder.
-
- * folder-browser.h: Changed to use efilterbar instead of esearchbar.
-
-2001-02-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (configure_mail): Return TRUE if the user
- configured his/her settings, else return FALSE.
- (check_send_configuration): If configure_mail() returns TRUE, then
- continue otherwise quit.
- (send_receive_mail): Same.
-
-2001-02-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (mail_generate_reply): Set a "References"
- header no matter what if we are able to get a Message-Id. Fixes
- bug #1583.
-
- * mail-accounts.c (mail_delete): Confirm that the user REALLY
- wants to delete this account.
- (news_delete): Same.
-
- * mail-ops.c (mail_send_message): Changed the product string -
- will change it to use User-Agent once I get the RFC/DRUMS draft or
- whatever. Until then I'll stick with X-Mailer.
-
-2001-02-26 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.c (delete_msg): Mark deleted messages as "seen"
- as well so they don't count towards the unread count.
-
- * mail-view.c (view_delete_msg): ditto
-
-2001-02-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (owner_set_cb): Re-add the
- mail_vtrash_create() hack back in for LocalStores since there's no
- better way to register a vTrash folder on the Local Storage yet.
-
- * mail-local.c (register_folder_registered): Add folders to the
- vTrash folder here since the LocalStore does not let the parent
- CamelStore class keep it's own hash of the folders.
-
-2001-02-25 Jeffrey Stedfast <fejj@ximian.com>
-
- * session.c (mail_session_forget_password): New function to force
- the removal of a given password.
-
- * openpgp-utils.c (openpgp_decrypt): On failure, forget the
- passphrase.
- (openpgp_encrypt): Here too. (cleaned this up a bit too)
- (openpgp_clearsign): And here.
- (openpgp_sign): Again...
-
- * mail-callbacks.c (composer_postpone_cb): Abort if the message is
- NULL (which is valid if an error occured).
- (composer_send_cb): Same.
-
-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.
-
-2001-02-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (mail_load_storages): No longer need to
- construct the vTrash here.
- (owner_set_cb): Don't make the vTrash for the local store here.
-
- * mail-ops.c (add_vtrash_info): New function to add a vTrash
- folder info to a pre-constructed CamelFolderInfo for use in the
- get_folder_info async function.
-
-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()
-
-2001-02-23 Iain Holmes <iain@ximian.com>
-
- * component-factory.c (owner_set_cb): Init the importer here.
-
- * mail-importer.[ch] (mail_importer_create_folder): Add a function
- that creates new folders in the shell.
- (mail_importer_init): Take in an EvolutionShellClient, and get the
- local_storage corba_object from it.
-
-2001-02-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-vtrash.c (create_trash_vfolder): Come up with a unique
- store uri for each vtrash (using %p and the CamelStore we're gonna
- place it on).
- (get_trash_get): Pass in the store so we can use it for %p.
-
-2001-02-23 Not Zed <NotZed@Ximian.com>
-
- * mail-vfolder.c (vfolder_gui_add_from_mlist): Rule to add mlist
- vfolder.
-
- * mail-autofilter.c (filter_gui_add_for_mailing_list): Removed.
- (rule_from_mlist): Build a generic match rule from an mlist.
- (vfolder_rule_from_mlist): Setup the vfolder rule for an mlist.
- (filter_rule_from_mlist): Setup a filter rule fro an mlist.
- (filter_gui_add_from_mlist): GUI thingy to do the work.
-
- * folder-browser.c (on_right_click): Added vfolder on mailing list
- to filter menu.
- (on_right_click): Use header_raw_check_mailign_list instead of
- mlist magic to get the mailing list name.
- (filter_mlist): Changed to use new add_from_mlist() call.
- (vfolder_mlist): New function for vfolder from mlist.
-
- * mail-send-recv.c (build_dialogue): Only allow downloading if the
- source is enabled at this time.
- (mail_autoreceive_setup): Check for enabled sources before setting
- up autodownload.
-
-2001-02-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-accounts.c (construct): Construct the PGP Path
- GnomeFileEntry widget.
- (pgp_path_changed): Try to auto-detect which PGP type the binary
- file is based on the basename (yuck).
-
-2001-02-23 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (create_folder_get): Make op cancellable/report
- internals.
- (get_folder_get):
- (sync_folder_sync):
- (get_folderinfo_get): Make op cancellable/report internals.
-
- * mail-vtrash.c (get_trash_get): Setup the operation registration,
- and create a pseudo "start/stop" operation.
- (get_trash_free): Free store if we have it.
- (get_trash_got): Move vtrash add into here, so we execute in the
- right thread.
-
- * component-factory.c (owner_set_cb): Make trash creation async.
-
- * mail-local.c (register_folder_desc): A description of what we're
- doing.
-
- * mail-mt.c (mail_msg_new): Set status callback to operation_new.
- (mail_operation_status): Operation status function, proxy messages
- to main thread, and attempt to present a meaningful ui experience
- for operations.
-
-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.
-
-2001-02-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (mail_send_message): Updated to reflect changes to
- the filter-driver code.
-
-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.
-
- * mail-local.c (local_storage_new_folder_cb): started hack for
- progress reporting, which is currently to the console.
-
- * mail-mt.c (set_stop): Set the stop button sensitivity.
- (mail_msg_received): enable/disable stop button while we're
- processing stuff in another thread.
-
- * message-list.c (ml_tree_value_at): If our uid entry vanishes
- before w'ere ready, then make a fake.
-
-2001-02-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c (pgp_mime_part_verify): Changed to use
- PgpValidity.
-
- * openpgp-utils.c (openpgp_verify): Return a PgpValidity and set
- the description as UTF-8 for later use in mail-format.c when
- writing to GtkHTML.
-
- * mail-format.c (try_inline_pgp_sig): Updated to use the new
- PgpValidity code.
- (handle_multipart_signed): Updated.
-
-2001-02-21 Not Zed <NotZed@Ximian.com>
-
- * mail-callbacks.c (composer_postpone_cb): Fix for api changes to
- append_mail.
-
- * Makefile.am (evolution_mail_SOURCES): Removed mail-threads.[ch].
-
- * mail-threads.[ch]: Removed.
-
- * subscribe-dialog.c (subscribe_do_get_store): Chagned to use new
- thread stuff. This is really getting boring.
- (subscribe_do_subscribe_folder): Changed to use new thread stuff.
- Last one at last, phew.
-
- * session.c (register_callback): Changed to use new thread stuff.
- YUCK. I dropped some functionality, now the timeout callback
- return is ignored, so basically it keeps running till finished.
-
- * mail-ops.c (mail_operation_run): Removed, no longer used/needed.
- (mail_do_append_mail): Changed to use new thread stuff.
- (mail_do_transfer_messages): ditto.
-
- * mail-local.c (local_storage_new_folder_cb): Use new thread
- stuff, also only run synchronous for this operation.
- (mail_local_reconfigure_folder):
- (reconfigure_clicked): Changed to use new mail thread stuff.
-
- * mail-config.c (mail_config_check_service): Changed to use new
- thread stuff.
-
-2001-02-20 Dan Winship <danw@ximian.com>
-
- * mail-vtrash.c (get_trash_get): Pass NULL, not "/" for @top.
-
- * mail-callbacks.c (create_folders): Make this work with
- CamelStores where the separator character isn't /. folder_created
- and folder_deleted are still broken.
-
-2001-02-20 Not Zed <NotZed@Ximian.com>
-
- * mail-vtrash.c: Include the camel-vee-store.h header from the
- uninstalled copy.
-
-2001-02-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (mail_load_storages): Create vTrash folders
- for all remote stores as well.
-
-2001-02-20 Not Zed <NotZed@Ximian.com>
-
- * mail-vtrash.c (create_trash_vfolder): Add the auto-update flag
- to the folder open flags.
-
-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.
-
-2001-02-20 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (fetch_mail_fetch): Unref the driver here, in the
- subthread, so we dont block the gui while it sync's all the
- folders.
- (fetch_mail_fetched): Rewmoved above code from here.
-
-2001-02-16 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (receive_status): Dont do the thaw/freeze set here.
- (update_folders): "
-
- * mail-vfolder.c (vfolder_refresh): Setup the virtual
- 'unmatched' folder by default.
- (vfolder_uri_to_folder): HAndle UNMATCHED folder specially, it has
- no explicit sources.
-
-2001-02-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-send-recv.c (receive_get_folder): Not sure it makes any
- difference, but lets ref the folder while the hash table is locked
- rather than after we unlock it.
-
-2001-02-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * main.c: * component-factory.c: Reverse the changes I made
- yesterday.
-
-2001-02-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * main.c (main): Have the mail-config and openpgp initialize here
- instead.
-
- * component-factory.c (owner_set_cb): No need to have mail-config
- and openpgp init here.
-
-2001-02-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (do_scan_subfolders): Use mail_storage_create_folder
-
- * mail-callbacks.c (mail_storage_create_folder): Convenience
- function so we can keep all the evolution_storage_add_new_folder()
- code in one place as much as possible.
-
- * subscribe-dialog.c (recursive_add_folder): Use 'name' rather
- than the no-description bs since that's what all the other places
- do.
-
- * mail-callbacks.c (folder_created): New callback to handle the
- "folder_created" signal - handles CamelFolderInfo's recursively.
- (folder_deleted): Same but for "folder_deleted".
-
- * component-factory.c (storage_create_folder): Instead of doing
- the evolution_storage_new_folder() stuff by hand, pass it off to
- the new callback: folder_created(). At some point this will be
- unecessary as we'll attach this callback to the "folder_created"
- signal.
-
-2001-02-15 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c: Wrapped the address compare functions in a
- #ifdef
- (address_compare): #ifdef the use of the smart address sorting
- code and provide a #else for using g_strcasecmp().
-
-2001-02-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * openpgp-utils.c (openpgp_verify): Add the --no-tty flag.
-
-2001-02-14 Dan Winship <danw@ximian.com>
-
- * mail-mlist-magic.c: Rewrite explanatory comments to use normal
- regexps rather than procmail weirdness.
- (check_sender): match "foo-owner" as well as "owner-foo".
- (check_list_post): (New) Check for "List-Post: <mailto:..."
- (mail_mlist_magic_detect_list): Iterate through an array of
- function pointers rather than calling each checker explicitly.
-
- * component-factory.c (add_storage): Connect to the
- "create_folder" signal on the storage.
- (storage_create_folder): Do folder creation.
-
-2001-02-14 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (owner_set_cb): Setup the Trash folder.
-
- * mail-ops.c (create_trash_vfolder): Do better error handling.
- (populate_folder_urls): Oops, helps to strdup the url into the
- array if we plan on freeing the data.
- (mail_get_trash): New async function that may eventually replace
- mail_do_setup_trash().
- (do_setup_trash): Do better error handling.
-
- * mail-local.c (mail_local_store_class_init): Override
- get_folder_info.
- (get_folder_info): Implement.
-
-2001-02-13 Christopher James Lahey <clahey@ximian.com>
-
- * mail-local.c (do_reconfigure_folder): Fix some uninitialized
- variables.
-
-2001-02-12 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (build_tree): if doing a full update, save the
- cursor pos and restore it afterwards.
- (on_cursor_activated_cmd): Copy the current_uid to a new string.
- I dont know why this is required, but it is.
- (message_list_destroy): Free the cursor_uid as we're done with it.
- (build_flat): IF the current uid disappeared from the list, then
- unset the message.
- (build_tree): Likewise.
-
-2001-02-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_write): Clean out the cruft in the
- Accounts section before writing the current accounts out to the
- config file.
-
- * mail-account-editor.c (construct): Strip the leading "/" from
- the Namespace/Path entry if the provider doesn't require absolute
- pathnames.
-
-2001-02-12 Kjartan Maraas <kmaraas@gnome.org>
-
- * Makefile.am: xml-i18n-tools setup.
- * GNOME_Evolution_Mail.oaf.in: Mark strings for translation.
-
-2001-02-11 Dan Winship <danw@ximian.com>
-
- * mail-callbacks.[ch]: Re-add non-static forward_messages.
- mail-view.c needs it.
-
-2001-02-11 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (forward_inlined): Don't leak memory.
- (forward_messages): change doinline to be a gboolean argument.
-
-2001-02-10 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (list_add_addresses): Check the full list of
- IDs instead of just the default id and if we find an address
- matching one of the user's ids, then save it.
- (mail_generate_reply): Try to guess which account to use based
- upon the list of To and Cc addresses and pass that as the 'From'
- address to e_msg_composer_set_headers().
- (forward_get_composer): Updated to reflect changes to
- e-msg-composer.
-
-2001-02-11 Gediminas Paulauskas <menesis@delfi.lt>
-
- * mail-config.glade.h: removed, xml-i18n-extract's the strings itself.
- * *.glade: do not output_translatable_strings
- * Makefile.am: removed *.glade.h from EXTRA_DIST.
-
-2001-02-09 Dan Winship <danw@ximian.com>
-
- * 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
-
-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.
-
-2001-02-09 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (filter_folder_free): only free driver, if set.
- (fetch_mail_fetched): Unref the driver here, so it can cleanup
- before we call the 'done' callback.
-
- * component-factory.c (owner_set_cb): Add setup for mail
- autoreceive stuff.
-
- * mail-send-recv.c (free_info_data): Free the send info's from teh
- active hash, not the running list.
- (receive_done): As we finish downloads, remove them and clean them
- up, and also close the window.
- (mail_autoreceive_setup): New function to setup & maintain
- automatic download stuff.
-
-2001-02-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (construct): Set the sensitivity of the spin
- button based on the state of the checkbox.
-
- * mail-config.c (config_read): Properly do defaults here.
- (mail_config_write): Removed some of the settings being saved
- here.
- (mail_config_write_on_exit): Save those settings here instead.
-
-2001-02-08 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-display.c (on_object_requested): Cast the CamelMedium to a
- CamelMimePart before performing actions on it as if it were a
- CamelMimePart.
-
- * mail-config-druid.c (druid_finish): Save the auto-check settings.
- (construct): Initialize auto-check widgets.
- (mail_config_druid_get_auto_check): New function
- (mail_config_druid_get_auto_check_minutes): New functions
-
- * mail-config.c (config_read): Read in whether or not to check
- every x minutes.
- (mail_config_write): Save auto-check config data and SSL.
-
-2001-02-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-autofilter.c (rule_add_subject): Use "contains" because the
- subject might be broken into subparts and using the "is" rule will
- then fail ;-)
-
-2001-02-08 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (mail_send_receive):
- (mail_receive_uri): Init active_downloads hash if it hasn't been yet.
-
-2001-02-07 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (operation_status): Handle internal camel status return.
- (receive_done): Remove active download when done.
- (mail_receive_uri): Initiate download of a single source, with no gui.
- (build_dialogue): Mark any new items as real active downloads.
- (do_show_status): Make the progress bar optional.
-
-2001-02-06 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c: camel_cancel->camel_operation.
-
- * mail-ops.old.c: camel_cancel->camel_operation.
-
- * mail-ops.c: camel_cancel->camel_operation.
-
- * mail-mt.c: camel_cancel->camel_operation.
-
- * mail-callbacks.c (stop_threads): camel_cancel->camel_operation.
-
- * mail-mt.h: CamelCancel->CamelOperation.
-
-2001-02-07 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-mt.c (set_view_data): Check current_message for NULL - this
- fixes a bug running under SunOS (not a major deal tho as it's in a
- debug printf).
-
-2001-02-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_write_on_exit): Oops, save the
- seen_timeout variable.
-
-2001-02-06 Christopher James Lahey <clahey@ximian.com>
-
- * Makefile.am (evolution_mail_LDADD): Added libmenus.la.
-
- * folder-browser-factory.c (control_activate): Added GalView menus
- here.
-
- * message-list.c, message-list.h (message_list_get_layout): Made
- message_list_get_layout export.
-
-2001-02-06 Iain Holmes <iain@ximian.com>
-
- * mail-display.c (pixbuf_gen_idle): Set the size of the icon to 24x24
- always.
- (button_press): Function to toggle the disposition of an attachment.
- (on_object_requested): New way to indicate functions on attachments.
-
- * message-list.c (hide_load_state): Free the olduid.
-
-2001-02-06 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (set_defaults): Updated to checkfor
- "(none)".
-
- * mail-account-editor.c (entry_changed): Make sure the email
- address is valid.
-
- * mail-config-druid.c (identity_check): Check to make sure we have
- a valid email address.
- (is_email): New function to check a string to see if it's a valid
- email address.
-
-2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * evolution-mbox-importer.c: We are now going to use a file
- descriptor and a CamelMimeParser rather than a FILE pointer.
- (load_file_fn): Open the file descriptor and initialize the
- CamelMimeParser.
- (importer_destroy_cb): Unref the mime parser.
- (support_format_fn): Use an fd and use a case-insensitive
- comparison as well as elimate a buffer overrun.
- (process_item_fn): Process 1 CamelMimeMessage per invocation so as
- to not lock up Iain's GUI and to work similar to the way Iain
- originally coded it.
-
-2001-02-05 Christopher James Lahey <clahey@ximian.com>
-
- * evolution-mbox-importer.c, evolution-mbox-importer.h: Moved
- bonobo includes from the .c to the .h. Include
- evolution-mbox-importer.h in evolution-mbox-importer.c.
-
- * evolution-outlook-importer.c, evolution-outlook-importer.h:
- Moved bonobo includes from the .c to the .h. Include
- evolution-outlook-importer.h in evolution-outlook-importer.c.
-
- * mail-callbacks.c: Include mail-send-recv.h.
-
- * mail-local.c (mail_local_lookup_folder): Cast local_store to
- CAMEL_STORE.
-
- * mail-mt.c (mail_msg_cleanup): Make this function static.
-
- * mail-send-recv.c, mail-send-recv.h: Created mail_send_recv.h.
- Included it in mail-send-recv.c. Added a #include
- <libgnomeui/gnome-window-icon.h>.
- (mail_send_receive): Added a cast.
-
- * mail-summary.c (new_folder_cb, removed_folder_cb,
- create_summary_view): Cast the source func in calling g_idle_add.
-
-2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (try_inline_pgp_sig): New function to handle
- inline pgp-signatures.
-
- * mail-config-druid.c (construct): Keep track of the CheckSettings
- check boxes.
- (transport_next): Connect if the user says so.
- (incoming_next): Same. Also, don't jump to the next page if
- test-settings fails.
-
-2001-02-05 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (incoming_next): Updated to not connect when
- getting a list of authtypes.
- (transport_next): No longer connects - again, this is
- useless. Read the apply_changes argument for the reason why.
-
- * mail-account-editor.c (apply_changes): Updated. Set the
- 'connect' argument to FALSE for now, this basically means that the
- call is worthless tho so it may be best to either get rid of the
- checks altogether or else make it connect.
- (source_auth_init): Don't connect here, it's just plain annoying.
- (transport_construct_authmenu): Same here.
-
- * mail-config.c (mail_config_check_service): Now takes a connect
- argument.
-
-2001-02-03 Michael Meeks <michael@helixcode.com>
-
- * mail-local.c (load_metainfo): Fix dodgy libxml allocation
- pollution, and potential faults on NULL attributes.
-
-2001-02-02 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c (mail_send_receive): Cleaned up so we dont add
- an unecessary level of indenting.
-
- * message-list.c (ml_tree_value_at): For collapsed tree nodes,
- scan the collapses nodes for the unread and status information.
- Since we dont really have fake nodes anymore.
-
-2001-01-30 Ian Campbell <ijc25@cam.ac.uk>
-
- * message-list.c: Add support for new icons for being
- read/unread for fake root messages on threads.
-
-2001-01-30 Iain Holmes <iain@ximian.com>
-
- * mail-send-recv.c (mail_send_receive): Only allow one send and
- receive to be running at once.
- (build_dialogue): Set the icon for the window.
-
- * evolution-mbox-importer.c (support_format_fn): Only compare the first
- 5 bytes of the signature.
-
-2001-01-30 Kjartan Maraas <kmaraas@gnome.org>
-
- * folder-browser.c: Fix typo.
-
-2001-01-29 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-importer.c (mail_importer_add_line): Cast the
- camel_stream_mem_new() to a CamelStreamMem.
-
-2001-01-29 JP Rosevear <jpr@ximian.com>
-
- * main.c: Return efence ifdefs to 0 for solaris build
-
-2001-01-29 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (tree_equal): Debug function to compare the tree
- we think we have, after an incremental update.
- (build_tree): Check the tree after we've built it.
- (build_tree): Oops, turn on BROKEN_ETREE again.
-
- * mail-mt.c (mail_get_password): If we are being called from the
- main gui thread, then just call the dialogue directly. Ideally we
- dont want this anyway but lets handle the case nicely.
- (mail_get_password): Try locking around the password request, to
- single-queue any password requests.
- (mail_msg_init): Push an exit handler to clean it up on completion.
-
- * mail-send-recv.c (receive_update_got_store): New function called
- when the store has been retrieved asynchronously.
- (mail_send_receive): Get the store asynchronously. This was
- causing problems where the password dialogue would try and be
- called from the main thread via a message.
-
- * mail-ops.c (mail_get_store): New function to get a store
- (a)synchronously. More or less taken from subscribe-dialog, which
- i will remove later.
- (mail_scan_subfolders): Try running the scan subfolder thing
- asynchronously, to help startup time. Not sure if this will work,
- but presumably the shell can handle the folders appearing later
- ok.
-
-2001-01-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (set_defaults): Turns out that I was wrong
- about the g_get_real_name mem leak, god damn glib for not
- following the const char* standard.
-
-2001-01-28 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (management_prepare): Use UTF-8.
- (set_defaults): Use UTF-8 and also fixed a memory leak by freeing
- the string returned by g_get_real_name().
- (mail_config_druid_get_account_name): Use UTF-8.
- (mail_config_druid_get_full_name): Same.
- (mail_config_druid_get_email_address): Same.
- (mail_config_druid_get_organization): Same.
-
- * mail-account-editor.c (apply_changes): Save UTF-8 strings rather
- than gtk strings.
- (construct): Use the UTF-8 convenience functions to set the gtk
- entries for the ID fields.
-
-2001-01-28 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-vfolder.c (vfolder_gui_add_rule): Make the OK button the
- default one.
-
- * mail-search-dialogue.c (mail_search_dialogue_init): Use stock
- buttons for OK and Cancel. Make the OK button the default one.
-
-2001-01-28 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-vfolder.c (vfolder_gui_add_rule): Set a default size for
- the window so that more rules are visible.
-
- * mail-search-dialogue.c (mail_search_dialogue_construct): Set a
- default size for the window so that more rules are visible.
-
-2001-01-28 Not Zed <NotZed@Ximian.com>
-
- * mail-display.c (write_data_to_file): Changed to use
- mail_save_part to save the data in another thread.
- (save_data_cb): Hide the fileselector once we have a button press,
- and are saving stuff.
-
- * mail-ops.c (mail_save_part): New function to save a part content
- asynchronously.
-
-2001-01-27 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser.c (etable_key): Don't handle home and end keys
- since %ETable deals with them now.
-
-2001-01-27 Jeffrey Stedfast <fejj@ximian.com>
-
- * message-list.c (address_compare): Protect against NULL address
- pointers.
- (subject_compare): Same but for subject pointers.
-
-2001-01-27 Iain Holmes <iain@ximian.com>
-
- * mail-summary.c (create_summary_view): Applied patch from John R Sheets
- to fix some warnings.
- (idle_check): Fixed the prototype to fix some warnngs as well.
-
-2001-01-26 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-display.c (get_embedded_for_component): Try a control
- first, instead of an embeddable.
-
-2001-01-26 Jeffrey Stedfast <fejj@ximian.com>
-
- * subscribe-dialog.c (populate_store_foreach): Check for a NULL
- service->url as we obviously can't subscribe to folders on a
- non-existant mail source :-)
- (subscribe_do_get_store): Check for a NULL url here too, not that
- we should need it anymore (due to the above fix) but it doesn't
- hurt. Also, should we wait on the thread? Probably doesn't matter.
-
-2001-01-26 Iain Holmes <iain@ximian.com>
-
- * evolution-outlook-importer.c (load_file_fn): Replace fsetpos with
- fseek and use a long instead of fpos_t.
- (process_item_fn): Same.
-
- * mail-importer.h: Add a frozen item to tell when the folder is frozen.
-
- * evolution-mbox-importer.c (process_item_fn): Fix the blank message.
- Set the frozen element.
- (importer_destroy_cb): Thaw the folder if frozen.
-
-2001-01-26 Dan Winship <danw@ximian.com>
-
- * mail-identify.c (mail_identify_mime_part): Fix an uninitialized
- variable use.
-
-2001-01-26 Jason Leach <jasonleach@usa.net>
-
- (Fixing an old FIXME)
-
- * component-factory.c (create_vfolder_storage): removing
- create_vfolder_storage, replacing call to it with
- vfolder_create_storage.
-
-2001-01-26 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (build_tree): Define BROKEN_ETREE again, till we
- get this stuff fixed better.
-
-2001-01-25 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c: Moved teh "sender contains" item to the end of
- the list, so the gui doesn't suddenly change on everyone. Fixed
- the sender-contains search string to be a valid s-exp (ha, didn't
- test it even once eh ettore?!)
- (search_save): Dont have the sender contains as the default case
- (which well, never gets called anyway), oops i guess i should've
- reviewed the patch a little more.
-
-2001-01-26 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser.c: Add a missing parenthesis to the "from
- contains" rule. Also make it the last item instead of the first
- one.
-
-2001-01-25 Iain Holmes <iain@ximian.com>
-
- * component-factory.c (component_factory_init): Init the mail
- mail importers.
-
- * mail-local.[ch] (mail_local_lookup_folder): retrieve the local
- folder given by the name.
-
- * mail-importer.[ch]: Basic functions for all importers to use.
-
- * evolution-mbox-importer.[ch]: Mbox importer.
-
-2001-01-25 Jeffrey Stedfast <fejj@ximian.com>
- The following fixes seem to clear up the problem of new mail not
- being shown in the Inbox and/or other folders where mail had been
- delivered.
-
- * mail-send-recv.c (build_dialogue): Freeze the inbox.
- (receive_get_folder): Freeze folders before dumping them into the
- hash table.
- (free_folder_info): Thaw the folder.
- (free_info_data): Thaw the Inbox.
-
-2001-01-25 Jason Leach <jasonleach@usa.net>
-
- (Don't prompt about unsaved changes for replies/forwards that have
- not actually been modified)
-
- * mail-callbacks.c (do_forward_inline): Unset the has_changed for
- the message composer.
- (do_forward_attach): Same here.
- (mail_reply): And here.
-
-2001-01-25 Dan Winship <danw@ximian.com>
-
- * 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.
-
-2001-01-25 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Made the message list pay attention to the
- "cursor_activated" signal instead of the "cursor_change" signal.
-
-2001-01-25 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser-factory.c (update_pixmaps): Set the print icon
- for various other items.
- (set_pixmap): Be a bit more verbose in the warning message if the
- icon isn't found [i.e. report the name of the file too].
-
-2001-01-25 Ettore Perazzoli <ettore@ximian.com>
-
- * folder-browser-factory.c (update_pixmaps): Set the pixmaps for
- the "/menu/Folder/FolderConfig" and "/menu/Settings/SetMailConfig"
- items.
- (set_pixmap): Don't prepend the "buttons" prefix.
- (update_pixmaps): Update accordingly.
-
-2001-01-24 Not Zed <NotZed@Ximian.com>
-
- * folder-browser.c (search_string[]): Fix the subject match
- expression, which was missing a closing ).
-
- * mail-send-recv.c (do_show_status): Escape any % signs in the
- string before setting the format string.
-
-2001-01-24 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.glade: Added a 3rd page to the account editor to
- allow users to set their HTML sending preference and also allow
- them to change their message status timeout.
-
- * mail-accounts.c (construct): Added handlers for the send-html
- checkbox and for the mark-message-as timeout spinbutton.
-
-2001-01-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (apply_changes): Save the source and
- transport changes whether the user can connect to the host or not.
-
-2001-01-23 Ettore Perazzoli <ettore@ximian.com>
-
- [Applied patch from Tuomas Kuosmanen <tigert@ximian.com>]
-
- * folder-browser.c: Added enum value `ESB_SENDER_CONTAINS' as well
- as a "Sender contains" item to the search menu. Also add a
- corresponding "(match-all)" rule to the `search_string' array.
- (search_save): Handle `ESB_SENDER_CONTAINS' here.
-
-2001-01-23 Ettore Perazzoli <ettore@ximian.com>
-
- * GNOME_Evolution_Mail.oafinfo: Fixed the repo_ids so that they
- use the right syntax.
-
-2001-01-23 Dan Winship <danw@ximian.com>
-
- * folder-browser-factory.c:
- * mail-callbacks.c (send_receive_mail): Fix spelling.
-
-2001-01-24 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (fetch_mail_fetch): Set the default folder when
- copying to mbox. This is a quick fix, i might need to do a slight
- redesign to clean it up.
-
-2001-01-23 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-send-recv.c (build_dialogue): Make sure the source->url is
- not NULL (which is perfectly valid).
- (mail_send_receive): Where oh where should my prototype be?
- (receive_get_folder): Make sure to ref the folder before you add
- it to the hash table.
-
- * openpgp-utils.c:
- * mail-crypto.c: A few minor tweaks.
-
-2001-01-23 Not Zed <NotZed@Ximian.com>
-
- * message-list.c (build_tree): Try turning off the BROKEN_ETREE
- thing. It seems to work ok (better?) now, but if its still broken
- i'll remove it again for the next release.
-
-2001-01-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (set_defaults): Automagically fill in the
- user's default transport if he/she has setup previous accounts.
-
- * mail-format.c (handle_multipart_signed): Just wrote a temp way
- of reporting success/fail of PGP/MIME signature verification
- status.
-
-2001-01-22 Iain Holmes <iain@ximian.com>
-
- * evolution-outlook-importer.c: Outlook Express 4 .mbx importer.
-
- * component-factory.c (component_factory_init): initialise the
- outlook importer.
-
- * GNOME_Evolution_Mail.oafinfo: Add the details for the Outlook
- importer.
-
-2001-01-22 Dan Winship <danw@ximian.com>
-
- * mail-mt.[ch]: make mail_gui_thread non-static.
-
- * main.c (main): Set up signal handler for SEGV, BUS, FPE
- (segv_redirect): if a gnome-segv'ing signal is received in
- a thread other than mail_gui_thread, re-deliver it to that
- thread to work around a problem with the gnome segv handler.
-
-2001-01-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (handle_multipart_signed): Fixed to display
- subparts (other than the signature part) and started to write a
- pretty way to show if the signature verified or not.
-
-2001-01-23 Not Zed <NotZed@Ximian.com>
-
- * mail-crypto.c (pgp_mime_part_verify): Fix a double-free problem.
-
-2001-01-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (incoming_type_changed): Oops, danw didn't
- know 'provider' could be NULL :-)
-
-2001-01-22 Dan Winship <danw@ximian.com>
-
- * mail-config-druid.c (incoming_type_changed): Change "Path:"
- label to "Namespace:" for IMAP. Use $MAILDIR rather than $MAIL for
- Maildir. If $MAIL isn't set, guess.
-
- * 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.
-
-2001-01-22 Dan Winship <danw@ximian.com>
-
- * 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
-
-2001-01-22 Not Zed <NotZed@Ximian.com>
-
- * .cvsignore: Added temp profiling files.
-
- * component-factory.c (owner_set_cb): remove a warning with
- conditional news compilation.
-
- * mail-ops.h: Cleaned up the header list.
-
-2001-01-22 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c (mail_crypto_is_rfc2015_signed): Helps if I spell
- stuff correctly so it can pass the tests ;-)
-
-2001-01-22 Not Zed <NotZed@Ximian.com>
-
- * 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.
-
-2001-01-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * component-factory.c (owner_set_cb): Initialize OpenPGP.
-
- * openpgp-utils.c (openpgp_init): No longer takes a passphrase
- callback, we'll just use the mail-session one. Makes life simpler.
- (pgp_get_passphrase): Use mail_session_request_dialog().
-
- * mail-ops.c (do_send_queue): Remove the X-Evolution header before
- we send.
-
- * mail-crypto.c (pgp_mime_part_sign): Don't forget to unref the
- filters.
- (pgp_mime_part_verify): Same.
- (pgp_mime_part_encrypt): Same.
- (pgp_mime_part_decrypt): Take NotZed's advice and use
- camel_stream_mem_new_with_buffer instead of writing to a new
- stream_mem. Also use camel_data_wrapper_construct_from_stream
- instead of creating a parser and using that.
-
-2001-01-21 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-crypto.c: Updated header comment and fixed some ref/unref
- count problems in the various functions. Also fixed some other
- little things.
- (pgp_mime_part_encrypt): Do some canonical CRLF action before
- encrypting.
- (pgp_mime_part_sign): Make sure we are the owners of the byte
- array.
- (pgp_mime_part_verify): Same.
- (pgp_mime_part_encrypt): Same.
- (pgp_mime_part_decrypt): Same.
-
-2001-01-21 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (message_list_get_layout): Added
- draw-focus="true" and selection-mode="browse" attributes to the
- ETableSpecification.
- (message_list_construct): Removed setting the "draw_focus"
- argument since it doesn't exist any more.
-
-2001-01-21 Not Zed <NotZed@Ximian.com>
-
- * mail-mt.c (mail_msg_new): Init a cancel field in the message.
- (mail_msg_free): Free it.
- (mail_msg_cancel): New function to attempt to cancel an operation
- by id. Impelementation functions can still be uncancellable by
- not registering for cancellation, etc, or do it themselves as
- well.
-
- * mail-send-recv.c (fetch_mail_filter_folder): set folder_uid's
- properly, so we can save it later.
- (filter_folder_filter): Renamed from fetch_mail_filter_folder,
- since its going to be used for all filtering.
- (mail_fetch_mail): Changed from mail_filter_mail.
- (mail_filter_folder): New function, replaces
- mail_do_filter_ondemand functionality.
- (mail_filter_on_demand): New function, actually replaces
- mail_do_filter_ondemand.
- (receive_get_folder): Added an exception arg.
- (mail_send_message): New function to just send a message.
- (send_mail_send): Use mail_send_message.
- (send_queue_send): New send qeue code, use mail_send_message, and
- clean up some stuff.
- (mail_send_receive): Changed from mail_receive.
- (build_dialogue): Setup the sending data, as well.
- (mail_update_subfolders): New function to update folder info.
- (send_mail_send): hook into cancellation if we want.
-
-2001-01-20 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-ops.c (do_send_queue): Strip leading space from the
- transport url gotten from the message.
-
-2001-01-19 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-format.c (mail_generate_reply): If the name is empty
- string, use the address.
-
-2001-01-19 Dan Winship <danw@ximian.com>
-
- * mail-display.c (pixmap_press): Update for e_popup_menu_run
- change.
-
- * folder-browser.c (etable_key): On GDK_Menu (the menu key on
- 105-key keyboards), pop up the right-click menu.
- (on_right_click): update for e_popup_menu_run change.
-
- * subscribe-dialog.c (recursive_add_folder): New function to add a
- folder and any parents of it that don't yet exist. Fixes bugzilla
- #1028.
-
-2001-01-19 Not Zed <NotZed@Ximian.com>
-
- * mail-send-recv.c: New swanky send/recieve thingy, well it so far
- only receives (pop/mbox). Ignore all the warnings for now, and
- the ugly 'button' to run it.
-
-2001-01-18 Jeffrey Stedfast <fejj@ximian.com>
-
- * folder-browser-factory.c: Added the next/previous toolbar
- buttons.
-
- * mail-callbacks.c (next_msg): New callback so we can have a next
- toolbar button.
- (previous_msg): Same but for previous.
-
-2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (construct): Anna's dialog now supports
- SSL so we can get rid of the ssl-support checks. Also work around
- the fact that Anna's dialog doesn't have an optionmenu for the
- transport type, it's a label instead.
- (transport_type_init): Cast the transport_type widget to a
- GtkOptionMenu where appropriate as the widget that stores it is
- now generic.
- (apply_changes): Modify code to work with anna's dialog...*sigh*
- (ok_clicked): Alert the user that one or more servers failed to
- validate and allow him to continue anyway.
-
-2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_set_pgp_path): New config function to
- set the path to the pgp binary.
- (mail_config_get_pgp_path): Gee I wonder...
- (mail_config_set_pgp_type): This one sets the type (ie PGP5, PGP2,
- or GnuPG - see openpgp-utils.h for values)
- (mail_config_get_pgp_type): Der.
-
-2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (construct): Handle NULL source and, while
- we're at it, transport URLs. Apparently camel_url_new() and/or
- camel-url_free() don't handle NULL input well.
-
- * mail-accounts.c (load_accounts): Handle NULL source URLs.
-
-2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (construct): Oops. "url && url->host"
- doesn't do much without the '?' and ':' ;-)
-
-2001-01-17 Ettore Perazzoli <ettore@ximian.com>
-
- * mail-ops.c (set_x_mailer): New function.
- (send_mail_send): Use it.
- (do_send_queue): Use it.
-
-2001-01-17 Martin Norbäck <d95mback@dtek.chalmers.se>
-
- * openpgp-utils.c (pgp_get_passphrase): Changed the word entry
- to enter, which is the correct word to use.
-
-2001-01-17 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (ask_confirm_for_empty_subject): Update to use
- EMessageBox and to record if the user doesn't want to ever see
- this dialog again.
-
- * mail-config.c (mail_config_get_prompt_empty_subject): New config
- function.
- (mail_config_set_prompt_empty_subject): Another new one.
-
-2001-01-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (apply_changes): Modify to be able to
- handle a NULL source_url.
- (source_auth_init): Allow for a NULL source url.
- (source_check): Same.
-
- * mail-config.c (mail_config_write): Allow for NULL source
- URLs. And while we're at it, NULL transport URLs as well. Might as
- well save the use_ssl variable too.
- (config_read): Same.
-
- * mail-config-druid.c (druid_finish): Modify to allow a NULL
- source url.
- (incoming_next): Modify to check for a NULL source and jump to the
- transport page if one is encountered (this means the user decided
- not to config a source).
- (incoming_type_changed): Modify to set all widgets insensitive if
- the user selected the "None" source menu item (aka NULL provider).
- (incoming_check): Modify to allow the user to go to the next page
- when he/she has chosen "None" for their source type.
- (mail_config_druid_get_source_url): Return NULL if the provider is
- NULL.
- (mail_config_druid_get_transport_url): Same.
-
-2001-01-16 Dan Winship <danw@ximian.com>
-
- * mail-display.c (on_object_requested): Don't do thumbnails for
- offline images
-
-2001-01-16 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-callbacks.c (save_msg_ok): If the user hits "No", then
- don't destroy the filesel window.
-
- * mail-ops.c (save_messages_save): Open with mode 0666 as danw
- suggests.
-
-2001-01-16 Chris Toshok <toshok@helixcode.com>
-
- * component-factory.c (owner_set_cb): only load the news storage
- if ENABLE_NNTP.
-
- * mail-accounts.c (construct): if !ENABLE_NNTP, remove the news
- page from the dialog.
-
-2001-01-16 Radek Doulik <rodo@helixcode.com>
-
- * mail-format.c (mail_generate_reply): use
- e_msg_composer_mark_text_orig
-
-2001-01-16 Dan Winship <danw@ximian.com>
-
- * mail-ops.c (send_mail_send, do_send_queue): Update the X-Mailer
- header to use the string specified by configure.
-
-2001-01-16 Jason Leach <jasonleach@usa.net>
-
- * subscribe-dialog.c: removed unecessary #inlcude "e-title-bar.h"
-
-2001-01-16 Jason Leach <jasonleach@usa.net>
-
- * openpgp-utils.c (pgp_get_passphrase): Fix a string causing
- translation problems. Bug #1147.
-
-2001-01-16 Not Zed <NotZed@Ximian.com>
-
- * mail-ops.c (mail_do_fetch_mail): Setup a cancellation handle.
- (do_fetch_mail): REgister for cancellation here.
- (cleanup_fetch_mail): And unregister for cancellation here.
- (mail_get_message): Add a cancel handle.
- (get_message_get): Register/deregister for cancel.
- (get_message_free): & clean up.
-
- * mail-mt.c (mail_msg_received): Removed debuggng.
-
- * mail-callbacks.c (stop_threads): Callback for stopping.
-
- * folder-browser-factory.c: Add a stop button verb thingy.
- (control_activate): Disable the stop button by default.
-
-2001-01-15 Christopher James Lahey <clahey@ximian.com>
-
- * message-list.c, message-list.h: Change from using filters for
- date and size to using e_cell_date and e_cell_size. Moved a bunch
- of includes from the message-list.h to the message-list.c.
-
-2001-01-15 Miguel de Icaza <miguel@ximian.com>
-
- * mail-callbacks.c (configure_mail): Set the default button to
- `Yes' here.
-
-2001-01-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-account-editor.c (source_auth_init): If the preferred
- authmech isn't found, default to the first one in the list.
- (transport_construct_authmenu): This function already did the
- above but I made it simpler.
- (apply_changes): A number of cleanups.
-
-2001-01-13 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config-druid.c (druid_finish): Fixed mail_load_storages to
- make a mini GSList of the account, not the account->source. Oops.
-
- * mail-accounts.c (news_delete): Updated to use the remove_news()
- function.
-
- * mail-config.c (mail_config_remove_news): New convenience
- function for removing news accounts.
- (mail_config_remove_account): Pretty much the same thing.
-
- * mail-ops.c (do_send_queue): Get the X-Evolution-Transport URL
- and use that if it exists, else fall back on the default
- transport.
-
- * mail-callbacks.c (composer_postpone_cb): Set an
- X-Evolution-Transport header.
-
-2001-01-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * Makefile.am: Removed GPG_* variables.
-
- * 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.
-
-2001-01-12 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Changed filter_date and filter_size to match the
- changes in gal.
-
-2001-01-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.glade: Anna's dialogs.
-
- * mail-config.c (mail_config_get_account_by_address):
- Removed. Danw and I decided on setting a X-Evolution-Transport
- header on messages going to the Outbox so we can later guess which
- transport to use when sending it.
-
- * mail-account-editor.c (apply_changes): Update to some day be
- able to support SSL.
- (construct): Update for Anna's dialogs...
-
- * subscribe-dialog.c (populate_store_list): Updated to reflect
- past changes to the mail-config API.
-
-2001-01-12 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (composer_send_cb): Get the account by using
- the new e_msg_composer_get_preferred_account() function. Also
- check to make sure everything is configured (in case they deleted
- their accounts while composing mail?).
-
- * mail-config.c (mail_config_get_account_by_address): New
- convenience function.
-
-2001-01-12 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c (component_fn): Pass NULL as the
- @copy_folder_fn arg to `evolution_shell_component_new()'.
-
- * folder-browser.c (on_right_click): Removed hide menu. It
- belongs to the view menu now.
-
-2001-01-12 Miguel de Icaza <miguel@ximian.com>
-
- * message-list.c: Add strings for localization
-
- * folder-browser.c: Rename "Save" to "Store search as vFolder".
-
-2001-01-11 Miguel de Icaza <miguel@gnu.org>
-
- * mail-display.c (on_object_requested): Unref the property bag
- when we are done with it.
- (get_embedded_for_component): Moved the code to request the
- embeddable/control to a separate function.
-
-2001-01-12 Jeffrey Stedfast <fejj@ximian.com>
-
- * mail-config.c (mail_config_get_account_by_name): New convenience
- function that I will need later when I redo the composer From
- field.
-
- * mail-display.c (on_object_requested): Update to reflect past
- changes to the mail-config API.
-
- * session.c (mail_session_set_password): strdup() the key.
-
- * mail-config-druid.c (construct): We don't want to be able to set
- the reply-to in the config druid.
- (druid_finish): Don't set a reply-to anymore.
- (mail_config_druid_finalise): Don't unref the providers.
-
- * mail-config.glade: Took out the Reply-To field in the druid.
-
-2001-01-11 Miguel de Icaza <miguel@gnu.org>
-
- * mail-config-druid.c (incoming_type_changed): Guess the default
- MAIL value for MBOX and Maildir files.
-
- * mail-callbacks.c (configure_mail): Force finalization of the
- function before returning fixing the FIXME that was there.
-
-2001-01-11 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config-druid.c (transport_next): If the service_check
- fails, pop-up a warning dialog letting the user know he or she may
- have problems and then let them continue on with their lives.
- (incoming_next): Same (+ jump them over the auth page to the
- transport page).
-
- * mail-account-editor.c (apply_changes): Eek! Don't destroy the
- account if the connection fails, duh. This is what is causing the
- segfaults.
-
-2001-01-11 Dan Winship <danw@ximian.com>
-
- * folder-browser.c (got_folder): Connect to folder_changed as well
- as message_changed for updating unread count
-
-2001-01-10 Miguel de Icaza <miguel@helixcode.com>
-
- * GNOME_Evolution_Mail.oafinfo: Add Bonobo/ItemContainer as the
- set of supported interfaces in GNOME_Evolution_Mail_Composer
- component.
-
-2001-01-11 Dan Winship <danw@ximian.com>
-
- * mail-format.c (write_field_to_stream): Translate the header name
- to UTF8.
-
-2001-01-10 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (configure_mail): New function that explains to
- the user why he can't do the action he requested and then procedes
- to ask if he'd like to configure his accounts now.
- (check_send_configuration): If the user doesn't have configured
- accounts, don't let him continue and call configure_mail().
- (fetch_mail): Same.
- (send_queued_mail): Same.
- (send_receieve_mail): Same.
-
- * mail-config.c (mail_config_write): Don't save a "is_configured"
- variable. Instead we'll just check to see if we have accounts - if
- yes, then configured == TRUE.
- (mail_config_is_configured): return accounts != NULL.
- (mail_config_get_default_account): Mark the first account as the
- default if none are marked.
-
-2001-01-10 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-account-editor.c (source_auth_type_changed): Set the
- sensitivity of the Password label too.
-
- * mail-config-druid.c (transport_back): New callback to handle
- when the user hits the "back" button when on the transport
- page. This is needed to handle the case where we don't want to
- show the user the auth page (due to there being no auth choices).
- (incoming_next): If we are going to skip over the auth page, set
- the 'have_auth_page' variable to FALSE.
- (construct): Initialize the have_auth_page to TRUE.
-
-2001-01-10 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config-druid.c (incoming_type_changed): Grab the focus of
- the first widget that is sensitive.
- (transport_type_changed): Same.
- (identity_prepare): Grab the focus of the name entry.
-
- * mail-callbacks.c (send_queued_mail): Prevent Federico's segfault.
-
-2001-01-10 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config-druid.c (auth_type_changed): Clear the password
- entry if it's not allowed.
- (transport_type_changed): Clear the hostname if it is not allowed
- by the provider type.
-
- * mail-account-editor.c (transport_type_changed): If the hostname
- is allowed, clear it.
-
- * mail-config-druid.c (incoming_type_changed): Clear the contents
- of the entry boxes that are not to be used.
- (mail_config_druid_get_source_url): If the text in the entry is
- emptry string, don't set it' contents in the url.
-
-2001-01-10 Miguel de Icaza <miguel@helixcode.com>
-
- * mail-callbacks.c (print_msg): Fix proto.
- (print_preview_msg): Fix proto.
-
- * subscribe-dialog.c: Remove more UNSAFE macros.
-
-2001-01-09 Jason Leach <jasonleach@usa.net>
-
- * mail-display.c (pixmap_press): Bugfix for #1077: scrollwheel
- doesn't work while hovering over an attachment icon.
-
-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.
-
-2001-01-09 Dan Winship <danw@helixcode.com>
-
- * mail-local.c (local_folder_changed_proxy): Change
- mail_op_forward_event to mail_proxy_event.
-
-2001-01-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (save_messages_save): Let the system umask determine
- the permissions of this file.
-
- * mail-config-druid.c (incoming_type_changed): Gray out the
- appropriate labels too.
- (auth_type_changed): And here.
- (transport_type_changed): Here too...
-
- * mail-account-editor.c (source_check): Gray out the appropriate
- labels too.
- (transport_type_changed): And here too.
-
-2001-01-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-account-editor.c: For all optionmenu's, set the appropriate
- 'history'.
- (keep_mail_check): Set the keep-on-server checkbutton sensitivity
- based on whether or not the store is a storage or not.
- (construct): Call keep_mail_check().
-
- * mail-config-druid.c (incoming_type_changed): Set the
- keep-on-server checkbutton sensitivity based on whether or not the
- store is a storage or not.
-
- * mail-accounts.c (construct): Make sure the dialog isn't a
- scrunched little thingy.
-
-2001-01-09 Dan Winship <danw@helixcode.com>
-
- * Makefile.am (evolution_mail_LDFLAGS): Add -export-dynamic, so
- libglade can resolve evolution-mail symbols.
-
-2001-01-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c: Updated.
- (decode_pgp): Get rid of #ifdef PGP_PROGRAM's and handle
- appropriately.
- (handle_multipart_signed): Same.
- (handle_multipart_encrypted): Same.
-
- * Makefile.am: Added openpgp-utils.[c,h] to the build.
-
- * openpgp-utils.c: New source file containing all of the pgp
- interface code.
-
- * mail-crypto.c: Removed all of the openpgp funtions as they are
- being moved to a new file.
- (mail_crypto_is_rfc2015_signed): Renamed.
- (mail_crypto_is_rfc2015_encrypted): Renamed.
-
-2001-01-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * session.c (mail_session_set_password): New function to set the
- password for a given url.
-
- * mail-config-druid.c (druid_finish): Don't save the password in
- the source url, instead insert it into the save-password hash.
- (mail_config_druid_get_source_url): Check to make sure the
- authmech isn't "", if it is then don't set the authmech.
-
- * mail-account-editor.c (apply_changes): Don't save the password
- in the source url, instead insert it into the save-password
- hash. Also check to make sure we don't set an empty string as the
- authmech for the source or transport.
-
- * mail-accounts.c (mail_default): After reloading the accounts,
- reselect the previously selected account.
- (mail_delete): Same.
-
- * mail-config-druid.c (druid_cancel): Fixed segfault bug.
-
-2001-01-09 Radek Doulik <rodo@helixcode.com>
-
- * mail-format.c (write_headers): remove </center><p>
- (handle_text_plain): add <font size=\"-3\">&nbsp</font><br> before
- msg text
- (handle_text_plain_flowed): ditto
-
-2001-01-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-accounts.c (mail_default): Write the config data and reload
- the accounts list so the "default" tag is relocated.
- (mail_delete): Write the config data here too.
-
-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.
-
-2001-01-08 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c: Add an #include <errno.h>
-
-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.
-
-2001-01-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config-druid.c: More lovely fixes...
-
- * mail-callbacks.c: Don't segfault if a default account doesn't
- exist.
-
-2001-01-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config-druid.c: A bunch of fixes.
-
- * mail-accounts.c: More fixes...
-
- * mail-account-editor.c (construct): Reparent the notebook to the
- editor->vbox and set the resize policy.
-
-2001-01-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (providers_config): Use a
- gnome_dialog_run_and_close().
-
- * mail-accounts.c (construct): Reparent the notebook to the
- dialog->vbox not to the dialog itself. Also set the resize policy
- to allow the user to stretch it.
-
-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.
-
-2001-01-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-accounts.c (mail_edit): Implemented.
-
- * mail-account-editor.c (apply_clicked): Implemented.
- (ok_clicked): Implemented.
- (cancel_clicked): Implemented.
- (source_auth_type_changed): Implemented.
- (source_auth_init): Implemented.
- (transport_construct_authmenu): Implemented.
- (transport_type_changed): Updated to change regenerate the auth
- option menu.
- (construct): Attached callbacks to OK, Apply and Cancel buttons.
-
- * mail-account-editor.c (source_auth_init): Use the new
- mail_config_check_service().
-
- * mail-config-druid.c: Remove check_service() as it will be moved
- into mail-config.
-
-2001-01-06 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (message_list_select): Made it so that going to
- the next or previous message in the list will at least move one
- message, even if the current message matches the query. This
- makes 'n' go to the next unread message, even if the current
- message is unread.
-
-2001-01-06 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-account-editor.c: Coded a bunch of the methods.
-
-2001-01-04 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c (idle_check): Check if the HTML for the current
- summary has been created, and if not then keep trying until it
- has.
- (new_folder_cb)
- (removed_folder_cb)
- (create_summary_view): Use the idle_check function to generate the
- summary.
- (create_summary_view): Don't set the HTML here. Set it via the
- pipe.
-
-2001-01-05 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-account-editor.[c,h]: New source files to provide an
- account editor widget.
-
- * mail-config-druid.c (auth_type_changed): Set the authproto on
- the druid so we can look it up later.
-
-2001-01-05 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-accounts.c (mail_add): Since the druid now handles adding
- the new account to the config, we'll just connect to the destroy
- event and show the druid.
- (mail_add_finished): Just reload the account list here.
-
- * mail-config-druid.c (druid_finish): New callback to handle the
- "finish" signal. On second thought, it seems it would be best for
- the finish callback to be here rather than in mail-accounts.c.
-
- * mail-accounts.[c,h]: Added. Contains source for the Account manager
- window. And just like mail-config-druid.c, it's not yet complete.
-
- * mail-config-druid.c (mail_config_druid_get_incoming_keep_mail):
- Renamed from _delete_mail
- (mail_config_druid_get_transport_url): New convenience function
- that replaces the get_hostname, get_protocol, etc.
- (mail_config_druid_get_source_url): Same.
-
- * mail-config-druid.glade: Changed "Delete mail from server" to
- "Keep mail on server" as this has a more positive ring to it. Both
- I and Aaron agree this is the better phrase.
-
-2001-01-04 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config-druid.c: Fixed a few 'Oops'es.
-
- * mail-config-druid.glade: Added a "Default" button for marking an
- account as the default.
-
-2001-01-04 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config-druid.glade: Updated. What else can I say?
-
-2001-01-04 Dan Winship <danw@helixcode.com>
-
- * folder-browser.c (got_folder): Connect to "message_changed" on
- the folder if it's on a remote storage.
- (update_unread_count): Update the folder unread count / highlight
- in the shell when the unread message count changes
-
-2001-01-04 Not Zed <NotZed@HelixCode.com>
-
- * mail-ops.c (mail_do_send_mail): Removed old implementation.
-
- * folder-browser.c (do_message_selected): If we haven't got a real
- uid, then clear the display instead.
-
- * message-list.c (message_list_drag_data_get): Use new save
- message function, and also wait for it to finish before
- continuing.
- (folder_changed):
- (message_changed): Use mail_proxy_event instead of
- mail_do_forward.
- (mail_regen_list): New iplementation to replace the old.
- : remove <gnome.h> from headers. Dont define timeit by default.
- (main_folder_changed):
- (message_list_set_folder):
- (message_list_set_threaded):
- (message_list_set_search):
- (message_list_hide_add):
- (message_list_hide_uids):
- (message_list_hide_clear): Use mail_regen_list instead of
- mail_do_regenerate_messagelist.
- (mail_do_regenerate_messagelist): Removed the old stuff. No
- functionality changed yet, just using different thread stuff.
-
- * mail-callbacks.c (save_msg_ok): Use new save message function.
-
- * component-factory.c (create_view):
- (add_storage): Use mail_scan_subfolders to build the folder info.
- (create_folder): Use new implementation with our own callback.
- (owner_set_cb): Changed b ack to use mail_get_folder, but now wait
- for it to finish. This will let any gui still run, but also gives
- us the required synchronous operation.
- (got_folder): Callback for when the folder has been opened.
-
- * mail-ops.c (mail_get_folderinfo): New function to just get the
- folder info in another thread.
- (mail_scan_subfolders): New scan subfolder implementation that
- uses mail_get_folderinfo.
- (mail_do_scan_subfolders): Removed old implementation.
- (mail_create_folder): Nerw implementation to create a folder, only.
- (mail_do_create_folder): Removed old implementation.
- (mail_save_messages): New implementation, fixes a couple of minor
- problems, and now provides a return so it can be waited on. Also
- check that the writes worked, etc.
- (mail_do_save_messages): Remove previous implementation.
- (mail_do_flag_messages): Removed, nothing uses it.
- (mail_do_flag_messages): Removed, nothing uses it anymore.
- (mail_get_folder): REturn the operation id, so callers can wait
- for it.
- (sync_folder_desc):
- (expunge_folder_desc): Add describe functions so we know what its
- doing.
- (mail_send_mail): More generic implementation of sending mail.
-
- * mail-mt.c (mail_msg_new): Lock around seq increment. And insert
- each new message into a hash table of active messages.
- (mail_msg_init): Init the active message table.
- (mail_msg_free): Remove the message from the active message table.
- (mail_msg_wait): New function, waits for a message to be
- processed, by id.
- (mail_msg_check_error): Dont display the error if it is a
- user-cancelled operation.
- (mail_proxy_event): new implementation of mail_op_forward_event.
- Only real difference is it uses the new thread stuff, and you can
- wait for it to finish if you want.
- (mail_proxy_event): If we're already in the main thread, just call
- the function.
-
-2001-01-03 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config-druid.c: New source file that implements
- mail-config-druid. Note: this is not yet complete.
-
-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.
-
-2001-01-03 Radek Doulik <rodo@helixcode.com>
-
- * mail-format.c (write_headers): add font color setting for table,
- changed border behavior
-
- * mail-display.c (redisplay): don't set body bg and text color
-
-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.
-
-2001-01-02 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (mail_part_is_inline):
- (find_preferred_alternative):
- * mail-display.c (launch_cb): Use header_content_type_simple, not
- header_content_type_format.
-
-2000-12-26 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-crypto.c (mail_crypto_openpgp_verify): Implemented.
-
-2000-12-23 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (mail_do_setup_trash): New function similar to
- mail_do_setup_folder() except that this creates the Trash VFolder
- (special-case).
-
-2000-12-21 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_send_mail): Don't free info inside the last
- if-statement, if sent_folder doesn't exist we'll have a memory
- leak. Instead free it afterward.
-
-2000-12-29 Dan Winship <danw@helixcode.com>
-
- * mail-crypto.c: Oops. Update this for CamelContentType stuff too.
-
-2000-12-28 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (mail_part_is_inline, mail_get_message_body): Use
- CamelContentType, and use header_content_type_is instead of doing
- it by hand.
-
- (handle_text_plain):
- (handle_multipart_related):
- (find_preferred_alternative):
- (handle_message_external_body): Use CamelContentType and
- header_content_type_* functions instead of GMimeContentField.
-
- * mail-display.c (write_data_to_file, launch_cb): Use
- CamelContentType and header_content_type_* functions instead of
- GMimeContentField.
-
-2000-12-26 Iain Holmes <iain@helixcode.com>
-
- * mail-display.c (mail_display_init): Initialise the thumbnail cache.
- (mail_display_destroy): Free the cache.
- (pixbuf_gen_idle): Check the cache for a pixbuf, add the pixbuf to the
- cache if it's not there.
-
-2000-12-26 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c (create_summary_view): Create a shared
- BonoboEventSource object and use it for all the objects that
- aggregate Bonobo::EventSource.
-
-2000-12-27 Dan Winship <danw@helixcode.com>
-
- * subscribe-dialog.c (setup_subscribe_folder): Use info->name, not
- input->full_name. Fixes #1029 in bugzilla.helixcode.com.
- ({setup,do,cleanup}_subscribe_folder): Update previous fix: Jeff
- had changed it to use ->full_name instead of ->name because that's
- what camel_store_subscribe_folder needed. So we need to have
- *both* names available, one for Camel, one for the shell.
-
-2000-12-24 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (filter_date): Changed this to format times in 12
- hour time instead of 24 hour time.
-
-2000-12-24 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (filter_date): Changed this to do different
- formatting of dates within the last week.
-
-2000-12-24 Not Zed <NotZed@HelixCode.com>
-
- * Merge from camel-mt-branch.
-
-2000-12-23 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (filter_date): Changed this to do different
- formatting of dates based on the current time.
-
-2000-12-23 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (message_list_get_layout): Added titles to the
- pixbuf columns.
-
-2000-12-21 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c: Added code to detect and regenerate the summary
- when a new vfolder is created or removed.
-
- * mail-vfolder.c: Export the vfolder_storage variable, so that
- the summary can add a listener to it.
-
-2000-12-05 Iain Holmes <iain@helixcode.com>
-
- * component-factory.c (factory_destroy): Wait till all views have
- gone and then destroy both factories.
-
-2000-12-21 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (pixbuf_for_mime_type): Deal with the possibility
- that we have an icon-filename listed for a MIME type, but the icon
- file doesn't actually exist. Also, if gnome-unknown.png can't be
- found, fall back. Might fix a crash people have been reporting...
-
-2000-12-18 Chris Toshok <toshok@helixcode.com>
-
- * mail-format.c (handle_multipart_encrypted): for now #ifdef
- PGP_PROGRAM falling back to handle_multipart_mixed.
- (handle_multipart_signed): same.
-
-2000-12-18 Dan Winship <danw@helixcode.com>
-
- * message-list.c (hide_save_state): Unlock camel when done to
- prevent a hang later.
-
-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.
-
-2000-12-23 Not Zed <NotZed@HelixCode.com>
-
- * message-list.h (MessageList): Add a specific hide data lock.
-
- * message-list.c (message_list_drag_data_get): Do not use
- cursor_uid, but get all currentlys elected messages directly off
- the message-list.
- (message_list_destroy): Removed mail_tool_camel_lock stuff.
- (on_click): "
- (message_list_hide_add, message_list_hide_uids, hide_load_state,
- hide_save_state, message_list_hide_clear): ", but use a specfic
- lock for the hide data.
- (do_regenerate_messagelist): remove mail_tool_camel_lock stuff,
- add hide_lock where required.
- (message_list_init): Setup the hide_lock.
- (message_list_destroy): Free the hide_lock.
-
-2000-12-22 Not Zed <NotZed@HelixCode.com>
-
- * mail-ops.c (mail_do_sync_folder): Run sync in different thread
- each time. Just a quick litlte hack to check multithreading.
- There are now few operations that single-queue. Need to work out
- a way to make the allocation of threads & resources easier, so we
- dont get overwhelmed with threads, but we dont block when we dont
- have to, either.
-
- * message-list.c (main_folder_changed): If we have only changed
- events, then process them directly.
- (mail_do_regenerate_messagelist): Run regenerate in a new thread
- each time, another quick hack to check mutlithreading.
-
- * mail-view.c (view_delete_msg): Call camel folder set message
- flags directly. mail_do_set_message_flags() is now completely
- unused.
-
- * folder-browser.c (mark_msg_seen): Call camel folder
- set_message_flags directly.
-
- * mail-callbacks.c (flag_messages): New function, that just sets
- flags of all selected messages, without all that messy thread
- stuff (setting flags is in-memory).
- (mark_as_seen): Use flag_messages().
- (mark_as_unseen): "
- (undelete_msg): "
- (delete_msg): "
-
-2000-12-20 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (message_list_select): Free messageinfo lookups.
- (message_list_drag_data_get): "
- (subtree_unread): "
- (subtree_size): "
- (subtree_earliest): "
- (ml_tree_value_at): " Also, keep the message info around in a
- static variable, and ref'd, so that any internal references we
- have to it dont vanish while we're not looking. This has a couple
- of problems ... esp since we never unref the last access, although
- camel-folder-summary wont check this when its unref'd, so we're
- 'safe'.
- (save_node_state): free messageinfo lookups.
- (on_click): "
- (get_message_info): deconstify return.
-
- * mail-tools.c (mail_tool_move_folder_contents): Free messageinfo
- lookups.
-
- * mail-ops.c (do_filter_ondemand): Free messageinfo lookups.
- (do_flag_messages): "
- (do_fetch_mail): Remove mail_tool_lock stuff.
- (mail_operation_run): Quick hack to run an operation
- asynchrounously, in a brand-new thread.
-
- * folder-browser.c (on_right_click): Free messageinfo lookups.
-
-2000-12-16 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (build_tree): Always use the slow (full-update)
- version of the tree update code, to get around a bug(?) in etree.
- (build_flat): Likewise.
-
-2000-12-15 Not Zed <NotZed@HelixCode.com>
-
- * mail-display.c (write_data_to_file): Dont blindly convert all
- parts to utf8, e.g. image/jpg. We only convert text/* parts, and
- only then if required.
-
-2000-12-14 Not Zed <NotZed@HelixCode.com>
-
- * component-factory.c (create_view): cast over a warning.
-
- * folder-browser-factory.c: Add verbs for hide functions.
-
- * message-list.c (message_list_hide_clear):
- (message_list_hide_uids):
- (message_list_hide_add): Some api renaming.
- (message_list_hide_add): Allow ML_HIDE_SAME to be passed to mean
- not to change the upper/lower range at all.
- (hide_save_state): Save the state of the hide list to stable
- storage.
- (hide_load_state): Load the state of hte hide list.
- (message_list_set_folder): Load/save the state of the folder if it
- is changed/set.
- (message_list_destroy): Save the state of the folder hide list
- when done.
- (save_tree_state): If we wrote out an empty state file, simply
- remove it instead.
-
- * folder-browser.c (on_right_click): Add some hide menus.
- (hide_read): Hide read messages.
- (hide_deleted): Hide deleted messages.
- (hide_selected): Hide selected/current message.
- (hide_none): Show all hidden messages.
- (on_right_click): Lock around accesses to the message (inside
- mlist_detect_magic).
- (on_right_click): Free the mailing list name.
-
-2000-12-13 Not Zed <NotZed@HelixCode.com>
-
- * folder-browser.c (on_right_click): Add camel locking since we
- call it directly. Whoever heard of a lock you 'down' to unlock?
-
- * message-list.c (mail_do_regenerate_messagelist): Added hide
- expression, messages to hide. Fixed all callers.
- (do_regenerate_messagelist): IF we have a hide expression, search
- and remove those from the uid list. If we have a hide range,
- apply that afterwards.
- (cleanup_regenerate_messagelist): Handle freeing the hide uid
- temporary data, if required.
- (message_list_destroy): Free hide data, also lock around all camel
- object stuff.
- (message_list_length): New function to get the number of messages
- avaialble to be hidden by range.
- (message_list_set_hide): Set the hide expression and range.
- Issue: Should hiding be remembered?
- (message_list_unhide_all): Turn off all hiding.
- (message_list_hide_uids): Hide a list of uid's.
-
-2000-12-15 Dan Winship <danw@helixcode.com>
-
- * subscribe-dialog.c (folder_toggle_cb): Update this for the new
- signal handler prototype. Fixes the crash on double-click.
-
-2000-12-15 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c (handle_multipart_signed): New callback to handle
- multipart/signed parts.
- (decode_pgp): Update to account for the cipherlen argument needed
- for openpgp_decrypt.
- (is_rfc2015): Removed as we now have a better version in
- mail-crypto.
- (handle_multipart_encrypted): Updated to use the PGP/MIME utility
- functions.
-
- * mail-crypto.c (mail_crypto_openpgp_decrypt): Don't check
- (!*plaintext) as it could be a binary stream. Now also takes a
- cipherlen argument.
- (mail_crypto_openpgp_sign): New function.
- (pgp_mime_part_sign): New function to replace a mime part with the
- pgp signed equivalent.
- (pgp_mime_part_encrypt): New function to replace a mime part with
- the pgp encrypted equivalent.
- (pgp_mime_part_decrypt): New function to decrypt a pgp encrypted
- mime part (like from pgp_mime_part_encrypt) and replace it.
- (is_rfc2015_signed): New function to determine if a mime part is
- an rfc2015 signed part.
- (is_rfc2015_encrypted): New function to determine if a mime part
- is an rfc2015 encrypted part.
- (mail_crypto_openpgp_verify): New openpgp function to verify a
- signature.
-
-2000-12-14 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-threads.c (update_active_views): Unref the iterator when
- we're done with it.
-
-2000-12-14 Larry Ewing <lewing@helixcode.com>
-
- * mail-display.c (mail_display_new): call
- gtk_html_set_default_content_type to make gkthtml default to utf-8
- when parsing. This requires gtkhtml >= the released 0.8.
-
-2000-12-14 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-threads.c (read_msg): Call `ui_set_busy()' before
- `ui_set_message()' so that we are sure that the
- set_busy/unset_busy calls always happen in order.
-
-2000-12-13 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser.c (my_folder_browser_init): Made the vertical
- scrollbar always be there.
-
- * message-list.c (message_list_get_layout): Changed the minimum
- width of some of the pixmap column headers.
-
-2000-12-12 Christopher James Lahey <clahey@helixcode.com>
-
- * component-factory.c (create_view): Added a cast.
-
- * mail-summary.c: Added #include "mail-summary.h". Commented out
- folder_free, summary_free, and view_destroy_cb since they're not
- used.
- (do_changed): Added a cast.
- (create_summary_view): Changed some types so that casting would be
- easier.
-
- * session.c (mail_session_remember_password): Added a cast.
-
-2000-12-12 Dan Winship <danw@helixcode.com>
-
- * mail-summary.h: Fix to use the right .h instead of the
- deprecated one.
-
-2000-12-12 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (forward_message): Attach a signature when
- forwarding, fixes bug #826.
-
-2000-12-11 Dan Winship <danw@helixcode.com>
-
- * session.c (mail_session_enable_interaction): New function to
- tell the code that it's ok (or not) to interact with the user when
- trying to authenticate to a service. Starts out turned off.
- (mail_session_request_dialog): If interaction is disabled, fail if
- the password isn't in the cache.
-
- * component-factory.c (owner_set_cb): Call
- mail_session_enable_interaction() after everything else. (This
- means that the IMAP password dialog will no longer pop up [under
- the splash screen] at startup.)
-
-2000-12-11 Dan Winship <danw@helixcode.com>
-
- * component-factory.c (create_view): Deal with "mailstorage" type
- views (top-level mail storages) by trying to fill the storage's
- folder tree again if we failed before.
- (add_storage): Create new storages with a URI and type
- "mailstorage".
-
- * mail-ops.c (cleanup_scan_subfolders): On success, mark the
- storage as having been loaded, so create_view won't try again.
-
-2000-12-11 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c (decode_pgp): Updated to reflect arguments to the
- openpgp functions - now also takes an outlen argument.
- (try_inline_pgp): Updated.
- (handle_multipart_encrypted): Updated here too.
-
- * mail-crypto.c (crypto_exec_with_passwd): Updated to handle
- binary streams and such.
- (mail_crypto_openpgp_encrypt): Always initialize the passwd_fds
- even if we don't plan on signing. Added an 'inlen' to specify the
- length of the input data (as it could be binary). Also added a
- 'userid' argument for cases when we want to sign as well as
- encrypt.
- (mail_crypto_openpgp_decrypt): Updated to take an outlen argument
- in case the ciphertext is encrypted binary data.
- (mail_crypto_openpgp_clearsign): Added a 'hash' and 'detach'
- arguments. 'hash' allows the program to specify the preferred hash
- function (which will come in handy when generating
- PGP/MIME). 'detach' allows the program to specify whether it wants
- a detached signature or the entire signed text.
-
-2000-12-11 Dan Winship <danw@helixcode.com>
-
- * message-list.c: Remove the never-once-used BonoboObject stuff
- and make MessageList be a GtkWidget instead. Also, keep track of
- the ETable directly rather than repeatedly calling
- e_table_scrolled_get_table.
-
- * folder-browser.c (folder_browser_destroy): Use gtk methods
- rather than bonobo methods to destroy the message list.
- (on_right_click, on_double_click): These are being attached to the
- ETable directly now, so fix the first argument (which isn't being
- used anyway, but...). Ignore double-clicks on "active" columns
- (the ones where clicking does something beyond "select"), fixing
- bug #811, which is what got me started on this to begin with...
- (folder_browser_gui_init): simplify now that MessageList itself is
- a widget. Also use message_list->table rather than
- e_table_scrolled_get_table.
-
- * mail-local.c (mail_local_reconfigure_folder): Add "mail_" to
- the beginning of this function name to match its prototype and the
- other vague namespace conventions in the mailer.
-
- * mail-callbacks.c (select_all, invert_selection): Use ml->table.
- (configure_folder): s/local_reconfigure_folder/mail_&/
-
- * mail-ops.c (do_flag_messages): clean up the cleanup a bit
-
- * mail-tools.c (mail_tool_quote_message): Remove an unused
- variable.
-
-2000-12-11 Not Zed <NotZed@HelixCode.com>
-
- * local-config.glade: reordered the options and added maildir,
- mbox, maildir, mh, in that order.
-
- * mail-local.c (reconfigure_clicked): Added maildir, re-ordered to
- match the changed xml file too.
- (do_reconfigure_folder): WHoever 'threaded' this code forgot to
- check that folder_browser functions shouldn't be called here.
- (cleanup_reconfigure_folder): Call it here instead.
- (lookup_folder): Blah blah, we have to lookup the folder and
- verify its still the same format, joy. Becaause someone thought
- it would be wise to make the code 5x more complicated for no
- reason, and totally break 'mail reconfigure' in the process. i'm
- really happy about that one.
- (cleanup_register_folder): Uh, yeah, so like, the
- local_store->folders hashtable is supposed to point to like,
- LocalFolders, not CamelFolders.
- (free_local_folder): Free the localfolder struct properly.
- (free_folder): Call above to free data properly.
- (get_folder): Fix for fixing folders hashtable.
- (local_storage_removed_folder_cb): Same here.
- (local_storage_new_folder_cb): Ref the local_store when putting it
- in the local_folder.
- (cleanup_register_folder): Properly free the local_folder if the
- op failed.
- (free_local_folder): Unhook events also.
- (d): Oops, left debug turned on.
-
-2000-12-09 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (message_list_init): Change the "drawfocus"
- argument on e_table_scrolled_get_table(etable) instead of on
- etable (etable is an ETableScrolled.)
-
-2000-12-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (save_msg_ok): Check to see if the file already
- exists, if it does prompt the user to for permission to overwrite
- the file.
- (forward_message): g_strdup the cursor_uid if there is only a
- single message to be forwarded or we'll segfault later.
-
- * mail-ops.c (do_save_messages): Rewrote yet again. I'm back to
- almost an identical implementation as the first time I wrote this
- except now we write the From line which I had forgotten last
- time. This means that we no longer have to unlink the .ev-summary
- file created and we also use fewer resources (no need to create a
- CamelMboxFolder object).
-
-2000-12-08 JP Rosevear <jpr@helixcode.com>
-
- * folder-browser.c (on_double_click): the e-table double-click
- signal now has extra params
-
-2000-12-07 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c (add_storage): Pass `NULL' as the
- @toplevel_node_handler_id arg in `evolution_storage_new()'.
- FIXME: We should be passing the ID of the mail component here.
- * mail-vfolder.c (vfolder_create_storage): Likewise.
-
-2000-12-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (message_list_get_layout): Set the "Size" field
- to sort using integer comparison instead of string.
- (filter_size): New function to transform a integer size into a
- more readable form.
- (ml_value_to_string): Use filter_size.
- (ml_value_is_empty): COL_SIZE is no longer a string, so handle
- this as an integer.
- (ml_initialize_value): Here too.
- (ml_free_value): And here.
- (ml_duplicate_value): And here too.
- (message_list_create_extras): Setup the size etable cell.
-
-2000-12-08 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser.c: Connect to signals on the ETable instead of
- the ETableScrolled.
-
- * subscribe-dialog.c: Used the e_table_scrolled_get_table function
- instead of accessing the variable directly.
-
-2000-12-08 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Connect to signals on the ETable instead of the
- ETableScrolled.
-
-2000-12-07 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Got rid of code referencing the ETableScrolled
- proxy functions. Changed the call to e_table_set_cursor_row to
- send a model row instead of a view row.
-
-2000-12-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (forward_message): Only do a
- message_list_foreach if we plan on attaching messages, otherwise
- just use ml->cursor_uid.
-
- * mail-ops.c (cleanup_forward_messages): If attaching multiple
- forwarded message, wrap them in a multipart/digest otherwise just
- attach the single message as a message/rfc822.
-
-2000-12-07 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (on_object_requested): Make the iTip hack spew a
- g_warning and not crash if you have no identity configured. To be
- revisited.
-
- * mail-callbacks.c: (various)
- * folder-browser.c (filter_mlist):
- * mail-autofilter.c (filter_gui_add_from_message):
- * mail-vfolder.c (vfolder_gui_add_from_message): Add some
- g_return_if_fail()s to protect from crashes until the code to
- enable/disable commands based on how many messages are selected is
- done.
-
-2000-12-06 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-vfolder.c (vfolder_gui_add_rule): Make the vfolder editor
- resize correctly. Fixes bug #835.
-
-2000-12-06 Dan Winship <danw@helixcode.com>
-
- Fix up shutdown so that things that should be destroyed get
- destroyed. Among other things, this fixes the bug where IMAP
- stores weren't disconnected at shutdown.
-
- * mail-threads.c (update_active_views): Update for
- folder_browser_factory_get_control_list change to EList.
-
- * folder-browser-factory.c: Turn control_list into an EList so
- that we can safely remove items from it while it's being iterated
- (which will happen as FolderBrowsers are destroyed at shutdown
- while the thread code is trying to update the status bars).
- (control_destroy_cb): Just destroy the folder_browser.
- (browser_destroy_cb): New callback for FolderBrowser destroy.
- Remove the control from control_list here instead of
- control_destroy_cb, because the controls don't seem to get
- destroyed reliably...
-
- * component-factory.c: Clean up stuff.
- (factory_destroy): Get rid of this.
- (owner_unset_cb): Schedule an idle handler to quit.
- (idle_quit): Wait for all of the FolderBrowsers to be destroyed
- and then destroy the storages and quit.
-
- * mail-summary.h (create_summary_view): Fix prototype
-
-2000-12-06 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c (mail_config_folder_to_cachename): Use
- e_filename_make_safe (which used to be e_str_make_safe).
-
- * mail-display.c (make_safe_filename): And here.
-
- * message-list.c (message_list_drag_data_get): Here too.
-
-2000-12-06 Dan Winship <danw@helixcode.com>
-
- * mail-local.c (cleanup_register_folder): Run the folder_changed
- code on message_changed as well, so the unread message counts
- update as messages are read.
-
- * folder-browser.c: Remove bits of filter-on-demand and toolbar
- bug workaround cruft that don't do anything useful any more.
-
- * mail-ops.c (cleanup_load_folder): unref the ref we added in
- setup_load_folder.
-
-2000-12-05 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-display.c (write_data_to_file): Use a charset filter to
- make sure the data is written out in the charset it was meant to
- be in instead of UTF-8.
-
- * mail-format.c (mail_format_raw_message): Don't use the raw
- message body as the format argument, use "%s" instead. If the raw
- message contains %'s then it will segfault otherwise.
-
-2000-12-04 Dan Winship <danw@helixcode.com>
-
- * mail-config-gui.c (service_page_item_new): Fix a typo so that
- toggling the "remember password" checkbox will activate the "OK"
- button if it was inactive.
-
-2000-12-05 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-vfolder.c (vfolder_create_storage): Updated the call to
- `evolution_storage_new()': pass NULL for @toplevel_node_uri.
-
- * component-factory.c (add_storage): Updated the call to
- `evolution_storage_new()': pass NULL for @toplevel_node_uri.
-
-2000-12-04 Jeffrey Stedfast <fejj@helixcode.com>
-
- * subscribe-dialog.c (setup_subscribe_folder): Use info->full_name
- rather than info->name so that we get the namespace part of the
- folder path as well.
-
-2000-12-04 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser-factory.c: Updated to define verbs
- "MessageForwardInlined" and "MessageForwardAttached" instead of
- "MessageForwardInline" and "MessageForwardAttach".
-
- * folder-browser.c (on_right_click): Make forwarding as an
- attachment the default.
-
- * mail-callbacks.c (forward_inlined): Renamed from `forward_msg'.
- (forward_attached): Renamed from `forward_attach'.
- * mail-callbacks.h: Updated accordingly.
-
-2000-12-01 Dan Winship <danw@helixcode.com>
-
- * session.c (mail_session_remember_password): Writes out passwords
- (to .gnome_private) in our patented proprietary "Best Awesome
- Super Encryption 64" ("BASE64") format which could not possibly
- ever be cracked by even the most cryptographically knowledgeable
- five-year-olds.
- (mail_session_init): Load remembered passwords at startup.
- (mail_session_forget_passwords): Erase them from disk as well as
- memory.
-
- * mail-config.c: Add "remember_password" field to
- MailConfigService.
- (mail_config_write_on_exit): Call mail_session_remember_password
- for services with "remember_password" set.
- * mail-config-gui.c: Add "remember password" checkbox to the
- dialogs, and make it appear and disappear as appropriate.
-
- * component-factory.c (mail_load_storages): Unref the store
- regardless of whether or not we're using it, so we don't leak
- references to non-storage stores.
-
-2000-12-01 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (e_mail_address_new): Perform better
- error-handling.
-
-2000-12-01 Radek Doulik <rodo@helixcode.com>
-
- * mail-ops.c (mail_op_report_status): use mail_op_set_message_plain
-
- * mail-threads.c (mail_op_set_message_plain): plain version of
- mail_op_set_message, doesn't use printf, passes message untouched,
- use set_message
- (mail_op_set_message): set_message
- (set_message): helper function
-
-2000-11-30 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (cleanup_fetch_mail): Don't display a dialog, instead
- inform the user that there was no new mail by setting a status
- message.
-
- * message-list.c (message_list_drag_data_get): Use the new
- e_str_make_safe function.
-
- * mail-display.c (make_safe_filename): And here.
-
- * mail-config.c (mail_config_folder_to_cachename): Here too.
-
-2000-11-30 Not Zed <NotZed@HelixCode.com>
-
- * mail-ops.c (cleanup_load_folder): Set threaded view before
- setting the folder (cleanup some flash ons tartup).
-
- * message-list.c (message_list_init): Initialise a mempool for uid
- string storage.
- (new_id_from_uid): Added messagelist arg, allocate strings from
- uid_pool.
- (new_id_from_subject): Same. Fixed all callers.
- (remove_node_diff): Dont free uid here.
- (build_flat_diff): Nor here.
- (clear_tree): Flush the mempool, rather than freeing the id's
- directly.
- (free_tree_ids): Removed, no longer required.
- (free_tree_ids): Likewise.
- (message_list_init): Dont connect to the table destroy signal
- anymore to free the uid table.
- (message_list_destroy): Free the uid pool here.
- (*): Use accessors for messageid stuff.
- (content_is_attachment): Removed, no longer required.
- (ml_tree_value_at): Get the attachment flag directly from the
- summary.
- (ml_tree_value_at): For 'fake' nodes, try and do something better
- than "?" for from, to, and size.
- (subtree_size): New function, add up the total size of a subtree.
- (subtree_earliest): Get the earliest date from a subtree.
- (ml_tree_value_at): Return earliest date sent/received for fake
- nodes.
- (ml_tree_value_at): Return something to mark a fake subject line
- as a fake subject, although i dont know, i guess this buggers up
- sorting ...
- (subtree_size): Check the info node is still there.
- (subtree_earliest): Same here.
- (subtree_unread): And here. The info node might vanish if the
- folder has changed/is changing and we try and redraw stuff while
- its doing it.
- (message_list_drag_data_get): Use accessors.
-
-2000-11-29 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (message_list_drag_data_get): Implement.
- (message_list_init): Connect the d&d signal.
-
- * mail-ops.c (do_save_messages): Use camel a bit more to help us
- out. Don't create the file ourselves, treat it as a CamelFolder so
- we don't have to worry about formatting.
-
-2000-11-29 Dan Winship <danw@helixcode.com>
-
- * main.c (main): Remove no-longer-needed e_unicode_init.
-
- * mail-tools.c (mail_tool_quote_message): Fix the allocation here
- (again) and put a comment explaining it. (Fixes a crash when
- replying.)
-
-2000-11-28 Dan Winship <danw@helixcode.com>
-
- * component-factory.c (owner_set_cb): Wait until after setting up
- the local storage to find the Drafts/Outbox/Sent folders.
-
- * mail-ops.c (do_setup_folder): Use the file: store rather than
- mbox:.
-
-2000-11-28 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser-factory.c: Added the SaveAs bonobo menu verb
- thingy.
-
- * mail-callbacks.c (save_msg): New callback for saving messages.
- (save_msg_ok):
-
- * folder-browser.c (on_right_click): Add a Save As menu item.
-
- * mail-ops.c (cleanup_save_messages): Save all emails to the path
- given.
-
-2000-11-28 Dan Winship <danw@helixcode.com>
-
- * mail-local.c (cleanup_register_folder): Fix the initial unread
- counts after the last patch.
-
-2000-11-27 Dan Winship <danw@helixcode.com>
-
- * mail-local.c (local_folder_changed): This needs to run from the
- main thread, not the camel thread, so add a proxy signal handler
- to call mail_op_forward_event. Fixes hangs (eg bugzilla #909).
-
-2000-11-27 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-display.c: Removed some unecessary debugging printf's
-
-2000-11-27 Dan Winship <danw@helixcode.com>
-
- * mail-config-druid.glade: Revert the new druid for now, until the
- corresponding code is done, so that the druid will work again.
-
-2000-11-21 Iain Holmes <iain@helixcode.com>
-
- * mail-config-gui.c (mail_config): Don't use the "delete-event"
- signal.
-
-2000-11-21 Iain Holmes <iain@helixcode.com>
-
- * mail-display.c (pixbuf_for_mime_type): free fm_icon.
-
- * component-factory (summary_fn): Remove the configure param.
- (factory_destroy): Made into a generic function so that the
- summary_factory can be ref-counted as well as the normal
- factory.
-
-2000-11-21 Dan Winship <danw@helixcode.com>
-
- * Makefile.am: add GPGME_CFLAGS and GPGME_LIBS
-
-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.
-
-2000-11-21 Not Zed <NotZed@HelixCode.com>
-
- * mail-vfolder.c (vfolder_uri_to_folder): IF we dont find a
- source, clear the exception and ignore it silently. for e.g. if
- the user reconfigured their mailboxes and one of them no longer
- exists.
-
-2000-11-21 Radek Doulik <rodo@helixcode.com>
-
- * mail-display.c: #include <gtkhtml/gtkhtml-embedded.h>
-
-2000-11-21 Not Zed <NotZed@HelixCode.com>
-
- * message-thread.[ch]: Removed. No longer serves a purpose.
-
- * Makefile.am (evolution_mail_SOURCES): Removed message-thread.[ch].
-
- * message-list.c (build_subtree):
- (node_equal):
- (add_node_diff):
- (build_subtree_diff):
- (do_regenerate_messagelist):
- (cleanup_regenerate_messagelist): Changed to use camel-folder-thread.
- (message_list_set_folder): If we get set a new folder, unhook any
- events before unrefing the folder too (the folder is never reset
- currently, but this would cause problems).
- (subtree_unread): Check for uid null, wont crash, but its a bug.
- (ml_tree_value_at): If the uid is null, then fake an obviously bad
- line.
- (build_subtree): Yeah well, we can't like freeze/thaw here,
- because this is called recursive, and freeze/thaw isn't
- recursive, like pre model and post model change was.
- (build_tree): Maybe we can try it here, although i dont think
- it'll help much.
- (build_flat): And this is also a tree. yes a tree.
- (build_tree): Added changes arg. If set, then try the 'diff'
- approach, unless the tree is already empty.
- (message_list_set_threaded): Dont clear the tree here.
- (message_list_set_search): Or here.
-
-2000-11-20 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (save_node_state): Save out the md5 hash of the
- messageid as hex, since thats all we have for those nodes.
- (build_subtree): Expand the messageid to a hex string first, then
- check it.
- (add_node_diff): And the same here.
-
- * message-thread.c (thread_messages): Changed for changes to
- messageid/references items.
- (id_hash, id_equal): New functions to hash on the binary message id hash.
- (thread_messages): removed some more no longer used dead code.
-
-2000-11-20 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (e_mail_address_compare): New comparison function
- that will replace address_compare if/when we ever go to save the
- preparsed addresses in the ETable rather than parsing them each
- time. Also fixed it so that we should get better sorting when
- addresses don't contain name parts (I was checking for NULL but
- not '\0').
- (address_compare): Use e_mail_address_compare.
-
-2000-11-19 Peter Williams <peterw@helixcode.com>
-
- * mail-ops.c (update_changed_folders): Instead of making the CORBA
- call in the dispatch thread, store the new display names and have
- cleanup_fetch_mail make the CORBA calls. Fixes deadlocks.
- (cleanup_fech_mail): Loop through the update_infos and make the
- CORBA calls.
- (setup_fetch_mail): Clear some new data items.
-
-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)
-
-2000-11-17 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (message_list_destroy): Before we destroy
- ourselves, unhook ourselves from the folder update events. Should
- fix a common crash on exit case.
-
-2000-11-16 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser-factory.c: Added the MessageViewSource bonobo
- menu verb.
-
- * mail-ops.c (mail_do_save_messages): New async function to save
- messages as individual files in a given path.
-
-2000-11-15 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser-factory.c: Added a new Forward as Attachment
- bonobo menu item verb.
-
- * mail-view.c (view_forward_msg): Updated to reflect changes to
- mail_do_forward_message(). It now forwards the message without
- attaching it - is this what we want?
-
- * mail-ops.c (mail_do_view_message_sources): New async function to
- display message source dialog windows.
- (setup_forward_messages): If we were asked not to forward the
- message(s) as attachment(s) and the user chose more than a single
- message, then default to making each message an attachment.
- (cleanup_forward_messages): If we aren't forwarding the message as
- an attachment, then quote the text and set the composer's body
- with it.
-
- * mail-callbacks.c (view_source): New callback to view the message
- source of all messages that are currently selected.
- (forward_attach): New callback to forward a message as an
- attachment (forward_msg is now for forwarding a message without it
- being an attachment).
- (forward_message): Convenience function for forwarding messages.
-
-2000-11-13 Jeffrey Stedfast <fejj@helixcode.com>
-
- * subscribe-dialog.c (subscribe_do_subscribe_folder): Take a
- 'subscribe' argument so that this can function as a subscribe AND
- unsibscribe method.
- (describe_subscribe_folder): Updated.
- (do_subscribe_folder): Updated.
- (cleanup_subscribe_folder): Updated.
- (subscribe_folder_info): Pass along a TRUE as the 'subscribe'
- param.
- (unsubscribe_folder_info): Pass along a FALSE as the 'subscribe'
- param.
-
-2000-11-13 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Removed some e_table_model calls and replaced
- them with e_tree_model calls.
-
-2000-11-12 Dan Winship <danw@helixcode.com>
-
- * mail-local.c (mail_do_register_folder): Do this the normal way
- rather than calling mail_operation_wait_for_finish. There was some
- reason for it originally, but it no longer applies. This makes
- adding new folders from the folder selection dialog no longer
- hang.
-
-2000-11-12 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_filter_ondemand): Sync the source folder.
-
-2000-11-11 Matt Bissiri <bissiri@eecs.umich.edu>
-
- * evolution-mail.oafinfo:
- * mail-threads.c: (retrieve_shell_view_interface_from_control):
- Update the remaining "IDL:Evolution*" to "IDL:GNOME/Evolution*"
- to sync up with yesterday's IDL re-scoping.
-
-2000-11-10 Michael Meeks <michael@helixcode.com>
-
- * Makefile.am ($(EVOLUTION_MAIL_CORBA_GENERATED)): sort include order.
-
-2000-11-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * subscribe-dialog.glade[.h]: New glade file for possibly using to
- create the subscribe dialog.
-
-2000-11-08 Radek Doulik <rodo@helixcode.com>
-
- * mail-format.c (mail_generate_reply): likewise
-
- * mail-callbacks.c (create_msg_composer): added send_html arg to
- e_msg_composer_new_with_sig_file call
-
-2000-11-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-search-dialogue.c (mail_search_dialogue_construct): Allow
- rule part to expand when the user resizes the dialog.
-
-2000-11-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (search_save): Don't handle custom searching
- anymore... we don't want this.
- (search_full): Same.
- (folder_browser_search_menu_activated): Set the search entry
- widget sensitive.
- (folder_browser_search_query_changed): Same.
-
-2000-11-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (search_full_clicked): Updated to use the
- ESearchBar object rather than the previously used search widgets.
- (search_full): Same.
- (search_save): Same. Also use enums to make it a little easier to
- read now that we have to have enums anyway.
- (folder_browser_search_menu_activated): New ESearchBar menu
- callback.
- (folder_browser_search_query_changed): New ESearchBar query
- callback. Replaces search_set()
- (folder_browser_clear_search): Updated to use the ESearchBar
- object rather than the previously used search widgets.
- (folder_browser_gui_init): Don't hand construct a search widget,
- use the new ESearchBar convenience widget.
-
- * mail-ops.c (cleanup_load_folder): Updated to reflect changes to
- FolderBrowser.
-
-2000-11-07 Jesse Pavel <jpavel@helixcode.com>
-
- * mail-display.c (pixmap_press): modified some of the EPopupMenu
- structures to account for differences in the popup menu API (as
- informed by Jeff.
- (on_object_requested): passed the user's default email address
- to the iTip control.
-
-2000-11-07 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am (INCLUDES): Add the composer dirs.
-
-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.
-
-2000-11-06 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (on_right_click): Move filter stuff into a
- submenu of the popup menu.
-
-2000-11-06 Jesse Pavel <jpavel@helixcode.com>
-
- * mail-display.c: used Camel to parse the full address before
- passing the email address to my iTip control.
-
-2000-11-06 Dan Winship <danw@helixcode.com>
-
- First draft of folder tree unread message indication for /local
- 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]
-
- * mail-summary.c: Remove mail-local-storage.h include
-
-2000-11-06 Kjartan Maraas <kmaraas@gnome.org>
-
- * mail-autofilter.c: Fix up #include <config.h>
- * mail-crypto.c: Same here.
- * mail-search-dialog.c: Here too.
- * main.c: Fix indentation of #ifdef
- * message-thread.c: Fix include.
-
-2000-11-06 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (delete_msg): Don't invert the flag.
- (undelete_msg): Same (when multiple messages are selected).
-
-2000-11-06 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser-factory.c: Updated to have the same menu items as
- the new right-click menu - eventually these 2 menus should be the
- same.
-
- * folder-browser.c (on_right_click): Now correctly handles the
- case of multiple selection.
-
- * mail-callbacks.c (enumerate_msg): Make public so it can be used
- in other source files (it's a useful function!)
-
-2000-11-05 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (on_right_click): Added an "Undelete" option to
- the right-click menu and also set a mask so it was only selectable
- if the message is marked as deleted. Also set a mask for "Mark as
- Read" and "Mark as Unread".
-
- * mail-callbacks.c (undelete_msg): New callback to undelete
- messages.
-
-2000-11-03 Dan Winship <danw@helixcode.com>
-
- * message-list.c (cleanup_regenerate_messagelist): don't free the
- MessageList search when it's being reused
-
-2000-11-03 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-local.c (mail_local_map_uri): Don't show the passwd in the
- url string.
- (mail_tool_local_uri_to_folder): Same.
- (do_reconfigure_folder): Same.
-
-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.
-
-2000-11-03 Dan Winship <danw@helixcode.com>
-
- * mail-config-gui.c (service_page_item_new): url_flags are now on
- CamelProvider, not CamelService
-
- * main.c:
- * subscribe-dialog.c:
- * mail-threads.c: Kill warnings
-
-2000-11-03 Federico Mena Quintero <federico@helixcode.com>
-
- * Makefile.am: Clean the idl-generated files properly.
-
-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.
-
-2000-11-02 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (on_right_click): Sync with message
- menu. Addresses bugzilla bug #778.
-
-2000-11-02 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Turn on draw grid for the main ETable (this may
- not be working in ETable itself.)
-
-2000-11-01 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-threads.c (mail_op_set_message): fmt argument should be
- const.
-
-2000-11-01 Dan Winship <danw@helixcode.com>
-
- 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
-
-2000-11-01 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (mail_op_report_status): Don't call the default
- logging function.
- (do_fetch_mail): Set the logfile and don't pass the logfile to
- filter_driver_set_status_func - it's purpose has been altered.
- (do_filter_ondemand): Same.
-
-2000-11-02 Not Zed <NotZed@HelixCode.com>
-
- ** Merged in camel-incremental-branch.
-
- * mail-format.c (mail_get_message_body): Jeff! Sigh.
- We should definetly not be strduping the
- content, it has already been copied and duplicated. Look at
- get_data_wrapper_text.
-
-2000-11-01 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.h: add fields search_entry and search_top.
-
- * subscribe-dialog.c: add mail-ops.c style async operations for
- getting the store (to remove deadlock in the case where a auth
- dialog is dismissed at startup and then the subscribe dialog is
- brought up), and subscribing/unsubscribing to folders. One case
- remains, that is getting the list of all folders.
- (subscribe_search): flesh out this function
- (build_tree): use the search_top field so we can search for
- groups/folders.
- (subscribe_dialog_destroy): free search_top.
- (subscribe_dialog_construct): init search_top.
-
-2000-10-30 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c (generate_folder_summaries): Fix spelling :)
- Set folder->uri to NULL for the Inbox.
-
-2000-10-26 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c (generate_html_summary): Add view:// uris to
- switch the display to that folder.
-
-2000-11-01 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser-factory.c: Hmmm, someone can't spell Filder,
- er...I mean Filter ;-)
-
-2000-11-01 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-autofilter.c (rule_from_message): If the name is NULL or
- empty, then set the title to "Mail from <address>". Closes
- bugzilla bug #777. Also when filtering on Subject, set the file
- name to "Subject is <subject>" rather than just "<subject>" - I
- think this is a bit more user-friendly.
- (strip_re): Use unsigned char when passing to is<type>()
- functions from ctype.h.
- (rule_add_subject): Use the "is" rule instead of "contains".
-
-2000-11-01 Jesse Pavel <jpavel@helixcode.com>
-
- * mail-display.c: added property bag support for Bonobo
- controls, support which helps only the iTip control, currently.
-
-2000-11-01 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (pixbuf_gen_idle): Lots of fixes and
- simplifications. Should get rid of the "missing icon" problem.
- There is still a problem with some images failing to get
- thumbnails, even though they display correctly.
- (pixbuf_for_mime_type): New function to try really hard to get the
- right icon for a MIME type, including looking in mc and nautilus's
- pixmap directories.
- (on_object_requested): Always use pixbuf_gen_idle, even for
- non-image types, to prevent code duplication.
-
-2000-10-31 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c (mail_get_message_body): Shouldn't we be
- strdup'ing the content? This seems to fix the memory corruption
- problems.
- (mail_generate_reply): Make sure that the last char in the
- generated reply text is '\0' (when body text doesn't end with a
- \n, a random char will appear otherwise).
-
-2000-10-31 Dan Winship <danw@helixcode.com>
-
- * mail-config-gui.c (do_test_service): Update for
- camel_service_disconnect change.
-
-2000-10-31 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-autofilter.c (filter_gui_add_for_mailing_list): Match "is"
- rather than "contains" now that we have the "is"-rule.
-
-2000-10-30 Dan Winship <danw@helixcode.com>
-
- * mail-config-gui.c (config_do_query_authtypes): Redo this so that
- it works for all pages, not just the first page. (Now that this is
- finally working again, I expect Anna to finish her redesign in the
- next 15 minutes.)
- (service_page_item_new): Fix up the sizing of the Auth line to
- look more like everything else.
-
-2000-10-29 Dan Winship <danw@helixcode.com>
-
- * 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.
-
- * message-list.c (mail_do_regenerate_messagelist): Don't try to
- regenerate the message list if there is no folder. (The Bonobo UI
- code will call this as the callback for the "Threaded View"
- command.)
-
- * mail-ops.c (do_fetch_mail): Sync the folder before refreshing so
- we don't lose flag settings.
-
-2000-10-27 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (composer_send_cb): Check to make sure that the
- recipient list is neither NULL nor a 0-length list of addresses
- and pop up a dialog letting the user know why we are not allowing
- him/her to send the message.
-
-2000-10-26 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (write_data_to_file): Don't destroy a dialog
- after run_and_close'ing it.
-
-2000-10-26 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (composer_send_cb): Check for the TO recipient
- list being NULL and don't send.
-
-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.
-
-2000-10-25 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.[ch]: Updated for the new ExecutiveSummary code.
-
- * Makefile.am: Added the summary files and the evolution-services CFLAGS
- and LIB stuff.
-
- * component-factory.c: Re-enabled the summary stuff.
-
-2000-10-25 Dan Winship <danw@helixcode.com>
-
- * main.c (main): Pass send/postpone signal handler functions to
- evolution_composer_factory_init.
-
-2000-10-25 Jeffrey Stedfast <fejj@helixcode.com>
-
- * subscribe-dialog.c (subscribe_select_all): Implemented.
- (subscribe_invert_selection): (was unselect_all) Implemented.
-
-2000-10-25 Dan Winship <danw@helixcode.com>
-
- * message-list.c: Add a "flagged" column, based on the Camel
- "flagged" flag, for assigning an arbitrary "hey, I care about
- this" flag to a message.
- (ml_tree_set_value_at): Remove
- (ml_tree_is_cell_editable): No, it's not.
- (on_click): Handle the read/unread and flagged fields via the
- click handler. Among other things, this makes it not select
- a message when you change its read status.
-
-2000-10-24 Dan Winship <danw@helixcode.com>
-
- * subscribe-dialog.c (folder_info_subscribed,
- subscribe_folder_info, unsubscribe_folder_info): Don't prepend "/"
- to the folder's full_name. Deal with hierarchy in the
- EvolutionStorage tree better.
- (storage_tree_path): Helper function to build a storage path from
- a CamelFolderInfo.
-
-2000-10-23 Dan Winship <danw@helixcode.com>
-
- * *: Add some missing _()s and N_()s.
-
-2000-10-23 Dan Winship <danw@helixcode.com>
-
- * Makefile.am (INCLUDES): Update EVOLUTION_LOCALEDIR.
-
-2000-10-23 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_send_mail): Apply outgoing filters to the
- message.
-
-2000-10-23 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Fixed a possible error in row numberings. This
- needs to be changed quite a bit anyway, but this should make
- things slightly nicer in some cases.
-
-2000-10-23 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser.c: Made the top of the folder browser a little
- prettier.
-
- * mail-display.c, mail-vfolder.c: Made more dialogs resizable.
-
-2000-10-23 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-autofilter.c (filter_gui_add_from_message): Don't forget to
- set the rule source! (eg "incoming", "demand", or "outgoing")
-
-2000-10-22 Ettore Perazzoli <ettore@helixcode.com>
-
- * message-list.c (message_list_init): Always display the vertical
- scrollbar.
-
- * mail-display.c (mail_display_new): Always display the vertical
- scrollbar.
-
-2000-10-20 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.h: #include <camel/camel-folder.h>
-
-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.
-
-2000-10-20 Dan Winship <danw@helixcode.com>
-
- * evolution-mail.oafinfo: Declare composer factory.
-
- * main.c (main): Initialize it
-
-2000-10-19 Chris Toshok <toshok@helixcode.com>
-
- * message-list.c (nuke_uids): e-tree-model is now opaque. use the
- accessor to get the root node.
-
-2000-10-19 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c: #include "mail-vfolder.h"
- (vfolder_edit_vfolders): Don't call the dummy vfolder_edit
- function.
-
- * folder-browser-factory.c: s/VFolderEdit/SetVFolder
-
-2000-10-19 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c: (do_fetch_mail): For an imap store, just refresh the
- INBOX.
-
- * folder-browser-factory.c (control_deactivate): Don't sync
- non-existent folders.
- * message-list.c (nuke_uids): Don't traverse non-existent trees.
-
-2000-10-19 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am (glade_messages): New.
- (EXTRA_DIST): Add `$(glade_messages)'.
-
-2000-10-19 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c: Clean up some old #if 0 code.
-
-2000-10-19 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c (mail_generate_reply): Get the MailConfigIdentity
- *before* we create a new composer object so that we can set the
- signature file.
-
-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.
-
-2000-10-18 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Fixed some column widths.
-
-2000-11-02 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (get_message_info): Call get_message_uid to get
- the uid, save some duplicated code.
- (folder_changed): Handle the case of a NULL changes input.
-
- * message-thread.c (thread_messages): Removed pointless
- variable/assignment 'container'.
- (thread_messages): Try and cope with duplicate message id's.
-
-2000-11-01 Not Zed <NotZed@HelixCode.com>
-
- * mail-callbacks.c (main_select_first_unread): Changed to use 0 as
- the first row to select a message.
-
- * mail-ops.h (mail_do_regenerate_messagelist): Removed from
- header. This function is no longer public since it is really an
- internal message-list function.
-
- * folder-browser.c (search_full_clicked): Call the set_search()
- function, rather than messagelist_rebuild, which is going private.
- (search_set): Same here.
- (folder_browser_clear_search): And here.
- (etable_key): Call message_list_select() instead of
- message_list_home and message_list_end. Removing some odd code
- duplication.
-
- * message-thread.c (do_thread_messages): Moved the mail lock to
- here, rather than locking for each message lookup (which is
- useless anyway). This is still not correct either, as the tree
- references folder data ... but a bit better than it was.
- (thread_messages): Removed the mail tool lock stuff, lock in
- higher functions.
-
- * message-list.h: Added a threaded indicator to the message list
- itself.
- (threaded_view): removed a mystery variable.
-
- * message-list.c (do_regenerate_messagelist): Made the code a
- little more readable.
- (build_tree): Fixed argument to be a thread_messages struct, not a
- container.
- (cleanup_regenerate_messagelist): Free changeinfo.
- (mail_do_regenerate_messagelist): If we are adding changes to a
- flat view, we dont need to goto the other thread at all, so
- process immediately.
- (message_list_toggle_threads): Clear the tree if we're changing
- the view mode.
- (message_list_toggle_threads): And reset the rowmap, since it is no
- longer valid.
- (build_tree): If we are building into an already empty tree, just
- build into that (probably irrelevant optimisation).
- (build_subtree): Build hte subtree in the same order as we got it,
- not inverted order.
- (message_list_set_threaded): New function to select the threaded
- view/flat view.
- (mail_do_regenerate_messagelist): Removed references to
- mail_config, get it from the ml->threaded var instead.
- (message_list_destroy): No longer free the key data for the
- uid_rowmap.
- (new_id_from_uid): Convert a uid string into an id string.
- (new_id_from_subject): Likewise for subject strings.
- 'id' strings replace the 'uid:' and 'subject:' stuff with
- accessors and macros and use less memory and is more readable.
- (id_is_uid): macro to check if an id string is a uid.
- (id_uid): Returns the uid part of a uid id string.
- (id_subject): Returns the uid part of a subject id string.
- (build_subtree): Use the new id functions, and dont duplicate the
- uid in the uid rowmap, but just reference it from the tree node.
- (node_equal): Use new id functions.
- (add_node_diff): And here too.
- (remove_node_diff): And here. Also remove the uid from the
- rowmap, and dont free it anymore.
- (get_message_info): And here.
- (get_message_uid): And here.
- (subtree_unread): And here.
- (ml_tree_value_at): "
- (ml_tree_set_value_at): Noted a memory leak. do_flag_messages()
- doesn't free the contents of the uid array, just the uid array
- (well that i can tell, teh code has more problems anyway).
- (ml_tree_set_value_at): And fix the id accessors.
- (save_node_state): "
- (build_flat): Use id macros/functions. Dont alloc memory for hash
- key.
- (build_flat_diff): Use id macros.
- (build_flat_diff): Remove the hash table entry before freeing its
- key data (in the node).
- (free_key): Removed. Keys are no longer alloc'd.
- (clear_tree): When we clear the tree, also clear the uid_rowmap,
- as it is no longer valid (or contains allocated keys!).
- (free_tree_ids): Renamed from nuke_uids.
- (free_ids_cb): Renamed from nuke_uids_cb.
- (free_tree_ids): Changed arg to be a ETreeModel directly.
- (ml_tree_value_at): Map id to subject using the right macro.
- (free_tree_ids): Check we have any nodes to traverse first.
- (build_flat): Insert to row -1 to append the nodes (faster).
- (remove_node_diff): Only remove the uid rowmap entry if it is
- referencing this node (i.e. the key string is the same key string,
- not just a matching key string).
- (add_node_diff): Remove the uid rowmap entry before inserting a
- new one to force the key to be replaced. This is required as the
- tree may temporarily contain duplicate messages during the
- rebuilding phase.
- (message_list_set_search): New function, set the search string.
- Only redo the search if it has changed, etc.
- (mail_do_regenerate_messagelist): Made static. There is no need
- for external code to call this.
- (message_list_set_folder): NOP if the new folder is the same.
- (message_list_set_folder): Clear the tree before rebuilding it.
- (message_list_select): Ok, this wins the award for 'most bizarre
- interface'. Changed the start row to mean the end of the list if
- we supply -1, rather than the start of the list. Also fixed the
- endpoints (it would never select message 0 if searching
- backwards).
- (idle_select_row): Changed start row to 0 from -1.
- (message_list_end): Removed.
- (message_list_home): Removed.
- (go_to_message): Removed. message_list_select can do this.
- (message_list_select): Check that direction is one of the valid
- ones, otherwise we could be thrown for loops.
-
-2000-10-31 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (node_equal): Compares an etree node with a
- message-thread node to see if they point to the same object.
- (add_node_diff): Adds a new thread node to the etree.
- (remove_node_diff): Removed an etree node, freeing any additional
- data.
- (build_subtree_diff): Takes an existing etree definition, and a
- new thread definition and makes the etree match, using as few
- operations as possible.
- (do_regenerate_messagelist): No longer free/clear the uid/rowmap
- here.
- (regenerate_messagelist_input_t): Added a tree field - are we
- building a tree view?
- (regnerate_messagelist_data_t): Added a tree field, if we built a
- tree result. Added a changes parameter, for building diff's after
- search/etc.
- (mail_do_regenerate_messagelist): Setup the tree indicator.
- (build_flat_diff): Apply a changeset to a message list.
- (build_flat): Added a changes argument, if present, use
- build_flat_diff() to build the list.
- (do_regenerate_messagelist): If we are generating a threaded view,
- build the threaded list here, rather in another separate
- invocation.
- (cleanup_regenerate_messagelist): Call build_tree directly on the
- threaded list.
- (message_list_init): Init the uid_rowmap hash table here instead
- of somewhere odd.
- (message_list_destroy): Assume uid_rowmap exists.
- (do_regenerate_messagelist): Remove the code here that is messing
- with the message list data (search/uid_rowmap). We're in a
- different thread boys ...
-
-2000-10-26 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (cleanup_regenerate_messagelist): Fixed some
- logic to make more sense (gboolean)!pointer replaced with
- (pointer != NULL).
- (build_tree): Put the tree pre/post change stuff in here, where it
- should be.
- (build_flat): Same here.
- (cleanup_regenerate_messagelist): Remove model_changed stuff here.
- (setup_regenerate_messagelist): Remove pre_change stuff here.
-
-2000-10-20 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (main_folder_changed): Perform incremental update
- of the display for flat view.
- (ml_tree_value_at): Spit out a mroe meaningful warning when we
- can't find the uid in our tree, in the folder.
-
- * message-thread.c (thread_messages): Made public.
- (thread_messages_free): Made public.
- (thread_messages): Now we also return a struct _thread_messages,
- which is passed to other functions.
- (container_free): Renamed from thread_messages_free.
- (thread_messages_free): Take a thread_messages argument.
- (thread_messages_add): New function to add a list of uid's to the
- thread list.
- (thread_messages_remove): Likewise, for removing them.
- (cleanup_thread_messages): Change for struct changes.
- (do_thread_messages): Likewise.
-
-2000-10-19 Not Zed <NotZed@HelixCode.com>
-
- * mail-tools.c (mail_tool_do_movemail): removed unused var
-
- * folder-browser.c (search_full_clicked): Fix for api changes,
- such as it can be called an api, its mroe an utter mess infact.
- (search_set): Same.
- (search_set): And here.
- (folder_browser_clear_search): And here.
-
- * message-list.c (folder_changed): Copy and forward the changeinfo
- list to the mian thread.
- (main_folder_changed): Free the changeinfo. Todo: something smart
- with this information.
- (struct regenerate_messagelist_input_s): Added a changes field.
- (mail_do_regenerate_messagelist): Added a change list argument.
- (message_list_set_folder): Fix for mail_do_regenreate_messagelist
- api.
- (message_list_toggle_threads): Same.
-
-2000-10-18 Iain Holmes <iain@helixcode.com>
-
- * mail-config-gui.c (mail_config): Make all the CLists have passive
- titles.
- (identity_dialog): Make the default button the "OK" button, and set
- the dialog to close on pressing return on the entryboxes.
-
-2000-10-17 Iain Holmes <iain@helixcode.com>
-
- * mail-config-gui.c (service_page_item_new): Disable the optionmenu
- because it is empty.
- (service_page_item_auth_fill): Enable the optionmenu as there's stuff
- in it now.
-
- * mail-callbacks.c (reply_to_sender): Call check_send_configuration
- when we have the FolderBrowser because if it is done in mail_reply
- (with passing NULL) it will only be able to continue if the mailer
- has already been configured.
- (reply_to_all): Same.
-
-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().
-
-2000-10-16 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (search_full_clicked): Un #if 0'd out
- (search_full): Same.
- (folder_browser_gui_init): Connect search_full and search_activate.
- (search_set): Uncomment search_full()
-
- * Makefile.am: Re-add `mail-search-dialogue.h' and
- `mail-search-dialogue.c'.
-
-2000-10-16 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c (mail_generate_reply): Decode recipient names so
- that they display nicely in the To and Cc fields.
- (write_field_to_stream): Now takes another argument
- 'value_is_encoded' so that we know if we should decode that string
- before proceding onward. Since the message subject is already
- decoded before it's passed in, we don't want to decode it again
- (wasted cpu time and/or any 8bit chars will be assumed to be
- latin1 encoded and thus the decoded value will be corrupt).
-
-2000-10-16 Chris Toshok <toshok@helixcode.com>
-
- * mail-config-gui.c (service_page_get_url): only set the url->user
- field if the user string is non-NULL and not empty.
-
-2000-10-16 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (message_list_setup_etable): Uh, fixed jeff's
- wrong fix for setting the speficiation (the function changed to
- set_state(), as can be seen in the e_table-scrolled_load_state()
- call only 2 lines above).
-
-2000-10-13 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (message_list_setup_etable): oops, chose the
- wrong thing to cut out after a merge conflict.
-
-2000-10-15 Chris Toshok <toshok@helixcode.com>
-
- * message-list.c (subtree_unread): ETreePath != GNode now, use
- accessors.
- (ml_tree_value_at): same.
- (save_node_state): same.
- (save_tree_state): same.
- (nuke_uids_cb): convert to e_tree_model_node_traverse required
- type.
- (nuke_uids): g_node_traverse -> e_tree_model_node_traverse.
-
-2000-10-14 Ettore Perazzoli <ettore@helixcode.com>
-
- * evolution-mail.oafinfo: Add "evolution:shell-component-icon"
- attribute.
-
-2000-10-13 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (message_list_setup_etable): Don't free the
- service name.
-
-2000-10-12 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): sync & expunge the source folder
- after filtering.
-
-2000-10-12 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (message_list_setup_etable): Create the 'spec'
- and 'extras' arguments and call e_table_scrolled_new() rather than
- set_specification as that function no longer (?) exists.
-
- Also started to add drag & drop functionality to something like
- Nautilus (but #if 0'd it out until I had time to finish it and
- till after 0.6).
-
-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).
-
-2000-10-11 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c (folder_etree_value_at): special case for
- folders with NULL urls (which aren't selected/subscribeable).
- (unsubscribe_folder_info): can't (un)subscribe from folders with
- non-NULL urls.
- (subscribe_folder_info): same.
-
-2000-10-12 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Replace To with From except in Drafts, Outbox,
- or Sent boxes. Make Subject column pay attention to text
- attributes like bold and strikethrough.
-
-2000-10-12 Iain Holmes <iain@helixcode.com>
-
- * component-factory.c: Disable the executive summary.
-
-2000-10-11 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c (FOLDER_ETABLE_SPEC): set expansion to 0.0,
- minimum-width to 16, and resizable to false for the subscribed
- column.
- (folder_info_subscribed): new function so we can do the correct
- path munging.
- (subscribe_folder_info): only add the folder to the storage if
- there wasn't an exception subscribing it.
- (unsubscribe_folder_info): same, but unsubscribing.
- (folder_etree_value_at): use folder_info_subscribed.
- (folder_toggle_cb): same.
- (unsubscribe_folder_foreach): same.
- (subscribe_folder_foreach): same.
- (subscribe_dialog_gui_init): set the bold column on the text cell,
- and add the subscribed pixbuf.
-
-2000-10-11 Anna Marie Dirks <anna@helixcode.com>
- * mail-threads.c: Changed the password-getting dialog so that the
- text entry has focus.
-
-2000-10-11 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c (STORE_ETABLE_SPEC): change cell type to
- "string" since we're not including it in the extras.
-
-2000-10-11 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c, message-list.h, subscribe-dialog.c: Changed
- these to use the proper form for the column element.
-
-2000-10-11 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c, message-list.h, subscribe-dialog.c: Updated
- these to the new ETable style of specifications.
-
-2000-10-11 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c (subscribe_dialog_gui_init): convert to the
- new gal e-table stuff.
- (html_size_req):
- (html_new):
- (put_html): #if 0 out the html functions since description stuff
- isn't used and we don't want the warnings.
-
-2000-10-11 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c (subscribe_dialog_gui_init): remove the html
- description stuff for now.
-
-2000-10-10 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c (folder_toggle_cb): umm.. duh :) only
- subscribe if it's not subscribed, and vice versa.
- (subscribe_folder_foreach): make sure to call
- e_tree_model_node_changed.
- (unsubscribe_folder_foreach): make sure to call
- e_tree_model_node_changed.
-
-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.
-
-2000-10-10 Larry Ewing <lewing@helixcode.com>
-
- * mail-format.c (mail_generate_reply): make sure we dup the return
- value of get_reply_to or get_from when building the recipient list.
-
-2000-10-10 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c (generate_html_summary): Removed the <li> from the
- HTML.
-
-2000-10-10 Cody Russell <bratsche@gnome.org>
-
- * mail-threads.c: Added #include <errno.h>
-
-2000-10-09 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c: Removed the extra arguments to rule_context_load.
-
-2000-10-09 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c, subscribe-dialog.h: use our own etable to
- display the stores, and get them from the mail-config api. put
- #if 0'ed code in place to add/remove the folders from the shell
- when they're subscribed/unsusbcribed. also, react to double
- clicks in the folder etable by toggling subscription status.
-
-2000-10-08 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c (create_summary_view): Updated to use new icon code.
-
-2000-10-08 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c (generate_html_summary): Generic function to
- recreate the HTML of the summary. Checks all the folder summaries.
- (generate_folder_summarys): Create a summary of all the vfolders
- and the Inbox.
- (create_summary_view): Generate the folder summarys before the
- HTML.
-
-2000-10-09 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser.c: Don't #include "mail-search-dialogue.h" as
- it's missing from the repository.
- (search_full_clicked): Temporarily `#if 0'ed out.
- (search_full): Likewise.
- (folder_browser_gui_init): Don't connect `search_full'.
- (create_option_menu): Don't connect `search_menu_deactivate'.
- (folder_browser_gui_init): Don't connect `search_activate'.
- (search_set): Don't do `search_full()'.
- (folder_browser_gui_init): Likewise.
-
- * Makefile.am (evolution_mail_SOURCES): Remove
- `mail-search-dialogue.h' and `mail-search-dialogue.c' as NotZed
- forgot to put them into CVS.
-
-2000-10-06 Not Zed <NotZed@HelixCode.com>
-
- * mail-search-dialogue.c: New widget, full search dialogue for
- mail.
-
- * folder-browser.c (search_set): If we click on custom search, run
- the full search dialogue.
- (folder_browser_gui_init): Add a button to perform a full search.
- (search_full): Bring up the mail search dialogue asynchronously.
- (search_full_clicked): Handle search options.
- (folder_browser_destroy): Free the saved rule if there is one
- there.
- (search_options[]): Added a custom option option - brings up the
- full search dialogue.
- (search_set): Disable the search entry if we are doing a full
- search.
-
- * mail-vfolder.c (vfolder_create_storage): Yay, finally
- depeterised this stuff.
- (vfolder_uri_to_folder): Removed an irrelevant comment.
-
- * mail-callbacks.c (filter_edit): And here.
-
- * mail-ops.c (do_fetch_mail): And here too.
-
- * mail-autofilter.c (filter_gui_add_from_message): Fixed call to
- context_load.
- (filter_gui_add_for_mailing_list): And here too.
-
- * folder-browser-factory.c (create_ondemand_hooks): Remove that
- ondemand callback snot.
-
-2000-10-05 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (message_list_init_etable): Build the etable once
- we know what folder we are going to use.
- (save_header_state): Save the header spec to a cache file.
- (message_list_destroy): Save the header spec.
- (message_list_setup_etable): Setup the etable spec for this
- folder, from a saved version if one exists, or to suit the folder
- type (sent/received).
- (message_list_set_folder): Setup the etable here once we have a folder.
-
-2000-10-09 Michael Meeks <michael@helixcode.com>
-
- * message-list.c (message_list_toggle_threads): re-write.
-
- * folder-browser-factory.c (control_activate): update paths, need
- CVS HEAD bonobo, use a listener not a verb.
-
-2000-10-08 Miguel de Icaza <miguel@helixcode.com>
-
- * mail-ops.c (mail_incorporate_messages): Tag string for translation
- (do_flag_messages): ditto.
-
- * mail-threads.c (pipe_write): Repeates writes on EINTRS.
- (pipe_read): Repeats reads on EINTRS.
- (mail_operation_queue): Use pipe_write
- (mail_op_set_percentage): ditto.
- (mail_op_hide_progressbar): ditto.
- (mail_op_show_progressbar): ditto.
- (mail_op_set_message): ditto.
- (mail_op_get_password): ditto.
- (mail_op_error): ditto.
- (mail_op_forward_event): ditto.
- (mail_operations_terminate): ditto.
- (dispatch): use pipe_read.
- (dispatch): use pipe_write
- (dispatch): ditto.
-
- * mail-ops.c (mail_incorporate_messages): Only show message being
- incorporated every 2 seconds, to avoid a bunch of CORBA round trips.
- (do_transfer_messages): ditto.
- (do_forward_messages): ditto.
-
-2000-10-07 Miguel de Icaza <miguel@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Move the functionality to
- incorporate messages into mail_incorporate_messages.
- (mail_load_evolution_rule_context): New function. Move the
- functionality for loading the context rules to its own function.
-
-2000-10-06 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c: Fix the locking up of the mail by only calling
- camel functions from the camel thread, and ORBit functions from
- the GTK thread. Watch for the message-changed signal again.
-
- * component-factory.c (summary_fn, component_factory_init):
- Re-enabled it, cos I think it works again.
-
- * mail-display.h: Remove the pb_cache.
-
- * Makefile.am: Readd the mail-summary.[ch] files and add the
- evolution-services library to the link.
-
-2000-10-06 Chris Toshok <toshok@helixcode.com>
-
- * mail-ops.c (do_scan_subfolders): set the @subscribed_only
- parameter to TRUE, since the subscribe UI is the only interface
- that should show unsubscribed groups.
-
-2000-10-06 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (do_scan_subfolders): Add missing @subscribed_only
- parameter in the call to `camel_store_get_folder_info()'. [FALSE,
- I hope that's right.]
-
-2000-10-05 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c (write_field_to_stream): Decode the header before
- writing it to the header box.
-
- * mail-callbacks.c (send_receieve_mail): fetch mail before
- sending, this is a temp fix for POP-before-SMTP authentication.
-
-2000-10-05 Michael Meeks <michael@helixcode.com>
-
- * component-factory.c (summary_fn, component_factory_init):
- Disable summary stuff, it appears to be badly broken.
-
- * Makefile.am (evolution_mail_SOURCES): add mail-summary.[ch]
-
- * subscribe-dialog.c (update_pixmaps): upd.
- (set_pixmap): upd.
- (subscribe_dialog_gui_init): upd.
- remove redundant and annoying forward definitions.
-
- * folder-browser-factory.c (control_deactivate): upd.
- (control_activate_cb): upd.
- (control_activate): upd.
- (set_pixmap): upd.
- (update_pixmaps): upd.
- (register_ondemand): upd.
- (create_ondemand_hooks): upd.
-
-2000-10-04 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (address_compare): Use CamelInternetAddress
- instead of my quick hack (aka InternetAddress).
-
-2000-10-05 Iain Holmes <iain@helixcode.com>
-
- * mail-summary.c: Don't watch for the message-changed signal.
-
-2000-10-05 Iain Holmes <iain@helixcode.com>
-
- * component-factory.c (component_factory_init): Setup the summary
- factory as well.
- (summary_fn): New function to create the ExecutiveSummaryComponent.
-
- * mail-summary.c: Create the view, and update it when something
- changes.
-
-2000-10-04 Iain Holmes <iain@helixcode.com>
-
- * mail-display.c (on_object_requested): Removed the pixbuf cache
- as it would return the pixbufs in the reverse order every so often
- and generally get all confused.
-
-2000-10-04 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (control_deactivate): Add back the
- "sync folder on leave" hack that got lost in the UIHandler merge.
-
-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 :-)
-
-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:
-
-2000-10-04 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_filter_ondemand): Don't expunge the source
- mailbox on completion.
-
-2000-10-04 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (do_scan_subfolders): Don't try to add_folders if
- get_folder_info returned NULL.
-
-2000-10-04 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (message_list_init_header): Fix the attachment
- icon width.
- (content_is_attachment): Perform some simple tests to see if the
- message contains an attachment.
- (build_subtree): Kill a pointless warning.
-
-2000-10-04 Miguel de Icaza <miguel@helixcode.com>
-
- * mail-callbacks.c (delete_msg): Added a comment to a piece of
- code that I was trying to "fix" just to find that the strange
- behaviour here that was about to be fixed, was actually a fix to
- the problem I was trying to fix.
-
- So put the original comments from Dan, and will hope that someone
- with more knowledge about this can figure why the delete key wont
- delete messages and select the next unread message.
-
-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.
-
-2000-10-02 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c, subscribe-dialog.h: add a
- storage-set-view-listener, and add a little printf saying what
- storage was selected.
-
-2000-10-02 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.c (subscribe_dialog_gui_init): get
- Evolution::StorageSetView interface on our storage set view
- control, and set "show_folders" to FALSE.
-
-2000-10-02 Chris Toshok <toshok@helixcode.com>
-
- * Makefile.am (INCLUDES): add -I$(top_srcdir)/widgets/misc
-
- * subscribe-dialog.c (subscribe_dialog_gui_init): change the
- window title to Manage Subscriptions, bold subscribed folders, and
- add a title bar ala the evolution shell (but without the close
- button).
-
-2000-10-02 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-dialog.h: add fields for the storage set
- Bonobo_Control and Evolution_StorageSetView interfaces.
-
- * subscribe-dialog.c (subscribe_dialog_gui_init): create the uih
- as early as possible, and add the storage set view to the left
- side of the hpaned.
-
-2000-09-22 Michael Meeks <michael@helixcode.com>
-
- * folder-browser-factory.c (set_pixmap): upd.
- (control_activate): upd.
-
-2000-10-02 Dan Winship <danw@helixcode.com>
-
- * mail-config-gui.c: Remove "Port" entry from source dialog. We'll
- use "host:port" like Netscape and other programs do.
- (service_page_get_url): If host ends in ":###", use that as port.
- (service_page_set_url): If URL contains a port, append it to the
- hostname, separated by a colon.
-
-2000-10-02 Chris Toshok <toshok@helixcode.com>
-
- * Makefile.am (evolution_mail_SOURCES): subscribe-control.[ch] ->
- subscribe_dialog.[ch]
-
- * mail-callbacks.c (manage_subscriptions): subscribe_control ->
- subscribe_dialog. Also, pass the shell to subscribe_dialog_new.
-
- * mail-types.h: SubscribeControl -> SubscribeDialog.
-
- * subscribe-dialog.c, subscribe-dialog.h: rename from
- subscribe-control.[ch].
-
- * subscribe-dialog.c (subscribe_dialog_construct): pass
- Evolution_Shell in.
- (subscribe_dialog_new): takes Evolution_Shell argument now.
-
-2000-10-02 Chris Toshok <toshok@helixcode.com>
-
- * message-list.c (message_list_init_renderers): remove the 2 tree
- pixbufs, so adjust the offsets to the score pixbufs. also, pass
- NULL for the open/closed pixbufs to the tree cell renderer.
-
-2000-10-02 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (mail_do_scan_subfolders, etc): Update for
- CamelFolderInfo changes.
-
- * message-list.c (message_list_destroy): Don't save_tree_state if
- there's no folder associated with the MessageList.
-
- * folder-browser.c (folder_browser_set_uri): Only call
- mail_do_load_folder if the URI is not "".
-
-2000-10-02 Iain Holmes <iain@helixcode.com>
-
- * mail-display.[ch]: Add a cache for the pixbufs, hashed on CID,
- so that we only have to make a thumbnail once.
-
-2000-10-01 Iain Holmes <iain@helixcode.com>
-
- * mail-display.c: Generate the thumbnails on an idle function so
- that the user interface isn't locked. Checks in case the widget it
- will use to display the image isn't destroyed.
-
-2000-10-01 Iain Holmes <iain@helixcode.com>
-
- * mail-display.c (on_object_requested): If the attachment is an
- image display a thumbnail of it, instead of the generic image
- icon.
-
-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.
-
-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.
-
-2000-09-28 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-control.h (subscribe_search): added prototype.
-
- * subscribe-control.c (subscribe_search): new function.
-
- * subscribe-control-factory.c (make_folder_search_widget): new
- function, to add search widget to toolbar.
- (control_activate): create the search widget and add it to the
- toolbar.
-
-2000-09-28 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_send_queue): Messages should be appended to Sent
- as Seen.
- (do_send_mail): Same.
-
-2000-09-28 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am: Don't compile `subscribe-control' for now. It
- needs to be converted to the new UI handler code in Bonobo; it
- doesn't compile right now.
-
-2000-09-27 Chris Toshok <toshok@helixcode.com>
-
- * subscribe-control.c (subscribe_refresh_list): new function.
-
- * subscribe-control.h (subscribe_refresh_list): new prototype.
-
- * subscribe-control-factory.c (update_pixmaps): add RefreshList
- pixmap. also, add it to the verbs list.
-
-2000-09-27 Chris Toshok <toshok@helixcode.com>
-
- * mail-types.h: add SubscribeControl typedef.
-
- * Makefile.am (evolution_mail_SOURCES): add the subscribe stuff.
-
- * subscribe-control-factory.h * subscribe-control-factory.c *
- subscribe-control.c: * subscribe-control.h: Mostly mocked up
- subscribe ui.
-
-2000-09-27 Jeffrey Stedfast <fejj@helixcode.com>
- Note: We need a configuration option to specify whether to log
- filtering actions or not.
-
- * mail-ops.c (do_filter_ondemand): Updated to pass a log file
- pointer to filter_driver_run.
- (do_fetch_mail): Same.
- (mail_do_fetch_mail): Fixed a compiler warning.
-
-2000-09-27 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (composer_postpone_cb): Fix it so that "send
- later" will still mark a message as being replied, forwarded,
- whatever. Closes bug #568 on bugzilla.
-
-2000-09-27 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_filter_ondemand): If the message has been
- deleted, don't try filtering it - skip to the next message. Fixes
- bugzilla bug #639.
-
-2000-09-25 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser-factory.c: Shuffling (un)select all menu items to
- the Edit menu.
-
-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)
-
-2000-09-25 Not Zed <NotZed@HelixCode.com>
-
- * message-list.c (folder_to_cachename): Function to convert a
- folder name/path to a filename for per-folder data.
- (save_tree_state):
- (load_tree_state):
- (free_tree_state): For loading/saving the state of the expansion
- of nodes in the tree.
- (message_list_destroy): Save the tree state when done.
- (save_node_state): Changed logic, we save when the node should be
- closed on startup. i.e. any new nodes with children automatically
- default to being open.
- (subtree_unread): Check for unread messages in a subtree. So
- false messages (for tree roots) are properly displayed.
-
-2000-09-25 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (address_compare): Updated to use Nat's
- ENameWestern parser.
-
- * Makefile.am: link against e-util/ename/libename.la
-
-2000-09-25 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c: CamelException is not for compile-time errors.
- Replace lots of argument checks in setup_ functions with
- g_return_if_fails in the public functions. Also remove some
- prototypes that weren't needed because they were for static
- functions that are defined before they're used.
-
-2000-09-23 Michael Meeks <michael@helixcode.com>
-
- * folder-browser-factory.c (set_pixmap): upd.
- (control_activate): upd.
-
-2000-09-23 Ettore Perazzoli <ettore@helixcode.com>
-
- * message-list.c (internet_address_new_from_string): Skip spaces
- at the beginning of the string first before doing anything else.
- The code that follows doesn't like the first character of the
- string to be a space.
-
-2000-09-22 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (address_compare): New comparison function for
- email addresses.
- (subject_compare): New comparison function for message subjects.
- (message_list_init_header): Updated to use the new compare funcs.
-
-2000-09-21 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c (mail_generate_reply): Fixed some memory
- leakage. Call free_recipients() so we don't leak memory.
-
-2000-09-19 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_scan_subfolders): Use the folder's full_name so
- recursive directory structures display correctly ;-)
-
-2000-09-19 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (do_scan_subfolders): Update for CamelFolder changes
- (subfolder_names -> subfolder_info).
-
-2000-09-19 Dan Winship <danw@helixcode.com>
-
- * mail-callbacks.c (create_msg_composer, compose_msg, send_to_url,
- mail_reply, forward_msg): * mail-format.c (mail_generate_reply): *
- mail-ops.c (cleanup_edit_messages):
-
- * mail-view.c (view_forward_msg): Deal with NULL composer.
-
-2000-09-18 Dan Winship <danw@helixcode.com>
-
- * main.c (main): Call gnome_vfs_init() since the composer now does
- file operations (to get the MIME type of attachments).
-
-2000-09-18 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c: Removed COL_ONLINE_STATUS because we don't want
- that. Renamed COL_PRIORITY to COL_SCORE and set it up to sort-of
- work, I'm not really sure which renderer I should use.
-
-2000-09-18 Christopher James Lahey <clahey@helixcode.com>
-
- * Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
- $(EXTRA_GNOME_LIBS). Removed unneeded libraries.
-
- * component-factory.c, folder-browser-factory.c, folder-browser.c,
- mail-callbacks.c, mail-config-gui.c, mail-display.c,
- mail-display.h, main.c, message-list.c, message-list.h: Fixed the
- #include lines to deal properly with gal.
-
-2000-09-16 Michael Meeks <michael@helixcode.com>
-
- * Makefile.am (INCLUDES): add datadir
-
- * folder-browser-factory.c (control_activate): use it.
-
-2000-09-15 Dan Winship <danw@helixcode.com>
-
- * mail-callbacks.c (transfer_msg): Revert **Temp fix** from below
- since the relevant shell bug has been fixed now.
-
- * mail-ops.c (do_fetch_mail): Fix the sense of the "keep on
- server" check so we're not doing this backwards. Don't
- get_message_flags, because POP doesn't support it and it's
- pointless anyway since we're setting deleted, not toggling it.
- call camel_folder_sync with expunge=TRUE so that the deletions are
- actually recorded.
-
-2000-09-15 Dan Winship <danw@helixcode.com>
-
- This bug was so much fun to fix the first time that I decided to
- fix it again.
-
- 2000-07-11 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (real_send_mail): Set the post_send_data flag
- rather than toggling it. (Maybe we'll need more control
- over it later, but for now, the only flag we set is
- "replied", and we want that set, not toggled.)
-
-2000-09-14 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (transfer_msg): **Temp fix** Send "" as the
- default folder to select as anything else seems to cause a
- segfault in shell's user_get_folder().
- (check_configured): A spoon full of 'line wrapping' makes the
- medicine go down, the medicine go dowwwwn...
-
-2000-09-14 Iain Holmes <terrorist@gegl.org>
-
- * mail-callbacks.c (check_configured): Ask if you want to
- configure the mail client if it isn't configured already.
- (check_send_configuration): Remove the error box if mail isn't
- configured.
- (send_queued_mail): Same.
-
-2000-09-14 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (setup_append_mail): camel_folder_append is perfectly
- happy to take a NULL info.
-
-2000-09-14 Michael Meeks <michael@helixcode.com>
-
- * folder-browser-factory.c: move fn to bonobo.
- (set_pixmap): update.
- (control_deactivate): add bonobo_ui_handler_unset_container
-
-2000-09-14 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-config-gui.h: Changed the include here because it caused
- make distcheck to fail for me. I changed it from <Evolution.h> to
- "shell/Evolution.h". This seems to have fixed things.
-
-2000-09-14 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Only use the cache if the user plans
- to keep_on_server.
-
-2000-09-14 Michael Meeks <michael@helixcode.com>
-
- * folder-browser-factory.c (control_deactivate): kill
- warning. (control_activate): set threaded toggle state,
- add freeze / thaw.
- (set_pixmap, fill_toolbar, update_pixmaps): update.
-
-2000-09-13 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser-factory.c: Fixed a warning (Missing include
- file.)
-
-2000-09-12 Ettore Perazzoli <ettore@helixcode.com>
-
- ($(EVOLUTION_MAIL_CORBA_GENERATED)): Add space after `-I'.
-
-2000-09-12 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am: Remove `ui.xml' stuff.
-
-2000-09-12 Dan Winship <danw@helixcode.com>
-
- * mail-local-storage.c (mail_local_storage_startup): set
- folder_tree before adding the listener, since that will eventually
- invoke callbacks that will look at it.
-
- * folder-browser-factory.c (control_deactivate): sync the folder
- on deactivate.
-
-2000-09-12 Ettore Perazzoli <ettore@helixcode.com>
-
- * message-list.c (on_right_click): Also display the name of the
- mailing list in the "Filter on Mailing List" item for additional
- Coolness factor.
-
- * mail-autofilter.c (filter_gui_add_for_mailing_list): Create the
- rule with `filter_filter_new()' so that it also has an action
- part.
-
- * mail-mlist-magic.c (get_header): Use the right header name to
- retrieve the header.
-
-2000-09-12 Ettore Perazzoli <ettore@helixcode.com>
-
- * message-list.c (on_right_click): Grey out the mailing list
- filter item if `mail_mlist_magic_detect_list()' returns NULL on
- this message [i.e., if we cannot figure out a mailing list for
- this message].
- (filter_mlist): Good boys don't use F words.
-
- * mail-mlist-magic.c (check_sender): Work safely if
- `header_name_return' or `header_value_return' are NULL.
- (check_x_been_there): Likewise.
- (check_delivered_to): Likewise.
- (check_x_mailing_list): Likewise.
- (check_x_loop): Likewise.
- (get_header): Use the right header name to retrieve the header.
-
- * message-list.c (on_right_click): Mark strings for translation.
-
-2000-09-12 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser-factory.c: Use the latest, shiny, amazing TigerT
- art for the toolbar.
-
- * component-factory.c: #include "mail-local-storage.h".
- (owner_set_cb): Removed unused variable.
-
- * message-list.c (filter_sender): Made static.
- (filter_recipient): Likewise.
- (filter_subject): Likewise.
- (vfolder_recipient): Likewise.
- (vfolder_sender): Likewise.
- (vfolder_subject): Likewise.
-
- * mail.h (vfolder_subject): Removed prototype [WTF was this doing
- here?!?!].
- (vfolder_sender): Likewise.
- (vfolder_recipient): Likewise.
- (filter_subject): Likewise.
- (filter_sender): Likewise.
- (filter_recipient): Likewise.
-
- * message-list.c: Added a new "Filter on mailing list" menu item.
- (filter_mlist): Callback for this menu item. Use
- `filter_gui_add_for_mailing_list' to pop up the filter dialog with
- the appropriate rule.
-
- * mail-autofilter.c (filter_gui_add_for_mailing_list): New.
-
- * message-thread.c (dump_tree): Removed unused variable.
-
- * mail-mlist-magic.c: New.
- * mail-mlist-magic.h: New.
-
- * mail-autofilter.c (rule_match_recipients): Mark strings for
- translation.
- (rule_from_message): Likewise.
- (filter_gui_add_from_message): Likewise.
-
-2000-09-12 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Was trying to unhook an event from
- the wrong folder - oops.
-
-2000-09-12 Not Zed <NotZed@HelixCode.com>
-
- * message-thread.c: Reverted to version 1.15.
- (remove_node): Ok, if a node has a parent, remove it from the
- parent list, otherwise remove it from the (supplied) root list.
- (group_root_set): When we merge children, free the lost node.
- (thread_messages_free): Remove the return, run as is.
- (prune_empty): Plugged another small leak.
-
-2000-09-11 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (run_filter_ondemand): Updated to use the new
- mail_do_filter_ondemand.
-
- * mail-ops.c (do_fetch_mail): Update to use the new
- filter_driver_run args.
- (do_filter_ondemand): Updated to use the new filter_driver_run
- args.
- (mail_do_filter_ondemand): Take a FilterContext as a argument
- instead of a driver as we need to destroy the filter inside the
- do_filter_ondemand function and things'd get messy.
-
-2000-09-11 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Don't have the filter driver
- self_destruct.
-
-2000-09-11 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): If we're fetching from an mbox
- formatted file then we need to do some special-casing.
-
-2000-09-11 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c (owner_set_cb): Call
- `mail_local_storage_startup()' to set up handling of the local
- storage.
-
- * mail-local-storage.c: New.
- * mail-local-storage.h: New.
-
-2000-09-11 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-display.c: Fixed some warnings.
-
-2000-09-11 Dan Winship <danw@helixcode.com>
-
- * 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.
-
-2000-09-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Use the CamelUIDCache so that we
- only retrieve *new* messages and also send notes to the status bar
- telling it which message we're downloading so that Ettore can
- sleep at night ;-)
-
-2000-09-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Updated to not send hook/unhook data
- to filter_driver_run as it no longer takes those args.
- (do_filter_ondemand): Same. Also wrap filtering in freeze/thaw to
- prevent signals from being queued up
-
-2000-09-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Freeze the default folder before
- filtering and thaw it afterward to prevent a ton of
- "folder_changed" signals from being queued.
-
-2000-09-08 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser.c, mail-config-gui.c, mail-ops.c: Fixed some
- warnings.
-
- * message-list.c: Added base ETableModel functions.
-
-2000-09-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Updated to pass a CamelMessageInfo
- to filter_driver_run
- (do_filter_ondemand): Same.
-
-2000-09-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_filter_ondemand): Updated to check the boolean
- return code from filter_driver_run to find out whether or not the
- message was filtered so that it can decide whether or not to
- delete the message from the source folder or not.
-
-2000-09-07 Jesse Pavel <jpavel@helixcode.com>
-
- * mail-format.c (mail_generate_reply) Changed the behavior of
- Reply-to-All so that the sender's address does not appear in
- the cc: list.
-
-2000-09-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Updated to pass an exception to
- filter_driver_run and also check the exception before deleting the
- message from the source folder.
- (do_filter_ondemand): Updated to pass an exception to
- filter_driver_run
-
-2000-09-07 Dan Winship <danw@helixcode.com>
-
- * session.c (session_init): Pass a storage dir to
- camel_session_new now.
-
- * main.c (main): Can't call session_init here now, because it
- requires evolution_dir to be set.
-
- * component-factory.c (owner_set_cb): call session_init here.
-
- * mail-ops.c (do_fetch_mail): Fix previous fix. (Free the uids,
- just do it correctly.)
-
-2000-09-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (do_fetch_mail): Don't free uids, let the camel
- folder do that when it gets finalized
-
-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.
-
-2000-09-06 Dan Winship <danw@helixcode.com>
-
- * message-list.c (clear_tree): set the data to NULL for the tree
- root, so nuke_uids won't try to free anything.
-
-2000-09-06 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser.c (folder_browser_new): @shell made const.
- `CORBA_Object_duplicate()' it before storing it.
- (folder_browser_destroy): Free the shell object with
- `CORBA_Object_release()', not `CORBA_free()'.
-
- * folder-browser-factory.c (folder_browser_factory_new_control):
- @shell made const.
-
-2000-09-05 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (make_safe_filename):
- * mail-format.c (handle_mystery):
- * mail-identify.c (mail_identify_mime_part):
- camel_mime_part_get_filename now deals with both
- Content-Disposition and Content-Type.
-
-2000-09-05 Peter Williams <peterw@helixcode.com>
-
- * mail-ops.c (cleanup_load_folder): Check for NULL folder.
- (mail_do_setup_folder): Copy the 'name' parameter so that
- we can free it.
-
- * message-list.c (nuke_uids): Depth '-1' means "unlimited", not 0.
-
-2000-09-05 Dan Winship <danw@helixcode.com>
-
- * component-factory.c (owner_set_cb): Re-rename "Sent".
-
- * folder-browser.c (fb_resize_cb): Remove the "+ 90" here since it
- seems to break things for me, and it's not commented anyway and
- there's no excuse for adding 90 to a number with no explanation.
-
-2000-09-05 Peter Williams <peterw@helixcode.com>
-
- * folder-browser.c (folder_browser_destroy): Don't free the shell;
- it's not ours.
-
-2000-09-05 Dan Winship <danw@helixcode.com>
-
- * 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.
-
- * mail-ops.c: Replace mail_do_setup_draftbox,
- mail_do_setup_outbox, and mail_do_setup_sentbox with
- mail_do_setup_folder.
- (do_send_mail, do_send_queue): s/sentbox_folder/sent_folder/
-
- * component-factory.c (owner_set_cb): Use mail_do_setup_folder,
- rename sentbox_folder to sent_folder, and call
- mail_operation_wait_for_finish after the setup_folder calls in
- case anything needs to use the _folder variables.
-
-2000-09-04 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-format.c (mail_generate_reply): Applied Jesse's patch that
- will append a signature to the replied message text
-
- * folder-browser-factory.c: Changed "Send & Receieve" back to "Get
- Mail" temporarily so that the toolbar buttons don't all get
- stretched to some weird proportion
-
-2000-09-03 JP Rosevear <jpr@helixcode.com>
-
- * mail-config.c (mail_config_add_news): Copy the passed in item
- before adding
- (mail_config_add_source): ditto
- (mail_config_add_identity): ditto
-
- * mail-config-gui.c (mail_config): We don't actually need a notebook
- pointer.
- (identities_edit_clicked): Don't explicitly destroy, we are using
- gtk_clist_set_data_full now
- (sources_edit_clicked): ditto
- (news_edit_clicked): ditto
- (mail_config): Use gtk_clist_set_row_data_full to kill leaks
-
-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)
-
-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?
-
-2000-09-02 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser.c (etable_key): Make the `Home' key to move to
- the beginning of the list and `End' to the end of it, using
- `message_list_home()' and `message_list_end()'.
-
- * message-list.c (message_list_home): New.
- (message_list_end): New.
-
- * folder-browser.c (folder_browser_new): Don't ref the shell here.
- (folder_browser_destroy): Don't unref the shell. Instead,
- `CORBA_free()' the object reference.
-
- * folder-browser-factory.c (control_activate): Bind "Open in New
- Window" to `Ctrl-O'.
-
-2000-09-02 Lauris Kaplinski <lauris@helixcode.com>
-
- * mail-config-gui.c: Use e_utf8 wrappers
-
- * main.c (main): Do e_unicode_init, so we are not confusing
- libunicode
-
-2000-09-01 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser.c: Removed a warning.
-
-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
-
-2000-09-01 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (cleanup_scan_subfolders): Update for the extra arg
- needed by `evolution_storage_new_folder()'.
- * mail-vfolder.c (vfolder_refresh): Likewise.
-
-2000-08-31 Peter Williams <peterw@helixcode.com>
-
- * folder-browser.c (folder_browser_new): Don't ref the shell:
- causes a race upon exit.
- (folder_browser_destroy): Don't unref it.
-
- * mail-config-gui.c (service_page_item_new): Add a checkbutton
- "use default port" to make life simple.
- (service_page_get_url): Honor use_default_port.
- (service_page_set_url): Set use_default_port based on the input
- URL.
- (toggle_port): New function, sets the sensitivity of the
- port entry based on "use default port"
-
- (config_do_query_authtypes): Make this asynchronous, as it
- may involve connecting to a server.
- (service_page_detect): Call the async auth querier.
- (service_page_item_new): Put the authentication stuff in if
- the url_flags have URL_ALLOW_AUTH. Call the async auth querier
- to get the info.
-
-2000-08-30 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-view.c (mail_view_create): Make the HTML widget grab the
- focus.
-
-2000-08-30 Peter Williams <peterw@helixcode.com>
-
- * mail-config-gui.c (do_test_service): Explicitly connect to
- the service again.
-
- * component-factory.c (mail_load_storages): Now that
- camel_service_get_provider exists, use it to make this function
- much simpler.
-
-2000-08-29 Peter Williams <peterw@helixcode.com>
-
- * folder-browser.c (folder_browser_new): Ref the Evolution_Shell.
- Is this correct, or is it a circular reference?
-
-2000-08-29 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (mail_do_send_mail): Update this and related
- functions to no longer take a From address. (The composer deals
- with it itself now.)
- (do_send_mail): Add the Evolution version back to the X-Mailer
- header (this change got lost in the thread migration).
-
- * mail-callbacks.c (composer_send_cb): Don't re-fetch the From
- address. It's set by the composer now. Don't free the
- post_send_data from here.
- (mail_reply): Attach to the composer's destroy signal to free the
- psd. (The current code would free it more than once if an error
- occurred while trying to send the first time.)
-
-2000-08-28 Peter Williams <peterw@helixcode.com>
-
- * mail-config-gui.c (mail_config_apply_clicked): Add new news sources,
- not only stores.
-
-2000-08-28 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (composer_send_cb): Free the from address when
- we're done with it. Also, e_msg_composer_hdrs_get_from returns
- alloc'd memory so don't strdup it.
-
-2000-08-28 Peter Williams <peterw@helixcode.com>
-
- * mail-ops.c (do_transfer_messages): Add status messages.
- (do_flag_messages): Same.
- (do_scan_subfolders): Same.
- (do_forward_messages): Same.
- (do_view_messages): Same.
-
-2000-08-28 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-view.c (mail_view_create): Use `gnome_app_set_toolbar()'
- the easy way instead of doing things manually with `GnomeDock' and
- `gnome_app_add_toolbar()'.
- (MINIMUM_WIDTH): New #define.
- (MINIMUM_HEIGHT): New #define.
- (view_size_allocate_cb): New, callback for the "size_allocate"
- signal of the mail view. It saves the last allocation in a static
- `last_allocation' variable.
- (mail_view_create): Connect it.
- (set_default_size): New function. Set the default width/height to
- the last allocation width/height; if the width/height is less than
- the `MINIUM_WIDTH' or `MINIMUM_HEIGHT', use that value instead.
-
- * mail-tools.c (mail_tool_move_folder_contents): Show `i + 1', not
- `i', so that we correctlly start counting from one instead of zero.
-
-2000-08-28 Peter Williams <peterw@helixcode.com>
-
- * *.c: s,mail_dialog_run,gnome_dialog_run,g.
-
- * main.c (main): Since only the main thread is dealing with GTK+,
- free the GDK threads mutex and never worry about locking again.
-
-2000-08-28 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-crypto.c (mail_crypto_openpgp_encrypt): Fix to prevent
- possible buffer overflows and a logic fix.
-
-2000-08-27 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-crypto.c (mail_crypto_openpgp_clearsign): New crypto
- function to clearsign plaintext
-
-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 deleted.
-
-2000-08-26 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-view.c (mail_view_create): Use
- `gtk_window_set_default_size' on the toplevel instead of
- `gtk_widget_set_usize()', and make the default size smaller.
-
-2000-08-25 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-crypto.c: Fixed an uninitialized variable.
-
-2000-08-26 JP Rosevear <jpr@helixcode.com>
-
- * evolution-mail.gnorba: Kill
-
- * Makefile.am: Remove gnorba related stuff
-
-2000-08-25 Peter Williams <peterw@helixcode.com>
-
- * mail-config-gui.c (service_page_item_new): If the service wants
- a host, also let the user specify a port.
- (MailDialogServicePageItem): Add members for the port GtkEntry and
- the default port.
- (service_page_get_url): Translate the port in the entry back into
- the CamelURL.
- (service_page_set_url): Read in the port from the URL or use
- the default.
-
-2000-08-25 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-crypto.c (mail_crypto_openpgp_encrypt): Implemented PGP 2.x
- encryption. We only need to get the passphrase if we plan to sign
- the text, otherwise we don't need to worry about getting the
- passphrase.
-
-2000-08-24 Lauris Kaplinski <lauris@helixcode.com>
-
- * folder-browser.c: Use e_utf8 wrappers
-
- * mail-config-gui.c: Use e_utf8 wrappers
-
-2000-08-24 Peter Williams <peterw@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Add all the
- functions from message-list.c's popup menu to the main
- menu as well
-
- * message-list.c (vfolder_subject): These functions become
- public.
-
- * mail-callbacks.c (mark_all_seen): Don't call camel_folder_get_uids
- here. IMAP, for example, will try to communicate with the IMAP
- server during that call.
-
- * mail-ops.c (cleanup_fetch_mail): Tell the user
- which URL has no new mail, as they may be checking
- more than one source.
- (mail_do_flag_all_messages): New function. Flags all of
- the messages in a folder. Something of a hack. This merely
- extends the flag_messages operation; it doesn't implement
- a new one.
- (do_flag_messages et al): Fetch the uids if we need to;
- use camel_folder_free_uids if necessary, etc.
-
- * mail-tools.c (mail_tool_move_folder_contents): Add
- messages to tell the user what's going on.
-
-2000-08-24 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser-factory.c: Fixed some warnings in the uihandler
- code.
-
-2000-08-24 Peter Williams <peterw@helixcode.com>
-
- * component-factory.c (mail_load_storages): New function.
- Loads a list of URI's as mail storages, and inserts them
- into the shell's folder tree if appropriate (really, only
- puts them into the folder tree.)
- (mail_add_new_storage): Insert a storage into the folder
- tree. Not always appropriate (eg, /var/spool/mail/user is
- a storage that shouldn't be in the folder tree.)
- (create_view): Generate the Evolution_Shell and pass it
- to folder_browser_factor_new_control so that its member
- 'shell' can be set.
- (owner_set_cb): Instead of create_news_storage and
- creating the imap storages, load the news storages and
- mail storages via mail_load_storages().
-
- * folder-browser-factory.c (control_activate): Change to
- use providers_config again instead of mail_config. Pass
- the folderbrowser so that the config code knows where
- to insert the new storages if any are created. Pass
- forget_passwords the folderbriwser, too, for good luck.
- (folder_browser_factory_new_control): Take a new parameter,
- the Evolution_Shell that we belong to. The field in
- FolderBrowser has been there but was never getting set by
- anything, and we need this to be able to insert new storages
- into the shell's folder list.
-
- * folder-browser.c (folder_browser_new): Accept the
- new Evolution_Shell parameter. Set it. (Should we
- ref it or something?)
-
- * mail-config-gui.c (struct MailDruidDialog): Store an
- Evolution_Shell. With this we can insert the stores into
- the shell's folder list.
- (struct MailDialog): Same.
- (service_page_item_changed): Close a leak.
- (identity_dialog): Unswitch the Add/Edit identity titles.
- (news_dialog): Analogous to above.
- (mail_druid_finish): Add the new mail source to the shell
- view.
- (mail_config_druid): Take a new Evolution_Shell parameter
- for later use.
- (mail_config_apply_clicked): Add all the mail sources to
- the shell view.
- (mail_config): Take a new Evolution_Shell parameter.
-
- * mail-callbacks.c (check_configured): Accept a FolderBrowser
- so that we know where to put the new storages if any are
- created. Almost all the callbacks are passed a FB * anyway
- so this isn't a big deal.
- (check_send_configuration): Make sure that we're configured
- enough to be able to send mail. composer_send_cb() used to
- do this, but it would need a FolderBrowser *, and there are
- too many entry points to composer_send_cb to make this
- feasible.
- (fetch_mail): Pass the extra parm to check_configured().
- (free_psd): Move so that composer_send_cb can call this
- directly.
- (composer_send_cb): Don't check for proper configuration
- here -- it is the caller's responsiblity to call
- check_send_configuration(). Call free_psd() directly.
- (compose_msg): Call check_send_configuration().
- (send_to_url): Same. This is called from mail-display.c,
- though, and cannot reasonably be passed a FB. So: we can't
- start up the config dialog directly; the user must do it
- manually. Oh well.
- (mail_reply): Same as above.
- (forward_msg): Same as compose_msg().
- (edit_msg): Same as above.
- (providers_config): Reenable so that we can pass mail_config
- its FolderBrowser.
-
- * mail-display.c (write_data_to_file): Use the much more
- straightforward run_and_close to retrieve the user's answer,
- instead of the reply callback stuff.
-
- * mail-threads.c (mail_dialog_run): New wrapper for
- gnome_dialog_run that will take care of the GDK lock correctly.
- Far far more complicated than it should be.
- (mail_dialog_run_and_close): Analogous to above.
- (read_msg): Set inside_read_msg and unset it for the benefit
- of the two above functions. Don't bracket ourselves in
- GDK_THREADS_ENTER/_LEAVE anymore.
- (mail_operation_queue): Use mail_dialog_run_and_close.
- (show_error): As above.
- (get_password): As above.
-
- * mail-display.c (write_data_to_file): This has the only
- exception to the rule that "use mail_dialog_run(_and_close)
- instead of the gnome equivalent always." Not quite sure why
- it doesn't work here (the file selection window?).
-
- * mail-config-gui.c (identity_dialog): Change to
- mail_dialog_run_and_close.
- (source_dialog): Same as above.
- (news_dialog): Same as above.
- (cleanup_test_service): Same as above.
- (mail_config): Change to mail_dialog_run().
-
- * session.c (mail_request_dialog): Change to
- mail_dialog_run_and_close.
-
- * mail-tools.c (mail_tool_uri_to_folder_noex): As above.
-
- * mail-ops.c (cleanup_fetch_mail): As above.
-
- * mail-local.c (local_reconfigure_folder): As above.
-
- * mail-callbacks.c (check_send_configuration): As above.
- (ask_confirm_for_empty_subject): As above.
- (edit_msg): As above.
- (filter_edit): As above.
-
-2000-08-23 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Reformat a bit,
- make "Folder" appear before "Message", fill in the Message menu
- more.
-
-2000-08-23 Peter Williams <peterw@helixcode.com>
-
- * mail-ops.c (describe_fetch_mail): Don't use the camel calls
- to describe the operation.
-
-2000-08-22 Peter Williams <peterw@helixcode.com>
-
- * mail-tools.c (mail_tool_get_folder_from_urlname): Don't connect
- to the service explicitly.
- (mail_tool_send_via_transport): Don't connect to the transport
- explicitly.
- (mail_tool_get_root_of_store): Same.
-
- * mail-config-gui.c (do_test_service): Just try camel_session_get_service,
- which will now connect for us.
-
- * message-thread.h: Add a note about *next being the first member
- of struct _container... if it isn't, everything goes Very Wrong.
-
- * message-thread.c (free_container): Extra debug print.
- (remove_node): Handle the case of empty containers holding the child
- that we're interested in.
- (thread_messages_free): Extra debug print.
-
-2000-08-20 Jeremy Wise <jwise@pathwaynet.com>
- * folder-browser.c: (fb_resize_cb) Added function to monitor resize
- of the e_paned in the main view.
-
-2000-08-18 Peter Williams <peterw@helixcode.com>
-
- * mail-tools.c (mail_tool_filter_contents_into): Fix a race. filter_driver_run is an
- async operation so it won't even be started by the time we sync the folders and check
- for the movemailbox to be emtpy. Thus the empty check for the movemail would fail
- 99% of the time.
-
- * mail-callbacks.c (run_filter_ondemand): Pass he new argument to the ever-mushrooming
- filter_driver_run.
-
-2000-08-17 Peter Williams <peterw@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Fix menu item names.
- (register_ondemand): Put the ondemand hooks into the new folder menu.
-
-2000-08-17 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-vfolder.c (vfolder_gui_add_rule): Use stock OK/Cancel
- buttons and add i18n support.
-
- * folder-browser-factory.c (control_activate): Changed menu item
- label from "Mark all messages seen" to "Mark All Messages as
- Read". Changed capitalization of some other menu items.
- (control_activate): Put the message- and folder- related menu
- items in new "Message" and "Folder" subtrees which are created in
- the `<Component Placeholder>' item created by the shell.
- (control_deactivate): Updated accordingly.
- (control_activate): Put the filter and vfolder editors, the mail
- configuration and the "forget password" command into the
- "settings" menu.
- (control_deactivate): Updated accordingly.
-
- * mail-config-gui.c (transport_page_new): Add translation mark.
- (service_page_new): Show the menu items before appending them.
- (service_page_item_new): Use `GTK_FILL' for the "Detect supported
- types..." button.
-
- * local-config.glade: Change the apply button into an ok button.
-
-2000-08-17 Peter Williams <peterw@helixcode.com>
-
- Implement filtering on demand.
-
- * folder-browser-factory.c (register_ondemand): New function. Callback
- to put the filter-on-demand filters into the bonobo UIH;
- (create_ondemand_hooks): New function. Read in our on-demand filters
- and hook them into the UI.
- (remove_ondemand_hooks): New function. Remove the hooks when done with
- them.
- (control_activate): Call create_ondemand_hooks()
- (control_deactivate): Call remove_ondemand_hooks();
-
- * mail-callbacks.c (run_filter_ondemand): New function. Callback
- for running a filter on demand.
- (filter_edit): Pass NULLs as the new arguments to rule_context_load.
-
- * mail.h: Prototype run_filter_ondemand();
-
- * folder-browser.c (oc_destroy): New function. Iterator to destroy
- an fb_ondemand_closure.
- (folder_browser_destroy): Free the data associated with the ondemand
- menu items.
- (my_folder_browser_init): Clear the filter_ variables.
-
- * folder-browser.h: Two new members of FolderBrowser: filter_menu_paths,
- a list of fb_ondemand_closures so that the menu items can be freed and
- removed; and filter_context, a permanently loaded FilterContext for
- running the ondemand filters. Prototype the new fb_ondemand_closure
- structure.
-
- * mail-autofilter.c (filter_gui_add_from_message): Pass NULLs as the
- new parameters to rule_context_load (we don't need to hook up ondemand
- menu items...)
-
- * mail-tools.c (mail_tool_filter_get_folder_func): Rename from
- get_folder_func() and make public so mail-callbacks.c:run_filter_ondemand()
- can use it too.
- (mail_tool_filter_contents_into): Use the new name of get_folder_func.
- Pass NULLs as the extra arguments to rule_context_load. Pass the
- extra source type to filter_driver_run (only use INCOMING).
-
- * mail-tools.h: Publicly prototype mail_tool_filter_get_folder_func()
-
- * mail-vfolder.c (vfolder_create_storage): Pass NULLs as the extra
- arguments to rule_context_load.
-
- * message-list.c (message_list_init): Free our strdup'd uids when
- the table model gets destroyed.
- (nuke_uids): New function. Walk the tree nodes to free the uids.
- (nuke_uids_cb): New callback for nuke_uids();
-
-
-2000-08-16 Richard Hult <rhult@hem.passagen.se>
-
- * mail-ops.c (cleanup_display_message): Use a configurable timeout.
-
- * mail-config.c (mail_config_set_mark_as_seen_timeout): New function
- for the settable mark-as-seen timeout.
- (mail_config_mark_as_seen_timeout): Likewise.
- (mail_config_write): Write the timeout setting.
- (config_read): Read timeout setting.
-
- * mail-config-gui.c (mail_config): Add option for the settable
- mark-as-seen timeout.
- (mail_config_apply_clicked): Likewise.
- (timeout_changed): New function for the timeout setting.
-
-2000-08-16 Peter Williams <peterw@helixcode.com>
-
- * message-thread.c (walk_containers): More (default disabled)
- mem debugging here. Fix the big leaks.
-
- * mail-format.c (get_url_for_icon): Copy the url_path so that
- it can't get freed under us.
-
- * mail-threads.c (mail_operation_queue): Fix a leak.
-
- * mail-ops.c (mail_do_display_message): Fix another leak.
-
- * message-list.c (message_list_destroy): Remove the seen_id timeout
- if necessary.
-
- * mail-local.c (mail_tool_local_uri_to_folder): Fix a leak.
-
- * session.c (auth_callback): Fix a leak. Almost seems as if
- I've been using Purify...
-
-
-2000-08-15 Peter Williams <peterw@helixcode.com>
-
- * message-thread.c (alloc_container): Add support for debugging
- container allocations -- currently disabled. Make sure that
- the g_strfreev works.
-
- * message-list.c (main_message_changed): Address bug #496 --
- possible race when forwading a message_changed event.
-
- * mail-threads.c (dispatch): Close the dispatch thread's half of
- pipes when about to exit.
- (mail_operations_terminate): Close the main thread's half of the
- pipes when about to exit.
- (all): Add i18n support.
-
- * mail-tools.c (all): Add i18n support.
-
- * mail-ops.c (transfer_messages): Generalize move_messages into
- transfer_messages so that we can copy too.
- (all): Add i18n supprt where appropriate.
-
- * mail-ops.h: Prototype the new mail_do_transfer_messages.
-
- * folder-browser-factory.c: Add a UI hook for copy_msg.
-
- * mail-callbacks.c (transfer_msg): Generalize move so that it supports
- copy as well, and add a callback 'copy_msg'.
-
- * message-list.c (on_right_click): Add a right-click hook for Copy Message.
-
- * session.c (mail_request_dialog): Don't deadlock when in main thread.
-
-2000-08-14 Peter Williams <peterw@helixcode.com>
-
- * mail-threads.c (show_error): Fix the error dialogs.
- (read_msg): Re-enable them.
-
- * mail-ops.c (do_scan_subfolders): Silence a compile warning.
-
-2000-08-13 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-crypto.c (mail_crypto_openpgp_encrypt): Added support for
- encrypting via PGP 5.0
-
-2000-08-13 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (cleanup_create_folder): Release the listener object
- with `CORBA_Object_release()', not `CORBA_free()'.
-
-2000-08-13 Ettore Perazzoli <ettore@helixcode.com>
-
- * main.c (main): Set the signal handlers for `SIGSEGV' and
- `SIGBUS' to the default ones.
-
-2000-08-13 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c (mail_config_write): Set config->configured to
- TRUE
-
-2000-08-13 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-config-gui.c (mail_config_druid): Don't
- `GDK_THREADS_ENTER()'/`GDK_THREADS_LEAVE()'.
-
-2000-08-13 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-threads.c (update_active_views): Just iterate through all
- the controls, not just the active ones.
-
- * folder-browser-factory.c: Don't keep track of active controls.
- Rather, keep track of all of them.
- (folder_browser_factory_get_active_control_list): Removed.
- (folder_browser_factory_get_control_list): New.
-
-2000-08-13 Dan Winship <danw@helixcode.com>
-
- * Makefile.am (evolution_mail_SOURCES): add mail-local.h
-
-2000-08-13 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-threads.c (read_msg): For now, don't do anything about
- errors.
-
-2000-08-13 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (add_url): Fix some freed-memory references
-
- * mail-threads.c (get_password): Don't free the prompt. It
- doesn't belong to you.
-
-2000-08-13 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (mail_do_create_folder): Duplicate the listener
- object.
- (cleanup_create_folder): Free the listener.
-
-2000-08-13 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-threads.c (get_password): Don't wrap the gnome_dialog_run
- in GDK_THREADS_ENTER/LEAVE
-
-2000-08-13 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser-factory.c (control_destroy_cb): Remove the
- control from the active control list, if it's there.
-
- * mail.h (folder_browser_factory_new_control): Removed prototype.
- (folder_browser_factory_init): Removed prototype.
-
- * folder-browser-factory.h: New.
-
- * folder-browser-factory.c: New static variable `active_controls',
- list of the currently active controls.
- (control_activate): Add the control to it.
- (control_deactivate): Remove the control from it.
- (folder_browser_factory_get_active_control_list): New.
-
- * mail-threads.c (mail_operations_get_status): New function.
-
- * folder-browser.c (folder_browser_gui_init): Add i18n support for
- the labels.
-
- [The following is actually from a patch by Peter Williams
- <peterw@helixcode.com>.]
-
- * Removed types `PERCENTAGE', `HIDE_PBAR', `SHOW_PBAR'. New
- struct `block_info_s'. Removed all the code to create and destroy
- the progress window.
-
-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
-
-2000-08-13 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (do_scan_subfolders): Lose a reference to the store
- on purpose. To be fixed later.
-
-2000-08-12 Dan Winship <danw@helixcode.com>
-
- * component-factory.c (create_imap_storage): Take the source as a
- command-line argument rather than fetching it from mail-config.
- (owner_set_cb): Call create_imap_storage on each configured IMAP
- store.
-
- * mail-format.c (decode_pgp): Redo this so that the lock icon
- remains active after a failed decryption so you can click on it
- and try again.
- (try_inline_pgp, handle_multipart_encrypted): Put a border around
- the decrypted data.
-
- * message-list.c (cleanup_regenerate_messagelist): Don't clear the
- tree here. If two "folder_changed"s arrive in close succession,
- then one possible ordering of events is
- cleanup_regenerate_messagelist, cleanup_regenerate_messagelist,
- cleanup_thread_messages, cleanup_thread_messages. Which would
- result in the message list being filled in twice without being
- cleared in between. So don't clear it until the rebuilding
- function itself is called.
- (clear_tree): New function to empty out the ETreeModel in the
- message list.
- (build_tree): Change to simpler interface. Call clear_tree.
- (build_subtree): Does most of the work of the old build_tree
- (build_flat): Remove unused arg. Call clear_tree.
-
- * message-thread.c (cleanup_thread_messages): Update for
- build_tree interface change.
-
- * mail-ops.c (do_send_mail): Don't leak the transport.
-
- * 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.
-
- * mail-callbacks.c (delete_msg): Toggling a flag is an
- "instantaneous" operation, so if we're only doing one, just do it
- and return, rather than queueing it for the other thread. This
- makes the "Delete" key work correctly (move to the next message)
- again.
-
- * mail-identify.c: Remove workaround for gnome-vfs 0.2 bug.
-
- * mail-format.c (lookup_handler): Remove workaround for function
- introduced between gnome-vfs 0.2 and 0.3, since we depend on 0.3
- now.
-
-2000-08-12 Michael Meeks <michael@helixcode.com>
-
- * main.c (main): kill using_oaf assertion.
-
-2000-08-11 Peter Williams <peterw@helixcode.com>
-
- * Makefile.am: Make it so that test-mail links
-
-2000-08-11 JP Rosevear <jpr@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Move menu items
- that affect a single message together, ditto with ones that
- affect multiple messages, put a separator in.
-
-2000-08-11 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-format.c, mail-tools.h, message-list.c: Fixed a warning.
-
-2000-08-11 Dan Winship <danw@helixcode.com>
-
- * 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.
-
-2000-08-11 Peter Williams <peterw@helixcode.com>
-
- * mail-config-gui.c (service_acceptable): Make verify-service
- an asynchronous operation.
-
- * Makefile.am (noinst_PROGRAMS): Don't build test-thread
- while mail-threads.c is in flux.
-
- * mail-threads.c (mail_operation_queue): Make the error
- and query dialogs modal.
-
- * mail-local.c (update_progress): Don't use the
- temporarily-disabled mail_op_set_percentage().
-
-2000-08-11 Chris Toshok <toshok@helixcode.com>
-
- * mail-config.c (mail_config_get_default_news): use config->news
- instead of config->sources.
-
-2000-08-11 Dan Winship <danw@helixcode.com>
-
- * 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.
-
-2000-08-11 Peter Williams <peterw@helixcode.com>
-
- * mail-tools.c (mail_tool_fetch_mail_into_searchable): Don't
- do the imap check here... it's a silly place.
-
- * mail-ops.c (do_fetch_mail): Do the imap check here.
-
-2000-08-11 JP Rosevear <jpr@helixcode.com>
-
- * mail-config-gui.c (service_page_new): Work around
- gtk option menu bug.
- (service_page_item_auth_fill): ditto
-
-2000-08-11 Peter Williams <peterw@helixcode.com>
-
- * mail-threads.c (read_msg): Fix the new FORWARD_EVENT handler
- (didn't free msg, didn't write newline in the debug)
-
- * mail-local.c (local_reconfigure_folder): Make the dialog
- modal.
-
- * mail-callbacks.c (select_first_unread): Fix some warnings.
-
- * mail-threads.c (mail_op_forward_event): New function that
- writes a FORWARD_EVENT signal to the compipe, to allow Camel
- events to be handled in the main thread.
- (read_msg): Handle a FORWARD_EVENT.
-
- * mail-callbacks.c (select_first_unread): Forward the
- event into the main thread to prevent the GTK calls in the
- dispatcher thread.
- (main_select_first_unread): New name of old select_first_unread.
-
- * message-list.c (folder_changed): Same as above.
- (main_folder_changed): Same as above.
- (message_changed): Same as above.
- (main_message_changed): Same as above.
-
- * mail-format.c (free_byte_array): Note about using
- mail_op_forward_event. (cmm_destroyed): Same.
-
-2000-08-11 Dan Winship <danw@helixcode.com>
-
- * message-list.c (message_list_select): If the caller passes "-1"
- for the model row, translate that to view row 0.
-
- * message-list.c (idle_select_row):
- * mail-callbacks.c (select_first_unread): Use new
- message_list_select kludge^H^H^H^H^H^Hfeature
-
-2000-08-11 JP Rosevear <jpr@helixcode.com>
-
- * mail-config-gui.c (source_dialog): Allow the window
- to be growable
-
- * mail-config.c: use void in empty declarations
-
-2000-08-11 Peter Williams <peterw@helixcode.com>
-
- * mail-config.c (mail_config_get_news): Change () to (void)
- if a function takes no arguments.
-
- * mail-config.h: Prototype mail_config_get_{sources,news}x
-
-2000-08-11 JP Rosevear <jpr@helixcode.com>
-
- * mail-config-gui.c (identity_dialog): iddialog, not sdialog
- (news_edit_clicked): Kill leftover c-p crud
-
-2000-08-11 JP Rosevear <jpr@helixcode.com>
-
- * mail-config-gui.c (news_edit_clicked): Check nrow, not srow.
-
-2000-08-11 JP Rosevear <jpr@helixcode.com>
-
- * mail-config-gui.c (service_acceptable): Use camel_object_unref
- instead of gtk_object_unref
- (mail_druid_finish): Use new config accessors
- (mail_config_druid): No need to call config functions
- (news_add_clicked): Increments maxnrow, not maxsrow
- (mail_config_apply_clicked): Use new config accessors
- (mail_config): ditto
-
- * component-factory.c (create_imap_storage): Use new
- config accessors
- (create_news_storage): ditto
-
- * mail-config.glade: Set news clist name correctly
-
- * mail-config.c (config_read): Rename from mail_config_read and
- made private - no one should need to do a read manually.
- (mail_config_set_send_html): New accessor
- (mail_config_add_identity): ditto
- (mail_config_get_sources): ditto
- (mail_config_add_source): ditto
- (mail_config_get_default_news): ditto
- (mail_config_get_news): ditto
- (mail_config_add_news): ditto
-
- * mail-config.h: Prototype new accessors. Config struct is now
- in mail-config.c and hidden from the world.
-
-2000-08-11 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (describe_fetch_mail): Use camel_service_get_name
- rather than showing the URL to the user.
-
-2000-08-11 Peter Williams <peterw@helixcode.com>
-
- * mail-ops.c (do_refile_messages): Freeze the folders while moving.
- (do_flag_messages): Same.
-
- * mail-threads.c (get_password_clicked): Fix the case when the
- user /doesn't/ use escape to cancel the dialog :-/
- (show_error_clicked): Same.
-
-2000-08-11 Dan Winship <danw@helixcode.com>
-
- * 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.
-
-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.
-
-2000-08-10 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser-factory.c, message-list.c, message-thread.c,
- session.c: Fixed some warnings.
-
-2000-08-10 Dan Winship <danw@helixcode.com>
-
- * 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.
-
-2000-08-10 Peter Williams <peterw@helixcode.com>
-
- * test-thread.c (queue_ops): Use mail_operations_terminate() to
- close the other thread nicely.
-
- * mail-threads.c (get_password_deleted): Handle the "close" event
- as a cancel.
- (show_error): Same.
-
-2000-08-10 Dan Winship <danw@helixcode.com>
-
- * 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.
-
-2000-08-10 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-callbacks.c (composer_send_cb): Fix compile warning by
- casting the object to a CamelObject
-
-2000-08-10 Peter Williams <peterw@helixcode.com>
-
- * mail-tools.c (mail_tool_filter_contents_into): Delete the source
- folder if told to and if it's empty
- (mail_tool_get_local_movemail_path): New function.
-
-2000-08-10 Dan Winship <danw@helixcode.com>
-
- * mail-callbacks.c (reply_to_all): Fix a bug in the async changes.
- (This was identical to reply_to_sender.)
-
-2000-08-10 Not Zed <NotZed@HelixCode.com>
-
- * mail-local.c (do_local_reconfigure_folder): Update for
- append_message api change.
-
- * message-list.c (message_list_regenerate): Change for search api
- change.
- (ml_tree_value_at): Add a colour column, based on the colour
- assigned in the summary.
- (message_list_init_renderers): Init colour column.
-
-2000-08-09 Peter Williams <peterw@helixcode.com>
-
- * mail-display.c (part_for_url): Remove a gtk_object_get_data
-
-2000-08-09 Cody Russell <bratsche@gnome.org>
-
- * folder-browser-factory.c, mail-view.c: Make the toolbars
- honor the user's gnomecc settings for detachable toolbars.
-
-2000-08-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (composer_send_cb): Get the from address set in the
- composer, if that fails ONLY THEN get the default from mail config
-
- * mail-config.c (mail_config_get_identities): New convenience
- function for getting a list of the configured identities
-
-2000-08-09 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (on_object_requested): Support controls as well
- as embeddables.
-
-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
-
-2000-08-09 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Use
- `GNOME_STOCK_MENU_*' things instead of `GNOME_STOCK_PIXMAP_*'
- things, that are too big and look bad.
-
-2000-08-09 Peter Williams <peterw@helixcode.com>
-
- * mail-view.c (mail_view_create): Save the top window so that on_close
- can find it [with set_data].
- (on_close): Recover the top window.
-
- * mail-threads.c (read_msg): Destroy the window instead of hiding it.
-
-2000-08-09 Not Zed <NotZed@HelixCode.com>
-
- * mail-autofilter.c (filter_gui_add_from_message): Helper function
- to add with confirm.
- (rule_match_recipients): Dont set real name if its empty for the
- filter name.
- (rule_match_subject): was cutting ] off mailing list names.
-
- * message-list.c (on_right_click): Added menu to install
- vfolders/filters from message.
-
-2000-08-09 Not Zed <NotZed@HelixCode.com>
-
- * mail-autofilter.c: New file to hold auto filter/vfolder stuff.
-
-2000-08-09 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-display.c, mail-format.c, mail-ops.c: Fixed some warnings.
-
- * message-list.c: Fix the call to e_popup_menu_run to match the
- new signature.
-
-2000-08-09 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Create a "print
- message" menu item.
-
-2000-08-09 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (message_list_init): Attached a double_click
- signal handler
- (on_double_click): Our lovely new double_click callback. Will
- display the current selected message in a new window
-
-2000-08-08 Jeremy Wise <jwise@pathwaynet.com>
- * mail-config.[ch], folder-browser.c: Added configuration work to
- save the size of the vpaned widget. It will be functional when the
- e_paned widget emits a "resized" signal
-
-2000-08-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.h: Added void as an argument to functions not
- needing any parameters to avoid compile warnings.
-
-2000-08-08 Jeremy Wise <jwise@pathwaynet.com>
- * mail-config.[ch], main.c, folder-browser-factory.c: State of the
- threaded list toggle is now saved via gnome_config
-
-2000-08-08 Dan Winship <danw@helixcode.com>
-
- * mail-config-gui.c (service_page_item_new): Attach a signal
- handler to call the "changed" function when the user clicks the
- "keep on server" checkbox.
-
-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
-
-2000-08-08 Dan Winship <danw@helixcode.com>
-
- * mail-config-gui.c: Add "Don't delete messages from server"
- button to remote SOURCEs that aren't STORAGEs (ie, POP).
- (provider_list): Only list SOURCEs. (ie, not mh)
-
- * mail-config.c: Save/load "keep_on_server" flag.
-
- * mail-ops.c (fetch_remote_mail): New function, split out of
- real_fetch_mail. Deals with copying mail from a remote server into
- a temporary mbox, possibly using a CamelUIDCache to leave the
- messages on the server.
-
- * mail-crypto.c, mail-format.c, message-thread.c: Fix some
- compiler warnings.
-
- * mail-format.c (mail_generate_reply): Fix up format of addresses.
- (write_headers): Use CamelAddress functions to simplify this.
-
-2000-08-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-view.c: Lets get rid of the last separator in the toolbar
- until we add n/p
-
-2000-08-08 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-threads.c (queue_window_delete_event_cb): Callback for
- "delete_event", just doing nothing.
- (create_queue_window): Connect it to the "delete_event" signal of
- the progress dialog.
-
-2000-08-08 Peter Williams <peterw@helixcode.com>
-
- * mail-threads.c (remove_next_pending): Sanity check for
- job queue, which seems to have some issues.
- (read_msg): Make sure that the next operation isn't started
- before the last one is cleaned up.
-
- * mail-callbacks.c (fetch_mail): Fix erroneous free.
-
- * mail-config-gui.c (mail_config_druid): Wrap the gtk_main call.
-
- * mail-ops.c (do_flag_messages): Allow specification of whether
- to set the flags unconditionally or toggle their current state.
-
- * message-list.c (ml_tree_set_value_at): Toggle the seen status;
- don't set it unconditionally.
-
- * mail-callbacks.c (delete_msg): Toggle the deletion status;
- don't set it unconditionally.
-
- * mail-tools.c (mail_tool_do_movemail): Fix for undeclared tmpfd.
-
- * mail-local.c (local_reconfigure_folder): Big rewrite; make into
- an asynchronous operation. Use some mail tools to make life easy.
-
-2000-08-08 Dan Winship <danw@helixcode.com>
-
- * main.c (main): Move mail_config_init after session_init, since
- it depends on evolution_dir being set.
-
-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
-
-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.
-
-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.
-
-2000-08-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * component-factory.c (real_create_generic_storage): New function
- to replace real_create_imap_storage and real_create_news_storage
- (create_imap_storage): Updated.
- (create_news_storage): Updated.
-
-2000-08-07 Peter Williams <peterw@helixcode.com>
-
- * mail-ops.c (cleanup_edit_messages): New operation: edit_messages
- For continuing draft messages.
- (attach_messages): Fix accidental 0 datasize.
- (do_setup_draftbox): New operation: setup_draftbox. Soooo hacky.
-
- * mail-callbacks.c: Move fejj's edit message to the async home.
-
- * component-factory.c (owner_set_cb): Use mail_do_setup_draftbox.
-
-
-2000-08-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-display.c:
- * component-factory.c: s/strncasecmp/g_strncasecmp
-
- * mail-format.c (write_headers): Get rid of kludge around subject
- beginning with spaces.
- (mail_generate_reply): Get rid of kludge around subject beginning
- with spaces and also use g_strncasecmp instead of strncasecmp for
- portability
-
- * mail-ops.c (forward_msg): Get rid of kludges around subject
- beginning with spaces.
-
-2000-08-07 Dan Winship <danw@helixcode.com>
-
- * message-list.c (message_list_select): Clarify that the input row
- is a model row, and swap it to a view row when finding the
- next/previous row.
- (idle_select_row): Select view row 0, not model row 0.
-
- * mail-ops.c (select_first_unread): Start from view row 0, not
- model row 0.
-
-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
-
-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.
-
- * component-factory.c (owner_set_cb): Create a global reference to
- the Drafts mbox folder for the Composer to use
-
-2000-08-06 JP Rosevear <jpr@helixcode.com>
-
- * mail-config.c (ndialog_page_undone): Desensitize ok button
- (sdialog_page_undone): ditto
- (iddialog_page_undone): ditto
- (news_page_new): Typo - news, not mail
- (transport_page_new): Typo - transport, not source
- (identity_dialog): Set undone callback
- (source_dialog): ditto
- (news_dialog): ditto
- (mail_druid_identity_undone): Desensitize next button and
- mark done flag as false
- (mail_druid_source_undone): ditto
- (mail_druid_transport_undone): ditto
- (mail_druid_identity_done): Mark done flag as true
- (mail_druid_source_done): ditto
- (mail_druid_transport_done): ditto
- (mail_druid_prepare): Use done flag to set next button
- sensitivity, fixes #467
-
-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.
-
-2000-08-05 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Remove bonobo 0.15
- vs 0.15-and-a-half ifdef, since we require post-0.16 now.
-
-2000-08-04 Dan Winship <danw@helixcode.com>
-
- * mail-threads.c (mail_operation_wait_for_finish): Don't use
- "while (gtk_events_pending ()) gtk_main_iteration ();" inside
- another tight loop, because it makes the thread spin rather than
- blocking and waiting like it should.
-
-2000-08-04 Peter Williams <peterw@helixcode.com>
-
- * message-thread.c (do_thread_messages): Uninitialized variable
- fix.
-
- * mail-threads.c (read_msg): Small leak fix.
-
- * component-factory.c (owner_unset_cb): Use mail_operations_
- terminate() instead of wait_for_finish().
-
- * mail-threads.c (mail_operation_queue): Centralize the clur
- handling functions; fix a race condition where the dispatcher
- would overwrite the closure before the main thread could
- free the old one.
- (mail_operations_terminate): New function, wait for ops to
- finished and kill the other thread.
- (dispatch): changes to die when terminate is called (abort
- on NULL spec).
-
- * mail-ops.c (cleanup_display_message): Fix improper handling
- of displaying a NULL message (which means clear the message
- display).
-
-2000-08-04 Ettore Perazzoli <ettore@helixcode.com>
-
- * message-list.c (message_list_regenerate): Free the GPtrArray
- correctly instead of using `g_strfreev()'.
-
-2000-08-04 Michael Meeks <michael@helixcode.com>
-
- * folder-browser-factory.c (control_activate): release the ui_handler
- after set_container.
-
-2000-08-03 Michael Meeks <michael@helixcode.com>
-
- * mail-config.c (identity_page_new): only whack the sig in if the
- file exists.
-
- * component-factory.c (factory_fn): count running instances,
- attach destroy signal (factory_destroy): add.
-
- * main.c (main): pass orb around.
-
-2000-08-03 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (composer_send_cb): Yay, no more compiler warnings
-
- * mail-config.c: set config = NULL
- (provider_list) Eek! Initialize news to NULL! Also, use
- g_slist_prepend() for "performance" gains ;-)
- (init_config): Set the config member data to NULL just to be on
- the safe side
- (clear_config): Don't bother freeing slist data if the slist is
- NULL
-
-2000-08-03 Peter Williams <peterw@helixcode.com>
-
- * mail-ops.c (op_forward_messages): Use the new dynamic
- operation naming.
-
- * message-thread.c (describe_thread_messages): Ditto.
-
- * message-list.c (describe_regenerate_messagelist): Ditto.
-
- * mail-threads.c (get_password_clicked): Dynamic generation
- of descriptive text for mail operations. "Opening a folder" ->
- "Opening INBOX". Supported only so far, will be implemented
- quickly.
- g_strdup() the old_message when changing the queue_window_label's
- text.
-
- * main.c (main): One more gconf reference to take out...
-
- * mail-ops.c (composer_send_cb): Check for an identity before
- sending.
-
-2000-08-03 JP Rosevear <jpr@helixcode.com>
-
- * mail-config.glade: Increase window size slightly, rename
- "Transport" to "Mail Transport"
-
- * mail-config.c (init_config): Remove gconf references
- (clear_config): ditto
- (read_config): ditto
- (write_config): ditto
- (mail_config): Null provider lists before filling them
- (mail_config_druid): ditto
- (identity_page_new): Increase spacing of vbox
- (service_page_new): ditto
-
- * Makefile.am: Remove gconf references.
-
-2000-08-02 Dan Winship <danw@helixcode.com>
-
- * mail-config.c (service_page_item_new): Make the "test settings"
- button FILL rather than SHRINK so it doesn't end up oddly-placed.
-
- * mail-config-druid.glade: Make the icon background dark blue
- like the surrounding area.
-
-2000-08-02 Peter Williams <peterw@helixcode.com>
-
- * component-factory.c (owner_unset_cb): Wait for async operations
- to finish before exiting.
-
-2000-08-02 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-ops.c, message-list.c: Emit "model_pre_change" where
- appropriate.
-
-2000-08-02 Peter Williams <peterw@helixcode.com>
-
- * mail-config.h: #ifdef _MAIL_CONFIG_H protect the header.
-
-2000-08-01 Peter Williams <peterw@helixcode.com>
-
- * mail-threads.c: Implement Solaris threads. Attempt
- to join to the thread upon exit -- hopefully prevents
- all those nasty zombie processes from popping up :-(
-
-2000-08-01 Dan Winship <danw@helixcode.com>
-
- * 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
-
-2000-07-31 Christopher James Lahey <clahey@helixcode.com>
-
- * component-factory.c, folder-browser.c: Fixed some warnings.
-
- * message-list.c: Made the icon column non sortable.
-
-2000-07-31 Dan Winship <danw@helixcode.com>
-
- * mail-config.c (service_page_set_url): Fix a NULL-pointer strcmp
- noticed by peterw.
-
-2000-07-31 Not Zed <NotZed@HelixCode.com>
-
- * mail-vfolder.h: Header for vfolder functions.
-
- * folder-browser.c (mail_uri_to_folder): Use new scheme to open
- vfolders.
- (search_save): New button/function to save a search as a vfolder.
-
- * mail-vfolder.c (vfolder_edit): Made asynchronous.
- (vfolder_uri_to_folder): New function for loading vfolders and
- setting up their source folders.
- (vfolder_refresh): Change shell vfolder uri's to indirect
- references rather than the real vfolder uri.
- (vfolder_gui_add_rule): Add a rule with user confirmation.
- (vfolder_create_part): Get a new part by name, for creating rules
- in code.
-
- * message-thread.c (thread_messages): Check for uid lookup
- failure, which indicates an error in the folder or calling code.
-
-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.
-
-2000-07-29 JP Rosevear <jpr@helixcode.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
-
-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".
-
-2000-07-27 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c: Lets fix Dan's kludge the Right Way (tm)
- (set_service_url): Only strip off the leading "/" from the
- url->path if url->host is NULL
- (get_service_url): Only prepend a leading "/" to the path if the
- host is NULL
-
-2000-07-27 Dan Winship <danw@helixcode.com>
-
- * mail-config.c (get_service_url): toss in a kludge to deal with
- the IMAP vs mbox path problem for now.
-
-2000-07-26 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c, message-list.h: Removed counting of selected
- messages.
-
-2000-07-26 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (real_fetch_mail): Don't create the tmp_mbox before
- calling movemail, because the external movemail requires it to not
- exist. Contrariwise, delete it in the cleanup code if it's empty.
- Update for camel_movemail interface change. Do the "No new
- messages" dialog in the mbox case as well as the remote mail
- issue.
-
-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.
-
-2000-07-26 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (lookup_handler): Update for OAF and for external
- apps as well as components.
- (handle_via_external): Handler to set up for data that can be
- displayed by an external application.
-
- * mail-display.c (on_link_clicked, etc): Refactor the save_data()
- code and add launch_external() as a handler for
- x-evolution-external URLs.
- (embeddable_destroy_cb): Remove this, since it seems like it's all
- wrong.
- (on_object_requested): Update for OAF, and fix some bugs.
-
-2000-07-25 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c (get_service_url): Always prepend a leading "/" to
- the url->path.
- (set_service_url): Added more error checking and also strip the
- leading '/' from the url->path
- (create_identity_page): Set the signature file to the one specified in
- the identity record, else set the default path to ~/.sugnature
-
-2000-07-25 Michael Meeks <michael@helixcode.com>
-
- * mail-config.c (create_identity_page): set default signature to
- ~/.signature
-
-2000-07-25 Peter Williams <peterw@helixcode.com>
-
- * mail-ops.c (reply): Check for the case of fb->mail_display->
- current_message = NULL, which shouldn't happen, but has happened
- to me.
-
-2000-07-25 Dan Winship <danw@helixcode.com>
-
- * message-thread.c (group_root_set): Don't group together messages
- with the same non-Re: subject and no References/In-Reply-To. More
- often than not, they're unrelated. (eg, "[No subject]".)
- (thread_messages): Handle messages with no Message-Id. "This
- shouldn't happen", but it does sometimes, and it's not much code
- to make it just work.
-
-2000-07-25 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-config.c (create_service_page): Call
- `gtk_option_menu_set_menu()' as the last thing, as `GtkOptionMenu'
- is fscking broken. Also, `gtk_widget_show()' the individual menu
- items.
-
-2000-07-24 Dan Winship <danw@helixcode.com>
-
- * message-list.c (mark_msg_seen, ml_tree_set_value_at,
- message_list_regenerate): Update for CamelFolder API changes.
- (Certain functions no longer take a CamelException.)
-
- * mail-ops.c (real_fetch_mail, real_send_mail, real_delete_msg):
- ditto
-
- * component-factory.c (real_create_imap_storage,
- real_create_news_storage): ditto
-
-2000-07-24 Dan Winship <danw@helixcode.com>
-
- * component-factory.c, folder-browser-factory.c, test-mail.c:
- Remove GOAD support.
-
- * main.c: Remove GOAD support.
- (main): More "guess the build mistake" fun, this time for the
- failure to initialize Bonobo case.
-
-2000-07-24 Peter Williams <peterw@helixcode.com>
-
- * mail-tools.c (mail_tool_set_uid_flags): Change
- function to faithfully pass parameters to
- camel_folder_set_message_flags; this function is
- somewhat useless now. Other files synced with
- API change.
-
- * mail-ops.c (op_display_message): Change "display
- a message" into "retrieve a messsage" in the
- description of mail_op_display_message.
-
- * mail-threads.c (display_timeout): New function.
- Only display the progress dialog if the operation
- takes more than a second to perform.
- (hide_queue_window): New function. Hide the queue
- window as an idle function... I'm thinking maybe
- the problem with hiding it was due to us not
- being in a GTK event sequence? Perhaps it's only
- the timeout, which was not being cancelled, which
- is now.
-
- * message-list.c (get_message_uid): New function,
- copy of get_message_info, except gets only the
- UID, as that's all that most functions want, and
- we avoid a Camel call.
-
-2000-07-23 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (create_message_composer): New.
- (compose_msg): Use it.
- (send_to_url): Likewise.
- (forward_msg): Likewise.
-
- * folder-browser-factory.c (control_activate): Use `_()' instead
- of `N_()'.
-
-2000-07-21 Peter Williams <peterw@helixcode.com>
-
- * message-thread.c (setup_thread_messages): New
- operation: thread_messages, simple wrapper around
- thread_messages () and thread_messages_free();
-
- * message-list.c (cleanup_regenerate_messagelist):
- Use new thread_messages operation instead of just
- calling ... thread_messages :-)
-
- * folder-browser.c (folder_browser_destroy): Use new
- sync_folder operation instead of calling camel_folder_sync
- directly.
-
- * component-factory.c (create_folder): Changed to use
- new create_folder operation.
-
- * mail-ops.c (mail_do_create_folder): New operation: create
- folder. New operation: sync folder.
-
- * mail-format.c (cmm_destroyed): Remove the url hashtable from
- the larger hashtable when it gets destroyed.
-
- * mail-callbacks.c (fetch_mail): Pass a hook function and data
- down the chain to pick up the folder_changed and change the view.
-
- * mail-ops.c: Rename from mail-ops-new.c now that it's a little more
- solid.
- (fetch_mail): Add new options to hook and unhook an event while the
- filter driver runs. A hack, but all of the operations are to some
- extent.
- (cleanup_fetch_mail): Unref the destination folder if not NULL.
- * mail-tools.c (mail_tool_filter_contents_into): Intermediate the
- event hook/unhook hack here.
-
-2000-07-20 Peter Williams <peterw@helixcode.com>
-
- * mail-ops-new.c (setup_send_mail): Fix silly forgetting-to-ref
- problem on some sends (when not replying). Note the early exit
- path with a big comment.
-
- * message-list.c (message_list_set_folder): Don't call
- folder_changed, call mail_do_regenerate_messagelist, as
- the GDK_THREADS_ENTER in the former can deadlock us!
-
- * folder-browser.c (folder_browser_set_uri): Ah, screw it.
- Make 'load folder' asynchronous and pretend that it always
- succeeds.
-
- * mail-ops-new.c (mail_do_load_folder): New operation, loads
- a folder into a FolderBrowser.
-
- * mail-threads.c (read_msg): Check if the exception is
- a user cancel; don't complain if it is.
- (mail_operation_queue): Same.
- (dispatch_func): Same.
-
-2000-07-20 Peter Williams <peterw@helixcode.com>
-
- * mail-ops-new.c (cleanup_send_mail): Fix evil mistaken
- unref.
-
- * test-thread.c: Fit the new mail_operation_spec prototype.
-
- * mail-callbacks.c (composer_send_cb): Hide the composer upon
- start of send operation.
-
- * folder-browser.c: #include "mail-ops-new.h"
-
- * mail-threads.h: Change text fields of mail_operation_spec to
- provide two forms of the name.
-
- * mail-threads.c: Use appropriate new string fields.
- (dispatch_func): Hide the progressbar by default.
-
- * message-list.c (op_regenerate_messagelist): Fix the datasize from
- 0 -> sizeof (regenerate_messagelist_data_t). Add the new gerund and
- infinitive strings.
- (do_regenerate_messagelist): Include some code that fell between the
- cracks.
-
- * mail-ops-new.c (op_scan_subfolders): Same datasize fix for
- scan_subfolders.
- (op_forward_message): Same.
- (all): Add new gerund and inifinitive strings for mail_operation_spec.
- (cleanup_send_mail): Destroy the composer on success; re-show it on
- error. I'm so clever!
-
-2000-07-20 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c (factory_fn): Updated for the new
- `evolution_shell_component_new()' arg.
-
-2000-07-19 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-thread.c (thread_messages): What if message info is NULL?
-
-2000-07-17 Peter Williams <peterw@helixcode.com>
-
- * component-factory.c (real_create_{imap,news}_storage): Instead of
- directly calling evolution_storage_new_folder, queue up a list of
- folders to register so that we don't do our CORBA in The Other Thread.
- (create_{imap,news}_storage): Changes ancillary to the above.
- (add_new_mailbox): New function to queue up a folder
- (cleanup_create_info): New function to dequeue the folders and free mem.
-
- * test-thread.c: s,ENABLE_BROKEN_THREADS,USE_BROKEN_THREADS -- oops
-
- * mail-format.c: (mail_lookup_url_table): New function to get the url
- table associated with a CamelMimeMessage because we can no longer
- gtk_object_get_data on it.
-
- * mail-display.c: replace 'gtk_object_get_data( message, "urls" )'
- with 'mail_lookup_url_table( message )'
-
-2000-07-16 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c, component-factory.c: Initial code to support
- IMAP folders that don't use "/" as a directory separator.
-
-2000-07-15 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (set_x_mailer_header): New helper function to set the
- `X-Mailer:' header to to `Evolution <version> [Developer
- Preview]".
- (real_send_mail): Call it.
-
-2000-07-14 Peter Williams <peterw@curious-george.helixcode.com>
-
- * message-list.c (message_list_set_folder): Ported to CamelObject:
- GTK_OBJECT->CAMEL_OBJECT; gtk_signal_connect->camel_object_hook_event;
- GDK_THREADS_ENTER/LEAVE around "changed" event hooks.
-
- * folder-browser.c (folder_browser_destroy): likewise.
- (mail_uri_to_folder): likewise.
- (folder_browser_load_folder): likewise.
-
-2000-07-14 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am (evolution_mail_LDADD): Add `GCONF_LIBS'.
-
-2000-07-14 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (write_headers): put a <p> at the end of the
- header table. (I think there used to be whitespace after it, but
- then some gtkhtml change got rid of it...)
- (handle_text_plain): Don't do this <PRE>. Instead, CONVERT_NL and
- CONVERT_SPACES and wrap it in <TT>. Now if the sender didn't
- include any newlines, it will be wrapped to the width of the
- window instead of extending off into infinity.
-
-2000-07-13 Dan Winship <danw@helixcode.com>
-
- * message-list.c (message_list_destroy): Only unref the folder if
- it's been set.
-
- * folder-browser.c (folder_browser_destroy): Only sync the folder
- if it's been set.
-
-2000-07-13 Jonathan Blandford <jrb@redhat.com>
-
- * mail-config.c (create_transport):
- s/CAMEL_SERVICE_NEED_HOST/CAMEL_SERVICE_URL_NEED_HOST.
-
-2000-07-13 Dan Winship <danw@helixcode.com>
-
- * mail-config.c (add_row): Add a "gboolean required" argument, and
- set its value on the entry.
- (create_source, create_transport): Create rows for URL elements if
- the URL ALLOWs them. Mark them required if it NEEDs them.
- (service_note_doneness): Only require the required fields to be
- filled in.
-
- Now the IMAP config page allows the user to enter a path, but
- doesn't require it.
-
-2000-07-13 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (real_fetch_mail): Back to the old way to avoid
- g_warnings, yay. Also fix append to send a flags argument (0)
-
-2000-07-12 Chris Toshok <toshok@helixcode.com>
-
- * mail-config.c (providers_config_new): fix some cut & paste bung.
-
-2000-07-12 Chris Toshok <toshok@helixcode.com>
-
- * mail-format.c (setup_function_table): add "message/news" to the
- mime_function_table using the same handler as message/rfc822.
-
-2000-07-12 Chris Toshok <toshok@helixcode.com>
-
- * mail-config.glade*: add news server tab to dialog.
-
- * mail-config.c (on_NewsServerConfigDialogButton_clicked): new function.
- (on_clistNewsServers_select_row): new function.
- (on_cmdNewsServersAdd_clicked): new function.
- (on_cmdNewsServersEdit_clicked): new function.
- (on_cmdNewsServersDelete_clicked): new function.
- (providers_config_new): mirror the source tab's code to fill in
- the news server tab.
- (write_config): save out the news server.
- (create_news_server_config_dialog): new function.
- (create_news_server_page): new function.
-
-2000-07-12 Peter Williams <peterw@helixcode.com>
-
- * mail-display.c (save_data): Change from evolution_dir to
- g_get_home_dir() for default location of save file.
-
-2000-07-11 Dan Winship <danw@helixcode.com>
-
- * Update for CamelFolder API changes
-
-2000-07-11 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (real_fetch_mail): Changed to use
- camel_folder_move_message_to () rather than get_message () and then
- append_message (). This also makes it so we don't have to worry about
- fetching message flags to pass to the new append_message () method.
-
- * folder-browser.c (folder_browser_load_folder): Disable
- Search capability menu/entry if folder doesn't support it.
-
- * message-list.c (message_list_regenerate): Don't perform
- a search if the folder doesn't support it.
-
-2000-07-11 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (real_send_mail): Set the post_send_data flag rather
- than toggling it. (Maybe we'll need more control over it later,
- but for now, the only flag we set is "replied", and we want
- that set, not toggled.)
-
-2000-07-10 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Work with both
- current and 0.15 bonobo
-
- * kill more debugging messages
-
- * mail-ops.c (real_fetch_mail): Don't multiply free dest_url.
-
- * message-list.c (message_list_select): Update
- message_list_select_next to do either next or previous.
-
- * folder-browser.c (etable_key): Make 'n' and 'p' do next and
- previous unread message.
-
- * mail-ops.c (select_first_unread): Update.
- (real_fetch_mail): clean up a bit.
-
-2000-07-10 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (forward_msg): Initialize `fwd_subj' to NULL if
- `from' is NULL.
-
-2000-07-10 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (real_fetch_mail): Fixed broken POP fetching
-
-2000-07-10 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c: Removed variable `browsers'.
- (create_view): Don't update it.
- (owner_unset_cb): Don't sync the folders here anymore, because at
- this point the folder browser is dead already so we cannot get a
- valid list of folders from it anymore.
-
- * folder-browser.c (folder_browser_destroy): Sync the associated
- mailbox first.
-
-2000-07-10 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c, message-list.h: Switched from ETable to
- ETableScrolled.
-
-2000-07-10 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (real_fetch_mail): Fixed movemail so that it too would
- deliver to Inbox.
-
-2000-07-09 Dan Winship <danw@helixcode.com>
-
- * message-list.c (get_message_info): Don't g_warn if the user
- selects a fake tree parent.
- (message_list_select_next): Ignore fake rows
- (build_tree): Store the "root_subject" for fake rows
- (ml_tree_value_at): Display the correct subject for fake rows.
- (on_cursor_change_cmd): Update for the other changes and set
- cursor_uid to NULL when the cursor is on a fake row.
-
- * mail-ops.c (reply): Don't try to reply when no (real) message is
- selected.
- (forward_msg): Ditto.
-
-2000-07-09 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Remove setting of dnd_code since that's handled
- internally to ETable.
-
-2000-07-08 Dan Winship <danw@helixcode.com>
-
- * folder-browser.c (etable_key): Fix up the pageup/pagedown
- increment a bit.
-
- * folder-browser-factory.c (control_activate): Add a "Threaded
- Message List" item to the "View" menu.
-
- * message-list.c (message_list_toggle_threads): Handler for that.
- (build_flat): New function to build a "flat" message list using
- the tree model.
- (message_list_regenerate): Build tree or flat message list
- depending on the global setting.
-
- * message-thread.c (get_root_subject): fix a "Re:" parsing bug
-
-2000-07-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (real_fetch_mail): Always dump incoming messages to
- Inbox (assuming not filtered to another location).
-
-2000-07-08 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Move the
- "Expunge" item to the "Action" menu.
- (control_deactivate): Accordingly.
-
-2000-07-08 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (forward_msg): Deal with having multiple selected
- messages.
-
- * mail-format.c (mail_generate_forward): Removed. (Integrated into
- forward_msg)
-
-2000-07-08 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (build_tree): Small fix to stop uid data from
- being set on a message-list tree node when it didn't correspond
- to an actual message.
-
-2000-07-08 Dan Winship <danw@helixcode.com>
-
- * message-list.c (get_message_info): Fix Jeff's FIXME: This does
- get called with out-of-range data sometimes, so we do need the
- check. Use e_table_model_row_count to get the actual right answer.
-
-2000-07-07 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (get_message_info): This wasn't quite right, it
- will now work but still isn't perfect. See FIXME comment.
-
-2000-07-07 Dan Winship <danw@helixcode.com>
-
- * message-thread.c (remove_node): Add another argument "clast"
- pointing to the container before the current one in the list,
- which it can update if that turns out to be the one that it
- removed.
- (group_root_set): Update for remove_node change, and remove both
- nodes in the "subjects are common" case. Fixes a bug that would
- cause the message list to be truncated if this rule was invoked.
-
- (sort_node): sort the tree by the original order of the messages
- in the folder rather than by date.
-
-2000-07-07 Dan Winship <danw@helixcode.com>
-
- * message-list.c: Lots of changes. Store uids as node data on the
- tree nodes and use those rather than rows where possible. (The
- concept of "row" is just getting too complicated.) Get rid of the
- summary_table, because given a uid we can call
- camel_folder_get_message_info, which makes more sense than keeping
- a separate uid->row hash table ourselves.
-
- (get_message_info): update
- (get_message_row): removed
- (ml_col_cound, ml_row_count, ml_value_at, ml_set_value_at,
- ml_cell_is_editable, ml_duplicate_value, ml_free_value,
- ml_initialize_value, ml_value_is_empty, ml_value_to_string):
- Removed. We always use the tree model now.
- (message_list_init): Remove the non-tree code.
- (build_tree): store uids in the tree rather than row numbers,
- and build the message_list->uid_rowmap to map from uids to rows
- when needed.
- (message_list_regenerate): Renamed from _set_search, since it's
- used to redraw in non-search cases too.
- (message_changed): Use the uid_rowmap to get a model row number.
-
- * message-thread.c (thread_messages): Change the interface on this
- to work with the new MessageList.
-
- * folder-browser.c (search_set, folder_browser_clear_search):
- s/message_list_set_search/message_list_regenerate/
-
-2000-07-07 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (get_message_info): Handle a row number of -1
- properly.
-
-2000-07-06 Dan Winship <danw@helixcode.com>
-
- * message-list.c (get_message_info): Map tree model row numbers to
- summary row numbers.
- (ml_tree_value_at, ml_tree_set_value_at,
- ml_tree_is_cell_editable): So don't do that here.
-
-2000-07-06 JP Rosevear <jpr@arcavia.com>
-
- * mail-config.glade*: Glade files for the configuration dialog.
-
- * mail-config.c (providers_config_new): Build the dialog with
- glade.
-
-2000-07-06 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c, folder-browser.c, mail-ops.c,
- message-list.c: fix warnings.
-
- * main.c (main): gtkhtmllib_init is no more. Call gconf_init
- directly instead.
-
- * message-list.c (message_list_select_next): New function to
- select the first message on or after the given row that meets
- certain flag criteria.
-
- * mail-ops.c (real_fetch_mail): call message_list_select_next to
- select first unread message in current folder if it changes.
- (real_delete_msg): Remove the code to move the etable cursor. It
- only makes sense really if you deleted the message with the
- keyboard, so do it from etable_key.
-
- * folder-browser.c (etable_key): call message_list_select_next to
- select next non-deleted message after Delete.
-
- * mail-identify.c: Add a workaround for a small gnome-vfs 0.2 bug
- so we don't need to require CVS gnome-vfs.
-
-2000-07-06 Not Zed <NotZed@HelixCode.com>
-
- * message-thread.c (sort_thread): sort messages based on date for
- the initial sort order.
- (thread_messages_free): Implement.
-
- * message-list.c (message_list_init_header): Setup the subject
- renderer to a tree in tree mode.
- (on_cursor_change_cmd): For a tree model, map the view row to the
- data row.
- (build_tree): Builds the tree data structure of all messages.
- (message_list_set_search): For a tree model, build the tree here.
- (ml_tree_icon_at): Icon callback, returns nothing.
- (ml_tree_value_at):
- (ml_tree_set_value_at):
- (ml_tree_is_cell_editable): Maps tree node to data row, and calls
- the equivalent table callback
- (message_list_init_renderers): Setup the tree renderer if needed.
- (message_list_init): set the root node invisible afterall.
- (message_list_set_search): Clear the old tree before putting in a
- new one.
-
- * message-list.h: Add a tree renderer to render list, and
- tree_view indicator.
-
- * message-thread.[ch]: Code for message threading.
-
-2000-07-05 Dan Winship <danw@helixcode.com>
-
- * mail-identify.c (mail_identify_mime_part): Oops. My gnome-vfs
- was out-of-date. Update for changed function name.
-
-2000-07-05 Dan Winship <danw@helixcode.com>
-
- * mail-identify.c (mail_identify_mime_part): Use the gnomevfs
- sniff buffer interface to try to identify the MIME type when
- everything else fails.
-
- * mail-display.c (on_object_requested):
- * mail-format.c (lookup_handler, handle_undisplayable,
- handle_audio): s/gnome_mime/gnome_vfs_mime/
-
- * Makefile.am: Add gnomevfs stuff
-
-2000-07-03 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c (create_folder): Get rid of a compiler
- warning by making sure `folder' is always initialized to some
- value for any code path.
-
-2000-07-03 Dan Winship <danw@helixcode.com>
-
- * message-list.c (select_msg): call mail_display_set_message with
- NULL if the message we tried to select doesn't exist (probably
- meaning we tried to selecte the first message and the folder is
- empty.)
-
- * mail-display.c (mail_display_set_message): deal with NULL as an
- input (meaning "undisplay previous message and display nothing").
-
-2000-07-02 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (real_fetch_mail): Remove hack to redisplay the
- inbox, since folder_changed signals will now be emitted
- appropriately.
-
- * component-factory.c (create_vfolder_storage): Fix
- filter_driver_new invocation.
-
- * Makefile.am (bin_PROGRAMS): test-mail and test-thread should be
- noinst.
-
- * mail-ops.c (real_fetch_mail):
- (vfolder_editor_clicked):
- * component-factory.c (create_vfolder_storage):
- Pass mail_uri_to_folder and rules to filter_driver_new.
-
-2000-07-02 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser.c (mail_uri_to_folder): Fix double freeing of the
- local exception `ex'.
-
-2000-07-01 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (refile_msg): Only allow type "mail" in the folder
- selection dialog.
-
-2000-07-01 Dan Winship <danw@helixcode.com>
-
- * pixmaps.h, pixmaps/*.xpm: Removed. These aren't being used any
- more. (The real pixmaps are in ../art.)
-
-2000-07-01 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c (get_message_info):
- (select_msg): Updated to reflect camel-folder changes.
-
- * mail-ops.c (real_fetch_mail): Modified to reflect camel-folder
- changes.
-
-2000-06-30 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (print_msg): Use gnome-print to do a print preview.
-
- * folder-browser-factory.c: Hook up "Print" button.
-
- * 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.
-
-2000-06-30 Peter Williams <peterw@curious-george.helixcode.com>
-
- * component-factory.c (create_news_storage, create_imap_storage):
- Fixed to use new EvolutionShellClient proxy thingamajiggie.
-
-2000-06-30 Dan Winship <danw@helixcode.com>
-
- * message-list.c (on_row_selection): use the ETable row_selection
- signal to track how many rows are selected. Eventually we will use
- this info to disable toolbar buttons when you have too few/too
- many messages selected, but the current toolbar widget doesn't
- allow that.
-
- * message-list.h, message-list.c, mail-ops.c: Change selected_row
- and selected_uid fields of MessageList to cursor_row and
- cursor_uid to be more correct according to the new ETable
- interfaces.
-
-2000-06-30 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c: Eeek. Fix typo: add missing star in the
- declaration of `global_shell_client'.
-
-2000-06-29 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c: Replace `global_shell_interface' with
- `global_shell_client'.
-
-2000-06-29 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-ops.c (delete_msg): Clean up compile warnings
- (real_fetch_mail): Fetching from IMAP should do nothing
-
-2000-06-29 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-ops.c: Handle multiple deletes (change by Peter Williams.)
-
-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.
- Also changed the pixmap to MAIL_NEW instead of MAIL_SND
-
- * mail-ops.c (compose_msg): Renamed to avoid confusion
-
-2000-06-29 Dan Winship <danw@helixcode.com>
-
- * component-factory.c (create_imap_storage, create_news_storage):
- remove some code incorrectly copied and pasted from
- create_vfolder_storage which caused vfolder creation to stop
- working.
-
-2000-06-29 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c, mail-ops.c: Changed the name of
- e_table_select_row to e_table_set_cursor_row.
-
-2000-06-29 Peter Williams <peterw@helixcode.com>
-
- * message-list.c (message_list_init): Set the dnd_code of the
- ETableHeader to something so that Solaris sprintf doesn't die
- on a NULL string.
-
- * mail-config.c (providers_config_new): Check for a null "transport"
- string (not all OS' handle NULL strings well *cough* Solaris)
-
-2000-06-28 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (mail_generate_forward): add default subjects
-
- * component-factory.c (create_folder): Refuse to create folders
- not of type "mail", and correctly create an empty "mbox" folder
- for new folders in /local.
-
- * main.c (init_corba): Call od_assert_using_oaf() or
- od_assert_using_goad() as appropriate to make sure people didn't
- somehow trick the build system.
-
-2000-06-28 Jeffrey Stedfast <fejj@helixcode.com>
-
- * message-list.c: Added prototype for filter_date to make
- it build cleanly
-
-2000-06-27 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Made dates display grouping information
- properly.
-
-2000-06-27 Peter Williams <peterw@curious-george.helixcode.com>
-
- * message-list.c (mark_msg_seen): Need to return a value
- on error.
-
- * main.c (main): Don't start threads or enter threads if
- there's no threading! Sigh.
-
- * test-thread.c: Don't compile if no threads.
-
- * session.c: Work without broken threads.
-
- * message-list.c (filter_date): Solve the ctime_r problem the
- correct way, with the magic of autoconf.
-
-2000-06-27 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Work around mismatched ctime_r functions. This
- will be fixed.
-
-2000-06-27 Peter Williams <peterw@curious-george.helixcode.com>
-
- * mail-threads.c: Don't compile this if we don't have
- threads enabled. This should maybe be on the Makefile.am
- level.
-
-2000-06-27 Michael Zucchi <zucchi@zedzone.mmc.com.au>
-
- * component-factory.c (owner_set_cb): Put in a gross hack to
- export the shell reference elsewhere.
-
-2000-06-26 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Added a value_to_string handler.
-
-2000-06-26 Peter Williams <peterw@helixcode.com>
-
- * component-factory.c, mail-ops.c: #ifdef the threads stuff so
- that if USE_BROKEN_THREADS is not defined we just call the functions
- in the main thread.
-
- * mail-threads.h: Don't declare funcs if USE_BROKEN_THREADS not
- defined.
-
- * mail-threads.c: Put the query and message boxes on top so that
- you can see them.
-
-2000-06-26 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c (error_dialog): va_start() returns void, don't
- assign it's retval to a variable.
-
-2000-06-26 Ettore Perazzoli <ettore@helixcode.com>
-
- * main.c (main): Call `GDK_THREADS_ENTER()' and
- `GDK_THREADS_LEAVE()' around the main loop as in the examples from
- the GTK+ FAQ.
-
- * mail-threads.c (DEBUG): New macro for debugging.
- (read_msg): Use it.
-
-2000-06-25 Peter Williams <peterw@helixcode.com>
-
- * Makefile.am: Clean up the various _LIBS and _CFLAGS
- to work with simpler THREADS_LIBS and THREADS_CFLAGS scheme.
-
-2000-06-23 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (folder_browser_load_folder): Improved the
- code to separate the imap namespace from the folder name.
-
-2000-06-23 Peter Williams <peterw@curious-george.helixcode.com>
-
- * component-factory.c: Include e-util/e-setup.h for the
- prototype of evolution_dir; prototype create_news_storage.
- (real_create_imap_storage, real_create_news_storage): New
- functions moving the camel stuff into the async callback.
- (create_imap_storage, create_news_storage): Chopped in
- half to move camel stuff as above.
-
- * mail-ops.c: Include "mail-threads.h" for threading protos.
- (real_fetch_mail, real_send_mail, real_expunge_folder):
- New functions moving the camel stuff into the async callback.
- (async_mail_exception_dialog): A version of mail_exception_dialog
- to be called from the async handlers (just calls mail_op_error())
- (fetch_mail, expunge_folder, composer_send_cb): Cut in half to
- move camel stuff as above.
- (cleanup_send_mail): Clean up after the async real_send_mail
- with the gtk_object_destroys et al.
-
- * mail-threads.c: Instead of hiding the progress bar, make it
- zip back and forth constantly.
- (progress_timeout): New func. Timeout called to make the pbar
- shimmy.
- (timeout_toggle): New func. Turn on and off the shimmy effect.
- (check_cond): New func. Make sure that the GCond for modal
- operation is initialized before mail_op_{error,get_password}.
- (show_error_clicked, read_msg, get_password_clicked): Move
- over to timeout_toggle.
- (mail_op_error,mail_op_get_password): Add check_cond() call.
-
- * main.c: (main) Call g_thread_init.
-
- * session.c: Change auth_callback stuff over to assume that it's
- being called async. Note: no real good way to tell if this is
- the case or not.
- (request_callback): ifdef'ed out
- (evolution_auth_callback): Use mail_op_get_password.
-
-2000-06-22 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (folder_browser_load_folder): Now should
- correctly get the selected folder from the given URL.
-
-2000-06-22 Chris Toshok <toshok@helixcode.com>
-
- * folder-browser.c (folder_browser_load_folder): add handling for
- loading "news:" folders.
-
- * component-factory.c (create_news_storage): add a root for news
- source.
- (owner_set_cb): call create_news_storage.
-
-2000-06-22 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (folder_browser_load_folder): Updated to
- prepend url-> path if it exists for that imap store.
-
- * component-factory.c (create_imap_storage): Modified to not
- prepend a hard-coded namespace.
-
-2000-06-22 Chris Toshok <toshok@helixcode.com>
-
- * mail-ops.c (fetch_mail_cleanup): new function, passed as arg to
- mail_operation_try.
- (fetch_mail): add cleanup func arg.
-
-2000-06-22 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Changed ml_value_at to return "" instead of NULL
- in some cases.
-
-2000-06-22 Peter Williams <peterw@curious-george.helixcode.com>
- * Makefile.am: Add GNOME_EXTRA_LIBS so that we get libgthread
- in our LIBS for evolution-mail.
-
- * mail-threads.c: Make the dialog boxes for error and
- question non-modal. They're modal relative to the dispatch
- thread, but before they would also eg lock up the toolbar
- buttons (while the menus, managed by another process, were
- active -- a weird effect).
-
-2000-06-22 Peter Williams <peterw@curious-george.helixcode.com>
-
- * mail-threads.[ch]: Extra argument to mail_operation_try:
- 'cleanup', a function to be called in the main thread after
- the dispatcher thread exits. gtk_object_destroy's et al may
- attempt to unmap windows so we can't do them in the dispatcher
- thread :-(
-
- * test-thread.c: Updated with demo of new argument working.
-
-2000-06-22 Peter Williams <peterw@helixcode.com>
-
- * test-thread.c (op_5): New tests for the get_password
- hook.
-
- * mail-threads.[ch]: New hook, mail_op_get_password, for
- getting a user response from an async operation. The operation
- blocks while waiting for the response. A big whole mutex
- condition threading blocking dealie to make sure that it
- works.
-
- Also the error hook creates a dialog again, which also needs
- to block its caller while we wait for the user to press ok.
-
-2000-06-22 Peter Williams <peterw@helixcode.com>
-
- * mail-threads.c (various functions): Prettify the UI
- so that the progress bar doesn't become all huge 'n stuff.
- (mail_operation_try): Now save the operation's description,
- so that we can display it later as the default message.
- (read_msg): When the operation starts set the label to its
- UI-friendly name.
- (dispatch_func): Free the saved prettyname.
-
-2000-06-21 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Removed an erroneous comment.
-
-2000-06-21 Dan Winship <danw@helixcode.com>
-
- * mail-config.c (create_transport_page): Make this not crash if
- you don't have a transport configured.
-
- * message-list.c: Update received date to work like sent date.
-
-2000-06-21 Peter Williams <peterw@helixcode.com>
-
- * mail-thread.{c,h}: New files -- a simple API for executing
- the major mail ops (fetch_mail etc) asynchronously, allowing
- the operations to send messages and update a progress bar.
-
- * test-thread.{c,h}: Tests the mail-thread API.
-
- * Makefile.am: add mail-thread.[ch] to evolution_mail_SOURCES
- and declare the test_thread noinst_PROGRAM.
-
-2000-06-21 Peter Williams <peterw@helixcode.com>
-
- * mail-format.c (mail_generate_reply): Include "e-setup.h" to
- get the prototype for evolution_dir.
-
-2000-06-20 Jeffrey Stedfast <fejj@helixcode.com>
-
- * component-factory.c (create_imap_storage): Oops. Should
- have checked for a NULL sources.
-
-2000-06-20 Dan Winship <danw@helixcode.com>
-
- * message-list.c (mark_msg_seen): Quick hack to prevent a NULL
- pointer dereference. Things need to be cleaned up a bit more here
- though.
-
- * mail-sources.c: Oops. This should have been removed a long time
- ago.
-
-2000-06-20 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (folder_browser_load_folder): Working on getting
- this to work :)
-
- * component-factory.c (create_imap_storage): Should now correctly
- construct the folder path allowing the selection of a folder.
-
-2000-06-20 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-format.c (mail_generate_reply): Declare `evolution_dir'.
- Ugly, ugly, ugly, but I am not sure where it should go instead.
-
-2000-06-19 Ettore Perazzoli <ettore@helixcode.com>
-
- * mail-ops.c (ask_confirm_for_empty_subject): New function to ask
- confirmation for an empty subject line.
- (composer_send_cb): Use it if the subject is empty and only send
- the message if the user confirms.
-
-2000-06-20 Jeffrey Stedfast <fejj@helixcode.com>
-
- * component-factory.c (create_imap_storage): Now creates the IMAP
- storage (listing subfolders and such)
-
-2000-06-19 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (find_preferred_alternative): add an option to
- prefer text/plain.
- (reply_body): add an option to prefer text/plain
- (mail_generate_reply): Check the mail sending preferences, and
- generate a text/plain reply if the user prefers to send plain text
- (and we have a text/plain part to generate a reply from).
-
-2000-06-19 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c (providers_config_new): Should now correctly display
- the Transport page (made it set the optionmenu correctly, before it
- would only set SMTP).
- (create_transport_page): Updated to set the page info to sendmail/smtp
- based on the url.
- (create_service_page): Had to add some code to set data on some objects
- so I could grab the objects I needed to modify in the above function.
-
-2000-06-18 Jeffrey Stedfast <fejj@helixcode.com>
-
- * folder-browser.c (folder_browser_load_folder): started to add
- code to load an IMAP folder.
-
- * component-factory.c: Started to add a create_imap_storage
- method so that we can eventually have our IMAP store displayed
- in the tree view.
- (create_vfolder_storage): Renamed from
- create_test_storage().
- (owner_set_cb): Updated.
-
-2000-06-17 Dan Winship <danw@helixcode.com>
-
- * message-list.c (message_list_set_folder): Prevent double-freeing
- action on summary_table and uid_rowmap.
-
-2000-06-16 Dan Winship <danw@helixcode.com>
-
- * message-list.c (ml_set_value_at): Implement clicking on the
- envelope icon to set read/unread. Based on a patch by clahey.
- (select_msg): keep the timeout id for the "seen" flagging in the
- message_list structure, so ml_set_value_at can clear it so it
- doesn't re-mark a message seen after you click it unseen.
-
-2000-06-16 Dan Winship <danw@helixcode.com>
-
- * message-list.c (get_message_row): new function to do a uid to
- row mapping.
- (mark_msg_seen, select_msg, message_changed,
- message_list_set_folder): Update for Camel flag changes.
- (on_cursor_change_cmd): Rename "row_to_select" to "selected_row",
- and keep a "selected_uid" as well.
-
- * mail-ops.c (composer_send_cb): Update for Camel flag changes,
- and fix some memory-handling bugs. (Free the post_send_data when
- the composer is destroyed, not when the user clicks "send", which
- could happen never, or more than once.)
- (delete_msg): Update for Camel flag changes, and fix the "holding
- down the delete key skips some messages" bug.
-
-2000-06-15 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (fetch_mail):
- * component-factory.c (owner_unset_cb):
- * message-list.c (message_list_set_folder): Update for CamelFolder
- changes.
-
- * folder-browser.c (folder_browser_clear_search): New function to
- revert back to non-searching mode.
-
- * mail-ops.c (fetch_mail): Use folder_browser_clear_search.
-
- * mail-display.c (on_url_requested): if the document requests an
- unknown URL, it's not an error; just ignore the URL.
-
- * mail-ops.c (fetch_mail): If there's no new mail, tell the user.
-
-2000-06-14 Radek Doulik <rodo@helixcode.com>
-
- * main.c (main): call gtkhtmllib_init here
-
-2000-06-13 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c (on_SourceConfigDialogButton_clicked): Make sure source
- is always pointing to something, so a blank is not written to the config file
- on close.
-
-2000-06-13 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am (SHELL_OBJS): Removed.
- (evolution_mail_LDADD): Use `libeshell.a'. Also use
- `top_builddir' consistently.
-
-2000-06-12 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c: Got rid of sources_max_row and identities_max_row
- as they are not really needed (just use clist->rows)
- (on_cmdSourcesEdit_clicked): Modified to make 'source'
- point to the data being edited.
- (on_cmdSourcesAdd_clicked): Adds a new clist item and selects it so the
- editor knows where to stick the data when it's done.
-
-2000-06-12 Federico Mena Quintero <federico@helixcode.com>
-
- * message-list.c: Removed the ETableModel thaw handler.
-
-2000-06-12 Dan Winship <danw@helixcode.com>
-
- * folder-browser.c (folder_browser_set_uri): Return the result of
- folder_browser_load_folder.
- (get_prop, set_prop, folder_browser_properties_init): Remove. No
- longer needed.
-
- * folder-browser-factory.c (folder_browser_factory_new_control):
- Add a "uri" argument, return NULL if setting it fails.
- (folder_browser_factory_new_control): Remove property bag stuff.
- (folder_browser_factory_init, folder_browser_factory): Remove
- this, since we're using the component factory now.
-
- * component-factory.c (create_view): Update for
- folder_browser_factory_new_control change and return NOTFOUND as
- appropriate.
-
- * main.c (main): Don't call folder_browser_factory_init.
-
- * mail-format.c (mail_generate_reply): Fix the subject generation
- so we don't get "Re: Re:". This is working around something that
- may later be declared a misfeature in Camel.
-
-2000-06-10 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c (create_folder): New stub implementation for
- the folder creation function in the EvolutionShellComponent we
- expose [it simply returns success all the time].
- (factory_fn): Pass this function to `evolution_shell_component_new'.
-
-2000-06-09 Dan Winship <danw@helixcode.com>
-
- * folder-browser.c (folder_browser_new): Add a serial number to
- FolderBrowser.
-
- * folder-browser-factory.c (control_activate, control_deactivate):
- Include fb serial number in the name of the Bonobo toolbar to
- prevent problems with disappearing toolbars. This is a kludge and
- should go away.
-
-
- * mail-ops.c (expunge_folder): display error from
- camel_folder_expunge if there is one.
-
- * message-list.c (select_row): install an idle function to
- select the row rather than doing it directly. Ugh. What a
- kludge, but at least it works now.
-
- * session.c (evolution_auth_callback): Update for
- CamelAuthCallback changes. (Uncache passwords when asked to.)
-
- * mail-ops.c (fetch_mail): close and expunge the source folder
- after copying it to a local folder.
-
-2000-06-09 Ettore Perazzoli <ettore@helixcode.com>
-
- * component-factory.c (create_view): Updated to match the changes
- to the definition of `EvolutionShellComponentCreateFn'. If @type
- is not "mail", return an "unsupported type" error.
- (factory_fn): Pass NULL for the `remove_folder' and
- `create_folder' functions.
-
-2000-06-09 Dan Winship <danw@helixcode.com>
-
- * mail-format.c: Redo things a bit so that whitespace-only
- text parts aren't displayed. (In particular, so that
- whitespace-only subparts of multipart/mixed aren't displayed as
- separate (empty) parts.)
-
-2000-06-06 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (fetch_mail):
- * folder-browser.c (folder_browser_load_folder): Update for folder
- creation/existence changes.
-
- * message-list.c (message_list_set_folder): Remove the code to
- create the folder if it doesn't exist, since we don't want to do
- that.
-
-2000-06-05 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (composer_send_cb): Leave the composer window around
- if the message doesn't get sent.
-
-2000-06-05 Matt Loper <matt@helixcode.com>
-
- * folder-browser.c (etable_key): Allow "GDK_KP_Delete", a keypad
- delete key, to delete a message.
-
-2000-06-05 Dan Winship <danw@helixcode.com>
-
- * session.c (evolution_auth_callback): Remember passwords between
- calls.
- (forget_passwords): Callback for "Forget Passwords" menu item.
-
- * folder-browser-factory.c (control_activate):
- (control_deactivate): Add "Forget Passwords" menu item.
-
- * mail.h, mail-ops.c: fix some function prototypes
-
- * folder-browser.c (etable_key): Add "Delete" = delete message.
-
- * mail-format.c (mail_generate_forward): Update for new composer
- attachment interface.
-
-2000-06-02 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c (providers_config_new): Added a new notebook
- page that allowed for mail format (text/plain or
- multipart/alternative)
-
-2000-06-02 Dan Winship <danw@helixcode.com>
-
- * message-list.c (filter_date): If the date in the summary is 0,
- output "?".
-
- * component-factory.c (create_view): keep a GList of folder
- browsers created
- (owner_unset_cb): Go through the list and close each folder before
- exiting so they sync their summary state, etc to disk.
-
- * mail-ops.c (fetch_mail): Use camel_service_connect, not
- connect_with_url, since we already passed the URL into
- camel_session_get_store.
-
-2000-06-02 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Use camel_folder_free_summary instead of
- g_ptr_array_free. Unref the folder when we're done with it.
-
-2000-06-02 Christopher James Lahey <clahey@helixcode.com>
-
- * session.c: Revert removal of e_setup_base_dir.
-
-2000-06-02 Dan Winship <danw@helixcode.com>
-
- * folder-browser.c (my_folder_browser_init): Connect to ETable's
- key_press signal.
- (etable_key): scroll mail on space/backspace.
-
-2000-06-02 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Made sent column as wide as from column.
-
-2000-06-02 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c (on_cmdSourcesAdd_clicked): Changed identity_row
- to source_row as this is a Sources clist we are dealing with and
- not an identity clist
- (on_cmdSourcesEdit_clicked): same
- (on_cmdSourcesDelete_clicked): again, same
- (on_cmdSourcesEdit_clicked): Source editor now fills in data from
- the clist
-
-2000-06-01 Dan Winship <danw@helixcode.com>
-
- * message-list.c: Add a date column.
- (COL_SENT_WIDTH_MIN): Make this wider.
- (ml_value_at): return the sent date (as a time_t) for COL_SENT.
- (Fix COL_TO too while I'm here.)
- (ml_duplicate_value, ml_free_value, ml_initialize_value,
- ml_value_is_empty): COL_SENT is numeric now.
- (message_list_init_renderers): Create a date renderer (using
- text_filter to translate the time_t into a string).
- (message_list_init_header): Use render_date for COL_SENT.
-
-2000-06-01 Christopher James Lahey <clahey@helixcode.com>
-
- * session.c: Don't call e_setup_base_dir.
-
-2000-06-01 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (mail_generate_forward): Fix forwarding to work
- for people other than me. :) [Although apparently it doesn't
- really.]
-
- * mail-ops.c (delete_msg): Add a quick hack to move the selection
- down a row when you delete a message.
-
- * mail-format.c (handle_message_rfc822): use <blockquote> rather
- than <center><table border=1 width=95%> to frame the embedded
- message. If <pre> text in the subtable won't fit in the 95% width,
- GtkHTML will write past the border of the table (and
- <blockquote><table border=1> causes creeping updates so it's not
- usable for now).
-
-2000-06-01 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c (message_list_init): Turn off the grid in our
- ETable.
-
-2000-06-01 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (write_headers): Oops. This needs to take a
- message argument because we might be writing headers for an
- embedded message/rfc822 subpart rather than the root document.
-
-2000-06-01 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c: Config dialogs are completed.
- (service_acceptable): Fixed a segfault caused by duplicate
- camel_exception_free()
- (providers_config_new): Identity and Source clists are now filled in
- when the dialog is created as well as the Transport page
-
- * folder-browser-factory.c: Renamed Tool/ menu items
- Vfolder was changed to Virtual Folder and
- Configure Camel Providers was changed to Mail Configuration
-
-2000-06-01 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am (evolution_mail_LDADD): Link with
- `libemiscwidgets.a'.
-
- * mail-display.c (mail_display_new): Use an EScrollFrame instead
- of a GtkScrolledWindow.
- (mail_display_set_message): Likewise.
-
- * mail-display.h: Replace the GtkScrolledWindow with an
- EScrollFrame.
-
-2000-06-01 Dan Winship <danw@helixcode.com>
-
- * component-factory.c (owner_unset_cb): Quit when the shell exits.
- This is a kludge, but a pretty necessary one until the refcounting
- bugs that keep the component from exiting properly are fixed.
-
-2000-05-31 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c: Partially implemented the source
- configuration, seems to segfault due to a destroyed
- gnome dialog being destroyed again in the method
- on_SourceConfigDialogButton_clicked()
-
-2000-05-31 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (free_url, handle_text_enriched,
- get_url_for_icon): Fix up memory management of x-evolution-data
- URLs so the URLs and/or their data don't get freed while there are
- still references to them.
-
- * message-list.c (message_list_init_header): redo the (unused)
- online status column to no longer refer to pixmaps that no longer
- exist.
-
-2000-06-01 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Put the toolbar
- into a frame to make it look like standard GNOME toolbars. Also,
- set `GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL' so that it does not do
- evil things when its moved to the left or the right of the window.
-
-2000-05-31 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail-config.c: Configuration dialog now allows
- adding/editing/deleting of Identities (which leaves
- adding/editing/deleting of sources left to implement).
- The data is also saved when the dialog is exited via
- the OK button.
-
-2000-05-31 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (mail_format_mime_message): Initialize the "urls"
- hash table stored on the message and store cid and other URLs
- there rather than as object data on the message.
- (get_cid): rewrite this a bunch
- (handle_text_enriched): move the code from write_iframe_string()
- into here, since it's the only place that actually needs it.
- (handle_text_html): simplify this a lot. We can use a cid: URL
- here rather than x-evolution-data.
- (get_url_for_icon): New routine to return URLs for icons, and
- cache the results, so we don't have to keep re-reading the icon
- files (and so we can't be spoofed into reading non-icon files).
- (handle_mystery, handle_audio): use get_url_for_icon.
-
- * mail-display.c (save_data): move the CamelMimePart filename
- extracting code from get_cid to here.
- (on_link_clicked, on_object_requested): Update for cid: changes.
- (on_url_requested): Kill off the kludgy, exploitable x-gnome-icon
- URL schema, update cid and x-evolution-data to match
- mail-format.c.
-
- It should now be easier to implement RFC 2557 (Content-Location,
- etc), but that RFC still pretty much sucks.
-
-2000-05-30 Dan Winship <danw@helixcode.com>
-
- * mail-format.c: Redo this back to the old way: a single GtkHTML
- with various things inline in it. (Gets rid of flicker, simplifies
- some scrolling, selecting, and printing issues.)
- (handle_text_enriched, handle_text_html): Use <iframe>s for these,
- to protect the rest of the document from their possibily invalid
- HTML.
- (handle_via_bonobo): Use (new-and-improved) <object> tags for
- this, moving most of the work back into mail-display.c
-
- * mail-display.c (on_object_requested): Move the Bonobo embedding
- code back here again (reorganized a bit).
- (on_url_requested): add x-evolution-data handler, for iframe
- bodies.
- (mail_html_new, mail_html_end): removed
- (mail_display_set_message, mail_display_new): Update for NWO.
-
-2000-05-30 Not Zed <NotZed@HelixCode.com>
-
- * folder-browser.c (search_set): Properly encode the search string.
-
-2000-05-30 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail.h: Added a prototype for providers_config_new() which
- is the constructor for the configuration dialog window
-
- * mail-config.c: Added set_service_url() which is basically
- the reverse of get_service_url().
- Implemented on_cmdCamelServicesOK_clicked() - The configuration
- window will now remember the Sendmail/SMTP data that the user
- had entered in the previous session.
- Removed on_cmdCamelServicesApply_clicked() - No need for this.
-
-2000-05-30 Dan Winship <danw@helixcode.com>
-
- * message-list.c (message_changed): call
- e_table_model_row_changed, not e_table_model_changed so we do less
- work, and don't lose the current selection.
- (select_msg): Set up a timer to mark the displayed message as
- "seen" if it's selected for longer than 1.5 seconds (a number
- pulled out of Matt's butt).
- (ml_value_at): Use the MESSAGE_STATUS column for read/unread as
- well as deleted.
-
- * message-list.c: use the "new" tigert pixmaps rather than the
- older ones. Includes a "replied to" icon (which is used now), but
- no "deleted" icon (although we have the strikeout renderer for
- that now).
-
-2000-05-30 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c, message-list.h: Added bold for unread messages.
-
-2000-05-30 Jeffrey Stedfast <fejj@helixcode.com>
-
- * mail.h: Added a prototype for providers_config()
- which is the callback for a new menu item that
- will construct a configuration dialog for the camel
- providers and identities and display it
-
- * mail-config.c: Added some code to construct the
- new providers dialog and a bunch of callbacks (most
- of which are not yet useful)
-
- * mail-ops.c: Added the code for the providers_confi()
- callback
-
- * folder-browser-factory.c: Added the
- "Tools/Camel Providers Configuration ..." menu item
-
-2000-05-30 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Switched to using "cursor_change" signal instead
- of "row_selection" for switching messages. Select the first row
- (still doesn't work because of ETable.) Adapt to some small
- ETable changes. Set drawfocus to FALSE.
-
-2000-05-29 Not Zed <NotZed@HelixCode.com>
-
- * folder-browser.c (folder_browser_load_folder): Hardcode the
- vfolder source to just the inbox (so at least it returns
- something).
-
- * component-factory.c (create_test_storage): Create a vfolder dir
- first, and put the folders in that.
- (create_test_storage): Create the storage as VFolders, not
- "storage_name" :)
-
-2000-05-28 Dan Winship <danw@helixcode.com>
-
- * mail-config.c (error_dialog): helper function since we need to
- set "modal" on the dialogs returned by gnome_error_dialog to make
- them work when popped up from the modal Druid.
- (service_acceptable): New function to check if the info entered on
- a store/transport page actually checks out.
- (mail_config_druid): Connect to the "next" signal on the store and
- transport pages and don't let the user continue if the data is
- bad and "check this before continuing" is checked. Also, only
- display sources/transports in the "mail" domain. (Ie, not
- "vfolder".)
-
- * mail-format.c (write_recipients_to_stream): Use `foo@bar' rather
- than `<foo@bar>' for recipient with no name.
-
- * mail-ops.c (fetch_mail): don't put up an error message if the
- user cancels the password dialog.
-
-2000-05-27 Not Zed <NotZed@HelixCode.com>
-
- * Makefile.am (SHELL_OBJS): Include mail storage so we can
- initialise folders.
-
- * component-factory.c (create_test_storage): Parses vfolder
- defintions and adds them to the storage. Definetly needs more
- work.
-
- * folder-browser-factory.c (control_activate): Add the VFolder
- druid menu item.
- (control_deactivate): And remove it.
-
- * mail-ops.c (vfolder_editor_clicked): For editing vfolder
- definitions (rather like filters, oddly enough :). Tries to
- update the shell but it doesn't seem to work properly - requires a
- mail component restart to take effect.
-
- * folder-browser.c (folder_browser_load_folder): Handle vfolder:
- urls' appropriately and map to camel. Still needs a way to tell
- the vfolder what folders to search! (all vfolders come up empty!).
-
-2000-05-28 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c, message-list.h: Added a COL_DELETED and made it
- the strikeout column for both text renderers.
-
-2000-05-27 Dan Winship <danw@helixcode.com>
-
- * mail-format.c: Various improvements:
-
- (call_handler_function, etc): Add a "mime_type" argument to the
- handlers, so that if a part is tagged as
- "application/octet-stream", and we figure out that it's really
- something else, the handler we call can know what that something
- else is.
-
- (handle_text_enriched): Small fixes to make this not do
- text/enriched-specific syntax in text/richtext or vice versa.
-
- (handle_mystery): Allow for mystery data that can't even be saved
- to disk. (ie, unrecognized external-body). Let the caller specify
- the URL to use.
-
- (handle_message_external_body): New function to deal with
- message/external-body parts. Generates URLs for anon-ftp,
- local-file, and URL access-types, and a more-useful-than-before
- descriptive message for other types.
-
- (handle_audio, handle_undisplayable): Use gnome_mime_get_value to
- try to get a description of the MIME type to display to the user
- rather than the raw form. (This will only work if the user has
- recent gnome-vfs installed. [If they don't, it works just like
- it used to.])
-
-2000-05-26 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (handle_text_html): Fix a bug (security/stability)
- in its usage of mail_html_write.
-
- * mail-ops.c (composer_send_cb, reply): set CAMEL_MESSAGE_ANSWERED
- on a message after a successful reply.
-
- * message-list.c (folder_changed): free the summary with
- camel_folder_free_summary rather than g_ptr_array_free.
-
- * mail-format.c (handle_via_bonobo): Update for PersistStream
- changes
-
-2000-05-25 Ettore Perazzoli <ettore@helixcode.com>
-
- * main.c (main): Initialize the component factory.
-
- * Makefile.am (evolution_mail_LDADD): Link with
- `evolution-shell-component.o' from the shell directory.
-
- * evolution-mail.oafinfo: Updated with the
- Evolution::ShellComponent OAFIID.
-
- * evolution-mail.gnorba: Updated with the
- Evolution::ShellComponent GOAD ID.
-
- * folder-browser-factory.c (folder_browser_factory_new_control):
- New function; code moved out from `folder_browser_factory'.
- (folder_browser_factory): Use it.
-
- * component-factory.c: New.
- * component-factory.h: New.
-
-2000-05-24 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (composer_send_cb): connect to and disconnect from
- the transport.
-
-2000-05-24 Christopher James Lahey <clahey@helixcode.com>
-
- * Makefile.am: Added libepaned.a.
-
- * folder-browser.c: Switched from GtkPaned to EPaned.
-
-2000-05-23 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am: Don't link to `evolution-service-repository.o'
- anymore.
-
- * folder-browser-factory.c: Don't use crufty service-repository
- anymore.
-
-2000-05-21 Ettore Perazzoli <ettore@helixcode.com>
-
- * message-list.c (get_message_info): Made static.
- (ml_initialize_value): Return NULL to placate compiler.
-
- * folder-browser.c (folder_browser_gui_init): Add cast.
-
- * mail-display.c (mail_html_new): Don't pass an empty URL to
- `gtk_html_begin()' anymore.
-
- * mail-config.c (put_html): Don't pass an empty URL to
- `gtk_html_begin()' anymore.
-
- * mail-display.h: Updated for the new GtkHTML API that uses
- `GtkHTMLStream *' instead of `GtkHTMLStreamHandle'.
- * mail-display.c: Likewise.
- * mail-config.c: Likewise.
- * mail-format.c: Likewise.
-
-2000-05-19 NotZed <NotZed@HelixCode.com>
-
- * mail-format.c: Fixes for stream stuff.
-
- * mail-display.c (save_data_cb): Remove exception stuff on streams.
-
-2000-05-19 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Added initialize_value and value_is_empty
- callbacks.
-
-2000-05-18 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (folder_browser_factory): Remove
- development_warning (moved to shell)
-
- * message-list.c (select_msg): Update for camel_folder_get_uids
- (folder_changed, message_list_set_folder): Update for
- camel_folder_get_summary
-
- * mail-ops.c (fetch_mail): Update for camel_folder_get_uids
-
-2000-05-17 Dan Winship <danw@helixcode.com>
-
- * mail-component.c: This seems to be cruft. Nuke it.
-
- * mail-display.c (save_data_cb, save_data, on_url_requested):
- * mail-format.c (handle_text_plain_flowed, handle_text_html):
- Use camel_data_wrapper_write_to_stream rather than
- camel_data_wrapper_get_output_stream.
-
-2000-05-16 NotZed <NotZed@HelixCode.com>
-
- * mail-ops.c (filter_edit): Function to bring up the filter editor.
- (filter_druid_clicked): Save/close dialogue.
- (fetch_mail): Apply filters to incoming mail ... *hold breath*
- If we are coming from a non-indexed/searchable/etc source, then
- copy it to an mbox first. When copying mail from an mbox source,
- dont remove it aftewards, open it for append, so partially
- filtered mail isn't lost.
-
- * Makefile.am (evolution_mail_LDADD): Added libfilter.
- (INCLUDES): Add EVOLUTION_DATADIR, and fix matt's brokeneditor(tm)
- for putting spaces instead of tabs in.
-
-2000-05-16 Christopher James Lahey <clahey@helixcode.com>
-
- * mail-format.c: Removed usage of bonobo_object_destroy.
-
-2000-05-14 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Updated to work with new ETable resizing.
-
-2000-05-12 NotZed <NotZed@HelixCode.com>
-
- * mail-ops.c (fetch_mail): Use 6 X's to mkstemp, as required by
- the man page, just a temp fix, this should probably change to a
- known filename.
-
-2000-05-11 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Now that we depend
- on current gnome-libs we can make the toolbar detachable again.
-
-2000-05-11 Federico Mena Quintero <federico@helixcode.com>
-
- * folder-browser-factory.c (development_warning): Left-justify the
- message.
-
-2000-05-10 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser-factory.c (development_warning): Made this dialog
- have fewer buttons.
-
-2000-05-10 Christopher James Lahey <clahey@helixcode.com>
-
- * folder-browser-factory.c (development_warning): New development
- warning text from Nat.
-
-2000-05-10 Larry Ewing <lewing@helixcode.com>
-
- * mail-config.c (html_new): only set the default background color
- if style is not NULL.
-
-2000-05-09 Christopher James Lahey <clahey@helixcode.com>
-
- * Makefile.am: Removed folder-browser-factory.h since it doesn't
- exist. Added mail-display.h, mail-types.h, pixmaps.h.
-
-2000-05-09 Matt Loper <matt@helixcode.com>
-
- * folder-browser-factory.c (control_activate): Remove "File->mail"
- menuitem.
-
- * mail-config.c (mail_config_druid): Fill in "blah blah blah".
-
-2000-05-09 Dan Winship <danw@helixcode.com>
-
- * folder-browser.c (folder_browser_load_folder): make this a
- little less kludgy. Use gnome_error_dialog rather than printf on
- errors.
-
- * mail-ops.c (fetch_mail): Fix to work with the new shell stuff...
- sorta. Will need more fixing later when the new shell framework is
- more done.
-
- * mail-config.c (finish): Call gnome_config_sync so the data
- actually gets written.
-
-2000-05-08 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (save_data_cb):
- (on_url_requested): Update for CamelStream CamelException changes.
-
- * mail-format.c: Pass NULL for a CamelException in a bunch of
- places... the user will see that the data is not being displayed,
- and there's not a lot we can do, and none of these things should
- be failing anyway. Maybe fix this later.
-
-2000-05-07 NotZed <NotZed@HelixCode.com>
-
- * message-list.c (ml_value_at): Size moved to message info, rather
- than content info structure.
-
-2000-05-07 Dan Winship <danw@helixcode.com>
-
- * message-list.c (select_msg): unref the message after displaying
- it.
-
- * mail-format.c (get_data_wrapper_text):
- (handle_text_plain_flowed):
- (handle_via_bonobo): Replace camel_stream_close calls.
-
-2000-05-07 Matt Loper <matt@helixcode.com>
-
- * folder-browser-factory.c: Changed a toolbar button from saying
- "New mail" (which suggests you might be composing new mail) to
- "Get mail".
-
-2000-05-06 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (folder_browser_factory): Don't
- hardcode "inbox" here.
-
- * folder-browser.c (folder_browser_set_uri): Don't hardcode
- "inbox" here either.
- (folder_browser_load_folder): Create a new store according to the
- folder browser's URI, and load the mbox file from that store.
- Parts of this are temporary.
-
- * session.c, mail.h: There is no longer a global store, just a
- global session.
-
- * mail-config.c, mail-ops.c: Update for default_session -> session
- change. fetch_mail is currently broken.
-
-2000-05-06 Dan Winship <danw@helixcode.com>
-
- * mail-config.c: New code to configure identity, mail source, and
- mail transport.
- (mail_config_druid): A druid using the config widgets. (Only
- allows configuration of a single identity, source, and transport.)
-
- * mail-ops.c (check_configured): New function to make sure the
- user has configured stuff, and call the druid if not.
- (fetch_mail, send_msg, send_to_url, reply, forward_msg): Call
- check_configured
- (composer_send_cb): Make this pass the message to a CamelTransport
- rather than just printing it to stdout.
-
- * folder-browser-factory.c (development_warning): Add a warning
- about sending mail, since you can do that now.
-
-2000-05-06 Chris Toshok <toshok@HelixCode.com>
-
- * .cvsignore: ignore evolution-mail.pure
-
- * Makefile.am: add support for building evolution-mail.pure
-
-2000-05-06 Dan Winship <danw@helixcode.com>
-
- * mail.h: consolidate mail-format.h, mail-identify.h, mail-ops.h,
- main.h and session.h into this new file. There's no reason to have
- a .h for every .c.
-
-2000-05-05 Anders Carlsson <andersca@gnu.org>
-
- * test-mail.c (create_container): Use the OAFIID when using an
- OAF-enabled build of bonobo.
-
-2000-05-04 NotZed <NotZed@HelixCode.com>
-
- * message-list.c (message_list_set_folder): Get the whole message
- summary right away.
- (folder_changed): And if we change too.
- (ml_row_count): Use the match count or summary table length as the
- row count.
- (get_message_info): Use array references to lookup message summary
- info. For the search result list, use the summary_search_cache to
- cache the info lookup.
- (message_list_init): Allocate the summary search cache.
- (message_list_destroy): Free the summary search cache and the
- summary table, if there is one to free.
- (message_list_set_search): Save the match count, and clear the
- summary search cache for reuse.
- (folder_changed): Re-retrieve the summary list if the folder has
- changed.
- (message_list_set_folder): Retrieve the summary list when opening
- the folder.
-
-2000-05-03 Jason Leach <leach@wam.umd.edu>
-
- * Makefile.am (evolution_mail_LDADD): s/-lunicode/$(UNICODE_LIBS)/
- in the LDADD section.
-
-2000-05-03 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (write_recipients_to_stream, write_headers): Make
- the "Cc:" field optional again. (Before, we could check if
- camel_mime_message_get_recipients returned NULL, but now we need
- to actually look into the returned CamelInternetAddress object.)
-
-2000-05-03 Larry Ewing <lewing@helixcode.com>
-
- * folder-browser.c (folder_browser_gui_init): comment out the
- changed signal for now.
-
-2000-05-02 Matt Loper <matt@helixcode.com>
-
- * Makefile.am: set G_LOG_DOMAIN.
-
-2000-05-02 Larry Ewing <lewing@helixcode.com>
-
- * message-list.c (message_list_set_search): only free search if it
- is not NULL.
-
-2000-05-02 NotZed <NotZed@HelixCode.com>
-
- * folder-browser.c (folder_browser_gui_init): Connect the changed
- signal to search, so it searched immediately?
-
-2000-05-01 NotZed <NotZed@HelixCode.com>
-
- * pixmaps.h: Added envelope-deleted state.
-
- * folder-browser-factory.c: Setup callback for actual delete op.
- (control_activate): Setup a tool menu item to expnge deleted
- messages.
-
- * mail-ops.c (delete_msg): Toggle the delete flag on a message.
- (expunge_folder): New function to expunge deleted messages from
- the current folder.
-
- * folder-browser.c (folder_browser_gui_init): A hackish little
- quick-search entry.
- (search_activate): Perform a quick-search on the folder subject
- only.
- (folder_browser_gui_init): Add an option meny to the search line.
- (create_option_menu): Build the option menu from a table.
- (search_set): Build a search from another string whent he option
- menu or text item is changed. 5 search options are defined so
- far.
-
- * message-list.c (get_message_info): If there is an active search,
- then get the data from that ... use this instead of
- _get_message_info().
- (ml_row_count): If we have an active search, get the info from its
- result.
- (select_msg): Changed to use get_message_info, so searches work.
- (ml_value_at): And same here.
- (message_list_init_renderers): Added a 3rd state to message_status
- = deleted.
- (ml_value_at): Show the message state as deleted, if it is marked
- for deletion.
- (folder_changed): When the folder changes, update the display.
- (message_list_set_folder): Connect to the folder_changed event
- here.
- (message_changed): Callback to update the display when the message
- changes.
- (select_msg): And connect to the message_changed signal so we know
- when it cahgnes.
- (message_list_set_search): Save the search string.
- (folder_changed): If the folder changes, re-run the search,
- otherwise we may end up with invalid entries in the display.
-
- * mail-display.c: Include missing errno.h.
-
-2000-04-30 Dan Winship <danw@helixcode.com>
-
- * session.c (session_providers_init): This is no longer necessary.
-
- * mail-ops.c (fetch_mail): Remove kludge to load remote provider,
- as camel can do it by itself now.
-
-2000-04-29 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (on_link_clicked): Handle clicks on "cid" URLs by
- popping up a "Save Attachment" dialog.
-
- * mail-format.c (get_cid): if the part has a Content-Disposition
- with a filename specified, record (a sanitized version of) that on
- the wrapper when creating the cid reference, so the "save
- attachment" code can use it later.
- (handle_mystery): fix a bug in the cid generation here.
-
-2000-04-29 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (lookup_handler, etc): Improve the builtin vs
- bonobo selection code.
- (handle_mystery): Include name and Content-Description in the
- "mystery data" info, when available
- (handle_unknown_type): Call mail_identify_mime_part before
- giving up.
- (handle_undisplayable): Split out of handle_unknown_type now
- that handle_unknown_type can try alternate viewers.
- (handle_via_bonobo): Fall back to handle_undisplayable if the
- bonobo control fails.
-
- * mail-identify.c (mail_identify_mime_part): New function to
- attempt to identify a MIME part that we can't identify based on
- Content-Type alone.
-
- * mail-display.c (on_url_requested): redo the mystery data icon
- display stuff less kludgily.
-
-2000-04-28 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (write_recipients_to_stream, write_headers,
- mail_generate_reply): Update (minimally) for Camel recipient
- changes.
-
-2000-04-28 Ettore Perazzoli <ettore@helixcode.com>
-
- * main.c (init_bonobo): Don't call `init_corba()' and don't get
- any args.
- (init_corba) [!USING_OAF]: Fix args.
-
-2000-04-27 Ettore Perazzoli <ettore@helixcode.com>
-
- * folder-browser-factory.c: New macro `CONTROL_FACTORY_ID', which
- is #defined to a different value according to whether we are
- `USING_OAF' or not.
- (folder_browser_factory_init): Use `CONTROL_FACTORY_ID'.
-
- * test-mail.c
- (init_corba): New helper function, implemented differently
- according to `USING_OAF'.
- (main): Use `init_corba()'.
-
- * main.c
- (init_corba): New helper function, implemented differently
- according to `USING_OAF'.
- (init_bonobo): Use `init_corba()'.
-
- * Makefile.am: Install OAF stuff if `USING_OAF'. Add
- `-I$(datadir)/idl' to the `orbit-idl' command-line so that we can
- use Bonobo IDL files installed under our prefix as well. Also,
- use `$(ORBIT_IDL)' instead of hardcoded `orbit-idl'.
-
- * evolution-mail.oafinfo: New file.
-
-2000-04-27 Dan Winship <danw@helixcode.com>
-
- * mail-format.c: Move text_to_html to e-util.
-
- * mail-ops.c (send_to_url): New routine. Thin wrapper for
- e_msg_composer_new_from_url.
-
- * mail-display.c (on_link_clicked): print a warning for news or
- nntp URLs (which we'll deal with some day), and call send_to_url
- for mailto URLs.
-
- * mail-format.c (text_to_html): Improve URL conversion code.
- Recognize https, recognize "www\..*" without a prefixed "http://".
- Properly escape &, <, >, etc in URL strings. Don't be fooled by
- "mailto:", "http://", etc with no following data.
-
-2000-04-26 Dan Winship <danw@helixcode.com>
-
- * mail-format.c (text_to_html): Reorganize a bit and add a new
- flag, TEXT_TO_HTML_CONVERT_URLS to recognize and wrap URLs
- in text.
-
- * mail-display.c (mail_html_new): Add link_clicked signal handler.
- (on_link_clicked): Use gnome_url_show to launch a browser.
-
- * mail-format.c: update for CamelStream changes. Update for
- CamelMimeBodyPart -> CamelMimePart
-
-2000-04-25 Dan Winship <danw@helixcode.com>
-
- * mail-display.c, mail-format.c: Redo large chunks of this. The
- mail display now consists of a vbox in a scrolled window, in which
- we put multiple GtkHTML objects. This means broken HTML in one
- part can't corrupt other parts. The headers now scroll with the
- body. Unrecognized attachments look prettier, but still don't do
- anything, and will probably be changed later. We can also now
- display nested message/rfc822 parts and multipart/alternatives
- with multipart subparts. Oh, and text/{richtext,enriched}, since
- we had all these ancient sample messages that use it and the lack
- of support annoyed me. :)
-
- Bonobo embeddables are broken right now, but I don't think that's
- my fault.
-
- * mail-format.c (reply_body): Fix some bugs that crept into reply
- generation. This needs a lot more work to deal correctly with
- complicated bodies.
- (setup_function_table): pass unknown text subtypes to
- handle_text_plain.
- (handle_multipart_appledouble): new handler. Just ignores the
- first (application/applefile) part and tries to display the
- second part. Since the second part is usually
- application/octet-stream, this doesn't work very well still
- usually.
- (reply_body): Make this deal better with multiparts.
-
- * mail-format.c, mail-display.c: Now that we're not limited to
- a single GtkHTML for the display, there's no reason to embed
- Bonobo objects for unrecognized content-types in GtkHTML rather
- than embedded them into the vbox directly. So do that.
-
- Meanwhile, fix up the handler-selection code so that we can
- declare which built-in handlers are more desirable than external
- handlers and which are less. (Of course, eventually we'll want
- this to be customizable.) Add some cleverness to
- handle_multipart_alternative as well so it doesn't accept an
- alternative which we can display generically over one we can
- display specifically.
-
- * mail-format.c (text_to_html): add a convert_space_hack flag,
- which turns N spaces into N-1 &nbsp;s and a space.
- (handle_text_plain): Check for "format=flowed" in the
- Content-Type.
- (handle_text_plain_flowed): Spinoff of handle_text_plain to deal
- with RFC 2646 flowed text. (All the examples I can find of it
- are generated by Eudora, but it's a pretty cool idea that ought
- to be used more widely.)
-
-2000-04-23 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c: rename "send" to "send_msg", to avoid
- name clash with the tcp function. Connect the "forward" button.
-
- * mail-ops.c: rename "send" to "send_msg", to avoid name clash
- with the tcp function. Add forward_msg function.
-
- * mail-format.c (mail_generate_forward): support function for
- forward_msg. Pretty much a big kludge right now, pending the
- attachment/attachment-bar changes.
-
-2000-04-22 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (on_url_requested): Change cid expectations to
- match current camel reality.
-
- * main.c (main): call glade_gnome_init, for composer.
-
- * folder-browser-factory.c: move msg_composer_cb and
- msg_composer_send_cb to mail-ops. Attach send, reply, and "reply
- to all" buttons.
-
- * mail-ops.c (composer_send_cb, send): moved from
- folder-browser-factory.c.
- (reply_to_sender, reply_to_all): new functions to do replies.
-
- * mail-format.c (text_to_html): Add an "add_pre" flag, to make
- it wrap the output in <pre></pre>.
- (mail_generate_reply): New function to create a composer and build
- a reply in it.
-
-2000-04-21 Dan Winship <danw@helixcode.com>
-
- * mail-display.c (on_url_requested): deal with cid: URLs.
- (find_cid): helper routine for above. (This could be much better.)
- (mail_display_init): connect url_requested signal
-
- * mail-format.c (handle_multipart_related): Make this work.
-
- * mail-display.c (mail_display_set_message): ref the message we
- display, since we're going to unref it when we remove it. Fixes a
- bug that showed up with the new camel code, but it's not obvious
- if it's due to a bug or a feature in the new code.
-
-2000-04-20 NotZed <NotZed@HelixCode.com>
-
- * Makefile.am (evolution_mail_LDADD): Add libibex.la to link.
-
- * message-list.h: Removed folder summary.
-
- * message-list.c: Dont include folder-summary anymore.
- (select_msg): Changed to use folder, not summary in
- summary_get_message_info(). God this code is grotty.
- (ml_value_at): Ditto.
- (ml_value_at): Changed to use new interface. Hmm, this returns a
- static variable, that seems wrong.
- (message_list_set_folder): Remove folder summary.
- (ml_row_count): Oops, remove some debug i put there.
-
-2000-04-20 Dan Winship <danw@helixcode.com>
-
- * mail-display.c: update for bonobo change, and remove a
- now-unused variable.
-
-2000-04-17 Chris Toshok <toshok@helixcode.com>
-
- * message-list.c (on_row_selection_idle): new function, actually
- calls select_msg.
- (on_row_selection_cmd): register an idle instead of calling
- select_msg directly. this fixes the lag before the row is
- selected - selection is instantaneous now, with message loading
- happening afterward.
-
- * message-list.h: add row_to_select and an idle_id to the message
- list to make the select_msg call happen in an idle func.
-
- * message-list.c (message_list_init_renderers): no more
- e_cell_set_editable. this info always comes from the model.
-
-2000-04-14 Dan Winship <danw@helixcode.com>
-
- * mail-format.[ch]: Moved from camel/camel-formatter, and changed
- slightly. (More to come.)
-
- * html-stream.[ch]: No longer necessary. mail-format uses
- GtkHTMLStreamHandles directly.
-
- * mail-display.[ch]: update for new message formatting code.
-
-2000-04-14 Chris Toshok <toshok@helixcode.com>
-
- * folder-browser-factory.c (control_activate): use
- gnome_app_fill_toolbar_with_data, so we get the beautiful gnome
- toolbar.
-
-2000-04-14 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (development_warning): Fix up the
- warning message a bit.
- (folder_browser_factory): Make the warning bypassable.
-
-2000-04-12 Miguel de Icaza <miguel@gnu.org>
-
- * main.c (main): Call e_cursors_init.
-
-2000-04-10 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c (fetch_mail): use camel_movemail when fetching mail
- from an mbox store. This leaves behind temp files for now,
- because CamelMboxFolder::delete is too confused to use, and NotZed
- is rewriting CamelMboxFolder, so I'm not going to bother to try to
- fix it.
-
- * mail-ops.c: Add some #includes for the non-HAVE_MKSTEMP case
-
-2000-04-09 Matt Loper <matt@helixcode.com>
-
- * folder-browser.c (folder_browser_new): set folder_browser->uri
- to NULL, so that we know when to free it.
-
-2000-04-07 Miguel de Icaza <miguel@gnu.org>
-
- * message-list.c (states_pixmaps): Add more beautiful art from
- Miggue, the Diego Rivera of the next millenium.
- (message_list_init_header): Use the beautiful art.
-
- * pixmaps: Miguel rediscovers the "transparent" concept.
-
-2000-04-07 Matt Loper <matt@helixcode.com>
-
- * folder-browser.c (folder_browser_destroy): Unref the shell
- interface that we have a handle to.
-
- * folder-browser-factory.c (control_destroy_cb): New function;
- destroys a folder-browser when its control is destroyed.
- (folder_browser_factory): Hook up to the above.
-
-2000-04-07 Dan Winship <danw@helixcode.com>
-
- * mail-ops.c: new file, for toolbar/menu callbacks
- (fetch_mail): fetch mail. Doesn't do mbox locking. Many kludges.
-
- * folder-browser-factory.c (control_activate): use new fetch_mail
- function as the callback for the "New mail" icon. Rename check_cb
- to random_cb.
-
- * Makefile.am: don't build test-sources since the version in
- CVS doesn't do much and once I've fixed it it won't be a separate
- program. Add mail-ops.[ch].
-
-2000-04-06 Miguel de Icaza <miguel@gnu.org>
-
- * message-list.c: Stick pixmaps here.
-
- * mail-display.c (embeddable_destroy_cb): Replaced C++ comments
- with C comments.
-
- * message-list.c (load_internal_images): New function, loads images.
- (message_list_init_renderers): Load images, fix previous attempt
- at loading images.
-
- * Makefile.am (dist-hook): Added distribution of pixmaps.
-
- * pixmaps: New directory, used to hold the XPMs we ship with.
-
- * pixmaps/envelope-closed.xpm, pixmaps/envelope-open.xpm: Tigert's
- envelopes incorporated.
-
-2000-03-31 Miguel de Icaza <miguel@gnu.org>
-
- * message-list.c (ml_value_at): Fix miss-used variable.
-
-2000-04-01 Michael Meeks <michael@helixcode.com>
-
- * folder-browser.c (folder_browser_properties_init): update to
- new property (folder_browser_property_changed): kill.
- (get_prop, set_prop): do the donkey work + make properly RW.
-
-2000-03-31 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (folder_browser_set_shell):
- * folder-browser.c (folder_browser_new):
- * message-list.c (on_row_selection_cmd, select_msg,
- message_list_init, message_list_set_folder):
-
- remove debugging printf()s that no longer seem useful
-
-2000-03-29 Dan Winship <danw@helixcode.com>
-
- * folder-browser-factory.c (control_activate): build a toolbar.
- (control_deactivate): and hide it.
-
-2000-03-27 Chris Toshok <toshok@helixcode.com>
- * mail-display.c: quiet warnings when building in ../po
-
-2000-03-26 Miguel de Icaza <miguel@gnu.org>
-
- * folder-browser-factory.c (folder_browser_set_shell): Memory leak
- fix.
-
-2000-03-25 Dan Winship <danw@helixcode.com>
-
- * message-list.c (select_msg, ml_value_at): update for summary
- changes. Hey, neat, it really does make it more efficient.
-
-2000-03-22 Christopher James Lahey <clahey@helixcode.com>
-
- * .cvsignore: Updated .cvsignore.
-
-2000-03-21 Matt Loper <matt@helixcode.com>
-
- * mail-display.c: Minor cleanup & commenting.
-
- * folder-browser-factory.c: Minor cleanup & warning elimination.
-
-2000-03-21 bertrand <bertrand@helixcode.com>
-
- * message-list.c (ml_value_at): display message size
-
-2000-03-20 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Properly ref & sink the table and header models.
-
-2000-03-14 Dan Winship <danw@helixcode.com>
-
- * mail-sources.c: First cut at a mail source selection wizard.
- Basically a rigged demo at this point. Doesn't use camel to get
- its information, and is not yet complete or integrated with the
- mail component. Did I mention that the code is ugly?
-
-2000-03-13 bertrand <bertrand@helixcode.com>
-
- * folder-browser-factory.c (folder_browser_set_shell):
- for testing and demonstration purpose, immediately
- register a fake service.
-
-2000-03-12 bertrand <bertrand@helixcode.com>
-
- * folder-browser-factory.c (folder_browser_factory_init):
- name change.
- (control_activate_cb): when the control is activated,
- it merges its own UI with the remote UIHandler.
- (control_add_menu): sample menu merging.
- (folder_browser_factory): connect the control "activate" signal.
-
- * evolution-mail.gnorba:
- name changes
-
- * folder-browser.h: added a reference to an
- Evolution::Shell object.
-
- * folder-browser-factory.c (folder_browser_set_shell):
- (folder_browser_control_add_service_repository_interface):
- (folder_browser_factory): the folder-browser control now
- implements the Evolution/ServiceRepository interface.
-
-2000-03-07 bertrand <bertrand@helixcode.com>
-
- * folder-browser-factory.c (development_warning):
- added a warning so that the user knows that this
- version may crash his mails.
-
-2000-03-05 bertrand <bertrand@helixcode.com>
-
- * message-list.h: include a referrence to the parent
- folder browser.
-
- * message-list.c (ml_value_at): use the message summary
- from the
-
- * html-stream.c (html_stream_close): when the stream
- is closed, set the html stream to NULL
- (html_stream_write): don't write anything if the
- html handle does not exist.
- (html_stream_reset): implemented. close the current
- html handle and begins a new html parser.
-
- * session.c (session_store_new): use static exception
- here.
-
-2000-03-05 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Added a prototype message listing.
-
-2000-03-04 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Set up the column headers properly.
-
- * folder-browser.c: Show the folder_browser widget.
-
-2000-03-04 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Define ml_duplicate_value and ml_free_value
- correctly.
-
-2000-03-04 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Use g_int_compare and g_str_compare as we should
- be instead of g_int_equal and g_str_equal.
-
-2000-03-04 bertrand <bertrand@helixcode.com>
-
- * test-mail.c (main): replace the bonobo-active/gtk-main
- by bonobo-main.
- Include Gnorba headers.
- (main): don't call the container creation routine
- before we entered the main loop. Use idle for that.
-
-2000-03-04 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Change this to use the ETable widget itself
- instead of building it from all the parts.
-
-2000-03-03 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Ref the table columns since we unref them at the
- end.
-
-2000-03-01 Ettore Perazzoli <ettore@helixcode.com>
-
- * Makefile.am (INCLUDES): Add `$(top_srcdir)'. Also, the
- `top_srcdir' includes must come first everything else to avoid
- including installed headers instead of our fresh ones.
-
-2000-02-28 NotZed <NotZed@HelixCode.com>
-
- * Makefile.am (evolution_mail_LDADD): Fixed references to eutil.
-
-2000-02-24 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Changed to match new e_table_simple interface.
-
-2000-02-24 Dan Winship <danw@helixcode.com>
-
- * message-list.c (message_list_set_folder): update for CamelFolder
- changes
-
-2000-02-24 Christopher James Lahey <clahey@helixcode.com>
-
- * message-list.c: Changed this to not use the "x" and "y"
- arguments to e-table-item.
-
-2000-02-23 Matt Loper <matt@helixcode.com>
-
- * message-list.c (message_list_set_folder): Check 'desc'riptions
- of exceptions.
-
-2000-02-22 bertrand <Bertrand.Guiheneuf@aful.org>
-
- * message-list.c (message_list_set_folder):
- fix to show a sample correct implementation.
-
-2000-02-21 Matt Loper <matt@helixcode.com>
-
- * Makefile.am: added -lunicode to evolution_mail_LDADD.
-
-2000-02-21 Dan Winship <danw@helixcode.com>
-
- * session.c (session_store_new): Pass a CamelAuthCallback
- (evolution_auth_callback) to camel_session_new.
-
-2000-02-21 Dan Winship <danw@helixcode.com>
-
- * session.c (session_store_new): Update session_store_new to
- deal with the fact that camel_session_get_store takes a
- CamelException now. Doesn't actually do anything with the
- exception yet, because nothing else does yet either.
-
-2000-02-19 Matt Loper <matt@helixcode.com>
-
- * .cvsignore: added test-mail.
-
-2000-02-14 Miguel de Icaza <miguel@gnu.org>
-
- * folder-browser.c (folder_browser_load_folder): New routine,
- loads a camel folder.
- (folder_browser_set_uri): redo.
-
- * session.c: new file. Implements SessionStores to keep track of
- a Session/Store tuple.
-
-2000-02-13 Matt Loper <matt@helixcode.com>
-
- * html-stream.c (html_stream_new): Second param of gtk_html_begin
- should be "", not NULL.
- (html_stream_new): gtk_html_parse() is deprecated, so the call was
- removed.
-
- * html-stream.h: HTMLStreamClass's parent changed to
- CamelStreamClass, not CamelStream.
-
-2000-02-11 Christopher James Lahey <clahey@helixcode.com>
-
- * Makefile.am: Add the e-text directory to the includes list.
-
- * message-list.c: Change the call to e_cell_text_new, since
- there's an added argument.
-
-2000-02-09 Christopher James Lahey <clahey@helixcode.com>
-
- * Makefile.am: Added libetext as libetable depends on it.
-
-2000-02-08 Iain Holmes <ih@csd.abdn.ac.uk>
-
- * Makefile.am: Changed the order of the compilation so the CORBA stuff
- was made before it was needed.
-
-2000-01-19 Miguel de Icaza <miguel@gnu.org>
-
- * Started work on the mail display engine.
-
- * html-stream.c, html-stream.h: New files, they are CamelStreams
- used to write to the GtkHTML widget.
-
diff --git a/mail/Makefile.am b/mail/Makefile.am
index ef4dcaa340..1b8ed95e2b 100644
--- a/mail/Makefile.am
+++ b/mail/Makefile.am
@@ -197,7 +197,6 @@ ui_DATA = mail-config.ui mail-dialogs.ui
etspec_DATA = message-list.etspec
EXTRA_DIST = \
- ChangeLog.pre-1-4 \
README.async \
mail.error.xml \
$(ui_DATA) \
diff --git a/mail/e-mail-attachment-bar.c b/mail/e-mail-attachment-bar.c
index aa5abd09fb..c791b5fba3 100644
--- a/mail/e-mail-attachment-bar.c
+++ b/mail/e-mail-attachment-bar.c
@@ -292,11 +292,7 @@ mail_attachment_bar_size_request (GtkWidget *widget,
* get a sizable gap between the headers and body when this
* widget is invisible. Once we finally move to WebKit,
* remove this. */
-#if GTK_CHECK_VERSION(2,19,7)
if (!gtk_widget_get_visible (widget)) {
-#else
- if (!GTK_WIDGET_VISIBLE (widget)) {
-#endif
requisition->width = 0;
requisition->height = 0;
return;
@@ -519,7 +515,7 @@ mail_attachment_bar_init (EMailAttachmentBar *bar)
container = widget;
widget = e_attachment_icon_view_new ();
- GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS);
+ gtk_widget_set_can_focus (widget, TRUE);
gtk_icon_view_set_model (GTK_ICON_VIEW (widget), bar->priv->model);
gtk_container_add (GTK_CONTAINER (container), widget);
bar->priv->icon_view = g_object_ref (widget);
@@ -536,7 +532,7 @@ mail_attachment_bar_init (EMailAttachmentBar *bar)
container = widget;
widget = e_attachment_tree_view_new ();
- GTK_WIDGET_SET_FLAGS (widget, GTK_CAN_FOCUS);
+ gtk_widget_set_can_focus (widget, TRUE);
gtk_tree_view_set_model (GTK_TREE_VIEW (widget), bar->priv->model);
gtk_container_add (GTK_CONTAINER (container), widget);
bar->priv->tree_view = g_object_ref (widget);
diff --git a/mail/e-mail-backend.c b/mail/e-mail-backend.c
index bac1beefdf..7f62c466ad 100644
--- a/mail/e-mail-backend.c
+++ b/mail/e-mail-backend.c
@@ -25,10 +25,9 @@
#include <string.h>
#include "e-mail-backend.h"
-#include <camel/camel.h>
-
#include "e-util/e-account-utils.h"
#include "e-util/e-alert-dialog.h"
+#include "e-util/e-binding.h"
#include "misc/e-account-combo-box.h"
@@ -82,17 +81,6 @@ mail_backend_store_operation_done_cb (CamelStore *store,
g_object_unref (E_ACTIVITY (user_data));
}
-static void
-mail_backend_notify_online_cb (EShell *shell,
- GParamSpec *pspec,
- EMailBackend *backend)
-{
- gboolean online;
-
- online = e_shell_get_online (shell);
- camel_session_set_online (session, online);
-}
-
/* Helper for mail_backend_prepare_for_offline_cb() */
static void
mail_store_prepare_for_offline_cb (CamelService *service,
@@ -122,7 +110,7 @@ mail_backend_prepare_for_offline_cb (EShell *shell,
if (!synchronize) {
mail_cancel_all ();
- camel_session_set_network_state (session, FALSE);
+ camel_session_set_network_available (session, FALSE);
}
e_mail_store_foreach (
@@ -276,7 +264,6 @@ mail_backend_quit_requested_cb (EShell *shell,
{
CamelFolder *folder;
GtkWindow *window;
- guint32 unsent;
gint response;
window = e_shell_get_active_window (shell);
@@ -296,11 +283,7 @@ mail_backend_quit_requested_cb (EShell *shell,
if (folder == NULL)
return;
- if (camel_object_get (
- folder, NULL, CAMEL_FOLDER_VISIBLE, &unsent, 0) != 0)
- return;
-
- if (unsent == 0)
+ if (folder->summary->visible_count == 0)
return;
response = e_alert_run_dialog_for_args (
@@ -387,26 +370,19 @@ mail_backend_constructed (GObject *object)
EShellBackend *shell_backend;
MailFolderCache *folder_cache;
const gchar *data_dir;
- gboolean online;
shell_backend = E_SHELL_BACKEND (object);
shell = e_shell_backend_get_shell (shell_backend);
/* This also initializes Camel, so it needs to happen early. */
- mail_session_init ();
+ mail_session_start ();
- online = e_shell_get_online (shell);
- camel_session_set_online (CAMEL_SESSION (session), online);
+ e_binding_new (shell, "online", session, "online");
e_account_combo_box_set_session (session); /* XXX Don't ask... */
folder_cache = mail_folder_cache_get_default ();
g_signal_connect (
- shell, "notify::online",
- G_CALLBACK (mail_backend_notify_online_cb),
- shell_backend);
-
- g_signal_connect (
shell, "prepare-for-offline",
G_CALLBACK (mail_backend_prepare_for_offline_cb),
shell_backend);
diff --git a/mail/e-mail-browser.c b/mail/e-mail-browser.c
index cd7ecd32fd..ca582ccd35 100644
--- a/mail/e-mail-browser.c
+++ b/mail/e-mail-browser.c
@@ -23,7 +23,6 @@
#include <string.h>
#include <glib/gi18n.h>
-#include <camel/camel-folder.h>
#include "e-util/e-util.h"
#include "e-util/e-plugin-ui.h"
@@ -258,12 +257,9 @@ mail_browser_message_selected_cb (EMailBrowser *browser,
if (info == NULL)
return;
- /* XXX The string here was added after the 2.30.0 release, so
- * it's not marked for translation. But it IS marked for
- * translation in 2.31. */
title = camel_message_info_subject (info);
if (title == NULL || *title == '\0')
- title = "(No Subject)";
+ title = _("(No Subject)");
gtk_window_set_title (GTK_WINDOW (browser), title);
gtk_widget_grab_focus (
@@ -768,7 +764,7 @@ mail_browser_class_init (EMailBrowserClass *class)
PROP_FOCUS_TRACKER,
g_param_spec_object (
"focus-tracker",
- _("Focus Tracker"),
+ "Focus Tracker",
NULL,
E_TYPE_FOCUS_TRACKER,
G_PARAM_READABLE));
@@ -778,8 +774,8 @@ mail_browser_class_init (EMailBrowserClass *class)
PROP_SHELL_BACKEND,
g_param_spec_object (
"shell-backend",
- _("Shell Module"),
- _("The mail shell backend"),
+ "Shell Module",
+ "The mail shell backend",
E_TYPE_SHELL_BACKEND,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
@@ -789,8 +785,8 @@ mail_browser_class_init (EMailBrowserClass *class)
PROP_SHOW_DELETED,
g_param_spec_boolean (
"show-deleted",
- _("Show Deleted"),
- _("Show deleted messages"),
+ "Show Deleted",
+ "Show deleted messages",
FALSE,
G_PARAM_READWRITE));
}
diff --git a/mail/e-mail-label-list-store.c b/mail/e-mail-label-list-store.c
index 6b317b6b5b..6930e210aa 100644
--- a/mail/e-mail-label-list-store.c
+++ b/mail/e-mail-label-list-store.c
@@ -22,7 +22,7 @@
#include "e-mail-label-list-store.h"
#include <glib/gi18n.h>
-#include <camel/camel-utf8.h>
+#include <camel/camel.h>
#include "e-util/gconf-bridge.h"
#define E_MAIL_LABEL_LIST_STORE_GET_PRIVATE(obj) \
diff --git a/mail/e-mail-local.c b/mail/e-mail-local.c
index 0944c7da95..002865cd33 100644
--- a/mail/e-mail-local.c
+++ b/mail/e-mail-local.c
@@ -93,7 +93,7 @@ e_mail_local_init (const gchar *data_dir)
camel_url_free (url);
- camel_object_ref (service);
+ g_object_ref (service);
local_store = CAMEL_STORE (service);
return;
diff --git a/mail/e-mail-local.h b/mail/e-mail-local.h
index b8dda29857..b5b7e8ab8c 100644
--- a/mail/e-mail-local.h
+++ b/mail/e-mail-local.h
@@ -23,8 +23,7 @@
#define E_MAIL_LOCAL_H
#include <glib.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-store.h>
+#include <camel/camel.h>
G_BEGIN_DECLS
diff --git a/mail/e-mail-migrate.c b/mail/e-mail-migrate.c
index 34728929c2..7f59d16a48 100644
--- a/mail/e-mail-migrate.c
+++ b/mail/e-mail-migrate.c
@@ -41,12 +41,6 @@
#include <gconf/gconf-client.h>
-#include <camel/camel.h>
-#include <camel/camel-store.h>
-#include <camel/camel-session.h>
-#include <camel/camel-file-utils.h>
-#include <camel/camel-disco-folder.h>
-
#include <libxml/tree.h>
#include <libxml/parser.h>
#include <libxml/xmlmemory.h>
@@ -57,7 +51,6 @@
#include <e-util/e-xml-utils.h>
#include "e-util/e-account-utils.h"
-#include "e-util/e-bconf-map.h"
#include "e-util/e-alert-dialog.h"
#include "e-util/e-util-private.h"
#include "e-util/e-plugin.h"
@@ -72,976 +65,18 @@
#define d(x) x
-#ifndef G_OS_WIN32
-/* No versions previous to 2.8 or thereabouts have been available on
- * Windows, so don't bother with upgrade support from earlier versions
- * on Win32. Do try to support upgrades from 2.12 and later to the
- * current version.
- */
-
-/* upgrade helper functions */
-static xmlDocPtr
-emm_load_xml (const gchar *dirname, const gchar *filename)
-{
- xmlDocPtr doc;
- struct stat st;
- gchar *path;
-
- path = g_strdup_printf ("%s/%s", dirname, filename);
- if (stat (path, &st) == -1 || !(doc = xmlParseFile (path))) {
- g_free (path);
- return NULL;
- }
-
- g_free (path);
-
- return doc;
-}
-
-static gint
-emm_save_xml (xmlDocPtr doc, const gchar *dirname, const gchar *filename)
-{
- gchar *path;
- gint retval;
-
- path = g_strdup_printf ("%s/%s", dirname, filename);
- retval = e_xml_save_file (path, doc);
- g_free (path);
-
- return retval;
-}
-
-static xmlNodePtr
-xml_find_node (xmlNodePtr parent, const gchar *name)
-{
- xmlNodePtr node;
-
- node = parent->children;
- while (node != NULL) {
- if (node->name && !strcmp ((gchar *)node->name, name))
- return node;
-
- node = node->next;
- }
-
- return NULL;
-}
-
-static void
-upgrade_xml_uris (xmlDocPtr doc, gchar * (* upgrade_uri) (const gchar *uri))
-{
- xmlNodePtr root, node;
- gchar *uri, *new;
-
- if (!doc || !(root = xmlDocGetRootElement (doc)))
- return;
-
- if (!root->name || strcmp ((gchar *)root->name, "filteroptions") != 0) {
- /* root node is not <filteroptions>, nothing to upgrade */
- return;
- }
-
- if (!(node = xml_find_node (root, "ruleset"))) {
- /* no ruleset node, nothing to upgrade */
- return;
- }
-
- node = node->children;
- while (node != NULL) {
- if (node->name && !strcmp ((gchar *)node->name, "rule")) {
- xmlNodePtr actionset, part, val, n;
-
- if ((actionset = xml_find_node (node, "actionset"))) {
- /* filters.xml */
- part = actionset->children;
- while (part != NULL) {
- if (part->name && !strcmp ((gchar *)part->name, "part")) {
- val = part->children;
- while (val != NULL) {
- if (val->name && !strcmp ((gchar *)val->name, "value")) {
- gchar *type;
-
- type = (gchar *)xmlGetProp (val, (const guchar *)"type");
- if (type && !strcmp ((gchar *)type, "folder")) {
- if ((n = xml_find_node (val, "folder"))) {
- uri = (gchar *)xmlGetProp (n, (const guchar *)"uri");
- new = upgrade_uri (uri);
- xmlFree (uri);
-
- xmlSetProp (n, (const guchar *)"uri", (guchar *)new);
- g_free (new);
- }
- }
-
- xmlFree (type);
- }
-
- val = val->next;
- }
- }
-
- part = part->next;
- }
- } else if ((actionset = xml_find_node (node, "sources"))) {
- /* vfolders.xml */
- n = actionset->children;
- while (n != NULL) {
- if (n->name && !strcmp ((gchar *)n->name, "folder")) {
- uri = (gchar *)xmlGetProp (n, (const guchar *)"uri");
- new = upgrade_uri (uri);
- xmlFree (uri);
-
- xmlSetProp (n, (const guchar *)"uri", (guchar *)new);
- g_free (new);
- }
-
- n = n->next;
- }
- }
- }
-
- node = node->next;
- }
-}
-
-/* 1.0 upgrade functions & data */
-
-/* as much info as we have on a given account */
-struct _account_info_1_0 {
- gchar *name;
- gchar *uri;
- gchar *base_uri;
- union {
- struct {
- /* for imap */
- gchar *namespace;
- gchar *namespace_full;
- guint32 capabilities;
- GHashTable *folders;
- gchar dir_sep;
- } imap;
- } u;
-};
-
-struct _imap_folder_info_1_0 {
- gchar *folder;
- /* encoded? decoded? canonicalised? */
- gchar dir_sep;
-};
-
struct _migrate_state_info {
gchar *label_name;
gdouble progress;
};
-static gboolean update_states_in_main_thread (const struct
- _migrate_state_info *info);
-
-static GHashTable *accounts_1_0 = NULL;
-static GHashTable *accounts_name_1_0 = NULL;
-
-static void
-imap_folder_info_1_0_free (struct _imap_folder_info_1_0 *fi)
-{
- g_free(fi->folder);
- g_free(fi);
-}
-
-static void
-account_info_1_0_free (struct _account_info_1_0 *ai)
-{
- g_free(ai->name);
- g_free(ai->uri);
- g_free(ai->base_uri);
- g_free(ai->u.imap.namespace);
- g_free(ai->u.imap.namespace_full);
- g_hash_table_destroy(ai->u.imap.folders);
- g_free(ai);
-}
-
-static gchar *
-get_base_uri(const gchar *val)
-{
- const gchar *tmp;
-
- tmp = strchr(val, ':');
- if (tmp) {
- tmp++;
- if (strncmp(tmp, "//", 2) == 0)
- tmp += 2;
- tmp = strchr(tmp, '/');
- }
-
- if (tmp)
- return g_strndup(val, tmp-val);
- else
- return g_strdup(val);
-}
-
-static gchar *
-upgrade_xml_uris_1_0 (const gchar *uri)
-{
- gchar *out = NULL;
-
- /* upgrades camel uri's */
- if (strncmp (uri, "imap:", 5) == 0) {
- gchar *base_uri, dir_sep, *folder, *p;
- struct _account_info_1_0 *ai;
-
- /* add namespace, canonicalise dir_sep to / */
- base_uri = get_base_uri (uri);
- ai = g_hash_table_lookup (accounts_1_0, base_uri);
-
- if (ai == NULL) {
- g_free (base_uri);
- return NULL;
- }
-
- dir_sep = ai->u.imap.dir_sep;
- if (dir_sep == 0) {
- /* no dir_sep listed, try get it from the namespace, if set */
- if (ai->u.imap.namespace != NULL) {
- p = ai->u.imap.namespace;
- while ((dir_sep = *p++)) {
- if (dir_sep < '0'
- || (dir_sep > '9' && dir_sep < 'A')
- || (dir_sep > 'Z' && dir_sep < 'a')
- || (dir_sep > 'z')) {
- break;
- }
- p++;
- }
- }
-
- /* give up ... */
- if (dir_sep == 0) {
- g_free (base_uri);
- return NULL;
- }
- }
-
- folder = g_strdup (uri + strlen (base_uri) + 1);
-
- /* Add the namespace before the mailbox name, unless the mailbox is INBOX */
- if (ai->u.imap.namespace && strcmp ((gchar *)folder, "INBOX") != 0)
- out = g_strdup_printf ("%s/%s/%s", base_uri, ai->u.imap.namespace, folder);
- else
- out = g_strdup_printf ("%s/%s", base_uri, folder);
-
- p = out;
- while (*p) {
- if (*p == dir_sep)
- *p = '/';
- p++;
- }
-
- g_free (folder);
- g_free (base_uri);
- } else if (strncmp (uri, "exchange:", 9) == 0) {
- gchar *base_uri, *folder, *p;
-
- /* exchange://user@host/exchange/ * -> exchange://user@host/personal/ * */
- /* Any url encoding (%xx) in the folder name is also removed */
- base_uri = get_base_uri (uri);
- uri += strlen (base_uri) + 1;
- if (strncmp (uri, "exchange/", 9) == 0) {
- folder = e_bconf_url_decode (uri + 9);
- p = strchr (folder, '/');
- out = g_strdup_printf ("%s/personal%s", base_uri, p ? p : "/");
- g_free (folder);
- }
- } else if (strncmp (uri, "exchanget:", 10) == 0) {
- /* these should be converted in the accounts table when it is loaded */
- g_warning ("exchanget: uri not converted: '%s'", uri);
- }
-
- return out;
-}
-
-static gchar *
-parse_lsub (const gchar *lsub, gchar *dir_sep)
-{
- static gint comp;
- static regex_t pat;
- regmatch_t match[3];
- const gchar *m = "^\\* LSUB \\([^)]*\\) \"?([^\" ]+)\"? \"?(.*)\"?$";
-
- if (!comp) {
- if (regcomp (&pat, m, REG_EXTENDED|REG_ICASE) == -1) {
- g_warning ("reg comp '%s' failed: %s", m, g_strerror (errno));
- return NULL;
- }
- comp = 1;
- }
-
- if (regexec (&pat, lsub, 3, match, 0) == 0) {
- if (match[1].rm_so != -1 && match[2].rm_so != -1) {
- if (dir_sep)
- *dir_sep = (match[1].rm_eo - match[1].rm_so == 1) ? lsub[match[1].rm_so] : 0;
- return g_strndup (lsub + match[2].rm_so, match[2].rm_eo - match[2].rm_so);
- }
- }
-
- return NULL;
-}
-
-static gboolean
-read_imap_storeinfo (struct _account_info_1_0 *si)
-{
- FILE *storeinfo;
- guint32 tmp;
- gchar *buf, *folder, dir_sep, *path, *name, *p;
- struct _imap_folder_info_1_0 *fi;
-
- si->u.imap.folders = g_hash_table_new_full (
- g_str_hash, g_str_equal,
- (GDestroyNotify) NULL,
- (GDestroyNotify) imap_folder_info_1_0_free);
-
- /* get details from uri first */
- name = strstr (si->uri, ";override_namespace");
- if (name) {
- name = strstr (si->uri, ";namespace=");
- if (name) {
- gchar *end;
-
- name += strlen (";namespace=");
- if (*name == '\"') {
- name++;
- end = strchr (name, '\"');
- } else {
- end = strchr (name, ';');
- }
-
- if (end) {
- /* try get the dir_sep from the namespace */
- si->u.imap.namespace = g_strndup (name, end-name);
-
- p = si->u.imap.namespace;
- while ((dir_sep = *p++)) {
- if (dir_sep < '0'
- || (dir_sep > '9' && dir_sep < 'A')
- || (dir_sep > 'Z' && dir_sep < 'a')
- || (dir_sep > 'z')) {
- si->u.imap.dir_sep = dir_sep;
- break;
- }
- p++;
- }
- }
- }
- }
-
- /* now load storeinfo if it exists */
- path = g_build_filename (g_get_home_dir (), "evolution", "mail", "imap", si->base_uri + 7, "storeinfo", NULL);
- storeinfo = fopen (path, "r");
- g_free (path);
- if (storeinfo == NULL) {
- g_warning ("could not find imap store info '%s'", path);
- return FALSE;
- }
-
- /* ignore version */
- camel_file_util_decode_uint32 (storeinfo, &tmp);
- camel_file_util_decode_uint32 (storeinfo, &si->u.imap.capabilities);
- g_free (si->u.imap.namespace);
- camel_file_util_decode_string (storeinfo, &si->u.imap.namespace);
- camel_file_util_decode_uint32 (storeinfo, &tmp);
- si->u.imap.dir_sep = tmp;
- /* strip trailing dir_sep or / */
- if (si->u.imap.namespace
- && (si->u.imap.namespace[strlen (si->u.imap.namespace) - 1] == si->u.imap.dir_sep
- || si->u.imap.namespace[strlen (si->u.imap.namespace) - 1] == '/')) {
- si->u.imap.namespace[strlen (si->u.imap.namespace) - 1] = 0;
- }
-
- d(printf ("namespace '%s' dir_sep '%c'\n", si->u.imap.namespace, si->u.imap.dir_sep ? si->u.imap.dir_sep : '?'));
-
- while (camel_file_util_decode_string (storeinfo, &buf) == 0) {
- folder = parse_lsub (buf, &dir_sep);
- if (folder) {
- fi = g_new0 (struct _imap_folder_info_1_0, 1);
- fi->folder = folder;
- fi->dir_sep = dir_sep;
-#if d(!)0
- printf (" add folder '%s' ", folder);
- if (dir_sep)
- printf ("'%c'\n", dir_sep);
- else
- printf ("NIL\n");
-#endif
- g_hash_table_insert (si->u.imap.folders, fi->folder, fi);
- } else {
- g_warning ("Could not parse LIST result '%s'\n", buf);
- }
- }
-
- fclose (storeinfo);
-
- return TRUE;
-}
-
-static gboolean
-load_accounts_1_0 (xmlDocPtr doc)
-{
- xmlNodePtr source;
- gchar *val, *tmp;
- gint count = 0, i;
- gchar key[32];
-
- if (!(source = e_bconf_get_path (doc, "/Mail/Accounts")))
- return TRUE;
-
- if ((val = e_bconf_get_value (source, "num"))) {
- count = atoi (val);
- xmlFree (val);
- }
-
- /* load account upgrade info for each account */
- for (i = 0; i < count; i++) {
- struct _account_info_1_0 *ai;
- gchar *rawuri;
-
- sprintf (key, "source_url_%d", i);
- if (!(rawuri = e_bconf_get_value (source, key)))
- continue;
-
- ai = g_malloc0 (sizeof (struct _account_info_1_0));
- ai->uri = e_bconf_hex_decode (rawuri);
- ai->base_uri = get_base_uri (ai->uri);
- sprintf (key, "account_name_%d", i);
- ai->name = e_bconf_get_string (source, key);
-
- d(printf("load account '%s'\n", ai->uri));
-
- if (!strncmp (ai->uri, "imap:", 5)) {
- read_imap_storeinfo (ai);
- } else if (!strncmp (ai->uri, "exchange:", 9)) {
- xmlNodePtr node;
-
- d(printf (" upgrade exchange account\n"));
- /* small hack, poke the source_url into the transport_url for exchanget: transports
- - this will be picked up later in the conversion */
- sprintf (key, "transport_url_%d", i);
- node = e_bconf_get_entry (source, key);
- if (node && (val = (gchar *)xmlGetProp (node, (const guchar *)"value"))) {
- tmp = e_bconf_hex_decode (val);
- xmlFree (val);
- if (strncmp (tmp, "exchanget:", 10) == 0)
- xmlSetProp (node, (const guchar *)"value", (guchar *)rawuri);
- g_free (tmp);
- } else {
- d(printf (" couldn't find transport uri?\n"));
- }
- }
- xmlFree (rawuri);
-
- g_hash_table_insert (accounts_1_0, ai->base_uri, ai);
- if (ai->name)
- g_hash_table_insert (accounts_name_1_0, ai->name, ai);
- }
-
- return TRUE;
-}
-
-static gboolean
-em_migrate_1_0 (const gchar *data_dir, xmlDocPtr config_xmldb, xmlDocPtr filters, xmlDocPtr vfolders, GError **error)
-{
- accounts_1_0 = g_hash_table_new_full (
- g_str_hash, g_str_equal,
- (GDestroyNotify) NULL,
- (GDestroyNotify) account_info_1_0_free);
- accounts_name_1_0 = g_hash_table_new (g_str_hash, g_str_equal);
- load_accounts_1_0 (config_xmldb);
-
- upgrade_xml_uris(filters, upgrade_xml_uris_1_0);
- upgrade_xml_uris(vfolders, upgrade_xml_uris_1_0);
-
- g_hash_table_destroy (accounts_1_0);
- g_hash_table_destroy (accounts_name_1_0);
-
- return TRUE;
-}
-
-/* 1.2 upgrade functions */
-static gboolean
-is_xml1encoded (const gchar *txt)
-{
- const guchar *p;
- gint isxml1 = FALSE;
- gint is8bit = FALSE;
-
- p = (const guchar *)txt;
- while (*p) {
- if (p[0] == '\\' && p[1] == 'U' && p[2] == '+'
- && isxdigit (p[3]) && isxdigit (p[4]) && isxdigit (p[5]) && isxdigit (p[6])
- && p[7] == '\\') {
- isxml1 = TRUE;
- p+=7;
- } else if (p[0] >= 0x80)
- is8bit = TRUE;
- p++;
- }
-
- /* check for invalid utf8 that needs cleaning */
- if (is8bit && !isxml1)
- isxml1 = !g_utf8_validate (txt, -1, NULL);
-
- return isxml1;
-}
-
-static gchar *
-decode_xml1 (const gchar *txt)
-{
- GString *out = g_string_new ("");
- const guchar *p;
- gchar *res;
-
- /* convert:
- \U+XXXX\ -> utf8
- 8 bit characters -> utf8 (iso-8859-1) */
-
- p = (const guchar *) txt;
- while (*p) {
- if (p[0] > 0x80
- || (p[0] == '\\' && p[1] == 'U' && p[2] == '+'
- && isxdigit (p[3]) && isxdigit (p[4]) && isxdigit (p[5]) && isxdigit (p[6])
- && p[7] == '\\')) {
- gchar utf8[8];
- gunichar u;
-
- if (p[0] == '\\') {
- memcpy (utf8, p + 3, 4);
- utf8[4] = 0;
- u = strtoul (utf8, NULL, 16);
- p+=7;
- } else
- u = p[0];
- utf8[g_unichar_to_utf8 (u, utf8)] = 0;
- g_string_append (out, utf8);
- } else {
- g_string_append_c (out, *p);
- }
- p++;
- }
-
- res = out->str;
- g_string_free (out, FALSE);
-
- return res;
-}
-
-static gchar *
-utf8_reencode (const gchar *txt)
-{
- GString *out = g_string_new ("");
- gchar *p;
- gchar *res;
-
- /* convert:
- libxml1 8 bit utf8 converted to xml entities byte-by-byte chars -> utf8 */
-
- p = (gchar *)txt;
-
- while (*p) {
- g_string_append_c (out, (gchar)g_utf8_get_char ((const gchar *)p));
- p = (gchar *)g_utf8_next_char (p);
- }
-
- res = out->str;
- if (g_utf8_validate (res, -1, NULL)) {
- g_string_free (out, FALSE);
- return res;
- } else {
- g_string_free (out, TRUE);
- return g_strdup (txt);
- }
-}
-
-static gboolean
-upgrade_xml_1_2_rec (xmlNodePtr node)
-{
- const gchar *value_tags[] = { "string", "address", "regex", "file", "command", NULL };
- const gchar *rule_tags[] = { "title", NULL };
- const gchar *item_props[] = { "name", NULL };
- struct {
- const gchar *name;
- const gchar **tags;
- const gchar **props;
- } tags[] = {
- { "value", value_tags, NULL },
- { "rule", rule_tags, NULL },
- { "item", NULL, item_props },
- { 0 },
- };
- xmlNodePtr work;
- gint i,j;
- gchar *txt, *tmp;
-
- /* upgrades the content of a node, if the node has a specific parent/node name */
-
- for (i = 0; tags[i].name; i++) {
- if (!strcmp ((gchar *)node->name, tags[i].name)) {
- if (tags[i].tags != NULL) {
- work = node->children;
- while (work) {
- for (j = 0; tags[i].tags[j]; j++) {
- if (!strcmp ((gchar *)work->name, tags[i].tags[j])) {
- txt = (gchar *)xmlNodeGetContent (work);
- if (is_xml1encoded (txt)) {
- tmp = decode_xml1 (txt);
- d(printf ("upgrading xml node %s/%s '%s' -> '%s'\n",
- tags[i].name, tags[i].tags[j], txt, tmp));
- xmlNodeSetContent (work, (guchar *)tmp);
- g_free (tmp);
- }
- xmlFree (txt);
- }
- }
- work = work->next;
- }
- break;
- }
-
- if (tags[i].props != NULL) {
- for (j = 0; tags[i].props[j]; j++) {
- txt = (gchar *)xmlGetProp (node, (guchar *)tags[i].props[j]);
- tmp = utf8_reencode (txt);
- d(printf ("upgrading xml property %s on node %s '%s' -> '%s'\n",
- tags[i].props[j], tags[i].name, txt, tmp));
- xmlSetProp (node, (const guchar *)tags[i].props[j], (guchar *)tmp);
- g_free (tmp);
- xmlFree (txt);
- }
- }
- }
- }
-
- node = node->children;
- while (node) {
- upgrade_xml_1_2_rec (node);
- node = node->next;
- }
-
- return TRUE;
-}
-
-static gboolean
-em_upgrade_xml_1_2 (xmlDocPtr doc)
-{
- xmlNodePtr root;
-
- if (!doc || !(root = xmlDocGetRootElement (doc)))
- return TRUE;
-
- return upgrade_xml_1_2_rec (root);
-}
-
-/* ********************************************************************** */
-/* Tables for converting flat bonobo conf -> gconf xml blob */
-/* ********************************************************************** */
-
-/* Mail/Accounts/ * */
-static e_bconf_map_t cc_map[] = {
- { "account_always_cc_%i", "always", E_BCONF_MAP_BOOL },
- { "account_always_cc_addrs_%i", "recipients", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL },
-};
-
-static e_bconf_map_t bcc_map[] = {
- { "account_always_cc_%i", "always", E_BCONF_MAP_BOOL },
- { "account_always_bcc_addrs_%i", "recipients", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL },
-};
-static e_bconf_map_t pgp_map[] = {
- { "account_pgp_encrypt_to_self_%i", "encrypt-to-self", E_BCONF_MAP_BOOL },
- { "account_pgp_always_trust_%i", "always-trust", E_BCONF_MAP_BOOL },
- { "account_pgp_always_sign_%i", "always-sign", E_BCONF_MAP_BOOL },
- { "account_pgp_no_imip_sign_%i", "no-imip-sign", E_BCONF_MAP_BOOL },
- { "account_pgp_key_%i", "key-id", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL },
-};
-
-static e_bconf_map_t smime_map[] = {
- { "account_smime_encrypt_to_self_%i", "encrypt-to-self", E_BCONF_MAP_BOOL },
- { "account_smime_always_sign_%i", "always-sign", E_BCONF_MAP_BOOL },
- { "account_smime_key_%i", "key-id", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL },
-};
-
-static e_bconf_map_t identity_sig_map[] = {
- { "identity_autogenerated_signature_%i", "auto", E_BCONF_MAP_BOOL },
- { "identity_def_signature_%i", "default", E_BCONF_MAP_LONG },
- { NULL },
-};
-
-static e_bconf_map_t identity_map[] = {
- { "identity_name_%i", "name", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { "identity_address_%i", "addr-spec", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { "identity_reply_to_%i", "reply-to", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { "identity_organization_%i", "organization", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL, "signature", E_BCONF_MAP_CHILD, identity_sig_map },
- { NULL },
-};
-
-static e_bconf_map_t source_map[] = {
- { "source_save_passwd_%i", "save-passwd", E_BCONF_MAP_BOOL },
- { "source_keep_on_server_%i", "keep-on-server", E_BCONF_MAP_BOOL },
- { "source_auto_check_%i", "auto-check", E_BCONF_MAP_BOOL },
- { "source_auto_check_time_%i", "auto-check-timeout", E_BCONF_MAP_LONG },
- { "source_url_%i", "url", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL },
-};
-
-static e_bconf_map_t transport_map[] = {
- { "transport_save_passwd_%i", "save-passwd", E_BCONF_MAP_BOOL },
- { "transport_url_%i", "url", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL },
-};
-
-static e_bconf_map_t account_map[] = {
- { "account_name_%i", "name", E_BCONF_MAP_STRING },
- { "source_enabled_%i", "enabled", E_BCONF_MAP_BOOL },
- { NULL, "identity", E_BCONF_MAP_CHILD, identity_map },
- { NULL, "source", E_BCONF_MAP_CHILD, source_map },
- { NULL, "transport", E_BCONF_MAP_CHILD, transport_map },
- { "account_drafts_folder_uri_%i", "drafts-folder", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { "account_sent_folder_uri_%i", "sent-folder", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL, "auto-cc", E_BCONF_MAP_CHILD, cc_map },
- { NULL, "auto-bcc", E_BCONF_MAP_CHILD, bcc_map },
- { NULL, "pgp", E_BCONF_MAP_CHILD, pgp_map },
- { NULL, "smime", E_BCONF_MAP_CHILD, smime_map },
- { NULL },
-};
-
-/* /Mail/Signatures/ * */
-static e_bconf_map_t signature_format_map[] = {
- { "text/plain", },
- { "text/html", },
- { NULL }
-};
-
-static e_bconf_map_t signature_map[] = {
- { "name_%i", "name", E_BCONF_MAP_STRING },
- { "html_%i", "format", E_BCONF_MAP_ENUM, signature_format_map },
- { "filename_%i", "filename", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { "script_%i", "script", E_BCONF_MAP_STRING|E_BCONF_MAP_CONTENT },
- { NULL },
-};
-
-/* ********************************************************************** */
-/* Tables for bonobo conf -> gconf conversion */
-/* ********************************************************************** */
-
-static e_gconf_map_t mail_accounts_map[] = {
- /* /Mail/Accounts - most entries are processed via the xml blob routine */
- /* This also works because the initial uid mapping is 1:1 with the list order */
- { "default_account", "mail/default_account", E_GCONF_MAP_SIMPLESTRING },
- { 0 },
-};
-
-static e_gconf_map_t mail_display_map[] = {
- /* /Mail/Display */
- { "side_bar_search", "mail/display/side_bar_search", E_GCONF_MAP_BOOL },
- { "thread_subject", "mail/display/thread_subject", E_GCONF_MAP_BOOL },
- { "hide_deleted", "mail/display/show_deleted", E_GCONF_MAP_BOOLNOT },
- { "paned_size", "mail/display/paned_size", E_GCONF_MAP_INT },
- { "seen_timeout", "mail/display/mark_seen_timeout", E_GCONF_MAP_INT },
- { "do_seen_timeout", "mail/display/mark_seen", E_GCONF_MAP_BOOL },
- { "http_images", "mail/display/load_http_images", E_GCONF_MAP_INT },
- { "citation_highlight", "mail/display/mark_citations", E_GCONF_MAP_BOOL },
- { "citation_color", "mail/display/citation_colour", E_GCONF_MAP_COLOUR },
- { 0 },
-};
-
-static e_gconf_map_t mail_format_map[] = {
- /* /Mail/Format */
- { "message_display_style", "mail/display/message_style", E_GCONF_MAP_INT },
- { "send_html", "mail/composer/send_html", E_GCONF_MAP_BOOL },
- { "default_reply_style", "mail/format/reply_style", E_GCONF_MAP_INT },
- { "default_forward_style", "mail/format/forward_style", E_GCONF_MAP_INT },
- { "default_charset", "mail/composer/charset", E_GCONF_MAP_STRING },
- { "confirm_unwanted_html", "mail/prompts/unwanted_html", E_GCONF_MAP_BOOL },
- { 0 },
-};
-
-static e_gconf_map_t mail_trash_map[] = {
- /* /Mail/Trash */
- { "empty_on_exit", "mail/trash/empty_on_exit", E_GCONF_MAP_BOOL },
- { 0 },
-};
-
-static e_gconf_map_t mail_prompts_map[] = {
- /* /Mail/Prompts */
- { "confirm_expunge", "mail/prompts/expunge", E_GCONF_MAP_BOOL },
- { "empty_subject", "mail/prompts/empty_subject", E_GCONF_MAP_BOOL },
- { "only_bcc", "mail/prompts/only_bcc", E_GCONF_MAP_BOOL },
- { 0 }
-};
-
-static e_gconf_map_t mail_filters_map[] = {
- /* /Mail/Filters */
- { "log", "mail/filters/log", E_GCONF_MAP_BOOL },
- { "log_path", "mail/filters/logfile", E_GCONF_MAP_STRING },
- { 0 }
-};
-
-static e_gconf_map_t mail_notify_map[] = {
- /* /Mail/Notify */
- { "new_mail_notification", "mail/notify/type", E_GCONF_MAP_INT },
- { "new_mail_notification_sound_file", "mail/notify/sound", E_GCONF_MAP_STRING },
- { 0 }
-};
-
-static e_gconf_map_t mail_filesel_map[] = {
- /* /Mail/Filesel */
- { "last_filesel_dir", "mail/save_dir", E_GCONF_MAP_STRING },
- { 0 }
-};
-
-static e_gconf_map_t mail_composer_map[] = {
- /* /Mail/Composer */
- { "ViewFrom", "mail/composer/view/From", E_GCONF_MAP_BOOL },
- { "ViewReplyTo", "mail/composer/view/ReplyTo", E_GCONF_MAP_BOOL },
- { "ViewCC", "mail/composer/view/Cc", E_GCONF_MAP_BOOL },
- { "ViewBCC", "mail/composer/view/Bcc", E_GCONF_MAP_BOOL },
- { "ViewSubject", "mail/composer/view/Subject", E_GCONF_MAP_BOOL },
- { 0 },
-};
-
-/* ********************************************************************** */
-
-static e_gconf_map_t importer_elm_map[] = {
- /* /Importer/Elm */
- { "mail", "importer/elm/mail", E_GCONF_MAP_BOOL },
- { "mail-imported", "importer/elm/mail-imported", E_GCONF_MAP_BOOL },
- { 0 },
-};
-
-static e_gconf_map_t importer_pine_map[] = {
- /* /Importer/Pine */
- { "mail", "importer/elm/mail", E_GCONF_MAP_BOOL },
- { "address", "importer/elm/address", E_GCONF_MAP_BOOL },
- { 0 },
-};
-
-static e_gconf_map_t importer_netscape_map[] = {
- /* /Importer/Netscape */
- { "mail", "importer/netscape/mail", E_GCONF_MAP_BOOL },
- { "settings", "importer/netscape/settings", E_GCONF_MAP_BOOL },
- { "filters", "importer/netscape/filters", E_GCONF_MAP_BOOL },
- { 0 },
-};
-
-/* ********************************************************************** */
-
-static e_gconf_map_list_t gconf_remap_list[] = {
- { "/Mail/Accounts", mail_accounts_map },
- { "/Mail/Display", mail_display_map },
- { "/Mail/Format", mail_format_map },
- { "/Mail/Trash", mail_trash_map },
- { "/Mail/Prompts", mail_prompts_map },
- { "/Mail/Filters", mail_filters_map },
- { "/Mail/Notify", mail_notify_map },
- { "/Mail/Filesel", mail_filesel_map },
- { "/Mail/Composer", mail_composer_map },
-
- { "/Importer/Elm", importer_elm_map },
- { "/Importer/Pine", importer_pine_map },
- { "/Importer/Netscape", importer_netscape_map },
-
- { 0 },
-};
-
-static struct {
- const gchar *label;
- const gchar *colour;
-} label_default[5] = {
- { N_("Important"), "#EF2929" }, /* red */
- { N_("Work"), "#F57900" }, /* orange */
- { N_("Personal"), "#4E9A06" }, /* green */
- { N_("To Do"), "#3465A4" }, /* blue */
- { N_("Later"), "#75507B" } /* purple */
-};
-
-/* remaps mail config from bconf to gconf */
static gboolean
-bconf_import(GConfClient *gconf, xmlDocPtr config_xmldb)
-{
- xmlNodePtr source;
- gchar labx[16], colx[16];
- gchar *val, *lab, *col;
- GSList *list, *l;
- gint i;
-
- e_bconf_import(gconf, config_xmldb, gconf_remap_list);
-
- /* Labels:
- label string + label colour as integer
- -> label string:# colour as hex */
- source = e_bconf_get_path(config_xmldb, "/Mail/Labels");
- if (source) {
- list = NULL;
- for (i = 0; i < 5; i++) {
- sprintf(labx, "label_%d", i);
- sprintf(colx, "color_%d", i);
- lab = e_bconf_get_string(source, labx);
- if ((col = e_bconf_get_value(source, colx))) {
- sprintf(colx, "#%06x", atoi(col) & 0xffffff);
- g_free(col);
- } else
- strcpy(colx, label_default[i].colour);
-
- val = g_strdup_printf("%s:%s", lab ? lab : label_default[i].label, colx);
- list = g_slist_append(list, val);
- g_free(lab);
- }
-
- gconf_client_set_list(gconf, "/apps/evolution/mail/labels", GCONF_VALUE_STRING, list, NULL);
- while (list) {
- l = list->next;
- g_free(list->data);
- g_slist_free_1(list);
- list = l;
- }
- } else {
- g_warning("could not find /Mail/Labels in old config database, skipping");
- }
-
- /* Accounts: The flat bonobo-config structure is remapped to a list of xml blobs. Upgrades as necessary */
- e_bconf_import_xml_blob(gconf, config_xmldb, account_map, "/Mail/Accounts",
- "/apps/evolution/mail/accounts", "account", "uid");
-
- /* Same for signatures */
- e_bconf_import_xml_blob(gconf, config_xmldb, signature_map, "/Mail/Signatures",
- "/apps/evolution/mail/signatures", "signature", NULL);
-
- return TRUE;
-}
-
-static gboolean
-em_migrate_1_2(const gchar *data_dir, xmlDocPtr config_xmldb, xmlDocPtr filters, xmlDocPtr vfolders, GError **error)
-{
- GConfClient *gconf;
-
- gconf = gconf_client_get_default();
- bconf_import(gconf, config_xmldb);
- g_object_unref(gconf);
-
- em_upgrade_xml_1_2(filters);
- em_upgrade_xml_1_2(vfolders);
-
- return TRUE;
-}
-
-#endif /* !G_OS_WIN32 */
+update_states_in_main_thread (const struct _migrate_state_info *info);
/* 1.4 upgrade functions */
-#define EM_MIGRATE_SESSION_TYPE (em_migrate_session_get_type ())
-#define EM_MIGRATE_SESSION(obj) (CAMEL_CHECK_CAST((obj), EM_MIGRATE_SESSION_TYPE, EMMigrateSession))
-#define EM_MIGRATE_SESSION_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), EM_MIGRATE_SESSION_TYPE, EMMigrateSessionClass))
-#define EM_MIGRATE_IS_SESSION(o) (CAMEL_CHECK_TYPE((o), EM_MIGRATE_SESSION_TYPE))
+#define EM_TYPE_MIGRATE_SESSION \
+ (em_migrate_session_get_type ())
typedef struct _EMMigrateSession {
CamelSession parent_object;
@@ -1055,33 +90,20 @@ typedef struct _EMMigrateSessionClass {
} EMMigrateSessionClass;
-static CamelType em_migrate_session_get_type (void);
+GType em_migrate_session_get_type (void);
+
+G_DEFINE_TYPE (EMMigrateSession, em_migrate_session, CAMEL_TYPE_SESSION)
+
static CamelSession *em_migrate_session_new (const gchar *path);
static void
-class_init (EMMigrateSessionClass *klass)
+em_migrate_session_class_init (EMMigrateSessionClass *class)
{
- ;
}
-static CamelType
-em_migrate_session_get_type (void)
+static void
+em_migrate_session_init (EMMigrateSession *session)
{
- static CamelType type = CAMEL_INVALID_TYPE;
-
- if (type == CAMEL_INVALID_TYPE) {
- type = camel_type_register (
- camel_session_get_type (),
- "EMMigrateSession",
- sizeof (EMMigrateSession),
- sizeof (EMMigrateSessionClass),
- (CamelObjectClassInitFunc) class_init,
- NULL,
- NULL,
- NULL);
- }
-
- return type;
}
static CamelSession *
@@ -1089,8 +111,7 @@ em_migrate_session_new (const gchar *path)
{
CamelSession *session;
- session = CAMEL_SESSION (camel_object_new (EM_MIGRATE_SESSION_TYPE));
-
+ session = g_object_new (EM_TYPE_MIGRATE_SESSION, NULL);
camel_session_construct (session, path);
return session;
@@ -1199,162 +220,6 @@ em_migrate_set_progress (double percent)
gtk_main_iteration ();
}
-#ifndef G_OS_WIN32
-
-static gboolean
-is_mail_folder (const gchar *metadata)
-{
- xmlNodePtr node;
- xmlDocPtr doc;
- gchar *type;
-
- if (!(doc = xmlParseFile (metadata))) {
- g_warning ("Cannot parse '%s'", metadata);
- return FALSE;
- }
-
- if (!(node = xmlDocGetRootElement (doc))) {
- g_warning ("'%s' corrupt: document contains no root node", metadata);
- xmlFreeDoc (doc);
- return FALSE;
- }
-
- if (!node->name || strcmp ((gchar *)node->name, "efolder") != 0) {
- g_warning ("'%s' corrupt: root node is not 'efolder'", metadata);
- xmlFreeDoc (doc);
- return FALSE;
- }
-
- node = node->children;
- while (node != NULL) {
- if (node->name && !strcmp ((gchar *)node->name, "type")) {
- type = (gchar *)xmlNodeGetContent (node);
- if (!strcmp ((gchar *)type, "mail")) {
- xmlFreeDoc (doc);
- xmlFree (type);
-
- return TRUE;
- }
-
- xmlFree (type);
-
- break;
- }
-
- node = node->next;
- }
-
- xmlFreeDoc (doc);
-
- return FALSE;
-}
-
-static gboolean
-get_local_et_expanded (const gchar *dirname)
-{
- xmlNodePtr node;
- xmlDocPtr doc;
- struct stat st;
- gchar *buf, *p;
- gint thread_list;
-
- buf = g_strdup_printf ("%s/evolution/config/file:%s", g_get_home_dir (), dirname);
- p = buf + strlen (g_get_home_dir ()) + strlen ("/evolution/config/file:");
- e_filename_make_safe (p);
-
- if (stat (buf, &st) == -1) {
- g_free (buf);
- return FALSE;
- }
-
- if (!(doc = xmlParseFile (buf))) {
- g_free (buf);
- return FALSE;
- }
-
- g_free (buf);
-
- if (!(node = xmlDocGetRootElement (doc)) || strcmp ((gchar *)node->name, "expanded_state") != 0) {
- xmlFreeDoc (doc);
- return FALSE;
- }
-
- if (!(buf = (gchar *)xmlGetProp (node, (const guchar *)"default"))) {
- xmlFreeDoc (doc);
- return FALSE;
- }
-
- thread_list = strcmp (buf, "0") == 0 ? 0 : 1;
- xmlFree (buf);
-
- xmlFreeDoc (doc);
-
- return thread_list;
-}
-
-static gchar *
-get_local_store_uri (const gchar *dirname, gchar **namep, gint *indexp)
-{
- gchar *name, *protocol, *metadata, *tmp;
- gint index;
- struct stat st;
- xmlNodePtr node;
- xmlDocPtr doc;
-
- metadata = g_build_filename(dirname, "local-metadata.xml", NULL);
-
- /* in 1.4, any errors are treated as defaults, this function cannot fail */
-
- /* defaults */
- name = (gchar *) "mbox";
- protocol = (gchar *) "mbox";
- index = TRUE;
-
- if (stat (metadata, &st) == -1 || !S_ISREG (st.st_mode))
- goto nofile;
-
- doc = xmlParseFile(metadata);
- if (doc == NULL)
- goto nofile;
-
- node = doc->children;
- if (strcmp((gchar *)node->name, "folderinfo"))
- goto dodefault;
-
- for (node = node->children; node; node = node->next) {
- if (node->name && !strcmp ((gchar *)node->name, "folder")) {
- tmp = (gchar *)xmlGetProp (node, (const guchar *)"type");
- if (tmp) {
- protocol = g_alloca(strlen(tmp)+1);
- strcpy(protocol, tmp);
- xmlFree(tmp);
- }
- tmp = (gchar *)xmlGetProp (node, (const guchar *)"name");
- if (tmp) {
- name = g_alloca(strlen(tmp)+1);
- strcpy(name, tmp);
- xmlFree(tmp);
- }
- tmp = (gchar *)xmlGetProp (node, (const guchar *)"index");
- if (tmp) {
- index = atoi(tmp);
- xmlFree(tmp);
- }
- }
- }
-dodefault:
- xmlFreeDoc (doc);
-nofile:
- g_free(metadata);
-
- *namep = g_strdup(name);
- *indexp = index;
-
- return g_strdup_printf("%s:%s", protocol, dirname);
-}
-
-#endif /* !G_OS_WIN32 */
-
enum {
CP_UNIQUE = 0,
CP_OVERWRITE,
@@ -1449,1163 +314,9 @@ cp (const gchar *src, const gchar *dest, gboolean show_progress, gint mode)
#ifndef G_OS_WIN32
-static gboolean
-cp_r (const gchar *src, const gchar *dest, const gchar *pattern, gint mode)
-{
- GString *srcpath, *destpath;
- struct dirent *dent;
- gsize slen, dlen;
- struct stat st;
- DIR *dir;
-
- if (g_mkdir_with_parents (dest, 0700) == -1)
- return FALSE;
-
- if (!(dir = opendir (src)))
- return FALSE;
-
- srcpath = g_string_new (src);
- g_string_append_c (srcpath, '/');
- slen = srcpath->len;
-
- destpath = g_string_new (dest);
- g_string_append_c (destpath, '/');
- dlen = destpath->len;
-
- while ((dent = readdir (dir))) {
- if (!strcmp (dent->d_name, ".") || !strcmp (dent->d_name, ".."))
- continue;
-
- g_string_truncate (srcpath, slen);
- g_string_truncate (destpath, dlen);
-
- g_string_append (srcpath, dent->d_name);
- g_string_append (destpath, dent->d_name);
-
- if (stat (srcpath->str, &st) == -1)
- continue;
-
- if (S_ISDIR (st.st_mode)) {
- cp_r (srcpath->str, destpath->str, pattern, mode);
- } else if (!pattern || !strcmp (dent->d_name, pattern)) {
- cp (srcpath->str, destpath->str, FALSE, mode);
- }
- }
-
- closedir (dir);
-
- g_string_free (destpath, TRUE);
- g_string_free (srcpath, TRUE);
-
- return TRUE;
-}
-
-static void
-mbox_build_filename (GString *path, const gchar *toplevel_dir, const gchar *full_name)
-{
- const gchar *start, *inptr = full_name;
- gint subdirs = 0;
-
- while (*inptr != '\0') {
- if (*inptr == '/')
- subdirs++;
- inptr++;
- }
-
- g_string_assign(path, toplevel_dir);
- g_string_append_c (path, '/');
-
- inptr = full_name;
- while (*inptr != '\0') {
- start = inptr;
- while (*inptr != '/' && *inptr != '\0')
- inptr++;
-
- g_string_append_len (path, start, inptr - start);
-
- if (*inptr == '/') {
- g_string_append (path, ".sbd/");
- inptr++;
-
- /* strip extranaeous '/'s */
- while (*inptr == '/')
- inptr++;
- }
- }
-}
-
-static gboolean
-em_migrate_folder(EMMigrateSession *session, const gchar *dirname, const gchar *full_name, GError **error)
-{
- CamelFolder *old_folder = NULL, *new_folder = NULL;
- CamelStore *local_store = NULL;
- CamelException ex;
- gchar *name, *uri;
- GPtrArray *uids;
- struct stat st;
- gboolean thread_list;
- gint index, i;
- GString *src, *dest;
- gboolean success = FALSE;
- struct _migrate_state_info * info;
-
- camel_exception_init (&ex);
-
- src = g_string_new("");
-
- g_string_printf(src, "%s/folder-metadata.xml", dirname);
- if (stat (src->str, &st) == -1
- || !S_ISREG (st.st_mode)
- || !is_mail_folder(src->str)) {
- /* Not an evolution mail folder */
- g_string_free(src, TRUE);
- return TRUE;
- }
-
- dest = g_string_new("");
- uri = get_local_store_uri(dirname, &name, &index);
- info = g_malloc (sizeof(struct _migrate_state_info));
- info->label_name = g_strdup (full_name);
- info->progress = 0.0;
- g_idle_add ((GSourceFunc) update_states_in_main_thread, info);
-
- thread_list = get_local_et_expanded (dirname);
-
- /* Manually copy local mbox files, its much faster */
- if (!strncmp (uri, "mbox:", 5)) {
- static const gchar *meta_ext[] = { ".summary", ".ibex.index", ".ibex.index.data" };
- gsize slen, dlen;
- FILE *fp;
- gchar *p;
- gint mode;
-
- g_string_printf (src, "%s/%s", uri + 5, name);
- mbox_build_filename (dest, ((CamelService *)session->store)->url->path, full_name);
- p = strrchr (dest->str, '/');
- *p = '\0';
-
- slen = src->len;
- dlen = dest->len;
-
- if (g_mkdir_with_parents (dest->str, 0700) == -1 && errno != EEXIST) {
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Unable to create new folder '%s': %s"),
- dest->str, g_strerror (errno));
- goto fatal;
- }
-
- *p = '/';
- mode = CP_UNIQUE;
- retry_copy:
- if (!cp (src->str, dest->str, TRUE, mode)) {
- if (errno == EEXIST) {
- gint save = errno;
-
- switch (e_alert_run_dialog_for_args (e_shell_get_active_window (NULL), "mail:ask-migrate-existing", src->str, dest->str, NULL)) {
- case GTK_RESPONSE_ACCEPT:
- mode = CP_OVERWRITE;
- goto retry_copy;
- case GTK_RESPONSE_OK:
- mode = CP_APPEND;
- goto retry_copy;
- case GTK_RESPONSE_REJECT:
- goto ignore;
- }
-
- errno = save;
- }
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Unable to copy folder '%s' to '%s': %s"),
- src->str, dest->str, g_strerror (errno));
- goto fatal;
- }
- ignore:
-
- /* create a .cmeta file specifying to index and/or thread the folder */
- g_string_truncate (dest, dlen);
- g_string_append (dest, ".cmeta");
- if ((fp = fopen (dest->str, "w")) != NULL) {
- gint fd = fileno (fp);
-
- /* write the magic string */
- if (fwrite ("CLMD", 4, 1, fp) != 1)
- goto cmeta_err;
-
- /* write the version (1) */
- if (camel_file_util_encode_uint32 (fp, 1) == -1)
- goto cmeta_err;
-
- /* write the meta count */
- if (camel_file_util_encode_uint32 (fp, thread_list ? 1 : 0) == -1)
- goto cmeta_err;
-
- if (!thread_list) {
- if (camel_file_util_encode_string (fp, "evolution:thread_list") == -1)
- goto cmeta_err;
-
- if (camel_file_util_encode_string (fp, !thread_list ? "1" : "0") == -1)
- goto cmeta_err;
- }
-
- /* write the prop count (only prop is the index prop) */
- if (camel_file_util_encode_uint32 (fp, 1) == -1)
- goto cmeta_err;
-
- /* write the index prop tag (== CAMEL_FOLDER_ARG_LAST|CAMEL_ARG_BOO) */
- if (camel_file_util_encode_uint32 (fp, CAMEL_FOLDER_ARG_LAST|CAMEL_ARG_BOO) == -1)
- goto cmeta_err;
-
- /* write the index prop value */
- if (camel_file_util_encode_uint32 (fp, 1) == -1)
- goto cmeta_err;
-
- fflush (fp);
-
- if (fsync (fd) == -1) {
- cmeta_err:
- fclose (fp);
- unlink (dest->str);
- } else {
- fclose (fp);
- }
- }
-
- /* copy over the metadata files */
- for (i = 0; i < G_N_ELEMENTS (meta_ext); i++) {
- g_string_truncate (src, slen);
- g_string_truncate (dest, dlen);
-
- g_string_append (src, meta_ext[i]);
- g_string_append (dest, meta_ext[i]);
- cp (src->str, dest->str, FALSE, CP_OVERWRITE);
- }
- } else {
- guint32 flags = CAMEL_STORE_FOLDER_CREATE;
-
- if (!(local_store = camel_session_get_store ((CamelSession *) session, uri, &ex))
- || !(old_folder = camel_store_get_folder (local_store, name, 0, &ex)))
- goto fatal;
-
- flags |= (index ? CAMEL_STORE_FOLDER_BODY_INDEX : 0);
- if (!(new_folder = camel_store_get_folder (session->store, full_name, flags, &ex)))
- goto fatal;
-
- if (!thread_list) {
- camel_object_meta_set (new_folder, "evolution:thread_list", !thread_list ? "1" : "0");
- camel_object_state_write (new_folder);
- }
-
- uids = camel_folder_get_uids (old_folder);
- for (i = 0; i < uids->len; i++) {
- CamelMimeMessage *message;
- CamelMessageInfo *info;
-
- if (!(info = camel_folder_get_message_info (old_folder, uids->pdata[i])))
- continue;
-
- if (!(message = camel_folder_get_message (old_folder, uids->pdata[i], &ex))) {
- camel_folder_free_message_info (old_folder, info);
- camel_folder_free_uids (old_folder, uids);
- goto fatal;
- }
-
- camel_folder_append_message (new_folder, message, info, NULL, &ex);
- camel_folder_free_message_info (old_folder, info);
- camel_object_unref (message);
-
- if (camel_exception_is_set (&ex))
- break;
-
- em_migrate_set_progress (((double) i + 1) / ((double) uids->len));
- }
-
- camel_folder_free_uids (old_folder, uids);
-
- if (camel_exception_is_set (&ex))
- goto fatal;
- }
- success = TRUE;
-fatal:
- g_free (uri);
- g_free (name);
- g_string_free(src, TRUE);
- g_string_free(dest, TRUE);
- if (local_store)
- camel_object_unref(local_store);
- if (old_folder)
- camel_object_unref(old_folder);
- if (new_folder)
- camel_object_unref(new_folder);
-
- if (camel_exception_is_set (&ex)) {
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- "%s", camel_exception_get_description (&ex));
- camel_exception_clear (&ex);
- }
-
- return success;
-}
-
-static gboolean
-em_migrate_dir (EMMigrateSession *session, const gchar *dirname, const gchar *full_name, GError **error)
-{
- gchar *path;
- DIR *dir;
- struct stat st;
- struct dirent *dent;
- gboolean success = TRUE;
-
- if (!em_migrate_folder(session, dirname, full_name, error))
- return FALSE;
-
- /* no subfolders, not readable, don't care */
- path = g_strdup_printf ("%s/subfolders", dirname);
- if (stat (path, &st) == -1 || !S_ISDIR (st.st_mode)) {
- g_free (path);
- return TRUE;
- }
-
- if (!(dir = opendir (path))) {
- g_free (path);
- return TRUE;
- }
-
- while (success && (dent = readdir (dir))) {
- gchar *full_path;
- gchar *name;
-
- if (dent->d_name[0] == '.')
- continue;
-
- full_path = g_strdup_printf ("%s/%s", path, dent->d_name);
- if (stat (full_path, &st) == -1 || !S_ISDIR (st.st_mode)) {
- g_free (full_path);
- continue;
- }
-
- name = g_strdup_printf ("%s/%s", full_name, dent->d_name);
- success = em_migrate_dir (session, full_path, name, error);
- g_free (full_path);
- g_free (name);
- }
-
- closedir (dir);
-
- g_free (path);
-
- return success;
-}
-
-static gboolean
-em_migrate_local_folders_1_4 (EMMigrateSession *session, GError **error)
-{
- struct dirent *dent;
- struct stat st;
- DIR *dir;
- gboolean success = TRUE;
-
- if (!(dir = opendir (session->srcdir))) {
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Unable to scan for existing mailboxes at "
- "'%s': %s"), session->srcdir, g_strerror (errno));
- return FALSE;
- }
-
- em_migrate_setup_progress_dialog (
- _("Migrating Folders"),
- _("The location and hierarchy of the Evolution mailbox "
- "folders has changed since Evolution 1.x.\n\nPlease be "
- "patient while Evolution migrates your folders..."));
-
- while (success && (dent = readdir (dir))) {
- gchar *full_path;
-
- if (dent->d_name[0] == '.')
- continue;
-
- full_path = g_strdup_printf ("%s/%s", session->srcdir, dent->d_name);
- if (stat (full_path, &st) == -1 || !S_ISDIR (st.st_mode)) {
- g_free (full_path);
- continue;
- }
-
- success = em_migrate_dir (session, full_path, dent->d_name, error);
- g_free (full_path);
- }
-
- closedir (dir);
-
- em_migrate_close_progress_dialog ();
-
- return success;
-}
-
-static gchar *
-upgrade_xml_uris_1_4 (const gchar *uri)
-{
- gchar *path, *prefix, *p;
- CamelURL *url;
-
- if (!strncmp (uri, "file:", 5)) {
- url = camel_url_new (uri, NULL);
- camel_url_set_protocol (url, "email");
- camel_url_set_user (url, "local");
- camel_url_set_host (url, "local");
-
- prefix = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
- if (strncmp (url->path, prefix, strlen (prefix)) != 0) {
- /* uri is busticated - user probably copied from another user's home directory */
- camel_url_free (url);
- g_free (prefix);
-
- return g_strdup (uri);
- }
- path = g_strdup (url->path + strlen (prefix));
- g_free (prefix);
-
- /* modify the path in-place */
- p = path + strlen (path) - 12;
- while (p > path) {
- if (!strncmp (p, "/subfolders/", 12))
- memmove (p, p + 11, strlen (p + 11) + 1);
-
- p--;
- }
-
- camel_url_set_path (url, path);
- g_free (path);
-
- path = camel_url_to_string (url, 0);
- camel_url_free (url);
-
- return path;
- } else {
- return em_uri_from_camel (uri);
- }
-}
-
-static void
-upgrade_vfolder_sources_1_4 (xmlDocPtr doc)
-{
- xmlNodePtr root, node;
-
- if (!doc || !(root = xmlDocGetRootElement (doc)))
- return;
-
- if (!root->name || strcmp ((gchar *)root->name, "filteroptions") != 0) {
- /* root node is not <filteroptions>, nothing to upgrade */
- return;
- }
-
- if (!(node = xml_find_node (root, "ruleset"))) {
- /* no ruleset node, nothing to upgrade */
- return;
- }
-
- node = node->children;
- while (node != NULL) {
- if (node->name && !strcmp ((gchar *)node->name, "rule")) {
- xmlNodePtr sources;
- gchar *src;
-
- if (!(src = (gchar *)xmlGetProp (node, (const guchar *)"source")))
- src = (gchar *)xmlStrdup ((const guchar *)"local"); /* default to all local folders? */
-
- xmlSetProp (node, (const guchar *)"source", (const guchar *)"incoming");
-
- if (!(sources = xml_find_node (node, "sources")))
- sources = xmlNewChild (node, NULL, (const guchar *)"sources", NULL);
-
- xmlSetProp (sources, (const guchar *)"with", (guchar *)src);
- xmlFree (src);
- }
-
- node = node->next;
- }
-}
-
-static gchar *
-get_nth_sig (gint id)
-{
- ESignatureList *list;
- ESignature *sig;
- EIterator *iter;
- gchar *uid = NULL;
- gint i = 0;
-
- list = e_get_signature_list ();
- iter = e_list_get_iterator ((EList *) list);
-
- while (e_iterator_is_valid (iter) && i < id) {
- e_iterator_next (iter);
- i++;
- }
-
- if (i == id && e_iterator_is_valid (iter)) {
- sig = (ESignature *) e_iterator_get (iter);
- uid = g_strdup (e_signature_get_uid (sig));
- }
-
- g_object_unref (iter);
-
- return uid;
-}
-
-static void
-em_upgrade_accounts_1_4 (void)
-{
- EAccountList *accounts;
- EIterator *iter;
-
- if (!(accounts = e_get_account_list ()))
- return;
-
- iter = e_list_get_iterator ((EList *) accounts);
- while (e_iterator_is_valid (iter)) {
- EAccount *account = (EAccount *) e_iterator_get (iter);
- gchar *url;
-
- if (account->drafts_folder_uri) {
- url = upgrade_xml_uris_1_4 (account->drafts_folder_uri);
- g_free (account->drafts_folder_uri);
- account->drafts_folder_uri = url;
- }
-
- if (account->sent_folder_uri) {
- url = upgrade_xml_uris_1_4 (account->sent_folder_uri);
- g_free (account->sent_folder_uri);
- account->sent_folder_uri = url;
- }
-
- if (account->id->sig_uid && !strncmp (account->id->sig_uid, "::", 2)) {
- gint sig_id;
-
- sig_id = strtol (account->id->sig_uid + 2, NULL, 10);
- g_free (account->id->sig_uid);
- account->id->sig_uid = get_nth_sig (sig_id);
- }
-
- e_iterator_next (iter);
- }
-
- g_object_unref (iter);
-
- e_account_list_save (accounts);
-}
-
-static gboolean
-em_migrate_pop_uid_caches_1_4 (const gchar *data_dir, GError **error)
-{
- GString *oldpath, *newpath;
- struct dirent *dent;
- gsize olen, nlen;
- gchar *cache_dir;
- DIR *dir;
- gboolean success = TRUE;
-
- /* Sigh, too many unique strings to translate, for cases which shouldn't ever happen */
-
- /* open the old cache dir */
- cache_dir = g_build_filename (g_get_home_dir (), "evolution", "mail", "pop3", NULL);
- if (!(dir = opendir (cache_dir))) {
- if (errno == ENOENT) {
- g_free(cache_dir);
- return TRUE;
- }
-
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Unable to open old POP keep-on-server data "
- "'%s': %s"), cache_dir, g_strerror (errno));
- g_free (cache_dir);
- return FALSE;
- }
-
- oldpath = g_string_new (cache_dir);
- g_string_append_c (oldpath, '/');
- olen = oldpath->len;
- g_free (cache_dir);
-
- cache_dir = g_build_filename (data_dir, "pop", NULL);
- if (g_mkdir_with_parents (cache_dir, 0700) == -1) {
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Unable to create POP3 keep-on-server data "
- "directory '%s': %s"), cache_dir,
- g_strerror (errno));
- g_string_free (oldpath, TRUE);
- g_free (cache_dir);
- closedir (dir);
- return FALSE;
- }
-
- newpath = g_string_new (cache_dir);
- g_string_append_c (newpath, '/');
- nlen = newpath->len;
- g_free (cache_dir);
-
- while (success && (dent = readdir (dir))) {
- if (strncmp (dent->d_name, "cache-pop:__", 12) != 0)
- continue;
-
- g_string_truncate (oldpath, olen);
- g_string_truncate (newpath, nlen);
-
- g_string_append (oldpath, dent->d_name);
- g_string_append (newpath, dent->d_name + 12);
-
- /* strip the trailing '_' */
- g_string_truncate (newpath, newpath->len - 1);
-
- if (g_mkdir_with_parents (newpath->str, 0700) == -1
- || !cp(oldpath->str, (g_string_append(newpath, "/uid-cache"))->str, FALSE, CP_UNIQUE)) {
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Unable to copy POP3 keep-on-server data "
- "'%s': %s"), oldpath->str,
- g_strerror (errno));
- success = FALSE;
- }
-
- }
-
- g_string_free (oldpath, TRUE);
- g_string_free (newpath, TRUE);
-
- closedir (dir);
-
- return success;
-}
-
-static gboolean
-em_migrate_imap_caches_1_4 (const gchar *data_dir, GError **error)
-{
- gchar *src, *dest;
- struct stat st;
-
- src = g_build_filename (g_get_home_dir (), "evolution", "mail", "imap", NULL);
- if (stat (src, &st) == -1 || !S_ISDIR (st.st_mode)) {
- g_free (src);
- return TRUE;
- }
-
- dest = g_build_filename (data_dir, "imap", NULL);
-
- /* we don't care if this fails, it's only a cache... */
- cp_r (src, dest, "summary", CP_OVERWRITE);
-
- g_free (dest);
- g_free (src);
-
- return TRUE;
-}
-
-static gboolean
-em_migrate_folder_expand_state_1_4 (const gchar *data_dir, GError **error)
-{
- GString *srcpath, *destpath;
- gsize slen, dlen, rlen;
- gchar *evo14_mbox_root;
- struct dirent *dent;
- struct stat st;
- DIR *dir;
-
- srcpath = g_string_new (g_get_home_dir ());
- g_string_append (srcpath, "/evolution/config");
- if (stat (srcpath->str, &st) == -1 || !S_ISDIR (st.st_mode)) {
- g_string_free (srcpath, TRUE);
- return TRUE;
- }
-
- destpath = g_string_new (data_dir);
- g_string_append (destpath, "/config");
- if (g_mkdir_with_parents (destpath->str, 0700) == -1 || !(dir = opendir (srcpath->str))) {
- g_string_free (destpath, TRUE);
- g_string_free (srcpath, TRUE);
- return TRUE;
- }
-
- g_string_append (srcpath, "/et-expanded-");
- slen = srcpath->len;
- g_string_append (destpath, "/et-expanded-");
- dlen = destpath->len;
-
- evo14_mbox_root = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
- e_filename_make_safe (evo14_mbox_root);
- rlen = strlen (evo14_mbox_root);
- evo14_mbox_root = g_realloc (evo14_mbox_root, rlen + 2);
- evo14_mbox_root[rlen++] = '_';
- evo14_mbox_root[rlen] = '\0';
-
- while ((dent = readdir (dir))) {
- gchar *full_name, *inptr, *buf = NULL;
- const gchar *filename;
- GString *new;
-
- if (strncmp (dent->d_name, "et-expanded-", 12) != 0)
- continue;
-
- if (!strncmp (dent->d_name + 12, "file:", 5)) {
- /* need to munge the filename */
- inptr = dent->d_name + 17;
-
- if (!strncmp (inptr, evo14_mbox_root, rlen)) {
- /* this should always be the case afaik... */
- inptr += rlen;
- new = g_string_new ("mbox:");
- g_string_append_printf (new, "%s/local#", data_dir);
-
- full_name = g_strdup (inptr);
- inptr = full_name + strlen (full_name) - 12;
- while (inptr > full_name) {
- if (!strncmp (inptr, "_subfolders_", 12))
- memmove (inptr, inptr + 11, strlen (inptr + 11) + 1);
-
- inptr--;
- }
-
- g_string_append (new, full_name);
- g_free (full_name);
-
- filename = buf = new->str;
- g_string_free (new, FALSE);
- e_filename_make_safe (buf);
- } else {
- /* but just in case... */
- filename = dent->d_name + 12;
- }
- } else {
- /* no munging needed */
- filename = dent->d_name + 12;
- }
-
- g_string_append (srcpath, dent->d_name + 12);
- g_string_append (destpath, filename);
- g_free (buf);
-
- cp (srcpath->str, destpath->str, FALSE, CP_UNIQUE);
-
- g_string_truncate (srcpath, slen);
- g_string_truncate (destpath, dlen);
- }
-
- closedir (dir);
-
- g_free (evo14_mbox_root);
- g_string_free (destpath, TRUE);
- g_string_free (srcpath, TRUE);
-
- return TRUE;
-}
-
-static gboolean
-em_migrate_folder_view_settings_1_4 (const gchar *data_dir, GError **error)
-{
- GString *srcpath, *destpath;
- gsize slen, dlen, rlen;
- gchar *evo14_mbox_root;
- struct dirent *dent;
- struct stat st;
- DIR *dir;
-
- srcpath = g_string_new (g_get_home_dir ());
- g_string_append (srcpath, "/evolution/views/mail");
- if (stat (srcpath->str, &st) == -1 || !S_ISDIR (st.st_mode)) {
- g_string_free (srcpath, TRUE);
- return TRUE;
- }
-
- destpath = g_string_new (data_dir);
- g_string_append (destpath, "/views");
- if (g_mkdir_with_parents (destpath->str, 0700) == -1 || !(dir = opendir (srcpath->str))) {
- g_string_free (destpath, TRUE);
- g_string_free (srcpath, TRUE);
- return TRUE;
- }
-
- g_string_append_c (srcpath, '/');
- slen = srcpath->len;
- g_string_append_c (destpath, '/');
- dlen = destpath->len;
-
- evo14_mbox_root = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
- e_filename_make_safe (evo14_mbox_root);
- rlen = strlen (evo14_mbox_root);
- evo14_mbox_root = g_realloc (evo14_mbox_root, rlen + 2);
- evo14_mbox_root[rlen++] = '_';
- evo14_mbox_root[rlen] = '\0';
-
- while ((dent = readdir (dir))) {
- gchar *full_name, *inptr, *buf = NULL;
- const gchar *filename, *ext;
- gsize prelen = 0;
- GString *new;
-
- if (dent->d_name[0] == '.')
- continue;
-
- if (!(ext = strrchr (dent->d_name, '.')))
- continue;
-
- if (!strcmp (ext, ".galview") || !strcmp ((gchar *)dent->d_name, "galview.xml")) {
- /* just copy the file */
- filename = dent->d_name;
- goto copy;
- } else if (strcmp (ext, ".xml") != 0) {
- continue;
- }
-
- if (!strncmp ((const gchar *)dent->d_name, "current_view-", 13)) {
- prelen = 13;
- } else if (!strncmp ((const gchar *)dent->d_name, "custom_view-", 12)) {
- prelen = 12;
- } else {
- /* huh? wtf is this file? */
- continue;
- }
-
- if (!strncmp (dent->d_name + prelen, "file:", 5)) {
- /* need to munge the filename */
- inptr = dent->d_name + prelen + 5;
-
- if (!strncmp (inptr, evo14_mbox_root, rlen)) {
- /* this should always be the case afaik... */
- inptr += rlen;
- new = g_string_new ("mbox:");
- g_string_append_printf (new, "%s/local#", data_dir);
-
- full_name = g_strdup (inptr);
- inptr = full_name + strlen (full_name) - 12;
- while (inptr > full_name) {
- if (!strncmp (inptr, "_subfolders_", 12))
- memmove (inptr, inptr + 11, strlen (inptr + 11) + 1);
-
- inptr--;
- }
-
- g_string_append (new, full_name);
- g_free (full_name);
-
- filename = buf = new->str;
- g_string_free (new, FALSE);
- e_filename_make_safe (buf);
- } else {
- /* but just in case... */
- filename = dent->d_name + prelen;
- }
- } else {
- /* no munging needed */
- filename = dent->d_name + prelen;
- }
-
- copy:
- g_string_append (srcpath, dent->d_name);
- if (prelen > 0)
- g_string_append_len (destpath, dent->d_name, prelen);
- g_string_append (destpath, filename);
- g_free (buf);
-
- cp (srcpath->str, destpath->str, FALSE, CP_UNIQUE);
-
- g_string_truncate (srcpath, slen);
- g_string_truncate (destpath, dlen);
- }
-
- closedir (dir);
-
- g_free (evo14_mbox_root);
- g_string_free (destpath, TRUE);
- g_string_free (srcpath, TRUE);
-
- return TRUE;
-}
-
#define SUBFOLDER_DIR_NAME "subfolders"
#define SUBFOLDER_DIR_NAME_LEN 10
-static gchar *
-e_path_to_physical (const gchar *prefix, const gchar *vpath)
-{
- const gchar *p, *newp;
- gchar *dp;
- gchar *ppath;
- gint ppath_len;
- gint prefix_len;
-
- while (*vpath == '/')
- vpath++;
- if (!prefix)
- prefix = "";
-
- /* Calculate the length of the real path. */
- ppath_len = strlen (vpath);
- ppath_len++; /* For the ending zero. */
-
- prefix_len = strlen (prefix);
- ppath_len += prefix_len;
- ppath_len++; /* For the separating slash. */
-
- /* Take account of the fact that we need to translate every
- * separator into 'subfolders/'.
- */
- p = vpath;
- while (1) {
- newp = strchr (p, '/');
- if (newp == NULL)
- break;
-
- ppath_len += SUBFOLDER_DIR_NAME_LEN;
- ppath_len++; /* For the separating slash. */
-
- /* Skip consecutive slashes. */
- while (*newp == '/')
- newp++;
-
- p = newp;
- };
-
- ppath = g_malloc (ppath_len);
- dp = ppath;
-
- memcpy (dp, prefix, prefix_len);
- dp += prefix_len;
- *(dp++) = '/';
-
- /* Copy the mangled path. */
- p = vpath;
- while (1) {
- newp = strchr (p, '/');
- if (newp == NULL) {
- strcpy (dp, p);
- break;
- }
-
- memcpy (dp, p, newp - p + 1); /* '+ 1' to copy the slash too. */
- dp += newp - p + 1;
-
- memcpy (dp, SUBFOLDER_DIR_NAME, SUBFOLDER_DIR_NAME_LEN);
- dp += SUBFOLDER_DIR_NAME_LEN;
-
- *(dp++) = '/';
-
- /* Skip consecutive slashes. */
- while (*newp == '/')
- newp++;
-
- p = newp;
- }
-
- return ppath;
-}
-
-static gboolean
-em_migrate_imap_cmeta_1_4(const gchar *data_dir, GError **error)
-{
- GConfClient *gconf;
- GSList *paths, *p;
- EAccountList *accounts;
- const EAccount *account;
-
- if (!(accounts = e_get_account_list ()))
- return TRUE;
-
- gconf = gconf_client_get_default();
- paths = gconf_client_get_list(gconf, "/apps/evolution/shell/offline/folder_paths", GCONF_VALUE_STRING, NULL);
- for (p = paths;p;p = g_slist_next(p)) {
- gchar *name, *path;
-
- name = p->data;
- if (*name)
- name++;
- path = strchr(name, '/');
- if (path) {
- *path++ = 0;
- account = e_account_list_find(accounts, E_ACCOUNT_FIND_NAME, name);
- if (account && !strncmp(account->source->url, "imap:", 5)) {
- CamelURL *url = camel_url_new(account->source->url, NULL);
-
- if (url) {
- gchar *dir, *base;
-
- base = g_strdup_printf("%s/imap/%s@%s/folders",
- data_dir,
- url->user?url->user:"",
- url->host?url->host:"");
-
- dir = e_path_to_physical(base, path);
- if (g_mkdir_with_parents(dir, 0700) == 0) {
- gchar *cmeta;
- FILE *fp;
-
- cmeta = g_build_filename(dir, "cmeta", NULL);
- fp = fopen(cmeta, "w");
- if (fp) {
- /* header/version */
- fwrite("CLMD", 4, 1, fp);
- camel_file_util_encode_uint32(fp, 1);
- /* meta count, do we have any metadata? */
- camel_file_util_encode_uint32(fp, 0);
- /* prop count */
- camel_file_util_encode_uint32(fp, 1);
- /* sync offline property */
- camel_file_util_encode_uint32(fp, CAMEL_DISCO_FOLDER_OFFLINE_SYNC);
- camel_file_util_encode_uint32(fp, 1);
- fclose(fp);
- } else {
- g_warning("couldn't create imap folder cmeta file '%s'", cmeta);
- }
- g_free(cmeta);
- } else {
- g_warning("couldn't create imap folder directory '%s'", dir);
- }
- g_free(dir);
- g_free(base);
- camel_url_free(url);
- }
- } else
- g_warning("can't find offline folder '%s' '%s'", name, path);
- }
- g_free(p->data);
- }
- g_slist_free(paths);
- g_object_unref(gconf);
-
- /* we couldn't care less if this doesn't work */
-
- return TRUE;
-}
-
-static void
-remove_system_searches(xmlDocPtr searches)
-{
- xmlNodePtr node;
-
- /* in pre 2.0, system searches were stored in the user
- * searches.xml file with the source set to 'demand'. In 2.0+
- * the system searches are stored in the system
- * searchtypes.xml file instead */
-
- node = xmlDocGetRootElement(searches);
- if (!node->name || strcmp((gchar *)node->name, "filteroptions"))
- return;
-
- if (!(node = xml_find_node(node, "ruleset")))
- return;
-
- node = node->children;
- while (node != NULL) {
- xmlNodePtr nnode = node->next;
-
- if (node->name && !strcmp ((gchar *)node->name, "rule")) {
- gchar *src;
-
- src = (gchar *)xmlGetProp(node, (guchar *)"source");
- if (src && !strcmp((gchar *)src, "demand")) {
- xmlUnlinkNode(node);
- xmlFreeNodeList(node);
- }
- xmlFree (src);
- }
-
- node = nnode;
- }
-}
-
-static gboolean
-em_migrate_1_4 (const gchar *data_dir, xmlDocPtr filters, xmlDocPtr vfolders, GError **error)
-{
- EMMigrateSession *session;
- CamelException lex;
- struct stat st;
- gchar *path;
- xmlDocPtr searches;
-
- camel_init (data_dir, TRUE);
- camel_provider_init();
- session = (EMMigrateSession *) em_migrate_session_new (data_dir);
-
- session->srcdir = g_build_filename (g_get_home_dir (), "evolution", "local", NULL);
-
- path = g_strdup_printf ("mbox:%s/.evolution/mail/local", g_get_home_dir ());
- if (stat (path + 5, &st) == -1) {
- if (errno != ENOENT || g_mkdir_with_parents (path + 5, 0700) == -1) {
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Failed to create local mail storage "
- "'%s': %s"), path + 5, g_strerror (errno));
- g_free (session->srcdir);
- camel_object_unref (session);
- g_free (path);
- return FALSE;
- }
- }
-
- camel_exception_init (&lex);
- if (!(session->store = camel_session_get_store ((CamelSession *) session, path, &lex))) {
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Failed to create local mail storage '%s': %s"),
- path, lex.desc);
- g_free (session->srcdir);
- camel_object_unref (session);
- camel_exception_clear (&lex);
- g_free (path);
- return FALSE;
- }
- g_free (path);
-
- if (!em_migrate_local_folders_1_4 (session, error))
- return FALSE;
-
- camel_object_unref (session->store);
- g_free (session->srcdir);
-
- camel_object_unref (session);
-
- em_upgrade_accounts_1_4();
-
- upgrade_xml_uris(filters, upgrade_xml_uris_1_4);
- upgrade_vfolder_sources_1_4(vfolders);
- upgrade_xml_uris(vfolders, upgrade_xml_uris_1_4);
-
- path = g_build_filename(g_get_home_dir(), "evolution", NULL);
- searches = emm_load_xml(path, "searches.xml");
- g_free(path);
- if (searches) {
- remove_system_searches(searches);
- emm_save_xml(searches, data_dir, "searches.xml");
- xmlFreeDoc(searches);
- }
-
- if (!em_migrate_pop_uid_caches_1_4 (data_dir, error))
- return FALSE;
-
- /* these are non-fatal */
- em_migrate_imap_caches_1_4 (data_dir, error);
- g_clear_error (error);
- em_migrate_folder_expand_state_1_4 (data_dir, error);
- g_clear_error (error);
- em_migrate_folder_view_settings_1_4 (data_dir, error);
- g_clear_error (error);
- em_migrate_imap_cmeta_1_4 (data_dir, error);
- g_clear_error (error);
-
- return TRUE;
-}
-
static void
em_update_accounts_2_11 (void)
{
@@ -3018,7 +729,6 @@ e_mail_migrate (EShellBackend *shell_backend,
{
struct stat st;
const gchar *data_dir;
- gchar *path;
/* make sure ~/.evolution/mail exists */
data_dir = e_shell_backend_get_data_dir (shell_backend);
@@ -3036,67 +746,6 @@ e_mail_migrate (EShellBackend *shell_backend,
if (major == 0)
return emm_setup_initial (data_dir);
- if (major == 1 && minor < 5) {
-#ifndef G_OS_WIN32
- xmlDocPtr config_xmldb = NULL, filters, vfolders;
-
- path = g_build_filename (g_get_home_dir (), "evolution", NULL);
- if (minor <= 2 && !(config_xmldb = emm_load_xml (path, "config.xmldb"))) {
- g_set_error (
- error, E_SHELL_MIGRATE_ERROR,
- E_SHELL_MIGRATE_ERROR_FAILED,
- _("Unable to read settings from previous "
- "Evolution install, 'evolution/config.xmldb' "
- "does not exist or is corrupt."));
- return FALSE;
- }
- filters = emm_load_xml (path, "filters.xml");
- vfolders = emm_load_xml (path, "vfolders.xml");
-
- if (minor == 0) {
- if (!em_migrate_1_0 (data_dir, config_xmldb, filters, vfolders, error)) {
- xmlFreeDoc (config_xmldb);
- xmlFreeDoc (filters);
- xmlFreeDoc (vfolders);
- return FALSE;
- }
- }
-
- if (minor <= 2) {
- if (!em_migrate_1_2 (data_dir, config_xmldb, filters, vfolders, error)) {
- xmlFreeDoc (config_xmldb);
- xmlFreeDoc (filters);
- xmlFreeDoc (vfolders);
- return FALSE;
- }
-
- xmlFreeDoc (config_xmldb);
- }
-
- if (minor <= 4) {
- if (!em_migrate_1_4 (data_dir, filters, vfolders, error)) {
- xmlFreeDoc (filters);
- xmlFreeDoc (vfolders);
- return FALSE;
- }
- }
-
- if (filters) {
- emm_save_xml (filters, path, "filters.xml");
- xmlFreeDoc (filters);
- }
-
- if (vfolders) {
- emm_save_xml (vfolders, path, "vfolders.xml");
- xmlFreeDoc (vfolders);
- }
-
- g_free (path);
-#else
- g_error ("Upgrading from ancient versions not supported on Windows");
-#endif
- }
-
if (major < 2 || (major == 2 && minor < 12)) {
#ifndef G_OS_WIN32
em_update_accounts_2_11 ();
diff --git a/mail/e-mail-reader-utils.c b/mail/e-mail-reader-utils.c
index 12d87d97c8..3282af34af 100644
--- a/mail/e-mail-reader-utils.c
+++ b/mail/e-mail-reader-utils.c
@@ -26,9 +26,7 @@
#include <glib/gi18n.h>
#include <libxml/tree.h>
#include <gtkhtml/gtkhtml.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-vee-store.h>
+#include <camel/camel.h>
#include "e-util/e-alert-dialog.h"
#include "filter/e-filter-rule.h"
@@ -68,6 +66,7 @@ e_mail_reader_confirm_delete (EMailReader *reader)
EShellBackend *shell_backend;
EShellSettings *shell_settings;
CamelFolder *folder;
+ CamelStore *parent_store;
GtkWidget *check_button;
GtkWidget *content_area;
GtkWidget *dialog;
@@ -90,7 +89,9 @@ e_mail_reader_confirm_delete (EMailReader *reader)
prompt_delete_in_vfolder = e_shell_settings_get_boolean (
shell_settings, "mail-prompt-delete-in-vfolder");
- if (!CAMEL_IS_VEE_STORE (folder->parent_store))
+ parent_store = camel_folder_get_parent_store (folder);
+
+ if (!CAMEL_IS_VEE_STORE (parent_store))
return TRUE;
if (!prompt_delete_in_vfolder)
@@ -98,7 +99,7 @@ e_mail_reader_confirm_delete (EMailReader *reader)
dialog = e_alert_dialog_new_for_args (
window, "mail:ask-delete-vfolder-msg",
- folder->full_name, NULL);
+ camel_folder_get_full_name (folder), NULL);
/* XXX e-error should provide a widget layout and API suitable
* for packing additional widgets to the right of the alert
@@ -251,6 +252,7 @@ e_mail_reader_open_selected (EMailReader *reader)
}
g_free (real_folder_uri);
+ camel_folder_free_message_info (folder, info);
}
for (ii = 0; ii < views->len; ii++) {
@@ -669,7 +671,7 @@ e_mail_reader_header_free (EMailReaderHeader *header)
}
static void
-headers_changed_cb (GConfClient *gconf,
+headers_changed_cb (GConfClient *client,
guint cnxn_id,
GConfEntry *entry,
EMailReader *reader)
@@ -678,7 +680,7 @@ headers_changed_cb (GConfClient *gconf,
EMFormatHTMLDisplay *emfhd;
GSList *header_config_list, *p;
- g_return_if_fail (gconf != NULL);
+ g_return_if_fail (client != NULL);
g_return_if_fail (reader != NULL);
emfhd = e_mail_reader_get_html_display (reader);
@@ -689,7 +691,7 @@ headers_changed_cb (GConfClient *gconf,
g_return_if_fail (emf != NULL);
header_config_list = gconf_client_get_list (
- gconf, "/apps/evolution/mail/display/headers",
+ client, "/apps/evolution/mail/display/headers",
GCONF_VALUE_STRING, NULL);
em_format_clear_headers (emf);
for (p = header_config_list; p; p = g_slist_next(p)) {
@@ -718,16 +720,16 @@ headers_changed_cb (GConfClient *gconf,
static void
remove_header_notify_cb (gpointer data)
{
- GConfClient *gconf = mail_config_get_gconf_client ();
+ GConfClient *client = mail_config_get_gconf_client ();
guint notify_id;
- g_return_if_fail (gconf != NULL);
+ g_return_if_fail (client != NULL);
notify_id = GPOINTER_TO_INT (data);
g_return_if_fail (notify_id != 0);
- gconf_client_notify_remove (gconf, notify_id);
- gconf_client_remove_dir (gconf, "/apps/evolution/mail/display", NULL);
+ gconf_client_notify_remove (client, notify_id);
+ gconf_client_remove_dir (client, "/apps/evolution/mail/display", NULL);
}
/**
@@ -740,19 +742,20 @@ remove_header_notify_cb (gpointer data)
void
e_mail_reader_connect_headers (EMailReader *reader)
{
- GConfClient *gconf = mail_config_get_gconf_client ();
+ GConfClient *client = mail_config_get_gconf_client ();
guint notify_id;
gconf_client_add_dir (
- gconf, "/apps/evolution/mail/display",
+ client, "/apps/evolution/mail/display",
GCONF_CLIENT_PRELOAD_NONE, NULL);
notify_id = gconf_client_notify_add (
- gconf, "/apps/evolution/mail/display/headers",
+ client, "/apps/evolution/mail/display/headers",
(GConfClientNotifyFunc) headers_changed_cb,
reader, NULL, NULL);
+
g_object_set_data_full (
G_OBJECT (reader), "reader-header-notify-id",
GINT_TO_POINTER (notify_id), remove_header_notify_cb);
- headers_changed_cb (gconf, 0, NULL, reader);
+ headers_changed_cb (client, 0, NULL, reader);
}
diff --git a/mail/e-mail-reader.c b/mail/e-mail-reader.c
index 20448cc57f..4b02d69623 100644
--- a/mail/e-mail-reader.c
+++ b/mail/e-mail-reader.c
@@ -145,6 +145,8 @@ action_mail_add_sender_cb (GtkAction *action,
e_shell_event (shell, "contact-quick-add-email", (gpointer) address);
emu_remove_from_mail_cache_1 (address);
exit:
+ if (info)
+ camel_folder_free_message_info (folder, info);
em_utils_uids_free (uids);
}
@@ -179,7 +181,7 @@ action_add_to_address_book_cb (GtkAction *action,
cia = camel_internet_address_new ();
if (camel_address_decode (CAMEL_ADDRESS (cia), curl->path) < 0) {
- camel_object_unref (cia);
+ g_object_unref (cia);
goto exit;
}
@@ -191,7 +193,7 @@ action_add_to_address_book_cb (GtkAction *action,
e_shell_event (shell, "contact-quick-add-email", email);
emu_remove_from_mail_cache_1 (curl->path);
- camel_object_unref (cia);
+ g_object_unref (cia);
g_free (email);
exit:
@@ -864,7 +866,7 @@ action_mail_save_as_cb (GtkAction *action,
if (subject)
suggestion = g_strconcat (subject, ".mbox", NULL);
- camel_message_info_free (info);
+ camel_folder_free_message_info (folder, info);
}
if (!suggestion) {
@@ -1086,7 +1088,7 @@ action_search_folder_recipient_cb (GtkAction *action,
inet_addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (inet_addr), curl->path);
vfolder_gui_add_from_address (inet_addr, AUTO_TO, folder_uri);
- camel_object_unref (inet_addr);
+ g_object_unref (inet_addr);
}
camel_url_free (curl);
@@ -1124,7 +1126,7 @@ action_search_folder_sender_cb (GtkAction *action,
inet_addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (inet_addr), curl->path);
vfolder_gui_add_from_address (inet_addr, AUTO_FROM, folder_uri);
- camel_object_unref (inet_addr);
+ g_object_unref (inet_addr);
}
camel_url_free (curl);
@@ -1905,12 +1907,15 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader)
GtkWidget *message_list;
EWebView *web_view;
CamelFolder *folder;
+ CamelStore *parent_store;
const gchar *cursor_uid;
const gchar *format_uid;
priv = E_MAIL_READER_GET_PRIVATE (reader);
folder = e_mail_reader_get_folder (reader);
+ parent_store = camel_folder_get_parent_store (folder);
+
html_display = e_mail_reader_get_html_display (reader);
message_list = e_mail_reader_get_message_list (reader);
@@ -1928,11 +1933,7 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader)
widget = GTK_WIDGET (EM_FORMAT_HTML (html_display)->html);
-#if GTK_CHECK_VERSION(2,19,7)
html_display_visible = gtk_widget_get_mapped (widget);
-#else
- html_display_visible = GTK_WIDGET_MAPPED (widget);
-#endif
selected_uid_changed = g_strcmp0 (cursor_uid, format_uid);
if (html_display_visible && selected_uid_changed) {
@@ -1946,7 +1947,7 @@ mail_reader_message_selected_timeout_cb (EMailReader *reader)
e_web_view_load_string (web_view, string);
g_free (string);
- store_async = folder->parent_store->flags & CAMEL_STORE_ASYNC;
+ store_async = parent_store->flags & CAMEL_STORE_ASYNC;
if (store_async)
disp_func = mail_msg_unordered_push;
@@ -1980,11 +1981,13 @@ mail_reader_message_selected_cb (EMailReader *reader,
MessageList *message_list;
gboolean store_async;
CamelFolder *folder;
+ CamelStore *parent_store;
priv = E_MAIL_READER_GET_PRIVATE (reader);
folder = e_mail_reader_get_folder (reader);
- store_async = folder->parent_store->flags & CAMEL_STORE_ASYNC;
+ parent_store = camel_folder_get_parent_store (folder);
+ store_async = parent_store->flags & CAMEL_STORE_ASYNC;
/* Cancel previous message retrieval if the store is not async. */
if (!store_async && priv->retrieving_message_operation_id > 0)
@@ -2304,7 +2307,7 @@ mail_reader_update_actions (EMailReader *reader)
selection_has_not_junk_messages &&
!(state & E_MAIL_READER_FOLDER_IS_JUNK);
action = e_mail_reader_get_action (reader, action_name);
- gtk_action_set_sensitive (action, sensitive);
+ gtk_action_set_sensitive (action, sensitive && !(state & E_MAIL_READER_FOLDER_IS_JUNK));
action_name = "mail-mark-not-junk";
sensitive = selection_has_junk_messages;
@@ -2747,7 +2750,7 @@ e_mail_reader_check_state (EMailReader *reader)
uids = e_mail_reader_get_selected_uids (reader);
if (folder != NULL) {
- store = CAMEL_STORE (folder->parent_store);
+ store = camel_folder_get_parent_store (folder);
store_supports_vjunk = (store->flags & CAMEL_STORE_VJUNK);
is_junk_folder = (folder->folder_flags & CAMEL_FOLDER_IS_JUNK) != 0;
}
@@ -2831,6 +2834,8 @@ e_mail_reader_check_state (EMailReader *reader)
string = camel_message_info_mlist (info);
is_mailing_list &= (string != NULL && *string != '\0');
+
+ camel_folder_free_message_info (folder, info);
}
if (em_utils_check_user_can_send_mail ())
diff --git a/mail/e-mail-reader.h b/mail/e-mail-reader.h
index b724d6e19b..0b8f30d825 100644
--- a/mail/e-mail-reader.h
+++ b/mail/e-mail-reader.h
@@ -28,7 +28,7 @@
* a GtkWidget pointer which almost always has to be type casted. */
#include <gtk/gtk.h>
-#include <camel/camel-folder.h>
+#include <camel/camel.h>
#include <mail/em-format-html-display.h>
#include <shell/e-shell-backend.h>
diff --git a/mail/e-mail-store.c b/mail/e-mail-store.c
index f088b9f805..3418404e06 100644
--- a/mail/e-mail-store.c
+++ b/mail/e-mail-store.c
@@ -22,9 +22,7 @@
#include "e-mail-store.h"
#include <glib/gi18n.h>
-#include <camel/camel-service.h>
-#include <camel/camel-session.h>
-#include <camel/camel-url.h>
+#include <camel/camel.h>
#include <libedataserver/e-account.h>
#include <libedataserver/e-account-list.h>
@@ -76,7 +74,7 @@ store_info_new (CamelStore *store,
store_info = g_slice_new0 (StoreInfo);
store_info->ref_count = 1;
- camel_object_ref (store);
+ g_object_ref (store);
store_info->store = store;
if (display_name == NULL)
@@ -115,14 +113,14 @@ store_info_unref (StoreInfo *store_info)
if (g_atomic_int_exchange_and_add (&store_info->ref_count, -1) > 1)
return;
- camel_object_unref (store_info->store);
+ g_object_unref (store_info->store);
g_free (store_info->display_name);
if (store_info->vtrash != NULL)
- camel_object_unref (store_info->vtrash);
+ g_object_unref (store_info->vtrash);
if (store_info->vjunk != NULL)
- camel_object_unref (store_info->vjunk);
+ g_object_unref (store_info->vjunk);
g_slice_free (StoreInfo, store_info);
}
@@ -329,7 +327,7 @@ e_mail_store_add_by_uri (const gchar *uri,
e_mail_store_add (CAMEL_STORE (service), display_name);
- camel_object_unref (service);
+ g_object_unref (service);
return CAMEL_STORE (service);
@@ -348,7 +346,7 @@ static void
mail_store_remove_cb (CamelStore *store)
{
camel_service_disconnect (CAMEL_SERVICE (store), TRUE, NULL);
- camel_object_unref (store);
+ g_object_unref (store);
}
void
@@ -368,7 +366,7 @@ e_mail_store_remove (CamelStore *store)
if (g_hash_table_lookup (store_table, store) == NULL)
return;
- camel_object_ref (store);
+ g_object_ref (store);
g_hash_table_remove (store_table, store);
mail_folder_cache_note_store_remove (mail_folder_cache_get_default (), store);
@@ -404,7 +402,7 @@ e_mail_store_remove_by_uri (const gchar *uri)
e_mail_store_remove (CAMEL_STORE (service));
- camel_object_unref (service);
+ g_object_unref (service);
}
void
diff --git a/mail/e-mail-store.h b/mail/e-mail-store.h
index bfd1ab47c8..7d42fc3647 100644
--- a/mail/e-mail-store.h
+++ b/mail/e-mail-store.h
@@ -23,7 +23,7 @@
#define E_MAIL_STORE_H
#include <glib.h>
-#include <camel/camel-store.h>
+#include <camel/camel.h>
G_BEGIN_DECLS
diff --git a/mail/e-mail-tag-editor.h b/mail/e-mail-tag-editor.h
index b28674cff6..fe2365c903 100644
--- a/mail/e-mail-tag-editor.h
+++ b/mail/e-mail-tag-editor.h
@@ -25,8 +25,7 @@
#define E_MAIL_TAG_EDITOR_H
#include <gtk/gtk.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-folder-summary.h>
+#include <camel/camel.h>
/* Standard GObject macros */
#define E_TYPE_MAIL_TAG_EDITOR \
diff --git a/mail/em-account-editor.c b/mail/em-account-editor.c
index 2ceb77dbec..49f4356a5b 100644
--- a/mail/em-account-editor.c
+++ b/mail/em-account-editor.c
@@ -2484,7 +2484,7 @@ emae_receive_options_item (EConfig *ec, EConfigItem *item, GtkWidget *parent, Gt
{
EMAccountEditor *emae = data;
GtkWidget *w, *box, *spin;
- gint row;
+ guint row;
if (emae->priv->source.provider == NULL
|| emae->priv->source.provider->extra_conf == NULL)
@@ -2510,7 +2510,7 @@ emae_receive_options_item (EConfig *ec, EConfigItem *item, GtkWidget *parent, Gt
}
/* We have to add the automatic mail check item with the rest of the receive options */
- row = ((GtkTable *)parent)->nrows;
+ g_object_get (parent, "n-rows", &row, NULL);
box = gtk_hbox_new (FALSE, 4);
w = gtk_check_button_new_with_mnemonic (_("Check for _new messages every"));
@@ -2542,7 +2542,8 @@ emae_receive_options_extra_item (EConfig *ec, EConfigItem *eitem, GtkWidget *par
GtkWidget *depw;
GSList *depl = NULL, *n;
EMAccountEditorService *service = &emae->priv->source;
- gint row, i;
+ gint i;
+ guint row;
GHashTable *extra;
CamelURL *url;
@@ -2570,7 +2571,7 @@ section:
url = emae_account_url (emae, emae_service_info[service->type].account_uri_key);
item->extra_table = g_hash_table_new (g_str_hash, g_str_equal);
extra = g_hash_table_new (g_str_hash, g_str_equal);
- row = ((GtkTable *)parent)->nrows;
+ g_object_get (parent, "n-rows", &row, NULL);
for (;entries[i].type != CAMEL_PROVIDER_CONF_END && entries[i].type != CAMEL_PROVIDER_CONF_SECTION_END;i++) {
if (entries[i].depname) {
@@ -2776,6 +2777,65 @@ emae_defaults_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget
return w;
}
+static void
+emae_account_hash_algo_combo_changed_cb (GtkComboBox *combobox, EMAccountEditor *emae)
+{
+ EAccount *account;
+ gpointer data;
+ const gchar *text = NULL;
+
+ account = em_account_editor_get_modified_account (emae);
+ data = g_object_get_data (G_OBJECT (combobox), "account-item");
+
+ switch (gtk_combo_box_get_active (combobox)) {
+ case 1: text = "sha1";
+ break;
+ case 2: text = "sha256";
+ break;
+ case 3:
+ text = "sha384";
+ break;
+ case 4:
+ text = "sha512";
+ break;
+ }
+
+ e_account_set_string (account, GPOINTER_TO_INT (data), text);
+}
+
+static GtkComboBox *
+emae_account_hash_algo_combo (EMAccountEditor *emae, const gchar *name, gint item, GtkBuilder *builder)
+{
+ EAccount *account;
+ GtkComboBox *combobox;
+ const gchar *text;
+ gint index = 0;
+
+ account = em_account_editor_get_modified_account (emae);
+ combobox = GTK_COMBO_BOX (e_builder_get_widget (builder, name));
+ g_return_val_if_fail (combobox != NULL, NULL);
+
+ text = e_account_get_string (account, item);
+ if (text) {
+ if (g_ascii_strcasecmp (text, "sha1") == 0)
+ index = 1;
+ else if (g_ascii_strcasecmp (text, "sha256") == 0)
+ index = 2;
+ else if (g_ascii_strcasecmp (text, "sha384") == 0)
+ index = 3;
+ else if (g_ascii_strcasecmp (text, "sha512") == 0)
+ index = 4;
+ }
+
+ gtk_combo_box_set_active (combobox, index);
+
+ g_object_set_data (G_OBJECT (combobox), "account-item", GINT_TO_POINTER (item));
+ g_signal_connect (combobox, "changed", G_CALLBACK (emae_account_hash_algo_combo_changed_cb), emae);
+ gtk_widget_set_sensitive (GTK_WIDGET (combobox), e_account_writable (account, item));
+
+ return combobox;
+}
+
static GtkWidget *
emae_security_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *old, gpointer data)
{
@@ -2794,6 +2854,7 @@ emae_security_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget
/* Security */
emae_account_entry (emae, "pgp_key", E_ACCOUNT_PGP_KEY, builder);
+ emae_account_hash_algo_combo (emae, "pgp_hash_algo", E_ACCOUNT_PGP_HASH_ALGORITHM, builder);
emae_account_toggle (emae, "pgp_encrypt_to_self", E_ACCOUNT_PGP_ENCRYPT_TO_SELF, builder);
emae_account_toggle (emae, "pgp_always_sign", E_ACCOUNT_PGP_ALWAYS_SIGN, builder);
emae_account_toggle (emae, "pgp_no_imip_sign", E_ACCOUNT_PGP_NO_IMIP_SIGN, builder);
@@ -2807,6 +2868,7 @@ emae_security_page (EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget
g_signal_connect (priv->smime_sign_key_select, "clicked", G_CALLBACK(smime_sign_key_select), emae);
g_signal_connect (priv->smime_sign_key_clear, "clicked", G_CALLBACK(smime_sign_key_clear), emae);
+ emae_account_hash_algo_combo (emae, "smime_hash_algo", E_ACCOUNT_SMIME_HASH_ALGORITHM, builder);
priv->smime_sign_default = emae_account_toggle (emae, "smime_sign_default", E_ACCOUNT_SMIME_SIGN_DEFAULT, builder);
priv->smime_encrypt_key = emae_account_entry (emae, "smime_encrypt_key", E_ACCOUNT_SMIME_ENCRYPT_KEY, builder);
diff --git a/mail/em-composer-utils.c b/mail/em-composer-utils.c
index 25e1761eb4..514885c28b 100644
--- a/mail/em-composer-utils.c
+++ b/mail/em-composer-utils.c
@@ -59,18 +59,10 @@
#include "em-format-quote.h"
#include "em-event.h"
-#include <camel/camel-folder.h>
-#include <camel/camel-multipart.h>
-#include <camel/camel-string-utils.h>
-#include <camel/camel-stream-mem.h>
-#include <camel/camel-nntp-address.h>
-#include <camel/camel-vee-folder.h>
-
#ifdef G_OS_WIN32
-/* Undef the similar macro from pthread.h, it doesn't check if
- * gmtime() returns NULL.
- */
+#ifdef gmtime_r
#undef gmtime_r
+#endif
/* The gmtime() in Microsoft's C library is MT-safe */
#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0)
@@ -113,10 +105,10 @@ emcs_set_drafts_info (struct emcs_t *emcs,
g_return_if_fail (drafts_uid != NULL);
if (emcs->drafts_folder != NULL)
- camel_object_unref (emcs->drafts_folder);
+ g_object_unref (emcs->drafts_folder);
g_free (emcs->drafts_uid);
- camel_object_ref (drafts_folder);
+ g_object_ref (drafts_folder);
emcs->drafts_folder = drafts_folder;
emcs->drafts_uid = g_strdup (drafts_uid);
}
@@ -133,10 +125,10 @@ emcs_set_folder_info (struct emcs_t *emcs,
g_return_if_fail (uid != NULL);
if (emcs->folder != NULL)
- camel_object_unref (emcs->folder);
+ g_object_unref (emcs->folder);
g_free (emcs->uid);
- camel_object_ref (folder);
+ g_object_ref (folder);
emcs->folder = folder;
emcs->uid = g_strdup (uid);
emcs->flags = flags;
@@ -147,11 +139,11 @@ static void
free_emcs (struct emcs_t *emcs)
{
if (emcs->drafts_folder != NULL)
- camel_object_unref (emcs->drafts_folder);
+ g_object_unref (emcs->drafts_folder);
g_free (emcs->drafts_uid);
if (emcs->folder != NULL)
- camel_object_unref (emcs->folder);
+ g_object_unref (emcs->folder);
g_free (emcs->uid);
g_free (emcs);
@@ -241,7 +233,7 @@ composer_send_queued_cb (CamelFolder *folder, CamelMimeMessage *msg, CamelMessag
camel_folder_set_message_flags (emcs->drafts_folder, emcs->drafts_uid,
CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN,
CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN);
- camel_object_unref (emcs->drafts_folder);
+ g_object_unref (emcs->drafts_folder);
emcs->drafts_folder = NULL;
g_free (emcs->drafts_uid);
emcs->drafts_uid = NULL;
@@ -251,7 +243,7 @@ composer_send_queued_cb (CamelFolder *folder, CamelMimeMessage *msg, CamelMessag
/* set any replied flags etc */
camel_folder_set_message_flags (emcs->folder, emcs->uid, emcs->flags, emcs->set);
camel_folder_set_message_user_flag (emcs->folder, emcs->uid, "receipt-handled", TRUE);
- camel_object_unref (emcs->folder);
+ g_object_unref (emcs->folder);
emcs->folder = NULL;
g_free (emcs->uid);
emcs->uid = NULL;
@@ -259,7 +251,7 @@ composer_send_queued_cb (CamelFolder *folder, CamelMimeMessage *msg, CamelMessag
gtk_widget_destroy (GTK_WIDGET (send->composer));
- if (send->send && camel_session_is_online (session)) {
+ if (send->send && camel_session_get_online (session)) {
/* queue a message send */
mail_send ();
}
@@ -394,7 +386,7 @@ composer_get_message (EMsgComposer *composer, gboolean save_html_object_data)
e_destination_freev (recipients_bcc);
}
- camel_object_unref (cia);
+ g_object_unref (cia);
post_to_header = e_composer_header_table_get_header (table, E_COMPOSER_HEADER_POST_TO);
if (e_composer_header_get_visible (post_to_header)) {
@@ -529,7 +521,7 @@ em_utils_composer_send_cb (EMsgComposer *composer)
return;
folder = e_mail_local_get_folder (E_MAIL_FOLDER_OUTBOX);
- camel_object_ref (folder);
+ g_object_ref (folder);
/* mail the message */
e_msg_composer_set_mail_sent (composer, TRUE);
@@ -549,8 +541,8 @@ em_utils_composer_send_cb (EMsgComposer *composer)
mail_append_mail (
folder, message, info, composer_send_queued_cb, send);
- camel_object_unref (folder);
- camel_object_unref (message);
+ g_object_unref (folder);
+ g_object_unref (message);
}
struct _save_draft_info {
@@ -585,8 +577,6 @@ save_draft_done (CamelFolder *folder, CamelMimeMessage *msg, CamelMessageInfo *i
if (!ok)
goto done;
- composer_set_no_change (sdi->composer, FALSE, FALSE);
-
if ((emcs = sdi->emcs) == NULL)
emcs = emcs_new ();
@@ -595,7 +585,7 @@ save_draft_done (CamelFolder *folder, CamelMimeMessage *msg, CamelMessageInfo *i
camel_folder_set_message_flags (emcs->drafts_folder, emcs->drafts_uid,
CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN,
CAMEL_MESSAGE_DELETED | CAMEL_MESSAGE_SEEN);
- camel_object_unref (emcs->drafts_folder);
+ g_object_unref (emcs->drafts_folder);
emcs->drafts_folder = NULL;
g_free (emcs->drafts_uid);
emcs->drafts_uid = NULL;
@@ -604,14 +594,14 @@ save_draft_done (CamelFolder *folder, CamelMimeMessage *msg, CamelMessageInfo *i
if (emcs->folder) {
/* set the replied flags etc */
camel_folder_set_message_flags (emcs->folder, emcs->uid, emcs->flags, emcs->set);
- camel_object_unref (emcs->folder);
+ g_object_unref (emcs->folder);
emcs->folder = NULL;
g_free (emcs->uid);
emcs->uid = NULL;
}
if (appended_uid) {
- camel_object_ref (folder);
+ g_object_ref (folder);
emcs->drafts_folder = folder;
emcs->drafts_uid = g_strdup (appended_uid);
}
@@ -634,7 +624,7 @@ save_draft_folder (gchar *uri, CamelFolder *folder, gpointer data)
if (folder) {
*save = folder;
- camel_object_ref (folder);
+ g_object_ref (folder);
}
}
@@ -680,7 +670,7 @@ em_utils_composer_save_draft_cb (EMsgComposer *composer)
if (!folder || !account->enabled) {
if (e_alert_run_dialog_for_args ((GtkWindow *)composer, "mail:ask-default-drafts", NULL) != GTK_RESPONSE_YES) {
g_object_unref(composer);
- camel_object_unref(msg);
+ g_object_unref (msg);
if (sdi->emcs)
emcs_unref(sdi->emcs);
g_free(sdi);
@@ -688,19 +678,19 @@ em_utils_composer_save_draft_cb (EMsgComposer *composer)
}
folder = local_drafts_folder;
- camel_object_ref (local_drafts_folder);
+ g_object_ref (local_drafts_folder);
}
} else {
folder = local_drafts_folder;
- camel_object_ref (folder);
+ g_object_ref (folder);
}
info = camel_message_info_new(NULL);
camel_message_info_set_flags(info, CAMEL_MESSAGE_DRAFT | CAMEL_MESSAGE_SEEN, ~0);
mail_append_mail (folder, msg, info, save_draft_done, sdi);
- camel_object_unref (folder);
- camel_object_unref (msg);
+ g_object_unref (folder);
+ g_object_unref (msg);
}
static void
@@ -794,8 +784,7 @@ em_utils_compose_new_message_with_mailto (const gchar *url, const gchar *fromuri
composer_set_no_change (composer, TRUE, url == NULL);
- gtk_widget_show ((GtkWidget *) composer);
- gdk_window_raise (((GtkWidget *) composer)->window);
+ gtk_window_present (GTK_WINDOW (composer));
return composer;
}
@@ -851,7 +840,7 @@ replace_variables (GSList *clues, CamelMimeMessage *message, gchar **pstr)
}
if (!count1) {
- const CamelInternetAddress *to;
+ CamelInternetAddress *to;
const gchar *name, *addr;
to = camel_mime_message_get_recipients (message, CAMEL_RECIPIENT_TYPE_TO);
@@ -905,10 +894,11 @@ traverse_parts (GSList *clues, CamelMimeMessage *message, CamelDataWrapper *cont
} else if (CAMEL_IS_MIME_PART (content)) {
CamelMimePart *part = CAMEL_MIME_PART (content);
CamelContentType *type;
- CamelStream *mem;
+ CamelStream *stream;
+ GByteArray *byte_array;
gchar *str;
- content = camel_medium_get_content_object (CAMEL_MEDIUM (part));
+ content = camel_medium_get_content (CAMEL_MEDIUM (part));
if (!content)
return;
@@ -921,17 +911,18 @@ traverse_parts (GSList *clues, CamelMimeMessage *message, CamelDataWrapper *cont
if (!camel_content_type_is (type, "text", "*"))
return;
- mem = camel_stream_mem_new ();
- camel_data_wrapper_decode_to_stream (content, mem);
+ byte_array = g_byte_array_new ();
+ stream = camel_stream_mem_new_with_byte_array (byte_array);
+ camel_data_wrapper_decode_to_stream (content, stream);
- str = g_strndup ((const gchar *)((CamelStreamMem *) mem)->buffer->data, ((CamelStreamMem *) mem)->buffer->len);
- camel_object_unref (mem);
+ str = g_strndup ((gchar *) byte_array->data, byte_array->len);
+ g_object_unref (stream);
if (replace_variables (clues, message, &str)) {
- mem = camel_stream_mem_new_with_buffer (str, strlen (str));
- camel_stream_reset (mem);
- camel_data_wrapper_construct_from_stream (content, mem);
- camel_object_unref (mem);
+ stream = camel_stream_mem_new_with_buffer (str, strlen (str));
+ camel_stream_reset (stream);
+ camel_data_wrapper_construct_from_stream (content, stream);
+ g_object_unref (stream);
}
g_free (str);
@@ -955,7 +946,7 @@ edit_message (CamelMimeMessage *message, CamelFolder *drafts, const gchar *uid)
clue_list = gconf_client_get_list ( gconf, GCONF_KEY_TEMPLATE_PLACEHOLDERS, GCONF_VALUE_STRING, NULL );
g_object_unref (gconf);
- traverse_parts (clue_list, message, camel_medium_get_content_object (CAMEL_MEDIUM (message)));
+ traverse_parts (clue_list, message, camel_medium_get_content (CAMEL_MEDIUM (message)));
g_slist_foreach (clue_list, (GFunc) g_free, NULL);
g_slist_free (clue_list);
@@ -970,7 +961,7 @@ edit_message (CamelMimeMessage *message, CamelFolder *drafts, const gchar *uid)
emcs_set_drafts_info (emcs, drafts, uid);
}
- composer_set_no_change (composer, TRUE, FALSE);
+ composer_set_no_change (composer, TRUE, TRUE);
gtk_widget_show (GTK_WIDGET (composer));
@@ -1090,7 +1081,7 @@ composer_destroy_fad_cb (gpointer user_data, GObject *deadbeef)
struct forward_attached_data *fad = (struct forward_attached_data*) user_data;
if (fad) {
- camel_object_unref (fad->folder);
+ g_object_unref (fad->folder);
em_utils_uids_free (fad->uids);
g_free (fad);
}
@@ -1104,7 +1095,7 @@ setup_forward_attached_callbacks (EMsgComposer *composer, CamelFolder *folder, G
if (!composer || !folder || !uids || !uids->len)
return;
- camel_object_ref (folder);
+ g_object_ref (folder);
fad = g_new0 (struct forward_attached_data, 1);
fad->folder = folder;
@@ -1205,7 +1196,7 @@ forward_non_attached (CamelFolder *folder, GPtrArray *uids, GPtrArray *messages,
composer = create_new_composer (subject, fromuri);
if (composer) {
- if (CAMEL_IS_MULTIPART(camel_medium_get_content_object((CamelMedium *)message)))
+ if (CAMEL_IS_MULTIPART(camel_medium_get_content ((CamelMedium *)message)))
e_msg_composer_add_message_attachments(composer, message, FALSE);
e_msg_composer_set_body_text (composer, text, len);
@@ -1310,7 +1301,7 @@ em_utils_forward_message (CamelMimeMessage *message, const gchar *fromuri)
subject = mail_tool_generate_forward_subject (message);
composer = forward_attached (NULL, NULL, messages, part, subject, fromuri);
- camel_object_unref (part);
+ g_object_unref (part);
g_free (subject);
break;
case MAIL_CONFIG_FORWARD_INLINE:
@@ -1448,23 +1439,23 @@ em_utils_handle_receipt (CamelFolder *folder, const gchar *uid, CamelMimeMessage
return;
if (camel_message_info_user_flag(info, "receipt-handled")) {
- camel_message_info_free(info);
+ camel_folder_free_message_info (folder, info);
return;
}
if (msg == NULL) {
mail_get_messagex(folder, uid, emu_handle_receipt_message, NULL, mail_msg_unordered_push);
- camel_message_info_free(info);
+ camel_folder_free_message_info (folder, info);
return;
}
if ((addr = camel_medium_get_header((CamelMedium *)msg, "Disposition-Notification-To")) == NULL) {
- camel_message_info_free(info);
+ camel_folder_free_message_info (folder, info);
return;
}
camel_message_info_set_user_flag(info, "receipt-handled", TRUE);
- camel_message_info_free(info);
+ camel_folder_free_message_info (folder, info);
account = em_utils_guess_account_with_recipients (msg, folder);
@@ -1551,14 +1542,14 @@ em_utils_send_receipt (CamelFolder *folder, CamelMimeMessage *message)
_("Your message to %s about \"%s\" on %s has been read."),
self_address, message_subject, message_date);
camel_data_wrapper_construct_from_stream (receipt_text, stream);
- camel_object_unref (stream);
+ g_object_unref (stream);
part = camel_mime_part_new ();
- camel_medium_set_content_object (CAMEL_MEDIUM (part), receipt_text);
+ camel_medium_set_content (CAMEL_MEDIUM (part), receipt_text);
camel_mime_part_set_encoding (part, CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE);
- camel_object_unref (receipt_text);
+ g_object_unref (receipt_text);
camel_multipart_add_part (body, part);
- camel_object_unref (part);
+ g_object_unref (part);
/* Create the machine-readable receipt */
receipt_data = camel_data_wrapper_new ();
@@ -1579,21 +1570,21 @@ em_utils_send_receipt (CamelFolder *folder, CamelMimeMessage *message)
"Disposition: manual-action/MDN-sent-manually; displayed\n",
ua, recipient, message_id);
camel_data_wrapper_construct_from_stream (receipt_data, stream);
- camel_object_unref (stream);
+ g_object_unref (stream);
g_free (ua);
g_free (recipient);
g_free (fake_msgid);
- camel_medium_set_content_object (CAMEL_MEDIUM (part), receipt_data);
+ camel_medium_set_content (CAMEL_MEDIUM (part), receipt_data);
camel_mime_part_set_encoding (part, CAMEL_TRANSFER_ENCODING_7BIT);
- camel_object_unref (receipt_data);
+ g_object_unref (receipt_data);
camel_multipart_add_part (body, part);
- camel_object_unref (part);
+ g_object_unref (part);
/* Finish creating the message */
- camel_medium_set_content_object (CAMEL_MEDIUM (receipt), CAMEL_DATA_WRAPPER (body));
- camel_object_unref (body);
+ camel_medium_set_content (CAMEL_MEDIUM (receipt), CAMEL_DATA_WRAPPER (body));
+ g_object_unref (body);
/* Translators: %s is the subject of the email message */
receipt_subject = g_strdup_printf (_("Delivery Notification for: \"%s\""), message_subject);
@@ -1603,12 +1594,12 @@ em_utils_send_receipt (CamelFolder *folder, CamelMimeMessage *message)
addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (addr), self_address);
camel_mime_message_set_from (receipt, addr);
- camel_object_unref (addr);
+ g_object_unref (addr);
addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (addr), receipt_address);
camel_mime_message_set_recipients (receipt, CAMEL_RECIPIENT_TYPE_TO, addr);
- camel_object_unref (addr);
+ g_object_unref (addr);
camel_medium_set_header (CAMEL_MEDIUM (receipt), "Return-Path", "<>");
camel_medium_set_header (CAMEL_MEDIUM (receipt), "X-Evolution-Account", account->uid);
@@ -1707,7 +1698,12 @@ reply_get_composer (CamelMimeMessage *message, EAccount *account,
gchar *post;
if (folder) {
- store_url = camel_url_to_string (CAMEL_SERVICE (folder->parent_store)->url, CAMEL_URL_HIDE_ALL);
+ CamelStore *parent_store;
+
+ parent_store = camel_folder_get_parent_store (folder);
+ store_url = camel_url_to_string (
+ CAMEL_SERVICE (parent_store)->url,
+ CAMEL_URL_HIDE_ALL);
if (store_url[strlen (store_url) - 1] == '/')
store_url[strlen (store_url)-1] = '\0';
}
@@ -1744,7 +1740,7 @@ reply_get_composer (CamelMimeMessage *message, EAccount *account,
static void
get_reply_sender (CamelMimeMessage *message, CamelInternetAddress *to, CamelNNTPAddress *postto)
{
- const CamelInternetAddress *reply_to;
+ CamelInternetAddress *reply_to;
const gchar *name, *addr, *posthdr;
gint i;
@@ -1813,7 +1809,7 @@ get_reply_list (CamelMimeMessage *message, CamelInternetAddress *to)
}
static void
-concat_unique_addrs (CamelInternetAddress *dest, const CamelInternetAddress *src, GHashTable *rcpt_hash)
+concat_unique_addrs (CamelInternetAddress *dest, CamelInternetAddress *src, GHashTable *rcpt_hash)
{
const gchar *name, *addr;
gint i;
@@ -1829,7 +1825,7 @@ concat_unique_addrs (CamelInternetAddress *dest, const CamelInternetAddress *src
static void
get_reply_all (CamelMimeMessage *message, CamelInternetAddress *to, CamelInternetAddress *cc, CamelNNTPAddress *postto)
{
- const CamelInternetAddress *reply_to, *to_addrs, *cc_addrs;
+ CamelInternetAddress *reply_to, *to_addrs, *cc_addrs;
const gchar *name, *addr, *posthdr;
GHashTable *rcpt_hash;
gint i;
@@ -1913,7 +1909,7 @@ typedef void (* AttribFormatter) (GString *str, const gchar *attr, CamelMimeMess
static void
format_sender (GString *str, const gchar *attr, CamelMimeMessage *message)
{
- const CamelInternetAddress *sender;
+ CamelInternetAddress *sender;
const gchar *name, *addr = NULL;
sender = camel_mime_message_get_from (message);
@@ -2108,7 +2104,7 @@ composer_set_body (EMsgComposer *composer, CamelMimeMessage *message, EMFormat *
/* attach the original message as an attachment */
part = mail_tool_make_message_attachment (message);
e_msg_composer_attach (composer, part);
- camel_object_unref (part);
+ g_object_unref (part);
break;
case MAIL_CONFIG_REPLY_OUTLOOK:
text = em_utils_message_to_html (message, _("-----Original Message-----"), EM_FORMAT_QUOTE_HEADERS, &len, source, start_bottom ? "<BR>" : NULL, &validity_found);
@@ -2250,9 +2246,9 @@ em_utils_reply_to_message(CamelFolder *folder, const gchar *uid, CamelMimeMessag
e_msg_composer_add_message_attachments (composer, message, TRUE);
if (postto)
- camel_object_unref(postto);
- camel_object_unref(to);
- camel_object_unref(cc);
+ g_object_unref (postto);
+ g_object_unref (to);
+ g_object_unref (cc);
composer_set_body (composer, message, source);
diff --git a/mail/em-composer-utils.h b/mail/em-composer-utils.h
index 92e7e182f4..1eb0d1bd30 100644
--- a/mail/em-composer-utils.h
+++ b/mail/em-composer-utils.h
@@ -24,9 +24,6 @@
#ifndef __EM_COMPOSER_UTILS_H__
#define __EM_COMPOSER_UTILS_H__
-#include <glib.h>
-#include <camel/camel-nntp-address.h>
-
#include <em-format/em-format.h>
#include <composer/e-msg-composer.h>
diff --git a/mail/em-config.c b/mail/em-config.c
index 4b1e835627..4e9d52ce61 100644
--- a/mail/em-config.c
+++ b/mail/em-config.c
@@ -33,17 +33,6 @@
#include "em-utils.h"
#include "em-composer-utils.h"
-#include <camel/camel-store.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-string-utils.h>
-#include <camel/camel-mime-utils.h>
-#include <camel/camel-mime-part.h>
-#include <camel/camel-url.h>
-
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-vtrash-folder.h>
-
#include <gconf/gconf.h>
#include <gconf/gconf-client.h>
@@ -104,7 +93,7 @@ emp_target_free(EConfig *ep, EConfigTarget *t)
EMConfigTargetFolder *s = (EMConfigTargetFolder *)t;
g_free(s->uri);
- camel_object_unref(s->folder);
+ g_object_unref (s->folder);
break; }
case EM_CONFIG_TARGET_PREFS: {
EMConfigTargetPrefs *s = (EMConfigTargetPrefs *)t;
@@ -195,7 +184,7 @@ em_config_target_new_folder(EMConfig *emp, CamelFolder *folder, const gchar *uri
t->uri = g_strdup(uri);
t->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
return t;
}
diff --git a/mail/em-config.h b/mail/em-config.h
index 62e74bea51..003498d2f6 100644
--- a/mail/em-config.h
+++ b/mail/em-config.h
@@ -23,9 +23,8 @@
#ifndef __EM_CONFIG_H__
#define __EM_CONFIG_H__
-#include <glib-object.h>
+#include <camel/camel.h>
#include <gconf/gconf-client.h>
-#include <camel/camel-folder.h>
#include <libedataserver/e-account.h>
#include "e-util/e-config.h"
diff --git a/mail/em-event.c b/mail/em-event.c
index 7cb4c19a1e..a84eb92264 100644
--- a/mail/em-event.c
+++ b/mail/em-event.c
@@ -32,17 +32,6 @@
#include "em-event.h"
#include "composer/e-msg-composer.h"
-#include <camel/camel-store.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-string-utils.h>
-#include <camel/camel-mime-utils.h>
-#include <camel/camel-mime-part.h>
-#include <camel/camel-url.h>
-
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-vtrash-folder.h>
-
static GObjectClass *eme_parent;
static EMEvent *em_event;
@@ -74,9 +63,9 @@ eme_target_free(EEvent *ep, EEventTarget *t)
EMEventTargetMessage *s = (EMEventTargetMessage *)t;
if (s->folder)
- camel_object_unref(s->folder);
+ g_object_unref (s->folder);
if (s->message)
- camel_object_unref(s->message);
+ g_object_unref (s->message);
g_free(s->uid);
if (s->composer)
g_object_unref (s->composer);
@@ -173,10 +162,10 @@ em_event_target_new_message(EMEvent *eme, CamelFolder *folder, CamelMimeMessage
t->uid = g_strdup (uid);
t->folder = folder;
if (folder)
- camel_object_ref(folder);
+ g_object_ref (folder);
t->message = message;
if (message)
- camel_object_ref(message);
+ g_object_ref (message);
t->target.mask = ~flags;
if (composer)
t->composer = g_object_ref(G_OBJECT(composer));
diff --git a/mail/em-filter-folder-element.c b/mail/em-filter-folder-element.c
index 3b80e0da77..f4584c65b1 100644
--- a/mail/em-filter-folder-element.c
+++ b/mail/em-filter-folder-element.c
@@ -230,6 +230,7 @@ xml_decode(EFilterElement *fe, xmlNodePtr node)
static void
folder_selected(EMFolderSelectionButton *button, EMFilterFolderElement *ff)
{
+ GtkWidget *toplevel;
const gchar *uri;
uri = em_folder_selection_button_get_selection(button);
@@ -240,7 +241,8 @@ folder_selected(EMFolderSelectionButton *button, EMFilterFolderElement *ff)
else
ff->uri = uri != NULL ? em_uri_from_camel (uri) : NULL;
- gdk_window_raise(GTK_WIDGET(gtk_widget_get_ancestor(GTK_WIDGET(button), GTK_TYPE_WINDOW))->window);
+ toplevel = gtk_widget_get_toplevel (GTK_WIDGET (button));
+ gtk_window_present (GTK_WINDOW (toplevel));
}
static GtkWidget *
diff --git a/mail/em-filter-rule.c b/mail/em-filter-rule.c
index 41a6ba6640..b8ae4d66d7 100644
--- a/mail/em-filter-rule.c
+++ b/mail/em-filter-rule.c
@@ -480,13 +480,13 @@ more_parts(GtkWidget *button, struct _rule_data *data)
new = em_filter_context_next_action((EMFilterContext *)data->f, NULL);
if (new) {
GtkWidget *w;
- guint16 rows;
+ guint rows;
new = e_filter_part_clone(new);
em_filter_rule_add_action((EMFilterRule *)data->fr, new);
w = get_rule_part_widget(data->f, new, data->fr);
- rows = GTK_TABLE(data->parts)->nrows;
+ g_object_get (data->parts, "n-rows", &rows, NULL);
gtk_table_resize(GTK_TABLE(data->parts), rows + 1, 2);
attach_rule(w, data, new, rows);
@@ -503,9 +503,12 @@ more_parts(GtkWidget *button, struct _rule_data *data)
GtkAdjustment *adjustment;
adjustment = gtk_scrolled_window_get_vadjustment (GTK_SCROLLED_WINDOW (w));
- if (adjustment)
- gtk_adjustment_set_value (adjustment, adjustment->upper);
+ if (adjustment) {
+ gdouble upper;
+ upper = gtk_adjustment_get_upper (adjustment);
+ gtk_adjustment_set_value (adjustment, upper);
+ }
}
}
}
diff --git a/mail/em-filter-source-element.c b/mail/em-filter-source-element.c
index d080076725..bf185ce60f 100644
--- a/mail/em-filter-source-element.c
+++ b/mail/em-filter-source-element.c
@@ -30,9 +30,9 @@
#include "em-filter-source-element.h"
#include <gtk/gtk.h>
+#include <camel/camel.h>
#include <libedataserver/e-sexp.h>
#include <libedataserver/e-account-list.h>
-#include <camel/camel-url.h>
#include "filter/e-filter-part.h"
@@ -44,7 +44,7 @@ static gint source_eq(EFilterElement *fe, EFilterElement *cm);
static void xml_create(EFilterElement *fe, xmlNodePtr node);
static xmlNodePtr xml_encode(EFilterElement *fe);
static gint xml_decode(EFilterElement *fe, xmlNodePtr node);
-static EFilterElement *clone(EFilterElement *fe);
+static EFilterElement *filter_clone(EFilterElement *fe);
static GtkWidget *get_widget(EFilterElement *fe);
static void build_code(EFilterElement *fe, GString *out, EFilterPart *ff);
static void format_sexp(EFilterElement *, GString *);
@@ -106,7 +106,7 @@ em_filter_source_element_class_init(EMFilterSourceElementClass *klass)
fe_class->xml_create = xml_create;
fe_class->xml_encode = xml_encode;
fe_class->xml_decode = xml_decode;
- fe_class->clone = clone;
+ fe_class->clone = filter_clone;
fe_class->get_widget = get_widget;
fe_class->build_code = build_code;
fe_class->format_sexp = format_sexp;
@@ -212,7 +212,7 @@ xml_decode(EFilterElement *fe, xmlNodePtr node)
}
static EFilterElement *
-clone(EFilterElement *fe)
+filter_clone(EFilterElement *fe)
{
EMFilterSourceElement *fs = (EMFilterSourceElement *)fe;
EMFilterSourceElement *cpy = em_filter_source_element_new();
diff --git a/mail/em-folder-browser.c.dead b/mail/em-folder-browser.c.dead
deleted file mode 100644
index 8156c4fd32..0000000000
--- a/mail/em-folder-browser.c.dead
+++ /dev/null
@@ -1,1089 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Michael Zucchi <notzed@ximian.com>
- * Jeffrey Stedfast <fejj@ximian.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include <string.h>
-
-#include <gtk/gtk.h>
-#include <gdk/gdkkeysyms.h>
-#include <gconf/gconf-client.h>
-
-#ifdef G_OS_WIN32
-/* Work around 'DATADIR' and 'interface' lossage in <windows.h> */
-#define DATADIR crap_DATADIR
-#include <windows.h>
-#undef DATADIR
-#undef interface
-#endif
-
-#include "mail-mt.h"
-#include "mail-ops.h"
-#include "mail-tools.h"
-#include "mail-config.h"
-
-#include <e-util/e-dialog-utils.h>
-#include <e-util/e-icon-factory.h>
-
-#include <camel/camel-stream.h>
-#include <camel/camel-url.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-vee-store.h>
-#include <camel/camel-operation.h>
-
-/* for efilterbar stuff */
-#include <libedataserver/e-sexp.h>
-#include "mail-vfolder.h"
-#include "em-vfolder-rule.h"
-#include "em-folder-tree.h"
-#include <misc/e-filter-bar.h>
-#include <camel/camel-search-private.h>
-#include <camel/camel-store.h>
-
-#include "e-util/e-dialog-utils.h"
-#include "e-util/e-util.h"
-#include "e-util/e-error.h"
-#include "e-util/e-util-private.h"
-#include "e-util/e-util-labels.h"
-#include "e-mail-search-bar.h"
-#include "em-utils.h"
-#include "em-composer-utils.h"
-#include "em-format-html-display.h"
-#include "em-format-html-print.h"
-#include "em-folder-browser.h"
-#include "em-folder-properties.h"
-#include "em-folder-utils.h"
-#include "em-subscribe-editor.h"
-#include "em-menu.h"
-#include "em-event.h"
-#include "message-list.h"
-
-#include "mail-component.h"
-#include "mail-ops.h"
-
-#include "evolution-shell-component-utils.h" /* Pixmap stuff, sigh */
-
-#include <gtkhtml/gtkhtml.h>
-
-extern CamelSession *session;
-CamelStore *vfolder_store; /* the 1 static vfolder store */
-
-#define d(x)
-
-struct _EMFolderBrowserPrivate {
- GtkWidget *preview; /* container for message display */
- GtkWidget *scroll;
- GtkWidget *search_bar;
-
- GtkWidget *subscribe_editor;
-
- guint search_menu_activated_id;
- guint search_activated_id;
-
- double default_scroll_position;
- guint idle_scroll_id;
- guint list_scrolled_id;
-
- guint vpane_resize_id;
- guint list_built_id; /* hook onto list-built for delayed 'select first unread' stuff */
-
- gchar *select_uid;
- guint folder_changed_id;
-
- guint show_wide:1;
- guint suppress_message_selection:1;
- gboolean scope_restricted;
-
- EMMenu *menu; /* toplevel menu manager */
-
- guint labels_change_notify_id; /* mail_config's notify id */
- guint labels_change_idle_id; /* rebuild menu on idle, when all know about a change */
-};
-
-typedef struct EMFBSearchBarItem {
- ESearchBarItem search;
- const gchar *image;
-} EMFBSearchBarItem;
-
-static void emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, gint state);
-static void emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri);
-static void emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri);
-
-/* FilterBar stuff ... */
-static void emfb_search_config_search(EFilterBar *efb, FilterRule *rule, gint id, const gchar *query, gpointer data);
-static void emfb_search_menu_activated(ESearchBar *esb, gint id, EMFolderBrowser *emfb);
-static void emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb);
-static void emfb_search_search_cleared(ESearchBar *esb);
-
-static void emfb_list_message_selected (MessageList *ml, const gchar *uid, EMFolderBrowser *emfb);
-
-static void emfb_expand_all_threads(BonoboUIComponent *uid, gpointer data, const gchar *path);
-
-static const EMFolderViewEnable emfb_enable_map[] = {
- { "EditInvertSelection", EM_POPUP_SELECT_FOLDER },
- { "EditSelectAll", EM_POPUP_SELECT_FOLDER },
- { "EditSelectThread", EM_FOLDER_VIEW_SELECT_THREADED },
- { "EditSelectSubthread", EM_FOLDER_VIEW_SELECT_THREADED },
- { "FolderExpunge", EM_POPUP_SELECT_FOLDER },
- { "FolderCopy", EM_POPUP_SELECT_FOLDER },
- { "FolderMove", EM_POPUP_SELECT_FOLDER },
- { "FolderDelete", EM_POPUP_SELECT_FOLDER },
- { "FolderRename", EM_POPUP_SELECT_FOLDER },
- { "FolderRefresh", EM_POPUP_SELECT_FOLDER },
- { "ChangeFolderProperties", EM_POPUP_SELECT_FOLDER },
- { "MessageMarkAllAsRead", EM_POPUP_SELECT_FOLDER },
- { "ViewHideSelected", EM_POPUP_SELECT_MANY },
- { "ViewThreadsCollapseAll", EM_FOLDER_VIEW_SELECT_THREADED},
- { "ViewThreadsExpandAll", EM_FOLDER_VIEW_SELECT_THREADED},
- { NULL },
-};
-
-enum {
- ACCOUNT_SEARCH_ACTIVATED,
- ACCOUNT_SEARCH_CLEARED,
- LAST_SIGNAL
-};
-
-static guint folder_browser_signals [LAST_SIGNAL] = {0, };
-
-enum {
- ESB_SAVE
-};
-
-static ESearchBarItem emfb_search_items[] = {
- E_FILTERBAR_ADVANCED,
- { NULL, 0, 0 },
- E_FILTERBAR_SAVE,
- E_FILTERBAR_EDIT,
- { NULL, 0, 0 },
- { (gchar *) N_("C_reate Search Folder From Search..."), ESB_SAVE, 0},
- { NULL, -1, 0 }
-};
-
-/* IDs and option items for the ESearchBar */
-enum {
- VIEW_ALL_MESSAGES,
- VIEW_UNREAD_MESSAGES,
- VIEW_READ_MESSAGES,
- VIEW_RECENT_MESSAGES,
- VIEW_LAST_FIVE_DAYS,
- VIEW_WITH_ATTACHMENTS,
- VIEW_NOT_JUNK,
- VIEW_NO_LABEL,
- VIEW_LABEL,
- VIEW_ANY_FIELD_CONTAINS,
- VIEW_MESSAGES_MARKED_AS_IMPORTANT,
- VIEW_CUSTOMIZE
-};
-
-/* label IDs are set above this number */
-#define VIEW_ITEMS_MASK 63
-
-static ESearchBarItem emfb_search_scope_items[] = {
- E_FILTERBAR_CURRENT_FOLDER,
- E_FILTERBAR_CURRENT_ACCOUNT,
- E_FILTERBAR_ALL_ACCOUNTS,
- { NULL, -1, 0 }
-};
-
-static EMFolderViewClass *emfb_parent;
-
-//static void
-//html_scroll (GtkHTML *html,
-// GtkOrientation orientation,
-// GtkScrollType scroll_type,
-// gfloat position,
-// EMFolderBrowser *emfb)
-//
-//{
-// if (html->binding_handled || orientation != GTK_ORIENTATION_VERTICAL || !mail_config_get_enable_magic_spacebar ())
-// return;
-//
-// if (scroll_type == GTK_SCROLL_PAGE_FORWARD) {
-// gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list);
-// message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN);
-// } else if (scroll_type == GTK_SCROLL_PAGE_BACKWARD) {
-// gtk_widget_grab_focus ((GtkWidget *)((EMFolderView *) emfb)->list);
-// message_list_select(((EMFolderView *) emfb)->list, MESSAGE_LIST_SELECT_NEXT, 0, CAMEL_MESSAGE_SEEN);
-// }
-//}
-
-static void
-emfb_init(GObject *o)
-{
- EMFolderBrowser *emfb = (EMFolderBrowser *)o;
- RuleContext *search_context = mail_component_peek_search_context (mail_component_peek ());
- struct _EMFolderBrowserPrivate *p;
- GtkWidget *html;
-
- EMEvent *eme;
- EMEventTargetFolderBrowser *target;
-
- p = emfb->priv = g_malloc0(sizeof(struct _EMFolderBrowserPrivate));
-
- emfb->view.preview_active = TRUE;
- emfb->view.list_active = TRUE;
-
-// g_signal_connect_after (((EMFormatHTML *)(emfb->view.preview))->html, "scroll", G_CALLBACK (html_scroll), emfb);
-
-// g_slist_foreach (emfb->view.ui_files, free_one_ui_file, NULL);
-// g_slist_free(emfb->view.ui_files);
-
-// emfb->view.ui_files = g_slist_append(NULL,
-// g_build_filename (EVOLUTION_UIDIR,
-// "evolution-mail-global.xml",
-// NULL));
-// emfb->view.ui_files = g_slist_append(emfb->view.ui_files,
-// g_build_filename (EVOLUTION_UIDIR,
-// "evolution-mail-list.xml",
-// NULL));
-// emfb->view.ui_files = g_slist_append(emfb->view.ui_files,
-// g_build_filename (EVOLUTION_UIDIR,
-// "evolution-mail-message.xml",
-// NULL));
-
- emfb->view.enable_map = g_slist_prepend(emfb->view.enable_map, (gpointer)emfb_enable_map);
-
-// if (search_context) {
-// const gchar *systemrules = g_object_get_data (G_OBJECT (search_context), "system");
-// const gchar *userrules = g_object_get_data (G_OBJECT (search_context), "user");
-// EFilterBar *efb;
-// GConfClient *gconf;
-//
-// emfb->search = e_filter_bar_new(search_context, systemrules, userrules, emfb_search_config_search, emfb);
-// efb = (EFilterBar *)emfb->search;
-// efb->account_search_vf = NULL;
-// efb->all_account_search_vf = NULL;
-// efb->account_search_cancel = NULL;
-// e_search_bar_set_menu ((ESearchBar *)emfb->search, emfb_search_items);
-// e_search_bar_set_scopeoption ((ESearchBar *)emfb->search, emfb_search_scope_items);
-// e_search_bar_scope_enable ((ESearchBar *)emfb->search, E_FILTERBAR_CURRENT_MESSAGE_ID, FALSE);
-// emfb->priv->scope_restricted = TRUE;
-// g_signal_connect(emfb, "realize", G_CALLBACK(emfb_realize), NULL);
-// gtk_widget_show((GtkWidget *)emfb->search);
-//
-// p->search_menu_activated_id = g_signal_connect(emfb->search, "menu_activated", G_CALLBACK(emfb_search_menu_activated), emfb);
-// p->search_activated_id = g_signal_connect(emfb->search, "search_activated", G_CALLBACK(emfb_search_search_activated), emfb);
-// g_signal_connect(emfb->search, "search_cleared", G_CALLBACK(emfb_search_search_cleared), NULL);
-//
-// gtk_box_pack_start((GtkBox *)emfb, (GtkWidget *)emfb->search, FALSE, TRUE, 0);
-//
-// gconf = mail_config_get_gconf_client ();
-// emfb->priv->labels_change_notify_id = gconf_client_notify_add (gconf, E_UTIL_LABELS_GCONF_KEY, gconf_labels_changed, emfb, NULL, NULL);
-// }
-//
-// emfb->priv->show_wide = gconf_client_get_bool(mail_config_get_gconf_client(), "/apps/evolution/mail/display/show_wide", NULL);
-// emfb->vpane = emfb->priv->show_wide?gtk_hpaned_new():gtk_vpaned_new();
-//
-// g_signal_connect(emfb->vpane, "realize", G_CALLBACK(emfb_pane_realised), emfb);
-// emfb->priv->vpane_resize_id = g_signal_connect(emfb->vpane, "button_release_event", G_CALLBACK(emfb_pane_button_release_event), emfb);
-//
-// gtk_widget_show(emfb->vpane);
-//
-// gtk_box_pack_start_defaults((GtkBox *)emfb, emfb->vpane);
-//
-// gtk_paned_pack1 (GTK_PANED (emfb->vpane), GTK_WIDGET (emfb->view.list), FALSE, FALSE);
-// gtk_widget_show((GtkWidget *)emfb->view.list);
-//
-// /* currently: just use a scrolledwindow for preview widget */
-// p->scroll = gtk_scrolled_window_new(NULL, NULL);
-// gtk_scrolled_window_set_policy((GtkScrolledWindow *)p->scroll, GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
-// gtk_scrolled_window_set_shadow_type((GtkScrolledWindow *)p->scroll, GTK_SHADOW_IN);
-// gtk_widget_show(p->scroll);
-//
-// p->preview = gtk_vbox_new (FALSE, 6);
-// gtk_container_add((GtkContainer *)p->scroll, (GtkWidget *)emfb->view.preview->formathtml.html);
-// gtk_widget_show((GtkWidget *)emfb->view.preview->formathtml.html);
-// gtk_box_pack_start ((GtkBox *)p->preview, p->scroll, TRUE, TRUE, 0);
-// gtk_box_pack_start ((GtkBox *)p->preview, em_format_html_get_search_dialog (emfb->view.preview), FALSE, FALSE, 0);
-// gtk_paned_pack2 (GTK_PANED (emfb->vpane), p->preview, TRUE, FALSE);
-// gtk_widget_show(p->preview);
-
- g_signal_connect_swapped (
- p->search_bar, "changed",
- G_CALLBACK (em_format_redraw), emfb->view.preview);
-
- /** @HookPoint-EMFolderBrower: Folder Browser
- * @Id: emfb.created
- * @Class: org.gnome.evolution.mail.events:1.0
- * @Target: EMFolderBrowser
- */
-
- eme = em_event_peek();
- target = em_event_target_new_folder_browser (eme, emfb);
-
- e_event_emit((EEvent *)eme, "emfb.created", (EEventTarget *)target);
-
- g_signal_connect (((EMFolderView *) emfb)->list, "message_selected", G_CALLBACK (emfb_list_message_selected), emfb);
-
-}
-
-static void
-emfb_destroy(GtkObject *o)
-{
- EMFolderBrowser *emfb = (EMFolderBrowser *)o;
-
- if (emfb->priv->list_built_id) {
- g_signal_handler_disconnect(((EMFolderView *)emfb)->list, emfb->priv->list_built_id);
- emfb->priv->list_built_id = 0;
- }
-
- if (emfb->priv->list_scrolled_id) {
- g_signal_handler_disconnect (((EMFolderView *) emfb)->list, emfb->priv->list_scrolled_id);
- emfb->priv->list_scrolled_id = 0;
- }
-
- if (emfb->priv->idle_scroll_id) {
- g_source_remove (emfb->priv->idle_scroll_id);
- emfb->priv->idle_scroll_id = 0;
- }
-
-// if (emfb->view.folder && emfb->priv->folder_changed_id)
-// camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id);
-
- if (emfb->priv->labels_change_notify_id) {
- GConfClient *gconf = mail_config_get_gconf_client ();
-
- if (gconf)
- gconf_client_notify_remove (gconf, emfb->priv->labels_change_notify_id);
-
- emfb->priv->labels_change_notify_id = 0;
- }
-
- if (emfb->priv->labels_change_idle_id) {
- g_source_remove (emfb->priv->labels_change_idle_id);
-
- emfb->priv->labels_change_idle_id = 0;
- }
-
- ((GtkObjectClass *)emfb_parent)->destroy(o);
-}
-
-void em_folder_browser_show_preview(EMFolderBrowser *emfb, gboolean state)
-{
- if ((emfb->view.preview_active ^ state) == 0
- || emfb->view.list == NULL) {
- if (state && emfb->priv->scope_restricted && emfb->view.list->cursor_uid && *(emfb->view.list->cursor_uid)) {
- emfb->priv->scope_restricted = FALSE;
- }
-
- return;
- }
-
- emfb->view.preview_active = state;
-
- if (state) {
- GConfClient *gconf = mail_config_get_gconf_client ();
- gint paned_size /*, y*/;
-
- paned_size = gconf_client_get_int(gconf, emfb->priv->show_wide ? "/apps/evolution/mail/display/hpaned_size":"/apps/evolution/mail/display/paned_size", NULL);
-
- /*y = save_cursor_pos (emfb);*/
- gtk_paned_set_position (GTK_PANED (emfb->vpane), paned_size);
- gtk_widget_show (GTK_WIDGET (emfb->priv->preview));
-
- if (emfb->view.list->cursor_uid) {
- gchar *uid = g_alloca(strlen(emfb->view.list->cursor_uid)+1);
-
- emfb->priv->scope_restricted = FALSE;
- strcpy(uid, emfb->view.list->cursor_uid);
- em_folder_view_set_message(&emfb->view, uid, FALSE);
- }
-
- /* need to load/show the current message? */
- /*do_message_selected (emfb);*/
- /*set_cursor_pos (emfb, y);*/
- } else {
- em_format_format((EMFormat *)emfb->view.preview, NULL, NULL, NULL);
-
- g_free(emfb->view.displayed_uid);
- emfb->view.displayed_uid = NULL;
-
- gtk_widget_hide(emfb->priv->preview);
- emfb->priv->scope_restricted = TRUE;
- /*
- mail_display_set_message (emfb->mail_display, NULL, NULL, NULL);
- emfb_ui_message_loaded (emfb);*/
- }
-
- /* FIXME: need to update menu's to reflect ui changes */
-}
-
-gboolean em_folder_browser_get_wide (EMFolderBrowser *emfb)
-{
- return emfb->priv->show_wide;
-}
-
-/* ********************************************************************** */
-
-/* FIXME: Need to separate system rules from user ones */
-/* FIXME: Ugh! */
-
-static void
-emfb_search_menu_activated(ESearchBar *esb, gint id, EMFolderBrowser *emfb)
-{
- EFilterBar *efb = (EFilterBar *)esb;
-
- d(printf("menu activated\n"));
-
- switch (id) {
- case ESB_SAVE:
- d(printf("Save vfolder\n"));
- if (efb->current_query) {
- FilterRule *rule;
- gchar *name, *text;
-
- /* ensures vfolder is running */
- vfolder_load_storage ();
-
- rule = vfolder_clone_rule (efb->current_query);
- text = e_search_bar_get_text(esb);
- name = g_strdup_printf("%s %s", rule->name, (text&&text[0])?text:"''");
- g_free (text);
- filter_rule_set_name(rule, name);
- g_free (name);
-
- filter_rule_set_source(rule, FILTER_SOURCE_INCOMING);
- em_vfolder_rule_add_source((EMVFolderRule *)rule, emfb->view.folder_uri);
- vfolder_gui_add_rule((EMVFolderRule *)rule);
- }
- break;
- }
-}
-
-struct _setup_msg {
- MailMsg base;
-
- CamelFolder *folder;
- CamelOperation *cancel;
- GList *sources_uri;
- GList *sources_folder;
-};
-
-static gchar *
-vfolder_setup_desc(struct _setup_msg *m)
-{
- return g_strdup(_("Searching"));
-}
-
-static void
-vfolder_setup_exec(struct _setup_msg *m)
-{
- GList *l, *list = NULL;
- CamelFolder *folder;
-
- if (m->cancel)
- camel_operation_register (m->cancel);
-
- d(printf("Setting up Search Folder: %s\n", m->folder->full_name));
-
- l = m->sources_uri;
- while (l) {
- d(printf(" Adding uri: %s\n", (gchar *)l->data));
- folder = mail_tool_uri_to_folder (l->data, 0, &m->base.ex);
- if (folder) {
- list = g_list_append(list, folder);
- } else {
- g_warning("Could not open vfolder source: %s", (gchar *)l->data);
- camel_exception_clear(&m->base.ex);
- }
- l = l->next;
- }
-
- l = m->sources_folder;
- while (l) {
- d(printf(" Adding folder: %s\n", ((CamelFolder *)l->data)->full_name));
- camel_object_ref(l->data);
- list = g_list_append(list, l->data);
- l = l->next;
- }
-
- camel_vee_folder_set_folders((CamelVeeFolder *)m->folder, list);
-
- l = list;
- while (l) {
- camel_object_unref(l->data);
- l = l->next;
- }
- g_list_free(list);
-}
-
-static void
-vfolder_setup_done(struct _setup_msg *m)
-{
-}
-
-static void
-vfolder_setup_free (struct _setup_msg *m)
-{
- GList *l;
-
- camel_object_unref(m->folder);
-
- l = m->sources_uri;
- while (l) {
- g_free(l->data);
- l = l->next;
- }
- g_list_free(m->sources_uri);
-
- l = m->sources_folder;
- while (l) {
- camel_object_unref(l->data);
- l = l->next;
- }
- g_list_free(m->sources_folder);
-}
-
-static MailMsgInfo vfolder_setup_info = {
- sizeof (struct _setup_msg),
- (MailMsgDescFunc) vfolder_setup_desc,
- (MailMsgExecFunc) vfolder_setup_exec,
- (MailMsgDoneFunc) vfolder_setup_done,
- (MailMsgFreeFunc) vfolder_setup_free
-};
-
-/* sources_uri should be camel uri's */
-static gint
-vfolder_setup (CamelFolder *folder, GList *sources_uri, GList *sources_folder, CamelOperation *cancel)
-{
- struct _setup_msg *m;
- gint id;
-
- m = mail_msg_new(&vfolder_setup_info);
- m->folder = folder;
- camel_object_ref(folder);
- m->sources_uri = sources_uri;
- m->sources_folder = sources_folder;
-
- if (cancel) {
- m->cancel = cancel;
- }
-
- id = m->base.seq;
- mail_msg_slow_ordered_push (m);
-
- return id;
-}
-
-static void
-emfb_search_search_activated(ESearchBar *esb, EMFolderBrowser *emfb)
-{
- EMFolderView *emfv = (EMFolderView *) emfb;
- EFilterBar *efb = (EFilterBar *)esb;
- const gchar *view_sexp;
- gchar *search_state = NULL, *folder_uri=NULL;
- gchar *word = NULL, *storeuri = NULL, *search_word = NULL;
- gint id, i;
- CamelFolder *folder;
- CamelStore *store;
- GPtrArray *folders;
- GList *folder_list_account = NULL;
- GList *l, *folder_list = NULL;
- CamelException *ex;
- ex = camel_exception_new ();
-
- if (emfv->list == NULL || emfv->folder == NULL)
- return;
-
- id = e_search_bar_get_search_scope (esb);
-
- switch (id) {
- case E_FILTERBAR_CURRENT_FOLDER_ID:
- g_object_get (esb, "query", &search_word, NULL);
- break;
-
- case E_FILTERBAR_CURRENT_ACCOUNT_ID:
- word = e_search_bar_get_text (esb);
- if (!(word && *word)) {
- if (efb->account_search_vf) {
- camel_object_unref (efb->account_search_vf);
- efb->account_search_vf = NULL;
- if (efb->account_search_cancel) {
- camel_operation_cancel (efb->account_search_cancel);
- camel_operation_unref (efb->account_search_cancel);
- efb->account_search_cancel = NULL;
- }
- }
- g_signal_emit (emfb, folder_browser_signals [ACCOUNT_SEARCH_CLEARED], 0);
- gtk_widget_set_sensitive (esb->scopeoption, TRUE);
- g_free (word);
- word = NULL;
- break;
- }
-
- g_free (word);
- word = NULL;
- g_object_get (esb, "query", &search_word, NULL);
- if (search_word && efb->account_search_vf && !strcmp (search_word, ((CamelVeeFolder *) efb->account_search_vf)->expression) ) {
- break;
- }
- gtk_widget_set_sensitive (esb->scopeoption, FALSE);
-
- /* Disable the folder tree */
- g_signal_emit (emfb, folder_browser_signals [ACCOUNT_SEARCH_ACTIVATED], 0);
-
- if (!efb->account_search_vf) {
- store = emfv->folder->parent_store;
- if (store->folders) {
- folders = camel_object_bag_list(store->folders);
- for (i=0;i<folders->len;i++) {
- folder = folders->pdata[i];
- folder_list_account = g_list_append(folder_list_account, folder);
- }
- }
-
- /* Create a camel vee folder */
- storeuri = g_strdup_printf("vfolder:%s/vfolder", mail_component_peek_base_directory (mail_component_peek ()));
- vfolder_store = camel_session_get_store (session, storeuri, NULL);
- efb->account_search_vf = (CamelVeeFolder *)camel_vee_folder_new (vfolder_store,_("Account Search"),CAMEL_STORE_VEE_FOLDER_AUTO);
-
- /* Set the search expression */
- camel_vee_folder_set_expression (efb->account_search_vf, search_word);
-
- efb->account_search_cancel = camel_operation_new (NULL, NULL);
- vfolder_setup ((CamelFolder *)efb->account_search_vf, NULL, folder_list_account, efb->account_search_cancel);
-
- folder_uri = mail_tools_folder_to_url ((CamelFolder *)efb->account_search_vf);
- emfb_set_search_folder (emfv, (CamelFolder *)efb->account_search_vf, folder_uri);
- g_free (folder_uri);
- g_free (storeuri);
- } else {
- /* cancel previous filling first, if under way */
- if (efb->account_search_cancel) {
- camel_operation_cancel (efb->account_search_cancel);
- camel_operation_unref (efb->account_search_cancel);
- efb->account_search_cancel = NULL;
- }
-
- /* Reuse the existing search folder */
- camel_vee_folder_set_expression((CamelVeeFolder *)efb->account_search_vf, search_word);
- }
-
- break;
-
- case E_FILTERBAR_ALL_ACCOUNTS_ID:
- word = e_search_bar_get_text (esb);
- if (!(word && *word)) {
- if (efb->all_account_search_vf) {
- camel_object_unref (efb->all_account_search_vf);
- efb->all_account_search_vf=NULL;
- if (efb->account_search_cancel) {
- camel_operation_cancel (efb->account_search_cancel);
- camel_operation_unref (efb->account_search_cancel);
- efb->account_search_cancel = NULL;
- }
- }
- g_signal_emit (emfb, folder_browser_signals [ACCOUNT_SEARCH_CLEARED], 0);
- gtk_widget_set_sensitive (esb->scopeoption, TRUE);
- g_free (word);
- word = NULL;
- break;
- }
-
- g_free (word);
- word = NULL;
-
- g_object_get (esb, "query", &search_word, NULL);
-
- if (search_word && efb->all_account_search_vf && !strcmp (search_word, ((CamelVeeFolder *) efb->all_account_search_vf)->expression) ) {
- /* No real search apart from the existing one */
- break;
- }
-
- gtk_widget_set_sensitive (esb->scopeoption, FALSE);
- g_signal_emit (emfb, folder_browser_signals [ACCOUNT_SEARCH_ACTIVATED], 0);
-
- if (!efb->all_account_search_vf) {
- /* Create a camel vee folder */
- storeuri = g_strdup_printf("vfolder:%s/vfolder", mail_component_peek_base_directory (mail_component_peek ()));
- vfolder_store = camel_session_get_store (session, storeuri, NULL);
- efb->all_account_search_vf = (CamelVeeFolder *)camel_vee_folder_new (vfolder_store,_("All Account Search"),CAMEL_STORE_VEE_FOLDER_AUTO);
-
- /* Set sexp */
-
- /* FIXME: there got to be a better way :) */
-
- /* Add the local folders */
- l = mail_vfolder_get_sources_local ();
- while (l) {
- folder = mail_tool_uri_to_folder ((const gchar *)l->data, 0,ex);
- if (folder)
- folder_list = g_list_append(folder_list, folder);
- else {
- g_warning("Could not open vfolder source: %s", (gchar *)l->data);
- camel_exception_clear(ex);
- }
- l = l->next;
- }
-
- /* Add the remote source folder */
- l = mail_vfolder_get_sources_remote ();
- while (l) {
- folder = mail_tool_uri_to_folder ((const gchar *)l->data, 0,ex);
- if (folder)
- folder_list = g_list_append(folder_list, folder);
- else {
- g_warning("Could not open vfolder source: %s", (gchar *)l->data);
- camel_exception_clear(ex);
- }
- l = l->next;
- }
-
- camel_vee_folder_set_expression (efb->all_account_search_vf, search_word);
-
- efb->account_search_cancel = camel_operation_new (NULL, NULL);
- vfolder_setup ((CamelFolder *)efb->all_account_search_vf, NULL, folder_list, efb->account_search_cancel);
-
- folder_uri = mail_tools_folder_to_url ((CamelFolder *)efb->all_account_search_vf);
-
- emfb_set_search_folder (emfv, (CamelFolder *)efb->all_account_search_vf, folder_uri);
- g_free (folder_uri);
- g_free (storeuri);
- } else {
- /* cancel previous filling first, if under way */
- if (efb->account_search_cancel) {
- camel_operation_cancel (efb->account_search_cancel);
- camel_operation_unref (efb->account_search_cancel);
- efb->account_search_cancel = NULL;
- }
-
- /* Reuse the existing search folder */
- camel_vee_folder_set_expression((CamelVeeFolder *)efb->all_account_search_vf, search_word);
- }
-
- break;
- }
- g_object_get (esb, "state", &search_state, NULL);
- camel_object_meta_set (emfv->folder, "evolution:search_state", search_state);
- camel_object_state_write (emfv->folder);
- g_free (search_state);
-
- if (search_word) {
- g_free (search_word);
- search_word = NULL;
- }
-
- /* Merge the view and search expresion*/
- view_sexp = get_view_query (esb, emfv->folder, emfv->folder_uri);
- g_object_get (esb, "query", &search_word, NULL);
-
- word = search_word;
-
- if (search_word && *search_word)
- search_word = g_strconcat ("(and ", view_sexp, search_word, " )", NULL);
- else
- search_word = g_strdup (view_sexp);
-
- message_list_set_search(emfb->view.list, search_word);
-
- g_free (word);
- g_free (search_word);
-
- camel_exception_free (ex);
-}
-
-static void
-emfb_search_search_cleared(ESearchBar *esb)
-{
- /* FIXME: It should just cancel search.*/
- mail_cancel_all();
-}
-
-/* ********************************************************************** */
-
-static void
-emfb_list_message_selected (MessageList *ml, const gchar *uid, EMFolderBrowser *emfb)
-{
- EMFolderView *emfv = (EMFolderView *) emfb;
-
- if (emfv->folder == NULL)
- return;
-
- if (uid && *uid && emfb->priv->scope_restricted && emfb->view.preview_active) {
- emfb->priv->scope_restricted = FALSE;
- } else if ( !(uid && *uid) && !emfb->priv->scope_restricted) {
- emfb->priv->scope_restricted = TRUE;
- }
-
- camel_object_meta_set (emfv->folder, "evolution:selected_uid", uid);
- camel_object_state_write (emfv->folder);
- g_free (emfb->priv->select_uid);
- emfb->priv->select_uid = NULL;
-}
-
-/* ********************************************************************** */
-
-static void
-emfb_focus_search(BonoboUIComponent *uid, gpointer data, const gchar *path)
-{
- EMFolderBrowser *emfb = data;
-
- gtk_widget_grab_focus (((ESearchBar *)emfb->search)->entry);
-}
-
-static void
-emfb_help_debug (BonoboUIComponent *uid, gpointer data, const gchar *path)
-{
- mail_component_show_logger ((GtkWidget *) data);
-}
-
-static BonoboUIVerb emfb_verbs[] = {
- BONOBO_UI_UNSAFE_VERB ("HelpDebug", emfb_help_debug),
-
- BONOBO_UI_UNSAFE_VERB ("FocusSearch", emfb_focus_search),
-
- /* ViewPreview is a toggle */
-
- BONOBO_UI_VERB_END
-};
-
-//static gboolean
-//emfb_select_all_daemon (MessageList *ml)
-//{
-// message_list_select_all(ml);
-// gtk_widget_grab_focus ((GtkWidget *)ml);
-// return FALSE;
-//}
-
-//static void
-//emfb_hide_deleted(BonoboUIComponent *uic, const gchar *path, Bonobo_UIComponent_EventType type, const gchar *state, gpointer data)
-//{
-// GConfClient *gconf;
-// EMFolderView *emfv = data;
-//
-// if (type != Bonobo_UIComponent_STATE_CHANGED)
-// return;
-//
-// gconf = mail_config_get_gconf_client ();
-// gconf_client_set_bool(gconf, "/apps/evolution/mail/display/show_deleted", state[0] == '0', NULL);
-// em_folder_view_set_hide_deleted(emfv, state[0] != '0');
-//}
-
-static void
-emfb_set_search_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri)
-{
- EMFolderBrowser *emfb = (EMFolderBrowser *) emfv;
- gchar *state;
-
- message_list_freeze(emfv->list);
-
- if (emfb->priv->list_scrolled_id) {
- g_signal_handler_disconnect (emfv->list, emfb->priv->list_scrolled_id);
- emfb->priv->list_scrolled_id = 0;
- }
-
- if (emfb->priv->idle_scroll_id) {
- g_source_remove (emfb->priv->idle_scroll_id);
- emfb->priv->idle_scroll_id = 0;
- }
-
-// if (emfb->view.folder) {
-// camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id);
-// emfb->priv->folder_changed_id = 0;
-// }
-
- emfb_parent->set_folder(emfv, folder, uri);
-
- /* etspec for search results */
- state = "<ETableState>"
- "<column source=\"0\"/> <column source=\"3\"/> <column source=\"1\"/>"
- "<column source=\"14\"/> <column source=\"5\"/>"
- "<column source=\"7\"/> <column source=\"13\"/> "
- "<grouping><leaf column=\"7\" ascending=\"false\"/> </grouping> </ETableState>";
- e_tree_set_state (((MessageList *)emfv->list)->tree, state);
-
- message_list_thaw(emfv->list);
-}
-
-static void
-emfb_set_folder(EMFolderView *emfv, CamelFolder *folder, const gchar *uri)
-{
- EMFolderBrowser *emfb = (EMFolderBrowser *) emfv;
- struct _EMFolderBrowserPrivate *p = emfb->priv;
- gboolean different_folder;
-
-// message_list_freeze(emfv->list);
-
- if (emfb->priv->list_scrolled_id) {
- g_signal_handler_disconnect (emfv->list, emfb->priv->list_scrolled_id);
- emfb->priv->list_scrolled_id = 0;
- }
-
- if (emfb->priv->idle_scroll_id) {
- g_source_remove (emfb->priv->idle_scroll_id);
- emfb->priv->idle_scroll_id = 0;
- }
-
-// if (emfb->view.folder && emfb->priv->folder_changed_id) {
-// camel_object_remove_event(emfb->view.folder, emfb->priv->folder_changed_id);
-// emfb->priv->folder_changed_id = 0;
-// }
-//
-// different_folder =
-// emfb->view.folder != NULL &&
-// folder != emfb->view.folder;
-//
-// emfb_parent->set_folder(emfv, folder, uri);
-
- /* This is required since we get activated the first time
- before the folder is open and need to override the
- defaults */
- if (folder) {
- gchar *sstate;
- gint state;
- gboolean safe;
- GConfClient *gconf = mail_config_get_gconf_client();
-
- safe = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/safe_list", NULL);
- if (safe) {
- if (camel_object_meta_set(emfv->folder, "evolution:show_preview", "0") &&
- camel_object_meta_set(emfv->folder, "evolution:selected_uid", NULL)) {
- camel_object_state_write(emfv->folder);
- g_free (emfb->priv->select_uid);
- emfb->priv->select_uid = NULL;
- }
- gconf_client_set_bool (gconf, "/apps/evolution/mail/display/safe_list", FALSE, NULL);
- }
-
-// mail_refresh_folder(folder, NULL, NULL);
-//
-// emfb->priv->folder_changed_id = camel_object_hook_event(folder, "folder_changed",
-// (CamelObjectEventHookFunc)emfb_folder_changed, emfb);
-//
-// /* FIXME: this mostly copied from activate() */
-// if ((sstate = camel_object_meta_get(folder, "evolution:show_preview"))) {
-// state = sstate[0] != '0';
-// g_free(sstate);
-// } else
-// state = gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_preview", NULL);
-// em_folder_browser_show_preview(emfb, state);
-// if (emfv->uic)
-// bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewPreview", "state", state?"1":"0", NULL);
-//
-// if ((sstate = camel_object_meta_get(folder, "evolution:thread_list"))) {
-// state = sstate[0] != '0';
-// g_free(sstate);
-// } else
-// state = gconf_client_get_bool(gconf, "/apps/evolution/mail/display/thread_list", NULL);
-// message_list_set_threaded(emfv->list, state);
-// if (emfv->uic) {
-// bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreaded", "state", state?"1":"0", NULL);
-// bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsCollapseAll", "sensitive", state?"1":"0", NULL);
-// bonobo_ui_component_set_prop(emfv->uic, "/commands/ViewThreadsExpandAll", "sensitive", state?"1":"0", NULL);
-// }
-
- if (emfv->uic) {
- state = (folder->folder_flags & CAMEL_FOLDER_IS_TRASH) == 0;
- bonobo_ui_component_set_prop(emfv->uic, "/commands/HideDeleted", "sensitive", state?"1":"0", NULL);
- }
-
- /* Fixme */
- sstate = camel_object_meta_get(folder, "evolution:search_state");
- if (sstate) {
- g_object_set(emfb->search, "state", sstate, NULL);
- g_free(sstate);
- } else {
- gboolean outgoing;
- outgoing = em_utils_folder_is_drafts (emfv->folder, emfv->folder_uri)
- || em_utils_folder_is_sent (emfv->folder, emfv->folder_uri)
- || em_utils_folder_is_outbox (emfv->folder, emfv->folder_uri);
-
- e_search_bar_set_text ((ESearchBar *)emfb->search, "");
-
- if (outgoing) {
- e_search_bar_set_item_id ((ESearchBar *)emfb->search, 1);
- ((ESearchBar *)emfb->search)->block_search = TRUE;
- e_search_bar_set_item_menu ((ESearchBar *)emfb->search, 1);
- ((ESearchBar *)emfb->search)->block_search = FALSE;
-
- } else {
- e_search_bar_set_item_id ((ESearchBar *)emfb->search, 0);
- ((ESearchBar *)emfb->search)->block_search = TRUE;
- e_search_bar_set_item_menu ((ESearchBar *)emfb->search, 0);
- ((ESearchBar *)emfb->search)->block_search = FALSE;
-
- }
- e_search_bar_paint ((ESearchBar *)emfb->search);
- }
-
-// /* This function gets triggered several times at startup,
-// * so we don't want to reset the message suppression state
-// * unless we're actually switching to a different folder. */
-// if (different_folder)
-// p->suppress_message_selection = FALSE;
-//
-// if (!p->suppress_message_selection)
-// sstate = camel_object_meta_get (
-// folder, "evolution:selected_uid");
-// else
-// sstate = NULL;
-//
-// g_free (p->select_uid);
-// p->select_uid = sstate;
-//
-// if (emfv->list->cursor_uid == NULL && emfb->priv->list_built_id == 0)
-// p->list_built_id = g_signal_connect(emfv->list, "message_list_built", G_CALLBACK (emfb_list_built), emfv);
-// }
-//
-// message_list_thaw(emfv->list);
-}
-
-static void
-emfb_activate(EMFolderView *emfv, BonoboUIComponent *uic, gint act)
-{
- if (act) {
- GConfClient *gconf;
- gboolean state;
- gchar *sstate;
- EMFolderBrowser *emfb = (EMFolderBrowser *) emfv;
-
- /* Stop button */
- state = mail_msg_active((guint)-1);
- bonobo_ui_component_set_prop(uic, "/commands/MailStop", "sensitive", state?"1":"0", NULL);
-
-// /* HideDeleted */
-// state = !gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_deleted", NULL);
-// if (emfv->folder && (emfv->folder->folder_flags & CAMEL_FOLDER_IS_TRASH)) {
-// state = FALSE;
-// bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "sensitive", "0", NULL);
-// } else
-// bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "sensitive", "1", NULL);
-// bonobo_ui_component_set_prop(uic, "/commands/HideDeleted", "state", state ? "1" : "0", NULL);
-// bonobo_ui_component_add_listener(uic, "HideDeleted", emfb_hide_deleted, emfv);
-// em_folder_view_set_hide_deleted(emfv, state); /* <- not sure if this optimal, but it'll do */
- }
-}
-
-void
-em_folder_browser_suppress_message_selection (EMFolderBrowser *emfb)
-{
- emfb->priv->suppress_message_selection = TRUE;
-}
diff --git a/mail/em-folder-browser.h.dead b/mail/em-folder-browser.h.dead
deleted file mode 100644
index 966d3a3c13..0000000000
--- a/mail/em-folder-browser.h.dead
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Michael Zucchi <notzed@ximian.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifndef _EM_FOLDER_BROWSER_H
-#define _EM_FOLDER_BROWSER_H
-
-#include "mail/em-folder-view.h"
-
-G_BEGIN_DECLS
-
-typedef struct _EMFolderBrowser EMFolderBrowser;
-typedef struct _EMFolderBrowserClass EMFolderBrowserClass;
-
-struct _EMFolderBrowser {
- EMFolderView view;
-
- struct _EMFolderBrowserPrivate *priv;
-
- GtkWidget *vpane;
- struct _EFilterBar *search;
-};
-
-struct _EMFolderBrowserClass {
- EMFolderViewClass parent_class;
-
- /* Signals*/
- void (*account_search_activated) (EMFolderBrowser *emfb);
- void (*account_search_cleared) (EMFolderBrowser *emfb);
-};
-
-GType em_folder_browser_get_type(void);
-
-GtkWidget *em_folder_browser_new(void);
-
-void em_folder_browser_show_preview(EMFolderBrowser *emfv, gboolean state);
-void em_folder_browser_show_wide(EMFolderBrowser *emfv, gboolean state);
-gboolean em_folder_browser_get_wide(EMFolderBrowser *emfv);
-void em_folder_browser_suppress_message_selection(EMFolderBrowser *emfb);
-
-G_END_DECLS
-
-#endif /* ! _EM_FOLDER_BROWSER_H */
diff --git a/mail/em-folder-properties.c b/mail/em-folder-properties.c
index 7b7957149c..529472b47a 100644
--- a/mail/em-folder-properties.c
+++ b/mail/em-folder-properties.c
@@ -27,14 +27,11 @@
#include <string.h>
#include <gtk/gtk.h>
+#include <glib/gi18n.h>
#include <gconf/gconf-client.h>
-#include <camel/camel-store.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-vtrash-folder.h>
-#include <camel/camel-vee-folder.h>
-#include <glib/gi18n.h>
+#include <e-util/e-binding.h>
#include "em-folder-properties.h"
#include "em-config.h"
@@ -47,11 +44,6 @@
struct _prop_data {
gpointer object;
- CamelArgV *argv;
- GtkWidget **widgets;
-
- GSList *properties;
- gchar *name;
gint total;
gint unread;
EMConfig *config;
@@ -70,56 +62,14 @@ emfp_dialog_response (GtkWidget *dialog, gint response, struct _prop_data *prop_
}
static void
-emfp_commit(EConfig *ec, GSList *items, gpointer data)
-{
- struct _prop_data *prop_data = data;
- CamelArgV *argv = prop_data->argv;
- gint i;
-
- for (i = 0; i < argv->argc; i++) {
- CamelArg *arg = &argv->argv[i];
-
- switch (arg->tag & CAMEL_ARG_TYPE) {
- case CAMEL_ARG_BOO:
- arg->ca_int = gtk_toggle_button_get_active ((GtkToggleButton *) prop_data->widgets[i]);
- break;
- case CAMEL_ARG_STR:
- g_free (arg->ca_str);
- arg->ca_str = (gchar *) gtk_entry_get_text ((GtkEntry *) prop_data->widgets[i]);
- break;
- case CAMEL_ARG_INT:
- arg->ca_int = gtk_spin_button_get_value_as_int ((GtkSpinButton *) prop_data->widgets[i]);
- break;
- case CAMEL_ARG_DBL:
- arg->ca_double = gtk_spin_button_get_value ((GtkSpinButton *) prop_data->widgets[i]);
- break;
- default:
- g_warning ("This shouldn't be reached\n");
- break;
- }
- }
-
- camel_object_setv (prop_data->object, NULL, argv);
-}
-
-static void
emfp_free(EConfig *ec, GSList *items, gpointer data)
{
struct _prop_data *prop_data = data;
- gint i;
g_slist_free(items);
- for (i = 0; i < prop_data->argv->argc; i++) {
- if ((prop_data->argv->argv[i].tag & CAMEL_ARG_TYPE) == CAMEL_ARG_STR)
- g_free (prop_data->argv->argv[i].ca_str);
- }
-
- camel_object_free (prop_data->object, CAMEL_FOLDER_PROPERTIES, prop_data->properties);
- camel_object_free (prop_data->object, CAMEL_FOLDER_NAME, prop_data->name);
-
- camel_object_unref (prop_data->object);
- g_free (prop_data->argv);
+ camel_object_state_write (prop_data->object);
+ g_object_unref (prop_data->object);
camel_folder_quota_info_free (prop_data->quota);
@@ -156,15 +106,17 @@ add_numbered_row (GtkTable *table, gint row, const gchar *description, const gch
static GtkWidget *
emfp_get_folder_item(EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidget *old, gpointer data)
{
- GtkWidget *w, *table, *label;
+ GObjectClass *class;
+ GParamSpec **properties;
+ GtkWidget *widget, *table;
struct _prop_data *prop_data = data;
- gint row = 0, i;
- GSList *l;
+ guint ii, n_properties;
+ gint row = 0;
if (old)
return old;
- table = gtk_table_new (g_slist_length (prop_data->properties) + 2, 2, FALSE);
+ table = gtk_table_new (2, 2, FALSE);
gtk_table_set_row_spacings ((GtkTable *) table, 6);
gtk_table_set_col_spacings ((GtkTable *) table, 12);
gtk_widget_show (table);
@@ -205,74 +157,39 @@ emfp_get_folder_item(EConfig *ec, EConfigItem *item, GtkWidget *parent, GtkWidge
}
}
- /* setup the ui with the values retrieved */
- l = prop_data->properties;
- i = 0;
- while (l) {
- CamelProperty *prop = l->data;
-
- switch (prop->tag & CAMEL_ARG_TYPE) {
- case CAMEL_ARG_BOO:
- w = gtk_check_button_new_with_label (prop->description);
- gtk_toggle_button_set_active ((GtkToggleButton *) w, prop_data->argv->argv[i].ca_int != 0);
- gtk_widget_show (w);
- gtk_table_attach ((GtkTable *) table, w, 0, 2, row, row + 1, GTK_FILL | GTK_EXPAND, 0, 0, 0);
- prop_data->widgets[i] = w;
- break;
- case CAMEL_ARG_STR:
- label = gtk_label_new (prop->description);
- gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.5);
- gtk_widget_show (label);
- gtk_table_attach ((GtkTable *) table, label, 0, 1, row, row + 1, GTK_FILL, 0, 0, 0);
-
- w = gtk_entry_new ();
- gtk_widget_show (w);
- if (prop_data->argv->argv[i].ca_str) {
- gtk_entry_set_text ((GtkEntry *) w, prop_data->argv->argv[i].ca_str);
- camel_object_free (prop_data->object, prop_data->argv->argv[i].tag, prop_data->argv->argv[i].ca_str);
- prop_data->argv->argv[i].ca_str = NULL;
- }
- gtk_table_attach ((GtkTable *) table, w, 1, 2, row, row + 1, GTK_FILL | GTK_EXPAND, 0, 0, 0);
- prop_data->widgets[i] = w;
- break;
- case CAMEL_ARG_INT:
- label = gtk_label_new (prop->description);
- gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.5);
- gtk_widget_show (label);
- gtk_table_attach ((GtkTable *) table, label, 0, 1, row, row + 1, GTK_FILL, 0, 0, 0);
-
- w = gtk_spin_button_new_with_range (G_MININT, G_MAXINT, 1.0);
- gtk_spin_button_set_value ((GtkSpinButton *) w, (double) prop_data->argv->argv[i].ca_int);
- gtk_spin_button_set_numeric ((GtkSpinButton *) w, TRUE);
- gtk_spin_button_set_digits ((GtkSpinButton *) w, 0);
- gtk_widget_show (w);
- gtk_table_attach ((GtkTable *) table, w, 1, 2, row, row + 1, GTK_FILL | GTK_EXPAND, 0, 0, 0);
- prop_data->widgets[i] = w;
- break;
- case CAMEL_ARG_DBL:
- label = gtk_label_new (prop->description);
- gtk_misc_set_alignment ((GtkMisc *) label, 0.0, 0.5);
- gtk_widget_show (label);
- gtk_table_attach ((GtkTable *) table, label, 0, 1, row, row + 1, GTK_FILL, 0, 0, 0);
-
- w = gtk_spin_button_new_with_range (G_MININT, G_MAXINT, 1.0);
- gtk_spin_button_set_value ((GtkSpinButton *) w, prop_data->argv->argv[i].ca_double);
- gtk_spin_button_set_numeric ((GtkSpinButton *) w, TRUE);
- gtk_spin_button_set_digits ((GtkSpinButton *) w, 2);
- gtk_widget_show (w);
- gtk_table_attach ((GtkTable *) table, w, 1, 2, row, row + 1, GTK_FILL | GTK_EXPAND, 0, 0, 0);
- prop_data->widgets[i] = w;
- break;
- default:
- g_warning ("This shouldn't be reached\n");
- break;
+ class = G_OBJECT_GET_CLASS (prop_data->object);
+ properties = g_object_class_list_properties (class, &n_properties);
+
+ for (ii = 0; ii < n_properties; ii++) {
+ const gchar *blurb;
+
+ if ((properties[ii]->flags & CAMEL_PARAM_PERSISTENT) == 0)
+ continue;
+
+ blurb = g_param_spec_get_blurb (properties[ii]);
+
+ switch (properties[ii]->value_type) {
+ case G_TYPE_BOOLEAN:
+ widget = gtk_check_button_new_with_label (blurb);
+ e_mutual_binding_new (
+ prop_data->object,
+ properties[ii]->name,
+ widget, "active");
+ gtk_widget_show (widget);
+ gtk_table_attach (
+ GTK_TABLE (table), widget,
+ 0, 2, row, row + 1,
+ GTK_FILL | GTK_EXPAND, 0, 0, 0);
+ row++;
+ break;
+ default:
+ g_warn_if_reached ();
+ break;
}
-
- row++;
- l = l->next;
- i++;
}
+ g_free (properties);
+
return table;
}
@@ -293,41 +210,41 @@ emfp_dialog_got_folder_quota (CamelFolder *folder,
gpointer data)
{
GtkWidget *dialog, *w;
+ GtkWidget *content_area;
struct _prop_data *prop_data;
GSList *l;
- gint32 count, i,deleted;
+ gint32 i,deleted;
EMConfig *ec;
EMConfigTargetFolder *target;
EShellWindow *shell_window;
EShellView *shell_view;
- CamelArgGetV *arggetv;
- CamelArgV *argv;
CamelStore *local_store;
+ CamelStore *parent_store;
gboolean hide_deleted;
GConfClient *gconf;
- CamelStore *store;
+ const gchar *name;
if (folder == NULL)
return;
- store = folder->parent_store;
-
shell_view = E_SHELL_VIEW (data);
shell_window = e_shell_view_get_shell_window (shell_view);
local_store = e_mail_local_get_store ();
+ parent_store = camel_folder_get_parent_store (folder);
prop_data = g_malloc0 (sizeof (*prop_data));
- prop_data->object = folder;
- camel_object_ref (folder);
+ prop_data->object = g_object_ref (folder);
prop_data->quota = camel_folder_quota_info_clone (quota);
/*
Get number of VISIBLE and DELETED messages, instead of TOTAL messages. VISIBLE+DELETED
gives the correct count that matches the label below the Send & Receive button
*/
- camel_object_get (folder, NULL, CAMEL_FOLDER_PROPERTIES, &prop_data->properties, CAMEL_FOLDER_NAME, &prop_data->name,
- CAMEL_FOLDER_VISIBLE, &prop_data->total, CAMEL_FOLDER_UNREAD, &prop_data->unread, CAMEL_FOLDER_DELETED, &deleted, NULL);
+ name = camel_folder_get_name (folder);
+ prop_data->total = folder->summary->visible_count;
+ prop_data->unread = folder->summary->unread_count;
+ deleted = folder->summary->deleted_count;
gconf = mail_config_get_gconf_client ();
hide_deleted = !gconf_client_get_bool(gconf, "/apps/evolution/mail/display/show_deleted", NULL);
@@ -335,7 +252,7 @@ emfp_dialog_got_folder_quota (CamelFolder *folder,
/*
Do the calculation only for those accounts that support VTRASHes
*/
- if (store->flags & CAMEL_STORE_VTRASH) {
+ if (parent_store->flags & CAMEL_STORE_VTRASH) {
if (CAMEL_IS_VTRASH_FOLDER(folder))
prop_data->total += deleted;
else if (!hide_deleted && deleted > 0)
@@ -345,17 +262,16 @@ emfp_dialog_got_folder_quota (CamelFolder *folder,
/*
* If the ffolder is junk folder, get total number of mails.
*/
- if (store->flags & CAMEL_STORE_VJUNK) {
- camel_object_get (folder, NULL, CAMEL_FOLDER_TOTAL, &prop_data->total, NULL);
- }
-
- if (store == local_store
- && (!strcmp(prop_data->name, "Drafts")
- || !strcmp(prop_data->name, "Templates")
- || !strcmp(prop_data->name, "Inbox")
- || !strcmp(prop_data->name, "Outbox")
- || !strcmp(prop_data->name, "Sent"))) {
- emfp_items[EMFP_FOLDER_SECTION].label = _(prop_data->name);
+ if (parent_store->flags & CAMEL_STORE_VJUNK)
+ prop_data->total = camel_folder_summary_count (folder->summary);
+
+ if (parent_store == local_store
+ && (!strcmp (name, "Drafts")
+ || !strcmp (name, "Templates")
+ || !strcmp (name, "Inbox")
+ || !strcmp (name, "Outbox")
+ || !strcmp (name, "Sent"))) {
+ emfp_items[EMFP_FOLDER_SECTION].label = gettext (name);
if (!emfp_items_translated) {
for (i = 0; i < G_N_ELEMENTS (emfp_items); i++) {
if (emfp_items[i].label)
@@ -363,46 +279,21 @@ emfp_dialog_got_folder_quota (CamelFolder *folder,
}
emfp_items_translated = TRUE;
}
- } else if (!strcmp(prop_data->name, "INBOX"))
+ } else if (!strcmp (name, "INBOX"))
emfp_items[EMFP_FOLDER_SECTION].label = _("Inbox");
else
- emfp_items[EMFP_FOLDER_SECTION].label = prop_data->name;
-
- count = g_slist_length (prop_data->properties);
-
- prop_data->widgets = g_malloc0 (sizeof (prop_data->widgets[0]) * count);
-
- /* build an arggetv/argv to retrieve/store the results */
- argv = g_malloc0 (sizeof (*argv) + (count - CAMEL_ARGV_MAX) * sizeof (argv->argv[0]));
- argv->argc = count;
- arggetv = g_malloc0 (sizeof (*arggetv) + (count - CAMEL_ARGV_MAX) * sizeof (arggetv->argv[0]));
- arggetv->argc = count;
-
- i = 0;
- l = prop_data->properties;
- while (l) {
- CamelProperty *prop = l->data;
-
- argv->argv[i].tag = prop->tag;
- arggetv->argv[i].tag = prop->tag;
- arggetv->argv[i].ca_ptr = &argv->argv[i].ca_ptr;
-
- l = l->next;
- i++;
- }
-
- camel_object_getv (prop_data->object, NULL, arggetv);
- g_free (arggetv);
- prop_data->argv = argv;
+ emfp_items[EMFP_FOLDER_SECTION].label = (gchar *) name;
dialog = gtk_dialog_new_with_buttons (
_("Folder Properties"), GTK_WINDOW (shell_window),
GTK_DIALOG_DESTROY_WITH_PARENT | GTK_DIALOG_NO_SEPARATOR,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+ GTK_STOCK_CLOSE, GTK_RESPONSE_OK, NULL);
gtk_window_set_default_size ((GtkWindow *) dialog, 192, 160);
+
gtk_widget_ensure_style (dialog);
- gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *) dialog)->vbox, 12);
+
+ content_area = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
+ gtk_container_set_border_width (GTK_CONTAINER (content_area), 12);
/** @HookPoint-EMConfig: Folder Properties Window
* @Id: org.gnome.evolution.mail.folderConfig
@@ -417,13 +308,13 @@ emfp_dialog_got_folder_quota (CamelFolder *folder,
l = NULL;
for (i = 0; i < G_N_ELEMENTS (emfp_items); i++)
l = g_slist_prepend(l, &emfp_items[i]);
- e_config_add_items((EConfig *)ec, l, emfp_commit, NULL, emfp_free, prop_data);
+ e_config_add_items((EConfig *)ec, l, NULL, NULL, emfp_free, prop_data);
target = em_config_target_new_folder(ec, folder, folder_uri);
e_config_set_target((EConfig *)ec, (EConfigTarget *)target);
w = e_config_create_widget((EConfig *)ec);
- gtk_box_pack_start ((GtkBox *) ((GtkDialog *) dialog)->vbox, w, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (content_area), w, TRUE, TRUE, 0);
/* we do 'apply on ok' ... since instant apply may apply some very long running tasks */
diff --git a/mail/em-folder-properties.h b/mail/em-folder-properties.h
index 330be151a3..d0809357e8 100644
--- a/mail/em-folder-properties.h
+++ b/mail/em-folder-properties.h
@@ -24,7 +24,7 @@
#ifndef __EM_FOLDER_PROPERTIES_H__
#define __EM_FOLDER_PROPERTIES_H__
-#include <camel/camel-folder.h>
+#include <camel/camel.h>
#include <shell/e-shell-view.h>
G_BEGIN_DECLS
diff --git a/mail/em-folder-selector.c b/mail/em-folder-selector.c
index 1a9123a34a..089daf4d44 100644
--- a/mail/em-folder-selector.c
+++ b/mail/em-folder-selector.c
@@ -25,10 +25,6 @@
#include <glib/gi18n.h>
#include <e-util/e-util.h>
-#include <camel/camel-url.h>
-#include <camel/camel-store.h>
-#include <camel/camel-session.h>
-
#include "em-folder-tree.h"
#include "em-folder-selector.h"
#include "em-folder-utils.h"
@@ -135,7 +131,7 @@ emfs_create_name_changed (GtkEntry *entry, EMFolderSelector *emfs)
const gchar *text = NULL;
gboolean active;
- if (emfs->name_entry->text_length > 0)
+ if (gtk_entry_get_text_length (emfs->name_entry) > 0)
text = gtk_entry_get_text (emfs->name_entry);
path = em_folder_tree_get_selected_uri(emfs->emft);
@@ -163,14 +159,16 @@ folder_activated_cb (EMFolderTree *emft, const gchar *path, const gchar *uri, EM
void
em_folder_selector_construct (EMFolderSelector *emfs, EMFolderTree *emft, guint32 flags, const gchar *title, const gchar *text, const gchar *oklabel)
{
+ GtkWidget *container;
GtkWidget *widget;
gtk_window_set_default_size (GTK_WINDOW (emfs), 350, 300);
gtk_window_set_title (GTK_WINDOW (emfs), title);
gtk_container_set_border_width (GTK_CONTAINER (emfs), 6);
- gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (emfs)->vbox), 6);
- gtk_container_set_border_width (GTK_CONTAINER (GTK_DIALOG (emfs)->vbox), 6);
+ container = gtk_dialog_get_content_area (GTK_DIALOG (emfs));
+ gtk_box_set_spacing (GTK_BOX (container), 6);
+ gtk_container_set_border_width (GTK_CONTAINER (container), 6);
emfs->flags = flags;
if (flags & EM_FOLDER_SELECTOR_CAN_CREATE) {
@@ -190,8 +188,7 @@ em_folder_selector_construct (EMFolderSelector *emfs, EMFolderTree *emft, guint3
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_set_shadow_type (
GTK_SCROLLED_WINDOW (widget), GTK_SHADOW_IN);
- gtk_box_pack_end (
- GTK_BOX (GTK_DIALOG (emfs)->vbox), widget, TRUE, TRUE, 6);
+ gtk_box_pack_end (GTK_BOX (container), widget, TRUE, TRUE, 6);
gtk_widget_show (widget);
emfs->emft = emft;
@@ -206,7 +203,7 @@ em_folder_selector_construct (EMFolderSelector *emfs, EMFolderTree *emft, guint3
gtk_label_set_justify (GTK_LABEL (widget), GTK_JUSTIFY_LEFT);
gtk_widget_show (widget);
- gtk_box_pack_end (GTK_BOX (GTK_DIALOG (emfs)->vbox), widget, FALSE, TRUE, 6);
+ gtk_box_pack_end (GTK_BOX (container), widget, FALSE, TRUE, 6);
}
gtk_widget_grab_focus ((GtkWidget *) emfs->emft);
@@ -233,7 +230,7 @@ em_folder_selector_new (GtkWindow *parent,
static void
emfs_create_name_activate (GtkEntry *entry, EMFolderSelector *emfs)
{
- if (emfs->name_entry->text_length > 0) {
+ if (gtk_entry_get_text_length (emfs->name_entry) > 0) {
gchar *path;
const gchar *text;
@@ -255,6 +252,7 @@ em_folder_selector_create_new (GtkWindow *parent,
{
EMFolderSelector *emfs;
GtkWidget *hbox, *w;
+ GtkWidget *container;
/* remove the CREATE flag if it is there since that's the
* whole purpose of this dialog */
@@ -276,7 +274,8 @@ em_folder_selector_create_new (GtkWindow *parent,
gtk_box_pack_start ((GtkBox *) hbox, (GtkWidget *) emfs->name_entry, TRUE, FALSE, 6);
gtk_widget_show_all (hbox);
- gtk_box_pack_start ((GtkBox *) ((GtkDialog *) emfs)->vbox, hbox, FALSE, TRUE, 0);
+ container = gtk_dialog_get_content_area (GTK_DIALOG (emfs));
+ gtk_box_pack_start (GTK_BOX (container), hbox, FALSE, TRUE, 0);
gtk_widget_grab_focus ((GtkWidget *) emfs->name_entry);
diff --git a/mail/em-folder-tree-model.c b/mail/em-folder-tree-model.c
index 222c1cebd7..37552bb555 100644
--- a/mail/em-folder-tree-model.c
+++ b/mail/em-folder-tree-model.c
@@ -35,10 +35,6 @@
#include <glib/gi18n.h>
-#include <camel/camel-file-utils.h>
-
-#include "e-mail-store.h"
-
#include "mail-config.h"
#include "mail-session.h"
#include "mail-tools.h"
@@ -52,10 +48,8 @@
#include "em-folder-utils.h"
#include "em-event.h"
-#include <camel/camel-folder.h>
-#include <camel/camel-vee-store.h>
-
#include "e-mail-local.h"
+#include "e-mail-store.h"
#include "shell/e-shell.h"
#define d(x)
@@ -106,14 +100,14 @@ static guint signals[LAST_SIGNAL];
static void
store_info_free (EMFolderTreeModelStoreInfo *si)
{
- camel_object_remove_event (si->store, si->created_id);
- camel_object_remove_event (si->store, si->deleted_id);
- camel_object_remove_event (si->store, si->renamed_id);
- camel_object_remove_event (si->store, si->subscribed_id);
- camel_object_remove_event (si->store, si->unsubscribed_id);
+ g_signal_handler_disconnect (si->store, si->created_id);
+ g_signal_handler_disconnect (si->store, si->deleted_id);
+ g_signal_handler_disconnect (si->store, si->renamed_id);
+ g_signal_handler_disconnect (si->store, si->subscribed_id);
+ g_signal_handler_disconnect (si->store, si->unsubscribed_id);
g_free (si->display_name);
- camel_object_unref (si->store);
+ g_object_unref (si->store);
gtk_tree_row_reference_free (si->row);
g_hash_table_destroy (si->full_hash);
g_free (si);
@@ -243,7 +237,7 @@ account_changed_cb (EAccountList *accounts,
}
em_folder_tree_model_add_store (model, store, account->name);
- camel_object_unref (store);
+ g_object_unref (store);
}
static void
@@ -693,7 +687,7 @@ em_folder_tree_model_set_folder_info (EMFolderTreeModel *model,
unread = total > 0 ? total : 0;
}
- camel_object_unref(folder);
+ g_object_unref (folder);
}
/* TODO Maybe this should be handled by mail_get_folderinfo
@@ -875,7 +869,7 @@ folder_subscribed (CamelStore *store,
g_signal_emit (model, signals[FOLDER_ADDED], 0, fi->full_name, fi->uri);
done:
- camel_object_unref (store);
+ g_object_unref (store);
camel_folder_info_free (fi);
}
@@ -886,7 +880,7 @@ folder_subscribed_cb (CamelStore *store,
{
CamelFolderInfo *fi;
- camel_object_ref (store);
+ g_object_ref (store);
fi = camel_folder_info_clone (event_data);
mail_async_event_emit (
@@ -919,7 +913,7 @@ folder_unsubscribed (CamelStore *store,
em_folder_tree_model_remove_folders (model, si, &iter);
done:
- camel_object_unref (store);
+ g_object_unref (store);
camel_folder_info_free (fi);
}
@@ -930,7 +924,7 @@ folder_unsubscribed_cb (CamelStore *store,
{
CamelFolderInfo *fi;
- camel_object_ref (store);
+ g_object_ref (store);
fi = camel_folder_info_clone (event_data);
mail_async_event_emit (
@@ -950,7 +944,7 @@ folder_created_cb (CamelStore *store,
if (camel_store_supports_subscriptions (store))
return;
- camel_object_ref (store);
+ g_object_ref (store);
fi = camel_folder_info_clone (event_data);
mail_async_event_emit (
@@ -970,7 +964,7 @@ folder_deleted_cb (CamelStore *store,
if (camel_store_supports_subscriptions (store))
return;
- camel_object_ref (store);
+ g_object_ref (store);
fi = camel_folder_info_clone (event_data);
mail_async_event_emit (
@@ -978,9 +972,14 @@ folder_deleted_cb (CamelStore *store,
folder_unsubscribed_cb, store, fi, model);
}
+typedef struct {
+ gchar *old_base;
+ CamelFolderInfo *new;
+} RenameInfo;
+
static void
folder_renamed (CamelStore *store,
- CamelRenameInfo *info,
+ RenameInfo *info,
EMFolderTreeModel *model)
{
EMFolderTreeModelStoreInfo *si;
@@ -1003,7 +1002,7 @@ folder_renamed (CamelStore *store,
em_folder_tree_model_remove_folders (model, si, &iter);
- parent = g_strdup(info->new->full_name);
+ parent = g_strdup (info->new->full_name);
p = strrchr(parent, '/');
if (p)
*p = 0;
@@ -1026,7 +1025,7 @@ folder_renamed (CamelStore *store,
em_folder_tree_model_set_folder_info (model, &iter, si, info->new, TRUE);
done:
- camel_object_unref (store);
+ g_object_unref (store);
g_free (info->old_base);
camel_folder_info_free (info->new);
@@ -1035,16 +1034,17 @@ done:
static void
folder_renamed_cb (CamelStore *store,
- gpointer event_data,
+ const gchar *old_name,
+ CamelFolderInfo *info,
EMFolderTreeModel *model)
{
- CamelRenameInfo *rinfo, *info = event_data;
+ RenameInfo *rinfo;
- camel_object_ref (store);
+ g_object_ref (store);
- rinfo = g_new0 (CamelRenameInfo, 1);
- rinfo->old_base = g_strdup (info->old_base);
- rinfo->new = camel_folder_info_clone (info->new);
+ rinfo = g_new0 (RenameInfo, 1);
+ rinfo->old_base = g_strdup (old_name);
+ rinfo->new = camel_folder_info_clone (info);
mail_async_event_emit (
mail_async_event, MAIL_ASYNC_GUI, (MailAsyncFunc)
@@ -1095,7 +1095,7 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model,
si = g_new (EMFolderTreeModelStoreInfo, 1);
si->display_name = g_strdup (display_name);
- camel_object_ref (store);
+ g_object_ref (store);
si->store = store;
si->account = account;
si->row = gtk_tree_row_reference_copy (reference);
@@ -1127,21 +1127,21 @@ em_folder_tree_model_add_store (EMFolderTreeModel *model,
-1);
/* listen to store events */
- si->created_id = camel_object_hook_event (
- store, "folder_created",
- (CamelObjectEventHookFunc) folder_created_cb, model);
- si->deleted_id = camel_object_hook_event (
- store, "folder_deleted",
- (CamelObjectEventHookFunc) folder_deleted_cb, model);
- si->renamed_id = camel_object_hook_event (
+ si->created_id = g_signal_connect (
+ store, "folder-created",
+ G_CALLBACK (folder_created_cb), model);
+ si->deleted_id = g_signal_connect (
+ store, "folder-deleted",
+ G_CALLBACK (folder_deleted_cb), model);
+ si->renamed_id = g_signal_connect (
store, "folder_renamed",
- (CamelObjectEventHookFunc) folder_renamed_cb, model);
- si->subscribed_id = camel_object_hook_event (
+ G_CALLBACK (folder_renamed_cb), model);
+ si->subscribed_id = g_signal_connect (
store, "folder_subscribed",
- (CamelObjectEventHookFunc) folder_subscribed_cb, model);
- si->unsubscribed_id = camel_object_hook_event (
+ G_CALLBACK (folder_subscribed_cb), model);
+ si->unsubscribed_id = g_signal_connect (
store, "folder_unsubscribed",
- (CamelObjectEventHookFunc) folder_unsubscribed_cb, model);
+ G_CALLBACK (folder_unsubscribed_cb), model);
g_signal_emit (model, signals[LOADED_ROW], 0, path, &root);
gtk_tree_path_free (path);
diff --git a/mail/em-folder-tree-model.h b/mail/em-folder-tree-model.h
index e0a73e03b8..82775ae6bf 100644
--- a/mail/em-folder-tree-model.h
+++ b/mail/em-folder-tree-model.h
@@ -24,7 +24,7 @@
#define EM_FOLDER_TREE_MODEL_H
#include <gtk/gtk.h>
-#include <camel/camel-store.h>
+#include <camel/camel.h>
#include <libedataserver/e-account-list.h>
/* Standard GObject macros */
diff --git a/mail/em-folder-tree.c b/mail/em-folder-tree.c
index 371d764d74..219e355cd5 100644
--- a/mail/em-folder-tree.c
+++ b/mail/em-folder-tree.c
@@ -39,15 +39,6 @@
#include <gdk/gdkkeysyms.h>
#include <glib/gi18n.h>
-#include <camel/camel-session.h>
-#include <camel/camel-store.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-vee-store.h>
-#include <camel/camel-vtrash-folder.h>
-#include <camel/camel-stream-mem.h>
-#include <camel/camel-file-utils.h>
-#include <camel/camel-stream-fs.h>
-
#include "e-util/e-account-utils.h"
#include "e-util/e-mktemp.h"
#include "e-util/e-icon-factory.h"
@@ -326,7 +317,7 @@ folder_tree_get_folder_info__free (struct _EMFolderTreeGetFolderInfo *m)
gtk_tree_row_reference_free (m->root);
g_object_unref(m->folder_tree);
- camel_object_unref (m->store);
+ g_object_unref (m->store);
g_free (m->top);
}
@@ -350,7 +341,7 @@ folder_tree_free_select_uri (struct _selected_uri *u)
{
g_free (u->uri);
if (u->store)
- camel_object_unref (u->store);
+ g_object_unref (u->store);
g_free (u->key);
g_free (u->path);
g_free (u);
@@ -460,12 +451,12 @@ folder_tree_expand_node (const gchar *key,
if (!(store = vfolder_store))
return;
- camel_object_ref (store);
+ g_object_ref (store);
} else if (!strcmp (uid, "local")) {
if (!(store = e_mail_local_get_store ()))
return;
- camel_object_ref (store);
+ g_object_ref (store);
} else {
return;
}
@@ -473,11 +464,11 @@ folder_tree_expand_node (const gchar *key,
si = em_folder_tree_model_lookup_store_info (
EM_FOLDER_TREE_MODEL (model), store);
if (si == NULL) {
- camel_object_unref (store);
+ g_object_unref (store);
return;
}
- camel_object_unref (store);
+ g_object_unref (store);
if (p != NULL) {
if (!(row = g_hash_table_lookup (si->full_hash, p + 1)))
@@ -932,7 +923,7 @@ folder_tree_row_expanded (GtkTreeView *tree_view,
msg = mail_msg_new (&get_folder_info_info);
msg->root = gtk_tree_row_reference_new (model, path);
- camel_object_ref (store);
+ g_object_ref (store);
msg->store = store;
msg->folder_tree = g_object_ref (tree_view);
msg->top = full_name;
@@ -1162,7 +1153,9 @@ folder_tree_new (EMFolderTree *folder_tree)
/* FIXME Gross hack */
tree = GTK_WIDGET (folder_tree);
- GTK_WIDGET_SET_FLAGS(tree, GTK_CAN_FOCUS);
+ gtk_widget_set_can_focus (tree, TRUE);
+
+ folder_tree->priv->selectable = NULL;
folder_tree->priv->selectable = NULL;
@@ -1515,7 +1508,7 @@ tree_drag_data_get(GtkWidget *widget, GdkDragContext *context, GtkSelectionData
em_utils_selection_set_urilist(selection, folder, uids);
camel_folder_free_uids(folder, uids);
- camel_object_unref(folder);
+ g_object_unref (folder);
}
break;
default:
@@ -1554,25 +1547,39 @@ struct _DragDataReceivedAsync {
static void
folder_tree_drop_folder(struct _DragDataReceivedAsync *m)
{
- CamelFolder *src;
+ CamelFolder *folder;
+ CamelStore *parent_store;
+ const gchar *full_name;
+ const guchar *data;
- d(printf(" * Drop folder '%s' onto '%s'\n", m->selection->data, m->full_name));
+ data = gtk_selection_data_get_data (m->selection);
- if (!(src = mail_tool_uri_to_folder((gchar *)m->selection->data, 0, &m->base.ex)))
+ d(printf(" * Drop folder '%s' onto '%s'\n", data, m->full_name));
+
+ if (!(folder = mail_tool_uri_to_folder((gchar *)data, 0, &m->base.ex)))
return;
- em_folder_utils_copy_folders(src->parent_store, src->full_name, m->store, m->full_name?m->full_name:"", m->move);
- camel_object_unref(src);
+ full_name = camel_folder_get_full_name (folder);
+ parent_store = camel_folder_get_parent_store (folder);
+
+ em_folder_utils_copy_folders (
+ parent_store, full_name, m->store,
+ m->full_name ? m->full_name : "", m->move);
+
+ g_object_unref (folder);
}
static gchar *
folder_tree_drop_async__desc (struct _DragDataReceivedAsync *m)
{
CamelURL *url;
+ const guchar *data;
gchar *buf;
+ data = gtk_selection_data_get_data (m->selection);
+
if (m->info == DND_DROP_TYPE_FOLDER) {
- url = camel_url_new ((gchar *)m->selection->data, NULL);
+ url = camel_url_new ((gchar *)data, NULL);
if (m->move)
buf = g_strdup_printf (_("Moving folder %s"), url->fragment ? url->fragment : url->path + 1);
@@ -1620,7 +1627,7 @@ folder_tree_drop_async__exec (struct _DragDataReceivedAsync *m)
default:
abort();
}
- camel_object_unref(folder);
+ g_object_unref (folder);
}
}
@@ -1628,11 +1635,9 @@ static void
folder_tree_drop_async__free (struct _DragDataReceivedAsync *m)
{
g_object_unref(m->context);
- camel_object_unref(m->store);
+ g_object_unref (m->store);
g_free(m->full_name);
-
- g_free(m->selection->data);
- g_free(m->selection);
+ gtk_selection_data_free (m->selection);
}
static MailMsgInfo folder_tree_drop_async_info = {
@@ -1670,7 +1675,12 @@ tree_drag_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint
return;
/* this means we are receiving no data */
- if (!selection->data || selection->length == -1) {
+ if (gtk_selection_data_get_data (selection) == NULL) {
+ gtk_drag_finish(context, FALSE, FALSE, GDK_CURRENT_TIME);
+ return;
+ }
+
+ if (gtk_selection_data_get_length (selection) == -1) {
gtk_drag_finish(context, FALSE, FALSE, GDK_CURRENT_TIME);
return;
}
@@ -1696,16 +1706,13 @@ tree_drag_data_received(GtkWidget *widget, GdkDragContext *context, gint x, gint
m->context = context;
g_object_ref(context);
m->store = store;
- camel_object_ref(store);
+ g_object_ref (store);
m->full_name = full_name;
m->action = context->action;
m->info = info;
/* need to copy, goes away once we exit */
- m->selection = g_malloc0(sizeof(*m->selection));
- m->selection->data = g_malloc(selection->length);
- memcpy(m->selection->data, selection->data, selection->length);
- m->selection->length = selection->length;
+ m->selection = gtk_selection_data_copy (selection);
tree_drag_data_action(m);
}
@@ -2020,12 +2027,14 @@ tree_drag_leave (GtkWidget *widget, GdkDragContext *context, guint time, EMFolde
static gboolean
tree_autoscroll (EMFolderTree *folder_tree)
{
- GtkAdjustment *vadjustment;
+ GtkAdjustment *adjustment;
GtkTreeView *tree_view;
GdkRectangle rect;
GdkWindow *window;
gint offset, y;
- gfloat value;
+ gdouble page_size;
+ gdouble upper;
+ gdouble value;
/* get the y pointer position relative to the treeview */
tree_view = GTK_TREE_VIEW (folder_tree);
@@ -2045,10 +2054,14 @@ tree_autoscroll (EMFolderTree *folder_tree)
return TRUE;
}
- vadjustment = gtk_tree_view_get_vadjustment (tree_view);
+ adjustment = gtk_tree_view_get_vadjustment (tree_view);
+
+ page_size = gtk_adjustment_get_value (adjustment);
+ upper = gtk_adjustment_get_value (adjustment);
+ value = gtk_adjustment_get_value (adjustment);
- value = CLAMP (vadjustment->value + offset, 0.0, vadjustment->upper - vadjustment->page_size);
- gtk_adjustment_set_value (vadjustment, value);
+ value = CLAMP (value + offset, 0.0, upper - page_size);
+ gtk_adjustment_set_value (adjustment, value);
return TRUE;
}
diff --git a/mail/em-folder-tree.h b/mail/em-folder-tree.h
index b1583df99f..0da27d3926 100644
--- a/mail/em-folder-tree.h
+++ b/mail/em-folder-tree.h
@@ -25,7 +25,7 @@
#define EM_FOLDER_TREE_H
#include <gtk/gtk.h>
-#include <camel/camel-store.h>
+#include <camel/camel.h>
#include <mail/em-folder-tree-model.h>
/* Standard GObject macros */
diff --git a/mail/em-folder-utils.c b/mail/em-folder-utils.c
index aee37d7d16..ab810bfa30 100644
--- a/mail/em-folder-utils.c
+++ b/mail/em-folder-utils.c
@@ -39,13 +39,6 @@
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <glib/gi18n.h>
-#include <camel/camel-session.h>
-#include <camel/camel-vee-store.h>
-#include <camel/camel-vtrash-folder.h>
-#include <camel/camel-stream-mem.h>
-#include <camel/camel-file-utils.h>
-#include <camel/camel-stream-fs.h>
-
#include "e-util/e-mktemp.h"
#include "e-util/e-alert-dialog.h"
@@ -165,7 +158,7 @@ emft_copy_folders__exec (struct _EMCopyFolders *m)
goto exception;
if (!(tofolder = camel_store_get_folder (m->tostore, toname->str, CAMEL_STORE_FOLDER_CREATE, &m->base.ex))) {
- camel_object_unref (fromfolder);
+ g_object_unref (fromfolder);
goto exception;
}
@@ -176,8 +169,8 @@ emft_copy_folders__exec (struct _EMCopyFolders *m)
if (m->delete && !camel_exception_is_set (&m->base.ex))
camel_folder_sync(fromfolder, TRUE, NULL);
- camel_object_unref (fromfolder);
- camel_object_unref (tofolder);
+ g_object_unref (fromfolder);
+ g_object_unref (tofolder);
}
}
@@ -188,7 +181,7 @@ emft_copy_folders__exec (struct _EMCopyFolders *m)
/* subscribe to the new folder if appropriate */
if (camel_store_supports_subscriptions (m->tostore)
- && !camel_store_folder_subscribed (m->tostore, toname->str))
+ && !camel_store_folder_is_subscribed (m->tostore, toname->str))
camel_store_subscribe_folder (m->tostore, toname->str, NULL);
info = info->next;
@@ -224,8 +217,8 @@ emft_copy_folders__exec (struct _EMCopyFolders *m)
static void
emft_copy_folders__free (struct _EMCopyFolders *m)
{
- camel_object_unref (m->fromstore);
- camel_object_unref (m->tostore);
+ g_object_unref (m->fromstore);
+ g_object_unref (m->tostore);
g_free (m->frombase);
g_free (m->tobase);
@@ -246,9 +239,9 @@ em_folder_utils_copy_folders(CamelStore *fromstore, const gchar *frombase, Camel
gint seq;
m = mail_msg_new (&copy_folders_info);
- camel_object_ref (fromstore);
+ g_object_ref (fromstore);
m->fromstore = fromstore;
- camel_object_ref (tostore);
+ g_object_ref (tostore);
m->tostore = tostore;
m->frombase = g_strdup (frombase);
m->tobase = g_strdup (tobase);
@@ -319,9 +312,9 @@ emfu_copy_folder_selected (const gchar *uri, gpointer data)
camel_url_free (url);
fail:
if (fromstore)
- camel_object_unref(fromstore);
+ g_object_unref (fromstore);
if (tostore)
- camel_object_unref(tostore);
+ g_object_unref (tostore);
camel_exception_clear (&ex);
g_free (cfd);
}
@@ -410,8 +403,10 @@ emfu_delete_done (CamelFolder *folder, gboolean removed, CamelException *ex, gpo
GtkWidget *w;
w = e_alert_dialog_new_for_args (
- e_shell_get_active_window (NULL), "mail:no-delete-folder",
- folder->full_name, camel_exception_get_description (ex), NULL);
+ e_shell_get_active_window (NULL),
+ "mail:no-delete-folder",
+ camel_folder_get_full_name (folder),
+ camel_exception_get_description (ex), NULL);
em_utils_show_error_silent (w);
camel_exception_clear (ex);
}
@@ -438,40 +433,47 @@ void
em_folder_utils_delete_folder (CamelFolder *folder)
{
CamelStore *local_store;
+ CamelStore *parent_store;
GtkWindow *parent = e_shell_get_active_window (NULL);
GtkWidget *dialog;
+ const gchar *full_name;
gint flags = 0;
+ full_name = camel_folder_get_full_name (folder);
+ parent_store = camel_folder_get_parent_store (folder);
+
local_store = e_mail_local_get_store ();
- if (folder->parent_store == local_store && emfu_is_special_local_folder (folder->full_name)) {
+ if (parent_store == local_store && emfu_is_special_local_folder (full_name)) {
dialog = e_alert_dialog_new_for_args (
parent, "mail:no-delete-special-folder",
- folder->full_name, NULL);
+ full_name, NULL);
em_utils_show_error_silent (dialog);
return;
}
if (mail_folder_cache_get_folder_info_flags (mail_folder_cache_get_default (), folder, &flags) && (flags & CAMEL_FOLDER_SYSTEM))
{
- e_alert_run_dialog_for_args (parent,"mail:no-delete-special-folder", folder->name, NULL);
+ e_alert_run_dialog_for_args (
+ parent,"mail:no-delete-special-folder",
+ camel_folder_get_name (folder), NULL);
return;
}
- camel_object_ref (folder);
+ g_object_ref (folder);
if (mail_folder_cache_get_folder_info_flags (mail_folder_cache_get_default (), folder, &flags) && (flags & CAMEL_FOLDER_CHILDREN)) {
dialog = e_alert_dialog_new_for_args (parent,
- (folder->parent_store && CAMEL_IS_VEE_STORE(folder->parent_store))?"mail:ask-delete-vfolder":"mail:ask-delete-folder",
- folder->full_name, NULL);
+ (parent_store && CAMEL_IS_VEE_STORE(parent_store))?"mail:ask-delete-vfolder":"mail:ask-delete-folder",
+ full_name, NULL);
}
else {
dialog = e_alert_dialog_new_for_args (parent,
- (folder->parent_store && CAMEL_IS_VEE_STORE(folder->parent_store))?"mail:ask-delete-vfolder-nochild":"mail:ask-delete-folder-nochild",
- folder->full_name, NULL);
+ (parent_store && CAMEL_IS_VEE_STORE(parent_store))?"mail:ask-delete-vfolder-nochild":"mail:ask-delete-folder-nochild",
+ full_name, NULL);
}
- g_object_set_data_full ((GObject *) dialog, "folder", folder, camel_object_unref);
+ g_object_set_data_full ((GObject *) dialog, "folder", folder, g_object_unref);
g_signal_connect (dialog, "response", G_CALLBACK (emfu_delete_response), NULL);
gtk_widget_show (dialog);
}
@@ -529,7 +531,7 @@ static void
emfu_create_folder__free (struct _EMCreateFolder *m)
{
camel_store_free_folder_info (m->store, m->fi);
- camel_object_unref (m->store);
+ g_object_unref (m->store);
g_free (m->full_name);
g_free (m->parent);
g_free (m->name);
@@ -561,7 +563,7 @@ emfu_create_folder_real (CamelStore *store, const gchar *full_name, void (* done
}
m = mail_msg_new (&create_folder_info);
- camel_object_ref (store);
+ g_object_ref (store);
m->store = store;
m->full_name = g_strdup (full_name);
m->parent = g_strdup (parent);
@@ -625,7 +627,7 @@ emfu_popup_new_folder_response (EMFolderSelector *emfs, gint response, gpointer
si = em_folder_tree_model_lookup_store_info (
EM_FOLDER_TREE_MODEL (model), store);
if (si == NULL) {
- camel_object_unref (store);
+ g_object_unref (store);
g_return_if_reached();
}
@@ -651,7 +653,7 @@ emfu_popup_new_folder_response (EMFolderSelector *emfs, gint response, gpointer
emfu_create_folder_real (si->store, path, new_folder_created_cb, emcftd);
}
- camel_object_unref (store);
+ g_object_unref (store);
camel_exception_clear (&ex);
}
diff --git a/mail/em-folder-utils.h b/mail/em-folder-utils.h
index ec150f3066..ec5882d1aa 100644
--- a/mail/em-folder-utils.h
+++ b/mail/em-folder-utils.h
@@ -25,8 +25,7 @@
#define EM_FOLDER_UTILS_H
#include <gtk/gtk.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-store.h>
+#include <camel/camel.h>
#include <mail/em-folder-tree.h>
G_BEGIN_DECLS
diff --git a/mail/em-folder-view.c.dead b/mail/em-folder-view.c.dead
deleted file mode 100644
index 3f76572f18..0000000000
--- a/mail/em-folder-view.c.dead
+++ /dev/null
@@ -1,1014 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Michael Zucchi <notzed@ximian.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#include <config.h>
-
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include <glib/gi18n.h>
-#include <glib/gstdio.h>
-#include <gdk/gdkkeysyms.h>
-
-#ifdef G_OS_WIN32
-/* Work around 'DATADIR' and 'interface' lossage in <windows.h> */
-#define DATADIR crap_DATADIR
-#include <windows.h>
-#undef DATADIR
-#undef interface
-#endif
-
-#include <gconf/gconf-client.h>
-
-#include <camel/camel-mime-message.h>
-#include <camel/camel-stream.h>
-#include <camel/camel-stream-filter.h>
-#include <camel/camel-mime-filter.h>
-#include <camel/camel-mime-filter-tohtml.h>
-#include <camel/camel-mime-filter-enriched.h>
-#include <camel/camel-multipart.h>
-#include <camel/camel-stream-mem.h>
-#include <camel/camel-url.h>
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-disco-store.h>
-#include <camel/camel-offline-store.h>
-#include <camel/camel-vee-store.h>
-
-#include <gtkhtml/gtkhtml.h>
-#include <gtkhtml/gtkhtml-embedded.h>
-#include <gtkhtml/gtkhtml-stream.h>
-
-#include <libedataserver/e-data-server-util.h>
-#include <libedataserver/e-msgport.h>
-
-#include "menus/gal-view-etable.h"
-#include "menus/gal-view-factory-etable.h"
-#include "menus/gal-view-instance.h"
-
-#include "misc/e-charset-picker.h"
-#include <misc/e-spinner.h>
-
-#include "e-util/e-error.h"
-#include "e-util/e-dialog-utils.h"
-#include "e-util/e-icon-factory.h"
-#include "e-util/e-print.h"
-#include "e-util/e-profile-event.h"
-#include "e-util/e-util-private.h"
-#include "e-util/e-util-labels.h"
-#include "shell/e-shell.h"
-
-#include "filter/filter-rule.h"
-
-#include "em-format-html-display.h"
-#include "em-format-html-print.h"
-#include "em-folder-selection.h"
-#include "em-folder-view.h"
-#include "em-folder-browser.h"
-#include "em-mailer-prefs.h"
-#include "em-folder-browser.h"
-#include "message-list.h"
-#include "em-utils.h"
-#include "em-composer-utils.h"
-#include "em-menu.h"
-#include "em-event.h"
-#include "e-mail-shell-backend.h"
-
-#include "mail-mt.h"
-#include "mail-ops.h"
-#include "mail-config.h"
-#include "mail-autofilter.h"
-#include "mail-vfolder.h"
-#include "mail-tools.h"
-
-#ifdef HAVE_XFREE
-#include <X11/XF86keysym.h>
-#endif
-
-/* this is added to emfv->enable_map in :init() */
-static const EMFolderViewEnable emfv_enable_map[] = {
- { "EditCut", EM_POPUP_SELECT_MANY },
- { "EditCopy", EM_FOLDER_VIEW_SELECT_SELECTION },
- { "EditPaste", EM_POPUP_SELECT_FOLDER },
-// { "SelectAllText", EM_POPUP_SELECT_ONE },
-
- /* FIXME: should these be single-selection? */
- { "MailNext", EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_NEXT_MSG },
-// { "MailNextFlagged", EM_POPUP_SELECT_MANY },
-// { "MailNextUnread", EM_POPUP_SELECT_MANY },
-// { "MailNextThread", EM_POPUP_SELECT_MANY },
- { "MailPrevious", EM_POPUP_SELECT_MANY|EM_FOLDER_VIEW_SELECT_PREV_MSG },
-// { "MailPreviousFlagged", EM_POPUP_SELECT_MANY },
-// { "MailPreviousUnread", EM_POPUP_SELECT_MANY },
-
- { "AddSenderToAddressbook", EM_POPUP_SELECT_ADD_SENDER },
-
-// { "MessageApplyFilters", EM_POPUP_SELECT_MANY },
-// { "MessageFilterJunk", EM_POPUP_SELECT_MANY },
-// { "MessageCopy", EM_POPUP_SELECT_MANY },
-// { "MessageDelete", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_DELETE },
-// { "MessageDeleteKey", EM_POPUP_SELECT_MANY},
-// { "MessageForward", EM_POPUP_SELECT_MANY },
-// { "MessageForwardAttached", EM_POPUP_SELECT_MANY },
-// { "MessageForwardInline", EM_POPUP_SELECT_ONE },
-// { "MessageForwardQuoted", EM_POPUP_SELECT_ONE },
-// { "MessageRedirect", EM_POPUP_SELECT_ONE },
-// { "MessageMarkAsRead", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_READ },
-// { "MessageMarkAsUnRead", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_UNREAD },
-// { "MessageMarkAsImportant", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_IMPORTANT },
-// { "MessageMarkAsUnimportant", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_MARK_UNIMPORTANT },
-// { "MessageMarkAsJunk", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_JUNK },
-// { "MessageMarkAsNotJunk", EM_POPUP_SELECT_MANY},
- { "MessageFollowUpFlag", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_FLAG_FOLLOWUP },
- { "MessageFollowUpComplete", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_FLAG_COMPLETED },
- { "MessageFollowUpClear", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_FLAG_CLEAR },
-// { "MessageMove", EM_POPUP_SELECT_MANY },
-// { "MessageOpen", EM_POPUP_SELECT_MANY },
-// { "MessageReplyAll", EM_POPUP_SELECT_ONE },
-// { "MessageReplyList", EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_MAILING_LIST },
-// { "MessageReplySender", EM_POPUP_SELECT_ONE },
-// { "MessageEdit", EM_POPUP_SELECT_ONE },
-// { "MessageSaveAs", EM_POPUP_SELECT_MANY },
- { "MessageSearch", EM_POPUP_SELECT_ONE| EM_FOLDER_VIEW_PREVIEW_PRESENT },
-// { "MessageUndelete", EM_POPUP_SELECT_MANY|EM_POPUP_SELECT_UNDELETE },
-// { "PrintMessage", EM_POPUP_SELECT_ONE },
-// { "PrintPreviewMessage", EM_POPUP_SELECT_ONE },
-
-// { "TextZoomIn", EM_POPUP_SELECT_ONE },
-// { "TextZoomOut", EM_POPUP_SELECT_ONE },
-// { "TextZoomReset", EM_POPUP_SELECT_ONE },
-
- { "ToolsFilterMailingList", EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_MAILING_LIST},
- { "ToolsFilterRecipient", EM_POPUP_SELECT_ONE },
- { "ToolsFilterSender", EM_POPUP_SELECT_ONE },
- { "ToolsFilterSubject", EM_POPUP_SELECT_ONE },
- { "ToolsVFolderMailingList", EM_POPUP_SELECT_ONE|EM_POPUP_SELECT_MAILING_LIST},
- { "ToolsVFolderRecipient", EM_POPUP_SELECT_ONE },
- { "ToolsVFolderSender", EM_POPUP_SELECT_ONE },
- { "ToolsVFolderSubject", EM_POPUP_SELECT_ONE },
-
-// { "ViewLoadImages", EM_POPUP_SELECT_ONE },
-// { "ViewSource", EM_POPUP_SELECT_ONE },
-
-// /* always enabled */
-// { "MailStop", 0 },
-
- { NULL },
-};
-
-struct _EMFolderViewPrivate {
- guint setting_notify_id;
- guint selected_id;
- guint nomarkseen:1;
- guint destroyed:1;
-
- GtkWidget *invisible;
- gchar *selection_uri;
-
- gchar *selected_uid;
-};
-
-static GtkVBoxClass *emfv_parent;
-
-enum {
- EMFV_ON_URL,
- EMFV_LOADED,
- EMFV_CHANGED,
- LAST_SIGNAL
-};
-
-extern CamelSession *session;
-
-static guint signals[LAST_SIGNAL];
-
-static void
-emfv_init(GObject *o)
-{
- EMFolderView *emfv = (EMFolderView *)o;
- struct _EMFolderViewPrivate *p;
-
-// gtk_box_set_homogeneous (GTK_BOX (emfv), FALSE);
-//
-// p = emfv->priv = g_malloc0(sizeof(struct _EMFolderViewPrivate));
-//
-// emfv->statusbar_active = TRUE;
-// emfv->list_active = FALSE;
-//
-// emfv->ui_files = g_slist_append(NULL,
-// g_build_filename (EVOLUTION_UIDIR,
-// "evolution-mail-message.xml",
-// NULL));
-//
-// emfv->ui_app_name = "evolution-mail";
-
- emfv->enable_map = g_slist_prepend(NULL, (gpointer)emfv_enable_map);
-
-// emfv->list = (MessageList *)message_list_new();
-// g_signal_connect(emfv->list, "message_selected", G_CALLBACK(emfv_list_message_selected), emfv);
-// g_signal_connect(emfv->list, "message_list_built", G_CALLBACK(emfv_list_built), emfv);
-//
-// /* FIXME: should this hang off message-list instead? */
-// g_signal_connect(emfv->list->tree, "right_click", G_CALLBACK(emfv_list_right_click), emfv);
-// g_signal_connect(emfv->list->tree, "double_click", G_CALLBACK(emfv_list_double_click), emfv);
-// g_signal_connect(emfv->list->tree, "key_press", G_CALLBACK(emfv_list_key_press), emfv);
-// g_signal_connect(emfv->list->tree, "selection_change", G_CALLBACK(emfv_list_selection_change), emfv);
-//
-// emfv->preview = (EMFormatHTMLDisplay *)em_format_html_display_new();
-// /* FIXME: set_session should NOT be called here. Should it be a constructor attribute? */
-// em_format_set_session ((EMFormat *) emfv->preview, session);
-// g_signal_connect(emfv->preview, "link_clicked", G_CALLBACK(emfv_format_link_clicked), emfv);
- g_signal_connect(emfv->preview, "popup_event", G_CALLBACK(emfv_format_popup_event), emfv);
-// g_signal_connect (emfv->preview, "on_url", G_CALLBACK (emfv_on_url_cb), emfv);
-// g_signal_connect (((EMFormatHTML *)emfv->preview)->html, "button-release-event", G_CALLBACK (emfv_on_html_button_released_cb), emfv);
-//#ifdef ENABLE_PROFILING
-// g_signal_connect(emfv->preview, "complete", G_CALLBACK (emfv_format_complete), emfv);
-//#endif
-// p->invisible = gtk_invisible_new();
-// g_signal_connect(p->invisible, "selection_get", G_CALLBACK(emfv_selection_get), emfv);
-// g_signal_connect(p->invisible, "selection_clear_event", G_CALLBACK(emfv_selection_clear_event), emfv);
-// gtk_selection_add_target(p->invisible, GDK_SELECTION_PRIMARY, GDK_SELECTION_TYPE_STRING, 0);
-// gtk_selection_add_target(p->invisible, GDK_SELECTION_CLIPBOARD, GDK_SELECTION_TYPE_STRING, 1);
-
- emfv->async = mail_async_event_new();
-}
-
-static void
-emfv_class_init(GObjectClass *klass)
-{
- klass->finalize = emfv_finalise;
-
- ((GtkObjectClass *) klass)->destroy = emfv_destroy;
-
- ((GtkWidgetClass *) klass)->popup_menu = emfv_popup_menu;
-
- ((EMFolderViewClass *) klass)->update_message_style = TRUE;
-
- ((EMFolderViewClass *)klass)->set_folder = emfv_set_folder;
- ((EMFolderViewClass *)klass)->set_folder_uri = emfv_set_folder_uri;
- ((EMFolderViewClass *)klass)->set_message = emfv_set_message;
- ((EMFolderViewClass *)klass)->activate = emfv_activate;
-
-// ((EMFolderViewClass *)klass)->on_url = emfv_on_url;
-
- signals[EMFV_ON_URL] = g_signal_new ("on-url",
- G_OBJECT_CLASS_TYPE (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (EMFolderViewClass, on_url),
- NULL, NULL,
- e_marshal_VOID__STRING_STRING,
- G_TYPE_NONE,
- 2, G_TYPE_STRING, G_TYPE_STRING);
-
- signals[EMFV_LOADED] = g_signal_new("loaded",
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(EMFolderViewClass, loaded),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-
- signals[EMFV_CHANGED] = g_signal_new("changed",
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(EMFolderViewClass, changed),
- NULL, NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
-}
-
-//static void
-//emfv_selection_get(GtkWidget *widget, GtkSelectionData *data, guint info, guint time_stamp, EMFolderView *emfv)
-//{
-// struct _EMFolderViewPrivate *p = emfv->priv;
-//
-// if (p->selection_uri == NULL)
-// return;
-//
-// gtk_selection_data_set(data, data->target, 8, (guchar *)p->selection_uri, strlen(p->selection_uri));
-//}
-
-//static void
-//emfv_selection_clear_event(GtkWidget *widget, GdkEventSelection *event, EMFolderView *emfv)
-//{
-//#if 0 /* do i care? */
-// struct _EMFolderViewPrivate *p = emfv->priv;
-//
-// g_free(p->selection_uri);
-// p->selection_uri = NULL;
-//#endif
-//}
-
-/* ********************************************************************** */
-
-/* Popup menu
- In many cases these are the functions called by the bonobo callbacks too */
-
-/* ********************************************************************** */
-
-/* Bonobo menu's */
-
-/* a lot of stuff maps directly to the popup menu equivalent */
-#define EMFV_MAP_CALLBACK(from, to) \
-static void \
-from(BonoboUIComponent *uid, gpointer data, const gchar *path) \
-{ \
- to(NULL, NULL, data); \
-}
-
-static void
-emfv_edit_cut(BonoboUIComponent *uid, gpointer data, const gchar *path)
-{
- EMFolderView *emfv = data;
-
- if (GTK_WIDGET_HAS_FOCUS(emfv->preview->formathtml.html))
- em_format_html_display_cut(emfv->preview);
- else
- message_list_copy(emfv->list, TRUE);
-}
-
-static void
-emfv_edit_copy(BonoboUIComponent *uid, gpointer data, const gchar *path)
-{
- EMFolderView *emfv = data;
-
- if (GTK_WIDGET_HAS_FOCUS(emfv->preview->formathtml.html))
- em_format_html_display_copy(emfv->preview);
- else
- message_list_copy(emfv->list, FALSE);
-}
-
-static void
-emfv_edit_paste(BonoboUIComponent *uid, gpointer data, const gchar *path)
-{
- EMFolderView *emfv = data;
-
- message_list_paste(emfv->list);
-}
-
-//static void
-//emp_uri_popup_vfolder_sender(EPopup *ep, EPopupItem *pitem, gpointer data)
-//{
-// EMFolderView *emfv = data;
-// EMPopupTargetURI *t = (EMPopupTargetURI *)ep->target;
-// CamelURL *url;
-// CamelInternetAddress *addr;
-//
-// url = camel_url_new(t->uri, NULL);
-// if (url == NULL) {
-// g_warning("cannot parse url '%s'", t->uri);
-// return;
-// }
-//
-// if (url->path && url->path[0]) {
-// /* ensures vfolder is running */
-// vfolder_load_storage ();
-//
-// addr = camel_internet_address_new ();
-// camel_address_decode (CAMEL_ADDRESS (addr), url->path);
-// vfolder_gui_add_from_address (addr, AUTO_FROM, emfv->folder_uri);
-// camel_object_unref (addr);
-// }
-//
-// camel_url_free(url);
-//
-//}
-
-//static void
-//emp_uri_popup_vfolder_recipient(EPopup *ep, EPopupItem *pitem, gpointer data)
-//{
-// EMFolderView *emfv = data;
-// EMPopupTargetURI *t = (EMPopupTargetURI *)ep->target;
-// CamelURL *url;
-// CamelInternetAddress *addr;
-//
-// url = camel_url_new(t->uri, NULL);
-// if (url == NULL) {
-// g_warning("cannot parse url '%s'", t->uri);
-// return;
-// }
-//
-// if (url->path && url->path[0]) {
-// /* ensures vfolder is running */
-// vfolder_load_storage ();
-//
-// addr = camel_internet_address_new ();
-// camel_address_decode (CAMEL_ADDRESS (addr), url->path);
-// vfolder_gui_add_from_address (addr, AUTO_TO, emfv->folder_uri);
-// camel_object_unref (addr);
-// }
-//
-// camel_url_free(url);
-//}
-
-/* ********************************************************************** */
-
-static BonoboUIVerb emfv_message_verbs[] = {
- BONOBO_UI_UNSAFE_VERB ("EditCut", emfv_edit_cut),
- BONOBO_UI_UNSAFE_VERB ("EditCopy", emfv_edit_copy),
- BONOBO_UI_UNSAFE_VERB ("EditPaste", emfv_edit_paste),
-
-// BONOBO_UI_UNSAFE_VERB ("SelectAllText", emfv_select_all_text),
-
-// BONOBO_UI_UNSAFE_VERB ("MessageDelete", emfv_message_delete),
-// BONOBO_UI_UNSAFE_VERB ("MessageDeleteKey", emfv_message_delete),
-// BONOBO_UI_UNSAFE_VERB ("MessageOpen", emfv_message_open),
-// BONOBO_UI_UNSAFE_VERB ("MessageSearch", emfv_message_search),
-
-// BONOBO_UI_UNSAFE_VERB ("ViewSource", emfv_message_source),
-
- BONOBO_UI_VERB_END
-};
-
-static void
-emfv_activate(EMFolderView *emfv, BonoboUIComponent *uic, gint act)
-{
-
- if (act) {
- em_format_mode_t style;
- gboolean state;
- GSList *l;
-
- emfv->uic = uic;
-
- for (l = emfv->ui_files;l;l = l->next)
- bonobo_ui_util_set_ui(uic, PREFIX, (gchar *)l->data, emfv->ui_app_name, NULL);
-
- bonobo_ui_component_add_verb_list_with_data(uic, emfv_message_verbs, emfv);
- /* must do plugin menu's after main ones because of bonobo bustedness */
- if (emfv->menu)
- e_menu_activate((EMenu *)emfv->menu, uic, act);
-
-// state = emfv->preview->caret_mode;
-// bonobo_ui_component_set_prop(uic, "/commands/CaretMode", "state", state?"1":"0", NULL);
-// bonobo_ui_component_add_listener(uic, "CaretMode", emfv_caret_mode, emfv);
-
-// style = ((EMFormat *)emfv->preview)->mode?EM_FORMAT_ALLHEADERS:EM_FORMAT_NORMAL;
-// if (style)
-// bonobo_ui_component_set_prop(uic, "/commands/ViewFullHeaders", "state", "1", NULL);
-// bonobo_ui_component_add_listener(uic, "ViewFullHeaders", emfv_view_mode, emfv);
-// em_format_set_mode((EMFormat *)emfv->preview, style);
-
- if (emfv->folder)
- bonobo_ui_component_set_prop(uic, "/commands/MessageEdit", "sensitive", "0", NULL);
-
-// /* default charset used in mail view */
-// e_charset_picker_bonobo_ui_populate (uic, "/menu/View", _("Default"), emfv_charset_changed, emfv);
-
- emfv_enable_menus(emfv);
- if (emfv->statusbar_active)
- bonobo_ui_component_set_translate (uic, "/", "<status><item name=\"main\"/></status>", NULL);
-
- /* We need to set this up to get the right view options for the message-list, even if we're not showing it */
- if (emfv->folder)
- emfv_setup_view_instance(emfv);
- } else {
- const BonoboUIVerb *v;
-
- if (emfv->menu)
- e_menu_activate((EMenu *)emfv->menu, uic, act);
-
- /* TODO: Should this just rm /? */
- for (v = &emfv_message_verbs[0]; v->cname; v++)
- bonobo_ui_component_remove_verb(uic, v->cname);
-
- if (emfv->folder)
- mail_sync_folder(emfv->folder, NULL, NULL);
-
- emfv->uic = NULL;
- }
-}
-
-EMPopupTargetSelect *
-em_folder_view_get_popup_target(EMFolderView *emfv, EMPopup *emp, gint on_display)
-{
- EMPopupTargetSelect *t;
-
- t = em_popup_target_new_select(emp, emfv->folder, emfv->folder_uri, message_list_get_selected(emfv->list));
- t->target.widget = (GtkWidget *)emfv;
-
- if (emfv->list->threaded)
- t->target.mask &= ~EM_FOLDER_VIEW_SELECT_THREADED;
-
- if (message_list_hidden(emfv->list) != 0)
- t->target.mask &= ~EM_FOLDER_VIEW_SELECT_HIDDEN;
-
- if (message_list_can_select(emfv->list, MESSAGE_LIST_SELECT_NEXT, 0, 0))
- t->target.mask &= ~EM_FOLDER_VIEW_SELECT_NEXT_MSG;
-
- if (message_list_can_select(emfv->list, MESSAGE_LIST_SELECT_PREVIOUS, 0, 0))
- t->target.mask &= ~EM_FOLDER_VIEW_SELECT_PREV_MSG;
-
- if (on_display)
- t->target.mask &= ~EM_FOLDER_VIEW_SELECT_DISPLAY;
- else
- t->target.mask &= ~EM_FOLDER_VIEW_SELECT_LISTONLY;
-
- if (gtk_html_command (((EMFormatHTML *)emfv->preview)->html, "is-selection-active"))
- t->target.mask &= ~EM_FOLDER_VIEW_SELECT_SELECTION;
- else
- t->target.mask &= ~EM_FOLDER_VIEW_SELECT_NOSELECTION;
-
- if (emfv->preview_active)
- t->target.mask &= ~EM_FOLDER_VIEW_PREVIEW_PRESENT;
-
- /* See bug 352980 */
- /* See bug #54770 */
- /* if (!emfv->hide_deleted)
- t->target.mask &= ~EM_POPUP_SELECT_DELETE;*/
-
- return t;
-}
-
-void
-em_folder_view_set_hide_deleted(EMFolderView *emfv, gboolean status)
-{
- if (emfv->folder && (emfv->folder->folder_flags & CAMEL_FOLDER_IS_TRASH))
- status = FALSE;
-
- emfv->hide_deleted = status;
-
- if (emfv->folder) {
- message_list_set_hidedeleted(emfv->list, status);
- g_signal_emit(emfv, signals[EMFV_CHANGED], 0);
- }
-}
-
-/* ********************************************************************** */
-
-struct mst_t {
- EMFolderView *emfv;
- gchar *uid;
-};
-
-static void
-mst_free (struct mst_t *mst)
-{
- mst->emfv->list->seen_id = 0;
-
- g_free (mst->uid);
- g_free (mst);
-}
-
-static gint
-do_mark_seen (gpointer user_data)
-{
- struct mst_t *mst = user_data;
- EMFolderView *emfv = mst->emfv;
- MessageList *list = emfv->list;
-
- if (mst->uid && list->cursor_uid && !strcmp (mst->uid, list->cursor_uid))
- emfv_set_seen (emfv, mst->uid);
-
- return FALSE;
-}
-
-static void
-emfv_list_done_message_selected(CamelFolder *folder, const gchar *uid, CamelMimeMessage *msg, gpointer data, CamelException *ex)
-{
- EMFolderView *emfv = data;
- EMEvent *eme;
- EMEventTargetMessage *target;
- EShell *shell;
-
- if (emfv->preview == NULL) {
- emfv->priv->nomarkseen = FALSE;
- emfv_enable_menus(emfv);
- g_object_unref (emfv);
- return;
-
- }
-
- e_profile_event_emit("goto.loaded", emfv->displayed_uid, 0);
-
- shell = e_shell_backend_get_shell (mail_shell_backend);
- e_shell_event (shell, "mail-icon", "evolution-mail");
-
- /** @Event: message.reading
- * @Title: Viewing a message
- * @Target: EMEventTargetMessage
- *
- * message.reading is emitted whenever a user views a message.
- */
- /* TODO: do we emit a message.reading with no message when we're looking at nothing or don't care? */
- eme = em_event_peek();
- target = em_event_target_new_message(eme, folder, msg, uid, 0, NULL);
- e_event_emit((EEvent *)eme, "message.reading", (EEventTarget *)target);
-
- em_format_format((EMFormat *)emfv->preview, folder, uid, msg);
-
- if (emfv->list->seen_id)
- g_source_remove(emfv->list->seen_id);
-
- if (msg && emfv->mark_seen && !emfv->priv->nomarkseen) {
- if (emfv->mark_seen_timeout > 0) {
- struct mst_t *mst;
-
- mst = g_new (struct mst_t, 1);
- mst->emfv = emfv;
- mst->uid = g_strdup (uid);
-
- emfv->list->seen_id = g_timeout_add_full(G_PRIORITY_DEFAULT_IDLE, emfv->mark_seen_timeout,
- (GSourceFunc)do_mark_seen, mst, (GDestroyNotify)mst_free);
- } else {
- emfv_set_seen (emfv, uid);
- }
- } else if (camel_exception_is_set(ex)) {
- GtkHTMLStream *hstream = gtk_html_begin(((EMFormatHTML *)emfv->preview)->html);
-
- /* Display the error inline rather than popping up an annoying box.
- We also clear the exception, this stops the box popping up */
-
- gtk_html_stream_printf(hstream, "<h2>%s</h2><p>%s</p>",
- _("Unable to retrieve message"),
- ex->desc);
- gtk_html_stream_close(hstream, GTK_HTML_STREAM_OK);
- camel_exception_clear(ex);
- }
-
- emfv->priv->nomarkseen = FALSE;
- emfv_enable_menus(emfv);
- g_object_unref (emfv);
-}
-
-static gboolean
-emfv_message_selected_timeout(gpointer data)
-{
- EMFolderView *emfv = data;
-
- if (emfv->priv->selected_uid) {
- if (emfv->displayed_uid == NULL || strcmp(emfv->displayed_uid, emfv->priv->selected_uid) != 0) {
- /*GtkHTMLStream *hstream;*/
-
- g_free(emfv->displayed_uid);
- emfv->displayed_uid = emfv->priv->selected_uid;
- emfv->priv->selected_uid = NULL;
- g_object_ref (emfv);
- /* TODO: we should manage our own thread stuff, would make cancelling outstanding stuff easier */
- e_profile_event_emit("goto.load", emfv->displayed_uid, 0);
- mail_get_messagex(emfv->folder, emfv->displayed_uid, emfv_list_done_message_selected, emfv, mail_msg_fast_ordered_push);
- } else {
- e_profile_event_emit("goto.empty", "", 0);
- g_free(emfv->priv->selected_uid);
- emfv->priv->selected_uid = NULL;
- }
- } else {
- e_profile_event_emit("goto.empty", "", 0);
- g_free(emfv->displayed_uid);
- emfv->displayed_uid = NULL;
- em_format_format((EMFormat *)emfv->preview, NULL, NULL, NULL);
- emfv->priv->nomarkseen = FALSE;
- }
-
- emfv->priv->selected_id = 0;
-
- return FALSE;
-}
-
-static gboolean
-emfv_popup_menu (GtkWidget *widget)
-{
- gboolean ret = FALSE;
- EMFolderView *emfv = (EMFolderView *)widget;
-
- /* Try to bring up menu for preview html object.
- Currently we cannot directly connect to html's "popup_menu" signal
- since it doesn't work.
- */
-
- if (GTK_WIDGET_HAS_FOCUS (emfv->preview->formathtml.html))
- ret = em_format_html_display_popup_menu (emfv->preview);
-
- if (!ret)
- emfv_popup (emfv, NULL, FALSE);
-
- return TRUE;
-}
-
-//static void
-//emp_uri_popup_link_copy(EPopup *ep, EPopupItem *pitem, gpointer data)
-//{
-// EMFolderView *emfv = data;
-// struct _EMFolderViewPrivate *p = emfv->priv;
-//
-// g_free(p->selection_uri);
-// p->selection_uri = em_utils_url_unescape_amp(pitem->user_data);
-//
-// gtk_selection_owner_set(p->invisible, GDK_SELECTION_PRIMARY, gtk_get_current_event_time());
-// gtk_selection_owner_set(p->invisible, GDK_SELECTION_CLIPBOARD, gtk_get_current_event_time());
-//}
-
-static EPopupItem emfv_uri_popups[] = {
-// { E_POPUP_ITEM, (gchar *) "00.uri.15", (gchar *) N_("_Copy Link Location"), emp_uri_popup_link_copy, NULL, (gchar *) "edit-copy", EM_POPUP_URI_NOT_MAILTO },
-
-// { E_POPUP_SUBMENU, (gchar *) "99.uri.00", (gchar *) N_("Create _Search Folder"), NULL, NULL, NULL, EM_POPUP_URI_MAILTO },
-// { E_POPUP_ITEM, (gchar *) "99.uri.00/00.10", (gchar *) N_("_From this Address"), emp_uri_popup_vfolder_sender, NULL, NULL, EM_POPUP_URI_MAILTO },
-// { E_POPUP_ITEM, (gchar *) "99.uri.00/00.00", (gchar *) N_("_To this Address"), emp_uri_popup_vfolder_recipient, NULL, NULL, EM_POPUP_URI_MAILTO },
-};
-
-static void
-emfv_uri_popup_free(EPopup *ep, GSList *list, gpointer data)
-{
- while (list) {
- GSList *n = list->next;
- struct _EPopupItem *item = list->data;
-
- g_free(item->user_data);
- item->user_data = NULL;
- g_free (item);
- g_slist_free_1(list);
-
- list = n;
- }
-}
-
-static void
-emfv_free_em_popup (gpointer emp)
-{
- EPopup *ep = (EPopup *)emp;
-
- if (!ep)
- return;
-
- if (ep->target) {
- /* without this the next unref on ep does nothing */
- e_popup_target_free (ep, ep->target);
- ep->target = NULL;
- }
-
- g_object_unref (ep);
-}
-
-static GtkMenu *
-emfv_append_menu (EMPopup *des_emp, GtkMenu *des_menu, EMPopup *src_emp, GtkMenu *src_menu)
-{
- GtkWidget *separator;
- GList *children, *p;
- gchar *name;
-
- if (!src_menu)
- return des_menu;
-
- if (!des_menu)
- return src_menu;
-
- separator = gtk_separator_menu_item_new ();
- gtk_widget_show (separator);
- gtk_menu_shell_append (GTK_MENU_SHELL (des_menu), separator);
-
- children = gtk_container_get_children (GTK_CONTAINER (src_menu));
- for (p = children; p; p = p->next) {
- g_object_ref (p->data);
- gtk_container_remove (GTK_CONTAINER (src_menu), p->data);
- gtk_menu_shell_append (GTK_MENU_SHELL (des_menu), p->data);
- g_object_unref (p->data);
- }
-
- g_list_free (children);
- gtk_widget_destroy (GTK_WIDGET (src_menu));
-
- /* free src_emp together with des_emp; name contains unique identifier */
- name = g_strdup_printf ("emp_%p", (gpointer) src_emp);
- g_object_set_data_full (G_OBJECT (des_emp), name, src_emp, emfv_free_em_popup);
- g_free (name);
-
- return des_menu;
-}
-
-static gint
-emfv_format_popup_event(EMFormatHTMLDisplay *efhd, GdkEventButton *event, const gchar *uri, CamelMimePart *part, EMFolderView *emfv)
-{
- GtkMenu *menu = NULL;
- EMPopup *main_emp = NULL;
-
- if (uri == NULL && part == NULL) {
- /* So we don't try and popup with nothing selected - rather odd result! */
- GPtrArray *uids = message_list_get_selected(emfv->list);
- gint doit = uids->len > 0;
-
- message_list_free_uids(emfv->list, uids);
- if (doit)
- emfv_popup(emfv, (GdkEvent *)event, TRUE);
- return doit;
- }
-
- /* FIXME: this maybe should just fit on em-html-display, it has access to the
- snooped part type */
-
- /** @HookPoint-EMPopup: Inline URI Context Menu
- * @Id: org.gnome.evolution.mail.folderview.popup
- * @Class: org.gnome.evolution.mail.popup:1.0
- * @Target: EMPopupTargetURI
- *
- * This is the context menu shown when clicking on inline URIs,
- * including addresses or normal HTML links that are displayed inside
- * the message view.
- */
-
- /** @HookPoint-EMPopup: Inline Object Context Menu
- * @Id: org.gnome.evolution.mail.folderview.popup
- * @Class: org.gnome.evolution.mail.popup:1.0
- * @Target: EMPopupTargetPart
- *
- * This is the context menu shown when clicking on inline
- * content such as a picture.
- */
-
- if (uri) {
- gboolean have_more_uris = strchr (uri, '\n') != NULL;
- const gchar *act, *next;
-
- for (act = uri; act; act = next) {
- gchar *u;
- next = strchr (act, '\n');
- if (next) {
- u = g_strndup (act, next - act);
- next++;
- } else
- u = g_strdup (act);
-
- if (u && *u) {
- GSList *menus = NULL;
- gint i;
- EMPopupTargetURI *t;
- EMPopup *emp;
- EPopupTarget *target;
- GtkMenu *mymenu;
-
- emp = em_popup_new ("org.gnome.evolution.mail.folderview.popup");
- t = em_popup_target_new_uri(emp, u);
- target = (EPopupTarget *)t;
-
- for (i = 0; i < sizeof (emfv_uri_popups)/sizeof (emfv_uri_popups[0]); i++) {
- EPopupItem *itm = g_malloc0 (sizeof (EPopupItem));
-
- memcpy (itm, &emfv_uri_popups[i], sizeof (EPopupItem));
- itm->user_data = g_strdup (t->uri);
- menus = g_slist_prepend (menus, itm);
- }
- e_popup_add_items ((EPopup *)emp, menus, NULL, emfv_uri_popup_free, emfv);
- mymenu = e_popup_create_menu_once ((EPopup *)emp, target, 0);
-
- if (have_more_uris) {
- GtkWidget *item;
-
- if (strlen (u) > 100) {
- GString *str;
- gchar *c;
-
- /* the url should be in the form of http://a.b.c/... and we want to
- see where the image comes from, so skip first 10 characters and
- find the first '/' there */
- c = strchr (u + 10, '/');
- if (!c)
- str = g_string_new_len (u, 40);
- else
- str = g_string_new_len (u, MAX (c - u + 1, 40));
-
- g_string_append (str, "...");
- g_string_append (str, u + strlen (u) - 40);
-
- item = gtk_menu_item_new_with_label (str->str);
-
- g_string_free (str, TRUE);
- } else
- item = gtk_menu_item_new_with_label (u);
-
- gtk_widget_set_sensitive (item, FALSE);
- gtk_widget_show (item);
- gtk_menu_shell_insert (GTK_MENU_SHELL (mymenu), item, 0);
- }
-
- menu = emfv_append_menu (main_emp, menu, emp, mymenu);
- if (!main_emp)
- main_emp = emp;
- }
-
- g_free (u);
- }
- }
-
- if (part) {
- EMPopup *emp;
- EPopupTarget *target;
-
- emp = em_popup_new ("org.gnome.evolution.mail.folderview.popup");
- target = (EPopupTarget *)em_popup_target_new_part(emp, part, NULL);
-
- menu = emfv_append_menu (main_emp, menu, emp, e_popup_create_menu_once ((EPopup *)emp, target, 0));
- if (!main_emp)
- main_emp = emp;
- }
-
- if (event == NULL)
- gtk_menu_popup (menu, NULL, NULL, NULL, NULL, 0, gtk_get_current_event_time());
- else
- gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event->button, event->time);
-
- return TRUE;
-}
-
-static void
-emfv_set_seen(EMFolderView *emfv, const gchar *uid)
-{
- guint32 old_flags = camel_folder_get_message_flags(emfv->folder, uid);
-
- /* If we're setting the SEEN flag on a message, handle receipt requests */
- if (!(old_flags & CAMEL_MESSAGE_SEEN))
- em_utils_handle_receipt(emfv->folder, uid, (CamelMimeMessage *)((EMFormat *)emfv->preview)->message);
-
- camel_folder_set_message_flags(emfv->folder, uid, CAMEL_MESSAGE_SEEN, CAMEL_MESSAGE_SEEN);
-}
-
-/* keep these two tables in sync */
-enum {
- EMFV_CHARSET = 1,
- EMFV_HEADERS,
- EMFV_SHOW_DELETED,
- EMFV_SETTINGS /* last, for loop count */
-};
-
-/* IF these get too long, update key field */
-static const gchar * const emfv_display_keys[] = {
- "charset",
- "headers",
- "show_deleted",
-};
-
-static GHashTable *emfv_setting_key;
-
-static void
-emfv_setting_notify(GConfClient *gconf, guint cnxn_id, GConfEntry *entry, EMFolderView *emfv)
-{
- GConfValue *value;
- gchar *tkey;
-
- g_return_if_fail (gconf_entry_get_key (entry) != NULL);
-
- if (!(value = gconf_entry_get_value (entry)))
- return;
-
- tkey = strrchr(entry->key, '/');
- g_return_if_fail (tkey != NULL);
-
- switch (GPOINTER_TO_INT(g_hash_table_lookup(emfv_setting_key, tkey+1))) {
- case EMFV_CHARSET:
- em_format_set_default_charset((EMFormat *)emfv->preview, gconf_value_get_string (value));
- break;
- case EMFV_HEADERS: {
- GSList *header_config_list, *p;
- EMFormat *emf = (EMFormat *)emfv->preview;
-
- header_config_list = gconf_client_get_list(gconf, "/apps/evolution/mail/display/headers", GCONF_VALUE_STRING, NULL);
- em_format_clear_headers((EMFormat *)emfv->preview);
- p = header_config_list;
- while (p) {
- EMMailerPrefsHeader *h;
- gchar *xml = (gchar *)p->data;
-
- h = em_mailer_prefs_header_from_xml(xml);
- if (h && h->enabled) {
- em_format_add_header(emf, h->name, EM_FORMAT_HEADER_BOLD);
- }
- em_mailer_prefs_header_free(h);
- p = g_slist_next(p);
- }
- g_slist_foreach(header_config_list, (GFunc) g_free, NULL);
- g_slist_free(header_config_list);
- /* force a redraw */
- if (emf->message)
- em_format_redraw(emf);
- break; }
- case EMFV_SHOW_DELETED: {
- gboolean state;
-
- state = gconf_value_get_bool (value);
- em_folder_view_set_hide_deleted (emfv, !state);
- /* Set the prop only if the component has already been
- * activated. */
- if (emfv->uic)
- bonobo_ui_component_set_prop (emfv->uic, "/commands/HideDeleted", "state", state ? "0" : "1", NULL);
- break; }
- }
-}
diff --git a/mail/em-folder-view.h.dead b/mail/em-folder-view.h.dead
deleted file mode 100644
index 2c276914c0..0000000000
--- a/mail/em-folder-view.h.dead
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Michael Zucchi <notzed@ximian.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifndef EM_FOLDER_VIEW_H
-#define EM_FOLDER_VIEW_H
-
-#include <gtk/gtk.h>
-#include <bonobo/bonobo-ui-component.h>
-
-#include "mail/em-format-html-display.h"
-#include "mail/em-menu.h"
-#include "mail/em-popup.h"
-#include "mail/mail-mt.h"
-#include "mail/message-list.h"
-
-/* Standard GObject macros */
-#define EM_TYPE_FOLDER_VIEW \
- (em_folder_view_get_type ())
-#define EM_FOLDER_VIEW(obj) \
- (G_TYPE_CHECK_INSTANCE_CAST \
- ((obj), EM_TYPE_FOLDER_VIEW, EMFolderView))
-#define EM_FOLDER_VIEW_CLASS(cls) \
- (G_TYPE_CHECK_CLASS_CAST \
- ((cls), EM_TYPE_FOLDER_VIEW, EMFolderViewClass))
-#define EM_IS_FOLDER_VIEW(obj) \
- (G_TYPE_CHECK_INSTANCE_TYPE \
- ((obj), EM_TYPE_FOLDER_VIEW))
-#define EM_IS_FOLDER_VIEW_CLASS(cls) \
- (G_TYPE_CHECK_CLASS_TYPE \
- ((cls), EM_TYPE_FOLDER_VIEW))
-#define EM_FOLDER_VIEW_GET_CLASS(obj) \
- (G_TYPE_INSTANCE_GET_CLASS \
- ((obj), EM_TYPE_FOLDER_VIEW, EMFolderViewClass))
-
-G_BEGIN_DECLS
-
-typedef struct _EMFolderView EMFolderView;
-typedef struct _EMFolderViewClass EMFolderViewClass;
-
-typedef struct _EMFolderViewEnable EMFolderViewEnable;
-
-enum {
- EM_FOLDER_VIEW_SELECT_THREADED = EM_POPUP_SELECT_LAST,
- EM_FOLDER_VIEW_SELECT_HIDDEN = EM_POPUP_SELECT_LAST<<1,
- EM_FOLDER_VIEW_SELECT_NEXT_MSG = EM_POPUP_SELECT_LAST<<2,
- EM_FOLDER_VIEW_SELECT_PREV_MSG = EM_POPUP_SELECT_LAST<<3,
- EM_FOLDER_VIEW_SELECT_LISTONLY = EM_POPUP_SELECT_LAST<<4,
- EM_FOLDER_VIEW_SELECT_DISPLAY = EM_POPUP_SELECT_LAST<<5,
- EM_FOLDER_VIEW_SELECT_SELECTION = EM_POPUP_SELECT_LAST<<6,
- EM_FOLDER_VIEW_SELECT_NOSELECTION = EM_POPUP_SELECT_LAST<<7,
- EM_FOLDER_VIEW_PREVIEW_PRESENT = EM_POPUP_SELECT_LAST<<8,
- EM_FOLDER_VIEW_SELECT_LAST = EM_POPUP_SELECT_LAST<<9
-};
-
-struct _EMFolderViewEnable {
- const gchar *name; /* bonobo name, relative to /commands/ */
- guint32 mask; /* disable mask, see EM_FOLDER_VIEW_CAN* flags */
-};
-
-struct _EMFolderView {
- GtkVBox parent;
-
- struct _EMFolderViewPrivate *priv;
-
- MessageList *list;
-
- EMFormatHTMLDisplay *preview;
-
- CamelFolder *folder;
- gchar *folder_uri;
-
- gchar *displayed_uid; /* only used to stop re-loads, don't use it to represent any selection state */
-
- /* used to load ui from base activate implementation */
- GSList *ui_files; /* const gchar * list, TODO: should this be on class? */
- const gchar *ui_app_name;
-
- /* used to manage some menus, particularly plugins */
- EMMenu *menu;
-
- /* for proxying jobs to main or other threads */
- MailAsyncEvent *async;
-
- BonoboUIComponent *uic; /* if we're active, this will be set */
- GSList *enable_map; /* bonobo menu enable map, entries are 0-terminated EMFolderViewEnable arryas
- TODO: should this be on class? */
-
- gint mark_seen_timeout; /* local copy of gconf stuff */
- guint mark_seen:1;
- guint preview_active:1; /* is preview being used */
- guint statusbar_active:1; /* should we manage the statusbar messages ourselves? */
- guint hide_deleted:1;
- guint list_active:1; /* we actually showing the list? */
-};
-
-struct _EMFolderViewClass {
- GtkVBoxClass parent_class;
-
- /* behaviour definition */
- guint update_message_style:1;
-
- /* if used as a control, used to activate/deactivate custom menu's */
- void (*activate)(EMFolderView *, BonoboUIComponent *uic, gint state);
-
- void (*set_folder_uri)(EMFolderView *emfv, const gchar *uri);
- void (*set_folder)(EMFolderView *emfv, CamelFolder *folder, const gchar *uri);
- void (*set_message)(EMFolderView *emfv, const gchar *uid, gint nomarkseen);
-
- void (*show_search_bar)(EMFolderView *emfv);
-
- /* Signals */
- void (*on_url)(EMFolderView *emfv, const gchar *uri, const gchar *nice_uri);
-
- void (*loaded)(EMFolderView *emfv);
- void (*changed)(EMFolderView *emfv);
-};
-
-GType em_folder_view_get_type(void);
-
-GtkWidget *em_folder_view_new(void);
-
-#define em_folder_view_activate(emfv, uic, state) EM_FOLDER_VIEW_GET_CLASS (emfv)->activate((emfv), (uic), (state))
-#define em_folder_view_set_folder(emfv, folder, uri) EM_FOLDER_VIEW_GET_CLASS (emfv)->set_folder((emfv), (folder), (uri))
-#define em_folder_view_set_folder_uri(emfv, uri) EM_FOLDER_VIEW_GET_CLASS (emfv)->set_folder_uri((emfv), (uri))
-#define em_folder_view_set_message(emfv, uid, nomarkseen) EM_FOLDER_VIEW_GET_CLASS (emfv)->set_message((emfv), (uid), (nomarkseen))
-
-void em_folder_view_select_next_message(EMFolderView *emfv, gint count, gboolean always_can_previous);
-void em_folder_view_message_reply(EMFolderView *emfv, gint mode);
-
-EMPopupTargetSelect *em_folder_view_get_popup_target(EMFolderView *emfv, EMPopup *emp, gint on_display);
-
-gint em_folder_view_mark_selected(EMFolderView *emfv, guint32 mask, guint32 set);
-gint em_folder_view_open_selected(EMFolderView *emfv);
-
-gint em_folder_view_print(EMFolderView *emfv, GtkPrintOperationAction action);
-
-/* this could be on message-list */
-guint32 em_folder_view_disable_mask(EMFolderView *emfv);
-
-void em_folder_view_set_statusbar(EMFolderView *emfv, gboolean statusbar);
-void em_folder_view_set_hide_deleted(EMFolderView *emfv, gboolean status);
-void em_folder_view_setup_view_instance (EMFolderView *emfv);
-void em_folder_view_show_search_bar (EMFolderView *emfv);
-
-G_END_DECLS
-
-#endif /* EM_FOLDER_VIEW_H */
diff --git a/mail/em-format-hook.c b/mail/em-format-hook.c
index 78c46d99b4..cab253f24a 100644
--- a/mail/em-format-hook.c
+++ b/mail/em-format-hook.c
@@ -66,7 +66,8 @@ static void
emfh_format_format (EMFormat *md,
CamelStream *stream,
CamelMimePart *part,
- const EMFormatHandler *info)
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
struct _EMFormatHookItem *item = (EMFormatHookItem *)info;
@@ -77,7 +78,7 @@ emfh_format_format (EMFormat *md,
e_plugin_invoke(item->hook->hook.plugin, item->format, &target);
} else if (info->old) {
- info->old->handler(md, stream, part, info->old);
+ info->old->handler(md, stream, part, info->old, FALSE);
}
}
diff --git a/mail/em-format-html-display.c b/mail/em-format-html-display.c
index 14a74af12d..422d5d23cc 100644
--- a/mail/em-format-html-display.c
+++ b/mail/em-format-html-display.c
@@ -43,19 +43,6 @@
#include <glib/gi18n.h>
-#include <camel/camel-stream.h>
-#include <camel/camel-stream-filter.h>
-#include <camel/camel-stream-mem.h>
-#include <camel/camel-mime-filter-tohtml.h>
-#include <camel/camel-mime-part.h>
-#include <camel/camel-multipart.h>
-#include <camel/camel-internet-address.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-cipher-context.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-string-utils.h>
-#include <camel/camel-operation.h>
-
#include <e-util/e-util.h>
#include <e-util/e-util-private.h>
@@ -463,7 +450,7 @@ efhd_format_attachment (EMFormat *emf,
EM_FORMAT_HTML_VPAD);
if (handle && info->shown)
- handle->handler (emf, stream, part, handle);
+ handle->handler (emf, stream, part, handle, FALSE);
g_free (classid);
}
@@ -476,11 +463,12 @@ efhd_format_optional (EMFormat *emf,
{
gchar *classid, *html;
struct _attach_puri *info;
- CamelStream *stream;
+ CamelStream *stream = NULL;
- if (CAMEL_IS_STREAM_FILTER (fstream) && ((CamelStreamFilter *) fstream)->source)
- stream = ((CamelStreamFilter *) fstream)->source;
- else
+ if (CAMEL_IS_STREAM_FILTER (fstream))
+ stream = camel_stream_filter_get_source (
+ CAMEL_STREAM_FILTER (fstream));
+ if (stream == NULL)
stream = fstream;
classid = g_strdup_printf ("optional%s", emf->part_id->str);
@@ -689,7 +677,7 @@ efhd_builtin_init(EMFormatHTMLDisplayClass *efhc)
static void
efhd_write_image(EMFormat *emf, CamelStream *stream, EMFormatPURI *puri)
{
- CamelDataWrapper *dw = camel_medium_get_content_object((CamelMedium *)puri->part);
+ CamelDataWrapper *dw = camel_medium_get_content ((CamelMedium *)puri->part);
/* TODO: identical to efh_write_image */
d(printf("writing image '%s'\n", puri->cid));
@@ -726,7 +714,7 @@ efhd_message_prefix(EMFormat *emf, CamelStream *stream, CamelMimePart *part, EMF
camel_stream_printf(stream, "<td align=\"left\"><img src=\"%s\"></td>", classid);
(void)em_format_add_puri(emf, sizeof(EMFormatPURI), classid, iconpart, efhd_write_image);
g_free(classid);
- camel_object_unref(iconpart);
+ g_object_unref (iconpart);
}
}
@@ -877,7 +865,7 @@ efhd_attachment_frame (EMFormat *emf,
if (info->shown)
info->handle->handler (
- emf, stream, info->puri.part, info->handle);
+ emf, stream, info->puri.part, info->handle, FALSE);
camel_stream_close (stream);
}
@@ -887,13 +875,15 @@ efhd_bar_resize (EMFormatHTML *efh,
GtkAllocation *event)
{
EMFormatHTMLDisplayPrivate *priv;
+ GtkAllocation allocation;
GtkWidget *widget;
gint width;
priv = EM_FORMAT_HTML_DISPLAY_GET_PRIVATE (efh);
widget = GTK_WIDGET (efh->html);
- width = widget->allocation.width - 12;
+ gtk_widget_get_allocation (widget, &allocation);
+ width = allocation.width - 12;
if (width > 0) {
widget = priv->attachment_view;
@@ -953,11 +943,7 @@ efhd_optional_button_show (GtkWidget *widget, GtkWidget *w)
{
GtkWidget *label = g_object_get_data (G_OBJECT (widget), "text-label");
-#if GTK_CHECK_VERSION(2,19,7)
if (gtk_widget_get_visible (w)) {
-#else
- if (GTK_WIDGET_VISIBLE (w)) {
-#endif
gtk_widget_hide (w);
gtk_label_set_text_with_mnemonic (GTK_LABEL (label), _("View _Unformatted"));
} else {
@@ -969,7 +955,10 @@ efhd_optional_button_show (GtkWidget *widget, GtkWidget *w)
static void
efhd_resize (GtkWidget *w, GtkAllocation *event, EMFormatHTML *efh)
{
- gtk_widget_set_size_request (w, ((GtkWidget *)efh->html)->allocation.width-48, 250);
+ GtkAllocation allocation;
+
+ gtk_widget_get_allocation (GTK_WIDGET (efh->html), &allocation);
+ gtk_widget_set_size_request (w, allocation.width - 48, 250);
}
/* optional render attachment button callback */
@@ -980,7 +969,9 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
GtkWidget *hbox, *vbox, *button, *mainbox, *scroll, *label, *img;
AtkObject *a11y;
GtkWidget *view;
+ GtkAllocation allocation;
GtkTextBuffer *buffer;
+ GByteArray *byte_array;
/* FIXME: handle default shown case */
d(printf("adding attachment button/content for optional rendering\n"));
@@ -1008,7 +999,7 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
g_signal_connect(G_OBJECT (button), "clicked", G_CALLBACK(efhd_optional_button_show), scroll);
else {
gtk_widget_set_sensitive(button, FALSE);
- GTK_WIDGET_UNSET_FLAGS(button, GTK_CAN_FOCUS);
+ gtk_widget_set_can_focus (button, FALSE);
}
vbox = gtk_vbox_new (FALSE, 0);
@@ -1038,8 +1029,10 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE);
gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE);
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (view));
- gtk_text_buffer_set_text (buffer, (gchar *)info->mstream->buffer->data, info->mstream->buffer->len);
- camel_object_unref(info->mstream);
+ byte_array = camel_stream_mem_get_byte_array (info->mstream);
+ gtk_text_buffer_set_text (
+ buffer, (gchar *) byte_array->data, byte_array->len);
+ g_object_unref (info->mstream);
info->mstream = NULL;
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
@@ -1048,7 +1041,8 @@ efhd_attachment_optional(EMFormatHTML *efh, GtkHTMLEmbedded *eb, EMFormatHTMLPOb
gtk_box_pack_start(GTK_BOX (vbox), scroll, TRUE, TRUE, 6);
gtk_widget_show (GTK_WIDGET(view));
- gtk_widget_set_size_request (scroll, (GTK_WIDGET (efh->html))->allocation.width - 48, 250);
+ gtk_widget_get_allocation (GTK_WIDGET (efh->html), &allocation);
+ gtk_widget_set_size_request (scroll, allocation.width - 48, 250);
g_signal_connect (scroll, "size_allocate", G_CALLBACK(efhd_resize), efh);
gtk_widget_show (scroll);
diff --git a/mail/em-format-html-print.c b/mail/em-format-html-print.c
index fb9b1a74a5..954254552c 100644
--- a/mail/em-format-html-print.c
+++ b/mail/em-format-html-print.c
@@ -26,10 +26,10 @@
#endif
#include <string.h>
+#include <glib/gi18n.h>
#include <gtk/gtk.h>
#include <gtkhtml/gtkhtml.h>
-#include <camel/camel-i18n.h>
#include "mail-ops.h"
#include "mail-mt.h"
#include "em-format-html-print.h"
diff --git a/mail/em-format-html.c b/mail/em-format-html.c
index db03a6a9d0..b88ba2802d 100644
--- a/mail/em-format-html.c
+++ b/mail/em-format-html.c
@@ -54,25 +54,6 @@
#include <glib/gi18n.h>
-#include <camel/camel-iconv.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-stream.h>
-#include <camel/camel-stream-filter.h>
-#include <camel/camel-mime-filter.h>
-#include <camel/camel-mime-filter-tohtml.h>
-#include <camel/camel-mime-filter-enriched.h>
-#include <camel/camel-mime-filter-basic.h>
-#include <camel/camel-gpg-context.h>
-#include <camel/camel-cipher-context.h>
-#include <camel/camel-multipart.h>
-#include <camel/camel-stream-mem.h>
-#include <camel/camel-url.h>
-#include <camel/camel-stream-fs.h>
-#include <camel/camel-string-utils.h>
-#include <camel/camel-http-stream.h>
-#include <camel/camel-data-cache.h>
-#include <camel/camel-file-utils.h>
-
#include "mail-config.h"
#include "mail-mt.h"
@@ -208,7 +189,7 @@ efh_format_exec (struct _format_msg *m)
if (handle != NULL)
handle->handler (
format, (CamelStream *) m->estream,
- (CamelMimePart *) m->message, handle);
+ (CamelMimePart *) m->message, handle, FALSE);
mime_type = "x-evolution/message/rfc822";
handle = em_format_find_handler (format, mime_type);
@@ -216,7 +197,7 @@ efh_format_exec (struct _format_msg *m)
if (handle != NULL)
handle->handler (
format, (CamelStream *) m->estream,
- (CamelMimePart *) m->message, handle);
+ (CamelMimePart *) m->message, handle, FALSE);
}
camel_stream_flush((CamelStream *)m->estream);
@@ -246,7 +227,7 @@ efh_format_exec (struct _format_msg *m)
format->base = base;
/* clean up the job */
- camel_object_unref(job->stream);
+ g_object_unref (job->stream);
if (job->base)
camel_url_free(job->base);
g_free(job);
@@ -261,7 +242,7 @@ efh_format_exec (struct _format_msg *m)
d(printf("out of jobs, closing root stream\n"));
camel_stream_write_string((CamelStream *)m->estream, "</body>\n</html>\n");
camel_stream_close((CamelStream *)m->estream);
- camel_object_unref(m->estream);
+ g_object_unref (m->estream);
m->estream = NULL;
}
@@ -290,13 +271,13 @@ efh_format_free (struct _format_msg *m)
g_object_unref(m->format);
if (m->estream) {
camel_stream_close((CamelStream *)m->estream);
- camel_object_unref(m->estream);
+ g_object_unref (m->estream);
}
if (m->folder)
- camel_object_unref(m->folder);
+ g_object_unref (m->folder);
g_free(m->uid);
if (m->message)
- camel_object_unref(m->message);
+ g_object_unref (m->message);
if (m->format_source)
g_object_unref(m->format_source);
}
@@ -386,7 +367,7 @@ static void
efh_free_cache(struct _EMFormatHTMLCache *efhc)
{
if (efhc->textmp)
- camel_object_unref(efhc->textmp);
+ g_object_unref (efhc->textmp);
g_free(efhc);
}
@@ -641,10 +622,10 @@ efh_format_clone (EMFormat *emf,
g_object_ref (emfsource);
if (folder != NULL)
- camel_object_ref (folder);
+ g_object_ref (folder);
if (msg != NULL)
- camel_object_ref (msg);
+ g_object_ref (msg);
m = mail_msg_new (&efh_format_info);
m->format = g_object_ref (emf);
@@ -686,22 +667,23 @@ efh_format_source (EMFormat *emf,
CamelStream *stream,
CamelMimePart *part)
{
- CamelStreamFilter *filtered_stream;
+ CamelStream *filtered_stream;
CamelMimeFilter *filter;
CamelDataWrapper *dw = (CamelDataWrapper *) part;
- filtered_stream = camel_stream_filter_new_with_stream (stream);
+ filtered_stream = camel_stream_filter_new (stream);
filter = camel_mime_filter_tohtml_new (
CAMEL_MIME_FILTER_TOHTML_CONVERT_NL |
CAMEL_MIME_FILTER_TOHTML_CONVERT_SPACES |
CAMEL_MIME_FILTER_TOHTML_PRESERVE_8BIT, 0);
- camel_stream_filter_add (filtered_stream, filter);
- camel_object_unref (filter);
+ camel_stream_filter_add (
+ CAMEL_STREAM_FILTER (filtered_stream), filter);
+ g_object_unref (filter);
camel_stream_write_string (stream, "<table><tr><td><tt>");
em_format_format_text (emf, (CamelStream *) filtered_stream, dw);
- camel_object_unref (filtered_stream);
+ g_object_unref (filtered_stream);
camel_stream_write_string(stream, "</tt></td></tr></table>");
}
@@ -738,7 +720,7 @@ efh_format_attachment (EMFormat *emf,
camel_stream_write_string (stream, "</font></td></tr><tr></table>");
if (handle && em_format_is_inline (emf, emf->part_id->str, part, handle))
- handle->handler (emf, stream, part, handle);
+ handle->handler (emf, stream, part, handle, FALSE);
}
static gboolean
@@ -900,7 +882,7 @@ efh_class_init (EMFormatHTMLClass *class)
/* cache expiry - 2 hour access, 1 day max */
pathname = g_build_filename (
e_get_user_data_dir (), "cache", NULL);
- emfh_http_cache = camel_data_cache_new (pathname, 0, NULL);
+ emfh_http_cache = camel_data_cache_new (pathname, NULL);
if (emfh_http_cache) {
camel_data_cache_set_expire_age(emfh_http_cache, 24*60*60);
camel_data_cache_set_expire_access(emfh_http_cache, 2*60*60);
@@ -1205,12 +1187,12 @@ em_format_html_file_part(EMFormatHTML *efh, const gchar *mime_type, const gchar
dw = camel_data_wrapper_new();
camel_data_wrapper_construct_from_stream(dw, stream);
- camel_object_unref(stream);
+ g_object_unref (stream);
if (mime_type)
camel_data_wrapper_set_mime_type(dw, mime_type);
part = camel_mime_part_new();
- camel_medium_set_content_object((CamelMedium *)part, dw);
- camel_object_unref(dw);
+ camel_medium_set_content ((CamelMedium *)part, dw);
+ g_object_unref (dw);
basename = g_path_get_basename (filename);
camel_mime_part_set_filename(part, basename);
g_free (basename);
@@ -1446,10 +1428,10 @@ static void emfh_gethttp(struct _EMFormatHTMLJob *job, gint cancelled)
/* do not store broken files in a cache */
if (n != 0)
camel_data_cache_remove(emfh_http_cache, EMFH_HTTP_CACHE_PATH, job->u.uri, NULL);
- camel_object_unref(costream);
+ g_object_unref (costream);
}
- camel_object_unref(instream);
+ g_object_unref (instream);
done:
camel_operation_end(NULL);
badurl:
@@ -1468,7 +1450,7 @@ efh_url_requested(GtkHTML *html, const gchar *url, GtkHTMLStream *handle, EMForm
puri = em_format_find_visible_puri((EMFormat *)efh, url);
if (puri) {
- CamelDataWrapper *dw = camel_medium_get_content_object((CamelMedium *)puri->part);
+ CamelDataWrapper *dw = camel_medium_get_content ((CamelMedium *)puri->part);
CamelContentType *ct = dw?dw->mime_type:NULL;
/* GtkHTML only handles text and images.
@@ -1543,7 +1525,6 @@ efh_object_requested(GtkHTML *html, GtkHTMLEmbedded *eb, EMFormatHTML *efh)
/* ********************************************************************** */
#include "em-inline-filter.h"
-#include <camel/camel-stream-null.h>
/* FIXME: This is duplicated in em-format-html-display, should be exported or in security module */
static const struct {
@@ -1605,7 +1586,7 @@ efh_format_secure(EMFormat *emf, CamelStream *stream, CamelMimePart *part, Camel
iconpart = em_format_html_file_part((EMFormatHTML *)emf, "image/png", iconpath);
if (iconpart) {
(void)em_format_add_puri(emf, sizeof(EMFormatPURI), classid, iconpart, efh_write_image);
- camel_object_unref(iconpart);
+ g_object_unref (iconpart);
}
g_free (iconpath);
g_free(classid);
@@ -1635,9 +1616,13 @@ efh_format_secure(EMFormat *emf, CamelStream *stream, CamelMimePart *part, Camel
}
static void
-efh_text_plain(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFormatHandler *info)
+efh_text_plain (EMFormatHTML *efh,
+ CamelStream *stream,
+ CamelMimePart *part,
+ const EMFormatHandler *info,
+ gboolean is_fallback)
{
- CamelStreamFilter *filtered_stream;
+ CamelStream *filtered_stream;
CamelMimeFilter *html_filter;
CamelMultipart *mp;
CamelDataWrapper *dw;
@@ -1646,17 +1631,11 @@ efh_text_plain(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFo
guint32 flags;
guint32 rgb;
gint i, count, len;
- gchar *meta;
- gboolean is_fallback;
struct _EMFormatHTMLCache *efhc;
flags = efh->text_html_flags;
- meta = camel_object_meta_get (part, "EMF-Fallback");
- is_fallback = meta != NULL;
- g_free (meta);
-
- dw = camel_medium_get_content_object((CamelMedium *)part);
+ dw = camel_medium_get_content ((CamelMedium *)part);
/* Check for RFC 2646 flowed text. */
if (camel_content_type_is(dw->mime_type, "text", "plain")
@@ -1690,29 +1669,32 @@ efh_text_plain(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFo
}
null = camel_stream_null_new();
- filtered_stream = camel_stream_filter_new_with_stream(null);
- camel_object_unref(null);
+ filtered_stream = camel_stream_filter_new (null);
+ g_object_unref (null);
inline_filter = em_inline_filter_new(camel_mime_part_get_encoding(part), ct);
- camel_stream_filter_add(filtered_stream, (CamelMimeFilter *)inline_filter);
+ camel_stream_filter_add (
+ CAMEL_STREAM_FILTER (filtered_stream),
+ CAMEL_MIME_FILTER (inline_filter));
camel_data_wrapper_decode_to_stream (dw, (CamelStream *)filtered_stream);
camel_stream_close((CamelStream *)filtered_stream);
- camel_object_unref(filtered_stream);
+ g_object_unref (filtered_stream);
mp = em_inline_filter_get_multipart(inline_filter);
if (efhc == NULL)
efhc = efh_insert_cache(efh, ((EMFormat *)efh)->part_id->str);
efhc->textmp = mp;
- camel_object_unref(inline_filter);
+ g_object_unref (inline_filter);
camel_content_type_unref(ct);
}
rgb = e_color_to_value (
&efh->priv->colors[EM_FORMAT_HTML_COLOR_CITATION]);
- filtered_stream = camel_stream_filter_new_with_stream(stream);
+ filtered_stream = camel_stream_filter_new (stream);
html_filter = camel_mime_filter_tohtml_new(flags, rgb);
- camel_stream_filter_add(filtered_stream, html_filter);
- camel_object_unref(html_filter);
+ camel_stream_filter_add (
+ CAMEL_STREAM_FILTER (filtered_stream), html_filter);
+ g_object_unref (html_filter);
/* We handle our made-up multipart here, so we don't recursively call ourselves */
@@ -1749,13 +1731,13 @@ efh_text_plain(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFo
}
}
- camel_object_unref(filtered_stream);
+ g_object_unref (filtered_stream);
}
static void
efh_text_enriched(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFormatHandler *info)
{
- CamelStreamFilter *filtered_stream;
+ CamelStream *filtered_stream;
CamelMimeFilter *enriched;
guint32 flags = 0;
@@ -1767,9 +1749,10 @@ efh_text_enriched(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, E
}
enriched = camel_mime_filter_enriched_new(flags);
- filtered_stream = camel_stream_filter_new_with_stream (stream);
- camel_stream_filter_add(filtered_stream, enriched);
- camel_object_unref(enriched);
+ filtered_stream = camel_stream_filter_new (stream);
+ camel_stream_filter_add (
+ CAMEL_STREAM_FILTER (filtered_stream), enriched);
+ g_object_unref (enriched);
camel_stream_printf (
stream, "<div style=\"border: solid #%06x 1px; background-color: #%06x; padding: 10px; color: #%06x;\">\n" EFH_MESSAGE_START,
@@ -1785,7 +1768,7 @@ efh_text_enriched(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, E
em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, (CamelDataWrapper *)part);
- camel_object_unref(filtered_stream);
+ g_object_unref (filtered_stream);
camel_stream_write_string(stream, "</div>");
}
@@ -1800,10 +1783,10 @@ efh_write_text_html(EMFormat *emf, CamelStream *stream, EMFormatPURI *puri)
fd = dup(STDOUT_FILENO);
out = camel_stream_fs_new_with_fd(fd);
printf("writing text content to frame '%s'\n", puri->cid);
- dw = camel_medium_get_content_object(puri->part);
+ dw = camel_medium_get_content (puri->part);
if (dw)
camel_data_wrapper_write_to_stream(dw, out);
- camel_object_unref(out);
+ g_object_unref (out);
#endif
em_format_format_text(emf, stream, (CamelDataWrapper *)puri->part);
}
@@ -1957,7 +1940,7 @@ fail:
static void
efh_message_deliverystatus(EMFormatHTML *efh, CamelStream *stream, CamelMimePart *part, EMFormatHandler *info)
{
- CamelStreamFilter *filtered_stream;
+ CamelStream *filtered_stream;
CamelMimeFilter *html_filter;
guint32 rgb = 0x737373;
@@ -1974,10 +1957,11 @@ efh_message_deliverystatus(EMFormatHTML *efh, CamelStream *stream, CamelMimePart
&efh->priv->colors[
EM_FORMAT_HTML_COLOR_TEXT]));
- filtered_stream = camel_stream_filter_new_with_stream(stream);
+ filtered_stream = camel_stream_filter_new (stream);
html_filter = camel_mime_filter_tohtml_new(efh->text_html_flags, rgb);
- camel_stream_filter_add(filtered_stream, html_filter);
- camel_object_unref(html_filter);
+ camel_stream_filter_add (
+ CAMEL_STREAM_FILTER (filtered_stream), html_filter);
+ g_object_unref (html_filter);
camel_stream_write_string(stream, "<tt>\n" EFH_MESSAGE_START);
em_format_format_text((EMFormat *)efh, (CamelStream *)filtered_stream, (CamelDataWrapper *)part);
@@ -2040,7 +2024,7 @@ emfh_multipart_related_check(struct _EMFormatHTMLJob *job, gint cancelled)
static void
efh_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, const EMFormatHandler *info)
{
- CamelMultipart *mp = (CamelMultipart *)camel_medium_get_content_object((CamelMedium *)part);
+ CamelMultipart *mp = (CamelMultipart *)camel_medium_get_content ((CamelMedium *)part);
CamelMimePart *body_part, *display_part = NULL;
CamelContentType *content_type;
const gchar *start;
@@ -2107,7 +2091,7 @@ efh_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
/* queue a job to check for un-referenced parts to add as attachments */
job = em_format_html_job_new((EMFormatHTML *)emf, emfh_multipart_related_check, NULL);
job->stream = stream;
- camel_object_ref(stream);
+ g_object_ref (stream);
em_format_html_job_queue((EMFormatHTML *)emf, job);
em_format_pull_level(emf);
@@ -2116,7 +2100,7 @@ efh_multipart_related(EMFormat *emf, CamelStream *stream, CamelMimePart *part, c
static void
efh_write_image(EMFormat *emf, CamelStream *stream, EMFormatPURI *puri)
{
- CamelDataWrapper *dw = camel_medium_get_content_object((CamelMedium *)puri->part);
+ CamelDataWrapper *dw = camel_medium_get_content ((CamelMedium *)puri->part);
d(printf("writing image '%s'\n", puri->cid));
camel_data_wrapper_decode_to_stream(dw, stream);
@@ -2603,16 +2587,20 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
}
if (header_sender && header_from && mail_from_delegate) {
+ gchar *bold_sender, *bold_from;
camel_stream_printf(stream, "<tr><td><table border=1 width=\"100%%\" cellspacing=2 cellpadding=2><tr>");
if (gtk_widget_get_default_direction () == GTK_TEXT_DIR_RTL)
camel_stream_printf (stream, "<td align=\"right\" width=\"100%%\">");
else
camel_stream_printf (stream, "<td align=\"left\" width=\"100%%\">");
+ bold_sender = g_strconcat ("<b>", header_sender, "</b>", NULL);
+ bold_from = g_strconcat ("<b>", header_from, "</b>", NULL);
/* To translators: This message suggests to the receipients that the sender of the mail is
- different from the one listed in From field.
- */
- camel_stream_printf(stream, _("This message was sent by <b>%s</b> on behalf of <b>%s</b>"), header_sender, header_from);
+ different from the one listed in From field. */
+ camel_stream_printf(stream, _("This message was sent by %s on behalf of %s"), bold_sender, bold_from);
camel_stream_printf(stream, "</td></tr></table></td></tr>");
+ g_free (bold_sender);
+ g_free (bold_from);
}
g_free (header_sender);
@@ -2721,11 +2709,11 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
classid);
em_format_add_puri(emf, sizeof(EMFormatPURI), classid,
photopart, efh_write_image);
- camel_object_unref(photopart);
+ g_object_unref (photopart);
g_free(classid);
}
- camel_object_unref(cia);
+ g_object_unref (cia);
}
if (!contact_has_photo && face_decoded) {
@@ -2737,7 +2725,7 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
classid = g_strdup_printf("icon:///em-format-html/face/photo/header");
camel_stream_printf(stream, "<td align=\"right\" valign=\"top\"><img width=48 src=\"%s\"></td>", classid);
em_format_add_puri(emf, sizeof(EMFormatPURI), classid, part, efh_write_image);
- camel_object_unref(part);
+ g_object_unref (part);
}
if (have_icon && efh->show_icon) {
@@ -2760,7 +2748,7 @@ efh_format_headers(EMFormatHTML *efh, CamelStream *stream, CamelMedium *part)
if (iconpart) {
em_format_add_puri(emf, sizeof(EMFormatPURI), classid, iconpart, efh_write_image);
- camel_object_unref(iconpart);
+ g_object_unref (iconpart);
}
g_free(classid);
}
@@ -2788,7 +2776,7 @@ efh_format_message(EMFormat *emf, CamelStream *stream, CamelMimePart *part, cons
handle = em_format_find_handler(emf, "x-evolution/message/post-header");
if (handle)
- handle->handler(emf, stream, part, handle);
+ handle->handler(emf, stream, part, handle, FALSE);
camel_stream_printf(stream, EM_FORMAT_HTML_VPAD);
em_format_part(emf, stream, part);
diff --git a/mail/em-format-html.h b/mail/em-format-html.h
index bac45d8ecc..26a6671cea 100644
--- a/mail/em-format-html.h
+++ b/mail/em-format-html.h
@@ -30,10 +30,6 @@
#include <em-format/em-format.h>
#include <mail/mail-config.h>
-#include <camel/camel-medium.h>
-#include <camel/camel-mime-part.h>
-#include <camel/camel-stream.h>
-#include <camel/camel-url.h>
#include <gtkhtml/gtkhtml.h>
#include <gtkhtml/gtkhtml-embedded.h>
diff --git a/mail/em-html-stream.c b/mail/em-html-stream.c
index cc3c795d32..d86e2a3cb4 100644
--- a/mail/em-html-stream.c
+++ b/mail/em-html-stream.c
@@ -32,10 +32,10 @@
#define d(x)
-static EMSyncStreamClass *parent_class = NULL;
+G_DEFINE_TYPE (EMHTMLStream, em_html_stream, EM_TYPE_SYNC_STREAM)
static void
-emhs_cleanup (EMHTMLStream *emhs)
+html_stream_cleanup (EMHTMLStream *emhs)
{
if (emhs->sync.cancel && emhs->html_stream)
gtk_html_stream_close (
@@ -49,17 +49,28 @@ emhs_cleanup (EMHTMLStream *emhs)
}
static void
-emhs_gtkhtml_destroy (GtkHTML *html,
- EMHTMLStream *emhs)
+html_stream_gtkhtml_destroy (GtkHTML *html,
+ EMHTMLStream *emhs)
{
emhs->sync.cancel = TRUE;
- emhs_cleanup (emhs);
+ html_stream_cleanup (emhs);
+}
+
+static void
+html_stream_dispose (GObject *object)
+{
+ EMHTMLStream *emhs = EM_HTML_STREAM (object);
+
+ if (emhs->html_stream) {
+ /* set 'in finalise' flag */
+ camel_stream_close (CAMEL_STREAM (emhs));
+ }
}
static gssize
-emhs_sync_write (CamelStream *stream,
- const gchar *buffer,
- gsize n)
+html_stream_sync_write (CamelStream *stream,
+ const gchar *buffer,
+ gsize n)
{
EMHTMLStream *emhs = EM_HTML_STREAM (stream);
@@ -76,7 +87,7 @@ emhs_sync_write (CamelStream *stream,
}
static gint
-emhs_sync_flush(CamelStream *stream)
+html_stream_sync_flush (CamelStream *stream)
{
EMHTMLStream *emhs = (EMHTMLStream *)stream;
@@ -89,7 +100,7 @@ emhs_sync_flush(CamelStream *stream)
}
static gint
-emhs_sync_close (CamelStream *stream)
+html_stream_sync_close (CamelStream *stream)
{
EMHTMLStream *emhs = (EMHTMLStream *)stream;
@@ -97,7 +108,7 @@ emhs_sync_close (CamelStream *stream)
return -1;
gtk_html_stream_close (emhs->html_stream, GTK_HTML_STREAM_OK);
- emhs_cleanup (emhs);
+ html_stream_cleanup (emhs);
return 0;
}
@@ -105,14 +116,16 @@ emhs_sync_close (CamelStream *stream)
static void
em_html_stream_class_init (EMHTMLStreamClass *class)
{
+ GObjectClass *object_class;
EMSyncStreamClass *sync_stream_class;
- parent_class = (EMSyncStreamClass *)em_sync_stream_get_type();
+ object_class = G_OBJECT_CLASS (class);
+ object_class->dispose = html_stream_dispose;
sync_stream_class = EM_SYNC_STREAM_CLASS (class);
- sync_stream_class->sync_write = emhs_sync_write;
- sync_stream_class->sync_flush = emhs_sync_flush;
- sync_stream_class->sync_close = emhs_sync_close;
+ sync_stream_class->sync_write = html_stream_sync_write;
+ sync_stream_class->sync_flush = html_stream_sync_flush;
+ sync_stream_class->sync_close = html_stream_sync_close;
}
static void
@@ -120,35 +133,6 @@ em_html_stream_init (EMHTMLStream *emhs)
{
}
-static void
-em_html_stream_finalize (EMHTMLStream *emhs)
-{
- if (emhs->html_stream) {
- /* set 'in finalise' flag */
- camel_stream_close (CAMEL_STREAM (emhs));
- }
-}
-
-CamelType
-em_html_stream_get_type (void)
-{
- static CamelType type = CAMEL_INVALID_TYPE;
-
- if (G_UNLIKELY (type == CAMEL_INVALID_TYPE)) {
- type = camel_type_register (
- em_sync_stream_get_type(),
- "EMHTMLStream",
- sizeof (EMHTMLStream),
- sizeof (EMHTMLStreamClass),
- (CamelObjectClassInitFunc) em_html_stream_class_init,
- NULL,
- (CamelObjectInitFunc) em_html_stream_init,
- (CamelObjectFinalizeFunc) em_html_stream_finalize);
- }
-
- return type;
-}
-
/* TODO: Could pass NULL for html_stream, and do a gtk_html_begin
on first data -> less flashing */
CamelStream *
@@ -159,13 +143,13 @@ em_html_stream_new (GtkHTML *html,
g_return_val_if_fail (GTK_IS_HTML (html), NULL);
- new = EM_HTML_STREAM (camel_object_new (EM_HTML_STREAM_TYPE));
+ new = g_object_new (EM_TYPE_HTML_STREAM, NULL);
new->html_stream = html_stream;
new->html = g_object_ref (html);
new->flags = 0;
new->destroy_id = g_signal_connect (
html, "destroy",
- G_CALLBACK (emhs_gtkhtml_destroy), new);
+ G_CALLBACK (html_stream_gtkhtml_destroy), new);
em_sync_stream_set_buffer_size (&new->sync, 8192);
diff --git a/mail/em-html-stream.h b/mail/em-html-stream.h
index 7bf79470dd..24d32f76d8 100644
--- a/mail/em-html-stream.h
+++ b/mail/em-html-stream.h
@@ -28,17 +28,24 @@
#include <gtkhtml/gtkhtml-stream.h>
#include <mail/em-sync-stream.h>
-#define EM_HTML_STREAM_TYPE \
+/* Standard GObject macros */
+#define EM_TYPE_HTML_STREAM \
(em_html_stream_get_type ())
#define EM_HTML_STREAM(obj) \
- (CAMEL_CHECK_CAST \
- ((obj), EM_HTML_STREAM_TYPE, EMHTMLStream))
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), EM_TYPE_HTML_STREAM, EMHTMLStream))
#define EM_HTML_STREAM_CLASS(cls) \
- (CAMEL_CHECK_CLASS_CAST \
- ((cls), EM_HTML_STREAM_TYPE, EMHTMLStreamClass))
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), EM_TYPE_HTML_STREAM, EMHTMLStreamClass))
#define EM_IS_HTML_STREAM(obj) \
- (CAMEL_CHECK_TYPE \
- ((obj), EM_HTML_STREAM_TYPE))
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), EM_TYPE_HTML_STREAM))
+#define EM_IS_HTML_STREAM_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), EM_TYPE_HTML_STREAM))
+#define EM_HTML_STREAM_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), EM_TYPE_HTML_STREAM, EMHTMLStreamClass))
G_BEGIN_DECLS
@@ -59,7 +66,7 @@ struct _EMHTMLStreamClass {
};
-CamelType em_html_stream_get_type (void);
+GType em_html_stream_get_type (void);
CamelStream * em_html_stream_new (GtkHTML *html,
GtkHTMLStream *html_stream);
void em_html_stream_set_flags (EMHTMLStream *emhs,
diff --git a/mail/em-inline-filter.c b/mail/em-inline-filter.c
index 4d3ac946f4..c142ca28b1 100644
--- a/mail/em-inline-filter.c
+++ b/mail/em-inline-filter.c
@@ -27,76 +27,13 @@
#include <string.h>
#include "em-inline-filter.h"
-#include <camel/camel-mime-part.h>
-#include <camel/camel-multipart.h>
-#include <camel/camel-stream-mem.h>
-#include <camel/camel-mime-filter-basic.h>
-#include <camel/camel-stream-filter.h>
#include "em-utils.h"
#include "em-format/em-format.h"
#define d(x)
-static void em_inline_filter_class_init (EMInlineFilterClass *klass);
-static void em_inline_filter_init (CamelObject *object);
-static void em_inline_filter_finalize (CamelObject *object);
-
-static void emif_filter(CamelMimeFilter *f, const gchar *in, gsize len, gsize prespace, gchar **out, gsize *outlen, gsize *outprespace);
-static void emif_complete(CamelMimeFilter *f, const gchar *in, gsize len, gsize prespace, gchar **out, gsize *outlen, gsize *outprespace);
-static void emif_reset(CamelMimeFilter *f);
-
-static CamelMimeFilterClass *parent_class = NULL;
-
-CamelType
-em_inline_filter_get_type (void)
-{
- static CamelType type = CAMEL_INVALID_TYPE;
-
- if (type == CAMEL_INVALID_TYPE) {
- parent_class = (CamelMimeFilterClass *)camel_mime_filter_get_type();
-
- type = camel_type_register(camel_mime_filter_get_type(),
- "EMInlineFilter",
- sizeof (EMInlineFilter),
- sizeof (EMInlineFilterClass),
- (CamelObjectClassInitFunc) em_inline_filter_class_init,
- NULL,
- (CamelObjectInitFunc) em_inline_filter_init,
- (CamelObjectFinalizeFunc) em_inline_filter_finalize);
- }
-
- return type;
-}
-
-static void
-em_inline_filter_class_init (EMInlineFilterClass *klass)
-{
- ((CamelMimeFilterClass *)klass)->filter = emif_filter;
- ((CamelMimeFilterClass *)klass)->complete = emif_complete;
- ((CamelMimeFilterClass *)klass)->reset = emif_reset;
-}
-
-static void
-em_inline_filter_init (CamelObject *object)
-{
- EMInlineFilter *emif = (EMInlineFilter *)object;
-
- emif->data = g_byte_array_new();
-}
-
-static void
-em_inline_filter_finalize (CamelObject *object)
-{
- EMInlineFilter *emif = (EMInlineFilter *)object;
-
- if (emif->base_type)
- camel_content_type_unref(emif->base_type);
-
- emif_reset((CamelMimeFilter *)emif);
- g_byte_array_free(emif->data, TRUE);
- g_free(emif->filename);
-}
+G_DEFINE_TYPE (EMInlineFilter, em_inline_filter, CAMEL_TYPE_MIME_FILTER)
enum {
EMIF_PLAIN,
@@ -122,7 +59,7 @@ static const struct {
};
static void
-emif_add_part(EMInlineFilter *emif, const gchar *data, gint len)
+inline_filter_add_part(EMInlineFilter *emif, const gchar *data, gint len)
{
CamelTransferEncoding encoding;
CamelContentType *content_type;
@@ -148,21 +85,21 @@ emif_add_part(EMInlineFilter *emif, const gchar *data, gint len)
dw = camel_data_wrapper_new();
if (encoding == emif->base_encoding && (encoding == CAMEL_TRANSFER_ENCODING_BASE64 || encoding == CAMEL_TRANSFER_ENCODING_QUOTEDPRINTABLE)) {
- CamelMimeFilterBasic *enc_filter = camel_mime_filter_basic_new_type (encoding == CAMEL_TRANSFER_ENCODING_BASE64 ? CAMEL_MIME_FILTER_BASIC_BASE64_ENC : CAMEL_MIME_FILTER_BASIC_QP_ENC);
- CamelStreamFilter *filter_stream;
+ CamelMimeFilter *enc_filter = camel_mime_filter_basic_new (encoding == CAMEL_TRANSFER_ENCODING_BASE64 ? CAMEL_MIME_FILTER_BASIC_BASE64_ENC : CAMEL_MIME_FILTER_BASIC_QP_ENC);
+ CamelStream *filter_stream;
- filter_stream = camel_stream_filter_new_with_stream (mem);
- camel_stream_filter_add (filter_stream, CAMEL_MIME_FILTER (enc_filter));
+ filter_stream = camel_stream_filter_new (mem);
+ camel_stream_filter_add (CAMEL_STREAM_FILTER (filter_stream), enc_filter);
/* properly encode content */
- camel_data_wrapper_construct_from_stream (dw, CAMEL_STREAM (filter_stream));
+ camel_data_wrapper_construct_from_stream (dw, filter_stream);
- camel_object_unref (enc_filter);
- camel_object_unref (filter_stream);
+ g_object_unref (enc_filter);
+ g_object_unref (filter_stream);
} else {
camel_data_wrapper_construct_from_stream (dw, mem);
}
- camel_object_unref(mem);
+ g_object_unref (mem);
if (emif_types[emif->state].plain && emif->base_type) {
camel_content_type_ref (emif->base_type);
@@ -184,9 +121,9 @@ emif_add_part(EMInlineFilter *emif, const gchar *data, gint len)
dw->encoding = encoding;
part = camel_mime_part_new();
- camel_medium_set_content_object((CamelMedium *)part, dw);
+ camel_medium_set_content ((CamelMedium *)part, dw);
camel_mime_part_set_encoding(part, encoding);
- camel_object_unref(dw);
+ g_object_unref (dw);
if (emif->filename)
camel_mime_part_set_filename(part, emif->filename);
@@ -208,7 +145,7 @@ emif_add_part(EMInlineFilter *emif, const gchar *data, gint len)
}
static gint
-emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
+inline_filter_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
{
EMInlineFilter *emif = (EMInlineFilter *)f;
gchar *inptr = in, *inend = in+len;
@@ -253,7 +190,7 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
if (i >= rest_len || start[i++] != ' ')
break;
- emif_add_part(emif, data_start, start-data_start);
+ inline_filter_add_part(emif, data_start, start-data_start);
name = g_strndup(start+i, inptr-start-i-1);
emif->filename = camel_header_decode_string(name, emif->base_type?camel_content_type_param(emif->base_type, "charset"):NULL);
@@ -262,22 +199,22 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
emif->state = EMIF_UUENC;
} else if (rest_len >= 45 && strncmp (start, "(This file must be converted with BinHex 4.0)", 45) == 0) {
restore_inptr ();
- emif_add_part(emif, data_start, start-data_start);
+ inline_filter_add_part(emif, data_start, start-data_start);
data_start = start;
emif->state = EMIF_BINHEX;
} else if (rest_len >= 11 && strncmp (start, "%!PS-Adobe-", 11) == 0) {
restore_inptr ();
- emif_add_part(emif, data_start, start-data_start);
+ inline_filter_add_part(emif, data_start, start-data_start);
data_start = start;
emif->state = EMIF_POSTSCRIPT;
} else if (rest_len >= 34 && strncmp (start, "-----BEGIN PGP SIGNED MESSAGE-----", 34) == 0) {
restore_inptr ();
- emif_add_part(emif, data_start, start-data_start);
+ inline_filter_add_part(emif, data_start, start-data_start);
data_start = start;
emif->state = EMIF_PGPSIGNED;
} else if (rest_len >= 27 && strncmp (start, "-----BEGIN PGP MESSAGE-----", 27) == 0) {
restore_inptr ();
- emif_add_part(emif, data_start, start-data_start);
+ inline_filter_add_part(emif, data_start, start-data_start);
data_start = start;
emif->state = EMIF_PGPENCRYPTED;
}
@@ -286,7 +223,7 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
case EMIF_UUENC:
if (rest_len >= 3 && strncmp (start, "end", 3) == 0) {
restore_inptr ();
- emif_add_part(emif, data_start, inptr-data_start);
+ inline_filter_add_part(emif, data_start, inptr-data_start);
data_start = inptr;
emif->state = EMIF_PLAIN;
} else {
@@ -302,7 +239,7 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
linelen *= 3;
if (!(len == linelen || len == linelen-1 || len == linelen-2)) {
restore_inptr ();
- emif_add_part(emif, data_start, start-data_start);
+ inline_filter_add_part(emif, data_start, start-data_start);
data_start = start;
inptr = start;
emif->state = EMIF_PLAIN;
@@ -313,7 +250,7 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
case EMIF_BINHEX:
if (inptr > (start+1) && inptr[-2] == ':') {
restore_inptr ();
- emif_add_part(emif, data_start, inptr-data_start);
+ inline_filter_add_part(emif, data_start, inptr-data_start);
data_start = inptr;
emif->state = EMIF_PLAIN;
}
@@ -321,7 +258,7 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
case EMIF_POSTSCRIPT:
if (rest_len >= 5 && strncmp (start, "%%EOF", 5) == 0) {
restore_inptr ();
- emif_add_part(emif, data_start, inptr-data_start);
+ inline_filter_add_part(emif, data_start, inptr-data_start);
data_start = inptr;
emif->state = EMIF_PLAIN;
}
@@ -329,7 +266,7 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
case EMIF_PGPSIGNED:
if (rest_len >= 27 && strncmp (start, "-----END PGP SIGNATURE-----", 27) == 0) {
restore_inptr ();
- emif_add_part(emif, data_start, inptr-data_start);
+ inline_filter_add_part(emif, data_start, inptr-data_start);
data_start = inptr;
emif->state = EMIF_PLAIN;
}
@@ -337,7 +274,7 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
case EMIF_PGPENCRYPTED:
if (rest_len >= 25 && strncmp (start, "-----END PGP MESSAGE-----", 25) == 0) {
restore_inptr ();
- emif_add_part(emif, data_start, inptr-data_start);
+ inline_filter_add_part(emif, data_start, inptr-data_start);
data_start = inptr;
emif->state = EMIF_PLAIN;
}
@@ -353,7 +290,7 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
/* always stop as plain, especially when not read those tags fully */
emif->state = EMIF_PLAIN;
- emif_add_part(emif, data_start, inend-data_start);
+ inline_filter_add_part(emif, data_start, inend-data_start);
} else {
g_byte_array_append(emif->data, (guchar *)data_start, inend-data_start);
}
@@ -362,9 +299,31 @@ emif_scan(CamelMimeFilter *f, gchar *in, gsize len, gint final)
}
static void
-emif_filter(CamelMimeFilter *f, const gchar *in, gsize len, gsize prespace, gchar **out, gsize *outlen, gsize *outprespace)
+inline_filter_finalize (GObject *object)
+{
+ EMInlineFilter *emif = EM_INLINE_FILTER (object);
+
+ if (emif->base_type)
+ camel_content_type_unref(emif->base_type);
+
+ camel_mime_filter_reset (CAMEL_MIME_FILTER (object));
+ g_byte_array_free(emif->data, TRUE);
+ g_free(emif->filename);
+
+ /* Chain up to parent's finalize() method. */
+ G_OBJECT_CLASS (em_inline_filter_parent_class)->finalize (object);
+}
+
+static void
+inline_filter_filter (CamelMimeFilter *filter,
+ const gchar *in,
+ gsize len,
+ gsize prespace,
+ gchar **out,
+ gsize *outlen,
+ gsize *outprespace)
{
- emif_scan(f, (gchar *)in, len, FALSE);
+ inline_filter_scan (filter, (gchar *)in, len, FALSE);
*out = (gchar *)in;
*outlen = len;
@@ -372,9 +331,15 @@ emif_filter(CamelMimeFilter *f, const gchar *in, gsize len, gsize prespace, gcha
}
static void
-emif_complete(CamelMimeFilter *f, const gchar *in, gsize len, gsize prespace, gchar **out, gsize *outlen, gsize *outprespace)
+inline_filter_complete (CamelMimeFilter *filter,
+ const gchar *in,
+ gsize len,
+ gsize prespace,
+ gchar **out,
+ gsize *outlen,
+ gsize *outprespace)
{
- emif_scan(f, (gchar *)in, len, TRUE);
+ inline_filter_scan (filter, (gchar *)in, len, TRUE);
*out = (gchar *)in;
*outlen = len;
@@ -382,16 +347,16 @@ emif_complete(CamelMimeFilter *f, const gchar *in, gsize len, gsize prespace, gc
}
static void
-emif_reset(CamelMimeFilter *f)
+inline_filter_reset (CamelMimeFilter *filter)
{
- EMInlineFilter *emif = (EMInlineFilter *)f;
+ EMInlineFilter *emif = EM_INLINE_FILTER (filter);
GSList *l;
l = emif->parts;
while (l) {
GSList *n = l->next;
- camel_object_unref(l->data);
+ g_object_unref (l->data);
g_slist_free_1(l);
l = n;
@@ -400,6 +365,27 @@ emif_reset(CamelMimeFilter *f)
g_byte_array_set_size(emif->data, 0);
}
+static void
+em_inline_filter_class_init (EMInlineFilterClass *class)
+{
+ GObjectClass *object_class;
+ CamelMimeFilterClass *mime_filter_class;
+
+ object_class = G_OBJECT_CLASS (class);
+ object_class->finalize = inline_filter_finalize;
+
+ mime_filter_class = CAMEL_MIME_FILTER_CLASS (class);
+ mime_filter_class->filter = inline_filter_filter;
+ mime_filter_class->complete = inline_filter_complete;
+ mime_filter_class->reset = inline_filter_reset;
+}
+
+static void
+em_inline_filter_init (EMInlineFilter *emif)
+{
+ emif->data = g_byte_array_new();
+}
+
/**
* em_inline_filter_new:
* @base_encoding: The base transfer-encoding of the
@@ -418,7 +404,7 @@ em_inline_filter_new(CamelTransferEncoding base_encoding, CamelContentType *base
{
EMInlineFilter *emif;
- emif = (EMInlineFilter *)camel_object_new(em_inline_filter_get_type());
+ emif = g_object_new (EM_TYPE_INLINE_FILTER, NULL);
emif->base_encoding = base_encoding;
if (base_type) {
emif->base_type = base_type;
diff --git a/mail/em-inline-filter.h b/mail/em-inline-filter.h
index ac1779f8f0..8ee90a6640 100644
--- a/mail/em-inline-filter.h
+++ b/mail/em-inline-filter.h
@@ -24,18 +24,33 @@
#ifndef EM_INLINE_FILTER_H
#define EM_INLINE_FILTER_H
-#include <camel/camel-mime-filter.h>
-#include <camel/camel-mime-utils.h>
-#include <camel/camel-multipart.h>
+#include <camel/camel.h>
-#define EM_INLINE_FILTER_TYPE (em_inline_filter_get_type ())
-#define EM_INLINE_FILTER(obj) (CAMEL_CHECK_CAST((obj), EM_INLINE_FILTER_TYPE, EMInlineFilter))
-#define EM_INLINE_FILTER_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), EM_INLINE_FILTER_TYPE, EMInlineFilterClass))
-#define EM_IS_INLINE_FILTER(o) (CAMEL_CHECK_TYPE((o), EM_INLINE_FILTER_TYPE))
+/* Standard GObject macros */
+#define EM_TYPE_INLINE_FILTER \
+ (em_inline_filter_get_type ())
+#define EM_INLINE_FILTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), EM_TYPE_INLINE_FILTER, EMInlineFilter))
+#define EM_INLINE_FILTER_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), EM_TYPE_INLINE_FILTER, EMInlineFilterClass))
+#define EM_IS_INLINE_FILTER(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), EM_TYPE_INLINE_FILTER))
+#define EM_IS_INLINE_FILTER_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), EM_TYPE_INLINE_FILTER))
+#define EM_INLINE_FILTER_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), EM_TYPE_INLINE_FILTER, EMInlineFilterClass))
G_BEGIN_DECLS
-typedef struct _EMInlineFilter {
+typedef struct _EMInlineFilter EMInlineFilter;
+typedef struct _EMInlineFilterClass EMInlineFilterClass;
+
+struct _EMInlineFilter {
CamelMimeFilter filter;
gint state;
@@ -46,15 +61,16 @@ typedef struct _EMInlineFilter {
GByteArray *data;
gchar *filename;
GSList *parts;
-} EMInlineFilter;
+};
-typedef struct _EMInlineFilterClass {
+struct _EMInlineFilterClass {
CamelMimeFilterClass filter_class;
-} EMInlineFilterClass;
+};
-CamelType em_inline_filter_get_type(void);
-EMInlineFilter *em_inline_filter_new(CamelTransferEncoding base_encoding, CamelContentType *type);
-CamelMultipart *em_inline_filter_get_multipart(EMInlineFilter *emif);
+GType em_inline_filter_get_type (void);
+EMInlineFilter *em_inline_filter_new (CamelTransferEncoding base_encoding,
+ CamelContentType *type);
+CamelMultipart *em_inline_filter_get_multipart (EMInlineFilter *emif);
G_END_DECLS
diff --git a/mail/em-junk.h b/mail/em-junk.h
index 79493caf2f..978f5ece7d 100644
--- a/mail/em-junk.h
+++ b/mail/em-junk.h
@@ -25,9 +25,8 @@
#ifndef EM_JUNK_H
#define EM_JUNK_H
+#include <camel/camel.h>
#include <e-util/e-plugin.h>
-#include <camel/camel-junk-plugin.h>
-#include <camel/camel-mime-message.h>
#define EM_JUNK_ERROR (em_junk_error_quark ())
diff --git a/mail/em-subscribe-editor.c b/mail/em-subscribe-editor.c
index 4211fdac05..8152974f32 100644
--- a/mail/em-subscribe-editor.c
+++ b/mail/em-subscribe-editor.c
@@ -30,14 +30,12 @@
#include "mail-ops.h"
#include "mail-mt.h"
/*#include "mail-folder-cache.h"*/
-#include "camel/camel-exception.h"
-#include "camel/camel-store.h"
-#include "camel/camel-session.h"
#include "e-util/e-util.h"
#include "e-util/e-account-utils.h"
#include "e-util/e-util-private.h"
+#include "em-folder-utils.h"
#include "em-subscribe-editor.h"
#include "mail-config.h"
@@ -46,6 +44,15 @@
#define d(x)
+enum {
+ COL_SUBSCRIBED = 0, /* G_TYPE_BOOLEAN */
+ COL_NAME, /* G_TYPE_STRING */
+ COL_INFO_NODE, /* G_TYPE_POINTER */
+ COL_CAN_SELECT, /* G_TYPE_BOOLEAN */
+ COL_ICON_NAME, /* G_TYPE_STRING */
+ N_COLUMNS
+};
+
typedef struct _EMSubscribeEditor EMSubscribeEditor;
struct _EMSubscribeEditor {
GQueue stores;
@@ -53,6 +60,9 @@ struct _EMSubscribeEditor {
gint busy;
guint busy_id;
+ gboolean is_filtering; /* whether filtering is active */
+ guint refilter_id; /* source ID of a refilter action, after change in the filter edit */
+
struct _EMSubscribe *current; /* the current one, if any */
GtkDialog *dialog;
@@ -60,6 +70,10 @@ struct _EMSubscribeEditor {
GtkWidget *combobox;
GtkWidget *none_selected; /* 'please select a xxx' message */
GtkWidget *progress;
+ GtkWidget *filter_entry; /* when not empty, then it's filtering */
+ GtkWidget *expand_button;
+ GtkWidget *collapse_button;
+ GtkWidget *refresh_button;
};
typedef struct _EMSubscribe EMSubscribe;
@@ -78,13 +92,16 @@ struct _EMSubscribe {
GtkWidget *widget; /* widget to show for this store */
GtkTreeView *tree; /* tree, if we have it */
+ GtkTreeModel *tree_store; /* a tree store, used when not filtering */
+ GtkTreeModel *list_store; /* list store, used when filtering */
+ GSList *all_selectable; /* list of selectable info's, stored in the tree_store, in reverse order */
+
+ GSList *tree_expanded_paths; /* list of expanded paths in the tree model */
/* list of all returns from get_folder_info, accessed by other structures */
GSList *info_list;
- /* pending LISTs, EMSubscribeNode's */
gint pending_id;
- GQueue pending;
/* queue of pending UN/SUBSCRIBEs, EMsg's */
gint subscribe_id;
@@ -111,6 +128,80 @@ static void sub_editor_busy(EMSubscribeEditor *se, gint dir);
static gint sub_queue_fill_level(EMSubscribe *sub, EMSubscribeNode *node);
static void sub_selection_changed(GtkTreeSelection *selection, EMSubscribe *sub);
+static gboolean
+test_contains (const gchar *where, const gchar *what)
+{
+ gunichar c;
+ const gchar *at = what;
+
+ if (!what || !where)
+ return TRUE;
+
+ while (c = g_utf8_get_char_validated (where, -1), c != 0 && c != (gunichar) -1 && c != (gunichar) -2) {
+ if (g_utf8_get_char (at) == g_unichar_tolower (c)) {
+ at = g_utf8_next_char (at);
+ if (!at || !*at)
+ return TRUE;
+ } else {
+ at = what;
+ }
+ where = g_utf8_next_char (where);
+ }
+
+ return FALSE;
+}
+
+static void
+update_filtering_column (EMSubscribeEditor *se, struct _EMSubscribe *sub)
+{
+ gchar *text;
+ GtkTreeIter iter;
+ GtkTreeModel *list_store;
+ GSList *l;
+
+ g_return_if_fail (se != NULL);
+ g_return_if_fail (sub != NULL);
+ g_return_if_fail (g_utf8_validate (gtk_entry_get_text (GTK_ENTRY (se->filter_entry)), -1, NULL));
+
+ if (!sub->tree)
+ return;
+
+ if (gtk_tree_view_get_model (sub->tree) == sub->list_store)
+ gtk_tree_view_set_model (sub->tree, NULL);
+
+ text = g_utf8_strdown (gtk_entry_get_text (GTK_ENTRY (se->filter_entry)), -1);
+ list_store = sub->list_store;
+
+ gtk_list_store_clear (GTK_LIST_STORE (list_store));
+ for (l = sub->all_selectable; l; l = l->next) {
+ EMSubscribeNode *node = l->data;
+ gboolean bl;
+
+ if (!node || !node->path || !node->info)
+ continue;
+
+ bl = (!text || !*text || (node && node->info && node->info->full_name && test_contains (node->info->full_name, text)));
+ if (!bl)
+ continue;
+
+ gtk_list_store_prepend ((GtkListStore *)list_store, &iter);
+ gtk_list_store_set (GTK_LIST_STORE (list_store), &iter,
+ COL_SUBSCRIBED, (node->info->flags & CAMEL_FOLDER_SUBSCRIBED) != 0,
+ COL_NAME, node->info->full_name,
+ COL_INFO_NODE, node,
+ COL_CAN_SELECT, TRUE,
+ COL_ICON_NAME, em_folder_utils_get_icon_name (node->info->flags),
+ -1);
+ }
+
+ g_free (text);
+
+ if (!gtk_tree_view_get_model (sub->tree)) {
+ gtk_tree_view_set_model (sub->tree, sub->list_store);
+ gtk_tree_view_set_search_column (sub->tree, COL_NAME);
+ }
+}
+
static void
sub_node_free(EMSubscribeNode *node)
{
@@ -136,8 +227,15 @@ sub_unref(EMSubscribe *sub)
d(printf("subscribe object finalised\n"));
/* we dont have to delete the "subscribe" task list, as it must be empty,
otherwise we wouldn't be unreffed (intentional circular reference) */
+ if (sub->tree_store)
+ g_object_unref (sub->tree_store);
+ if (sub->list_store)
+ g_object_unref (sub->list_store);
if (sub->folders)
g_hash_table_destroy(sub->folders);
+ g_slist_free (sub->all_selectable);
+ g_slist_foreach (sub->tree_expanded_paths, (GFunc) gtk_tree_path_free, NULL);
+ g_slist_free (sub->tree_expanded_paths);
l = sub->info_list;
while (l) {
GSList *n = l->next;
@@ -147,7 +245,7 @@ sub_unref(EMSubscribe *sub)
l = n;
}
if (sub->store)
- camel_object_unref(sub->store);
+ g_object_unref (sub->store);
g_free(sub->store_uri);
g_free(sub);
}
@@ -195,13 +293,14 @@ sub_folder_done (struct _zsubscribe_msg *m)
}
/* make sure the tree view matches the correct state */
- model = gtk_tree_view_get_model(m->sub->tree);
+ /* all actions are done on tree store, synced to list store */
+ model = m->sub->tree_store;
if (gtk_tree_model_get_iter_from_string(model, &iter, m->path)) {
issub = (m->node->info->flags & CAMEL_FOLDER_SUBSCRIBED) != 0;
- gtk_tree_model_get(model, &iter, 0, &subscribed, 2, &node, -1);
- if (node == m->node)
- gtk_tree_store_set((GtkTreeStore *)model, &iter, 0, issub, -1);
- else {
+ gtk_tree_model_get(model, &iter, COL_SUBSCRIBED, &subscribed, COL_INFO_NODE, &node, -1);
+ if (node == m->node) {
+ gtk_tree_store_set ((GtkTreeStore *)model, &iter, COL_SUBSCRIBED, issub, -1);
+ } else {
d(printf("node mismatch, or subscribe state changed failed\n"));
}
}
@@ -267,14 +366,15 @@ sub_subscribe_folder (EMSubscribe *sub, EMSubscribeNode *node, gint state, const
/* ********************************************************************** */
static void
-sub_fill_level(EMSubscribe *sub, CamelFolderInfo *info, GtkTreeIter *parent, gint pending)
+sub_fill_levels (EMSubscribe *sub, CamelFolderInfo *info, GtkTreeIter *parent)
{
CamelFolderInfo *fi;
GtkTreeStore *treestore;
GtkTreeIter iter;
EMSubscribeNode *node;
- treestore = (GtkTreeStore *)gtk_tree_view_get_model(sub->tree);
+ treestore = (GtkTreeStore *) sub->tree_store;
+ g_return_if_fail (treestore != NULL);
/* first, fill a level up */
fi = info;
@@ -288,12 +388,25 @@ sub_fill_level(EMSubscribe *sub, CamelFolderInfo *info, GtkTreeIter *parent, gi
node = g_malloc0(sizeof(*node));
node->info = fi;
state = (fi->flags & CAMEL_FOLDER_SUBSCRIBED) != 0;
- gtk_tree_store_set(treestore, &iter, 0, state, 1, fi->name, 2, node, -1);
+ gtk_tree_store_set (treestore, &iter,
+ COL_SUBSCRIBED, state,
+ COL_NAME, fi->name,
+ COL_INFO_NODE, node,
+ COL_CAN_SELECT, (fi->flags & CAMEL_FOLDER_NOSELECT) == 0,
+ COL_ICON_NAME, em_folder_utils_get_icon_name (fi->flags),
+ -1);
+ if ((fi->flags & CAMEL_FOLDER_NOSELECT) == 0)
+ sub->all_selectable = g_slist_prepend (sub->all_selectable, node);
+ if (state) {
+ GtkTreePath *path = gtk_tree_model_get_path ((GtkTreeModel *)treestore, &iter);
+ gtk_tree_view_expand_to_path (sub->tree, path);
+ gtk_tree_path_free (path);
+ }
if ((fi->flags & CAMEL_FOLDER_NOINFERIORS) == 0)
node->path = gtk_tree_model_get_path((GtkTreeModel *)treestore, &iter);
g_hash_table_insert(sub->folders, fi->full_name, node);
} else if (node->path) {
- gtk_tree_model_get_iter(gtk_tree_view_get_model(sub->tree), &iter, node->path);
+ gtk_tree_model_get_iter (GTK_TREE_MODEL (treestore), &iter, node->path);
known = TRUE;
}
@@ -306,18 +419,9 @@ sub_fill_level(EMSubscribe *sub, CamelFolderInfo *info, GtkTreeIter *parent, gi
/* save time, if we have any children alread, dont re-scan */
if (fi->child) {
d(printf("scanning child '%s'\n", fi->child->full_name));
- sub_fill_level(sub, fi->child, &iter, FALSE);
+ sub_fill_levels (sub, fi->child, &iter);
} else if (!(fi->flags & CAMEL_FOLDER_NOCHILDREN)) {
- GtkTreeIter new_iter;
d(printf("flags: CAMEL_FOLDER_NOCHILDREN is not set '%s', known:%d\n", fi->full_name, known?1:0));
- if (!known) {
- gtk_tree_store_append(treestore, &new_iter, &iter);
- gtk_tree_store_set(treestore, &new_iter, 0, 0, 1, "Loading...", 2, NULL, -1);
- }
- }
- else {
- if (pending)
- g_queue_push_tail (&sub->pending, node);
}
} else {
d(printf("%s:%s: fi->flags & CAMEL_FOLDER_NOINFERIORS=%d\t node->path=[%p]\n",
@@ -344,21 +448,17 @@ struct _emse_folderinfo_msg {
static void
sub_folderinfo_exec (struct _emse_folderinfo_msg *m)
{
- gchar *pub_full_name=NULL;
-
if (m->seq == m->sub->seq) {
- camel_operation_register(m->base.cancel);
- m->info = camel_store_get_folder_info(m->sub->store, m->node?m->node->info->full_name:pub_full_name,
- CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL | CAMEL_STORE_FOLDER_INFO_SUBSCRIPTION_LIST, &m->base.ex);
- camel_operation_unregister(m->base.cancel);
+ camel_operation_register (m->base.cancel);
+ /* get the full folder tree for search ability */
+ m->info = camel_store_get_folder_info (m->sub->store, NULL, CAMEL_STORE_FOLDER_INFO_NO_VIRTUAL | CAMEL_STORE_FOLDER_INFO_SUBSCRIPTION_LIST | CAMEL_STORE_FOLDER_INFO_RECURSIVE, &m->base.ex);
+ camel_operation_unregister (m->base.cancel);
}
}
static void
sub_folderinfo_done (struct _emse_folderinfo_msg *m)
{
- EMSubscribeNode *node;
-
m->sub->pending_id = -1;
if (m->sub->cancel || m->seq != m->sub->seq)
return;
@@ -372,17 +472,15 @@ sub_folderinfo_done (struct _emse_folderinfo_msg *m)
if (m->node) {
GtkTreeIter iter;
- gtk_tree_model_get_iter(gtk_tree_view_get_model(m->sub->tree), &iter, m->node->path);
- sub_fill_level(m->sub, m->info, &iter, FALSE);
+ gtk_tree_model_get_iter (m->sub->tree_store, &iter, m->node->path);
+ sub_fill_levels (m->sub, m->info, &iter);
} else {
- sub_fill_level(m->sub, m->info, NULL, TRUE);
+ sub_fill_levels (m->sub, m->info, NULL);
}
- }
- /* check for more to do */
- node = g_queue_pop_head (&m->sub->pending);
- if (node)
- sub_queue_fill_level(m->sub, node);
+ if (m->sub->editor->is_filtering)
+ update_filtering_column (m->sub->editor, m->sub);
+ }
}
static void
@@ -436,6 +534,21 @@ sub_queue_fill_level(EMSubscribe *sub, EMSubscribeNode *node)
return id;
}
+static void
+update_buttons_sesitivity (EMSubscribeEditor *se)
+{
+ gboolean is_tree_model;
+
+ if (!se)
+ return;
+
+ is_tree_model = se->current && se->current->tree && !se->is_filtering;
+
+ gtk_widget_set_sensitive (se->expand_button, is_tree_model);
+ gtk_widget_set_sensitive (se->collapse_button, is_tree_model);
+ gtk_widget_set_sensitive (se->refresh_button, se->current && se->current->tree);
+}
+
/* ********************************************************************** */
/* (un) subscribes the current selection */
@@ -451,10 +564,26 @@ sub_subscribe_toggled(GtkCellRendererToggle *render, const gchar *spath, EMSubsc
d(printf("subscribe toggled?\n"));
if (gtk_tree_model_get_iter_from_string(model, &iter, spath)) {
- gtk_tree_model_get(model, &iter, 0, &subscribed, 2, &node, -1);
+ gchar *free_path;
+
+ gtk_tree_model_get(model, &iter, COL_SUBSCRIBED, &subscribed, COL_INFO_NODE, &node, -1);
+ g_return_if_fail (node != NULL);
subscribed = !subscribed;
d(printf("new state is %s\n", subscribed?"subscribed":"not subscribed"));
- gtk_tree_store_set((GtkTreeStore *)model, &iter, 0, subscribed, -1);
+ if (GTK_IS_TREE_STORE (model)) {
+ gtk_tree_store_set ((GtkTreeStore *)model, &iter, COL_SUBSCRIBED, subscribed, -1);
+ } else {
+ /* it's a list store, convert spath to tree path and update tree store value */
+ gtk_list_store_set (GTK_LIST_STORE (model), &iter, COL_SUBSCRIBED, subscribed, -1);
+ if (gtk_tree_model_get_iter (sub->tree_store, &iter, node->path)) {
+ gtk_tree_store_set ((GtkTreeStore *)sub->tree_store, &iter, COL_SUBSCRIBED, subscribed, -1);
+ }
+ free_path = gtk_tree_path_to_string (node->path);
+ if (subscribed)
+ sub->tree_expanded_paths = g_slist_prepend (sub->tree_expanded_paths, gtk_tree_path_copy (node->path));
+ spath = free_path;
+ }
+
sub_subscribe_folder(sub, node, subscribed, spath);
}
}
@@ -465,7 +594,7 @@ static void sub_do_changed(GtkTreeModel *model, GtkTreePath *path, GtkTreeIter *
EMSubscribeNode *node;
gboolean subscribed;
- gtk_tree_model_get(model, iter, 0, &subscribed, 2, &node, -1);
+ gtk_tree_model_get(model, iter, COL_SUBSCRIBED, &subscribed, COL_INFO_NODE, &node, -1);
if (subscribed)
sub->selected_subscribed_count++;
@@ -491,52 +620,6 @@ static void sub_row_activated(GtkTreeView *tree, GtkTreePath *path, GtkTreeViewC
}
static void
-sub_row_expanded(GtkTreeView *tree, GtkTreeIter *iter, GtkTreePath *path, EMSubscribe *sub)
-{
- EMSubscribeNode *node;
- GtkTreeIter child;
- GtkTreeModel *model = (GtkTreeModel *)gtk_tree_view_get_model(tree);
- gchar *row_name;
-
- gtk_tree_model_get(model, iter, 1, &row_name, -1);
- d(printf("%s:%s: row-expanded '%s'\n", G_STRLOC, G_STRFUNC,
- row_name?row_name:"<root>"));
-
- /* Do we really need to fetch the children for this row? */
- if (gtk_tree_model_iter_n_children(model, iter) > 1) {
- gtk_tree_model_get(model, iter, 2, &node, -1);
- if (node->path) {
- /* Mark it as already-processed path */
- gtk_tree_path_free(node->path);
- node->path=NULL;
- }
- return;
- } else {
- gtk_tree_model_iter_children(model, &child, iter);
- gtk_tree_model_get(model, &child, 2, &node, -1);
- if (!node) {
- /* This is the place holder node, delete it and fire-up a pending */
- gtk_tree_store_remove((GtkTreeStore *)model, &child);
- gtk_tree_model_get(model, iter, 2, &node, -1);
- } else {
- gtk_tree_model_get(model, iter, 2, &node, -1);
- if (node->path) {
- /* Mark it as already-processed path */
- gtk_tree_path_free(node->path);
- node->path=NULL;
- }
- return;
- }
- }
-
- g_queue_push_head (&sub->pending, node);
-
- if (sub->pending_id == -1
- && (node = g_queue_pop_tail (&sub->pending)) != NULL)
- sub_queue_fill_level(sub, node);
-}
-
-static void
sub_destroy(GtkWidget *w, EMSubscribe *sub)
{
struct _zsubscribe_msg *m;
@@ -571,7 +654,6 @@ subscribe_new(EMSubscribeEditor *se, const gchar *uri)
sub->editor = se;
sub->ref_count = 1;
sub->pending_id = -1;
- g_queue_init (&sub->pending);
sub->subscribe_id = -1;
g_queue_init (&sub->subscribe);
sub->store_id = -1;
@@ -593,19 +675,37 @@ subscribe_set_store(EMSubscribe *sub, CamelStore *store)
gtk_widget_show(sub->widget);
} else {
GtkTreeSelection *selection;
+ GtkTreeViewColumn *column;
GtkCellRenderer *renderer;
- GtkTreeStore *model;
+ sub->all_selectable = NULL;
+ sub->tree_expanded_paths = NULL;
sub->store = store;
- camel_object_ref(store);
+ g_object_ref (store);
sub->folders = g_hash_table_new_full (
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
(GDestroyNotify) sub_node_free);
- model = gtk_tree_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER);
- sub->tree = (GtkTreeView *) gtk_tree_view_new_with_model ((GtkTreeModel *) model);
- g_object_unref (model);
+ sub->tree_store = (GtkTreeModel *) gtk_tree_store_new (N_COLUMNS,
+ G_TYPE_BOOLEAN, /* COL_SUBSCRIBED */
+ G_TYPE_STRING, /* COL_NAME */
+ G_TYPE_POINTER, /* COL_INFO_NODE */
+ G_TYPE_BOOLEAN, /* COL_CAN_SELECT */
+ G_TYPE_STRING /* COL_ICON_NAME */
+ );
+ g_object_ref_sink (sub->tree_store);
+
+ sub->list_store = (GtkTreeModel *) gtk_list_store_new (N_COLUMNS,
+ G_TYPE_BOOLEAN, /* COL_SUBSCRIBED */
+ G_TYPE_STRING, /* COL_NAME */
+ G_TYPE_POINTER, /* COL_INFO_NODE */
+ G_TYPE_BOOLEAN, /* COL_CAN_SELECT */
+ G_TYPE_STRING /* COL_ICON_NAME */
+ );
+ g_object_ref_sink (sub->list_store);
+
+ sub->tree = (GtkTreeView *) gtk_tree_view_new_with_model (sub->editor->is_filtering ? sub->list_store : sub->tree_store);
gtk_widget_show ((GtkWidget *)sub->tree);
sub->widget = gtk_scrolled_window_new (NULL, NULL);
@@ -616,18 +716,31 @@ subscribe_set_store(EMSubscribe *sub, CamelStore *store)
renderer = gtk_cell_renderer_toggle_new ();
g_object_set(renderer, "activatable", TRUE, NULL);
- gtk_tree_view_insert_column_with_attributes (sub->tree, -1, _("Subscribed"), renderer, "active", 0, NULL);
+ gtk_tree_view_insert_column_with_attributes (sub->tree, -1, _("Subscribed"), renderer, "active", COL_SUBSCRIBED, "visible", COL_CAN_SELECT, NULL);
g_signal_connect(renderer, "toggled", G_CALLBACK(sub_subscribe_toggled), sub);
+ column = gtk_tree_view_column_new ();
+ gtk_tree_view_column_set_title (column, _("Folder"));
+ gtk_tree_view_append_column (sub->tree, column);
+
+ renderer = gtk_cell_renderer_pixbuf_new ();
+ gtk_tree_view_column_pack_start (column, renderer, FALSE);
+ gtk_tree_view_column_add_attribute (
+ column, renderer, "icon-name", COL_ICON_NAME);
+
renderer = gtk_cell_renderer_text_new ();
- gtk_tree_view_insert_column_with_attributes (sub->tree, -1, _("Folder"), renderer, "text", 1, NULL);
+ gtk_tree_view_column_pack_start (column, renderer, TRUE);
+ gtk_tree_view_column_add_attribute (
+ column, renderer, "text", COL_NAME);
gtk_tree_view_set_expander_column(sub->tree, gtk_tree_view_get_column(sub->tree, 1));
selection = gtk_tree_view_get_selection (sub->tree);
gtk_tree_selection_set_mode (selection, GTK_SELECTION_MULTIPLE);
gtk_tree_view_set_headers_visible (sub->tree, FALSE);
- g_signal_connect(sub->tree, "row-expanded", G_CALLBACK(sub_row_expanded), sub);
+ gtk_tree_view_set_search_column (sub->tree, COL_NAME);
+ gtk_tree_view_set_enable_search (sub->tree, TRUE);
+
g_signal_connect(sub->tree, "row-activated", G_CALLBACK(sub_row_activated), sub);
g_signal_connect(sub->tree, "destroy", G_CALLBACK(sub_destroy), sub);
@@ -635,6 +748,8 @@ subscribe_set_store(EMSubscribe *sub, CamelStore *store)
g_signal_connect(selection, "changed", G_CALLBACK(sub_selection_changed), sub);
sub_queue_fill_level(sub, NULL);
+
+ update_buttons_sesitivity (sub->editor);
}
gtk_box_pack_start((GtkBox *)sub->editor->vbox, sub->widget, TRUE, TRUE, 0);
@@ -647,6 +762,9 @@ sub_editor_destroy(GtkWidget *w, EMSubscribeEditor *se)
d(printf("editor destroyed, freeing editor\n"));
if (se->busy_id)
g_source_remove(se->busy_id);
+ if (se->refilter_id != 0)
+ g_source_remove (se->refilter_id);
+ se->refilter_id = 0;
g_free(se);
}
@@ -675,9 +793,15 @@ sub_editor_refresh(GtkWidget *w, EMSubscribeEditor *se)
mail_msg_wait(sub->pending_id);
}
- gtk_tree_store_clear((GtkTreeStore *)gtk_tree_view_get_model(sub->tree));
+ g_slist_free (sub->all_selectable);
+ sub->all_selectable = NULL;
- g_queue_init (&sub->pending);
+ g_slist_foreach (sub->tree_expanded_paths, (GFunc) gtk_tree_path_free, NULL);
+ g_slist_free (sub->tree_expanded_paths);
+ sub->tree_expanded_paths = NULL;
+
+ gtk_tree_store_clear ((GtkTreeStore *)sub->tree_store);
+ gtk_list_store_clear ((GtkListStore *)sub->list_store);
if (sub->folders)
g_hash_table_destroy(sub->folders);
@@ -717,11 +841,9 @@ sub_editor_combobox_changed (GtkWidget *w, EMSubscribeEditor *se)
d(printf("combobox changed\n"));
- i = 1;
+ i = 0;
n = gtk_combo_box_get_active (GTK_COMBO_BOX (se->combobox));
- if (n == 0) {
- gtk_widget_show (se->none_selected);
- } else {
+ if (n != -1) {
GtkTreeIter iter;
GtkTreeModel *model;
@@ -729,14 +851,27 @@ sub_editor_combobox_changed (GtkWidget *w, EMSubscribeEditor *se)
model = gtk_combo_box_get_model (GTK_COMBO_BOX (se->combobox));
if (gtk_tree_model_get_iter_first (model, &iter)) {
- /* hide the first item */
- gtk_list_store_set (
- GTK_LIST_STORE (model), &iter,
- 1, FALSE,
- -1);
+ gboolean is_account = TRUE;
+
+ gtk_tree_model_get (model, &iter, 1, &is_account, -1);
+
+ if (!is_account && n > 0) {
+ /* the first node it not an account node, it's the notice
+ about "select account please", thus remove it completely */
+ gtk_list_store_remove (GTK_LIST_STORE (model), &iter);
+ n--;
+ } else if (!is_account) {
+ gtk_widget_show (se->none_selected);
+ i++;
+ }
}
}
+ if (se->refilter_id != 0) {
+ g_source_remove (se->refilter_id);
+ se->refilter_id = 0;
+ }
+
se->current = NULL;
link = g_queue_peek_head_link (&se->stores);
while (link != NULL) {
@@ -758,6 +893,11 @@ sub_editor_combobox_changed (GtkWidget *w, EMSubscribeEditor *se)
link = g_list_next (link);
}
+
+ update_buttons_sesitivity (se);
+
+ if (se->current && se->is_filtering)
+ update_filtering_column (se, se->current);
}
static gboolean sub_editor_timeout(EMSubscribeEditor *se)
@@ -803,6 +943,137 @@ window_size_allocate (GtkWidget *widget, GtkAllocation *allocation)
g_object_unref (gconf);
}
+static void
+store_expanded_rows_cb (GtkTreeView *tree_view, GtkTreePath *path, gpointer data)
+{
+ GSList **slist = data;
+
+ g_return_if_fail (path != NULL);
+ g_return_if_fail (data != NULL);
+
+ *slist = g_slist_prepend (*slist, gtk_tree_path_copy (path));
+}
+
+static void
+expand_to_path_cb (GtkTreePath *path, GtkTreeView *tree_view)
+{
+ g_return_if_fail (path != NULL);
+ g_return_if_fail (tree_view != NULL);
+
+ gtk_tree_view_expand_to_path (tree_view, path);
+}
+
+static void
+change_filtering_models (EMSubscribeEditor *se, gboolean turn_on)
+{
+ GList *link;
+
+ link = g_queue_peek_head_link (&se->stores);
+ while (link != NULL) {
+ struct _EMSubscribe *sub = link->data;
+
+ if (sub->widget && sub->tree) {
+ if (turn_on) {
+ g_slist_foreach (sub->tree_expanded_paths, (GFunc) gtk_tree_path_free, NULL);
+ g_slist_free (sub->tree_expanded_paths);
+ sub->tree_expanded_paths = NULL;
+
+ gtk_tree_view_map_expanded_rows (sub->tree, store_expanded_rows_cb, &sub->tree_expanded_paths);
+
+ gtk_list_store_clear (GTK_LIST_STORE (sub->list_store));
+ gtk_tree_view_set_model (sub->tree, sub->list_store);
+ } else {
+ gtk_tree_view_set_model (sub->tree, sub->tree_store);
+
+ g_slist_foreach (sub->tree_expanded_paths, (GFunc) expand_to_path_cb, sub->tree);
+ g_slist_foreach (sub->tree_expanded_paths, (GFunc) gtk_tree_path_free, NULL);
+ g_slist_free (sub->tree_expanded_paths);
+ sub->tree_expanded_paths = NULL;
+ }
+
+ gtk_tree_view_set_search_column (sub->tree, COL_NAME);
+ }
+
+ link = g_list_next (link);
+ }
+
+ update_buttons_sesitivity (se);
+}
+
+static gboolean
+update_filter_on_timeout_cb (gpointer data)
+{
+ EMSubscribeEditor *se = data;
+
+ g_return_val_if_fail (se != NULL, FALSE);
+
+ se->refilter_id = 0;
+ if (se->current) {
+ /* update filtering options */
+ update_filtering_column (se, se->current);
+ }
+
+ return FALSE;
+}
+
+static void
+clear_filter_cb (GtkEntry *entry, GtkEntryIconPosition icon_pos, GdkEvent *event, EMSubscribeEditor *se)
+{
+ g_return_if_fail (entry != NULL);
+
+ gtk_entry_set_text (entry, "");
+}
+
+static void
+filter_changed_cb (GtkEntry *entry, EMSubscribeEditor *se)
+{
+ const gchar *text;
+ gboolean was_filtering;
+
+ g_return_if_fail (entry != NULL);
+ g_return_if_fail (se != NULL);
+
+ text = gtk_entry_get_text (entry);
+ was_filtering = se->is_filtering;
+ se->is_filtering = text && *text;
+ gtk_entry_set_icon_sensitive (GTK_ENTRY (se->filter_entry), GTK_ENTRY_ICON_SECONDARY, se->is_filtering);
+
+ if (se->refilter_id != 0) {
+ g_source_remove (se->refilter_id);
+ se->refilter_id = 0;
+ }
+
+ if ((was_filtering && !se->is_filtering) || (!was_filtering && se->is_filtering)) {
+ /* turn on/off filtering - change models */
+ change_filtering_models (se, se->is_filtering);
+ }
+
+ if (se->is_filtering && se->current)
+ se->refilter_id = g_timeout_add (333, update_filter_on_timeout_cb, se);
+}
+
+static void
+expand_all_cb (GtkButton *button, EMSubscribeEditor *se)
+{
+ g_return_if_fail (se != NULL);
+ g_return_if_fail (!se->is_filtering);
+ g_return_if_fail (se->current != NULL);
+ g_return_if_fail (se->current->tree != NULL);
+
+ gtk_tree_view_expand_all (se->current->tree);
+}
+
+static void
+collapse_all_cb (GtkButton *button, EMSubscribeEditor *se)
+{
+ g_return_if_fail (se != NULL);
+ g_return_if_fail (!se->is_filtering);
+ g_return_if_fail (se->current != NULL);
+ g_return_if_fail (se->current->tree != NULL);
+
+ gtk_tree_view_collapse_all (se->current->tree);
+}
+
GtkWidget *
em_subscribe_editor_new(void)
{
@@ -811,6 +1082,7 @@ em_subscribe_editor_new(void)
EIterator *iter;
GtkBuilder *builder;
GtkWidget *w;
+ GtkWidget *container;
GtkCellRenderer *cell;
GtkListStore *store;
GtkTreeIter gtiter;
@@ -826,8 +1098,12 @@ em_subscribe_editor_new(void)
g_signal_connect(se->dialog, "destroy", G_CALLBACK(sub_editor_destroy), se);
gtk_widget_ensure_style ((GtkWidget *)se->dialog);
- gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)se->dialog)->action_area, 12);
- gtk_container_set_border_width ((GtkContainer *) ((GtkDialog *)se->dialog)->vbox, 0);
+
+ container = gtk_dialog_get_action_area (GTK_DIALOG (se->dialog));
+ gtk_container_set_border_width (GTK_CONTAINER (container), 12);
+
+ container = gtk_dialog_get_content_area (GTK_DIALOG (se->dialog));
+ gtk_container_set_border_width (GTK_CONTAINER (container), 0);
se->vbox = e_builder_get_widget(builder, "tree_box");
@@ -844,11 +1120,22 @@ em_subscribe_editor_new(void)
se->progress = e_builder_get_widget(builder, "progress_bar");
gtk_widget_hide(se->progress);
- w = e_builder_get_widget(builder, "close_button");
- g_signal_connect(w, "clicked", G_CALLBACK(sub_editor_close), se);
+ se->filter_entry = e_builder_get_widget (builder, "filter_entry");
+ gtk_entry_set_icon_sensitive (GTK_ENTRY (se->filter_entry), GTK_ENTRY_ICON_SECONDARY, FALSE);
+ g_signal_connect (se->filter_entry, "icon-press", G_CALLBACK (clear_filter_cb), se);
+ g_signal_connect (se->filter_entry, "changed", G_CALLBACK (filter_changed_cb), se);
- w = e_builder_get_widget(builder, "refresh_button");
- g_signal_connect(w, "clicked", G_CALLBACK(sub_editor_refresh), se);
+ se->expand_button = e_builder_get_widget (builder, "expand_button");
+ g_signal_connect (se->expand_button, "clicked", G_CALLBACK (expand_all_cb), se);
+
+ se->collapse_button = e_builder_get_widget (builder, "collapse_button");
+ g_signal_connect (se->collapse_button, "clicked", G_CALLBACK (collapse_all_cb), se);
+
+ se->refresh_button = e_builder_get_widget (builder, "refresh_button");
+ g_signal_connect (se->refresh_button, "clicked", G_CALLBACK (sub_editor_refresh), se);
+
+ w = e_builder_get_widget (builder, "close_button");
+ g_signal_connect (w, "clicked", G_CALLBACK (sub_editor_close), se);
/* setup stores combobox */
se->combobox = e_builder_get_widget (builder, "store_combobox");
@@ -862,14 +1149,13 @@ em_subscribe_editor_new(void)
gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (se->combobox), cell, TRUE);
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (se->combobox), cell,
"text", 0,
- "visible", 1,
NULL);
gtk_list_store_append (store, &gtiter);
gtk_list_store_set (
store, &gtiter,
0, _("No server has been selected"),
- 1, TRUE,
+ 1, FALSE,
-1);
accounts = e_get_account_list ();
@@ -924,5 +1210,7 @@ em_subscribe_editor_new(void)
gtk_window_set_default_size ((GtkWindow *) se->dialog, window_size.width, window_size.height);
g_signal_connect (se->dialog, "size-allocate", G_CALLBACK (window_size_allocate), NULL);
+ update_buttons_sesitivity (se);
+
return GTK_WIDGET (se->dialog);
}
diff --git a/mail/em-sync-stream.c b/mail/em-sync-stream.c
index 982a56c90a..d0dd6e7853 100644
--- a/mail/em-sync-stream.c
+++ b/mail/em-sync-stream.c
@@ -29,13 +29,10 @@
#include <stdio.h>
#include <string.h>
-#include <camel/camel-object.h>
#include <libedataserver/e-flag.h>
#include "mail-mt.h"
-#define EMSS_CLASS(x) ((EMSyncStreamClass *)(((CamelObject *)(x))->klass))
-
enum _write_msg_t {
EMSS_WRITE,
EMSS_FLUSH,
@@ -52,10 +49,10 @@ struct _write_msg {
gsize len;
};
-static CamelStreamClass *parent_class = NULL;
+G_DEFINE_TYPE (EMSyncStream, em_sync_stream, CAMEL_TYPE_STREAM)
static gboolean
-emss_process_message (struct _write_msg *msg)
+sync_stream_process_message (struct _write_msg *msg)
{
struct _EMSyncStream *emss = msg->emss;
@@ -68,7 +65,7 @@ emss_process_message (struct _write_msg *msg)
/* Force out any pending data before doing anything else. */
if (emss->buffer != NULL && emss->buffer->len > 0) {
- EMSS_CLASS (emss)->sync_write (
+ EM_SYNC_STREAM_GET_CLASS (emss)->sync_write (
CAMEL_STREAM (emss), emss->buffer->str,
emss->buffer->len);
g_string_set_size (emss->buffer, 0);
@@ -76,15 +73,15 @@ emss_process_message (struct _write_msg *msg)
switch (msg->op) {
case EMSS_WRITE:
- EMSS_CLASS (emss)->sync_write (
+ EM_SYNC_STREAM_GET_CLASS (emss)->sync_write (
CAMEL_STREAM (emss), msg->string, msg->len);
break;
case EMSS_FLUSH:
- EMSS_CLASS (emss)->sync_flush (
+ EM_SYNC_STREAM_GET_CLASS (emss)->sync_flush (
CAMEL_STREAM (emss));
break;
case EMSS_CLOSE:
- EMSS_CLASS (emss)->sync_close (
+ EM_SYNC_STREAM_GET_CLASS (emss)->sync_close (
CAMEL_STREAM (emss));
break;
}
@@ -96,7 +93,7 @@ emss_process_message (struct _write_msg *msg)
}
static void
-emss_sync_op (EMSyncStream *emss, enum _write_msg_t op,
+sync_stream_sync_op (EMSyncStream *emss, enum _write_msg_t op,
const gchar *string, gsize len)
{
struct _write_msg msg;
@@ -107,20 +104,31 @@ emss_sync_op (EMSyncStream *emss, enum _write_msg_t op,
msg.string = string;
msg.len = len;
- camel_object_ref (emss);
+ g_object_ref (emss);
if (emss->idle_id)
g_source_remove (emss->idle_id);
- emss->idle_id = g_idle_add ((GSourceFunc) emss_process_message, &msg);
+ emss->idle_id = g_idle_add ((GSourceFunc) sync_stream_process_message, &msg);
e_flag_wait (msg.done);
e_flag_free (msg.done);
- camel_object_unref (emss);
+ g_object_unref (emss);
+}
+
+static void
+sync_stream_finalize (GObject *object)
+{
+ EMSyncStream *emss = EM_SYNC_STREAM (object);
+
+ if (emss->buffer != NULL)
+ g_string_free (emss->buffer, TRUE);
+ if (emss->idle_id)
+ g_source_remove (emss->idle_id);
}
static gssize
-emss_stream_write (CamelStream *stream, const gchar *string, gsize len)
+sync_stream_write (CamelStream *stream, const gchar *string, gsize len)
{
EMSyncStream *emss = EM_SYNC_STREAM (stream);
@@ -128,21 +136,21 @@ emss_stream_write (CamelStream *stream, const gchar *string, gsize len)
return -1;
if (mail_in_main_thread ()) {
- EMSS_CLASS (emss)->sync_write (stream, string, len);
+ EM_SYNC_STREAM_GET_CLASS (emss)->sync_write (stream, string, len);
} else if (emss->buffer != NULL) {
if (len < (emss->buffer->allocated_len - emss->buffer->len))
g_string_append_len (emss->buffer, string, len);
else
- emss_sync_op (emss, EMSS_WRITE, string, len);
+ sync_stream_sync_op (emss, EMSS_WRITE, string, len);
} else {
- emss_sync_op(emss, EMSS_WRITE, string, len);
+ sync_stream_sync_op(emss, EMSS_WRITE, string, len);
}
return (gssize) len;
}
static gint
-emss_stream_flush (CamelStream *stream)
+sync_stream_flush (CamelStream *stream)
{
EMSyncStream *emss = EM_SYNC_STREAM (stream);
@@ -150,15 +158,15 @@ emss_stream_flush (CamelStream *stream)
return -1;
if (mail_in_main_thread ())
- return EMSS_CLASS (emss)->sync_flush (stream);
+ return EM_SYNC_STREAM_GET_CLASS (emss)->sync_flush (stream);
else
- emss_sync_op (emss, EMSS_FLUSH, NULL, 0);
+ sync_stream_sync_op (emss, EMSS_FLUSH, NULL, 0);
return 0;
}
static gint
-emss_stream_close (CamelStream *stream)
+sync_stream_close (CamelStream *stream)
{
EMSyncStream *emss = EM_SYNC_STREAM (stream);
@@ -168,9 +176,9 @@ emss_stream_close (CamelStream *stream)
emss->idle_id = 0;
if (mail_in_main_thread ())
- return EMSS_CLASS (emss)->sync_close (stream);
+ return EM_SYNC_STREAM_GET_CLASS (emss)->sync_close (stream);
else
- emss_sync_op (emss, EMSS_CLOSE, NULL, 0);
+ sync_stream_sync_op (emss, EMSS_CLOSE, NULL, 0);
return 0;
}
@@ -178,41 +186,21 @@ emss_stream_close (CamelStream *stream)
static void
em_sync_stream_class_init (EMSyncStreamClass *class)
{
- CamelStreamClass *stream_class = CAMEL_STREAM_CLASS (class);
+ GObjectClass *object_class;
+ CamelStreamClass *stream_class;
- parent_class = (CamelStreamClass *) CAMEL_STREAM_TYPE;
+ object_class = G_OBJECT_CLASS (class);
+ object_class->finalize = sync_stream_finalize;
- stream_class->write = emss_stream_write;
- stream_class->flush = emss_stream_flush;
- stream_class->close = emss_stream_close;
+ stream_class = CAMEL_STREAM_CLASS (class);
+ stream_class->write = sync_stream_write;
+ stream_class->flush = sync_stream_flush;
+ stream_class->close = sync_stream_close;
}
static void
-em_sync_stream_finalize (EMSyncStream *emss)
-{
- if (emss->buffer != NULL)
- g_string_free (emss->buffer, TRUE);
- if (emss->idle_id)
- g_source_remove (emss->idle_id);
-}
-
-CamelType
-em_sync_stream_get_type (void)
+em_sync_stream_init (EMSyncStream *emss)
{
- static CamelType type = CAMEL_INVALID_TYPE;
-
- if (G_UNLIKELY (type == CAMEL_INVALID_TYPE))
- type = camel_type_register (
- CAMEL_STREAM_TYPE,
- "EMSyncStream",
- sizeof (EMSyncStream),
- sizeof (EMSyncStreamClass),
- (CamelObjectClassInitFunc) em_sync_stream_class_init,
- NULL,
- (CamelObjectInitFunc) NULL,
- (CamelObjectFinalizeFunc) em_sync_stream_finalize);
-
- return type;
}
void
diff --git a/mail/em-sync-stream.h b/mail/em-sync-stream.h
index 3d74a02a35..593079021e 100644
--- a/mail/em-sync-stream.h
+++ b/mail/em-sync-stream.h
@@ -31,18 +31,26 @@ requests are always handled in the main gui thread in the correct order.
#define EM_SYNC_STREAM_H
#include <glib.h>
-#include <camel/camel-stream.h>
+#include <camel/camel.h>
-#define EM_SYNC_STREAM_TYPE \
+/* Standard GObject macros */
+#define EM_TYPE_SYNC_STREAM \
(em_sync_stream_get_type ())
#define EM_SYNC_STREAM(obj) \
- (CAMEL_CHECK_CAST \
- ((obj), EM_SYNC_STREAM_TYPE, EMSyncStream))
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), EM_TYPE_SYNC_STREAM, EMSyncStream))
#define EM_SYNC_STREAM_CLASS(cls) \
- (CAMEL_CHECK_CLASS_CAST \
- ((cls), EM_SYNC_STREAM_TYPE, EMSyncStreamClass))
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), EM_TYPE_SYNC_STREAM, EMSyncStreamClass))
#define EM_IS_SYNC_STREAM(obj) \
- (CAMEL_CHECK_TYPE ((obj), EM_SYNC_STREAM_TYPE))
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), EM_TYPE_SYNC_STREAM))
+#define EM_IS_SYNC_STREAM_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), EM_TYPE_SYNC_STREAM))
+#define EM_SYNC_STREAM_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), EM_TYPE_SYNC_STREAM, EMSyncStreamClass))
G_BEGIN_DECLS
@@ -66,7 +74,7 @@ struct _EMSyncStreamClass {
gint (*sync_flush) (CamelStream *stream);
};
-CamelType em_sync_stream_get_type (void);
+GType em_sync_stream_get_type (void);
void em_sync_stream_set_buffer_size (EMSyncStream *stream,
gsize size);
diff --git a/mail/em-utils.c b/mail/em-utils.c
index 340ec58e64..ed6cef3779 100644
--- a/mail/em-utils.c
+++ b/mail/em-utils.c
@@ -42,11 +42,6 @@
#undef interface
#endif
-#include <camel/camel-stream-fs.h>
-#include <camel/camel-url-scanner.h>
-#include <camel/camel-file-utils.h>
-#include <camel/camel-string-utils.h>
-
#include <libebook/e-book.h>
#include "em-filter-editor.h"
@@ -103,7 +98,14 @@ em_utils_ask_open_many (GtkWindow *parent,
if (how_many < TOO_MANY)
return TRUE;
- string = g_strdup_printf ("%d", how_many);
+ string = g_strdup_printf (
+ ngettext (
+ /* Translators: This message is shown only for ten or more messages to be opened.
+ The %d is replaced with the actual count of messages. If you need a '%' in your text,
+ then write it doubled, like '%%'. */
+ "Are you sure you want to open %d messages at once?",
+ "Are you sure you want to open %d messages at once?", how_many),
+ how_many);
proceed = em_utils_prompt_user (
parent, "/apps/evolution/mail/prompts/open_many",
"mail:ask-open-many", string, NULL);
@@ -129,6 +131,7 @@ gboolean
em_utils_prompt_user(GtkWindow *parent, const gchar *promptkey, const gchar *tag, ...)
{
GtkWidget *mbox, *check = NULL;
+ GtkWidget *container;
va_list ap;
gint button;
GConfClient *gconf = mail_config_get_gconf_client();
@@ -146,9 +149,10 @@ em_utils_prompt_user(GtkWindow *parent, const gchar *promptkey, const gchar *tag
g_object_unref (alert);
if (promptkey) {
- check = gtk_check_button_new_with_mnemonic (_("_Do not show this message again."));
+ check = gtk_check_button_new_with_mnemonic (_("_Do not show this message again"));
gtk_container_set_border_width((GtkContainer *)check, 12);
- gtk_box_pack_start ((GtkBox *)((GtkDialog *) mbox)->vbox, check, TRUE, TRUE, 0);
+ container = gtk_dialog_get_content_area (GTK_DIALOG (mbox));
+ gtk_box_pack_start (GTK_BOX (container), check, TRUE, TRUE, 0);
gtk_widget_show (check);
}
@@ -277,7 +281,7 @@ em_utils_edit_filters (GtkWidget *parent)
EMFilterContext *fc;
if (filter_editor) {
- gdk_window_raise (GTK_WIDGET (filter_editor)->window);
+ gtk_window_present (GTK_WINDOW (filter_editor));
return;
}
@@ -405,7 +409,7 @@ em_utils_flag_for_followup (EMailReader *reader,
camel_message_info_from (info),
camel_message_info_subject (info));
- camel_message_info_free(info);
+ camel_folder_free_message_info (folder, info);
}
/* special-case... */
@@ -419,7 +423,7 @@ em_utils_flag_for_followup (EMailReader *reader,
if (tags)
e_mail_tag_editor_set_tag_list (
E_MAIL_TAG_EDITOR (editor), tags);
- camel_message_info_free (info);
+ camel_folder_free_message_info (folder, info);
}
}
@@ -444,7 +448,7 @@ em_utils_flag_for_followup (EMailReader *reader,
camel_message_info_set_user_tag (
info, iter->name, iter->value);
- camel_message_info_free (info);
+ camel_folder_free_message_info (folder, info);
}
camel_folder_thaw (folder);
@@ -486,7 +490,7 @@ em_utils_flag_for_followup_clear (GtkWindow *parent, CamelFolder *folder, GPtrAr
camel_message_info_set_user_tag(mi, "follow-up", NULL);
camel_message_info_set_user_tag(mi, "due-by", NULL);
camel_message_info_set_user_tag(mi, "completed-on", NULL);
- camel_message_info_free(mi);
+ camel_folder_free_message_info (folder, mi);
}
}
camel_folder_thaw (folder);
@@ -525,7 +529,7 @@ em_utils_flag_for_followup_completed (GtkWindow *parent, CamelFolder *folder, GP
tag = camel_message_info_user_tag(mi, "follow-up");
if (tag && tag[0])
camel_message_info_set_user_tag(mi, "completed-on", now);
- camel_message_info_free(mi);
+ camel_folder_free_message_info (folder, mi);
}
}
camel_folder_thaw (folder);
@@ -535,23 +539,20 @@ em_utils_flag_for_followup_completed (GtkWindow *parent, CamelFolder *folder, GP
em_utils_uids_free (uids);
}
-#include "camel/camel-stream-mem.h"
-#include "camel/camel-stream-filter.h"
-#include "camel/camel-mime-filter-from.h"
-
/* This kind of sucks, because for various reasons most callers need to run synchronously
in the gui thread, however this could take a long, blocking time, to run */
static gint
em_utils_write_messages_to_stream(CamelFolder *folder, GPtrArray *uids, CamelStream *stream)
{
- CamelStreamFilter *filtered_stream;
- CamelMimeFilterFrom *from_filter;
+ CamelStream *filtered_stream;
+ CamelMimeFilter *from_filter;
gint i, res = 0;
from_filter = camel_mime_filter_from_new();
- filtered_stream = camel_stream_filter_new_with_stream(stream);
- camel_stream_filter_add(filtered_stream, (CamelMimeFilter *)from_filter);
- camel_object_unref(from_filter);
+ filtered_stream = camel_stream_filter_new (stream);
+ camel_stream_filter_add (
+ CAMEL_STREAM_FILTER (filtered_stream), from_filter);
+ g_object_unref (from_filter);
for (i=0; i<uids->len; i++) {
CamelMimeMessage *message;
@@ -573,13 +574,13 @@ em_utils_write_messages_to_stream(CamelFolder *folder, GPtrArray *uids, CamelStr
res = -1;
g_free(from);
- camel_object_unref(message);
+ g_object_unref (message);
if (res == -1)
break;
}
- camel_object_unref(filtered_stream);
+ g_object_unref (filtered_stream);
return res;
}
@@ -602,12 +603,12 @@ em_utils_read_messages_from_stream(CamelFolder *folder, CamelStream *stream)
/* NB: de-from filter, once written */
msg = camel_mime_message_new();
if (camel_mime_part_construct_from_parser((CamelMimePart *)msg, mp) == -1) {
- camel_object_unref(msg);
+ g_object_unref (msg);
break;
}
camel_folder_append_message(folder, msg, NULL, NULL, ex);
- camel_object_unref(msg);
+ g_object_unref (msg);
if (camel_exception_is_set (ex))
break;
@@ -615,7 +616,7 @@ em_utils_read_messages_from_stream(CamelFolder *folder, CamelStream *stream)
camel_mime_parser_step(mp, NULL, NULL);
}
- camel_object_unref(mp);
+ g_object_unref (mp);
if (!camel_exception_is_set(ex))
res = 0;
camel_exception_free(ex);
@@ -634,22 +635,30 @@ em_utils_read_messages_from_stream(CamelFolder *folder, CamelStream *stream)
* Warning: This could block the ui for an extended period.
**/
void
-em_utils_selection_set_mailbox(GtkSelectionData *data, CamelFolder *folder, GPtrArray *uids)
+em_utils_selection_set_mailbox (GtkSelectionData *data,
+ CamelFolder *folder,
+ GPtrArray *uids)
{
+ GByteArray *byte_array;
CamelStream *stream;
+ GdkAtom target;
+
+ target = gtk_selection_data_get_target (data);
+
+ byte_array = g_byte_array_new ();
+ stream = camel_stream_mem_new_with_byte_array (byte_array);
- stream = camel_stream_mem_new();
- if (em_utils_write_messages_to_stream(folder, uids, stream) == 0)
- gtk_selection_data_set(data, data->target, 8,
- ((CamelStreamMem *)stream)->buffer->data,
- ((CamelStreamMem *)stream)->buffer->len);
+ if (em_utils_write_messages_to_stream (folder, uids, stream) == 0)
+ gtk_selection_data_set(
+ data, target, 8,
+ byte_array->data, byte_array->len);
- camel_object_unref(stream);
+ g_object_unref (stream);
}
/**
* em_utils_selection_get_mailbox:
- * @data: selection data
+ * @selection_data: selection data
* @folder:
*
* Receive a mailbox selection/dnd
@@ -658,50 +667,64 @@ em_utils_selection_set_mailbox(GtkSelectionData *data, CamelFolder *folder, GPtr
* FIXME: Exceptions?
**/
void
-em_utils_selection_get_mailbox(GtkSelectionData *data, CamelFolder *folder)
+em_utils_selection_get_mailbox (GtkSelectionData *selection_data,
+ CamelFolder *folder)
{
CamelStream *stream;
+ const guchar *data;
+ gint length;
+
+ data = gtk_selection_data_get_data (selection_data);
+ length = gtk_selection_data_get_length (selection_data);
- if (data->data == NULL || data->length == -1)
+ if (data == NULL || length == -1)
return;
/* TODO: a stream mem with read-only access to existing data? */
/* NB: Although copying would let us run this async ... which it should */
- stream = (CamelStream *)camel_stream_mem_new_with_buffer((gchar *)data->data, data->length);
+ stream = (CamelStream *)
+ camel_stream_mem_new_with_buffer ((gchar *) data, length);
em_utils_read_messages_from_stream(folder, stream);
- camel_object_unref(stream);
+ g_object_unref (stream);
}
/**
* em_utils_selection_get_message:
- * @data:
+ * @selection_data:
* @folder:
*
* get a message/rfc822 data.
**/
void
-em_utils_selection_get_message(GtkSelectionData *data, CamelFolder *folder)
+em_utils_selection_get_message (GtkSelectionData *selection_data,
+ CamelFolder *folder)
{
CamelStream *stream;
CamelException *ex;
CamelMimeMessage *msg;
+ const guchar *data;
+ gint length;
+
+ data = gtk_selection_data_get_data (selection_data);
+ length = gtk_selection_data_get_length (selection_data);
- if (data->data == NULL || data->length == -1)
+ if (data == NULL || length == -1)
return;
ex = camel_exception_new();
- stream = (CamelStream *)camel_stream_mem_new_with_buffer((gchar *)data->data, data->length);
+ stream = (CamelStream *)
+ camel_stream_mem_new_with_buffer ((gchar *)data, length);
msg = camel_mime_message_new();
if (camel_data_wrapper_construct_from_stream((CamelDataWrapper *)msg, stream) == 0)
camel_folder_append_message(folder, msg, NULL, NULL, ex);
- camel_object_unref(msg);
- camel_object_unref(stream);
+ g_object_unref (msg);
+ g_object_unref (stream);
camel_exception_free(ex);
}
/**
* em_utils_selection_set_uidlist:
- * @data: selection data
+ * @selection_data: selection data
* @uri:
* @uids:
*
@@ -710,9 +733,12 @@ em_utils_selection_get_message(GtkSelectionData *data, CamelFolder *folder)
* FIXME: be nice if this could take a folder argument rather than uri
**/
void
-em_utils_selection_set_uidlist(GtkSelectionData *data, const gchar *uri, GPtrArray *uids)
+em_utils_selection_set_uidlist (GtkSelectionData *selection_data,
+ const gchar *uri,
+ GPtrArray *uids)
{
GByteArray *array = g_byte_array_new();
+ GdkAtom target;
gint i;
/* format: "uri\0uid1\0uid2\0uid3\0...\0uidn\0" */
@@ -722,7 +748,9 @@ em_utils_selection_set_uidlist(GtkSelectionData *data, const gchar *uri, GPtrArr
for (i=0; i<uids->len; i++)
g_byte_array_append(array, uids->pdata[i], strlen(uids->pdata[i])+1);
- gtk_selection_data_set(data, data->target, 8, array->data, array->len);
+ target = gtk_selection_data_get_target (selection_data);
+ gtk_selection_data_set (
+ selection_data, target, 8, array->data, array->len);
g_byte_array_free(array, TRUE);
}
@@ -736,27 +764,37 @@ em_utils_selection_set_uidlist(GtkSelectionData *data, const gchar *uri, GPtrArr
* Warning: Could take some time to run.
**/
void
-em_utils_selection_get_uidlist(GtkSelectionData *data, CamelFolder *dest, gint move, CamelException *ex)
+em_utils_selection_get_uidlist (GtkSelectionData *selection_data,
+ CamelFolder *dest,
+ gint move,
+ CamelException *ex)
{
/* format: "uri\0uid1\0uid2\0uid3\0...\0uidn" */
gchar *inptr, *inend;
GPtrArray *uids;
CamelFolder *folder;
+ const guchar *data;
+ gint length;
+
+ g_return_if_fail (selection_data != NULL);
- if (data == NULL || data->data == NULL || data->length == -1)
+ data = gtk_selection_data_get_data (selection_data);
+ length = gtk_selection_data_get_length (selection_data);
+
+ if (data == NULL || length == -1)
return;
uids = g_ptr_array_new();
- inptr = (gchar *)data->data;
- inend = (gchar *)(data->data + data->length);
+ inptr = (gchar *) data;
+ inend = (gchar *) (data + length);
while (inptr < inend) {
gchar *start = inptr;
while (inptr < inend && *inptr)
inptr++;
- if (start > (gchar *)data->data)
+ if (start > (gchar *) data)
g_ptr_array_add(uids, g_strndup(start, inptr-start));
inptr++;
@@ -767,10 +805,10 @@ em_utils_selection_get_uidlist(GtkSelectionData *data, CamelFolder *dest, gint m
return;
}
- folder = mail_tool_uri_to_folder((gchar *)data->data, 0, ex);
+ folder = mail_tool_uri_to_folder((gchar *) data, 0, ex);
if (folder) {
camel_folder_transfer_messages_to(folder, uids, dest, NULL, move, ex);
- camel_object_unref(folder);
+ g_object_unref (folder);
}
em_utils_uids_free(uids);
@@ -804,14 +842,16 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
info = camel_folder_get_message_info(folder, uids->pdata[0]);
if (info) {
file = g_strdup(camel_message_info_subject(info));
- camel_folder_free_message_info(folder, info);
+ camel_folder_free_message_info (folder, info);
}
}
/* TODO: Handle conflicts? */
if (file == NULL) {
/* Drop filename for messages from a mailbox */
- file = g_strdup_printf(_("Messages from %s"), folder->name);
+ file = g_strdup_printf (
+ _("Messages from %s"),
+ camel_folder_get_name (folder));
}
e_filename_make_safe(file);
@@ -833,12 +873,14 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
if (em_utils_write_messages_to_stream(folder, uids, fstream) == 0) {
/* terminate with \r\n to be compliant with the spec */
gchar *uri_crlf = g_strconcat(uri, "\r\n", NULL);
+ GdkAtom target;
- gtk_selection_data_set(data, data->target, 8, (guchar *)uri_crlf, strlen(uri_crlf));
+ target = gtk_selection_data_get_target (data);
+ gtk_selection_data_set(data, target, 8, (guchar *)uri_crlf, strlen(uri_crlf));
g_free(uri_crlf);
}
- camel_object_unref(fstream);
+ g_object_unref (fstream);
} else
close(fd);
@@ -856,17 +898,23 @@ em_utils_selection_set_urilist(GtkSelectionData *data, CamelFolder *folder, GPtr
* automatically cleaned up when the application quits.
**/
void
-em_utils_selection_get_urilist(GtkSelectionData *data, CamelFolder *folder)
+em_utils_selection_get_urilist (GtkSelectionData *selection_data,
+ CamelFolder *folder)
{
CamelStream *stream;
CamelURL *url;
gint fd, i, res = 0;
gchar *tmp, **uris;
+ const guchar *data;
+ gint length;
d(printf(" * drop uri list\n"));
- tmp = g_strndup((gchar *)data->data, data->length);
- uris = g_strsplit(tmp, "\n", 0);
+ data = gtk_selection_data_get_data (selection_data);
+ length = gtk_selection_data_get_length (selection_data);
+
+ tmp = g_strndup ((gchar *) data, length);
+ uris = g_strsplit (tmp, "\n", 0);
g_free(tmp);
for (i=0;res == 0 && uris[i];i++) {
g_strstrip(uris[i]);
@@ -882,7 +930,7 @@ em_utils_selection_get_urilist(GtkSelectionData *data, CamelFolder *folder)
stream = camel_stream_fs_new_with_fd(fd);
if (stream) {
res = em_utils_read_messages_from_stream(folder, stream);
- camel_object_unref(stream);
+ g_object_unref (stream);
} else
close(fd);
}
@@ -967,6 +1015,7 @@ gboolean
em_utils_folder_is_templates (CamelFolder *folder, const gchar *uri)
{
CamelFolder *local_templates_folder;
+ CamelStore *parent_store;
EAccountList *accounts;
EAccount *account;
EIterator *iter;
@@ -982,6 +1031,8 @@ em_utils_folder_is_templates (CamelFolder *folder, const gchar *uri)
if (folder == NULL || uri == NULL)
return FALSE;
+ parent_store = camel_folder_get_parent_store (folder);
+
accounts = e_get_account_list ();
iter = e_list_get_iterator ((EList *)accounts);
while (e_iterator_is_valid (iter)) {
@@ -989,7 +1040,7 @@ em_utils_folder_is_templates (CamelFolder *folder, const gchar *uri)
if (account->templates_folder_uri) {
templates_uri = em_uri_to_camel (account->templates_folder_uri);
- if (camel_store_folder_uri_equal (folder->parent_store, templates_uri, uri)) {
+ if (camel_store_folder_uri_equal (parent_store, templates_uri, uri)) {
g_free (templates_uri);
is = TRUE;
break;
@@ -1018,6 +1069,7 @@ gboolean
em_utils_folder_is_drafts(CamelFolder *folder, const gchar *uri)
{
CamelFolder *local_drafts_folder;
+ CamelStore *parent_store;
EAccountList *accounts;
EAccount *account;
EIterator *iter;
@@ -1033,6 +1085,8 @@ em_utils_folder_is_drafts(CamelFolder *folder, const gchar *uri)
if (folder == NULL || uri == NULL)
return FALSE;
+ parent_store = camel_folder_get_parent_store (folder);
+
accounts = e_get_account_list ();
iter = e_list_get_iterator((EList *)accounts);
while (e_iterator_is_valid(iter)) {
@@ -1040,7 +1094,7 @@ em_utils_folder_is_drafts(CamelFolder *folder, const gchar *uri)
if (account->drafts_folder_uri) {
drafts_uri = em_uri_to_camel (account->drafts_folder_uri);
- if (camel_store_folder_uri_equal (folder->parent_store, drafts_uri, uri)) {
+ if (camel_store_folder_uri_equal (parent_store, drafts_uri, uri)) {
g_free (drafts_uri);
is = TRUE;
break;
@@ -1069,6 +1123,7 @@ gboolean
em_utils_folder_is_sent(CamelFolder *folder, const gchar *uri)
{
CamelFolder *local_sent_folder;
+ CamelStore *parent_store;
EAccountList *accounts;
EAccount *account;
EIterator *iter;
@@ -1083,6 +1138,8 @@ em_utils_folder_is_sent(CamelFolder *folder, const gchar *uri)
if (folder == NULL || uri == NULL)
return FALSE;
+ parent_store = camel_folder_get_parent_store (folder);
+
accounts = e_get_account_list ();
iter = e_list_get_iterator((EList *)accounts);
while (e_iterator_is_valid(iter)) {
@@ -1090,7 +1147,7 @@ em_utils_folder_is_sent(CamelFolder *folder, const gchar *uri)
if (account->sent_folder_uri) {
sent_uri = em_uri_to_camel (account->sent_folder_uri);
- if (camel_store_folder_uri_equal (folder->parent_store, sent_uri, uri)) {
+ if (camel_store_folder_uri_equal (parent_store, sent_uri, uri)) {
g_free (sent_uri);
is = TRUE;
break;
@@ -1133,7 +1190,7 @@ em_utils_folder_is_outbox(CamelFolder *folder, const gchar *uri)
return FALSE;
return camel_store_folder_uri_equal (
- local_outbox_folder->parent_store,
+ camel_folder_get_parent_store (local_outbox_folder),
local_outbox_folder_uri, uri);
}
@@ -1232,7 +1289,7 @@ em_utils_message_to_html (CamelMimeMessage *message, const gchar *credits, guint
camel_stream_write ((CamelStream*)mem, append, strlen (append));
camel_stream_write((CamelStream *)mem, "", 1);
- camel_object_unref(mem);
+ g_object_unref (mem);
text = (gchar *)buf->data;
if (len)
@@ -1254,14 +1311,17 @@ em_utils_message_to_html (CamelMimeMessage *message, const gchar *credits, guint
void
em_utils_expunge_folder (GtkWidget *parent, CamelFolder *folder)
{
- gchar *name;
+ const gchar *description;
- camel_object_get(folder, NULL, CAMEL_OBJECT_DESCRIPTION, &name, 0);
+ description = camel_folder_get_description (folder);
- if (!em_utils_prompt_user ((GtkWindow *) parent, "/apps/evolution/mail/prompts/expunge", "mail:ask-expunge", name, NULL))
+ if (!em_utils_prompt_user (
+ GTK_WINDOW (parent),
+ "/apps/evolution/mail/prompts/expunge",
+ "mail:ask-expunge", description, NULL))
return;
- mail_expunge_folder(folder, NULL, NULL);
+ mail_expunge_folder (folder, NULL, NULL);
}
/**
@@ -1937,7 +1997,7 @@ emu_remove_from_mail_cache (const GSList *addresses)
}
}
- camel_object_unref (cia);
+ g_object_unref (cia);
}
void
@@ -2093,10 +2153,12 @@ static EAccount *
guess_account_from_folder (CamelFolder *folder)
{
CamelService *service;
+ CamelStore *parent_store;
EAccount *account;
gchar *source_url;
- service = CAMEL_SERVICE (folder->parent_store);
+ parent_store = camel_folder_get_parent_store (folder);
+ service = CAMEL_SERVICE (parent_store);
source_url = camel_url_to_string (service->url, CAMEL_URL_HIDE_ALL);
account = mail_config_get_account_by_source_url (source_url);
@@ -2200,7 +2262,7 @@ em_utils_guess_account_with_recipients (CamelMimeMessage *message,
EAccountList *account_list;
GHashTable *recipients;
EIterator *iter;
- const CamelInternetAddress *addr;
+ CamelInternetAddress *addr;
const gchar *type;
const gchar *key;
diff --git a/mail/em-utils.h b/mail/em-utils.h
index 1bbde206ff..1fde390d72 100644
--- a/mail/em-utils.h
+++ b/mail/em-utils.h
@@ -25,12 +25,7 @@
#include <gtk/gtk.h>
#include <sys/types.h>
-#include <camel/camel-exception.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-internet-address.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-mime-part.h>
-#include <camel/camel-stream.h>
+#include <camel/camel.h>
#include <mail/e-mail-reader.h>
#include <mail/em-folder-tree.h>
diff --git a/mail/em-vfolder-rule.c b/mail/em-vfolder-rule.c
index d151c47f53..e32d319eac 100644
--- a/mail/em-vfolder-rule.c
+++ b/mail/em-vfolder-rule.c
@@ -30,7 +30,6 @@
#include <gtk/gtk.h>
#include <glib/gi18n.h>
-#include "camel/camel-url.h"
#include "em-vfolder-context.h"
#include "em-vfolder-rule.h"
#include "mail/e-mail-store.h"
diff --git a/mail/evolution-mail.schemas.in b/mail/evolution-mail.schemas.in
index 294cf75f9a..ad1dfdc27a 100644
--- a/mail/evolution-mail.schemas.in
+++ b/mail/evolution-mail.schemas.in
@@ -695,9 +695,9 @@
<type>bool</type>
<default>true</default>
<locale name="C">
- <short>Allows Evolution to display text part of limited size</short>
+ <short>Display only message texts not exceeding certain size</short>
<long>
- Enable to render message text part of limited size.
+ Enable to display only message texts not exceeding size defined in 'message_text_part_limit' key.
</long>
</locale>
</schema>
@@ -709,10 +709,11 @@
<type>int</type>
<default>4096</default>
<locale name="C">
- <short>Text message part limit</short>
+ <short>Message text limit for display</short>
<long>
- This decides the max size of the text part that can be formatted under
- Evolution. The default is 4MB / 4096 KB and is specified in terms of KB.
+ This decides the max size of the message text that will be displayed under
+ Evolution, specified in terms of KB. The default is 4096 (4MB). This value
+ is used only when 'force_message_limit' key is activated.
</long>
</locale>
</schema>
@@ -1058,9 +1059,9 @@
<type>int</type>
<default>0</default>
<locale name="C">
- <short>Last time empty trash was run</short>
+ <short>Last time Empty Trash was run</short>
<long>
- The last time empty trash was run, in days since the epoch.
+ The last time Empty Trash was run, in days since January 1st, 1970 (Epoch).
</long>
</locale>
</schema>
@@ -1179,9 +1180,9 @@
<type>int</type>
<default>0</default>
<locale name="C">
- <short>Last time empty junk was run</short>
+ <short>Last time Empty Junk was run</short>
<long>
- The last time empty junk was run, in days since the epoch.
+ The last time Empty Junk was run, in days since January 1st, 1970 (Epoch).
</long>
</locale>
</schema>
diff --git a/mail/importers/Makefile.am b/mail/importers/Makefile.am
index 65e099b461..4592de8eb5 100644
--- a/mail/importers/Makefile.am
+++ b/mail/importers/Makefile.am
@@ -27,6 +27,7 @@ libevolution_mail_importers_la_LIBADD = \
$(top_builddir)/filter/libfilter.la \
$(top_builddir)/mail/libevolution-mail.la \
$(top_builddir)/shell/libeshell.la \
+ $(top_builddir)/widgets/misc/libemiscwidgets.la \
$(GNOME_PLATFORM_LIBS) \
$(IMPORTERS_LIBS)
diff --git a/mail/importers/elm-importer.c b/mail/importers/elm-importer.c
index e18da4535d..937bfa50de 100644
--- a/mail/importers/elm-importer.c
+++ b/mail/importers/elm-importer.c
@@ -38,8 +38,6 @@
#include <gconf/gconf-client.h>
-#include <camel/camel-operation.h>
-
#include "mail-importer.h"
#include "mail/mail-mt.h"
@@ -359,6 +357,7 @@ static EImportImporter elm_importer = {
elm_getwidget,
elm_import,
elm_cancel,
+ NULL, /* get_preview */
};
EImportImporter *
diff --git a/mail/importers/evolution-mbox-importer.c b/mail/importers/evolution-mbox-importer.c
index 2cd8c9864f..dc419dc89e 100644
--- a/mail/importers/evolution-mbox-importer.c
+++ b/mail/importers/evolution-mbox-importer.c
@@ -33,13 +33,12 @@
#include <stdio.h>
#include <ctype.h>
#include <string.h>
+#include <errno.h>
#include <gtk/gtk.h>
#include <glib/gi18n.h>
#include <glib/gstdio.h>
-#include <camel/camel-exception.h>
-
#include "shell/e-shell.h"
#include "shell/e-shell-window.h"
#include "shell/e-shell-view.h"
@@ -55,6 +54,7 @@
#include "mail-importer.h"
#include "e-util/e-import.h"
+#include "misc/e-web-view-preview.h"
typedef struct {
EImport *import;
@@ -81,6 +81,7 @@ mbox_getwidget(EImport *ei, EImportTarget *target, EImportImporter *im)
{
GtkWindow *window;
GtkWidget *hbox, *w;
+ GtkLabel *label;
gchar *select_uri = NULL;
/* preselect the folder selected in a mail view */
@@ -112,11 +113,14 @@ mbox_getwidget(EImport *ei, EImportTarget *target, EImportImporter *im)
hbox = gtk_hbox_new(FALSE, 0);
- w = gtk_label_new(_("Destination folder:"));
+ w = gtk_label_new_with_mnemonic (_("_Destination folder:"));
gtk_box_pack_start((GtkBox *)hbox, w, FALSE, TRUE, 6);
+ label = GTK_LABEL (w);
+
w = em_folder_selection_button_new(
_("Select folder"), _("Select folder to import into"));
+ gtk_label_set_mnemonic_widget (label, w);
em_folder_selection_button_set_selection ((EMFolderSelectionButton *)w, select_uri);
folder_selected (EM_FOLDER_SELECTION_BUTTON (w), (EImportTargetURI *)target);
g_signal_connect (w, "selected", G_CALLBACK(folder_selected), target);
@@ -245,6 +249,153 @@ mbox_cancel(EImport *ei, EImportTarget *target, EImportImporter *im)
camel_operation_cancel(importer->cancel);
}
+static MboxImporterCreatePreviewFunc create_preview_func = NULL;
+static MboxImporterFillPreviewFunc fill_preview_func = NULL;
+
+void
+mbox_importer_set_preview_funcs (MboxImporterCreatePreviewFunc create_func, MboxImporterFillPreviewFunc fill_func)
+{
+ create_preview_func = create_func;
+ fill_preview_func = fill_func;
+}
+
+static void
+preview_selection_changed_cb (GtkTreeSelection *selection, EWebViewPreview *preview)
+{
+ GtkTreeIter iter;
+ GtkTreeModel *model = NULL;
+ gboolean found = FALSE;
+
+ g_return_if_fail (selection != NULL);
+ g_return_if_fail (preview != NULL);
+ g_return_if_fail (fill_preview_func != NULL);
+
+ if (gtk_tree_selection_get_selected (selection, &model, &iter) && model) {
+ CamelMimeMessage *msg = NULL;
+
+ gtk_tree_model_get (model, &iter, 2, &msg, -1);
+
+ if (msg) {
+ found = TRUE;
+ fill_preview_func (G_OBJECT (preview), msg);
+ g_object_unref (msg);
+ }
+ }
+
+ if (!found) {
+ e_web_view_preview_begin_update (preview);
+ e_web_view_preview_end_update (preview);
+ }
+}
+
+static GtkWidget *
+mbox_get_preview (EImport *ei, EImportTarget *target, EImportImporter *im)
+{
+ GtkWidget *preview = NULL;
+ EImportTargetURI *s = (EImportTargetURI *)target;
+ gchar *filename;
+ gint fd;
+ CamelMimeParser *mp;
+ GtkListStore *store = NULL;
+ GtkTreeIter iter;
+ GtkWidget *preview_widget = NULL;
+
+ if (!create_preview_func || !fill_preview_func)
+ return NULL;
+
+ filename = g_filename_from_uri (s->uri_src, NULL, NULL);
+ if (!filename) {
+ g_message (G_STRLOC ": Couldn't get filename from URI '%s'", s->uri_src);
+ return NULL;
+ }
+
+ fd = g_open (filename, O_RDONLY|O_BINARY, 0);
+ if (fd == -1) {
+ g_warning ("Cannot find source file to import '%s': %s", filename, g_strerror (errno));
+ g_free (filename);
+ return NULL;
+ }
+
+ g_free (filename);
+
+ mp = camel_mime_parser_new();
+ camel_mime_parser_scan_from (mp, TRUE);
+ if (camel_mime_parser_init_with_fd (mp, fd) == -1) {
+ g_object_unref (mp);
+ return NULL;
+ }
+
+ while (camel_mime_parser_step (mp, NULL, NULL) == CAMEL_MIME_PARSER_STATE_FROM) {
+ CamelMimeMessage *msg;
+ gchar *from;
+
+ msg = camel_mime_message_new();
+ if (camel_mime_part_construct_from_parser ((CamelMimePart *)msg, mp) == -1) {
+ g_object_unref (msg);
+ break;
+ }
+
+ if (!store)
+ store = gtk_list_store_new (3, G_TYPE_STRING, G_TYPE_STRING, CAMEL_TYPE_MIME_MESSAGE);
+
+ from = NULL;
+ if (camel_mime_message_get_from (msg))
+ from = camel_address_encode (CAMEL_ADDRESS (camel_mime_message_get_from (msg)));
+
+ gtk_list_store_append (store, &iter);
+ gtk_list_store_set (store, &iter,
+ 0, camel_mime_message_get_subject (msg) ? camel_mime_message_get_subject (msg) : "",
+ 1, from ? from : "",
+ 2, msg,
+ -1);
+
+ g_object_unref (msg);
+ g_free (from);
+
+ camel_mime_parser_step (mp, NULL, NULL);
+ }
+
+ if (store) {
+ GtkTreeView *tree_view;
+ GtkTreeSelection *selection;
+
+ preview = e_web_view_preview_new ();
+ gtk_widget_show (preview);
+
+ tree_view = e_web_view_preview_get_tree_view (E_WEB_VIEW_PREVIEW (preview));
+ g_return_val_if_fail (tree_view != NULL, NULL);
+
+ gtk_tree_view_set_model (tree_view, GTK_TREE_MODEL (store));
+ g_object_unref (store);
+
+ /* Translators: Column header for a message subject */
+ gtk_tree_view_insert_column_with_attributes (tree_view, -1, C_("mboxImp", "Subject"),
+ gtk_cell_renderer_text_new (), "text", 0, NULL);
+
+ /* Translators: Column header for a message From address */
+ gtk_tree_view_insert_column_with_attributes (tree_view, -1, C_("mboxImp", "From"),
+ gtk_cell_renderer_text_new (), "text", 1, NULL);
+
+ if (gtk_tree_model_iter_n_children (GTK_TREE_MODEL (store), NULL) > 1)
+ e_web_view_preview_show_tree_view (E_WEB_VIEW_PREVIEW (preview));
+
+ create_preview_func (G_OBJECT (preview), &preview_widget);
+ g_return_val_if_fail (preview_widget != NULL, NULL);
+
+ e_web_view_preview_set_preview (E_WEB_VIEW_PREVIEW (preview), preview_widget);
+ gtk_widget_show (preview_widget);
+
+ selection = gtk_tree_view_get_selection (tree_view);
+ g_return_val_if_fail (gtk_tree_model_get_iter_first (GTK_TREE_MODEL (store), &iter), NULL);
+ gtk_tree_selection_select_iter (selection, &iter);
+ g_signal_connect (selection, "changed", G_CALLBACK (preview_selection_changed_cb), preview);
+
+ preview_selection_changed_cb (selection, E_WEB_VIEW_PREVIEW (preview));
+ }
+
+ return preview;
+}
+
static EImportImporter mbox_importer = {
E_IMPORT_TARGET_URI,
0,
@@ -252,6 +403,7 @@ static EImportImporter mbox_importer = {
mbox_getwidget,
mbox_import,
mbox_cancel,
+ mbox_get_preview,
};
EImportImporter *
diff --git a/mail/importers/mail-importer.c b/mail/importers/mail-importer.c
index f61ce2658b..35abd8365f 100644
--- a/mail/importers/mail-importer.c
+++ b/mail/importers/mail-importer.c
@@ -35,14 +35,7 @@
#include <glib.h>
#include <glib/gstdio.h>
-
#include <glib/gi18n.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-store.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-mime-parser.h>
-#include <camel/camel-exception.h>
-#include <camel/camel-stream-mem.h>
#include "e-util/e-util-private.h"
#include "shell/e-shell-backend.h"
@@ -152,7 +145,9 @@ import_mbox_exec (struct _import_mbox_msg *m)
if (m->cancel)
oldcancel = camel_operation_register(m->cancel);
- camel_operation_start(NULL, _("Importing '%s'"), folder->full_name);
+ camel_operation_start (
+ NULL, _("Importing '%s'"),
+ camel_folder_get_full_name (folder));
camel_folder_freeze(folder);
while (camel_mime_parser_step(mp, NULL, NULL) == CAMEL_MIME_PARSER_STATE_FROM) {
CamelMimeMessage *msg;
@@ -167,7 +162,7 @@ import_mbox_exec (struct _import_mbox_msg *m)
msg = camel_mime_message_new();
if (camel_mime_part_construct_from_parser((CamelMimePart *)msg, mp) == -1) {
/* set exception? */
- camel_object_unref(msg);
+ g_object_unref (msg);
break;
}
@@ -186,7 +181,7 @@ import_mbox_exec (struct _import_mbox_msg *m)
camel_message_info_set_flags(info, flags, ~0);
camel_folder_append_message(folder, msg, info, NULL, &m->base.ex);
camel_message_info_free(info);
- camel_object_unref(msg);
+ g_object_unref (msg);
if (camel_exception_is_set(&m->base.ex))
break;
@@ -200,11 +195,11 @@ import_mbox_exec (struct _import_mbox_msg *m)
if (m->cancel)
camel_operation_register(oldcancel);
fail2:
- camel_object_unref(mp);
+ g_object_unref (mp);
}
fail1:
camel_folder_sync(folder, FALSE, NULL);
- camel_object_unref(folder);
+ g_object_unref (folder);
}
static void
diff --git a/mail/importers/mail-importer.h b/mail/importers/mail-importer.h
index 7758c0e563..15de575f8b 100644
--- a/mail/importers/mail-importer.h
+++ b/mail/importers/mail-importer.h
@@ -25,10 +25,17 @@
#define __MAIL_IMPORTER_H__
#include <e-util/e-import.h>
-#include <camel/camel-folder.h>
+#include <camel/camel.h>
EImportImporter *mbox_importer_peek(void);
+typedef void (*MboxImporterCreatePreviewFunc)(GObject *preview, GtkWidget **preview_widget);
+typedef void (*MboxImporterFillPreviewFunc)(GObject *preview, CamelMimeMessage *msg);
+
+/* 'create_func' is a function to create a view. 'fill_func' is to fill view with a preview of a message 'msg'
+ (mail importer cannot link to em-format-html-display directly) */
+void mbox_importer_set_preview_funcs (MboxImporterCreatePreviewFunc create_func, MboxImporterFillPreviewFunc fill_func);
+
EImportImporter *elm_importer_peek(void);
EImportImporter *pine_importer_peek(void);
diff --git a/mail/importers/pine-importer.c b/mail/importers/pine-importer.c
index 873fc93c46..ed3b62e0b1 100644
--- a/mail/importers/pine-importer.c
+++ b/mail/importers/pine-importer.c
@@ -41,8 +41,6 @@
#include <libebook/e-book.h>
#include <libebook/e-destination.h>
-#include <camel/camel-operation.h>
-
#include "mail-importer.h"
#include "mail/mail-mt.h"
@@ -412,6 +410,7 @@ static EImportImporter pine_importer = {
pine_getwidget,
pine_import,
pine_cancel,
+ NULL, /* get_preview */
};
EImportImporter *
diff --git a/mail/mail-autofilter.c b/mail/mail-autofilter.c
index 8117bfca6a..f2422ce217 100644
--- a/mail/mail-autofilter.c
+++ b/mail/mail-autofilter.c
@@ -47,9 +47,6 @@
#include "filter/e-filter-option.h"
#include "filter/e-filter-input.h"
-#include <camel/camel-internet-address.h>
-#include <camel/camel-mime-message.h>
-
#define d(x)
static void
@@ -262,7 +259,7 @@ rule_from_message (EFilterRule *rule, ERuleContext *context, CamelMimeMessage *m
}
/* should parse the from address into an internet address? */
if (flags & AUTO_FROM) {
- const CamelInternetAddress *from;
+ CamelInternetAddress *from;
gint i;
const gchar *name, *address;
gchar *namestr;
@@ -424,18 +421,39 @@ mail_filter_delete_uri(CamelStore *store, const gchar *uri)
if (deleted) {
GtkWidget *dialog;
GString *s;
+ guint s_count;
+ gchar *info;
GList *l;
s = g_string_new("");
- l = deleted;
- while (l) {
- g_string_append_printf (s, " %s\n", (gchar *)l->data);
- l = l->next;
+ s_count = 0;
+ for (l = deleted; l; l = l->next) {
+ const gchar *name = (const gchar *)l->data;
+
+ if (s_count == 0) {
+ g_string_append (s, name);
+ } else {
+ if (s_count == 1) {
+ g_string_prepend (s, " ");
+ g_string_append (s, "\n");
+ }
+ g_string_append_printf (s, " %s\n", name);
+ }
+ s_count++;
}
- dialog = e_alert_dialog_new_for_args (e_shell_get_active_window (NULL), "mail:filter-updated", s->str, euri, NULL);
- g_string_free(s, TRUE);
+ info = g_strdup_printf (ngettext (
+ /* Translators: The first %s is name of the affected filter rule(s),
+ the second %s is uri of the removed folder. For more than one filter
+ rule is each of them on a separate line, with four spaces in front
+ of its name, without quotes. */
+ "The filter rule \"%s\" has been updated, because it used just removed folder\n\"%s\".",
+ "The following filter rules\n%s have been updated, because they used just removed folder\n\"%s\".",
+ s_count), s->str, euri);
+ dialog = e_alert_dialog_new_for_args (e_shell_get_active_window (NULL), "mail:filter-updated", info, NULL);
em_utils_show_info_silent (dialog);
+ g_string_free (s, TRUE);
+ g_free (info);
d(printf("Folder delete/rename '%s' changed filters, resaving\n", euri));
if (e_rule_context_save ((ERuleContext *) fc, user) == -1)
diff --git a/mail/mail-autofilter.h b/mail/mail-autofilter.h
index fb474ab04d..2d14120e71 100644
--- a/mail/mail-autofilter.h
+++ b/mail/mail-autofilter.h
@@ -24,7 +24,7 @@
#ifndef _MAIL_AUTOFILTER_H
#define _MAIL_AUTOFILTER_H
-#include <camel/camel-mime-message.h>
+#include <camel/camel.h>
#include <filter/e-filter-rule.h>
#include <mail/em-filter-context.h>
diff --git a/mail/mail-component.c.dead b/mail/mail-component.c.dead
deleted file mode 100644
index 46c48b5516..0000000000
--- a/mail/mail-component.c.dead
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Ettore Perazzoli <ettore@ximian.com>
- * Michael Zucchi <notzed@ximian.com>
- * Jeffrey Stedfast <fejj@ximian.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <stdlib.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <unistd.h>
-#include <fcntl.h>
-#include <errno.h>
-
-#include <libedataserver/e-data-server-util.h>
-#include "em-utils.h"
-#include "em-composer-utils.h"
-#include "em-format/em-format.h"
-#include "em-folder-tree.h"
-#include "em-folder-browser.h"
-#include "em-message-browser.h"
-#include "em-folder-selector.h"
-#include "em-folder-selection.h"
-#include "em-folder-utils.h"
-#include "em-migrate.h"
-
-#include "misc/e-info-label.h"
-#include "e-util/e-util.h"
-#include "e-util/e-error.h"
-#include "e-util/e-util-private.h"
-#include "e-util/e-logger.h"
-#include "e-util/gconf-bridge.h"
-
-#include "em-search-context.h"
-#include "mail-config.h"
-#include "mail-component.h"
-#include "mail-folder-cache.h"
-#include "mail-vfolder.h"
-#include "mail-mt.h"
-#include "mail-ops.h"
-#include "mail-tools.h"
-#include "mail-send-recv.h"
-#include "mail-session.h"
-#include "message-list.h"
-
-#include "e-activity-handler.h"
-#include "shell/e-user-creatable-items-handler.h"
-#include "shell/e-component-view.h"
-
-#include "composer/e-msg-composer.h"
-
-#include "e-task-bar.h"
-
-#include <gtk/gtk.h>
-
-#include <e-util/e-mktemp.h>
-#include <Evolution.h>
-
-#include <table/e-tree.h>
-#include <table/e-tree-memory.h>
-#include <glib/gi18n-lib.h>
-
-#include <camel/camel-file-utils.h>
-#include <camel/camel-vtrash-folder.h>
-#include <camel/camel-disco-store.h>
-#include <camel/camel-offline-store.h>
-
-#include <bonobo/bonobo-control.h>
-#include <bonobo/bonobo-widget.h>
-
-#include "e-util/e-non-intrusive-error-dialog.h"
-
-#include "e-attachment-handler-mail.h"
-
-#define MAILER_ERROR_LEVEL_KEY "/apps/evolution/mail/display/error_level"
-#define MAILER_ERROR_TIME_OUT_KEY "/apps/evolution/mail/display/error_timeout"
-
-#define d(x)
-
-struct _MailComponentPrivate {
- GMutex *lock;
-
- /* states/data used during shutdown */
- enum { MC_QUIT_START, MC_QUIT_SYNC, MC_QUIT_THREADS } quit_state;
- gint quit_count;
- gint quit_expunge; /* expunge on quit this time around? */
-
- gchar *base_directory;
-
- EMFolderTreeModel *model;
-
- EActivityHandler *activity_handler;
-
- MailAsyncEvent *async_event;
- GHashTable *store_hash; /* stores store_info objects by store */
-
- RuleContext *search_context;
-
- gchar *context_path; /* current path for right-click menu */
-
- CamelStore *local_store;
- ELogger *logger;
-
- EComponentView *component_view;
-
- guint mail_sync_id; /* timeout id for sync call on the stores */
- guint mail_sync_in_progress; /* is greater than 0 if still waiting to finish sync on some store */
-};
-
-/* GObject methods. */
-
-static void
-impl_finalize (GObject *object)
-{
- MailComponentPrivate *priv = MAIL_COMPONENT (object)->priv;
-
- g_free (priv->base_directory);
-
- g_hash_table_destroy (priv->store_hash);
-
- if (mail_async_event_destroy (priv->async_event) == -1) {
- g_warning("Cannot destroy async event: would deadlock");
- g_warning(" system may be unstable at exit");
- }
-
- g_free (priv->context_path);
- g_mutex_free(priv->lock);
- g_object_unref (priv->model);
- g_object_unref (priv->logger);
- g_free (priv);
-
- (* G_OBJECT_CLASS (parent_class)->finalize) (object);
-}
-
-static void
-view_on_url (GObject *emitter, const gchar *url, const gchar *nice_url, MailComponent *mail_component)
-{
- MailComponentPrivate *priv = mail_component->priv;
-
- e_activity_handler_set_message (priv->activity_handler, nice_url);
-}
-
-static void
-disable_folder_tree (gpointer *emfb, GtkWidget *widget)
-{
- gtk_widget_set_sensitive (widget, FALSE);
-}
-
-static void
-enable_folder_tree (GtkWidget *emfb, GtkWidget *emft)
-{
- EMFolderView *emfv = (EMFolderView *) emfb;
- CamelURL *selected_curl, *current_curl;
- CamelFolder *selected_folder;
- gchar *uri;
-
- /* Get the currently displayed folder. */
- uri = mail_tools_folder_to_url (emfv->list->folder);
- current_curl = uri ? camel_url_new (uri, NULL) : NULL;
- g_free (uri);
-
- /* Get the selected folder in the folder tree. */
- selected_folder = em_folder_tree_get_selected_folder(EM_FOLDER_TREE (emft));
- if (selected_folder)
- uri = mail_tools_folder_to_url (selected_folder);
- else
- uri = NULL;
-
- selected_curl = uri ? camel_url_new (uri, NULL) : NULL;
-
- if (current_curl && selected_curl && !camel_url_equal (selected_curl, current_curl)) {
-
- g_signal_emit_by_name (
- emft, "folder-selected", emft, uri,
- selected_folder->full_name, uri, selected_folder->folder_flags);
- }
-
- gtk_widget_set_sensitive (emft, TRUE);
-
- camel_url_free (current_curl);
- camel_url_free (selected_curl);
- g_free (uri);
-}
-
-/* Evolution::Component CORBA methods. */
-
-static GNOME_Evolution_ComponentView
-impl_createView (PortableServer_Servant servant,
- GNOME_Evolution_ShellView parent,
- CORBA_boolean select_item,
- CORBA_Environment *ev)
-{
- MailComponent *mail_component = MAIL_COMPONENT (bonobo_object_from_servant (servant));
- MailComponentPrivate *priv = mail_component->priv;
- EComponentView *component_view;
- GtkWidget *tree_widget, *vbox, *info;
- GtkWidget *view_widget;
- GtkWidget *statusbar_widget;
- gchar *uri;
-
- mail_session_set_interactive(TRUE);
- mc_startup(mail_component);
-
- view_widget = em_folder_browser_new ();
-
- if (!select_item)
- em_folder_browser_suppress_message_selection (
- (EMFolderBrowser *) view_widget);
-
-// tree_widget = (GtkWidget *) em_folder_tree_new_with_model (priv->model);
-// em_folder_tree_set_excluded ((EMFolderTree *) tree_widget, 0);
-// em_folder_tree_enable_drag_and_drop ((EMFolderTree *) tree_widget);
-
-// if ((uri = em_folder_tree_model_get_selected (priv->model))) {
-// gboolean expanded;
-//
-// expanded = em_folder_tree_model_get_expanded_uri (priv->model, uri);
-// em_folder_tree_set_selected ((EMFolderTree *) tree_widget, uri, FALSE);
-// em_folder_view_set_folder_uri ((EMFolderView *) view_widget, uri);
-//
-// if (!expanded)
-// em_folder_tree_model_set_expanded_uri (priv->model, uri, expanded);
-//
-// g_free (uri);
-// }
-
- em_format_set_session ((EMFormat *) ((EMFolderView *) view_widget)->preview, session);
-
- g_signal_connect (view_widget, "on-url", G_CALLBACK (view_on_url), mail_component);
- em_folder_view_set_statusbar ((EMFolderView*)view_widget, FALSE);
-
-// statusbar_widget = e_task_bar_new ();
-// e_activity_handler_attach_task_bar (priv->activity_handler, E_TASK_BAR (statusbar_widget));
-
- gtk_widget_show (tree_widget);
- gtk_widget_show (view_widget);
- gtk_widget_show (statusbar_widget);
-
-// vbox = gtk_vbox_new(FALSE, 0);
-// info = e_info_label_new("evolution-mail");
-// e_info_label_set_info((EInfoLabel *)info, _("Mail"), "");
-// gtk_box_pack_start((GtkBox *)vbox, info, FALSE, TRUE, 0);
-// gtk_box_pack_start((GtkBox *)vbox, tree_widget, TRUE, TRUE, 0);
-
- gtk_widget_show(info);
- gtk_widget_show(vbox);
-
-// component_view = e_component_view_new(parent, "mail", vbox, view_widget, statusbar_widget);
-//
-// g_object_set_data((GObject *)component_view, "info-label", info);
-//
-// g_object_set_data_full((GObject *)view_widget, "e-creatable-items-handler",
-// e_user_creatable_items_handler_new("mail", create_local_item_cb, tree_widget),
-// (GDestroyNotify)g_object_unref);
-
- g_signal_connect (component_view->view_control, "activate", G_CALLBACK (view_control_activate_cb), view_widget);
-// g_signal_connect (tree_widget, "folder-selected", G_CALLBACK (folder_selected_cb), view_widget);
-
- g_signal_connect((EMFolderBrowser *)view_widget, "account_search_cleared", G_CALLBACK (enable_folder_tree), tree_widget);
- g_signal_connect(((EMFolderBrowser *)view_widget), "account_search_activated", G_CALLBACK (disable_folder_tree), tree_widget);
-// g_signal_connect(view_widget, "changed", G_CALLBACK(view_changed_cb), component_view);
-// g_signal_connect(view_widget, "loaded", G_CALLBACK(view_changed_cb), component_view);
-
- g_object_set_data((GObject*)info, "folderview", view_widget);
- g_object_set_data((GObject*)view_widget, "foldertree", tree_widget);
-
- priv->component_view = component_view;
-
- return BONOBO_OBJREF(component_view);
-}
-
-/* Initialization. */
-
-static void
-mail_component_class_init (MailComponentClass *class)
-{
- POA_GNOME_Evolution_Component__epv *epv = &((EvolutionComponentClass *)class)->epv;
- POA_GNOME_Evolution_MailComponent__epv *mepv = &class->epv;
- GObjectClass *object_class = G_OBJECT_CLASS (class);
-
- bindtextdomain (GETTEXT_PACKAGE, EVOLUTION_LOCALEDIR);
- bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-
- parent_class = g_type_class_peek_parent (class);
-
- object_class->finalize = impl_finalize;
-
- epv->createView = impl_createView;
-// epv->quit = impl_quit;
-// epv->_get_userCreatableItems = impl__get_userCreatableItems;
-// epv->requestCreateItem = impl_requestCreateItem;
-// epv->handleURI = impl_handleURI;
-// epv->sendAndReceive = impl_sendAndReceive;
-// epv->upgradeFromVersion = impl_upgradeFromVersion;
-// epv->setLineStatus = impl_setLineStatus;
-
-// mepv->test = impl_mail_test;
-}
-
-//static void
-//store_hash_free (struct _store_info *si)
-//{
-// si->removed = 1;
-// store_info_unref(si);
-//}
-
-static void
-mail_component_init (MailComponent *component)
-{
- MailComponentPrivate *priv;
-
- priv = g_new0 (MailComponentPrivate, 1);
- component->priv = priv;
-
- priv->lock = g_mutex_new();
- priv->quit_state = -1;
-
-// /* FIXME This is used as both a filename and URI path throughout
-// * the mail code. Need to clean this up; maybe provide a
-// * mail_component_get_base_uri() function. */
-// priv->base_directory = g_build_filename (e_get_user_data_dir (), "mail", NULL);
-//#ifdef G_OS_WIN32
-// {
-// gchar *p = priv->base_directory;
-// while ((p = strchr(p, '\\')))
-// *p++ = '/';
-// }
-//#endif
-
-// if (g_mkdir_with_parents (e_get_user_data_dir (), 0777) == -1 && errno != EEXIST)
-// abort ();
-
-// priv->model = em_folder_tree_model_new (e_get_user_data_dir ());
- priv->logger = e_logger_create ("mail");
- priv->activity_handler = e_activity_handler_new ();
- e_activity_handler_set_logger (priv->activity_handler, priv->logger);
- e_activity_handler_set_error_flush_time (priv->activity_handler, mail_config_get_error_timeout ()*1000);
-
-// mail_session_init (e_get_user_data_dir ());
-
-// priv->async_event = mail_async_event_new();
-// priv->store_hash = g_hash_table_new_full (
-// NULL, NULL,
-// (GDestroyNotify) NULL,
-// (GDestroyNotify) store_hash_free);
-
-// mail_autoreceive_init (session);
-
-// priv->mail_sync_in_progress = 0;
-// if (g_getenv("CAMEL_FLUSH_CHANGES"))
-// priv->mail_sync_id = g_timeout_add_seconds (mail_config_get_sync_timeout (), call_mail_sync, component);
-// else
-// priv->mail_sync_id = 0;
-}
-
-void
-mail_component_show_logger (gpointer top)
-{
- MailComponent *mc = mail_component_peek ();
- ELogger *logger = mc->priv->logger;
-
- eni_show_logger(logger, top, MAILER_ERROR_TIME_OUT_KEY, MAILER_ERROR_LEVEL_KEY);
-}
diff --git a/mail/mail-component.h.dead b/mail/mail-component.h.dead
deleted file mode 100644
index f69a3c2cff..0000000000
--- a/mail/mail-component.h.dead
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2 of the License, or (at your option) version 3.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with the program; if not, see <http://www.gnu.org/licenses/>
- *
- *
- * Authors:
- * Michael Zucchi <notzed@ximian.com>
- * Jeffrey Stedfast <fejj@ximian.com>
- * Ettore Perazzoli <ettore@ximian.com>
- *
- * Copyright (C) 1999-2008 Novell, Inc. (www.novell.com)
- *
- */
-
-#ifndef _MAIL_COMPONENT_H_
-#define _MAIL_COMPONENT_H_
-
-#include <bonobo/bonobo-object.h>
-#include "shell/evolution-component.h"
-#include "mail/Evolution-Mail.h"
-#include "mail/em-folder-tree-model.h"
-#include "filter/rule-context.h"
-#include "misc/e-activity-handler.h"
-
-#define MAIL_TYPE_COMPONENT (mail_component_get_type ())
-#define MAIL_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAIL_TYPE_COMPONENT, MailComponent))
-#define MAIL_COMPONENT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAIL_TYPE_COMPONENT, MailComponentClass))
-#define MAIL_IS_COMPONENT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAIL_TYPE_COMPONENT))
-#define MAIL_IS_COMPONENT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((obj), MAIL_TYPE_COMPONENT))
-
-typedef struct _MailComponent MailComponent;
-typedef struct _MailComponentPrivate MailComponentPrivate;
-typedef struct _MailComponentClass MailComponentClass;
-
-enum _mail_component_folder_t {
- MAIL_COMPONENT_FOLDER_INBOX = 0,
- MAIL_COMPONENT_FOLDER_DRAFTS,
- MAIL_COMPONENT_FOLDER_OUTBOX,
- MAIL_COMPONENT_FOLDER_SENT,
- MAIL_COMPONENT_FOLDER_TEMPLATES,
- MAIL_COMPONENT_FOLDER_LOCAL_INBOX
-};
-
-struct _MailComponent {
- EvolutionComponent parent;
-
- MailComponentPrivate *priv;
-};
-
-struct _MailComponentClass {
- EvolutionComponentClass parent_class;
-
- POA_GNOME_Evolution_MailComponent__epv epv;
-};
-
-GType mail_component_get_type (void);
-
-MailComponent *mail_component_peek (void);
-
-/* NOTE: Using NULL as the component implies using the default component */
-const gchar *mail_component_peek_base_directory (MailComponent *component);
-RuleContext *mail_component_peek_search_context (MailComponent *component);
-EActivityHandler *mail_component_peek_activity_handler (MailComponent *component);
-
-void mail_component_add_store (MailComponent *component,
- CamelStore *store,
- const gchar *name);
-CamelStore *mail_component_load_store_by_uri (MailComponent *component,
- const gchar *uri,
- const gchar *name);
-
-void mail_component_remove_store (MailComponent *component,
- CamelStore *store);
-void mail_component_remove_store_by_uri (MailComponent *component,
- const gchar *uri);
-
-gint mail_component_get_store_count (MailComponent *component);
-void mail_component_stores_foreach (MailComponent *component,
- GHFunc func,
- void *data);
-
-void mail_component_remove_folder (MailComponent *component, CamelStore *store, const gchar *path);
-
-EMFolderTreeModel *mail_component_peek_tree_model (MailComponent *component);
-
-CamelStore *mail_component_peek_local_store (MailComponent *mc);
-CamelFolder *mail_component_get_folder(MailComponent *mc, enum _mail_component_folder_t id);
-const gchar *mail_component_get_folder_uri(MailComponent *mc, enum _mail_component_folder_t id);
-
-gint status_check (GNOME_Evolution_ShellState shell_state);
-
-void mail_indicate_new_mail (gboolean have_new_mail);
-void mail_component_show_logger (gpointer);
-void mail_component_show_status_bar (gboolean show);
-
-#endif /* _MAIL_COMPONENT_H_ */
diff --git a/mail/mail-config.h b/mail/mail-config.h
index dc55403d93..65dd861940 100644
--- a/mail/mail-config.h
+++ b/mail/mail-config.h
@@ -24,7 +24,7 @@
#define MAIL_CONFIG_H
#include <gtk/gtk.h>
-#include <camel/camel-provider.h>
+#include <camel/camel.h>
#include <libedataserver/e-account.h>
#include <libedataserver/e-account-list.h>
diff --git a/mail/mail-config.ui b/mail/mail-config.ui
index 8f8935bd0e..4afa6019b3 100644
--- a/mail/mail-config.ui
+++ b/mail/mail-config.ui
@@ -95,6 +95,29 @@
</row>
</data>
</object>
+ <object class="GtkListStore" id="hash_algo_model">
+ <columns>
+ <!-- column-name Hash Algo Name -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">Default</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">SHA1</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">SHA256</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">SHA384</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">SHA512</col>
+ </row>
+ </data>
+ </object>
<object class="GtkVBox" id="vboxIdentityBorder">
<property name="visible">True</property>
<property name="border_width">12</property>
@@ -2174,6 +2197,46 @@ For example: "Work" or "Personal"</property>
<property name="position">0</property>
</packing>
</child>
+ <child>
+ <object class="GtkHBox" id="hbox4">
+ <property name="visible">True</property>
+ <property name="spacing">12</property>
+ <child>
+ <object class="GtkLabel" id="pgp_hash_algo_label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Si_gning algorithm:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">pgp_hash_algo</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkComboBox" id="pgp_hash_algo">
+ <property name="visible">True</property>
+ <property name="model">hash_algo_model</property>
+ <child>
+ <object class="GtkCellRendererText" id="pgp_hash_algo_renderer"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="position">1</property>
+ </packing>
+ </child>
<child>
<object class="GtkCheckButton" id="pgp_always_sign">
<property name="label" translatable="yes">Al_ways sign outgoing messages when using this account</property>
@@ -2186,7 +2249,7 @@ For example: "Work" or "Personal"</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
@@ -2202,7 +2265,7 @@ For example: "Work" or "Personal"</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">2</property>
+ <property name="position">3</property>
</packing>
</child>
<child>
@@ -2217,7 +2280,7 @@ For example: "Work" or "Personal"</property>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">3</property>
+ <property name="position">4</property>
</packing>
</child>
</object>
@@ -2276,7 +2339,7 @@ For example: "Work" or "Personal"</property>
<child>
<object class="GtkTable" id="smime_table">
<property name="visible">True</property>
- <property name="n_rows">6</property>
+ <property name="n_rows">7</property>
<property name="n_columns">3</property>
<property name="column_spacing">12</property>
<property name="row_spacing">6</property>
@@ -2301,8 +2364,8 @@ For example: "Work" or "Personal"</property>
<packing>
<property name="left_attach">1</property>
<property name="right_attach">2</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
<property name="y_options"></property>
</packing>
</child>
@@ -2317,8 +2380,8 @@ For example: "Work" or "Personal"</property>
</object>
<packing>
<property name="right_attach">3</property>
- <property name="top_attach">4</property>
- <property name="bottom_attach">5</property>
+ <property name="top_attach">5</property>
+ <property name="bottom_attach">6</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -2334,8 +2397,8 @@ For example: "Work" or "Personal"</property>
</object>
<packing>
<property name="right_attach">3</property>
- <property name="top_attach">3</property>
- <property name="bottom_attach">4</property>
+ <property name="top_attach">4</property>
+ <property name="bottom_attach">5</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -2361,8 +2424,8 @@ For example: "Work" or "Personal"</property>
</object>
<packing>
<property name="right_attach">3</property>
- <property name="top_attach">2</property>
- <property name="bottom_attach">3</property>
+ <property name="top_attach">3</property>
+ <property name="bottom_attach">4</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
<property name="y_padding">6</property>
@@ -2377,8 +2440,8 @@ For example: "Work" or "Personal"</property>
<property name="mnemonic_widget">smime_encrypt_key</property>
</object>
<packing>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options"></property>
</packing>
@@ -2502,8 +2565,8 @@ For example: "Work" or "Personal"</property>
<packing>
<property name="left_attach">2</property>
<property name="right_attach">3</property>
- <property name="top_attach">5</property>
- <property name="bottom_attach">6</property>
+ <property name="top_attach">6</property>
+ <property name="bottom_attach">7</property>
<property name="x_options">GTK_FILL</property>
<property name="y_options">GTK_FILL</property>
</packing>
@@ -2618,6 +2681,49 @@ For example: "Work" or "Personal"</property>
<property name="y_options">GTK_FILL</property>
</packing>
</child>
+ <child>
+ <object class="GtkLabel" id="smime_hash_algo_label">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="label" translatable="yes">Signing _algorithm:</property>
+ <property name="use_underline">True</property>
+ <property name="mnemonic_widget">smime_hash_algo</property>
+ </object>
+ <packing>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkAlignment" id="smime_hash_algo_alignment">
+ <property name="visible">True</property>
+ <property name="left_padding">0</property>
+ <property name="xalign">0.0</property>
+ <property name="xscale">0.0</property>
+ <child>
+ <object class="GtkComboBox" id="smime_hash_algo">
+ <property name="visible">True</property>
+ <property name="model">hash_algo_model</property>
+ <child>
+ <object class="GtkCellRendererText" id="smime_hash_algo_renderer"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">2</property>
+ <property name="bottom_attach">3</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
</object>
<packing>
<property name="position">1</property>
@@ -2928,7 +3034,7 @@ For example: "Work" or "Personal"</property>
<property name="spacing">4</property>
<child>
<object class="GtkCheckButton" id="mlimit_checkbutton">
- <property name="label" translatable="yes">Do not format messages when text si_ze exceeds</property>
+ <property name="label" translatable="yes">Do not display messages when text si_ze exceeds</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
@@ -2976,7 +3082,7 @@ For example: "Work" or "Personal"</property>
<property name="visible">True</property>
<child>
<object class="GtkCheckButton" id="address_checkbox">
- <property name="label" translatable="yes">_Shrink To / Cc / Bcc headers to </property>
+ <property name="label" translatable="yes" comments="Translators: This is part of 'Shrink To / Cc / Bcc headers to [X] addresses', where [X] is a spin with a number">_Shrink To / Cc / Bcc headers to </property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">False</property>
@@ -3006,7 +3112,7 @@ For example: "Work" or "Personal"</property>
<child>
<object class="GtkLabel" id="label584">
<property name="visible">True</property>
- <property name="label" translatable="yes">addresses</property>
+ <property name="label" translatable="yes" comments="Translators: This is part of 'Shrink To / Cc / Bcc headers to [X] addresses', where [X] is a spin with a number">addresses</property>
</object>
<packing>
<property name="expand">False</property>
@@ -3667,7 +3773,7 @@ For example: "Work" or "Personal"</property>
<object class="GtkLabel" id="label524">
<property name="visible">True</property>
<property name="xalign">0</property>
- <property name="label" translatable="yes">Displayed Message _Headers</property>
+ <property name="label" translatable="yes">Displayed Message Headers</property>
<property name="use_underline">True</property>
<property name="mnemonic_widget">txtHeaders</property>
<attributes>
@@ -4358,7 +4464,7 @@ For example: "Work" or "Personal"</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Reply style:</property>
<property name="use_underline">True</property>
- <property name="justify">center</property>
+ <property name="justify">left</property>
</object>
<packing>
<property name="top_attach">1</property>
@@ -4436,7 +4542,7 @@ For example: "Work" or "Personal"</property>
<property name="xalign">0</property>
<property name="label" translatable="yes">_Forward style:</property>
<property name="use_underline">True</property>
- <property name="justify">center</property>
+ <property name="justify">left</property>
</object>
<packing>
<property name="x_options">GTK_FILL</property>
@@ -4486,12 +4592,38 @@ For example: "Work" or "Personal"</property>
<property name="orientation">vertical</property>
<property name="spacing">8</property>
<child>
- <object class="GtkLabel" id="label588">
+ <object class="GtkHBox" id="hbox242">
<property name="visible">True</property>
- <property name="xalign">0</property>
- <property name="yalign">0.47999998927116394</property>
- <property name="label" translatable="yes">&lt;b&gt;Top Posting Option&lt;/b&gt; (Not Recommended)</property>
- <property name="use_markup">True</property>
+ <property name="spacing">6</property>
+ <child>
+ <object class="GtkLabel" id="label588">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.47999998927116394</property>
+ <property name="label" translatable="yes" comments="Translators: Section name for options related to Top Posting. See Edit|Preferences|Composer Preferences for better understanding">Top Posting Option</property>
+ <attributes>
+ <attribute name="weight" value="bold"/>
+ </attributes>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="label589">
+ <property name="visible">True</property>
+ <property name="xalign">0</property>
+ <property name="yalign">0.47999998927116394</property>
+ <property name="label" translatable="yes" comments="Translators: This is part of the line with 'Top Posting Option' text. See Edit|Preferences|Composer Preferences for the usage">(Not Recommended)</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
<property name="expand">False</property>
diff --git a/mail/mail-dialogs.ui b/mail/mail-dialogs.ui
index b4651aa152..fa7eda0a21 100644
--- a/mail/mail-dialogs.ui
+++ b/mail/mail-dialogs.ui
@@ -202,19 +202,26 @@
<property name="orientation">vertical</property>
<property name="spacing">12</property>
<child>
- <object class="GtkHBox" id="hbox1">
+ <object class="GtkTable" id="top_items_table">
<property name="visible">True</property>
- <property name="spacing">12</property>
+ <property name="n_rows">2</property>
+ <property name="n_columns">3</property>
+ <property name="column_spacing">12</property>
+ <property name="row_spacing">6</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">S_erver:</property>
<property name="use_underline">True</property>
+ <property name="xalign">1</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">0</property>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
@@ -222,9 +229,12 @@
<property name="visible">True</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="position">1</property>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
</packing>
</child>
<child>
@@ -233,10 +243,40 @@
<property name="pulse_step">0.10000000149</property>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">False</property>
- <property name="pack_type">end</property>
- <property name="position">2</property>
+ <property name="left_attach">2</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">0</property>
+ <property name="bottom_attach">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="filterlabel">
+ <property name="visible">True</property>
+ <property name="label" translatable="yes">S_how only items containing:</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">1</property>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="right_attach">1</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ <property name="y_options"></property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkEntry" id="filter_entry">
+ <property name="visible">True</property>
+ <property name="secondary_icon_stock">gtk-clear</property>
+ <property name="secondary_icon_activatable">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">3</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="y_options"></property>
</packing>
</child>
</object>
@@ -268,6 +308,36 @@
<property name="visible">True</property>
<property name="layout_style">end</property>
<child>
+ <object class="GtkButton" id="expand_button">
+ <property name="label" translatable="yes">E_xpand all</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="collapse_button">
+ <property name="label" translatable="yes">Collapse _all</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="can_default">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkButton" id="refresh_button">
<property name="label">gtk-refresh</property>
<property name="visible">True</property>
@@ -279,7 +349,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">0</property>
+ <property name="position">2</property>
</packing>
</child>
<child>
@@ -294,7 +364,7 @@
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
- <property name="position">1</property>
+ <property name="position">3</property>
</packing>
</child>
</object>
@@ -690,7 +760,7 @@ Please select a follow up action from the "Flag" menu.</property>
<child>
<object class="GtkLabel" id="label14">
<property name="visible">True</property>
- <property name="label" translatable="yes"> </property>
+ <property name="label" translatable="no"> </property>
</object>
<packing>
<property name="expand">False</property>
diff --git a/mail/mail-folder-cache.c b/mail/mail-folder-cache.c
index b1a332d4f4..a9726ea0db 100644
--- a/mail/mail-folder-cache.c
+++ b/mail/mail-folder-cache.c
@@ -32,26 +32,14 @@
#include "config.h"
#endif
-#ifdef G_LOG_DOMAIN
-#undef G_LOG_DOMAIN
-#endif
-#define G_LOG_DOMAIN "folder tree"
-
#include <string.h>
#include <time.h>
#include <glib.h>
+#include <glib/gi18n.h>
#include <glib-object.h>
#include <glib/gstdio.h>
-#include <glib/gi18n.h>
-#include <camel/camel-store.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-vtrash-folder.h>
-#include <camel/camel-vee-store.h>
-#include <camel/camel-offline-store.h>
-#include <camel/camel-disco-store.h>
-
#include <libedataserver/e-data-server-util.h>
#include "e-util/e-marshal.h"
#include "e-util/e-util.h"
@@ -70,13 +58,11 @@
/* This code is a mess, there is no reason it should be so complicated. */
-G_DEFINE_TYPE (MailFolderCache, mail_folder_cache, G_TYPE_OBJECT)
-
-#define FOLDER_CACHE_PRIVATE(o) \
- (G_TYPE_INSTANCE_GET_PRIVATE ((o), MAIL_TYPE_FOLDER_CACHE, MailFolderCachePrivate))
+#define MAIL_FOLDER_CACHE_GET_PRIVATE(obj) \
+ (G_TYPE_INSTANCE_GET_PRIVATE \
+ ((obj), MAIL_TYPE_FOLDER_CACHE, MailFolderCachePrivate))
-struct _MailFolderCachePrivate
-{
+struct _MailFolderCachePrivate {
/* source id for the ping timeout callback */
guint ping_id;
/* Store to storeinfo table, active stores */
@@ -92,8 +78,7 @@ struct _MailFolderCachePrivate
gint count_trash;
};
-enum
-{
+enum {
FOLDER_AVAILABLE,
FOLDER_UNAVAILABLE,
FOLDER_DELETED,
@@ -112,8 +97,9 @@ struct _folder_info {
gchar *uri; /* uri of folder */
guint32 flags;
+ gboolean has_children;
- CamelFolder *folder; /* if known */
+ gpointer folder; /* if known (weak pointer) */
};
/* pending list of updates */
@@ -148,11 +134,7 @@ struct _store_info {
GQueue folderinfo_updates;
};
-static void folder_changed(CamelObject *o, gpointer event_data, gpointer user_data);
-static void folder_renamed(CamelObject *o, gpointer event_data, gpointer user_data);
-static void folder_finalised(CamelObject *o, gpointer event_data, gpointer user_data);
-
-static gboolean ping_cb (gpointer user_data);
+G_DEFINE_TYPE (MailFolderCache, mail_folder_cache, G_TYPE_OBJECT)
static void
free_update(struct _folder_update *up)
@@ -160,7 +142,7 @@ free_update(struct _folder_update *up)
g_free (up->full_name);
g_free (up->uri);
if (up->store)
- camel_object_unref(up->store);
+ g_object_unref (up->store);
g_free (up->oldfull);
g_free (up->olduri);
g_free (up->msg_uid);
@@ -212,7 +194,7 @@ real_flush_updates (gpointer o, gpointer event_data, gpointer data)
if (folder) {
mail_folder_cache_note_folder (self, folder);
- camel_object_unref (folder);
+ g_object_unref (folder);
}
}
@@ -234,45 +216,6 @@ flush_updates (MailFolderCache *self)
self, NULL, NULL);
}
-static void
-unset_folder_info(MailFolderCache *self, struct _folder_info *mfi, gint delete, gint unsub)
-{
- struct _folder_update *up;
-
- d(printf("unset folderinfo '%s'\n", mfi->uri));
-
- if (mfi->folder) {
- CamelFolder *folder = mfi->folder;
-
- camel_object_unhook_event(folder, "folder_changed", folder_changed, self);
- camel_object_unhook_event(folder, "renamed", folder_renamed, self);
- camel_object_unhook_event(folder, "finalize", folder_finalised, self);
- }
-
- if ((mfi->flags & CAMEL_FOLDER_NOSELECT) == 0) {
- up = g_malloc0(sizeof(*up));
-
- up->remove = TRUE;
- up->delete = delete;
- up->unsub = unsub;
- up->store = mfi->store_info->store;
- up->full_name = g_strdup (mfi->full_name);
- camel_object_ref(up->store);
- up->uri = g_strdup(mfi->uri);
-
- g_queue_push_head (&self->priv->updates, up);
- flush_updates(self);
- }
-}
-
-static void
-free_folder_info(struct _folder_info *mfi)
-{
- g_free(mfi->full_name);
- g_free(mfi->uri);
- g_free(mfi);
-}
-
/* This is how unread counts work (and don't work):
*
* camel_folder_unread_message_count() only gives a correct answer if
@@ -320,7 +263,7 @@ update_1folder(MailFolderCache *self, struct _folder_info *mfi, gint new, const
if ((deleted = camel_folder_get_deleted_message_count (folder)) > 0)
unread -= deleted;
- camel_object_get (folder, NULL, CAMEL_FOLDER_JUNKED, &junked, NULL);
+ junked = folder->summary->junk_count;
if (junked > 0)
unread -= junked;
@@ -344,86 +287,36 @@ update_1folder(MailFolderCache *self, struct _folder_info *mfi, gint new, const
up->full_name = g_strdup(mfi->full_name);
up->unread = unread;
up->new = new;
- up->store = mfi->store_info->store;
+ up->store = g_object_ref (mfi->store_info->store);
up->uri = g_strdup(mfi->uri);
up->msg_uid = g_strdup (msg_uid);
up->msg_sender = g_strdup (msg_sender);
up->msg_subject = g_strdup (msg_subject);
- camel_object_ref(up->store);
g_queue_push_head (&self->priv->updates, up);
flush_updates(self);
}
static void
-setup_folder(MailFolderCache *self, CamelFolderInfo *fi, struct _store_info *si)
-{
- struct _folder_info *mfi;
- struct _folder_update *up;
-
- mfi = g_hash_table_lookup(si->folders, fi->full_name);
- if (mfi) {
- update_1folder (self, mfi, 0, NULL, NULL, NULL, fi);
- } else {
- d(printf("Adding new folder: %s (%s)\n", fi->full_name, fi->uri));
- mfi = g_malloc0(sizeof(*mfi));
- mfi->full_name = g_strdup(fi->full_name);
- mfi->uri = g_strdup(fi->uri);
- mfi->store_info = si;
- mfi->flags = fi->flags;
-
- g_hash_table_insert(si->folders, mfi->full_name, mfi);
- g_hash_table_insert(si->folders_uri, mfi->uri, mfi);
-
- up = g_malloc0(sizeof(*up));
- up->full_name = g_strdup(mfi->full_name);
- up->uri = g_strdup(fi->uri);
- up->unread = fi->unread;
- up->store = si->store;
- camel_object_ref(up->store);
-
- if ((fi->flags & CAMEL_FOLDER_NOSELECT) == 0)
- up->add = TRUE;
-
- g_queue_push_head (&self->priv->updates, up);
- flush_updates(self);
- }
-}
-
-static void
-create_folders(MailFolderCache *self, CamelFolderInfo *fi, struct _store_info *si)
-{
- d(printf("Setup new folder: %s\n %s\n", fi->uri, fi->full_name));
-
- while (fi) {
- setup_folder(self, fi, si);
-
- if (fi->child)
- create_folders(self, fi->child, si);
-
- fi = fi->next;
- }
-}
-
-static void
-folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
+folder_changed_cb (CamelFolder *folder,
+ CamelFolderChangeInfo *changes,
+ MailFolderCache *self)
{
static time_t last_newmail = 0;
- CamelFolderChangeInfo *changes = event_data;
- CamelFolder *folder = (CamelFolder *)o;
CamelFolder *local_drafts;
CamelFolder *local_outbox;
CamelFolder *local_sent;
- CamelStore *store = folder->parent_store;
+ CamelStore *parent_store;
CamelMessageInfo *info;
struct _store_info *si;
struct _folder_info *mfi;
+ const gchar *full_name;
gint new = 0;
gint i;
guint32 flags;
gchar *uid = NULL, *sender = NULL, *subject = NULL;
- MailFolderCache *self = (MailFolderCache*) user_data;
- d(printf("folder '%s' changed\n", folder->full_name));
+ full_name = camel_folder_get_full_name (folder);
+ parent_store = camel_folder_get_parent_store (folder);
local_drafts = e_mail_local_get_folder (E_MAIL_FOLDER_DRAFTS);
local_outbox = e_mail_local_get_folder (E_MAIL_FOLDER_OUTBOX);
@@ -459,7 +352,7 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
subject = NULL;
}
}
- camel_message_info_free (info);
+ camel_folder_free_message_info (folder, info);
}
}
}
@@ -469,8 +362,8 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
g_mutex_lock (self->priv->stores_mutex);
if (self->priv->stores != NULL
- && (si = g_hash_table_lookup(self->priv->stores, store)) != NULL
- && (mfi = g_hash_table_lookup(si->folders, folder->full_name)) != NULL
+ && (si = g_hash_table_lookup(self->priv->stores, parent_store)) != NULL
+ && (mfi = g_hash_table_lookup(si->folders, full_name)) != NULL
&& mfi->folder == folder) {
update_1folder (self, mfi, new, uid, sender, subject, NULL);
}
@@ -482,143 +375,159 @@ folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
}
static void
-folder_finalised(CamelObject *o, gpointer event_data, gpointer user_data)
+unset_folder_info(MailFolderCache *self, struct _folder_info *mfi, gint delete, gint unsub)
{
- CamelFolder *folder = (CamelFolder *)o;
- CamelStore *store = folder->parent_store;
- struct _store_info *si;
- struct _folder_info *mfi;
- MailFolderCache *self = (MailFolderCache*) user_data;
+ struct _folder_update *up;
- d(printf("Folder finalised '%s'!\n", ((CamelFolder *)o)->full_name));
- g_mutex_lock (self->priv->stores_mutex);
- if (self->priv->stores != NULL
- && (si = g_hash_table_lookup(self->priv->stores, store)) != NULL
- && (mfi = g_hash_table_lookup(si->folders, folder->full_name)) != NULL
- && mfi->folder == folder) {
- mfi->folder = NULL;
+ d(printf("unset folderinfo '%s'\n", mfi->uri));
+
+ if (mfi->folder) {
+ CamelFolder *folder = mfi->folder;
+
+ g_signal_handlers_disconnect_by_func (
+ folder, folder_changed_cb, self);
+
+ g_object_remove_weak_pointer (
+ G_OBJECT (mfi->folder), &mfi->folder);
+ }
+
+ if ((mfi->flags & CAMEL_FOLDER_NOSELECT) == 0) {
+ up = g_malloc0(sizeof(*up));
+
+ up->remove = TRUE;
+ up->delete = delete;
+ up->unsub = unsub;
+ up->store = g_object_ref (mfi->store_info->store);
+ up->full_name = g_strdup (mfi->full_name);
+ up->uri = g_strdup(mfi->uri);
+
+ g_queue_push_head (&self->priv->updates, up);
+ flush_updates(self);
}
- g_mutex_unlock (self->priv->stores_mutex);
}
static void
-folder_renamed(CamelObject *o, gpointer event_data, gpointer user_data)
+free_folder_info(struct _folder_info *mfi)
{
- CamelFolder *folder = (CamelFolder *)o;
- gchar *old = event_data;
-
- d(printf("Folder renamed from '%s' to '%s'\n", old, folder->full_name));
-
- old = old;
- folder = folder;
- /* Dont do anything, do it from the store rename event? */
+ g_free(mfi->full_name);
+ g_free(mfi->uri);
+ g_free(mfi);
}
-/**
- * mail_folder_cache_note_folder:
- *
- * When a folder has been opened, notify it for watching. The folder must have
- * already been created on the store (which has already been noted) before the
- * folder can be opened
- */
-void mail_folder_cache_note_folder(MailFolderCache *self, CamelFolder *folder)
+static void
+setup_folder(MailFolderCache *self, CamelFolderInfo *fi, struct _store_info *si)
{
- CamelStore *store = folder->parent_store;
- struct _store_info *si;
struct _folder_info *mfi;
+ struct _folder_update *up;
+
+ mfi = g_hash_table_lookup(si->folders, fi->full_name);
+ if (mfi) {
+ update_1folder (self, mfi, 0, NULL, NULL, NULL, fi);
+ } else {
+ d(printf("Adding new folder: %s (%s)\n", fi->full_name, fi->uri));
+ mfi = g_malloc0(sizeof(*mfi));
+ mfi->full_name = g_strdup(fi->full_name);
+ mfi->uri = g_strdup(fi->uri);
+ mfi->store_info = si;
+ mfi->flags = fi->flags;
+ mfi->has_children = fi->child != NULL;
- d(printf("noting folder '%s'\n", folder->full_name));
+ g_hash_table_insert(si->folders, mfi->full_name, mfi);
+ g_hash_table_insert(si->folders_uri, mfi->uri, mfi);
- g_mutex_lock (self->priv->stores_mutex);
- if (self->priv->stores == NULL
- || (si = g_hash_table_lookup(self->priv->stores, store)) == NULL
- || (mfi = g_hash_table_lookup(si->folders, folder->full_name)) == NULL) {
- w(g_warning("Noting folder before store initialised"));
- g_mutex_unlock (self->priv->stores_mutex);
- return;
- }
+ up = g_malloc0(sizeof(*up));
+ up->full_name = g_strdup(mfi->full_name);
+ up->uri = g_strdup(fi->uri);
+ up->unread = fi->unread;
+ up->store = g_object_ref (si->store);
- /* dont do anything if we already have this */
- if (mfi->folder == folder) {
- g_mutex_unlock (self->priv->stores_mutex);
- return;
+ if ((fi->flags & CAMEL_FOLDER_NOSELECT) == 0)
+ up->add = TRUE;
+
+ g_queue_push_head (&self->priv->updates, up);
+ flush_updates(self);
}
+}
- mfi->folder = folder;
+static void
+create_folders(MailFolderCache *self, CamelFolderInfo *fi, struct _store_info *si)
+{
+ d(printf("Setup new folder: %s\n %s\n", fi->uri, fi->full_name));
- update_1folder (self, mfi, 0, NULL, NULL, NULL, NULL);
+ while (fi) {
+ setup_folder(self, fi, si);
- g_mutex_unlock (self->priv->stores_mutex);
+ if (fi->child)
+ create_folders(self, fi->child, si);
- camel_object_hook_event(folder, "folder_changed", folder_changed, self);
- camel_object_hook_event(folder, "renamed", folder_renamed, self);
- camel_object_hook_event(folder, "finalize", folder_finalised, self);
+ fi = fi->next;
+ }
}
static void
-store_folder_subscribed(CamelObject *o, gpointer event_data, gpointer data)
+store_folder_subscribed_cb (CamelStore *store,
+ CamelFolderInfo *info,
+ MailFolderCache *self)
{
struct _store_info *si;
- CamelFolderInfo *fi = event_data;
- MailFolderCache *self = (MailFolderCache*) data;
-
- d(printf("Store folder subscribed '%s' store '%s' \n", fi->full_name, camel_url_to_string(((CamelService *)o)->url, 0)));
g_mutex_lock (self->priv->stores_mutex);
- si = g_hash_table_lookup(self->priv->stores, o);
+ si = g_hash_table_lookup (self->priv->stores, store);
if (si)
- setup_folder(self, fi, si);
+ setup_folder (self, info, si);
g_mutex_unlock (self->priv->stores_mutex);
}
static void
-store_folder_created(CamelObject *o, gpointer event_data, gpointer data)
+store_folder_created_cb (CamelStore *store,
+ CamelFolderInfo *info,
+ MailFolderCache *cache)
{
- /* we only want created events to do more work if we dont support subscriptions */
- if (!camel_store_supports_subscriptions(CAMEL_STORE(o)))
- store_folder_subscribed(o, event_data, data);
+ /* We only want created events to do more work
+ * if we dont support subscriptions. */
+ if (!camel_store_supports_subscriptions (store))
+ store_folder_subscribed_cb (store, info, cache);
}
static void
-store_folder_opened(CamelObject *o, gpointer event_data, gpointer data)
+store_folder_opened_cb (CamelStore *store,
+ CamelFolder *folder,
+ MailFolderCache *self)
{
- CamelFolder *folder = event_data;
- MailFolderCache *self = (MailFolderCache*) data;
-
- mail_folder_cache_note_folder(self, folder);
+ mail_folder_cache_note_folder (self, folder);
}
static void
-store_folder_unsubscribed(CamelObject *o, gpointer event_data, gpointer data)
+store_folder_unsubscribed_cb (CamelStore *store,
+ CamelFolderInfo *info,
+ MailFolderCache *self)
{
struct _store_info *si;
- CamelFolderInfo *fi = event_data;
struct _folder_info *mfi;
- CamelStore *store = (CamelStore *)o;
- MailFolderCache *self = (MailFolderCache*) data;
-
- d(printf("Store Folder deleted: %s\n", fi->full_name));
g_mutex_lock (self->priv->stores_mutex);
- si = g_hash_table_lookup(self->priv->stores, store);
+ si = g_hash_table_lookup (self->priv->stores, store);
if (si) {
- mfi = g_hash_table_lookup(si->folders, fi->full_name);
+ mfi = g_hash_table_lookup(si->folders, info->full_name);
if (mfi) {
- g_hash_table_remove(si->folders, mfi->full_name);
- g_hash_table_remove(si->folders_uri, mfi->uri);
- unset_folder_info(self, mfi, TRUE, TRUE);
- free_folder_info(mfi);
+ g_hash_table_remove (si->folders, mfi->full_name);
+ g_hash_table_remove (si->folders_uri, mfi->uri);
+ unset_folder_info (self, mfi, TRUE, TRUE);
+ free_folder_info (mfi);
}
}
g_mutex_unlock (self->priv->stores_mutex);
}
static void
-store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data)
+store_folder_deleted_cb (CamelStore *store,
+ CamelFolderInfo *info,
+ MailFolderCache *self)
{
- /* we only want deleted events to do more work if we dont support subscriptions */
- if (!camel_store_supports_subscriptions(CAMEL_STORE(o)))
- store_folder_unsubscribed(o, event_data, data);
+ /* We only want deleted events to do more work
+ * if we dont support subscriptions. */
+ if (!camel_store_supports_subscriptions (store))
+ store_folder_unsubscribed_cb (store, info, self);
}
static gchar *
@@ -670,6 +579,7 @@ rename_folders(MailFolderCache *self, struct _store_info *si, const gchar *oldba
mfi->full_name = g_strdup(fi->full_name);
mfi->uri = g_strdup(fi->uri);
mfi->flags = fi->flags;
+ mfi->has_children = fi->child != NULL;
g_hash_table_insert(si->folders, mfi->full_name, mfi);
g_hash_table_insert(si->folders_uri, mfi->uri, mfi);
@@ -681,6 +591,7 @@ rename_folders(MailFolderCache *self, struct _store_info *si, const gchar *oldba
mfi->uri = g_strdup(fi->uri);
mfi->store_info = si;
mfi->flags = fi->flags;
+ mfi->has_children = fi->child != NULL;
g_hash_table_insert(si->folders, mfi->full_name, mfi);
g_hash_table_insert(si->folders_uri, mfi->uri, mfi);
@@ -689,8 +600,7 @@ rename_folders(MailFolderCache *self, struct _store_info *si, const gchar *oldba
up->full_name = g_strdup(mfi->full_name);
up->uri = g_strdup(mfi->uri);
up->unread = fi->unread==-1?0:fi->unread;
- up->store = si->store;
- camel_object_ref(up->store);
+ up->store = g_object_ref (si->store);
if ((fi->flags & CAMEL_FOLDER_NOSELECT) == 0)
up->add = TRUE;
@@ -749,14 +659,12 @@ folder_cmp(gconstpointer ap, gconstpointer bp)
}
static void
-store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
+store_folder_renamed_cb (CamelStore *store,
+ const gchar *old_name,
+ CamelFolderInfo *info,
+ MailFolderCache *self)
{
- CamelStore *store = (CamelStore *)o;
- CamelRenameInfo *info = event_data;
struct _store_info *si;
- MailFolderCache *self = (MailFolderCache*) data;
-
- d(printf("Folder renamed: oldbase = '%s' new->full = '%s'\n", info->old_base, info->new->full_name));
g_mutex_lock (self->priv->stores_mutex);
si = g_hash_table_lookup(self->priv->stores, store);
@@ -767,12 +675,12 @@ store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
/* Ok, so for some reason the folderinfo we have comes in all messed up from
imap, should find out why ... this makes it workable */
- get_folders(info->new, folders);
+ get_folders(info, folders);
qsort(folders->pdata, folders->len, sizeof(folders->pdata[0]), folder_cmp);
top = folders->pdata[0];
for (i=0;i<folders->len;i++) {
- rename_folders(self, si, info->old_base, top->full_name, folders->pdata[i]);
+ rename_folders(self, si, old_name, top->full_name, folders->pdata[i]);
}
g_ptr_array_free(folders, TRUE);
@@ -803,58 +711,6 @@ free_folder_info_hash(gchar *path, struct _folder_info *mfi, gpointer data)
free_folder_info(mfi);
}
-/**
- * mail_folder_cache_note_store_remove:
- *
- * Notify the cache that the specified @store can be removed from the cache
- */
-void
-mail_folder_cache_note_store_remove(MailFolderCache *self, CamelStore *store)
-{
- struct _store_info *si;
-
- g_return_if_fail (CAMEL_IS_STORE(store));
-
- if (self->priv->stores == NULL)
- return;
-
- d(printf("store removed!!\n"));
- g_mutex_lock (self->priv->stores_mutex);
- si = g_hash_table_lookup(self->priv->stores, store);
- if (si) {
- GList *link;
- g_hash_table_remove(self->priv->stores, store);
-
- camel_object_unhook_event(store, "folder_opened", store_folder_opened, self);
- camel_object_unhook_event(store, "folder_created", store_folder_created, self);
- camel_object_unhook_event(store, "folder_deleted", store_folder_deleted, self);
- camel_object_unhook_event(store, "folder_renamed", store_folder_renamed, self);
- camel_object_unhook_event(store, "folder_subscribed", store_folder_subscribed, self);
- camel_object_unhook_event(store, "folder_unsubscribed", store_folder_unsubscribed, self);
- g_hash_table_foreach(si->folders, (GHFunc)unset_folder_info_hash, self);
-
- link = g_queue_peek_head_link (&si->folderinfo_updates);
-
- while (link != NULL) {
- struct _update_data *ud = link->data;
-
- d(printf("Cancelling outstanding folderinfo update %d\n", ud->id));
- mail_msg_cancel(ud->id);
- ud->cancel = 1;
-
- link = g_list_next (link);
- }
-
- camel_object_unref(si->store);
- g_hash_table_foreach(si->folders, (GHFunc)free_folder_info_hash, NULL);
- g_hash_table_destroy(si->folders);
- g_hash_table_destroy(si->folders_uri);
- g_free(si);
- }
-
- g_mutex_unlock (self->priv->stores_mutex);
-}
-
static gboolean
update_folders(CamelStore *store, CamelFolderInfo *fi, gpointer data)
{
@@ -885,16 +741,16 @@ update_folders(CamelStore *store, CamelFolderInfo *fi, gpointer data)
struct _ping_store_msg {
MailMsg base;
-
CamelStore *store;
};
static gchar *
ping_store_desc (struct _ping_store_msg *m)
{
- gchar *service_name = camel_service_get_name (CAMEL_SERVICE (m->store), TRUE);
+ gchar *service_name;
gchar *msg;
+ service_name = camel_service_get_name (CAMEL_SERVICE (m->store), TRUE);
msg = g_strdup_printf (_("Pinging %s"), service_name);
g_free (service_name);
@@ -921,7 +777,7 @@ ping_store_exec (struct _ping_store_msg *m)
static void
ping_store_free (struct _ping_store_msg *m)
{
- camel_object_unref (m->store);
+ g_object_unref (m->store);
}
static MailMsgInfo ping_store_info = {
@@ -933,28 +789,25 @@ static MailMsgInfo ping_store_info = {
};
static void
-ping_store (gpointer key, gpointer val, gpointer user_data)
+ping_store (CamelStore *store)
{
- CamelStore *store = (CamelStore *) key;
struct _ping_store_msg *m;
if (CAMEL_SERVICE (store)->status != CAMEL_SERVICE_CONNECTED)
return;
m = mail_msg_new (&ping_store_info);
- m->store = store;
- camel_object_ref (store);
+ m->store = g_object_ref (store);
mail_msg_slow_ordered_push (m);
}
static gboolean
-ping_cb (gpointer user_data)
+ping_cb (MailFolderCache *self)
{
- MailFolderCache *self = (MailFolderCache*) user_data;
g_mutex_lock (self->priv->stores_mutex);
- g_hash_table_foreach (self->priv->stores, ping_store, NULL);
+ g_hash_table_foreach (self->priv->stores, (GHFunc) ping_store, NULL);
g_mutex_unlock (self->priv->stores_mutex);
@@ -980,84 +833,6 @@ store_online_cb (CamelStore *store, gpointer data)
g_mutex_unlock (ud->cache->priv->stores_mutex);
}
-/**
- * mail_folder_cache_note_store:
- *
- * Add a store whose folders should appear in the shell The folders are scanned
- * from the store, and/or added at runtime via the folder_created event. The
- * @done function returns if we can free folder info.
- */
-void
-mail_folder_cache_note_store(MailFolderCache *self, CamelStore *store, CamelOperation *op,
- NoteDoneFunc done, gpointer data)
-{
- struct _store_info *si;
- struct _update_data *ud;
- gint hook = 0;
-
- g_return_if_fail (CAMEL_IS_STORE(store));
- g_return_if_fail (mail_in_main_thread());
-
- g_mutex_lock (self->priv->stores_mutex);
-
- si = g_hash_table_lookup(self->priv->stores, store);
- if (si == NULL) {
- d(printf("Noting a new store: %p: %s\n", store, camel_url_to_string(((CamelService *)store)->url, 0)));
-
- si = g_malloc0(sizeof(*si));
- si->folders = g_hash_table_new(g_str_hash, g_str_equal);
- si->folders_uri = g_hash_table_new(CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->hash_folder_name,
- CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->compare_folder_name);
- si->store = store;
- camel_object_ref((CamelObject *)store);
- g_hash_table_insert(self->priv->stores, store, si);
- g_queue_init (&si->folderinfo_updates);
- hook = TRUE;
- }
-
- ud = g_malloc(sizeof(*ud));
- ud->done = done;
- ud->data = data;
- ud->cancel = 0;
- ud->cache = self;
-
- /* We might get a race when setting up a store, such that it is still left in offline mode,
- after we've gone online. This catches and fixes it up when the shell opens us */
- if (CAMEL_IS_DISCO_STORE (store)) {
- if (camel_session_is_online (session)
- && camel_disco_store_status (CAMEL_DISCO_STORE (store)) == CAMEL_DISCO_STORE_OFFLINE) {
- /* Note: we use the 'id' here, even though its not the right id, its still ok */
- ud->id = mail_store_set_offline (store, FALSE, store_online_cb, ud);
- } else {
- goto normal_setup;
- }
- } else if (CAMEL_IS_OFFLINE_STORE (store)) {
- if (camel_session_is_online (session) && CAMEL_OFFLINE_STORE (store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
- /* Note: we use the 'id' here, even though its not the right id, its still ok */
- ud->id = mail_store_set_offline (store, FALSE, store_online_cb, ud);
- } else {
- goto normal_setup;
- }
- } else {
- normal_setup:
- ud->id = mail_get_folderinfo (store, op, update_folders, ud);
- }
-
- g_queue_push_tail (&si->folderinfo_updates, ud);
-
- g_mutex_unlock (self->priv->stores_mutex);
-
- /* there is potential for race here, but it is safe as we check for the store anyway */
- if (hook) {
- camel_object_hook_event(store, "folder_opened", store_folder_opened, self);
- camel_object_hook_event(store, "folder_created", store_folder_created, self);
- camel_object_hook_event(store, "folder_deleted", store_folder_deleted, self);
- camel_object_hook_event(store, "folder_renamed", store_folder_renamed, self);
- camel_object_hook_event(store, "folder_subscribed", store_folder_subscribed, self);
- camel_object_hook_event(store, "folder_unsubscribed", store_folder_unsubscribed, self);
- }
-}
-
struct _find_info {
const gchar *uri;
struct _folder_info *fi;
@@ -1065,7 +840,10 @@ struct _find_info {
};
/* look up on each storeinfo using proper hash function for that stores uri's */
-static void storeinfo_find_folder_info(CamelStore *store, struct _store_info *si, struct _find_info *fi)
+static void
+storeinfo_find_folder_info (CamelStore *store,
+ struct _store_info *si,
+ struct _find_info *fi)
{
if (fi->fi == NULL) {
if (((CamelService *)store)->provider->url_equal(fi->url, ((CamelService *)store)->url)) {
@@ -1078,77 +856,11 @@ static void storeinfo_find_folder_info(CamelStore *store, struct _store_info *si
}
}
-/**
- * mail_folder_cache_get_folder_from_uri:
- *
- * Gets the #CamelFolder for the supplied @uri.
- *
- * Return value: TRUE if the uri is available, folderp is set to a reffed folder if
- * the folder has also already been opened
- */
-gboolean
-mail_folder_cache_get_folder_from_uri(MailFolderCache *self, const gchar *uri, CamelFolder **folderp)
-{
- struct _find_info fi = { uri, NULL, NULL };
-
- if (self->priv->stores == NULL)
- return FALSE;
-
- fi.url = camel_url_new(uri, NULL);
-
- g_mutex_lock (self->priv->stores_mutex);
- g_hash_table_foreach(self->priv->stores, (GHFunc)storeinfo_find_folder_info, &fi);
- if (folderp) {
- if (fi.fi && fi.fi->folder) {
- *folderp = fi.fi->folder;
- camel_object_ref(*folderp);
- } else {
- *folderp = NULL;
- }
- }
- g_mutex_unlock (self->priv->stores_mutex);
-
- camel_url_free(fi.url);
-
- return fi.fi != NULL;
-}
-
-gboolean
-mail_folder_cache_get_folder_info_flags (MailFolderCache *self, CamelFolder *folder, gint *flags)
-{
- gchar *uri = mail_tools_folder_to_url (folder);
- struct _find_info fi = { uri, NULL, NULL };
-
- if (self->priv->stores == NULL)
- return FALSE;
-
- fi.url = camel_url_new (uri, NULL);
-
- g_mutex_lock (self->priv->stores_mutex);
- g_hash_table_foreach(self->priv->stores, (GHFunc)storeinfo_find_folder_info, &fi);
- if (flags) {
- if (fi.fi) {
- *flags = fi.fi->flags;
- }
- }
- g_mutex_unlock (self->priv->stores_mutex);
-
- camel_url_free(fi.url);
- g_free (uri);
-
- return fi.fi != NULL;
-}
-
-static void
-mail_folder_cache_dispose (GObject *object)
-{
- G_OBJECT_CLASS (mail_folder_cache_parent_class)->dispose (object);
-}
-
static void
mail_folder_cache_finalize (GObject *object)
{
MailFolderCache *cache = (MailFolderCache*) object;
+
g_hash_table_destroy (cache->priv->stores);
g_mutex_free (cache->priv->stores_mutex);
@@ -1162,17 +874,18 @@ mail_folder_cache_finalize (GObject *object)
cache->priv->update_id = 0;
}
+ /* Chain up to parent's finalize() method. */
G_OBJECT_CLASS (mail_folder_cache_parent_class)->finalize (object);
}
static void
-mail_folder_cache_class_init (MailFolderCacheClass *klass)
+mail_folder_cache_class_init (MailFolderCacheClass *class)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class;
- g_type_class_add_private (klass, sizeof (MailFolderCachePrivate));
+ g_type_class_add_private (class, sizeof (MailFolderCachePrivate));
- object_class->dispose = mail_folder_cache_dispose;
+ object_class = G_OBJECT_CLASS (class);
object_class->finalize = mail_folder_cache_finalize;
/**
@@ -1188,9 +901,9 @@ mail_folder_cache_class_init (MailFolderCacheClass *klass)
G_SIGNAL_RUN_FIRST,
0, /* struct offset */
NULL, NULL, /* accumulator */
- e_marshal_VOID__BOXED_STRING,
+ e_marshal_VOID__OBJECT_STRING,
G_TYPE_NONE, 2,
- E_TYPE_CAMEL_OBJECT, G_TYPE_STRING);
+ CAMEL_TYPE_OBJECT, G_TYPE_STRING);
/**
* MailFolderCache::folder-unavailable
@@ -1207,9 +920,9 @@ mail_folder_cache_class_init (MailFolderCacheClass *klass)
G_SIGNAL_RUN_FIRST,
0, /* struct offset */
NULL, NULL, /* accumulator */
- e_marshal_VOID__BOXED_STRING,
+ e_marshal_VOID__OBJECT_STRING,
G_TYPE_NONE, 2,
- E_TYPE_CAMEL_OBJECT, G_TYPE_STRING);
+ CAMEL_TYPE_OBJECT, G_TYPE_STRING);
/**
* MailFolderCache::folder-deleted
@@ -1224,9 +937,9 @@ mail_folder_cache_class_init (MailFolderCacheClass *klass)
G_SIGNAL_RUN_FIRST,
0, /* struct offset */
NULL, NULL, /* accumulator */
- e_marshal_VOID__BOXED_STRING,
+ e_marshal_VOID__OBJECT_STRING,
G_TYPE_NONE, 2,
- E_TYPE_CAMEL_OBJECT, G_TYPE_STRING);
+ CAMEL_TYPE_OBJECT, G_TYPE_STRING);
/**
* MailFolderCache::folder-renamed
@@ -1242,9 +955,9 @@ mail_folder_cache_class_init (MailFolderCacheClass *klass)
G_SIGNAL_RUN_FIRST,
0, /* struct offset */
NULL, NULL, /* accumulator */
- e_marshal_VOID__BOXED_STRING_STRING,
+ e_marshal_VOID__OBJECT_STRING_STRING,
G_TYPE_NONE, 3,
- E_TYPE_CAMEL_OBJECT, G_TYPE_STRING, G_TYPE_STRING);
+ CAMEL_TYPE_OBJECT, G_TYPE_STRING, G_TYPE_STRING);
/**
* MailFolderCache::folder-unread-updated
@@ -1260,9 +973,9 @@ mail_folder_cache_class_init (MailFolderCacheClass *klass)
G_SIGNAL_RUN_FIRST,
0, /* struct offset */
NULL, NULL, /* accumulator */
- e_marshal_VOID__BOXED_STRING_INT,
+ e_marshal_VOID__OBJECT_STRING_INT,
G_TYPE_NONE, 3,
- E_TYPE_CAMEL_OBJECT, G_TYPE_STRING, G_TYPE_INT);
+ CAMEL_TYPE_OBJECT, G_TYPE_STRING, G_TYPE_INT);
/**
* MailFolderCache::folder-changed
@@ -1283,9 +996,9 @@ mail_folder_cache_class_init (MailFolderCacheClass *klass)
G_SIGNAL_RUN_FIRST,
0, /* struct offset */
NULL, NULL, /* accumulator */
- e_marshal_VOID__BOXED_STRING_STRING_INT_STRING_STRING_STRING,
+ e_marshal_VOID__OBJECT_STRING_STRING_INT_STRING_STRING_STRING,
G_TYPE_NONE, 7,
- E_TYPE_CAMEL_OBJECT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT,
+ CAMEL_TYPE_OBJECT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT,
G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
}
@@ -1295,7 +1008,7 @@ mail_folder_cache_init (MailFolderCache *self)
const gchar *buf;
guint timeout;
- self->priv = FOLDER_CACHE_PRIVATE (self);
+ self->priv = MAIL_FOLDER_CACHE_GET_PRIVATE (self);
/* initialize values */
self->priv->stores = g_hash_table_new(NULL, NULL);
@@ -1308,19 +1021,8 @@ mail_folder_cache_init (MailFolderCache *self)
buf = getenv ("EVOLUTION_PING_TIMEOUT");
timeout = buf ? strtoul (buf, NULL, 10) : 600;
- self->priv->ping_id = g_timeout_add_seconds (timeout, ping_cb, self);
-}
-
-/**
- * mail_folder_cache_new:
- *
- * You probably don't want to use this. Use mail_folder_cache_get_default()
- * instead
- */
-MailFolderCache *
-mail_folder_cache_new (void)
-{
- return g_object_new (MAIL_TYPE_FOLDER_CACHE, NULL);
+ self->priv->ping_id = g_timeout_add_seconds (
+ timeout, (GSourceFunc) ping_cb, self);
}
static MailFolderCache *default_cache = NULL;
@@ -1341,3 +1043,294 @@ mail_folder_cache_get_default (void)
return default_cache;
}
+
+/**
+ * mail_folder_cache_note_store:
+ *
+ * Add a store whose folders should appear in the shell The folders are scanned
+ * from the store, and/or added at runtime via the folder_created event. The
+ * @done function returns if we can free folder info.
+ */
+void
+mail_folder_cache_note_store (MailFolderCache *self,
+ CamelStore *store,
+ CamelOperation *op,
+ NoteDoneFunc done,
+ gpointer data)
+{
+ struct _store_info *si;
+ struct _update_data *ud;
+ gint hook = 0;
+
+ g_return_if_fail (CAMEL_IS_STORE(store));
+ g_return_if_fail (mail_in_main_thread());
+
+ g_mutex_lock (self->priv->stores_mutex);
+
+ si = g_hash_table_lookup (self->priv->stores, store);
+ if (si == NULL) {
+ d(printf("Noting a new store: %p: %s\n", store, camel_url_to_string(((CamelService *)store)->url, 0)));
+
+ si = g_malloc0(sizeof(*si));
+ si->folders = g_hash_table_new(g_str_hash, g_str_equal);
+ si->folders_uri = g_hash_table_new(CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->hash_folder_name,
+ CAMEL_STORE_CLASS(CAMEL_OBJECT_GET_CLASS(store))->compare_folder_name);
+ si->store = g_object_ref (store);
+ g_hash_table_insert(self->priv->stores, store, si);
+ g_queue_init (&si->folderinfo_updates);
+ hook = TRUE;
+ }
+
+ ud = g_malloc(sizeof(*ud));
+ ud->done = done;
+ ud->data = data;
+ ud->cancel = 0;
+ ud->cache = self;
+
+ /* We might get a race when setting up a store, such that it is still left in offline mode,
+ after we've gone online. This catches and fixes it up when the shell opens us */
+ if (CAMEL_IS_DISCO_STORE (store)) {
+ if (camel_session_get_online (session)
+ && camel_disco_store_status (CAMEL_DISCO_STORE (store)) == CAMEL_DISCO_STORE_OFFLINE) {
+ /* Note: we use the 'id' here, even though its not the right id, its still ok */
+ ud->id = mail_store_set_offline (store, FALSE, store_online_cb, ud);
+ } else {
+ goto normal_setup;
+ }
+ } else if (CAMEL_IS_OFFLINE_STORE (store)) {
+ if (camel_session_get_online (session) && CAMEL_OFFLINE_STORE (store)->state == CAMEL_OFFLINE_STORE_NETWORK_UNAVAIL) {
+ /* Note: we use the 'id' here, even though its not the right id, its still ok */
+ ud->id = mail_store_set_offline (store, FALSE, store_online_cb, ud);
+ } else {
+ goto normal_setup;
+ }
+ } else {
+ normal_setup:
+ ud->id = mail_get_folderinfo (store, op, update_folders, ud);
+ }
+
+ g_queue_push_tail (&si->folderinfo_updates, ud);
+
+ g_mutex_unlock (self->priv->stores_mutex);
+
+ /* there is potential for race here, but it is safe as we check for the store anyway */
+ if (hook) {
+ g_signal_connect (
+ store, "folder-opened",
+ G_CALLBACK (store_folder_opened_cb), self);
+ g_signal_connect (
+ store, "folder-created",
+ G_CALLBACK (store_folder_created_cb), self);
+ g_signal_connect (
+ store, "folder-deleted",
+ G_CALLBACK (store_folder_deleted_cb), self);
+ g_signal_connect (
+ store, "folder-renamed",
+ G_CALLBACK (store_folder_renamed_cb), self);
+ g_signal_connect (
+ store, "folder-subscribed",
+ G_CALLBACK (store_folder_subscribed_cb), self);
+ g_signal_connect (
+ store, "folder-unsubscribed",
+ G_CALLBACK (store_folder_unsubscribed_cb), self);
+ }
+}
+
+/**
+ * mail_folder_cache_note_store_remove:
+ *
+ * Notify the cache that the specified @store can be removed from the cache
+ */
+void
+mail_folder_cache_note_store_remove (MailFolderCache *self,
+ CamelStore *store)
+{
+ struct _store_info *si;
+
+ g_return_if_fail (CAMEL_IS_STORE(store));
+
+ if (self->priv->stores == NULL)
+ return;
+
+ d(printf("store removed!!\n"));
+ g_mutex_lock (self->priv->stores_mutex);
+ si = g_hash_table_lookup (self->priv->stores, store);
+ if (si) {
+ GList *link;
+
+ g_hash_table_remove(self->priv->stores, store);
+
+ g_signal_handlers_disconnect_matched (
+ store, G_SIGNAL_MATCH_DATA,
+ 0, 0, NULL, NULL, self);
+
+ g_hash_table_foreach (
+ si->folders, (GHFunc)
+ unset_folder_info_hash, self);
+
+ link = g_queue_peek_head_link (&si->folderinfo_updates);
+
+ while (link != NULL) {
+ struct _update_data *ud = link->data;
+
+ d(printf("Cancelling outstanding folderinfo update %d\n", ud->id));
+ mail_msg_cancel(ud->id);
+ ud->cancel = 1;
+
+ link = g_list_next (link);
+ }
+
+ g_object_unref (si->store);
+ g_hash_table_foreach(si->folders, (GHFunc)free_folder_info_hash, NULL);
+ g_hash_table_destroy(si->folders);
+ g_hash_table_destroy(si->folders_uri);
+ g_free(si);
+ }
+
+ g_mutex_unlock (self->priv->stores_mutex);
+}
+
+/**
+ * mail_folder_cache_note_folder:
+ *
+ * When a folder has been opened, notify it for watching. The folder must have
+ * already been created on the store (which has already been noted) before the
+ * folder can be opened
+ */
+void
+mail_folder_cache_note_folder (MailFolderCache *self,
+ CamelFolder *folder)
+{
+ CamelStore *parent_store;
+ struct _store_info *si;
+ struct _folder_info *mfi;
+ const gchar *full_name;
+
+ full_name = camel_folder_get_full_name (folder);
+ parent_store = camel_folder_get_parent_store (folder);
+
+ g_mutex_lock (self->priv->stores_mutex);
+ if (self->priv->stores == NULL
+ || (si = g_hash_table_lookup(self->priv->stores, parent_store)) == NULL
+ || (mfi = g_hash_table_lookup(si->folders, full_name)) == NULL) {
+ w(g_warning("Noting folder before store initialised"));
+ g_mutex_unlock (self->priv->stores_mutex);
+ return;
+ }
+
+ /* dont do anything if we already have this */
+ if (mfi->folder == folder) {
+ g_mutex_unlock (self->priv->stores_mutex);
+ return;
+ }
+
+ mfi->folder = folder;
+
+ g_object_add_weak_pointer (G_OBJECT (folder), &mfi->folder);
+
+ update_1folder (self, mfi, 0, NULL, NULL, NULL, NULL);
+
+ g_mutex_unlock (self->priv->stores_mutex);
+
+ g_signal_connect (
+ folder, "changed",
+ G_CALLBACK (folder_changed_cb), self);
+}
+
+/**
+ * mail_folder_cache_get_folder_from_uri:
+ *
+ * Gets the #CamelFolder for the supplied @uri.
+ *
+ * Returns: %TRUE if the URI is available, folderp is set to a reffed
+ * folder if the folder has also already been opened
+ */
+gboolean
+mail_folder_cache_get_folder_from_uri (MailFolderCache *self,
+ const gchar *uri,
+ CamelFolder **folderp)
+{
+ struct _find_info fi = { uri, NULL, NULL };
+
+ if (self->priv->stores == NULL)
+ return FALSE;
+
+ fi.url = camel_url_new (uri, NULL);
+
+ g_mutex_lock (self->priv->stores_mutex);
+ g_hash_table_foreach (
+ self->priv->stores, (GHFunc)
+ storeinfo_find_folder_info, &fi);
+ if (folderp) {
+ if (fi.fi && fi.fi->folder)
+ *folderp = g_object_ref (fi.fi->folder);
+ else
+ *folderp = NULL;
+ }
+ g_mutex_unlock (self->priv->stores_mutex);
+
+ camel_url_free (fi.url);
+
+ return fi.fi != NULL;
+}
+
+gboolean
+mail_folder_cache_get_folder_info_flags (MailFolderCache *self,
+ CamelFolder *folder,
+ gint *flags)
+{
+ gchar *uri = mail_tools_folder_to_url (folder);
+ struct _find_info fi = { uri, NULL, NULL };
+
+ if (self->priv->stores == NULL)
+ return FALSE;
+
+ fi.url = camel_url_new (uri, NULL);
+
+ g_mutex_lock (self->priv->stores_mutex);
+ g_hash_table_foreach (
+ self->priv->stores, (GHFunc)
+ storeinfo_find_folder_info, &fi);
+ if (flags) {
+ if (fi.fi)
+ *flags = fi.fi->flags;
+ else
+ *flags = 0;
+ }
+ g_mutex_unlock (self->priv->stores_mutex);
+
+ camel_url_free (fi.url);
+ g_free (uri);
+
+ return fi.fi != NULL;
+}
+
+/* Returns whether folder 'folder' has children based on folder_info->child property.
+ If not found returns FALSE and sets 'found' to FALSE, if not NULL. */
+gboolean
+mail_folder_cache_get_folder_has_children (MailFolderCache *self, CamelFolder *folder, gboolean *found)
+{
+ gchar *uri = mail_tools_folder_to_url (folder);
+ struct _find_info fi = { uri, NULL, NULL };
+
+ g_return_val_if_fail (self != NULL, FALSE);
+ g_return_val_if_fail (folder != NULL, FALSE);
+
+ if (self->priv->stores == NULL)
+ return FALSE;
+
+ fi.url = camel_url_new (uri, NULL);
+
+ g_mutex_lock (self->priv->stores_mutex);
+ g_hash_table_foreach (
+ self->priv->stores, (GHFunc)
+ storeinfo_find_folder_info, &fi);
+ if (found)
+ *found = fi.fi != NULL;
+ g_mutex_unlock (self->priv->stores_mutex);
+
+ camel_url_free (fi.url);
+ g_free (uri);
+
+ return fi.fi != NULL && fi.fi->has_children;
+}
diff --git a/mail/mail-folder-cache.h b/mail/mail-folder-cache.h
index dd3a108d03..d2c09d834a 100644
--- a/mail/mail-folder-cache.h
+++ b/mail/mail-folder-cache.h
@@ -23,61 +23,86 @@
*
*/
-#ifndef _MAIL_FOLDER_CACHE_H
-#define _MAIL_FOLDER_CACHE_H
+#ifndef MAIL_FOLDER_CACHE_H
+#define MAIL_FOLDER_CACHE_H
-#include <glib-object.h>
-#include <camel/camel-store.h>
+#include <camel/camel.h>
-G_BEGIN_DECLS
+/* Standard GObject macros */
+#define MAIL_TYPE_FOLDER_CACHE \
+ (mail_folder_cache_get_type ())
+#define MAIL_FOLDER_CACHE(obj) \
+ (G_TYPE_CHECK_INSTANCE_CAST \
+ ((obj), MAIL_TYPE_FOLDER_CACHE, MailFolderCache))
+#define MAIL_FOLDER_CACHE_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_CAST \
+ ((cls), MAIL_TYPE_FOLDER_CACHE, MailFolderCacheClass))
+#define MAIL_IS_FOLDER_CACHE(obj) \
+ (G_TYPE_CHECK_INSTANCE_TYPE \
+ ((obj), MAIL_TYPE_FOLDER_CACHE))
+#define MAIL_IS_FOLDER_CACHE_CLASS(cls) \
+ (G_TYPE_CHECK_CLASS_TYPE \
+ ((cls), MAIL_TYPE_FOLDER_CACHE))
+#define MAIL_FOLDER_CACHE_GET_CLASS(obj) \
+ (G_TYPE_INSTANCE_GET_CLASS \
+ ((obj), MAIL_TYPE_FOLDER_CACHE, MailFolderCacheClass))
-#define MAIL_TYPE_FOLDER_CACHE mail_folder_cache_get_type()
-#define MAIL_FOLDER_CACHE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), MAIL_TYPE_FOLDER_CACHE, MailFolderCache))
-#define MAIL_FOLDER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), MAIL_TYPE_FOLDER_CACHE, MailFolderCacheClass))
-#define MAIL_IS_FOLDER_CACHE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), MAIL_TYPE_FOLDER_CACHE))
-#define MAIL_IS_FOLDER_CACHE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), MAIL_TYPE_FOLDER_CACHE))
-#define MAIL_FOLDER_CACHE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), MAIL_TYPE_FOLDER_CACHE, MailFolderCacheClass))
+G_BEGIN_DECLS
typedef struct _MailFolderCache MailFolderCache;
typedef struct _MailFolderCacheClass MailFolderCacheClass;
typedef struct _MailFolderCachePrivate MailFolderCachePrivate;
/**
+ * NoteDoneFunc:
+ *
+ * The signature of a function to be registered as a callback for
+ * mail_folder_cache_note_store()
+ */
+typedef gboolean (*NoteDoneFunc)(CamelStore *store, CamelFolderInfo *info, gpointer data);
+
+/**
* MailFolderCache:
*
* Contains only private data that should be read and manipulated using the
* functions below.
*/
-struct _MailFolderCache
-{
+struct _MailFolderCache {
GObject parent;
-
MailFolderCachePrivate *priv;
};
-struct _MailFolderCacheClass
-{
+struct _MailFolderCacheClass {
GObjectClass parent_class;
};
-GType mail_folder_cache_get_type (void) G_GNUC_CONST;
+GType mail_folder_cache_get_type (void) G_GNUC_CONST;
+MailFolderCache *
+ mail_folder_cache_get_default (void);
+void mail_folder_cache_note_store (MailFolderCache *self,
+ CamelStore *store,
+ CamelOperation *op,
+ NoteDoneFunc done,
+ gpointer data);
+void mail_folder_cache_note_store_remove
+ (MailFolderCache *self,
+ CamelStore *store);
+void mail_folder_cache_note_folder (MailFolderCache *self,
+ CamelFolder *folder);
+gboolean mail_folder_cache_get_folder_from_uri
+ (MailFolderCache *self,
+ const gchar *uri,
+ CamelFolder **folderp);
+gboolean mail_folder_cache_get_folder_info_flags
+ (MailFolderCache *self,
+ CamelFolder *folder,
+ gint *flags);
-MailFolderCache *mail_folder_cache_new (void);
-
-MailFolderCache *mail_folder_cache_get_default (void);
-
-/**
- * NoteDoneFunc:
- *
- * The signature of a function to be registered as a callback for
- * mail_folder_cache_note_store()
- */
-typedef gboolean (*NoteDoneFunc)(CamelStore *store, CamelFolderInfo *info, gpointer data);
-void mail_folder_cache_note_store (MailFolderCache *self, CamelStore *store, CamelOperation *op, NoteDoneFunc done, gpointer data);
-void mail_folder_cache_note_store_remove (MailFolderCache *self, CamelStore *store);
-void mail_folder_cache_note_folder (MailFolderCache *self, CamelFolder *folder);
-gboolean mail_folder_cache_get_folder_from_uri (MailFolderCache *self, const gchar *uri, CamelFolder **folderp);
-gboolean mail_folder_cache_get_folder_info_flags (MailFolderCache *self, CamelFolder *folder, gint *flags);
+gboolean mail_folder_cache_get_folder_has_children
+ (MailFolderCache *self,
+ CamelFolder *folder,
+ gboolean *found);
G_END_DECLS
-#endif
+
+#endif /* MAIL_FOLDER_CACHE_H */
diff --git a/mail/mail-mt.c b/mail/mail-mt.c
index 5f656c9ec9..de59213ce5 100644
--- a/mail/mail-mt.c
+++ b/mail/mail-mt.c
@@ -27,9 +27,6 @@
#include <libedataserver/e-flag.h>
-#include <camel/camel-object.h>
-#include <camel/camel-operation.h>
-
#include "shell/e-shell.h"
#include "e-util/e-alert-activity.h"
#include "e-util/e-alert-dialog.h"
diff --git a/mail/mail-mt.h b/mail/mail-mt.h
index 2e8828c5b2..5cfbf2abe1 100644
--- a/mail/mail-mt.h
+++ b/mail/mail-mt.h
@@ -23,8 +23,7 @@
#ifndef _MAIL_MT
#define _MAIL_MT
-#include "camel/camel-exception.h"
-#include "camel/camel-operation.h"
+#include <camel/camel.h>
typedef struct _MailMsg MailMsg;
typedef struct _MailMsgInfo MailMsgInfo;
diff --git a/mail/mail-ops.c b/mail/mail-ops.c
index 7cbb91bede..128cb28c9c 100644
--- a/mail/mail-ops.c
+++ b/mail/mail-ops.c
@@ -33,17 +33,6 @@
#include <glib/gstdio.h>
#include <glib/gi18n.h>
-#include <camel/camel-disco-folder.h>
-#include <camel/camel-disco-store.h>
-#include <camel/camel-mime-filter-from.h>
-#include <camel/camel-offline-folder.h>
-#include <camel/camel-offline-store.h>
-#include <camel/camel-stream-filter.h>
-#include <camel/camel-stream-vfs.h>
-#include <camel/camel-transport.h>
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-vee-store.h>
-
#include <libedataserver/e-data-server-util.h>
#include "e-util/e-account-utils.h"
@@ -142,7 +131,7 @@ em_filter_folder_element_exec (struct _filter_mail_msg *m)
/* this may thaw/unref source folders, do it here so we dont do it in the main thread
see also fetch_mail_fetch() below */
- camel_object_unref(m->driver);
+ g_object_unref (m->driver);
m->driver = NULL;
if (m->cancel)
@@ -158,7 +147,7 @@ static void
em_filter_folder_element_free (struct _filter_mail_msg *m)
{
if (m->source_folder)
- camel_object_unref (m->source_folder);
+ g_object_unref (m->source_folder);
if (m->source_uids)
em_utils_uids_free (m->source_uids);
@@ -167,10 +156,10 @@ em_filter_folder_element_free (struct _filter_mail_msg *m)
camel_operation_unref (m->cancel);
if (m->destination)
- camel_object_unref (m->destination);
+ g_object_unref (m->destination);
if (m->driver)
- camel_object_unref (m->driver);
+ g_object_unref (m->driver);
mail_session_flush_filter_log ();
}
@@ -192,7 +181,7 @@ mail_filter_folder (CamelFolder *source_folder, GPtrArray *uids,
m = mail_msg_new (&em_filter_folder_element_info);
m->source_folder = source_folder;
- camel_object_ref (source_folder);
+ g_object_ref (source_folder);
m->source_uids = uids;
m->cache = NULL;
m->delete = FALSE;
@@ -266,7 +255,7 @@ fetch_mail_exec (struct _fetch_mail_msg *m)
fm->destination = e_mail_local_get_folder (E_MAIL_FOLDER_LOCAL_INBOX);
if (fm->destination == NULL)
goto fail;
- camel_object_ref (fm->destination);
+ g_object_ref (fm->destination);
/* FIXME: this should support keep_on_server too, which would then perform a spool
access thingy, right? problem is matching raw messages to uid's etc. */
@@ -290,9 +279,11 @@ fetch_mail_exec (struct _fetch_mail_msg *m)
/* this handles 'keep on server' stuff, if we have any new uid's to copy
across, we need to copy them to a new array 'cause of the way fetch_mail_free works */
CamelUIDCache *cache = NULL;
+ CamelStore *parent_store;
gchar *cachename;
- cachename = uid_cachename_hack (folder->parent_store);
+ parent_store = camel_folder_get_parent_store (folder);
+ cachename = uid_cachename_hack (parent_store);
cache = camel_uid_cache_new (cachename);
g_free (cachename);
@@ -342,7 +333,7 @@ fetch_mail_exec (struct _fetch_mail_msg *m)
/* we unref the source folder here since we
may now block in finalize (we try to
disconnect cleanly) */
- camel_object_unref (fm->source_folder);
+ g_object_unref (fm->source_folder);
fm->source_folder = NULL;
}
}
@@ -354,7 +345,7 @@ fail:
folders and whatnot) before we are really done */
/* should this be cancellable too? (i.e. above unregister above) */
if (fm->driver) {
- camel_object_unref (fm->driver);
+ g_object_unref (fm->driver);
fm->driver = NULL;
}
}
@@ -564,7 +555,7 @@ mail_send_message (struct _send_queue_msg *m, CamelFolder *queue, const gchar *u
folder = mail_tool_uri_to_folder(uri, 0, NULL);
if (folder) {
camel_folder_append_message(folder, message, info, NULL, NULL);
- camel_object_unref(folder);
+ g_object_unref (folder);
folder = NULL;
}
g_free(uri);
@@ -603,7 +594,7 @@ mail_send_message (struct _send_queue_msg *m, CamelFolder *queue, const gchar *u
if (!folder) {
folder = e_mail_local_get_folder (E_MAIL_FOLDER_SENT);
- camel_object_ref(folder);
+ g_object_ref (folder);
}
camel_folder_append_message (folder, message, info, NULL, ex);
@@ -616,16 +607,17 @@ mail_send_message (struct _send_queue_msg *m, CamelFolder *queue, const gchar *u
sent_folder = e_mail_local_get_folder (E_MAIL_FOLDER_SENT);
if (folder != sent_folder) {
- const gchar *name;
+ const gchar *description;
- camel_object_get (folder, NULL, CAMEL_OBJECT_DESCRIPTION, (gchar **) &name, 0);
+ description = camel_folder_get_description (folder);
if (err->len)
g_string_append(err, "\n\n");
- g_string_append_printf (err, _("Failed to append to %s: %s\n"
- "Appending to local 'Sent' folder instead."),
- name, camel_exception_get_description (ex));
- camel_object_ref (sent_folder);
- camel_object_unref (folder);
+ g_string_append_printf (
+ err, _("Failed to append to %s: %s\n"
+ "Appending to local 'Sent' folder instead."),
+ description, camel_exception_get_description (ex));
+ g_object_ref (sent_folder);
+ g_object_unref (folder);
folder = sent_folder;
camel_exception_clear (ex);
@@ -657,19 +649,19 @@ mail_send_message (struct _send_queue_msg *m, CamelFolder *queue, const gchar *u
exit:
if (folder) {
camel_folder_sync(folder, FALSE, NULL);
- camel_object_unref(folder);
+ g_object_unref (folder);
}
if (info)
camel_message_info_free(info);
- camel_object_unref(recipients);
- camel_object_unref(from);
+ g_object_unref (recipients);
+ g_object_unref (from);
if (xport)
- camel_object_unref(xport);
+ g_object_unref (xport);
g_free(sent_folder_uri);
g_free(transport_url);
camel_header_raw_clear(&xev);
g_string_free(err, TRUE);
- camel_object_unref(message);
+ g_object_unref (message);
return;
}
@@ -793,7 +785,7 @@ send_queue_exec (struct _send_queue_msg *m)
report_status (m, CAMEL_FILTER_STATUS_END, 100, _("Complete."));
if (m->driver) {
- camel_object_unref (m->driver);
+ g_object_unref (m->driver);
m->driver = NULL;
}
@@ -837,8 +829,8 @@ static void
send_queue_free (struct _send_queue_msg *m)
{
if (m->driver)
- camel_object_unref(m->driver);
- camel_object_unref(m->queue);
+ g_object_unref (m->driver);
+ g_object_unref (m->queue);
g_free(m->destination);
if (m->cancel)
camel_operation_unref(m->cancel);
@@ -864,7 +856,7 @@ mail_send_queue(CamelFolder *queue, const gchar *destination,
m = mail_msg_new(&send_queue_info);
m->queue = queue;
- camel_object_ref(queue);
+ g_object_ref (queue);
m->destination = g_strdup(destination);
if (cancel) {
m->cancel = cancel;
@@ -922,8 +914,8 @@ append_mail_done (struct _append_msg *m)
static void
append_mail_free (struct _append_msg *m)
{
- camel_object_unref(m->message);
- camel_object_unref(m->folder);
+ g_object_unref (m->message);
+ g_object_unref (m->folder);
g_free (m->appended_uid);
}
@@ -950,9 +942,9 @@ mail_append_mail (CamelFolder *folder, CamelMimeMessage *message, CamelMessageIn
m = mail_msg_new (&append_mail_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->message = message;
- camel_object_ref(message);
+ g_object_ref (message);
m->info = info;
m->done = done;
@@ -994,7 +986,7 @@ transfer_messages_exec (struct _transfer_msg *m)
return;
if (dest == m->source) {
- camel_object_unref(dest);
+ g_object_unref (dest);
/* no-op */
return;
}
@@ -1017,7 +1009,7 @@ transfer_messages_exec (struct _transfer_msg *m)
camel_folder_thaw (m->source);
camel_folder_thaw (dest);
camel_folder_sync (dest, FALSE, NULL);
- camel_object_unref (dest);
+ g_object_unref (dest);
}
static void
@@ -1030,7 +1022,7 @@ transfer_messages_done (struct _transfer_msg *m)
static void
transfer_messages_free (struct _transfer_msg *m)
{
- camel_object_unref (m->source);
+ g_object_unref (m->source);
g_free (m->dest_uri);
em_utils_uids_free (m->uids);
}
@@ -1059,7 +1051,7 @@ mail_transfer_messages (CamelFolder *source, GPtrArray *uids,
m = mail_msg_new(&transfer_messages_info);
m->source = source;
- camel_object_ref (source);
+ g_object_ref (source);
m->uids = uids;
m->delete = delete_from_source;
m->dest_uri = g_strdup (dest_uri);
@@ -1124,7 +1116,7 @@ get_folderinfo_free (struct _get_folderinfo_msg *m)
{
if (m->info && m->can_clear)
camel_store_free_folder_info(m->store, m->info);
- camel_object_unref(m->store);
+ g_object_unref (m->store);
}
static MailMsgInfo get_folderinfo_info = {
@@ -1148,7 +1140,7 @@ mail_get_folderinfo (CamelStore *store, CamelOperation *op, gboolean (*done)(Cam
camel_operation_ref(op);
}
m->store = store;
- camel_object_ref(store);
+ g_object_ref (store);
m->done = done;
m->data = data;
id = m->base.seq;
@@ -1190,11 +1182,11 @@ do_build_attachment (CamelFolder *folder, GPtrArray *uids, GPtrArray *messages,
for (i=0;i<messages->len;i++) {
part = mail_tool_make_message_attachment(messages->pdata[i]);
camel_multipart_add_part(multipart, part);
- camel_object_unref(part);
+ g_object_unref (part);
}
part = camel_mime_part_new();
- camel_medium_set_content_object(CAMEL_MEDIUM (part), CAMEL_DATA_WRAPPER(multipart));
- camel_object_unref(multipart);
+ camel_medium_set_content (CAMEL_MEDIUM (part), CAMEL_DATA_WRAPPER(multipart));
+ g_object_unref (multipart);
camel_mime_part_set_description(part, _("Forwarded messages"));
}
@@ -1202,7 +1194,7 @@ do_build_attachment (CamelFolder *folder, GPtrArray *uids, GPtrArray *messages,
subject = mail_tool_generate_forward_subject(messages->pdata[0]);
d->done(folder, messages, part, subject, d->data);
g_free(subject);
- camel_object_unref(part);
+ g_object_unref (part);
g_free(d);
}
@@ -1258,7 +1250,7 @@ get_folder_free (struct _get_folder_msg *m)
{
g_free (m->uri);
if (m->folder)
- camel_object_unref (m->folder);
+ g_object_unref (m->folder);
}
static MailMsgInfo get_folder_info = {
@@ -1323,7 +1315,7 @@ static void
get_quota_free (struct _get_quota_msg *m)
{
if (m->folder)
- camel_object_unref (m->folder);
+ g_object_unref (m->folder);
if (m->quota)
camel_folder_quota_info_free (m->quota);
g_free (m->folder_uri);
@@ -1354,7 +1346,7 @@ mail_get_folder_quota (CamelFolder *folder,
m->data = data;
m->done = done;
- camel_object_ref (m->folder);
+ g_object_ref (m->folder);
id = m->base.seq;
dispatch (m);
@@ -1400,7 +1392,7 @@ get_store_free (struct _get_store_msg *m)
{
g_free (m->uri);
if (m->store)
- camel_object_unref (m->store);
+ g_object_unref (m->store);
}
static MailMsgInfo get_store_info = {
@@ -1497,19 +1489,21 @@ remove_folder_rec (CamelStore *store, CamelFolderInfo *fi, CamelException *ex)
static void
remove_folder_exec (struct _remove_folder_msg *m)
{
- CamelStore *store;
CamelFolderInfo *fi;
+ CamelStore *parent_store;
+ const gchar *full_name;
m->removed = FALSE;
- store = m->folder->parent_store;
+ full_name = camel_folder_get_full_name (m->folder);
+ parent_store = camel_folder_get_parent_store (m->folder);
- fi = camel_store_get_folder_info (store, m->folder->full_name, CAMEL_STORE_FOLDER_INFO_RECURSIVE | CAMEL_STORE_FOLDER_INFO_FAST | CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, &m->base.ex);
+ fi = camel_store_get_folder_info (parent_store, full_name, CAMEL_STORE_FOLDER_INFO_RECURSIVE | CAMEL_STORE_FOLDER_INFO_FAST | CAMEL_STORE_FOLDER_INFO_SUBSCRIBED, &m->base.ex);
if (camel_exception_is_set (&m->base.ex))
return;
- remove_folder_rec (store, fi, &m->base.ex);
- camel_store_free_folder_info (store, fi);
+ remove_folder_rec (parent_store, fi, &m->base.ex);
+ camel_store_free_folder_info (parent_store, fi);
m->removed = !camel_exception_is_set (&m->base.ex);
}
@@ -1524,7 +1518,7 @@ remove_folder_done (struct _remove_folder_msg *m)
static void
remove_folder_free (struct _remove_folder_msg *m)
{
- camel_object_unref (m->folder);
+ g_object_unref (m->folder);
}
static MailMsgInfo remove_folder_info = {
@@ -1544,7 +1538,7 @@ mail_remove_folder (CamelFolder *folder, void (*done) (CamelFolder *folder, gboo
m = mail_msg_new (&remove_folder_info);
m->folder = folder;
- camel_object_ref (folder);
+ g_object_ref (folder);
m->data = data;
m->done = done;
@@ -1584,7 +1578,7 @@ sync_folder_done (struct _sync_folder_msg *m)
static void
sync_folder_free (struct _sync_folder_msg *m)
{
- camel_object_unref((CamelObject *)m->folder);
+ g_object_unref ((CamelObject *)m->folder);
}
static MailMsgInfo sync_folder_info = {
@@ -1602,7 +1596,7 @@ mail_sync_folder(CamelFolder *folder, void (*done) (CamelFolder *folder, gpointe
m = mail_msg_new(&sync_folder_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->data = data;
m->done = done;
@@ -1651,7 +1645,7 @@ sync_store_done (struct _sync_store_msg *m)
static void
sync_store_free (struct _sync_store_msg *m)
{
- camel_object_unref(m->store);
+ g_object_unref (m->store);
}
static MailMsgInfo sync_store_info = {
@@ -1670,7 +1664,7 @@ mail_sync_store(CamelStore *store, gint expunge, void (*done) (CamelStore *store
m = mail_msg_new(&sync_store_info);
m->store = store;
m->expunge = expunge;
- camel_object_ref(store);
+ g_object_ref (store);
m->data = data;
m->done = done;
@@ -1710,7 +1704,7 @@ mail_refresh_folder(CamelFolder *folder, void (*done) (CamelFolder *folder, gpoi
m = mail_msg_new(&refresh_folder_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->data = data;
m->done = done;
@@ -1747,7 +1741,7 @@ mail_expunge_folder(CamelFolder *folder, void (*done) (CamelFolder *folder, gpoi
m = mail_msg_new(&expunge_folder_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->data = data;
m->done = done;
@@ -1789,7 +1783,7 @@ empty_trash_exec (struct _empty_trash_msg *m)
if (trash) {
camel_folder_expunge (trash, &m->base.ex);
- camel_object_unref (trash);
+ g_object_unref (trash);
}
}
@@ -1869,11 +1863,11 @@ static void
get_message_free (struct _get_message_msg *m)
{
g_free (m->uid);
- camel_object_unref (m->folder);
+ g_object_unref (m->folder);
camel_operation_unref (m->cancel);
if (m->message)
- camel_object_unref (m->message);
+ g_object_unref (m->message);
}
static MailMsgInfo get_message_info = {
@@ -1894,7 +1888,7 @@ mail_get_message(CamelFolder *folder, const gchar *uid, void (*done) (CamelFolde
m = mail_msg_new(&get_message_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->uid = g_strdup(uid);
m->data = data;
m->done = (void (*) (CamelFolder *, const gchar *, CamelMimeMessage *, gpointer )) done;
@@ -1936,7 +1930,7 @@ mail_get_messagex(CamelFolder *folder, const gchar *uid, void (*done) (CamelFold
m = mail_msg_new(&get_messagex_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->uid = g_strdup(uid);
m->data = data;
m->done = (void (*) (CamelFolder *, const gchar *, CamelMimeMessage *, gpointer )) done;
@@ -2002,10 +1996,10 @@ get_messages_free (struct _get_messages_msg *m)
em_utils_uids_free (m->uids);
for (i=0;i<m->messages->len;i++) {
if (m->messages->pdata[i])
- camel_object_unref(m->messages->pdata[i]);
+ g_object_unref (m->messages->pdata[i]);
}
g_ptr_array_free(m->messages, TRUE);
- camel_object_unref(m->folder);
+ g_object_unref (m->folder);
}
static MailMsgInfo get_messages_info = {
@@ -2026,7 +2020,7 @@ mail_get_messages(CamelFolder *folder, GPtrArray *uids,
m = mail_msg_new(&get_messages_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->uids = uids;
m->messages = g_ptr_array_new();
m->data = data;
@@ -2064,7 +2058,7 @@ save_prepare_part (CamelMimePart *mime_part)
CamelDataWrapper *wrapper;
gint parts, i;
- wrapper = camel_medium_get_content_object (CAMEL_MEDIUM (mime_part));
+ wrapper = camel_medium_get_content (CAMEL_MEDIUM (mime_part));
if (!wrapper)
return;
@@ -2093,8 +2087,8 @@ save_prepare_part (CamelMimePart *mime_part)
static void
save_messages_exec (struct _save_messages_msg *m)
{
- CamelStreamFilter *filtered_stream;
- CamelMimeFilterFrom *from_filter;
+ CamelStream *filtered_stream;
+ CamelMimeFilter *from_filter;
CamelStream *stream;
gint i;
gchar *from, *path;
@@ -2106,9 +2100,10 @@ save_messages_exec (struct _save_messages_msg *m)
stream = camel_stream_vfs_new_with_uri (path, CAMEL_STREAM_VFS_CREATE);
from_filter = camel_mime_filter_from_new();
- filtered_stream = camel_stream_filter_new_with_stream(stream);
- camel_stream_filter_add(filtered_stream, (CamelMimeFilter *)from_filter);
- camel_object_unref(from_filter);
+ filtered_stream = camel_stream_filter_new (stream);
+ camel_stream_filter_add (
+ CAMEL_STREAM_FILTER (filtered_stream), from_filter);
+ g_object_unref (from_filter);
if (path != m->path)
g_free (path);
@@ -2135,15 +2130,15 @@ save_messages_exec (struct _save_messages_msg *m)
camel_exception_setv(&m->base.ex, CAMEL_EXCEPTION_SYSTEM,
_("Error saving messages to: %s:\n %s"), m->path, g_strerror(errno));
g_free(from);
- camel_object_unref((CamelObject *)message);
+ g_object_unref ((CamelObject *)message);
break;
}
g_free(from);
- camel_object_unref(message);
+ g_object_unref (message);
}
- camel_object_unref(filtered_stream);
- camel_object_unref(stream);
+ g_object_unref (filtered_stream);
+ g_object_unref (stream);
}
static void
@@ -2157,7 +2152,7 @@ static void
save_messages_free (struct _save_messages_msg *m)
{
em_utils_uids_free (m->uids);
- camel_object_unref(m->folder);
+ g_object_unref (m->folder);
g_free(m->path);
}
@@ -2178,7 +2173,7 @@ mail_save_messages(CamelFolder *folder, GPtrArray *uids, const gchar *path,
m = mail_msg_new(&save_messages_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->uids = uids;
m->path = g_strdup(path);
m->data = data;
@@ -2241,7 +2236,7 @@ save_part_exec (struct _save_part_msg *m)
if (path != m->path)
g_free (path);
- content = camel_medium_get_content_object (CAMEL_MEDIUM (m->part));
+ content = camel_medium_get_content (CAMEL_MEDIUM (m->part));
if (camel_data_wrapper_decode_to_stream (content, stream) == -1
|| camel_stream_flush (stream) == -1)
@@ -2249,7 +2244,7 @@ save_part_exec (struct _save_part_msg *m)
_("Could not write data: %s"),
g_strerror (errno));
- camel_object_unref (stream);
+ g_object_unref (stream);
}
static void
@@ -2262,7 +2257,7 @@ save_part_done (struct _save_part_msg *m)
static void
save_part_free (struct _save_part_msg *m)
{
- camel_object_unref (m->part);
+ g_object_unref (m->part);
g_free (m->path);
}
@@ -2282,7 +2277,7 @@ mail_save_part (CamelMimePart *part, const gchar *path,
gint id;
m = mail_msg_new (&save_part_info);
m->part = part;
- camel_object_ref (part);
+ g_object_ref (part);
m->path = g_strdup (path);
m->data = data;
m->done = done;
@@ -2325,7 +2320,7 @@ prep_offline_exec (struct _prep_offline_msg *m)
/* prepare_for_offline should do this? */
/* of course it should all be atomic, but ... */
camel_folder_sync(folder, FALSE, NULL);
- camel_object_unref(folder);
+ g_object_unref (folder);
}
if (m->cancel)
@@ -2441,7 +2436,7 @@ set_offline_done (struct _set_offline_msg *m)
static void
set_offline_free (struct _set_offline_msg *m)
{
- camel_object_unref(m->store);
+ g_object_unref (m->store);
}
static MailMsgInfo set_offline_info = {
@@ -2468,7 +2463,7 @@ mail_store_set_offline (CamelStore *store, gboolean offline,
m = mail_msg_new(&set_offline_info);
m->store = store;
- camel_object_ref(store);
+ g_object_ref (store);
m->offline = offline;
m->data = data;
m->done = done;
@@ -2515,7 +2510,7 @@ prepare_offline_done (struct _set_offline_msg *m)
static void
prepare_offline_free (struct _set_offline_msg *m)
{
- camel_object_unref (m->store);
+ g_object_unref (m->store);
}
static MailMsgInfo prepare_offline_info = {
@@ -2538,7 +2533,7 @@ mail_store_prepare_offline (CamelStore *store)
m = mail_msg_new(&prepare_offline_info);
m->store = store;
- camel_object_ref(store);
+ g_object_ref (store);
m->data = NULL;
m->done = NULL;
@@ -2588,7 +2583,7 @@ check_service_exec (struct _check_msg *m)
}
m->authtypes = camel_service_query_auth_types(service, &m->base.ex);
- camel_object_unref(service);
+ g_object_unref (service);
}
static void
diff --git a/mail/mail-ops.h b/mail/mail-ops.h
index 843ada5d54..506de4ce80 100644
--- a/mail/mail-ops.h
+++ b/mail/mail-ops.h
@@ -26,15 +26,10 @@
G_BEGIN_DECLS
-#include "mail-mt.h"
-
-#include "camel/camel-store.h"
-#include "camel/camel-folder.h"
-#include "camel/camel-filter-driver.h"
-#include "camel/camel-mime-message.h"
-#include "camel/camel-operation.h"
+#include <camel/camel.h>
+#include <libedataserver/e-account.h>
-#include "libedataserver/e-account.h"
+#include "mail-mt.h"
void mail_append_mail (CamelFolder *folder, CamelMimeMessage *message, CamelMessageInfo *info,
void (*done)(CamelFolder *folder, CamelMimeMessage *msg, CamelMessageInfo *info, gint ok,
diff --git a/mail/mail-send-recv.c b/mail/mail-send-recv.c
index d66f2ab508..149b11d4e8 100644
--- a/mail/mail-send-recv.c
+++ b/mail/mail-send-recv.c
@@ -31,11 +31,6 @@
#include "libedataserver/e-account-list.h"
-#include "camel/camel-filter-driver.h"
-#include "camel/camel-folder.h"
-#include "camel/camel-operation.h"
-#include "camel/camel-store.h"
-
#include "shell/e-shell.h"
#include "e-util/e-account-utils.h"
#include "e-util/gconf-bridge.h"
@@ -137,7 +132,7 @@ free_folder_info(struct _folder_info *info)
{
/*camel_folder_thaw (info->folder); */
mail_sync_folder(info->folder, NULL, NULL);
- camel_object_unref(info->folder);
+ g_object_unref (info->folder);
g_free(info->uri);
g_free(info);
}
@@ -169,7 +164,7 @@ setup_send_data(void)
(GDestroyNotify) free_folder_info);
data->inbox = e_mail_local_get_folder (
E_MAIL_FOLDER_LOCAL_INBOX);
- camel_object_ref(data->inbox);
+ g_object_ref (data->inbox);
data->active = g_hash_table_new_full (
g_str_hash, g_str_equal,
(GDestroyNotify) NULL,
@@ -203,7 +198,7 @@ free_send_data(void)
if (data->inbox) {
mail_sync_folder(data->inbox, NULL, NULL);
/*camel_folder_thaw (data->inbox); */
- camel_object_unref(data->inbox);
+ g_object_unref (data->inbox);
}
g_list_free(data->infos);
@@ -414,6 +409,7 @@ build_dialog (GtkWindow *parent,
gint row, num_sources;
GList *list = NULL;
struct _send_data *data;
+ GtkWidget *container;
GtkWidget *send_icon;
GtkWidget *recv_icon;
GtkWidget *scrolled_window;
@@ -438,8 +434,12 @@ build_dialog (GtkWindow *parent,
GTK_WINDOW (send_recv_dialog));
gtk_widget_ensure_style ((GtkWidget *)gd);
- gtk_container_set_border_width ((GtkContainer *)gd->vbox, 0);
- gtk_container_set_border_width ((GtkContainer *)gd->action_area, 6);
+
+ container = gtk_dialog_get_action_area (gd);
+ gtk_container_set_border_width (GTK_CONTAINER (container), 6);
+
+ container = gtk_dialog_get_content_area (gd);
+ gtk_container_set_border_width (GTK_CONTAINER (container), 0);
cancel_button = gtk_button_new_with_mnemonic (_("Cancel _All"));
gtk_button_set_image (
@@ -482,10 +482,11 @@ build_dialog (GtkWindow *parent,
GTK_SCROLLED_WINDOW (scrolled_window),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
+ container = gtk_dialog_get_content_area (gd);
gtk_scrolled_window_add_with_viewport (
GTK_SCROLLED_WINDOW (scrolled_window), table);
gtk_box_pack_start (
- GTK_BOX (gd->vbox), scrolled_window, TRUE, TRUE, 0);
+ GTK_BOX (container), scrolled_window, TRUE, TRUE, 0);
gtk_widget_show (scrolled_window);
/* must bet setup after send_recv_dialog as it may re-trigger send-recv button */
@@ -802,7 +803,7 @@ receive_get_folder(CamelFilterDriver *d, const gchar *uri, gpointer data, CamelE
oldinfo = g_hash_table_lookup(info->data->folders, uri);
g_mutex_unlock(info->data->lock);
if (oldinfo) {
- camel_object_ref(oldinfo->folder);
+ g_object_ref (oldinfo->folder);
return oldinfo->folder;
}
folder = mail_tool_uri_to_folder (uri, 0, ex);
@@ -815,7 +816,7 @@ receive_get_folder(CamelFilterDriver *d, const gchar *uri, gpointer data, CamelE
if (g_hash_table_lookup_extended (info->data->folders, uri, &oldkey, &oldinfoptr)) {
oldinfo = (struct _folder_info *) oldinfoptr;
- camel_object_unref(oldinfo->folder);
+ g_object_unref (oldinfo->folder);
oldinfo->folder = folder;
} else {
/*camel_folder_freeze (folder); */
@@ -825,7 +826,7 @@ receive_get_folder(CamelFilterDriver *d, const gchar *uri, gpointer data, CamelE
g_hash_table_insert(info->data->folders, oldinfo->uri, oldinfo);
}
- camel_object_ref (folder);
+ g_object_ref (folder);
g_mutex_unlock(info->data->lock);
@@ -889,7 +890,7 @@ refresh_folders_exec (struct _refresh_folders_msg *m)
camel_exception_clear(&ex);
camel_folder_refresh_info(folder, &ex);
camel_exception_clear(&ex);
- camel_object_unref(folder);
+ g_object_unref (folder);
} else if (camel_exception_is_set(&ex)) {
g_warning ("Failed to refresh folders: %s", camel_exception_get_description (&ex));
camel_exception_clear (&ex);
@@ -916,7 +917,7 @@ refresh_folders_free (struct _refresh_folders_msg *m)
g_ptr_array_free(m->folders, TRUE);
camel_store_free_folder_info (m->store, m->finfo);
- camel_object_unref(m->store);
+ g_object_unref (m->store);
}
static MailMsgInfo refresh_folders_info = {
@@ -937,7 +938,7 @@ receive_update_got_folderinfo(CamelStore *store, CamelFolderInfo *info, gpointer
m = mail_msg_new(&refresh_folders_info);
m->store = store;
- camel_object_ref(store);
+ g_object_ref (store);
m->folders = folders;
m->info = sinfo;
m->finfo = info;
@@ -977,18 +978,13 @@ mail_send_receive (GtkWindow *parent)
GList *scan;
if (send_recv_dialog != NULL) {
-#if GTK_CHECK_VERSION(2,19,7)
if (parent != NULL && gtk_widget_get_realized (send_recv_dialog)) {
-#else
- if (parent != NULL && GTK_WIDGET_REALIZED (send_recv_dialog)) {
-#endif
- gdk_window_show (send_recv_dialog->window);
- gdk_window_raise (send_recv_dialog->window);
+ gtk_window_present (GTK_WINDOW (send_recv_dialog));
}
return send_recv_dialog;
}
- if (!camel_session_is_online (session))
+ if (!camel_session_get_online (session))
return send_recv_dialog;
account = e_get_default_account ();
@@ -1047,7 +1043,7 @@ auto_timeout(gpointer data)
{
struct _auto_data *info = data;
- if (camel_session_is_online (session)) {
+ if (camel_session_get_online (session)) {
const gchar *uri;
gboolean keep_on_server;
diff --git a/mail/mail-send-recv.h b/mail/mail-send-recv.h
index 2155a96191..db144e2385 100644
--- a/mail/mail-send-recv.h
+++ b/mail/mail-send-recv.h
@@ -24,7 +24,7 @@
#define MAIL_SEND_RECV_H
#include <gtk/gtk.h>
-#include <camel/camel-session.h>
+#include <camel/camel.h>
#include <shell/e-shell-backend.h>
G_BEGIN_DECLS
diff --git a/mail/mail-session.c b/mail/mail-session.c
index 86f6fa180e..efbe42b03c 100644
--- a/mail/mail-session.c
+++ b/mail/mail-session.c
@@ -30,6 +30,7 @@
#include <string.h>
#include <glib.h>
+#include <glib/gi18n.h>
#include <glib/gstdio.h>
#include <gtk/gtk.h>
@@ -43,10 +44,6 @@
#include <libedataserverui/e-passwords.h>
#include <libedataserver/e-flag.h>
-#include <camel/camel.h> /* FIXME: this is where camel_init is defined, it shouldn't include everything else */
-#include <camel/camel-filter-driver.h>
-#include <camel/camel-i18n.h>
-
#include "e-util/e-util.h"
#include "e-util/e-alert-dialog.h"
#include "e-util/e-util-private.h"
@@ -67,12 +64,13 @@
CamelSession *session;
static gint session_check_junk_notify_id = -1;
-#define MAIL_SESSION_TYPE (mail_session_get_type ())
-#define MAIL_SESSION(obj) (CAMEL_CHECK_CAST((obj), MAIL_SESSION_TYPE, MailSession))
-#define MAIL_SESSION_CLASS(k) (CAMEL_CHECK_CLASS_CAST ((k), MAIL_SESSION_TYPE, MailSessionClass))
-#define MAIL_IS_SESSION(o) (CAMEL_CHECK_TYPE((o), MAIL_SESSION_TYPE))
+#define MAIL_TYPE_SESSION \
+ (mail_session_get_type ())
+
+typedef struct _MailSession MailSession;
+typedef struct _MailSessionClass MailSessionClass;
-typedef struct _MailSession {
+struct _MailSession {
CamelSession parent_object;
gboolean interactive;
@@ -80,19 +78,17 @@ typedef struct _MailSession {
GList *junk_plugins;
MailAsyncEvent *async;
-} MailSession;
+};
-typedef struct _MailSessionClass {
+struct _MailSessionClass {
CamelSessionClass parent_class;
+};
-} MailSessionClass;
-
-static CamelSessionClass *ms_parent_class;
static gchar *mail_data_dir;
static gchar *mail_config_dir;
static gchar *get_password(CamelSession *session, CamelService *service, const gchar *domain, const gchar *prompt, const gchar *item, guint32 flags, CamelException *ex);
-static void forget_password(CamelSession *session, CamelService *service, const gchar *domain, const gchar *item, CamelException *ex);
+static gboolean forget_password(CamelSession *session, CamelService *service, const gchar *domain, const gchar *item, CamelException *ex);
static gboolean alert_user(CamelSession *session, CamelSessionAlertType type, const gchar *prompt, gboolean cancel);
static CamelFilterDriver *get_filter_driver(CamelSession *session, const gchar *type, CamelException *ex);
static gboolean lookup_addressbook(CamelSession *session, const gchar *name);
@@ -102,16 +98,15 @@ static gpointer ms_thread_msg_new(CamelSession *session, CamelSessionThreadOps *
static void ms_thread_msg_free(CamelSession *session, CamelSessionThreadMsg *m);
static void ms_forward_to (CamelSession *session, CamelFolder *folder, CamelMimeMessage *message, const gchar *address, CamelException *ex);
-static void
-init (MailSession *session)
-{
- session->async = mail_async_event_new();
- session->junk_plugins = NULL;
-}
+GType mail_session_get_type (void);
+
+G_DEFINE_TYPE (MailSession, mail_session, CAMEL_TYPE_SESSION)
static void
-finalise (MailSession *session)
+mail_session_finalize (GObject *object)
{
+ MailSession *session = (MailSession *) object;
+
if (session_check_junk_notify_id != -1)
gconf_client_notify_remove (mail_config_get_gconf_client (), session_check_junk_notify_id);
@@ -119,44 +114,37 @@ finalise (MailSession *session)
g_free (mail_data_dir);
g_free (mail_config_dir);
+
+ /* Chain up to parent's finalize() method. */
+ G_OBJECT_CLASS (mail_session_parent_class)->finalize (object);
}
static void
-class_init (MailSessionClass *mail_session_class)
-{
- CamelSessionClass *camel_session_class = CAMEL_SESSION_CLASS (mail_session_class);
-
- /* virtual method override */
- camel_session_class->get_password = get_password;
- camel_session_class->forget_password = forget_password;
- camel_session_class->alert_user = alert_user;
- camel_session_class->get_filter_driver = get_filter_driver;
- camel_session_class->lookup_addressbook = lookup_addressbook;
- camel_session_class->thread_msg_new = ms_thread_msg_new;
- camel_session_class->thread_msg_free = ms_thread_msg_free;
- camel_session_class->thread_status = ms_thread_status;
- camel_session_class->forward_to = ms_forward_to;
-}
-
-static CamelType
-mail_session_get_type (void)
-{
- static CamelType mail_session_type = CAMEL_INVALID_TYPE;
-
- if (mail_session_type == CAMEL_INVALID_TYPE) {
- ms_parent_class = (CamelSessionClass *)camel_session_get_type();
- mail_session_type = camel_type_register (
- camel_session_get_type (),
- "MailSession",
- sizeof (MailSession),
- sizeof (MailSessionClass),
- (CamelObjectClassInitFunc) class_init,
- NULL,
- (CamelObjectInitFunc) init,
- (CamelObjectFinalizeFunc) finalise);
- }
+mail_session_class_init (MailSessionClass *class)
+{
+ GObjectClass *object_class;
+ CamelSessionClass *session_class;
- return mail_session_type;
+ object_class = G_OBJECT_CLASS (class);
+ object_class->finalize = mail_session_finalize;
+
+ session_class = CAMEL_SESSION_CLASS (class);
+ session_class->get_password = get_password;
+ session_class->forget_password = forget_password;
+ session_class->alert_user = alert_user;
+ session_class->get_filter_driver = get_filter_driver;
+ session_class->lookup_addressbook = lookup_addressbook;
+ session_class->thread_msg_new = ms_thread_msg_new;
+ session_class->thread_msg_free = ms_thread_msg_free;
+ session_class->thread_status = ms_thread_status;
+ session_class->forward_to = ms_forward_to;
+}
+
+static void
+mail_session_init (MailSession *session)
+{
+ session->async = mail_async_event_new();
+ session->junk_plugins = NULL;
}
static gchar *
@@ -271,13 +259,19 @@ get_password (CamelSession *session, CamelService *service, const gchar *domain,
return ret;
}
-static void
-forget_password (CamelSession *session, CamelService *service, const gchar *domain, const gchar *item, CamelException *ex)
+static gboolean
+forget_password (CamelSession *session,
+ CamelService *service,
+ const gchar *domain,
+ const gchar *item,
+ CamelException *ex)
{
gchar *key = make_key (service, item);
e_passwords_forget_password (domain?domain:"Mail", key);
g_free (key);
+
+ return TRUE;
}
/* ********************************************************************** */
@@ -421,7 +415,7 @@ lookup_addressbook(CamelSession *session, const gchar *name)
addr = camel_internet_address_new ();
camel_address_decode ((CamelAddress *)addr, name);
ret = em_utils_in_addressbook (addr, mail_config_get_lookup_book_local_only ());
- camel_object_unref (addr);
+ g_object_unref (addr);
return ret;
}
@@ -478,7 +472,7 @@ main_play_sound (CamelFilterDriver *driver, gchar *filename, gpointer user_data)
gdk_beep ();
g_free (filename);
- camel_object_unref (session);
+ g_object_unref (session);
}
static void
@@ -486,7 +480,7 @@ session_play_sound (CamelFilterDriver *driver, const gchar *filename, gpointer u
{
MailSession *ms = (MailSession *) session;
- camel_object_ref (session);
+ g_object_ref (session);
mail_async_event_emit (ms->async, MAIL_ASYNC_GUI, (MailAsyncFunc) main_play_sound,
driver, g_strdup (filename), user_data);
@@ -496,7 +490,7 @@ static void
main_system_beep (CamelFilterDriver *driver, gpointer user_data)
{
gdk_beep ();
- camel_object_unref (session);
+ g_object_unref (session);
}
static void
@@ -504,7 +498,7 @@ session_system_beep (CamelFilterDriver *driver, gpointer user_data)
{
MailSession *ms = (MailSession *) session;
- camel_object_ref (session);
+ g_object_ref (session);
mail_async_event_emit (ms->async, MAIL_ASYNC_GUI, (MailAsyncFunc) main_system_beep,
driver, user_data, NULL);
@@ -555,7 +549,7 @@ main_get_filter_driver (CamelSession *session, const gchar *type, CamelException
camel_filter_driver_set_system_beep_func (driver, session_system_beep, NULL);
if ((!strcmp (type, E_FILTER_SOURCE_INCOMING) || !strcmp (type, E_FILTER_SOURCE_JUNKTEST))
- && camel_session_check_junk (session)) {
+ && camel_session_get_check_junk (session)) {
/* implicit junk check as 1st rule */
camel_filter_driver_add_rule (driver, "Junk check", "(junk-test)", "(begin (set-system-flag \"junk\"))");
}
@@ -606,7 +600,11 @@ static MailMsgInfo ms_thread_info_dummy = { sizeof (MailMsg) };
static gpointer ms_thread_msg_new(CamelSession *session, CamelSessionThreadOps *ops, guint size)
{
- CamelSessionThreadMsg *msg = ms_parent_class->thread_msg_new(session, ops, size);
+ CamelSessionThreadMsg *msg;
+ CamelSessionClass *session_class;
+
+ session_class = CAMEL_SESSION_CLASS (mail_session_parent_class);
+ msg = session_class->thread_msg_new (session, ops, size);
/* We create a dummy mail_msg, and then copy its cancellation port over to ours, so
we get cancellation and progress in common with hte existing mail code, for free */
@@ -622,13 +620,19 @@ static gpointer ms_thread_msg_new(CamelSession *session, CamelSessionThreadOps *
return msg;
}
-static void ms_thread_msg_free(CamelSession *session, CamelSessionThreadMsg *m)
+static void
+ms_thread_msg_free(CamelSession *session, CamelSessionThreadMsg *m)
{
+ CamelSessionClass *session_class;
+
+ session_class = CAMEL_SESSION_CLASS (mail_session_parent_class);
+
mail_msg_unref(m->data);
- ms_parent_class->thread_msg_free(session, m);
+ session_class->thread_msg_free(session, m);
}
-static void ms_thread_status(CamelSession *session, CamelSessionThreadMsg *msg, const gchar *text, gint pc)
+static void
+ms_thread_status(CamelSession *session, CamelSessionThreadMsg *msg, const gchar *text, gint pc)
{
/* This should never be called since we bypass it in alloc! */
printf("Thread status '%s' %d%%\n", text, pc);
@@ -677,7 +681,7 @@ ms_forward_to (CamelSession *session, CamelFolder *folder, CamelMimeMessage *mes
camel_data_wrapper_write_to_stream ((CamelDataWrapper *)message, mem);
camel_seekable_stream_seek (CAMEL_SEEKABLE_STREAM (mem), 0, CAMEL_STREAM_SET);
camel_data_wrapper_construct_from_stream ((CamelDataWrapper *)forward, mem);
- camel_object_unref (mem);
+ g_object_unref (mem);
/* clear previous recipients */
camel_mime_message_set_recipients (forward, CAMEL_RECIPIENT_TYPE_TO, NULL);
@@ -702,13 +706,13 @@ ms_forward_to (CamelSession *session, CamelFolder *folder, CamelMimeMessage *mes
addr = camel_internet_address_new ();
camel_internet_address_add (addr, account->id->name, account->id->address);
camel_mime_message_set_from (forward, addr);
- camel_object_unref (addr);
+ g_object_unref (addr);
/* to */
addr = camel_internet_address_new ();
camel_address_decode (CAMEL_ADDRESS (addr), address);
camel_mime_message_set_recipients (forward, CAMEL_RECIPIENT_TYPE_TO, addr);
- camel_object_unref (addr);
+ g_object_unref (addr);
/* subject */
subject = mail_tool_generate_forward_subject (message);
@@ -794,7 +798,7 @@ mail_session_check_junk_notify (GConfClient *gconf, guint id, GConfEntry *entry,
}
void
-mail_session_init (void)
+mail_session_start (void)
{
GConfClient *gconf;
@@ -803,7 +807,7 @@ mail_session_init (void)
camel_provider_init();
- session = CAMEL_SESSION (camel_object_new (MAIL_SESSION_TYPE));
+ session = g_object_new (MAIL_TYPE_SESSION, NULL);
e_account_writable(NULL, E_ACCOUNT_SOURCE_SAVE_PASSWD); /* Init the EAccount Setup */
camel_session_construct (session, mail_session_get_data_dir ());
diff --git a/mail/mail-session.h b/mail/mail-session.h
index ff3ee490a1..4984a5822c 100644
--- a/mail/mail-session.h
+++ b/mail/mail-session.h
@@ -24,11 +24,11 @@
#define MAIL_SESSION_H
#include <glib.h>
-#include <camel/camel-session.h>
+#include <camel/camel.h>
G_BEGIN_DECLS
-void mail_session_init (void);
+void mail_session_start (void);
void mail_session_shutdown (void);
gchar *mail_session_request_dialog (const gchar *prompt, gboolean secret,
const gchar *key, gboolean async);
diff --git a/mail/mail-tools.c b/mail/mail-tools.c
index f006b1b963..e9470c9a63 100644
--- a/mail/mail-tools.c
+++ b/mail/mail-tools.c
@@ -36,10 +36,6 @@
#include <glib/gi18n.h>
-#include <camel/camel-store.h>
-#include <camel/camel-mime-message.h>
-#include <camel/camel-movemail.h>
-
#include "em-utils.h"
#include "mail-folder-cache.h"
#include "mail-session.h"
@@ -58,7 +54,7 @@ mail_tool_get_inbox (const gchar *url, CamelException *ex)
return NULL;
folder = camel_store_get_inbox (store, ex);
- camel_object_unref (store);
+ g_object_unref (store);
return folder;
}
@@ -96,7 +92,7 @@ mail_tool_get_trash (const gchar *url, gint connect, CamelException *ex)
else
trash = NULL;
- camel_object_unref (store);
+ g_object_unref (store);
return trash;
}
@@ -270,8 +266,8 @@ mail_tool_make_message_attachment (CamelMimeMessage *message)
part = camel_mime_part_new ();
camel_mime_part_set_disposition (part, "inline");
camel_mime_part_set_description (part, desc);
- camel_medium_set_content_object (CAMEL_MEDIUM (part),
- CAMEL_DATA_WRAPPER (message));
+ camel_medium_set_content (
+ CAMEL_MEDIUM (part), CAMEL_DATA_WRAPPER (message));
camel_mime_part_set_content_type (part, "message/rfc822");
g_free (desc);
@@ -332,7 +328,7 @@ mail_tool_uri_to_folder (const gchar *uri, guint32 flags, CamelException *ex)
folder = camel_store_get_junk (store, ex);
} else
folder = camel_store_get_folder (store, name, flags, ex);
- camel_object_unref (store);
+ g_object_unref (store);
}
if (folder)
@@ -389,18 +385,23 @@ mail_tools_x_evolution_message_parse (gchar *in, guint inlen, GPtrArray **uids)
gchar *
mail_tools_folder_to_url (CamelFolder *folder)
{
+ CamelStore *parent_store;
+ const gchar *full_name;
CamelURL *url;
gchar *out;
g_return_val_if_fail (CAMEL_IS_FOLDER (folder), NULL);
- url = camel_url_copy(((CamelService *)folder->parent_store)->url);
- if (((CamelService *)folder->parent_store)->provider->url_flags & CAMEL_URL_FRAGMENT_IS_PATH) {
- camel_url_set_fragment(url, folder->full_name);
+ full_name = camel_folder_get_full_name (folder);
+ parent_store = camel_folder_get_parent_store (folder);
+
+ url = camel_url_copy(((CamelService *)parent_store)->url);
+ if (((CamelService *)parent_store)->provider->url_flags & CAMEL_URL_FRAGMENT_IS_PATH) {
+ camel_url_set_fragment(url, full_name);
} else {
- gchar *name = g_alloca(strlen(folder->full_name)+2);
+ gchar *name = g_alloca(strlen(full_name)+2);
- sprintf(name, "/%s", folder->full_name);
+ sprintf(name, "/%s", full_name);
camel_url_set_path(url, name);
}
diff --git a/mail/mail-tools.h b/mail/mail-tools.h
index ceb3ce8fb0..544c3601b6 100644
--- a/mail/mail-tools.h
+++ b/mail/mail-tools.h
@@ -24,8 +24,7 @@
#define MAIL_TOOLS_H
#include <glib.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-mime-message.h>
+#include <camel/camel.h>
/* Get the "inbox" for a url (uses global session) */
CamelFolder *mail_tool_get_inbox (const gchar *url, CamelException *ex);
diff --git a/mail/mail-vfolder.c b/mail/mail-vfolder.c
index 8999a1dd15..3e9199aebe 100644
--- a/mail/mail-vfolder.c
+++ b/mail/mail-vfolder.c
@@ -27,9 +27,6 @@
#include <glib/gi18n.h>
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-vee-store.h>
-#include <camel/camel-vtrash-folder.h>
#include <libedataserver/e-account-list.h>
#include "e-util/e-alert-dialog.h"
@@ -66,7 +63,7 @@ static GList *source_folders_local; /* list of source folder uri's - local ones
static GHashTable *vfolder_hash;
/* This is a slightly hacky solution to shutting down, we poll this variable in various
loops, and just quit processing if it is set. */
-static volatile gint shutdown; /* are we shutting down? */
+static volatile gint vfolder_shutdown; /* are we shutting down? */
static void rule_changed(EFilterRule *rule, CamelFolder *folder);
@@ -84,7 +81,9 @@ struct _setup_msg {
static gchar *
vfolder_setup_desc (struct _setup_msg *m)
{
- return g_strdup_printf(_("Setting up Search Folder: %s"), m->folder->full_name);
+ return g_strdup_printf (
+ _("Setting up Search Folder: %s"),
+ camel_folder_get_full_name (m->folder));
}
static void
@@ -93,12 +92,10 @@ vfolder_setup_exec (struct _setup_msg *m)
GList *l, *list = NULL;
CamelFolder *folder;
- d(printf("Setting up Search Folder: %s\n", m->folder->full_name));
-
camel_vee_folder_set_expression((CamelVeeFolder *)m->folder, m->query);
l = m->sources_uri;
- while (l && !shutdown) {
+ while (l && !vfolder_shutdown) {
d(printf(" Adding uri: %s\n", (gchar *)l->data));
folder = mail_tool_uri_to_folder (l->data, 0, &m->base.ex);
@@ -112,19 +109,18 @@ vfolder_setup_exec (struct _setup_msg *m)
}
l = m->sources_folder;
- while (l && !shutdown) {
- d(printf(" Adding folder: %s\n", ((CamelFolder *)l->data)->full_name));
- camel_object_ref(l->data);
+ while (l && !vfolder_shutdown) {
+ g_object_ref (l->data);
list = g_list_append(list, l->data);
l = l->next;
}
- if (!shutdown)
+ if (!vfolder_shutdown)
camel_vee_folder_set_folders((CamelVeeFolder *)m->folder, list);
l = list;
while (l) {
- camel_object_unref(l->data);
+ g_object_unref (l->data);
l = l->next;
}
g_list_free(list);
@@ -140,7 +136,7 @@ vfolder_setup_free (struct _setup_msg *m)
{
GList *l;
- camel_object_unref(m->folder);
+ g_object_unref (m->folder);
g_free(m->query);
l = m->sources_uri;
@@ -152,7 +148,7 @@ vfolder_setup_free (struct _setup_msg *m)
l = m->sources_folder;
while (l) {
- camel_object_unref(l->data);
+ g_object_unref (l->data);
l = l->next;
}
g_list_free(m->sources_folder);
@@ -175,7 +171,7 @@ vfolder_setup(CamelFolder *folder, const gchar *query, GList *sources_uri, GList
m = mail_msg_new(&vfolder_setup_info);
m->folder = folder;
- camel_object_ref(folder);
+ g_object_ref (folder);
m->query = g_strdup(query);
m->sources_uri = sources_uri;
m->sources_folder = sources_folder;
@@ -247,7 +243,7 @@ vfolder_adduri_exec (struct _adduri_msg *m)
GList *l;
CamelFolder *folder = NULL;
- if (shutdown)
+ if (vfolder_shutdown)
return;
d(printf("%s uri to vfolder: %s\n", m->remove?"Removing":"Adding", m->uri));
@@ -266,14 +262,14 @@ vfolder_adduri_exec (struct _adduri_msg *m)
if (folder != NULL) {
l = m->folders;
- while (l && !shutdown) {
+ while (l && !vfolder_shutdown) {
if (m->remove)
camel_vee_folder_remove_folder((CamelVeeFolder *)l->data, folder);
else
camel_vee_folder_add_folder((CamelVeeFolder *)l->data, folder);
l = l->next;
}
- camel_object_unref(folder);
+ g_object_unref (folder);
}
}
@@ -285,7 +281,7 @@ vfolder_adduri_done(struct _adduri_msg *m)
static void
vfolder_adduri_free (struct _adduri_msg *m)
{
- g_list_foreach(m->folders, (GFunc)camel_object_unref, NULL);
+ g_list_foreach(m->folders, (GFunc)g_object_unref, NULL);
g_list_free(m->folders);
g_free(m->uri);
}
@@ -526,7 +522,7 @@ mail_vfolder_add_uri(CamelStore *store, const gchar *curi, gint remove)
g_warning ("vf is NULL for %s\n", rule->name);
continue;
}
- camel_object_ref(vf);
+ g_object_ref (vf);
folders = g_list_prepend(folders, vf);
}
}
@@ -594,6 +590,7 @@ mail_vfolder_delete_uri(CamelStore *store, const gchar *curi)
const gchar *source;
CamelVeeFolder *vf;
GString *changed;
+ guint changed_count;
gchar *uri;
GList *link;
@@ -606,6 +603,7 @@ mail_vfolder_delete_uri(CamelStore *store, const gchar *curi)
g_return_if_fail (mail_in_main_thread());
+ changed_count = 0;
changed = g_string_new ("");
G_LOCK (vfolder);
@@ -638,7 +636,16 @@ mail_vfolder_delete_uri(CamelStore *store, const gchar *curi)
0, NULL, rule_changed, vf);
em_vfolder_rule_remove_source ((EMVFolderRule *)rule, source);
g_signal_connect (rule, "changed", G_CALLBACK(rule_changed), vf);
- g_string_append_printf (changed, " %s\n", rule->name);
+ if (changed_count == 0) {
+ g_string_append (changed, rule->name);
+ } else {
+ if (changed_count == 1) {
+ g_string_prepend (changed, " ");
+ g_string_append (changed, "\n");
+ }
+ g_string_append_printf (changed, " %s\n", rule->name);
+ }
+ changed_count++;
source = NULL;
}
g_free(csource);
@@ -658,13 +665,22 @@ done:
G_UNLOCK (vfolder);
- if (changed->str[0]) {
+ if (changed_count > 0) {
GtkWidget *dialog;
const gchar *data_dir;
- gchar *user;
-
- dialog = e_alert_dialog_new_for_args (e_shell_get_active_window (NULL), "mail:vfolder-updated", changed->str, uri, NULL);
+ gchar *user, *info;
+
+ info = g_strdup_printf (ngettext (
+ /* Translators: The first %s is name of the affected search folder(s),
+ the second %s is uri of the removed folder. For more than one search
+ folder is each of them on a separate line, with four spaces in front
+ of its name, without quotes. */
+ "The Search Folder \"%s\" has been updated, because it used just removed folder\n\"%s\".",
+ "The following Search Folders\n%s have been updated, because they used just removed folder\n\"%s\".",
+ changed_count), changed->str, uri);
+ dialog = e_alert_dialog_new_for_args (e_shell_get_active_window (NULL), "mail:vfolder-updated", info, NULL);
em_utils_show_info_silent (dialog);
+ g_free (info);
data_dir = mail_session_get_data_dir ();
user = g_build_filename (data_dir, "vfolders.xml", NULL);
@@ -790,9 +806,12 @@ rule_changed(EFilterRule *rule, CamelFolder *folder)
{
GList *sources_uri = NULL, *sources_folder = NULL;
GString *query;
+ const gchar *full_name;
+
+ full_name = camel_folder_get_full_name (folder);
/* if the folder has changed name, then add it, then remove the old manually */
- if (strcmp(folder->full_name, rule->name) != 0) {
+ if (strcmp (full_name, rule->name) != 0) {
gchar *oldname;
gpointer key;
@@ -800,18 +819,17 @@ rule_changed(EFilterRule *rule, CamelFolder *folder)
G_LOCK (vfolder);
d(printf("Changing folder name in hash table to '%s'\n", rule->name));
- if (g_hash_table_lookup_extended (vfolder_hash, folder->full_name, &key, &oldfolder)) {
+ if (g_hash_table_lookup_extended (vfolder_hash, full_name, &key, &oldfolder)) {
g_hash_table_remove (vfolder_hash, key);
g_free (key);
g_hash_table_insert (vfolder_hash, g_strdup(rule->name), folder);
G_UNLOCK (vfolder);
} else {
G_UNLOCK (vfolder);
- g_warning("couldn't find a vfolder rule in our table? %s", folder->full_name);
+ g_warning("couldn't find a vfolder rule in our table? %s", full_name);
}
- /* TODO: make the folder->full_name var thread accessible */
- oldname = g_strdup(folder->full_name);
+ oldname = g_strdup (full_name);
camel_store_rename_folder(vfolder_store, oldname, rule->name, NULL);
g_free(oldname);
}
@@ -873,24 +891,13 @@ static void context_rule_removed(ERuleContext *ctx, EFilterRule *rule)
camel_store_delete_folder(vfolder_store, rule->name, NULL);
/* this must be unref'd after its deleted */
if (folder)
- camel_object_unref ((CamelFolder *) folder);
-}
-
-static void
-store_folder_created(CamelObject *o, gpointer event_data, gpointer data)
-{
- CamelStore *store = (CamelStore *)o;
- CamelFolderInfo *info = event_data;
-
- store = store;
- info = info;
+ g_object_unref ((CamelFolder *) folder);
}
static void
-store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data)
+store_folder_deleted_cb (CamelStore *store,
+ CamelFolderInfo *info)
{
- CamelStore *store = (CamelStore *)o;
- CamelFolderInfo *info = event_data;
EFilterRule *rule;
gchar *user;
@@ -925,9 +932,10 @@ store_folder_deleted(CamelObject *o, gpointer event_data, gpointer data)
}
static void
-store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
+store_folder_renamed_cb (CamelStore *store,
+ const gchar *old_name,
+ CamelFolderInfo *info)
{
- CamelRenameInfo *info = event_data;
EFilterRule *rule;
gchar *user;
@@ -935,19 +943,19 @@ store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
/* This should be more-or-less thread-safe */
- d(printf("Folder renamed to '%s' from '%s'\n", info->new->full_name, info->old_base));
+ d(printf("Folder renamed to '%s' from '%s'\n", info->full_name, old_name));
/* Folder is already renamed? */
G_LOCK (vfolder);
- d(printf("Changing folder name in hash table to '%s'\n", info->new->full_name));
- if (g_hash_table_lookup_extended (vfolder_hash, info->old_base, &key, &folder)) {
+ d(printf("Changing folder name in hash table to '%s'\n", info->full_name));
+ if (g_hash_table_lookup_extended (vfolder_hash, old_name, &key, &folder)) {
const gchar *data_dir;
g_hash_table_remove (vfolder_hash, key);
g_free (key);
- g_hash_table_insert (vfolder_hash, g_strdup(info->new->full_name), folder);
+ g_hash_table_insert (vfolder_hash, g_strdup(info->full_name), folder);
- rule = e_rule_context_find_rule((ERuleContext *)context, info->old_base, NULL);
+ rule = e_rule_context_find_rule((ERuleContext *)context, old_name, NULL);
if (!rule) {
G_UNLOCK (vfolder);
g_warning ("Rule shouldn't be NULL\n");
@@ -956,7 +964,7 @@ store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
g_signal_handlers_disconnect_matched(rule, G_SIGNAL_MATCH_FUNC|G_SIGNAL_MATCH_DATA, 0,
0, NULL, rule_changed, folder);
- e_filter_rule_set_name(rule, info->new->full_name);
+ e_filter_rule_set_name(rule, info->full_name);
g_signal_connect(rule, "changed", G_CALLBACK(rule_changed), folder);
data_dir = mail_session_get_data_dir ();
@@ -967,7 +975,7 @@ store_folder_renamed(CamelObject *o, gpointer event_data, gpointer data)
G_UNLOCK (vfolder);
} else {
G_UNLOCK (vfolder);
- g_warning("couldn't find a vfolder rule in our table? %s", info->new->full_name);
+ g_warning("couldn't find a vfolder rule in our table? %s", info->full_name);
}
}
@@ -1006,6 +1014,7 @@ vfolder_load_storage(void)
EFilterRule *rule;
gchar *xmlfile;
GConfClient *gconf;
+ CamelException ex;
G_LOCK (vfolder_hash);
@@ -1019,21 +1028,26 @@ vfolder_load_storage(void)
G_UNLOCK (vfolder_hash);
+ camel_exception_init (&ex);
+
/* first, create the vfolder store, and set it up */
data_dir = mail_session_get_data_dir ();
storeuri = g_strdup_printf("vfolder:%s/vfolder", data_dir);
- vfolder_store = camel_session_get_store(session, storeuri, NULL);
+ vfolder_store = camel_session_get_store(session, storeuri, &ex);
if (vfolder_store == NULL) {
g_warning("Cannot open vfolder store - no vfolders available");
return;
}
- camel_object_hook_event(vfolder_store, "folder_created",
- (CamelObjectEventHookFunc)store_folder_created, NULL);
- camel_object_hook_event(vfolder_store, "folder_deleted",
- (CamelObjectEventHookFunc)store_folder_deleted, NULL);
- camel_object_hook_event(vfolder_store, "folder_renamed",
- (CamelObjectEventHookFunc)store_folder_renamed, NULL);
+ camel_exception_clear (&ex);
+
+ g_signal_connect (
+ vfolder_store, "folder-deleted",
+ G_CALLBACK (store_folder_deleted_cb), NULL);
+
+ g_signal_connect (
+ vfolder_store, "folder-renamed",
+ G_CALLBACK (store_folder_renamed_cb), NULL);
d(printf("got store '%s' = %p\n", storeuri, vfolder_store));
@@ -1158,6 +1172,7 @@ vfolder_edit_rule(const gchar *uri)
{
GtkWidget *w;
GtkDialog *gd;
+ GtkWidget *container;
EFilterRule *rule, *newrule;
CamelURL *url;
@@ -1169,19 +1184,21 @@ vfolder_edit_rule(const gchar *uri)
w = e_filter_rule_get_widget((EFilterRule *)newrule, (ERuleContext *)context);
- gd = (GtkDialog *)gtk_dialog_new_with_buttons(_("Edit Search Folder"), NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK,
- GTK_RESPONSE_OK,
- NULL);
+ gd = (GtkDialog *)gtk_dialog_new_with_buttons(
+ _("Edit Search Folder"), NULL,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+
gtk_container_set_border_width (GTK_CONTAINER (gd), 6);
- gtk_box_set_spacing ((GtkBox *) gd->vbox, 6);
+
+ container = gtk_dialog_get_content_area (gd);
+ gtk_box_set_spacing (GTK_BOX (container), 6);
+
gtk_dialog_set_default_response(gd, GTK_RESPONSE_OK);
g_object_set(gd, "allow_shrink", FALSE, "allow_grow", TRUE, NULL);
gtk_window_set_default_size (GTK_WINDOW (gd), 500, 500);
- gtk_box_pack_start((GtkBox *)gd->vbox, w, TRUE, TRUE, 0);
+ gtk_box_pack_start (GTK_BOX (container), w, TRUE, TRUE, 0);
gtk_widget_show((GtkWidget *)gd);
g_object_set_data_full(G_OBJECT(gd), "rule", newrule, (GDestroyNotify)g_object_unref);
g_object_set_data_full(G_OBJECT(gd), "orig", rule, (GDestroyNotify)g_object_unref);
@@ -1265,26 +1282,29 @@ vfolder_gui_add_rule(EMVFolderRule *rule)
{
GtkWidget *w;
GtkDialog *gd;
+ GtkWidget *container;
/* this should be done before we call this function */
vfolder_load_storage ();
w = e_filter_rule_get_widget((EFilterRule *)rule, (ERuleContext *)context);
- gd = (GtkDialog *)gtk_dialog_new_with_buttons(_("New Search Folder"),
- NULL,
- GTK_DIALOG_DESTROY_WITH_PARENT,
- GTK_STOCK_CANCEL,
- GTK_RESPONSE_CANCEL,
- GTK_STOCK_OK,
- GTK_RESPONSE_OK,
- NULL);
+ gd = (GtkDialog *)gtk_dialog_new_with_buttons (
+ _("New Search Folder"),
+ NULL,
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+ GTK_STOCK_OK, GTK_RESPONSE_OK, NULL);
+
gtk_dialog_set_default_response(gd, GTK_RESPONSE_OK);
gtk_container_set_border_width (GTK_CONTAINER (gd), 6);
- gtk_box_set_spacing ((GtkBox *) gd->vbox, 6);
+
+ container = gtk_dialog_get_content_area (gd);
+ gtk_box_set_spacing (GTK_BOX (container), 6);
+
g_object_set(gd, "allow_shrink", FALSE, "allow_grow", TRUE, NULL);
gtk_window_set_default_size (GTK_WINDOW (gd), 500, 500);
- gtk_box_pack_start((GtkBox *)gd->vbox, w, TRUE, TRUE, 0);
+ gtk_box_pack_start(GTK_BOX (container), w, TRUE, TRUE, 0);
gtk_widget_show((GtkWidget *)gd);
g_object_set_data_full(G_OBJECT(gd), "rule", rule, (GDestroyNotify)g_object_unref);
g_signal_connect(rule, "changed", G_CALLBACK (new_rule_changed_cb), gd);
@@ -1327,7 +1347,7 @@ vfolder_foreach_cb (gpointer key, gpointer data, gpointer user_data)
CamelFolder *folder = CAMEL_FOLDER (data);
if (folder)
- camel_object_unref(folder);
+ g_object_unref (folder);
g_free (key);
}
@@ -1335,7 +1355,7 @@ vfolder_foreach_cb (gpointer key, gpointer data, gpointer user_data)
void
mail_vfolder_shutdown (void)
{
- shutdown = 1;
+ vfolder_shutdown = 1;
if (vfolder_hash) {
g_hash_table_foreach (vfolder_hash, vfolder_foreach_cb, NULL);
@@ -1344,7 +1364,7 @@ mail_vfolder_shutdown (void)
}
if (vfolder_store) {
- camel_object_unref (vfolder_store);
+ g_object_unref (vfolder_store);
vfolder_store = NULL;
}
diff --git a/mail/mail-vfolder.h b/mail/mail-vfolder.h
index a70cdd8757..84b6a41151 100644
--- a/mail/mail-vfolder.h
+++ b/mail/mail-vfolder.h
@@ -22,8 +22,7 @@
#ifndef _MAIL_VFOLDER_H
#define _MAIL_VFOLDER_H
-#include <camel/camel-internet-address.h>
-#include <camel/camel-mime-message.h>
+#include <camel/camel.h>
#include <filter/e-filter-part.h>
#include <filter/e-filter-rule.h>
diff --git a/mail/mail.error.xml b/mail/mail.error.xml
index ef1b5dac94..e2ffd243aa 100644
--- a/mail/mail.error.xml
+++ b/mail/mail.error.xml
@@ -85,7 +85,7 @@ Many email systems add an Apparently-To header to messages that only have BCC re
</error>
<error id="ask-open-many" type="warning" default="GTK_RESPONSE_CANCEL">
- <_primary>Are you sure you want to open {0} messages at once?</_primary>
+ <primary>{0}</primary>
<_secondary xml:space="preserve">Opening too many messages at once may take a long time.</_secondary>
<button stock="gtk-cancel" response="GTK_RESPONSE_CANCEL"/>
<button _label="_Open Messages" response="GTK_RESPONSE_YES"/>
@@ -99,6 +99,9 @@ Many email systems add an Apparently-To header to messages that only have BCC re
</error>
<error id="async-error" type="error">
+ <!-- Translators: the {0} is replaced with an operation name, which failed.
+ It can be basically anything run asynchronously, like "Fetching Mail",
+ "Sending message" and others, mostly from mail-ops.c file. -->
<_primary>Error while {0}.</_primary>
<secondary>{1}</secondary>
</error>
@@ -162,7 +165,7 @@ Many email systems add an Apparently-To header to messages that only have BCC re
<error id="no-create-tmp-path" type="error">
<_primary>Cannot create temporary save directory.</_primary>
- <_secondary xml:space="preserve">Because "{1}".</_secondary>
+ <secondary xml:space="preserve">{1}.</secondary>
</error>
<error id="no-write-path-exists" type="error">
@@ -177,7 +180,7 @@ Many email systems add an Apparently-To header to messages that only have BCC re
<error id="no-delete-folder" type="error">
<_primary>Cannot delete folder "{0}".</_primary>
- <_secondary xml:space="preserve">Because "{1}".</_secondary>
+ <secondary xml:space="preserve">{1}.</secondary>
</error>
<error id="no-delete-special-folder" type="error">
@@ -192,7 +195,7 @@ Many email systems add an Apparently-To header to messages that only have BCC re
<error id="ask-delete-folder" type="question" default="GTK_RESPONSE_CANCEL">
<_primary>Really delete folder "{0}" and all of its subfolders?</_primary>
- <_secondary xml:space="preserve">If you delete the folder, all of its contents and its subfolders contents will be deleted permanently.</_secondary>
+ <_secondary xml:space="preserve">If you delete the folder, all of its contents and its subfolders' contents will be deleted permanently.</_secondary>
<button stock="gtk-cancel" response="GTK_RESPONSE_CANCEL"/>
<button stock="gtk-delete" response="GTK_RESPONSE_OK"/>
</error>
@@ -231,7 +234,7 @@ Do you really want to do this?</_secondary>
<error id="no-rename-folder" type="error">
<_primary>Cannot rename "{0}" to "{1}".</_primary>
- <_secondary xml:space="preserve">Because "{2}".</_secondary>
+ <secondary xml:space="preserve">{2}.</secondary>
</error>
<error id="no-move-folder-nostore" type="error">
@@ -256,7 +259,7 @@ Do you really want to do this?</_secondary>
<error id="no-create-folder-nostore" type="error">
<_primary>Cannot create folder "{0}".</_primary>
- <_secondary xml:space="preserve">Cannot open source "{1}"</_secondary>
+ <_secondary xml:space="preserve">Cannot open source "{1}".</_secondary>
</error>
<error id="account-incomplete" type="error">
@@ -293,7 +296,7 @@ all proxy information will be deleted permanently.</_secondary>
<error id="no-save-signature" type="error">
<_primary>Could not save signature file.</_primary>
- <_secondary xml:space="preserve">Because "{0}".</_secondary>
+ <secondary xml:space="preserve">{0}.</secondary>
</error>
<error id="signature-notscript" type="error">
@@ -322,20 +325,12 @@ go to the Search Folder editor to add it explicitly, if required.</_secondary>
<error id="vfolder-updated" type="info">
<_primary>Search Folders automatically updated.</_primary>
- <_secondary xml:space="preserve">The following Search Folder(s):
-{0}
-Used the now removed folder:
- "{1}"
-And have been updated.</_secondary>
+ <secondary xml:space="preserve">{0}</secondary>
</error>
<error id="filter-updated" type="info">
<_primary>Mail filters automatically updated.</_primary>
- <_secondary xml:space="preserve">The following filter rule(s):
-{0}
-Used the now removed folder:
- "{1}"
-And have been updated.</_secondary>
+ <secondary xml:space="preserve">{0}</secondary>
</error>
<error id="no-folder" type="error">
@@ -397,6 +392,13 @@ You can choose to ignore this folder, overwrite or append its contents, or quit.
<error id="ask-mark-all-read" type="question" default="GTK_RESPONSE_NO">
<_primary>Do you want to mark all messages as read?</_primary>
+ <_secondary xml:space="preserve">This will mark all messages as read in the selected folder.</_secondary>
+ <button stock="gtk-no" response="GTK_RESPONSE_NO"/>
+ <button stock="gtk-yes" response="GTK_RESPONSE_YES"/>
+ </error>
+
+ <error id="ask-mark-all-read-sub" type="question" default="GTK_RESPONSE_NO">
+ <_primary>Do you want to mark all messages as read?</_primary>
<_secondary xml:space="preserve">This will mark all messages as read in the selected folder and its subfolders.</_secondary>
<button stock="gtk-no" response="GTK_RESPONSE_NO"/>
<button stock="gtk-yes" response="GTK_RESPONSE_YES"/>
@@ -423,18 +425,18 @@ You can choose to ignore this folder, overwrite or append its contents, or quit.
</error>
<error id="junk-check-error" type="error">
- <_primary>Check Junk Failed</_primary>
- <_secondary xml:space="preserve">{0}</_secondary>
+ <_primary>"Check Junk" Failed</_primary>
+ <secondary xml:space="preserve">{0}</secondary>
</error>
<error id="junk-report-error" type="error">
- <_primary>Report Junk Failed</_primary>
- <_secondary xml:space="preserve">{0}</_secondary>
+ <_primary>"Report Junk" Failed</_primary>
+ <secondary xml:space="preserve">{0}</secondary>
</error>
<error id="junk-not-report-error" type="error">
- <_primary>Report Not Junk Failed</_primary>
- <_secondary xml:space="preserve">{0}</_secondary>
+ <_primary>"Report Not Junk" Failed</_primary>
+ <secondary xml:space="preserve">{0}</secondary>
</error>
</error-list>
diff --git a/mail/message-list.c b/mail/message-list.c
index c7361087b8..466d4c5777 100644
--- a/mail/message-list.c
+++ b/mail/message-list.c
@@ -36,17 +36,8 @@
#include <gconf/gconf-client.h>
-#include <camel/camel-exception.h>
-#include <camel/camel-file-utils.h>
-#include <camel/camel-folder.h>
-#include <camel/camel-folder-thread.h>
-#include <camel/camel-folder-summary.h>
-#include <camel/camel-vee-folder.h>
-#include <camel/camel-string-utils.h>
-
-#include <libedataserver/e-memory.h>
-
#include "e-util/e-icon-factory.h"
+#include "e-util/e-poolv.h"
#include "e-util/e-profile-event.h"
#include "e-util/e-util-private.h"
#include "e-util/e-util.h"
@@ -84,12 +75,15 @@
#endif
#ifdef G_OS_WIN32
-/* Undefine the similar macro from <pthread.h>,it doesn't check if
- * localtime() returns NULL.
- */
+#ifdef gmtime_r
+#undef gmtime_r
+#endif
+#ifdef localtime_r
#undef localtime_r
+#endif
-/* The localtime() in Microsoft's C library is MT-safe */
+/* The gmtime() and localtime() in Microsoft's C library are MT-safe */
+#define gmtime_r(tp,tmp) (gmtime(tp)?(*(tmp)=*gmtime(tp),(tmp)):0)
#define localtime_r(tp,tmp) (localtime(tp)?(*(tmp)=*localtime(tp),(tmp)):0)
#endif
@@ -207,11 +201,6 @@ static gint on_click (ETree *tree, gint row, ETreePath path, gint col, GdkEvent
static gchar *filter_date (time_t date);
static gchar *filter_size (gint size);
-static void folder_changed (CamelObject *o, gpointer event_data, gpointer user_data);
-
-static void save_hide_state(MessageList *ml);
-static void load_hide_state(MessageList *ml);
-
/* note: @changes is owned/freed by the caller */
/*static void mail_do_regenerate_messagelist (MessageList *list, const gchar *search, const gchar *hideexpr, CamelFolderChangeInfo *changes);*/
static void mail_regen_list(MessageList *ml, const gchar *search, const gchar *hideexpr, CamelFolderChangeInfo *changes);
@@ -219,6 +208,10 @@ static void mail_regen_cancel(MessageList *ml);
static void clear_info(gchar *key, ETreePath *node, MessageList *ml);
+static void folder_changed (CamelFolder *folder,
+ CamelFolderChangeInfo *info,
+ MessageList *ml);
+
enum {
MESSAGE_SELECTED,
MESSAGE_LIST_BUILT,
@@ -273,7 +266,7 @@ e_mail_address_new (const gchar *address)
cia = camel_internet_address_new ();
if (camel_address_unformat (CAMEL_ADDRESS (cia), address) == -1) {
- camel_object_unref (cia);
+ g_object_unref (cia);
return NULL;
}
camel_internet_address_get (cia, 0, &name, &addr);
@@ -286,7 +279,7 @@ e_mail_address_new (const gchar *address)
new->wname = NULL;
}
- camel_object_unref (cia);
+ g_object_unref (cia);
return new;
}
@@ -509,7 +502,7 @@ clear_selection(MessageList *ml, struct _MLSelection *selection)
selection->uids = NULL;
}
if (selection->folder) {
- camel_object_unref(selection->folder);
+ g_object_unref (selection->folder);
selection->folder = NULL;
}
g_free(selection->folder_uri);
@@ -893,7 +886,7 @@ message_list_copy(MessageList *ml, gboolean cut)
p->clipboard.uids = uids;
p->clipboard.folder = ml->folder;
- camel_object_ref(p->clipboard.folder);
+ g_object_ref (p->clipboard.folder);
p->clipboard.folder_uri = g_strdup(ml->folder_uri);
gtk_selection_owner_set(p->invisible, GDK_SELECTION_CLIPBOARD, gtk_get_current_event_time());
} else {
@@ -1973,7 +1966,6 @@ void
message_list_save_state (MessageList *ml)
{
save_tree_state (ml);
- save_hide_state (ml);
}
static void
@@ -1982,6 +1974,7 @@ message_list_setup_etree (MessageList *message_list, gboolean outgoing)
/* build the spec based on the folder, and possibly from a saved file */
/* otherwise, leave default */
if (message_list->folder) {
+ CamelStore *parent_store;
gchar *path;
gchar *name;
gint data = 1;
@@ -1992,7 +1985,8 @@ message_list_setup_etree (MessageList *message_list, gboolean outgoing)
g_object_set (message_list, "uniform_row_height", TRUE, NULL);
- name = camel_service_get_name (CAMEL_SERVICE (message_list->folder->parent_store), TRUE);
+ parent_store = camel_folder_get_parent_store (message_list->folder);
+ name = camel_service_get_name (CAMEL_SERVICE (parent_store), TRUE);
d(printf ("folder name is '%s'\n", name));
path = mail_config_folder_to_cachename (message_list->folder, "et-expanded-");
@@ -2040,14 +2034,22 @@ ml_selection_clear_event(GtkWidget *widget, GdkEventSelection *event, MessageLis
}
static void
-ml_selection_received(GtkWidget *widget, GtkSelectionData *data, guint time, MessageList *ml)
+ml_selection_received (GtkWidget *widget,
+ GtkSelectionData *selection_data,
+ guint time,
+ MessageList *ml)
{
- if (data->target != gdk_atom_intern ("x-uid-list", FALSE)) {
+ GdkAtom target;
+
+ target = gtk_selection_data_get_target (selection_data);
+
+ if (target != gdk_atom_intern ("x-uid-list", FALSE)) {
d(printf("Unknown selection received by message-list\n"));
return;
}
- em_utils_selection_get_uidlist(data, ml->folder, FALSE, NULL);
+ em_utils_selection_get_uidlist (
+ selection_data, ml->folder, FALSE, NULL);
}
static void
@@ -2096,10 +2098,14 @@ struct _drop_msg {
static gchar *
ml_drop_async_desc (struct _drop_msg *m)
{
+ const gchar *full_name;
+
+ full_name = camel_folder_get_full_name (m->folder);
+
if (m->move)
- return g_strdup_printf(_("Moving messages into folder %s"), m->folder->full_name);
+ return g_strdup_printf(_("Moving messages into folder %s"), full_name);
else
- return g_strdup_printf(_("Copying messages into folder %s"), m->folder->full_name);
+ return g_strdup_printf(_("Copying messages into folder %s"), full_name);
}
static void
@@ -2138,11 +2144,9 @@ ml_drop_async_done (struct _drop_msg *m)
static void
ml_drop_async_free (struct _drop_msg *m)
{
- g_object_unref(m->context);
- camel_object_unref(m->folder);
-
- g_free(m->selection->data);
- g_free(m->selection);
+ g_object_unref (m->context);
+ g_object_unref (m->folder);
+ gtk_selection_data_free (m->selection);
}
static MailMsgInfo ml_drop_async_info = {
@@ -2161,30 +2165,39 @@ ml_drop_action(struct _drop_msg *m)
}
static void
-ml_tree_drag_data_received (ETree *tree, gint row, ETreePath path, gint col,
- GdkDragContext *context, gint x, gint y,
- GtkSelectionData *data, guint info,
- guint time, MessageList *ml)
+ml_tree_drag_data_received (ETree *tree,
+ gint row,
+ ETreePath path,
+ gint col,
+ GdkDragContext *context,
+ gint x,
+ gint y,
+ GtkSelectionData *selection_data,
+ guint info,
+ guint time,
+ MessageList *ml)
{
struct _drop_msg *m;
- /* this means we are receiving no data */
- if (!ml->folder || data->data == NULL || data->length == -1)
+ if (ml->folder == NULL)
+ return;
+
+ if (gtk_selection_data_get_data (selection_data) == NULL)
+ return;
+
+ if (gtk_selection_data_get_length (selection_data) == -1)
return;
m = mail_msg_new(&ml_drop_async_info);
m->context = context;
g_object_ref(context);
m->folder = ml->folder;
- camel_object_ref(m->folder);
+ g_object_ref (m->folder);
m->action = context->action;
m->info = info;
/* need to copy, goes away once we exit */
- m->selection = g_malloc0(sizeof(*m->selection));
- m->selection->data = g_malloc(data->length);
- memcpy(m->selection->data, data->data, data->length);
- m->selection->length = data->length;
+ m->selection = gtk_selection_data_copy (selection_data);
ml_drop_action(m);
}
@@ -2306,16 +2319,9 @@ message_list_init (MessageList *message_list)
(GDestroyNotify) NULL,
(GDestroyNotify) e_poolv_destroy);
- message_list->hidden = NULL;
- message_list->hidden_pool = NULL;
- message_list->hide_before = ML_HIDE_NONE_START;
- message_list->hide_after = ML_HIDE_NONE_END;
-
message_list->search = NULL;
message_list->ensure_uid = NULL;
- message_list->hide_lock = g_mutex_new();
-
message_list->uid_nodemap = g_hash_table_new (g_str_hash, g_str_equal);
message_list->async_event = mail_async_event_new();
@@ -2370,8 +2376,9 @@ message_list_destroy(GtkObject *object)
message_list->uid_nodemap = NULL;
}
- camel_object_unhook_event(message_list->folder, "folder_changed", folder_changed, message_list);
- camel_object_unref (message_list->folder);
+ g_signal_handlers_disconnect_by_func (
+ message_list->folder, folder_changed, message_list);
+ g_object_unref (message_list->folder);
message_list->folder = NULL;
}
@@ -2492,19 +2499,11 @@ message_list_finalize (GObject *object)
if (message_list->thread_tree)
camel_folder_thread_messages_unref(message_list->thread_tree);
- if (message_list->hidden) {
- g_hash_table_destroy(message_list->hidden);
- e_mempool_destroy(message_list->hidden_pool);
- message_list->hidden = NULL;
- message_list->hidden_pool = NULL;
- }
-
g_free(message_list->search);
g_free(message_list->ensure_uid);
g_free(message_list->frozen_search);
g_free(message_list->cursor_uid);
- g_mutex_free(message_list->hide_lock);
g_mutex_free (message_list->regen_lock);
g_free(message_list->folder_uri);
@@ -2576,8 +2575,8 @@ message_list_class_init (MessageListClass *class)
PROP_SHELL_BACKEND,
g_param_spec_object (
"shell-backend",
- _("Shell Backend"),
- _("The mail shell backend"),
+ "Shell Backend",
+ "The mail shell backend",
E_TYPE_SHELL_BACKEND,
G_PARAM_READWRITE |
G_PARAM_CONSTRUCT_ONLY));
@@ -3534,22 +3533,25 @@ main_folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
}
static void
-folder_changed (CamelObject *o, gpointer event_data, gpointer user_data)
+folder_changed (CamelFolder *folder,
+ CamelFolderChangeInfo *info,
+ MessageList *ml)
{
CamelFolderChangeInfo *changes;
- MessageList *ml = MESSAGE_LIST (user_data);
if (ml->priv->destroyed)
return;
- if (event_data) {
+ if (info != NULL) {
changes = camel_folder_change_info_new();
- camel_folder_change_info_cat(changes, (CamelFolderChangeInfo *)event_data);
+ camel_folder_change_info_cat (changes, info);
} else {
changes = NULL;
}
- mail_async_event_emit(ml->async_event, MAIL_ASYNC_GUI, (MailAsyncFunc)main_folder_changed, o, changes, user_data);
+ mail_async_event_emit (
+ ml->async_event, MAIL_ASYNC_GUI, (MailAsyncFunc)
+ main_folder_changed, folder, changes, ml);
}
/**
@@ -3590,7 +3592,6 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const g
if (message_list->folder != NULL) {
save_tree_state (message_list);
- save_hide_state (message_list);
}
e_tree_memory_freeze(E_TREE_MEMORY(etm));
@@ -3604,9 +3605,9 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const g
}
if (message_list->folder) {
- camel_object_unhook_event((CamelObject *)message_list->folder, "folder_changed",
- folder_changed, message_list);
- camel_object_unref (message_list->folder);
+ g_signal_handlers_disconnect_by_func (
+ message_list->folder, folder_changed, message_list);
+ g_object_unref (message_list->folder);
message_list->folder = NULL;
}
@@ -3630,7 +3631,7 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const g
gint strikeout_col = -1;
ECell *cell;
- camel_object_ref (folder);
+ g_object_ref (folder);
message_list->folder = folder;
message_list->just_set_folder = TRUE;
@@ -3656,14 +3657,15 @@ message_list_set_folder (MessageList *message_list, CamelFolder *folder, const g
/* Build the etree suitable for this folder */
message_list_setup_etree (message_list, outgoing);
- camel_object_hook_event (folder, "folder_changed", folder_changed, message_list);
+ g_signal_connect (
+ folder, "changed",
+ G_CALLBACK (folder_changed), message_list);
gconf = mail_config_get_gconf_client ();
hide_deleted = !gconf_client_get_bool (gconf, "/apps/evolution/mail/display/show_deleted", NULL);
message_list->hidedeleted = hide_deleted && !(folder->folder_flags & CAMEL_FOLDER_IS_TRASH);
message_list->hidejunk = folder_store_supports_vjunk_folder (message_list->folder) && !(folder->folder_flags & CAMEL_FOLDER_IS_JUNK) && !(folder->folder_flags & CAMEL_FOLDER_IS_TRASH);
- load_hide_state (message_list);
if (message_list->frozen == 0)
mail_regen_list (message_list, message_list->search, NULL, NULL);
}
@@ -4005,229 +4007,6 @@ message_list_ensure_message (MessageList *ml, const gchar *uid)
ml->ensure_uid = g_strdup (uid);
}
-/* returns the number of messages displayable *after* expression hiding has taken place */
-guint
-message_list_length (MessageList *ml)
-{
- return ml->hide_unhidden;
-}
-
-struct _glibsuxcrap {
- guint count;
- CamelFolder *folder;
-};
-
-static void
-glib_crapback(gpointer key, gpointer data, gpointer x)
-{
- struct _glibsuxcrap *y = x;
- CamelMessageInfo *mi;
-
- if (y->count)
- return;
-
- mi = camel_folder_get_message_info(y->folder, key);
- if (mi) {
- y->count++;
- camel_folder_free_message_info(y->folder, mi);
- }
-}
-
-/* returns 0 or 1 depending if there are hidden messages */
-guint
-message_list_hidden(MessageList *ml)
-{
- guint hidden = 0;
-
- MESSAGE_LIST_LOCK (ml, hide_lock);
- if (ml->hidden && ml->folder) {
- /* this is a hack, should probably just maintain the hidden table better */
- struct _glibsuxcrap x = { 0, ml->folder };
- g_hash_table_foreach(ml->hidden, glib_crapback, &x);
- hidden = x.count;
- }
- MESSAGE_LIST_UNLOCK (ml, hide_lock);
-
- return hidden;
-}
-
-/* add a new expression to hide, or set the range.
- @expr: A new search expression - all matching messages will be hidden. May be %NULL.
- @lower: Use ML_HIDE_NONE_START to specify no messages hidden from the start of the list.
- @upper: Use ML_HIDE_NONE_END to specify no message hidden from the end of the list.
-
- For either @upper or @lower, use ML_HIDE_SAME, to keep the previously set hide range.
- If either range is negative, then the range is taken from the end of the available list
- of messages, once other hiding has been performed. Use message_list_length() to find out
- how many messages are available for hiding.
-
- Example: hide_add(ml, NULL, -100, ML_HIDE_NONE_END) -> hide all but the last (most recent)
- 100 messages.
-*/
-void
-message_list_hide_add (MessageList *ml, const gchar *expr, guint lower, guint upper)
-{
- MESSAGE_LIST_LOCK (ml, hide_lock);
-
- if (lower != ML_HIDE_SAME)
- ml->hide_before = lower;
- if (upper != ML_HIDE_SAME)
- ml->hide_after = upper;
-
- MESSAGE_LIST_UNLOCK (ml, hide_lock);
-
- mail_regen_list (ml, ml->search, expr, NULL);
-}
-
-/* hide specific uid's */
-void
-message_list_hide_uids (MessageList *ml, GPtrArray *uids)
-{
- gint i;
- gchar *uid;
-
- /* first see if we need to do any work, if so, then do it all at once */
- for (i = 0; i < uids->len; i++) {
- if (g_hash_table_lookup (ml->uid_nodemap, uids->pdata[i])) {
- MESSAGE_LIST_LOCK (ml, hide_lock);
- if (ml->hidden == NULL) {
- ml->hidden = g_hash_table_new (g_str_hash, g_str_equal);
- ml->hidden_pool = e_mempool_new (512, 256, E_MEMPOOL_ALIGN_BYTE);
- }
-
- uid = e_mempool_strdup (ml->hidden_pool, uids->pdata[i]);
- g_hash_table_insert (ml->hidden, uid, uid);
- for (; i < uids->len; i++) {
- if (g_hash_table_lookup (ml->uid_nodemap, uids->pdata[i])) {
- uid = e_mempool_strdup (ml->hidden_pool, uids->pdata[i]);
- g_hash_table_insert (ml->hidden, uid, uid);
- }
- }
- MESSAGE_LIST_UNLOCK (ml, hide_lock);
- /* save this here incase the user pops up another window, so they are consistent */
- save_hide_state(ml);
- if (ml->frozen == 0)
- mail_regen_list (ml, ml->search, NULL, NULL);
- break;
- }
- }
-}
-
-/* no longer hide any messages */
-void
-message_list_hide_clear (MessageList *ml)
-{
- MESSAGE_LIST_LOCK (ml, hide_lock);
- if (ml->hidden) {
- g_hash_table_destroy (ml->hidden);
- e_mempool_destroy (ml->hidden_pool);
- ml->hidden = NULL;
- ml->hidden_pool = NULL;
- }
- ml->hide_before = ML_HIDE_NONE_START;
- ml->hide_after = ML_HIDE_NONE_END;
- MESSAGE_LIST_UNLOCK (ml, hide_lock);
-
- if (ml->thread_tree) {
- camel_folder_thread_messages_unref(ml->thread_tree);
- ml->thread_tree = NULL;
- }
-
- /* save this here incase the user pops up another window, so they are consistent */
- save_hide_state(ml);
- if (ml->frozen == 0)
- mail_regen_list (ml, ml->search, NULL, NULL);
-}
-
-#define HIDE_STATE_VERSION (1)
-
-/* version 1 file is:
- uintf 1
- uintf hide_before
- uintf hide_after
- string* uids
-*/
-
-static void
-load_hide_state (MessageList *ml)
-{
- gchar *filename;
- FILE *in;
- gint32 version, lower, upper;
-
- MESSAGE_LIST_LOCK(ml, hide_lock);
- if (ml->hidden) {
- g_hash_table_destroy (ml->hidden);
- e_mempool_destroy (ml->hidden_pool);
- ml->hidden = NULL;
- ml->hidden_pool = NULL;
- }
- ml->hide_before = ML_HIDE_NONE_START;
- ml->hide_after = ML_HIDE_NONE_END;
-
- filename = mail_config_folder_to_cachename(ml->folder, "hidestate-");
- in = g_fopen(filename, "rb");
- if (in) {
- camel_file_util_decode_fixed_int32 (in, &version);
- if (version == HIDE_STATE_VERSION) {
- ml->hidden = g_hash_table_new(g_str_hash, g_str_equal);
- ml->hidden_pool = e_mempool_new(512, 256, E_MEMPOOL_ALIGN_BYTE);
- camel_file_util_decode_fixed_int32 (in, &lower);
- ml->hide_before = lower;
- camel_file_util_decode_fixed_int32 (in, &upper);
- ml->hide_after = upper;
- while (!feof(in)) {
- gchar *olduid, *uid;
-
- if (camel_file_util_decode_string (in, &olduid) != -1) {
- uid = e_mempool_strdup(ml->hidden_pool, olduid);
- g_free (olduid);
- g_hash_table_insert(ml->hidden, uid, uid);
- }
- }
- }
- fclose(in);
- }
- g_free(filename);
-
- MESSAGE_LIST_UNLOCK(ml, hide_lock);
-}
-
-static void
-hide_save_1 (gchar *uid, gchar *keydata, FILE *out)
-{
- camel_file_util_encode_string (out, uid);
-}
-
-/* save the hide state. Note that messages are hidden by uid, if the uid's change, then
- this will become invalid, but is easy to reset in the ui */
-static void
-save_hide_state (MessageList *ml)
-{
- gchar *filename;
- FILE *out;
-
- if (ml->folder == NULL)
- return;
-
- MESSAGE_LIST_LOCK(ml, hide_lock);
-
- filename = mail_config_folder_to_cachename(ml->folder, "hidestate-");
- if (ml->hidden == NULL && ml->hide_before == ML_HIDE_NONE_START && ml->hide_after == ML_HIDE_NONE_END) {
- g_unlink(filename);
- } else if ((out = g_fopen (filename, "wb"))) {
- camel_file_util_encode_fixed_int32 (out, HIDE_STATE_VERSION);
- camel_file_util_encode_fixed_int32 (out, ml->hide_before);
- camel_file_util_encode_fixed_int32 (out, ml->hide_after);
- if (ml->hidden)
- g_hash_table_foreach(ml->hidden, (GHFunc)hide_save_1, out);
- fclose(out);
- }
- g_free (filename);
-
- MESSAGE_LIST_UNLOCK(ml, hide_lock);
-}
-
struct sort_column_data {
ETableCol *col;
gboolean ascending;
@@ -4369,8 +4148,7 @@ ml_sort_uids_by_tree (MessageList *ml, GPtrArray *uids)
g_ptr_array_add (sort_data.sort_columns, data);
}
- if (uids->len - camel_folder_summary_cache_size (ml->folder->summary) > 50)
- camel_folder_summary_reload_from_db (ml->folder->summary, NULL);
+ camel_folder_summary_prepare_fetch_all (ml->folder->summary, NULL);
for (i = 0; i < uids->len; i++) {
gchar *uid;
@@ -4437,7 +4215,7 @@ regen_list_desc (struct _regen_list_msg *m)
static void
regen_list_exec (struct _regen_list_msg *m)
{
- GPtrArray *uids, *uidnew, *showuids, *searchuids = NULL;
+ GPtrArray *uids, *searchuids = NULL;
CamelMessageInfo *info;
ETreePath cursor;
ETree *tree;
@@ -4530,122 +4308,33 @@ regen_list_exec (struct _regen_list_msg *m)
if (camel_exception_is_set (&m->base.ex))
return;
- /* perform hiding */
- if (m->hideexpr && camel_folder_has_search_capability(m->folder)) {
- uidnew = camel_folder_search_by_expression (m->ml->folder, m->hideexpr, &m->base.ex);
- /* well, lets not abort just because this faileld ... */
- camel_exception_clear (&m->base.ex);
-
- if (uidnew) {
- MESSAGE_LIST_LOCK(m->ml, hide_lock);
-
- if (m->ml->hidden == NULL) {
- m->ml->hidden = g_hash_table_new (g_str_hash, g_str_equal);
- m->ml->hidden_pool = e_mempool_new (512, 256, E_MEMPOOL_ALIGN_BYTE);
- }
-
- for (i = 0; i < uidnew->len; i++) {
- if (g_hash_table_lookup (m->ml->hidden, uidnew->pdata[i]) == NULL) {
- gchar *uid = e_mempool_strdup (m->ml->hidden_pool, uidnew->pdata[i]);
- g_hash_table_insert (m->ml->hidden, uid, uid);
- }
- }
-
- MESSAGE_LIST_UNLOCK(m->ml, hide_lock);
-
- camel_folder_search_free (m->ml->folder, uidnew);
- }
- }
-
- MESSAGE_LIST_LOCK(m->ml, hide_lock);
-
- m->ml->hide_unhidden = uids->len;
-
- /* what semantics do we want from hide_before, hide_after?
- probably <0 means measure from the end of the list */
-
- /* perform uid hiding */
- if (m->ml->hidden || m->ml->hide_before != ML_HIDE_NONE_START || m->ml->hide_after != ML_HIDE_NONE_END) {
- gint start, end;
- uidnew = g_ptr_array_new ();
-
- /* first, hide matches */
- if (m->ml->hidden) {
- gint subtr = 0;
-
- for (i = 0; i < uids->len; i++) {
- if (g_hash_table_lookup (m->ml->hidden, uids->pdata[i]) == NULL)
- g_ptr_array_add (uidnew, uids->pdata[i]);
- else if (m->last_row >= 0) {
- /* if we are going to hide message above last selected row, then we should
- decrease our last row number, to put cursor on a proper place. */
- ETreePath node = g_hash_table_lookup (m->ml->uid_nodemap, (const gchar *) uids->pdata[i]);
-
- if (node && m->last_row > e_tree_table_adapter_row_of_node (e_tree_get_table_adapter (tree), node))
- subtr ++;
- }
- }
-
- m->last_row -= subtr;
- }
-
- /* then calculate the subrange visible and chop it out */
- m->ml->hide_unhidden = uidnew->len;
-
- if (m->ml->hide_before != ML_HIDE_NONE_START || m->ml->hide_after != ML_HIDE_NONE_END) {
- GPtrArray *uid2 = g_ptr_array_new ();
-
- start = m->ml->hide_before;
- if (start < 0)
- start += m->ml->hide_unhidden;
- end = m->ml->hide_after;
- if (end < 0)
- end += m->ml->hide_unhidden;
-
- start = MAX(start, 0);
- end = MIN(end, uidnew->len);
- for (i = start; i < end; i++) {
- g_ptr_array_add (uid2, uidnew->pdata[i]);
- }
-
- g_ptr_array_free (uidnew, TRUE);
- uidnew = uid2;
- }
- showuids = uidnew;
- } else {
- uidnew = NULL;
- showuids = uids;
- }
-
- MESSAGE_LIST_UNLOCK(m->ml, hide_lock);
-
e_profile_event_emit("list.threaduids", m->folder->full_name, 0);
- /* camel_folder_summary_reload_from_db (m->folder->summary, NULL); */
+ /* camel_folder_summary_prepare_fetch_all (m->folder->summary, NULL); */
if (!camel_operation_cancel_check(m->base.cancel)) {
/* update/build a new tree */
if (m->dotree) {
- ml_sort_uids_by_tree (m->ml, showuids);
+ ml_sort_uids_by_tree (m->ml, uids);
if (m->tree)
- camel_folder_thread_messages_apply (m->tree, showuids);
+ camel_folder_thread_messages_apply (m->tree, uids);
else
- m->tree = camel_folder_thread_messages_new (m->folder, showuids, m->thread_subject);
+ m->tree = camel_folder_thread_messages_new (m->folder, uids, m->thread_subject);
} else {
- camel_folder_sort_uids (m->ml->folder, showuids);
+ CamelException ex;
+
+ camel_folder_sort_uids (m->ml->folder, uids);
m->summary = g_ptr_array_new ();
- if (showuids->len > camel_folder_summary_cache_size (m->folder->summary) ) {
- CamelException ex;
- camel_exception_init (&ex);
- camel_folder_summary_reload_from_db (m->folder->summary, &ex);
- if (camel_exception_is_set (&ex)) {
- g_warning ("Exception while reloading: %s\n", camel_exception_get_description (&ex));
- camel_exception_clear (&ex);
- }
+ camel_exception_init (&ex);
+ camel_folder_summary_prepare_fetch_all (m->folder->summary, &ex);
+ if (camel_exception_is_set (&ex)) {
+ g_warning ("Exception while reloading: %s\n", camel_exception_get_description (&ex));
+ camel_exception_clear (&ex);
}
- for (i = 0; i < showuids->len; i++) {
- info = camel_folder_get_message_info (m->folder, showuids->pdata[i]);
+
+ for (i = 0; i < uids->len; i++) {
+ info = camel_folder_get_message_info (m->folder, uids->pdata[i]);
if (info)
g_ptr_array_add(m->summary, info);
}
@@ -4654,9 +4343,6 @@ regen_list_exec (struct _regen_list_msg *m)
m->complete = TRUE;
}
- if (uidnew)
- g_ptr_array_free (uidnew, TRUE);
-
if (searchuids)
camel_folder_search_free (m->folder, searchuids);
else
@@ -4752,17 +4438,11 @@ regen_list_done (struct _regen_list_msg *m)
}
}
-#if GTK_CHECK_VERSION(2,19,7)
if (gtk_widget_get_visible (GTK_WIDGET (m->ml))) {
-#else
- if (GTK_WIDGET_VISIBLE (GTK_WIDGET (m->ml))) {
-#endif
- if (message_list_length (m->ml) <= 0) {
+ if (e_tree_row_count (E_TREE (m->ml)) <= 0) {
/* space is used to indicate no search too */
if (m->ml->search && *m->ml->search && strcmp (m->ml->search, " ") != 0)
e_tree_set_info_message (tree, _("No message satisfies your search criteria. Either clear search with Search->Clear menu item or change it."));
- else if (m->ml->hidden)
- e_tree_set_info_message (tree, _("There are only hidden messages in this folder. Use View->Show Hidden Messages to show them."));
else
e_tree_set_info_message (tree, _("There are no messages in this folder."));
} else
@@ -4794,7 +4474,7 @@ regen_list_free (struct _regen_list_msg *m)
g_free (m->search);
g_free (m->hideexpr);
- camel_object_unref (m->folder);
+ g_object_unref (m->folder);
if (m->changes)
camel_folder_change_info_free (m->changes);
@@ -4908,8 +4588,7 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca
m->hidedel = ml->hidedeleted;
m->hidejunk = ml->hidejunk;
m->thread_subject = gconf_client_get_bool (gconf, "/apps/evolution/mail/display/thread_subject", NULL);
- m->folder = ml->folder;
- camel_object_ref(m->folder);
+ m->folder = g_object_ref (ml->folder);
m->last_row = -1;
m->expand_state = NULL;
@@ -4921,12 +4600,8 @@ mail_regen_list (MessageList *ml, const gchar *search, const gchar *hideexpr, Ca
camel_folder_thread_messages_ref(m->tree);
}
- if (message_list_length (ml) <= 0) {
-#if GTK_CHECK_VERSION(2,19,7)
+ if (e_tree_row_count (E_TREE (ml)) <= 0) {
if (gtk_widget_get_visible (GTK_WIDGET (ml))) {
-#else
- if (GTK_WIDGET_VISIBLE (GTK_WIDGET (ml))) {
-#endif
/* there is some info why the message list is empty, let it be something useful */
gchar *txt = g_strconcat (_("Generating message list"), "..." , NULL);
diff --git a/mail/message-list.h b/mail/message-list.h
index 4b7e4da1dc..0b46e8ecd7 100644
--- a/mail/message-list.h
+++ b/mail/message-list.h
@@ -24,11 +24,9 @@
#define _MESSAGE_LIST_H_
#include <gtk/gtk.h>
-#include <camel/camel-folder-thread.h>
+#include <camel/camel.h>
#include <table/e-tree.h>
-
-#include <camel/camel-folder.h>
#include <shell/e-shell-backend.h>
G_BEGIN_DECLS
@@ -79,11 +77,6 @@ enum {
#define MESSAGE_LIST_COLUMN_IS_ACTIVE(col) (col == COL_MESSAGE_STATUS || \
col == COL_FLAGGED)
-#define ML_HIDE_NONE_START (0)
-#define ML_HIDE_NONE_END (2147483647)
-/* dont change */
-#define ML_HIDE_SAME (2147483646)
-
typedef struct _MessageList MessageList;
typedef struct _MessageListClass MessageListClass;
typedef struct _MessageListPrivate MessageListPrivate;
@@ -106,13 +99,6 @@ struct _MessageList {
GHashTable *normalised_hash;
- /* UID's to hide. Keys in the mempool */
- /* IMPORTANT: You MUST have obtained the hide lock, to operate on this data */
- GHashTable *hidden;
- struct _EMemPool *hidden_pool;
- gint hide_unhidden; /* total length, before hiding */
- gint hide_before, hide_after; /* hide ranges of messages */
-
/* Current search string, or %NULL */
gchar *search;
@@ -147,9 +133,6 @@ struct _MessageList {
/* Row-selection and seen-marking timers */
guint idle_id, seen_id;
- /* locks */
- GMutex *hide_lock; /* for any 'hide' info above */
-
/* list of outstanding regeneration requests */
GList *regen;
GMutex *regen_lock; /* when writing to the regen, guard with this lock too */
@@ -217,16 +200,7 @@ void message_list_invert_selection (MessageList *message_list);
void message_list_copy (MessageList *message_list,
gboolean cut);
void message_list_paste (MessageList *message_list);
-guint message_list_length (MessageList *message_list);
guint message_list_count (MessageList *message_list);
-guint message_list_hidden (MessageList *message_list);
-void message_list_hide_add (MessageList *message_list,
- const gchar *expr,
- guint lower,
- guint upper);
-void message_list_hide_uids (MessageList *message_list,
- GPtrArray *uids);
-void message_list_hide_clear (MessageList *message_list);
void message_list_set_threaded (MessageList *message_list,
gboolean threaded);
void message_list_set_threaded_expand_all