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.
svn path=/trunk/; revision=14499
2001-10-30 <NotZed@Ximian.com>
* 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.
svn path=/trunk/; revision=14482
2001-10-30 <NotZed@Ximian.com>
* 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.
svn path=/trunk/; revision=14470
2001-10-30 <NotZed@Ximian.com>
* 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.
svn path=/trunk/; revision=14449
2001-10-30 <NotZed@Ximian.com>
* mail-local.c (mls_rename_folder): Oops, dont use the url storage
path to offset the folder name we're renaming/opening, etc.
svn path=/trunk/; revision=14431
2001-10-30 <NotZed@Ximian.com>
* 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.
svn path=/trunk/; revision=14412
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.
svn path=/trunk/; revision=14410
* 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
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.
svn path=/trunk/; revision=14372
* 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.
svn path=/trunk/; revision=14370
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.
svn path=/trunk/; revision=14328
2001-10-29 <NotZed@Ximian.com>
* 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.
svn path=/trunk/; revision=14323
2001-10-28 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=14313
2001-10-28 Jeffrey Stedfast <fejj@ximian.com>
* 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.
svn path=/trunk/; revision=14310
2001-10-28 <NotZed@Ximian.com>
* mail-local.c (mlf_rename): add the folder name to the path when
passing down to the subordinate folder.
svn path=/trunk/; revision=14295
2001-10-28 <NotZed@Ximian.com>
* 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.
(real_flush_updates): Also rename and delete uri's from filters.
(mls_delete_folder): Unref the store when done.
(mls_rename_folder): Fix implementation, shell already created
destination folder, so we can't just rename :(
(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.
svn path=/trunk/; revision=14291
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.
* 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.
* 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.
svn path=/trunk/; revision=14276
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.
svn path=/trunk/; revision=14240
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.
svn path=/trunk/; revision=14205
* 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-25 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (providers_config): Set the GdkWindow of the
FolderBrowser, not the GtkWindow...
svn path=/trunk/; revision=14148
2001-10-26 <NotZed@Ximian.com>
* 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.
svn path=/trunk/; revision=14121
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): Chagned 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.
svn path=/trunk/; revision=14101
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.
svn path=/trunk/; revision=14085
2001-10-24 Jeffrey Stedfast <fejj@ximian.com>
* mail-format.c (mail_get_message_body): Fix to not always return
NULL for html parts, doh!.
svn path=/trunk/; revision=14081
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.
svn path=/trunk/; revision=13988
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.
svn path=/trunk/; revision=13976
fix for #10346
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.
svn path=/trunk/; revision=13972
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.
svn path=/trunk/; revision=13968
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-23 <NotZed@Ximian.com>
* 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.
svn path=/trunk/; revision=13952