Commit Graph

219 Commits

Author SHA1 Message Date
f620356a6f Call mail_vfolder_shutdown.
2001-10-15  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (owner_unset_cb): Call
	mail_vfolder_shutdown.

	* mail-vfolder.c (mail_vfolder_shutdown): Unref all of our
	VFolders.

	* mail-folder-cache.c (real_note_folder): Remember to unref the
	folder before returning if we have already noted this folder.

svn path=/trunk/; revision=13682
2001-10-15 20:18:08 +00:00
dbcaac3afa Make sure the service/storage are non-NULL.
2001-10-11  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (free_storage): Make sure the
	service/storage are non-NULL.

	* mail-callbacks.c (e_gnome_dialog_parent_destroyed): Call
	gtk_main_quit.
	(send_receive_mail): Don't use e_gnome stuff since this doesn't
	need to be run using gnome_dialog_run_and_close().
	(composer_send_cb): Same.
	(edit_msg): Here too.
	(resend_msg): And here.
	(search_msg): Same.
	(filter_edit): Here too.
	(filter_edit): Don't use e_gnome_dialog_set_parent() because we
	don't do gnome_dialog_run_and_close on this dialog.
	(e_gnome_error_dialog_parented): Removed.
	(e_gnome_ok_dialog_parented): Removed.

svn path=/trunk/; revision=13583
2001-10-11 16:47:17 +00:00
0
7ce7e09762 IF the source and destination folders are the same, do nothing. Oh, and
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-10 05:46:34 +00:00
e1581b7785 For mailstorage folders, connect to the control's "activate" signal, and
* component-factory.c (create_view): For mailstorage folders,
	connect to the control's "activate" signal, and don't try to
	connect to the store.
        (storage_activate): Instead, do it here, so if the connection
	fails, or the user cancels, or whatever else, he can try again
	later.

svn path=/trunk/; revision=13503
2001-10-08 18:14:59 +00:00
664206faba Only create the folder when the shell has created it.
svn path=/trunk/; revision=13420
2001-10-04 20:02:00 +00:00
4
c413bd3b56 Do the url fragment/path -> folder name hack. Removing vfolders from shell
2001-10-04    <NotZed@Ximian.com>

        * component-factory.c (storage_remove_folder): Do the url
        fragment/path -> folder name hack.  Removing vfolders from shell
        works now?

