2001-03-29 Kjartan Maraas <kmaraas@gnome.org>
* *.*: Cleaned up #includes. Remove unneccesary includes of
<gnome.h>, <gtk/gtk.h>, <bonobo.h> and replaced with more
fine grained headers where needed. Also marked a bunch of
strings for translations and added some missing prototypes.
svn path=/trunk/; revision=9025
* 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.
svn path=/trunk/; revision=8944
2001-03-26 Radek Doulik <rodo@ximian.com>
* mail-format.c (write_address): clear name and email data after
each address
svn path=/trunk/; revision=8936
2001-03-23 Jon Trowbridge <trow@ximian.com>
* gui/widgets/e-minicard-widget.c (e_minicard_widget_set_card):
Added. Call me old-fashioned, but I just prefer to have a real
API rather than doing everything via gtk_object_get/set-type
calls.
(e_minicard_widget_set_arg): Changed to call
e_minicard_widget_set_card.
* backend/ebook/e-book-util.c: Small changes to get rid of
compiler warnings. (Casting out const, removed unused variables,
etc.) Removed some debugging messages.
* gui/component/addressbook-factory.c (main): Added call
to e_address_popup_factory_init.
* gui/component/e-address-popup.c: Added. A popup gadget that is
invoked (as a bonobo control) when an address is left-clicked in
the mailer. The addressbook is queries, and the address is either
displayed as a minicard (if it already exists) or in a "generic
format". A button is provided for editting/adding the contact.
Some of the semantics of this widget are a bit... non-standard,
because of bonobo issues. I can't really seem to replicate
popup-menu behavior because of how bonobo propogates events, etc.
so I've tried to produce something that I think is non-annoying.
YMMV.
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 Jon Trowbridge <trow@ximian.com>
* camel-filter-driver.c (camel_filter_driver_filter_message):
Don't call camel_mime_message_set_identity. (The call is
commented out, left over from some earlier experimentation that I
want to be able to remember later...)
* camel-mime-message.c (camel_mime_message_set_identity): Added.
A function to set the X-Evolution-Identity header.
svn path=/trunk/; revision=8916
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
* 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 ;-)
svn path=/trunk/; revision=8896
* 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.
svn path=/trunk/; revision=8873
2001-03-08 Jon Trowbridge <trow@ximian.com>
* gui/component/select-names/e-select-names-popup.c
(quick_add_cb): Switched to use e_contact_quick_add_free_form.
Removed debugging code, hopefully without introducing any bugs
in the process.
* gui/component/select-names/e-select-names-text-model.c
(e_select_names_text_model_insert_length): Fix bug with commas
inside of name/address combos. As long as the comma is inside of
quotes, it will be treated as part of the name rather than as a
break between addresses.
* gui/component/select-names/e-select-names-completion.c
(match_nickname): Use e_card_name_to_string for nickname match
strings.
(match_email): Use e_card_name_to_string for email match strings.
(e_select_names_completion_begin): Strip quotes out of query text,
so we don't produce malformed sexps.
Added William Blake quote easter egg.
* contact-editor/e-contact-quick-add.c: Further attempts to fix...
mostly unsuccessful.
(e_contact_quick_add_free_form): Added. Takes a single string
and tries to parse out (using some simple, loose rules) the
name and e-mail -- then calls e_contact_quick_add. An attempt to
get the computer to automatically Do The Right Thing.
* backend/ebook/e-book.c: Fixed some broken indentation. Yes, I'm
anal.
* gui/component/GNOME_Evolution_Addressbook.oafinfo: Added oaf_server
info for EAddressWidget.
* gui/component/GNOME_Evolution_Addressbook.oaf.in: Added oaf_server
info for EAddressWidget.
* gui/component/addressbook-factory.c (main): Add call to
e_address_widget_factory_init.
* gui/component/e-address-widget.h:
* gui/component/e-address-widget.c: Added. A little widget (and a
Bonobo control, BTW) for displaying addresses, with a left-click
menu. Used to display addresses in the mail viewer (as embedded
GtkHTML objects, replacing the text previously used). Still quite
incomplete.
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.
svn path=/trunk/; revision=8607
2001-02-22 Jeffrey Stedfast <fejj@ximian.com>
* openpgp-utils.c (openpgp_verify): Fixed memory corruption bug.
* mail-format.c (try_inline_pgp_sig): Check to make sure the
validity isn't NULL.
(handle_multipart_signed): Check for NULL validities.
2001-02-21 Jeffrey Stedfast <fejj@ximian.com>
* mail-tools.c (mail_tool_uri_to_folder): Protect against NULL
uri's.
* mail-vtrash.c: Do mutex locking on the global hash table - this
should clear up some segfaults ;-)
* mail-config-druid.c (druid_finish): Set the 'enabled' member of
the source to TRUE if the URL exists else set to FALSE.
(incoming_type_changed): If the provider chosen is "None" then
gray-out the auto-check widgets and the check-settings, otherwise
sensitize them.
* mail-account-editor.c (construct): Added a few more settings.
(apply_changes): Save the new settings.
* mail-config.c (service_copy): Updated.
(config_read): Read in whether or not the account is enabled.
(mail_config_write): Save if the account is enabled or not.
svn path=/trunk/; revision=8349
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.
svn path=/trunk/; revision=8320
2001-02-08 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (mail_generate_reply): New location for this
function.
* mail-format.c: Removed mail_generate_reply as it's ONLY ever
used in mail-callbacks.c.
* mail-ops.c (fetch_mail_fetch): Reworked some keep-mail-on-server
logic so that we ALWAYS look for a cached array of UIDs that we
may have downloaded previously so as not to download them again
even if we will be deleting them off the server. This fixes bug
#1344.
svn path=/trunk/; revision=8137
* mail-format.c (mail_content_loaded): Check if a message part's
content is available, and if it's not, queue a thread that will
load it and then queue an idle-handler redisplay of the message.
(call_handler_function): Call mail_content_loaded() on the part
and don't try to display it if it's currently offline.
(get_data_wrapper_text): Simplify a bit
* mail-display.c (mail_display_queue_redisplay): rename and make
non-static.
(mail_display_redisplay): Use a "new and improved" way of
preserving the GtkHTML scroll location. ("new and improved" is
code for "gross and hackish", but there should be a real interface
for this eventually.)
(on_url_requested): Use mail_content_loaded() and don't write out
offline cid: URLs
* mail-identify.c (mail_identify_mime_part): Use
mail_content_loaded and don't try to identify the data if it's
offline.
svn path=/trunk/; revision=7813
2001-01-22 Jeffrey Stedfast <fejj@ximian.com>
* mail-format.c (handle_multipart_signed): Just wrote a temp way
of reporting success/fail of PGP/MIME signature verification
status.
svn path=/trunk/; revision=7735
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.
svn path=/trunk/; revision=7724
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 ;-)
svn path=/trunk/; revision=7697
2001-01-19 Jeffrey Stedfast <fejj@ximian.com>
* mail-format.c (mail_generate_reply): If the name is empty
string, use the address.
svn path=/trunk/; revision=7663
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.
svn path=/trunk/; revision=7320
2001-01-07 Jeffrey Stedfast <fejj@helixcode.com>
* mail-tools.c (mail_tool_quote_message): Updated to reflect
changes to the mail-config API.
* mail-display.c (redisplay): Updated to reflect changes to the
mail-config API.
* mail-callbacks.c (providers_config): Use the new account dialog.
* mail-config-druid.c (druid_finish): Load the new storage into
the shell.
(mail_config_druid_new): Take a shell argument.
* mail-format.c (mail_generate_reply): Updated to reflect changes
to the mail-config API.
* mail-config-druid.c: Fixed this to build.
* mail-callbacks.c (check_send_configuration): Updated to reflect
changes to the mail-config API.
(create_msg_composer): Same.
(forward_get_composer): Same.
(send_queued_mail): Same.
(composer_send_cb): Same.
* mail-account-editor.c: Updated to build cleanly. *
mail-config-druid.c: Same. * mail-accounts.c: Same.
* folder-browser-factory.c (control_activate): Updated for API
changes in mail-config.
* folder-browser.c (done_message_selected): Updated for API
changed in mail-config.
(folder_browser_gui_init): Same.
(got_folder): Same.
* component-factory.c (owner_set_cb): After using the sources
list, free it as it is no longer a const GSList as with the older
mail-config code.
* mail-config.c: Totally rewritten.
svn path=/trunk/; revision=7298
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
svn path=/trunk/; revision=7231
* 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.
svn path=/trunk/; revision=7189
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.
svn path=/trunk/; revision=7074
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.
svn path=/trunk/; revision=7056
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.
svn path=/trunk/; revision=6921
2000-12-05 Jeffrey Stedfast <fejj@helixcode.com>
* 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.
svn path=/trunk/; revision=6798
2000-11-21 Jeffrey Stedfast <fejj@helixcode.com>
* mail-config.c (mail_config_view_source): New function to return
if user wants to view message source.
(mail_config_set_view_source): New function to set whether the
view wants to view source.
* mail-ops.c (mail_do_view_message_sources): Removed. We're not
gonna view-source this way anymore.
* folder-browser-factory.c: Removed the ViewSource bonobo verb
from the Message menu.
(control_activate): Added ViewSource.
* folder-browser.c (on_right_click): Removed Message menu item to
view message source.
(folder_browser_toggle_view_source): New callback to set whether
or not the MailDisplay shows the raw message or the pretty-ified
message.
* mail-callbacks.c: Removed view_source.
* mail-display.c (redisplay): If toggle_raw is set then display
the raw message else display the pretty formatted message.
(mail_display_redisplay): New function to force the redisplay of a
message.
* mail-format.c (mail_format_raw_message): New function to
write the raw message data.
svn path=/trunk/; revision=6639
2000-11-17 Jeffrey Stedfast <fejj@helixcode.com>
* mail-format.c (mail_generate_reply): Use the new quote_message
function and make it start with "On %s, %s wrote:" since people
seem to want that.
* mail-ops.c (cleanup_forward_messages): Use the new quote_message
function.
* mail-tools.c (mail_tool_quote_message): New convenience function
to quote a message body (since both the reply and forward code do
similar quoting)
svn path=/trunk/; revision=6605
2000-11-07 Not Zed <NotZed@HelixCode.com>
* mail-display.c (on_object_requested): God, I sure wish people
would listen when i'm saying i'm changing and API. I mean
I even mailed everyone and everything. Can't see any changelog
either.
2000-11-06 Not Zed <NotZed@HelixCode.com>
* mail-autofilter.c (rule_from_message): Updates for api changes.
* mail-tools.c (mail_tool_generate_forward_subject): Fixed for api
changes. Sigh, whoever wrote the multithread code of the mailer,
had little idea. You can't just lock for getting a const value,
until you are finished with it, cause the owner still owns it.
Fixed this too. Yuck, what a horrid forwarding format, can we
change this, or make it configurable? The mail headers show who
forwarded it, we dont need to duplicate it in that UGLY subject.
* mail-format.c (write_field_to_stream): Removed some jeffness.
dont g_strdup stuff we dont need to, and remove the
value_is_encoded thing since we can get the unencoded address
now.
(write_address): New function to write an address field.
(write_headers): Uses write_address to write addresses, cleaner,
fixed the god-awful unreadable indenting too.
(handle_text_plain): Use a 'smarter' printf format, so we dont
need to allocate and copy substrings unecessarily (esp since
they're about to be allocated any copied another few times
anyway *sigh*).
(write_field_to_stream): Commented out the isprint check, which
afaik serves no purpose.
(list_add_addresses): New function to build a list of
display-ready addresses. Although I think the composer then uses
these as internet-ready addresses. It should probably take a list
of CamelAddress's if thats what it wants.
(mail_generate_reply): Cleaned up the address list creation stuff
a heap, and fixes for camel api changes. Also fixed a small
memory leak as a side effect (fulladdr wasn't freed if it was the
same as the sender).
* mail-display.c (on_object_requested): Changed for interface
changes to the from address. I think passing the encoded
(internet version) of the address is right here.
svn path=/trunk/; revision=6475
2000-11-03 Jeffrey Stedfast <fejj@helixcode.com>
* Makefile.am: Added new header files.
* component-factory.c (owner_set_cb):
s/session_init/mail_session_init
* session.c: Renamed public functions to mail_session_*.
FIXME: Rename session.c to mail-session.c
* folder-browser-factory.c: #include "mail-callbacks.h", #include
"mail-session.h" and replace forget_passwords with
mail_session_forget_passwords
* mail.h: Move session prototypes to mail-session.h, Move
mail-crypto prototypes to mail-crypto.h, Move mail-callback
prototypes to mail-callbacks.h
* mail-session.h: New header file containing public prototypes
for session.c
* mail-format.c: #include "mail-crypto.h"
* mail-view.c:
* folder-browser.c: #include "mail-callbacks.h"
* mail-crypto.h: New header file containing public prototypes
for mail-crypto.c
* mail-callbacks.h: New header file containing public prototypes
for mail-callbacks.c
* message-list.c (message_list_get_layout): Set useful defaults.
(message_list_setup_etable): Don't set the Outbox defaults on a
folder just because it doesn't have a corresponding saved file.
svn path=/trunk/; revision=6372
2000-11-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.
svn path=/trunk/; revision=6337
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 bodt text doesn't end with a
\n, a random char will appear otherwise).
svn path=/trunk/; revision=6306
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.
svn path=/trunk/; revision=6026
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).
svn path=/trunk/; revision=5955
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.
svn path=/trunk/; revision=5829
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.
svn path=/trunk/; revision=5798
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.
svn path=/trunk/; revision=5759
2000-09-29 Miguel de Icaza <miguel@helixcode.com>
* folder-browser-factory.c: Add print preview verb here.
* mail-callbacks.c (do_mail_print): Handle printing here, the
complete engine.
(mail_print_preview_msg): new. does print previewing.
(mail_print_msg): does printing of the message.
svn path=/trunk/; revision=5641