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
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.
svn path=/trunk/; revision=6873
2000-12-08 Christopher James Lahey <clahey@helixcode.com>
* message-list.c: Connect to signals on the ETable instead of the
ETableScrolled.
svn path=/trunk/; revision=6871
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.
svn path=/trunk/; revision=6852
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.
svn path=/trunk/; revision=6851
* 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.
svn path=/trunk/; revision=6845
* 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.
svn path=/trunk/; revision=6840
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.
svn path=/trunk/; revision=6830
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.
svn path=/trunk/; revision=6827
* 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.
svn path=/trunk/; revision=6813
* 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.
svn path=/trunk/; revision=6812
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.
svn path=/trunk/; revision=6803
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
* 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.
svn path=/trunk/; revision=6796
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.
svn path=/trunk/; revision=6783
2000-12-04 Michael Meeks <michael@helixcode.com>
* e-shell-view.c (get_control_for_uri): return NULL if we can't
create a view.
(setup_evolution_shell_view_interface): add precondition.
+
lots of cleans.
svn path=/trunk/; revision=6778
* 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.
svn path=/trunk/; revision=6760
* 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.
svn path=/trunk/; revision=6759
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.
svn path=/trunk/; revision=6745
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.
svn path=/trunk/; revision=6732
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.
svn path=/trunk/; revision=6728
2000-11-29 Jeffrey Stedfast <fejj@helixcode.com>
* 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.
svn path=/trunk/; revision=6724