svn path=/trunk/; revision=13416
2001-10-04 19:19:26 +00:00
378422f6e1 Pass an empty flags argument to mail_transfer_messages - destination
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 22:45:24 +00:00
8d4f5ab1c8 Pass an empty flags argument to mail_tool_uri_to_folder.
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
2001-10-02 22:01:03 +00:00
f41afabb33 Check for errors
svn path=/trunk/; revision=13292
2001-10-01 23:43:29 +00:00
8d3a2ebd28 create storages for providers that are STORAGE and aren't EXTERNAL, rather
* component-factory.c (mail_load_storage_by_uri): create storages
	for providers that are STORAGE and aren't EXTERNAL, rather than
	"(STORAGE and REMOTE) or spool, maildir, or vfolder".
	(mail_remove_storage_by_uri): Use the same rule here (which makes
	it possible now to remove maildir and spool stores now, which
	weren't properly special-cased before). Remove some CamelException
	misuse.

	* mail-config.c (new_source_created): Fix up the broken INBOX-
	shortcut-generating assumption a little by only assuming that if
	you call camel_store_get_inbox(), that its full_name is the same
	as its path. (This happens to always be true for inboxes now, and
	will be always true by definition at some point in the future.)
	Now maildir stores get working Inbox shortcuts.

	* mail-send-recv.c (get_receive_type): If PROVIDER_IS_STORAGE
	then use SEND_UPDATE, if not, use SEND_RECEIVE.

	* mail-local.c (local_provider): The local provider is EXTERNAL.
	(The shell creates it.)
	(mail_local_reconfigure_folder): Allow reconfiguring between
	IS_LOCAL providers.

	* mail-accounts.c (news_delete): Don't need to check the provider
	flags here... we know nntp is a STORAGE.

svn path=/trunk/; revision=13277
2001-10-01 19:45:39 +00:00
8
4caf4a1d4e Setup vfolder storage before all others.
2001-09-28    <NotZed@Ximian.com>

	* component-factory.c (owner_set_cb): Setup vfolder storage before
	all others.

svn path=/trunk/; revision=13243
2001-09-29 00:00:33 +00:00
8
4b14db5520 Emit folder_deleted event. (remove_find_path): Fix, compare against path,
2001-09-28    <NotZed@Ximian.com>

	* mail-local.c (mail_local_store_remove_folder): Emit
	folder_deleted event.
	(remove_find_path): Fix, compare against path, not full_name.

	* mail-tools.c (mail_tool_uri_to_folder): Dont
	vfolder_register_source anymore.

	* mail-vfolder.c (rule_changed): Changed to access
	mail_fodler_cahce to find out if the folder exist yet before
	trying to open them, also use the cache as a cache so we dont have
	to open the folder if its already been opened.
	(vfolder_register_source, register_source): Removed.
	(source_finalise): Removed,
	(check_source): Removed.  All handled through diff mechanism.
	(mail_vfolder_add_uri): New function, records uri's of available
	folders, and adds them to any active vfolders if required.
	(mail_vfolder_remove_uri): New function, removes a uri from
	available folders, and checks any rules to see fi they need
	updating.
	(vfolder_adduri): New async function to add a uri to all vfolders
	that need it.
	(store_folder_deleted): oops!  free user, not rule!!

	* mail-folder-cache.c: Add uri->folderinfo hashtable, and the
	store from which they come into the store info struct.
	Add uri to the folder_info.
	(setup_folder): Store the uri in the folderinfo.
	(setup_folder): And the uri in the folder_uri hashtable.
	(mail_note_store): Store the store in the storeinfo, and setup the
	folders_uri hashtable via the store's hash functions.
	(setup_folder): Call mail_vfolder_add_uri to note this newly setup
	folder uri.
	(store_folder_deleted): Proxy call to main thread.
	(real_folder_deleted): And tell the vfolder to remove this uri
	from its folder list.
	(setup_folder): Dont call vfolder_add_uri if noselect is set on
	the uri.

2001-09-27    <NotZed@Ximian.com>

	* mail-vfolder.c: Removed vfolder_info struct, vfolder_storage.
	Neither used anymore.

svn path=/trunk/; revision=13242
2001-09-28 23:54:30 +00:00
3bf97142fa Add a big comment explaining unread message counts so no one can mess them
* mail-folder-cache.c: Add a big comment explaining unread message
	counts so no one can mess them up again in the future. :-)
	(update_1folder): If info->unread_message_count is -1, don't do
	anything.

	* component-factory.c (component_factory_init): warn and exit if
	oaf_active_server_register returns OAF_REG_ALREADY_ACTIVE.

svn path=/trunk/; revision=13155
2001-09-26 19:28:14 +00:00
5
ba5b1b6be7 Deal with destroy vs finalise semantics. Only destroy widgets here.
2001-09-25    <NotZed@Ximian.com>

        * folder-browser.c (folder_browser_destroy): Deal with destroy vs
        finalise semantics.  Only destroy widgets here.
        (folder_browser_finalise): object finalise function, actually
        unref/free all other objects here.
        (folder_browser_class_init): Init the finalise hook.
        (got_folder): Check if message_list == NULL -> we've been
        destroyed before the thread got a chance to finish loading the
        folder.
        (folder_browser_is_drafts): Dont use a g_return_if_fail to return
        in what could be a valid state of the object.
        (folder_browser_is_sent): Likewise.
        (folder_browser_copy): Do nothing if message_list == NULL.

        * main.c (main): call  mail_msg_cleanup() before leaving threads.

        * component-factory.c (owner_unset_cb): Wait for all outstanding
        operations to finish before setting up to quit.
        (idle_quit): Wait for all outstanding ops to finish before
        cleanup.
        (unref_standard_folders): NULL out the standard folder before
        unreffing it.

        * mail-mt.c (mail_msg_wait_all): New function to wait for all
        outstanding thread operations.
        (mail_msg_cleanup): Destroy the io channels before we're
        finished.  Also wait for all outstanding threads first.  Made
        public.
        (mail_msg_init): Dont call mail_msg_cleanup atexit automatically.

