2002-07-10 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=17413
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.
svn path=/trunk/; revision=17387
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.
svn path=/trunk/; revision=17329
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.
svn path=/trunk/; revision=17113
2002-05-20 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (mail_display_render): Fixed the "Overdue:"
string to not contain any HTML tags.
svn path=/trunk/; revision=16950
2002-05-10 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=16756
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.
svn path=/trunk/; revision=16640
2002-04-29 Larry Ewing <lewing@ximian.com>
* 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.
svn path=/trunk/; revision=16625
2002-04-19 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=16544
2002-04-17 Christopher James Lahey <clahey@ximian.com>
* configure.in: Bumped required gal version number to 0.19.99.11.
From addressbook/ChangeLog:
2002-04-17 Christopher James Lahey <clahey@ximian.com>
* gui/component/select-names/e-select-names.c
(e_select_names_create_categories): Changed this to use
ECategoriesMasterListOptionMenu.
* gui/component/select-names/e-select-names.c
(section_right_click_cb),
gui/widgets/e-addressbook-reflow-adapter.c,
gui/widgets/e-addressbook-view.c: Updated these to match the new
EPopupMenu.
From calendar/ChangeLog:
2002-04-17 Christopher James Lahey <clahey@ximian.com>
* gui/e-calendar-table.c, gui/e-day-view.c, gui/e-week-view.c,
gui/dialogs/meeting-page.c: Updated these to match the new
EPopupMenu.
From mail/ChangeLog:
2002-04-17 Christopher James Lahey <clahey@ximian.com>
* folder-browser.c, mail-display.c: Updated these to match the new
EPopupMenu.
From shell/ChangeLog:
2002-04-17 Christopher James Lahey <clahey@ximian.com>
* e-activity-handler.c: Updated this to match the new EPopupMenu.
svn path=/trunk/; revision=16498
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
svn path=/trunk/; revision=16334
* 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
svn path=/trunk/; revision=16261
2002-03-19 Larry Ewing <lewing@ximian.com>
* mail-display.c: add missing NULL closure data to popup menu
initialization.
svn path=/trunk/; revision=16212
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.
svn path=/trunk/; revision=16186
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.
svn path=/trunk/; revision=16181
* component-factory.c (add_storage): Update for storage changes:
explicitly create a root folder.
* 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.
svn path=/trunk/; revision=15967
2002-03-04 Jeffrey Stedfast <fejj@ximian.com>
* 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?
svn path=/trunk/; revision=15910
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).
svn path=/trunk/; revision=15850
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.
svn path=/trunk/; revision=15837
2002-02-15 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=15747
2002-02-14 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=15728
2002-01-25 Jeffrey Stedfast <fejj@ximian.com>
* 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
svn path=/trunk/; revision=15474
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.
svn path=/trunk/; revision=15329
2001-12-14 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=15076
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.
svn path=/trunk/; revision=14997
2001-12-11 Jon Trowbridge <trow@ximian.com>
* 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.
svn path=/trunk/; revision=14981
* 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.
* 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().
svn path=/trunk/; revision=14950
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.
svn path=/trunk/; revision=14938
2001-11-25 Not Zed <NotZed@Ximian.com>
* mail-config.c (config_read): Enable news accounts that exist
always, since no gui for it.
2001-11-20 Jeffrey Stedfast <fejj@ximian.com>
* message-list.c (message_list_select): 'n' shouldn't wrap if 'p'
doesn't.
* mail-format.c (format_mime_part): Make sure the mime-type is
non-NULL before passing it off to mail_lookup_handler().
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.
svn path=/trunk/; revision=14796
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.
svn path=/trunk/; revision=14590
* 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.
svn path=/trunk/; revision=14564
* mail-format.c (handle_multipart_signed): add some debug spew re
13839.
* mail-display.c (on_object_requested): here too
svn path=/trunk/; revision=14404
* 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)
svn path=/trunk/; revision=14172
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.
svn path=/trunk/; revision=13966
2001-10-22 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=13925
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!
svn path=/trunk/; revision=13911
* 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.
svn path=/trunk/; revision=13888
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.
svn path=/trunk/; revision=13862
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.
svn path=/trunk/; revision=13856
2001-10-12 Jeffrey Stedfast <fejj@ximian.com>
* mail-display.c (mail_error_write): Convert URLS so we can get
clickable links.
svn path=/trunk/; revision=13628