2001-10-17 <NotZed@Ximian.com>
* mail-folder-cache.c (store_folder_subscribed): Clone the
folderinfo before passing to async event.
(real_folder_created): Free when done.
(store_folder_unsubscribed):
(real_folder_deleted): And same here.
* mail-ops.c (mail_expunge_folder): Use the queued thread for
expunging folders.
svn path=/trunk/; revision=13741
2001-10-17 Jeffrey Stedfast <fejj@ximian.com>
* mail-ops.c (mail_send_message): No longer need to copy the
description now that camel-exceptions have been fixed.
svn path=/trunk/; revision=13738
2001-10-16 Jeffrey Stedfast <fejj@ximian.com>
* mail-ops.c (uid_cachename_hack): Lets put the UID cache in
~/evolution/mail/pop3 as this makes more sense than ~/mail/config
does. Perform checking to see what flavor cache-path the user is
on and compensate.
svn path=/trunk/; revision=13708
2001-10-10 <NotZed@Ximian.com>
* mail-ops.c (transfer_messages_transfer): IF the source and
destination folders are the same, do nothing. Oh, and return an
error, otherwise the shell goes and removes it anyway. Fixes a
rather serious bug with dnd of folders onto their current
location.
2001-10-09 <NotZed@Ximian.com>
* component-factory.c (owner_unset_cb): Disconnect from all the
signals we were listening to, so we dont try and do shit twice on
exit (one on unset_cb, one on destroy).
(create_component): Setup the signal handlers using a table, so
they're easier to disconnect on finish.
svn path=/trunk/; revision=13545
2001-10-04 Jeffrey Stedfast <fejj@ximian.com>
* mail-accounts.c (images_radio_toggled): Ignore the signal if the
radio button is not "on". This fixes bug #10532 because the on/off
signals don't always come in the off->on order.
* mail-ops.c (mail_send_message): Reduced some redundancy.
svn path=/trunk/; revision=13424
2001-10-03 <NotZed@Ximian.com>
* mail-folder-cache.c (folder_changed): Dont wait for event to
finish before returning. This could however mean we process it
after things have vanished below us? Fixes another case of ctrl-d
deadlock.
* mail-ops.c
(remove_folder_get): Freeze/thaw around deleting all messages in
folder.
svn path=/trunk/; revision=13382
2001-10-03 <NotZed@Ximian.com>
* mail-ops.c (add_vtrash_info): If we have a fragment, override
that, rather than the path. Fixes#5251.
svn path=/trunk/; revision=13379
2001-10-02 Jeffrey Stedfast <fejj@ximian.com>
* mail-callbacks.c (transfer_msg): Pass an empty flags argument to
mail_transfer_messages - destination folder should already be
created by this point.
* folder-browser.c (message_list_drag_data_received): Pass an
empty flags argument to mail_transfer_messages.
(selection_received): Same.
* component-factory.c (xfer_folder): Pass the CREATE flag to
mail_transfer_messages() so that the dest folder gets created.
(destination_folder_handle_drop): Update for mail-ops API change.
* mail-ops.c (mail_transfer_messages): Now takes a dest_flags
argument that it passes along to mail_tool_uri_to_folder when
opening the destination folder.
svn path=/trunk/; revision=13357
2001-10-02 Jeffrey Stedfast <fejj@ximian.com>
* mail-vfolder.c (vfolder_setup_do): Pass an empty flags argument
to mail_tool_uri_to_folder.
(vfolder_adduri_do): Same.
* mail-session.c (get_folder): Pass an empty flags argument to
mail_tool_uri_to_folder.
* mail-send-recv.c (receive_get_folder): Pass an empty flags
argument to mail_tool_uri_to_folder.
* mail-ops.c (get_folder_get): Pass the flags to
mail_tool_uri_to_folder.
(mail_get_folder): Now takes a flags argument.
(remove_folder_get): Pass an empty flags argument to
mail_tool_uri_to_folder.
(mail_send_message): Pass an empty argument flag to
mail_tool_uri_to_folder.
(transfer_messages_transfer): Same. Destination folder should
already be created by this time.
* folder-info.c (do_get_info): Pass an empty flags argument to
mail_tool_uri_to_folder.
* importers/evolution-mbox-importer.c (folder_created_cb): Pass
the CREATE flag here too.
(load_file_fn): And here.
(load_file_fn): And here too.
* importers/evolution-outlook-importer.c (load_file_fn): Pass the
CREATE flag to mail_tool_uri_to_folder.
* folder-browser.c (folder_browser_new): Pass an empty flags
argument.
(x_evolution_message_parse): Pass an empty flags argument to
mail_tool_uri_to_folder.
* component-factory.c (create_folder): Pass a CREATE flag to
mail_get_folder here too.
(owner_set_cb): And here.
(xfer_folder): Shouldn't need the CREATE flag here, so not passing
any flags.
(destination_folder_handle_drop): Same.
* mail-local.c (mail_local_store_add_folder): Pass a CREATE flag
to mail_get_folder.
(reconfigure_folder_reconfigure): Pass an empty flags argument to
mail_tool_uri_to_folder.
* mail-tools.c (mail_tool_uri_to_folder): Take a flags argument.
(mail_tool_get_local_inbox): Pass an empty flags argument to
mail_tool_uri_to_folder.
svn path=/trunk/; revision=13353
* mail-offline-handler.c (service_is_relevant): A service needs to
be disconnected if it's remote, not already offline, and either
connected OR connecting.
(storage_go_offline): Don't put non-relevant stores offline. (Eg,
don't force an IMAP store which you hadn't already connected to to
connect and sync.)
(storage_go_online): Likewise, don't "reconnect" stores that
weren't connected before.
* mail-ops.c (set_offline_desc): Fix the message to say
"reconnecting" instead of "disconnecting" when appropriate.
(mail_store_set_offline): If offline is TRUE, call
camel_service_cancel_connect on the store. (We do this here
because we don't want the cancel_connect request to get queued up
behind a hanging connection attempt.)
svn path=/trunk/; revision=13192
2001-09-21 Jeffrey Stedfast <fejj@ximian.com>
* mail-ops.c (mail_send_message): Use the mail-tools convenience
functions to remove and restore the X-Evolution headers.
(mail_update_subfolders): Removed.
svn path=/trunk/; revision=13064
* mail-callbacks.c (mail_storage_create_folder, folder_created,
create_folders): All made redundant by new mail-folder-cache
code.
(delete_folders, folder_deleted): Uh, code that isn't used
anywhere. Removed.
* component-factory.c (storage_create_folder): Dont call
folder_created, let the folder_created event handle the update.
* mail-ops.c (mail_scan_subfolders): Remove, no longer used.
svn path=/trunk/; revision=13059
2001-09-21 <NotZed@Ximian.com>
* mail-folder-cache.c (mail_note_store): Take a new argument
'done' that can callback when complete. Fixed callers
appropriately.
* mail-ops.c (mail_update_subfolders): Removed. Isn't used
anymore.
* mail-send-recv.c (receive_update_got_store): Remove call to
mail_update_subfolders.
svn path=/trunk/; revision=13044
2001-09-20 <NotZed@Ximian.com>
* folder-browser.c (folder_browser_set_shell_view): Update the
status bar here, assuming we've just been activated.
* mail-ops.c (add_vtrash_info): Scan whole list, rather than
missing the last one. Also dont assume its always the last,
otherwise we could lose following folders.
* mail-vfolder.c
(all): d(x) out debug printfs
* mail-folder-cache.c
(update_1folder): If its a vtrash folder, or the outbox_folder,
and we have a folder, then make the 'count' the total message
count, not unread messages count.
svn path=/trunk/; revision=13036
2001-09-20 <NotZed@Ximian.com>
* mail-vfolder.c (vfolder_register_source): Lock around
hashtable/list manipulation. Also dont try scan vfolder_hash if
it hasn't been setup yet.
(source_finalise): Lock around list access.
(rule_changed): Lock around hash access.
(context_rule_added): Lock around hash access.
(context_rule_removed): "
(rule_changed): Lock around list access.
* mail-local.c (storage_listener_startup): Fix for api change.
(local_storage_new_folder_cb): Dont skip over leading / in path.
(local_storage_removed_folder_cb): ditto.
* mail-folder-cache.c (create_folders): No longer pass prefix
between recursive calls - we have the path in the folderinfo.
(setup_folder): No longer take path arg, we get it from
folderinfo.
(mail_note_folder): No longer take path arg, we use
folder->full_name to key the folder table.
(mail_note_store): Consolidate note_store interface, pass storage
or corba_storage to it.
(mail_note_local_store): Removed.
* mail-ops.c
(add_unmatched_info): Scan for unmatched name and re-title.
svn path=/trunk/; revision=13023
2001-09-20 <NotZed@Ximian.com>
* mail-tools.c(mail_tool_uri_to_folder): Register vfolder sources here.
* folder-browser.c (got_folder): Dont register vfolder sources
here.
* mail-ops.c (mail_get_folder): Add thread parameter. Fix callers.
* mail-vfolder.c (vfolder_setup): Use the 'slow' queue for setting
up vfolders.
* mail-mt.c (mail_msg_init): Limit the maximum number of threads
on the 'new' thread to 10.
(mail_msg_init): Create a new queue 'slow' for doing slow
operations.
svn path=/trunk/; revision=13017
2001-09-19 <NotZed@Ximian.com>
* component-factory.c: Added missing header.
* mail-local.c (mail_local_store_add_folder): Async load the
folder we just added, so it can update the folder counts in the
display. We just discard the folder afterwards?
* mail-ops.c (mail_get_folder): Use the queued thread to get
folders.
svn path=/trunk/; revision=12976
2001-09-19 <NotZed@Ximian.com>
* General cleanup of mail debug printfs.
* mail-folder-cache.[ch]: Completely rewritten. Removed all calls
to the old code everywhere they were used. Nuff said.
* folder-browser.h: Add shell_view to folder_browser & api to set
it.
* folder-browser-factory.c (control_activate): Set the shell-view
on the folder_browser.
(control_deactivate): And clear it here.
* folder-browser.c (folder_browser_destroy): Unhook from changed
events on the folder before giving it away.
(got_folder): Hook onto the folder-changed events.
(folder_changed): Event hook proxy for folder_changed events
(main_folder_changed): And the main code version.
(update_status_bar): And the one that actually does the work.
(on_selection_changed): Also call update_status_bar() to update
the selection count.
(folder_browser_set_shell_view): Implement function to set the
shell_view on the folder_browser.
(folder_browser_destroy): Release the shell_view here too.
* mail-tools.c (mail_tool_uri_to_folder): Dont 'note' the new
folder if its from a file: url, this is handled by hte local store
(yeeruughck).
* mail-local.c (mls_init):
(free_info):
(mls_finalise): Setup init/finalise funcs for the folderinfo hash.
(local_storage_removed_folder_cb): re-enable.
2001-09-18 <NotZed@Ximian.com>
* mail-local.c (MailLocalStore): Add a hash table to store
uri<>folderinfo data.
(mail_local_store_add_folder): Add a new folderinfo to our hash.
(mail_local_store_remove_folder): Remove a folder by uri.
(storage_listener_startup): Add this store to those monitored by
the folder tree.
svn path=/trunk/; revision=12974
2001-09-17 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (storage_remove_folder): Unsubscribe from
the folder before deleting it. Also, use the url's path instead of
the shell's path since IMAP doesn't necessarily have to use "/" as
the dir sep.
* mail-ops.c (remove_folder_get): If the store supports
subscriptions, make sure to unsubscribe from the folder before
deleting it.
svn path=/trunk/; revision=12931
2001-09-17 <NotZed@Ximian.com>
* mail-ops.c (mail_get_folderinfo): Get folderinfo 1 at a time
rather than all at once.
svn path=/trunk/; revision=12929
2001-09-17 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (storage_remove_folder): Unsubscribe from
the folder before deleting it.
* mail-ops.c (remove_folder_get): If the store supports
subscriptions, make sure to unsubscribe from the folder before
deleting it.
svn path=/trunk/; revision=12921
2001-09-15 <NotZed@Ximian.com>
* mail-vfolder.c: Major rewrite of most of the guts, handle
changes based on signals and events, etc. Use the main storage
handling code that imap uses, etc.
* mail-tools.c (mail_tool_uri_to_folder): Dont special case
vfolder: anymore.
* component-factory.c (owner_set_cb): use vfolder_load_storage(),
new function to setup vfolder storage, after interaction has been
enabled only. This might need some tweaking ...
(storage_remove_folder): Removed all the folder lookup stuff.
Just delete the folder based on the path passed in. There should
be no reason this wouldn't work, right?
2001-09-14 <NotZed@Ximian.com>
* mail-ops.c (get_folderinfo_get): Only add vtrash folder info, if
store supports vtrash.
* component-factory.c (mail_load_storage_by_uri): Let 'vfolder'
stores show up too.
2001-09-13 <NotZed@Ximian.com>
* mail-vfolder.c (vfolder_uri_to_folder): Open a vfolder then set
its expression, since name?query open method is removed.
svn path=/trunk/; revision=12856
2001-09-14 Jeffrey Stedfast <fejj@ximian.com>
* mail-ops.c (mail_send_message): Append a message to any
exception we get appending to any folders after having sent the
message successfully saying that the message was sent successfully
so the user doesn't misinterpret the error.
svn path=/trunk/; revision=12830
2001-09-10 <NotZed@Ximian.com>
* mail-local.c (mail_local_reconfigure_folder): Dynamically create
the folder type list from camel.
(reconfigure_clicked): And change code to handle changes.
2001-09-10 <NotZed@Ximian.com>
* merged mail_local patch from peterw. Many changes.
svn path=/trunk/; revision=12759
2001-09-04 Jeffrey Stedfast <fejj@ximian.com>
* mail-ops.c (fetch_mail_fetch): Unref the source folder here
because it might be a POP folder. We do this because on store
finalize, we now try to disconnect cleanly which means that we may
block.
svn path=/trunk/; revision=12602
2001-08-30 Peter Williams <peterw@ximian.com>
* mail-ops.c (remove_folder_get): Instead of removing the folder
from the folder cache here...
(remove_folder_got): ... do it here, in the main thread.
svn path=/trunk/; revision=12529
2001-08-26 Jeffrey Stedfast <fejj@ximian.com>
* mail-send-recv.c (receive_update_got_store): If the store is not
connected, scan it's subfolders first.
* mail-ops.c (report_status): Call va_end() so LinuxPPC doesn't
have a caniption.
svn path=/trunk/; revision=12479
2001-08-24 Peter Williams <peterw@ximian.com>
* mail-ops.c (remove_folder_get): Save the folder's full_name, unref it,
and *then* unref the store, so that the folder has been closed before
it gets deleted.
svn path=/trunk/; revision=12446
2001-08-20 Jeffrey Stedfast <fejj@ximian.com>
* component-factory.c (create_folder): Modify the url and set the
protocol to mbox rather than hacking it and prepending mbox: to
the uri.
* mail-local.c (get_folder): Don't prepend the folder_name with
the store's path because the hash key is folder_name, not
/folder_name.
svn path=/trunk/; revision=12325
* folder-browser.c (message_list_drag_data_get): Fix the fix for
#6722.
* mail-ops.c (save_messages_save): Likewise.
(save_part_save): Deal with the possibility that
camel_mime_filter_charset_new_convert will return NULL (bad
charset name). Fixes#6611.
svn path=/trunk/; revision=12008
2001-08-10 Jeffrey Stedfast <fejj@ximian.com>
* mail-account-gui.c (build_auth_menu): Fix bug #4523 for good.
(save_service): If service->authitem is NULL, then the user tried
to enable authentication but the provider doesn't actually support
it.
svn path=/trunk/; revision=11905
2001-08-10 Jason Leach <jleach@ximian.com>
* mail-ops.c (remove_folder_get): Remove all the messages from a
folder that's being deleted before actually doing the
camel_store_delete_folder, so it won't leave behind an mbox file
that's going to prevent the actual directory from being deleted,
and strange effects like new folders with the same name being made
in it's place. Bug #5618.
* mail-folder-cache.c (mail_folder_cache_remove_folder): New
function, a way to get something out of the folder cache, like
folders being deleted. Bug #6878.
svn path=/trunk/; revision=11887
2001-08-10 Jeffrey Stedfast <fejj@ximian.com>
* folder-browser.c (on_right_click): Added a comment about leaking
memory here, but we seem to not even use the 2 strings we
strdup...is this code still under construction?
* mail-ops.c (mail_send_message): Free the sent_folder_uri at the
bottom of the function (ironically enough we were freeing it if we
encountered an error but never free'd it on success :-)
(get_folderinfo_got): Fixed a memory leak...this one would have
gone away once we got rid of the debug g_warning though.
svn path=/trunk/; revision=11868
2001-08-10 Not Zed <NotZed@Ximian.com>
* mail-ops.c (mail_transfer_messages): Dont want it to keep on
running if it got bad arguments, want it to bloody well crash.
(mail_append_mail): Same here.
svn path=/trunk/; revision=11865
2001-08-09 Jeffrey Stedfast <fejj@ximian.com>
Fixes bug #6722
* mail-ops.c (save_messages_save): Don't set the default perms
here, let the user's umask deal with permissions.
* folder-browser.c (message_list_drag_data_get): Don't set any
default perms.
svn path=/trunk/; revision=11842
2001-08-08 Not Zed <NotZed@Ximian.com>
* mail-ops.c (send_mail_send): Dont double-register this
operation, mail-mt will do it for us.
(get_folderinfo_get): "
(get_folder_get): "
(get_store_get): "
(create_folder_get): "
(remove_folder_get): "
(sync_folder_sync): "
(get_message_get): "
* message-list.c (message_list_setup_etree): Free the etstate
object after we're done using it.
svn path=/trunk/; revision=11813
2001-08-08 Peter Williams <peterw@ximian.com>
* mail-ops.c (mail_update_subfolders): Change this gtk_object_ref
on the storage to a bonobo_object_ref.
svn path=/trunk/; revision=11790
2001-08-07 Not Zed <NotZed@Ximian.com>
* mail-config.c (mail_config_get_thread_list): Free the dbkey if
we found the config option.
* mail-send-recv.c (build_dialogue): Free the pretty_url after
we've used it.
(free_send_info): Free the 'what' string.
(receive_done): Use free_send_info to make sure we free
everything.
* mail-ops.c (send_queue_free): Unref the filter driver when done.
(send_queue_send): Unref the driver here too, force any long
taking operations to run in our thread.
svn path=/trunk/; revision=11777
2001-08-07 Peter Williams <peterw@ximian.com>
[ Use bonobo_object_unref on the storage since it's a bonobo object. ]
* mail-send-recv.c (receive_update_got_store): Same.
* mail-ops.c (do_update_subfolders): Same.
svn path=/trunk/; revision=11752
2001-08-07 Jeffrey Stedfast <fejj@ximian.com>
* subscribe-dialog.c (subscribe_dialog_new): This should return a
GtkWidget not a GtkObject.
* mail-session.c (get_filter_driver): Update to use user's logging
preferences.
* mail-accounts.c (filter_log_toggled): New.
(filter_log_path_changed): New.
(construct): Get and attach signals to the filter logging option
widgets.
* mail-config.c (config_read): Read in filter logging options.
(mail_config_write_on_exit): Save filter logging options.
(mail_config_set_filter_log_path): Implemented.
(mail_config_get_filter_log_path): Implemented.
(mail_config_set_filter_log): Implemented.
(mail_config_get_filter_log): Implemented.
svn path=/trunk/; revision=11751