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.
svn path=/trunk/; revision=7205
* 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
Still does the same swap thumbnails around problem it had last time.
As the code is totally different, I'm guessing it's a bug in GtkHTML.
But its probably not.
svn path=/trunk/; revision=7183
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.
svn path=/trunk/; revision=7181
* subscribe-dialog.c (setup_subscribe_folder): Use info->name, not
input->full_name. Fixes#1029 in bugzilla.helixcode.com.
svn path=/trunk/; revision=7180
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.
svn path=/trunk/; revision=7160
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.
svn path=/trunk/; revision=7157
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.
svn path=/trunk/; revision=7140
2000-12-23 Christopher James Lahey <clahey@helixcode.com>
* message-list.c (message_list_get_layout): Added titles to the
pixbuf columns.
svn path=/trunk/; revision=7139
* 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...
svn path=/trunk/; revision=7118
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-18 Miguel de Icaza <miguel@helixcode.com>
* mail-tools.c (mail_tool_move_folder_contents): Only update
display every 2 seconds.
* mail-ops.c (do_view_messages): Only update display every 2 seconds.
svn path=/trunk/; revision=7066
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.
svn path=/trunk/; revision=7061
* subscribe-dialog.c (folder_toggle_cb): Update this for the new
signal handler prototype. Fixes the crash on double-click.
svn path=/trunk/; revision=7059
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-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.
svn path=/trunk/; revision=7035
2000-12-14 Christopher James Lahey <clahey@helixcode.com>
* mail-threads.c (update_active_views): Unref the iterator when
we're done with it.
svn path=/trunk/; revision=7029
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.
svn path=/trunk/; revision=7022
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.
svn path=/trunk/; revision=6983
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.
svn path=/trunk/; revision=6956
* 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.)
svn path=/trunk/; revision=6924
* 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.
svn path=/trunk/; revision=6923
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
* 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...)
(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_&/
svn path=/trunk/; revision=6908
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.
svn path=/trunk/; revision=6898
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.)
svn path=/trunk/; revision=6893
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).
svn path=/trunk/; revision=6882
2000-12-08 JP Rosevear <jpr@helixcode.com>
* folder-browser.c (on_double_click): the e-table double-click
signal now has extra params
svn path=/trunk/; revision=6880
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.
svn path=/trunk/; revision=6876