svn path=/trunk/; revision=13129
2001-09-25 22:18:52 +00:00
70a6a65a56 Throw up a warning dialog if we suspect the config database is corrupt.
2001-09-25  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (owner_set_cb): Throw up a warning dialog if
	we suspect the config database is corrupt.

	* mail-config.c (config_read): If the account name is NULL, then
	we have a corrupt config database most likely - so generate a fake
	account name and set the corrupt but to TRUE.
	(mail_config_is_corrupt): New function to find out if the config
	is suspected of being corrupted.

svn path=/trunk/; revision=13116
2001-09-25 20:16:14 +00:00
4
9a864d05fe Removed unused variables.
2001-09-24    <NotZed@Ximian.com>

        * mail-local.c (mls_get_folder): Removed unused variables.

        * component-factory.c (storage_create_folder): Remove unused
        variable.

        * mail-format.c (write_default_header): Used to write a header
        that we know about/normally print.  Use a static header table to
        index these.
        (write_header): removed.
        (default_header_index): Return the index of the default header.
        (write_headers): Changed the way it writes headers a bit.  Use
        write_default_header or write_text_header directly.  Also try and
        use the header charset as a fallback if the header can't be
        decoded using the locale charset.

svn path=/trunk/; revision=13097
2001-09-24 19:31:36 +00:00
c553954772 All made redundant by new mail-folder-cache code. (delete_folders,
* 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 20:10:58 +00:00
1
b2e7adf9b8 Take a new argument 'done' that can callback when complete. Fixed callers
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-21 05:58:31 +00:00
0
096dad5a2a trigger a folder changed event, so the folderinfocache stuff has a chance
2001-09-20    <NotZed@Ximian.com>

        * component-factory.c (got_folder): trigger a folder changed
        event, so the folderinfocache stuff has a chance to see if this is
        the outbox_folder or not.

        * mail-folder-cache.c (update_1folder): If we have -1 unread
        count, pass that as 0 to the shell so it doesn't go bolding.
        (setup_folder): Same.

svn path=/trunk/; revision=13041
2001-09-21 03:10:02 +00:00
0
a68b568135 Update the status bar here, assuming we've just been activated.
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-21 00:56:49 +00:00
0
586f083c3a Lock around hashtable/list manipulation. Also dont try scan vfolder_hash
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 22:59:11 +00:00
0
412c2967bb Register vfolder sources here.
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-20 21:01:53 +00:00
add469da50 Here too.
2001-09-19  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-send-recv.c (receive_update_got_store): Here too.

	* component-factory.c (create_view): Call mail_note_store()
	instead of mail_scan_subfolders() here so that these folders get
	hooked up with the unread count code.

svn path=/trunk/; revision=12999
2001-09-19 23:49:11 +00:00
9
9ab4b45c15 Added missing header.
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 10:01:32 +00:00
9
73c74dd70d General cleanup of mail debug printfs.
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-19 08:29:13 +00:00
6d03c10b69 Unsubscribe from the folder before deleting it. Also, use the url's path
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-18 03:07:09 +00:00
0d9c13bb37 Unsubscribe from the folder before deleting it.
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-17 23:26:36 +00:00
5
c2a0bf66ba Major rewrite of most of the guts, handle changes based on signals and
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-15 08:13:41 +00:00
0
c7e1b2cbb0 Dynamically create the folder type list from camel. (reconfigure_clicked):
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-11 00:32:20 +00:00
5bfc457407 new function, to notify the bonobo listener in
2001-09-06  Chris Toshok  <toshok@ximian.com>

	* component-factory.c (notify_listener): new function, to notify
	the bonobo listener in remove_folder/create_folder.
	(storage_create_folder): match EvolutionStorage create_folder
	signal's signature.
	(storage_remove_folder): match EvolutionStorage remove_folder
	signal's signature.

svn path=/trunk/; revision=12671
2001-09-07 06:47:18 +00:00
de4c391ec2 Adjust the default_account index correctly.
2001-09-05  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-config.c (mail_config_remove_account): Adjust the
	default_account index correctly.

2001-09-05  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-config.c (mail_config_get_accounts): Added a g_assert to
	make sure that config wasn't NULL. This is meant to help debug bug
	#4911 and friends.

	* component-factory.c (owner_set_cb): Do not mail_config_init()
	here as we've already called this in main() in main.c.

svn path=/trunk/; revision=12640
2001-09-05 23:04:33 +00:00
86de708aac [Fix #958, ShellComponents should not be created by factories, for
the mailer case.]

* GNOME_Evolution_Mail.oaf.in: Remove the
GNOME_Evolution_Mail_ShellComponentFactory.

* component-factory.c: Changed to not use a factory.
(COMPONENT_FACTORY_ID): Removed.
(COMPONENT_ID): New.
(idle_quit): Don't unref the component_factory.
(create_component): Renamed from `component_fn'.  Take no args.
(component_factory_init): Create the component with
`create_component' and register it on OAF.

svn path=/trunk/; revision=12637
2001-09-05 22:46:53 +00:00
1e251f23e6 [Fix #7542, "Crash Afer Closing".]
* component-factory.c (owner_unset_cb): NULL the
global_shell_client as the first thing here.  Otherwise we might
get into a slight race that causes the shell to crash.  [Still, of
course the shell shouldn't crash, but I haven't been able to track
that down yet.]

svn path=/trunk/; revision=12605
2001-09-04 21:52:00 +00:00
553de94865 Fix the Pine and Netscape importers. Give them a nice progress reporting GUI.
Revert Jason's changes so that creating a folder works again.

svn path=/trunk/; revision=12536
2001-08-30 23:21:56 +00:00
fd6740b4a8 Toss in a call to mail_config_init () cause it might contribute to solving
2001-08-29  Peter Williams  <peterw@ximian.com>

	* component-factory.c (owner_set_cb): Toss in a call to
	mail_config_init () cause it might contribute to solving
	bug 4911, and it won't hurt.

svn path=/trunk/; revision=12514
2001-08-29 19:07:34 +00:00
c70a3966d9 Instead of folder_browser_factory_new_control ("", corba_shell) when
2001-08-28  Peter Williams  <peterw@ximian.com>

	* component-factory.c
	(create_view): Instead of
	folder_browser_factory_new_control ("", corba_shell) when looking
	at a mailstorage folder, use create_noselect_control().

svn path=/trunk/; revision=12504
2001-08-28 22:08:39 +00:00
7acc488236 Disable interaction once the shell has quit.
2001-08-28  Peter Williams  <peterw@ximian.com>

	* component-factory.c (owner_unset_cb): Disable interaction once
	the shell has quit.

svn path=/trunk/; revision=12500
2001-08-28 18:26:48 +00:00
2b55c2266b If the store is not connected, scan it's subfolders first.
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-27 02:56:45 +00:00
5d7fb3b5d6 Don't mark empty strings for translation. Rather, give descriptions and
* component-factory.c: Don't mark empty strings for translation.
Rather, give descriptions and display names to types "mailstorage"
and "vtrash".

svn path=/trunk/; revision=12453
2001-08-24 20:19:05 +00:00
2fba11c88f Instead of using the length of the shortcuts list as the index for the
2001-08-24  Peter Williams  <peterw@ximian.com>

	* mail-config.c (add_shortcut_entry): Instead of using the length
	of the shortcuts list as the index for the shortcut, use -1, which
	means "last".

	* mail-config-druid.c (druid_finish): Remove the account adding
	stuff since that happens in wizard_finish now.

	* mail-config.c (add_new_storage): New function. Add a
	MailConfigAccount to the shell as a storage.
	(maybe_add_shortcut): Renamed to new_source_created.
	(new_source_created): Call add_new_storage here.

	* component-factory.c (mail_remove_storage_by_uri): Don't warn
	if the storage isn't remote... no point in making the caller
	do extra work.

svn path=/trunk/; revision=12445
2001-08-24 19:01:59 +00:00
90823e758b Check to make sure we actually have drag data.
2001-08-23  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (destination_folder_handle_drop): Check to
	make sure we actually have drag data.

	* folder-browser.c (message_list_drag_data_received): Check to
	make sure we have valid data.

svn path=/trunk/; revision=12424
2001-08-23 21:34:32 +00:00
8cb5eafe19 Don't blindly make all vtrash folder types have a uri of vtrash:file:/,
2001-08-22  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (create_view): Don't blindly make all vtrash
	folder types have a uri of vtrash:file:/, instead only make it use
	vtrash:file:/ if it's a file: uri, else use physical_uri.

svn path=/trunk/; revision=12411
2001-08-22 23:30:27 +00:00
a1a0a6bc4c Modify the url and set the protocol to mbox rather than hacking it and
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
2001-08-20 21:49:09 +00:00
41dcb0c01b camel_folder_create_folder can now return a heirachial tree so subscribe
2001-08-20  Jeffrey Stedfast  <fejj@ximian.com>

	* component-factory.c (storage_create_folder):
	camel_folder_create_folder can now return a heirachial tree so
	subscribe to down the tree.

svn path=/trunk/; revision=12257
2001-08-20 07:29:26 +00:00
d9ed7a6a63 Added display_name and description to the type.
* evolution-test-component.c: Added display_name and description
to the type.

* evolution-shell-component.c (impl__get_supported_types): Pass
`display_name' and `description' here.
(evolution_shell_component_construct): Likewise.

* evolution-shell-component.h: New members `display_name',
`description' in `EvolutionShellComponentFolderType'.

* e-component-registry.c (register_type): New args @description
and @display_name.  Pass to
`e_folder_type_registry_register_type()'.
(register_component): Pass the values returned in the sequence
from __get_supported_types.

* e-folder-type-registry.c: New members `display_name' and
`description' in `struct _FolderType'.
(folder_type_new): New args @description and @display_name.
Initialize the respective fields in the `FolderType' accordingly.
(folder_type_free): Free `display_name' and `description'.
(register_folder_type): New args @display_name, @description.
(e_folder_type_registry_register_type): New args @display_name,
@description.
(e_folder_type_registry_get_description_for_type): New.
(e_folder_type_registry_get_display_name_for_type): New.

* Evolution-ShellComponent.idl: Added `display_name' and
`description' fields to the `FolderType' struct.

svn path=/trunk/; revision=12245
2001-08-20 04:42:04 +00:00
ac4f13b93e Allow the activity to be NULL if there isn't a global_shell_client so that
2001-08-19  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-mt.c (do_op_status): Allow the activity to be NULL if there
	isn't a global_shell_client so that we don't try and report status
	updates when the shell is destroyed.

	* mail-config.c (add_shortcut_entry): Return if there isn't a
	global_shell_client.

	* component-factory.c (owner_set_cb): set the global_shell_client
	here and connect to the destroy signal.

	* mail-vfolder.c (vfolder_create_storage): Use an extern global_shell_client.

svn path=/trunk/; revision=12242
2001-08-20 04:02:10 +00:00
10291068a6 don't init the config here
2001-08-17  JP Rosevear  <jpr@ximian.com>

	* component-factory.c (owner_set_cb): don't init the config here

	* main.c (main): init the config here

svn path=/trunk/; revision=12166
2001-08-17 18:35:11 +00:00
4e60b7d947 Startup assistant stuff
svn path=/trunk/; revision=12145
2001-08-17 04:29:11 +00:00
ecc57b7556 New function, handle "user creatable items". (component_fn): Tell the
2001-08-13  Peter Williams  <peterw@ximian.com>

	* component-factory.c (user_create_new_item_cb): New function,
	handle "user creatable items".
	(component_fn): Tell the shell that we're capable of creating
	mail messages.

svn path=/trunk/; revision=11965
2001-08-13 21:59:50 +00:00
df8180e04a Fix this so it can actually get folders from the hash of folders on the
2001-08-13  Jason Leach  <jleach@ximian.com>

	* mail-local.c (get_folder): Fix this so it can actually get
	folders from the hash of folders on the local store (it was
	looking up plain @folder_name, which is typically "mbox", instead
	of the full URI, /home/jleach/evolution/local/Foo/mbox).

	* component-factory.c (do_remove_folder): Rename to
	remove_folder_done, more fitting for it's purpose.
	(do_xfer_folder): Similar name change.
	(do_create_folder): Similar name change.
	(remove_folder): Don't notifyResult for the component here, we
	will notify with our result in remove_folder_done.
	(xfer_folder): Ditto.

	* mail-vfolder.c (vfolder_refresh): Create new folders with unread
	counts of "0" instead of #FALSE (which just happens to be #defined
	as zero).

svn path=/trunk/; revision=11964
2001-08-13 21:36:41 +00:00