Commit Graph

239 Commits

Author SHA1 Message Date
9
fedf164cb9 Copy the folder's full_name before trying to use it to rename.
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-29 05:06:28 +00:00
e79b6c7d42 Deactivate the Print right-click menu option if the message isn't loaded.
2001-10-28  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c: Deactivate the Print right-click menu option
	if the message isn't loaded. Fixes bug #10346.

svn path=/trunk/; revision=14287
2001-10-28 09:34:27 +00:00
4ca07463a0 More fixing of the license texts.
svn path=/trunk/; revision=14217
2001-10-27 18:21:05 +00:00
291331936c Work around something that we think is a GtkHTML bug, where sometimes the
* 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-26 21:29:16 +00:00
5
cab9406217 So apparently the uicomp can just 'vanish' while we're using it. Joy. Take
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-25 21:21:33 +00:00
e58630b141 Unref the global search_context. (owner_set_cb): create the global
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
2001-10-24 04:09:30 +00:00
4
e4fa983be5 all this crap just to make the print icon desensitive at the right time.
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-24 02:56:06 +00:00
bce08f29c3 Move the folder sync code along with a few other things from
2001-10-22  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (folder_browser_destroy): Move the folder sync
	code along with a few other things from folder_browser_finalise()
	into here instead.
	(folder_browser_finalise): Moved some cleanup functions into
	destroy.

svn path=/trunk/; revision=13892
2001-10-22 19:16:47 +00:00
6b011476f6 fixed bug #13151
svn path=/trunk/; revision=13858
2001-10-21 23:19:44 +00:00
1
a02822a94e Clear variables once done, for debugging. (mail_vfolder_add_uri,
2001-10-21    <NotZed@Ximian.com>

        * mail-vfolder.c (mail_vfolder_shutdown): Clear variables once
        done, for debugging.
        (mail_vfolder_add_uri, mail_vfolder_delete_uri): Dont do anything
        if we're shutdown (context == NULL).

        * component-factory.c (idle_quit): Move mail_vfolder_shutdown
        here, it should be one of the last things shutdown.

        * mail-format.c (handle_text_plain): Dont use (if (!p++), and then
        check p!= later, since its now 1, oops.  Fixes #13106, thought it
        was a start of uuencoded stuff!

        * folder-browser.c (on_right_click): Escape _'s before adding them
        to menu from mailing list name, also remove some dead code that
        someone forgot to remove when refactoring.  #11307.
        (folder_browser_is_drafts): Use the store's uri_cmp function to
        compare to the drafts uri's.
        (folder_browser_is_sent): Same.  Slight cleanup for #11351.

svn path=/trunk/; revision=13856
2001-10-21 20:28:58 +00:00
7abc9f6ba2 folder-browser.c: (folder_browser_set_message_preview): Return do nothing
folder-browser.c:
	(folder_browser_set_message_preview): Return do nothing if we're
	destroyed (message_list == NULL).
	(folder_browser_search_query_changed): "
	(folder_browser_toggle_preview): "
	(folder_browser_toggle_threads): "
	(folder_browser_toggle_hide_deleted): "
	(folder_browser_set_message_display_style): "
	(folder_browser_charset_changed): "   All for #12613.

svn path=/trunk/; revision=13703
2001-10-16 20:51:32 +00:00
8c85ed61ba Added an async_event handler to store_info. (mail_note_store): Setup async
* mail-folder-cache.c: Added an async_event handler to store_info.
	(mail_note_store): Setup async event handler here.
	(store_finalised): Flush out async events here.
	(folder_changed): Use async event handler to emit event.
	(mail_note_folder): Chagned, do most of the work in the calling
	context, only do the corba stuff in main.
	(store_folder_subscribed): Use async event, and do more work locally.
	(store_folder_unsubscribed): Same.
	(store_folder_deleted): Call store_folder_unsubscribed if we have
	to do any work.
	(store_folder_created): Call store_folder_subscribed if we have to
	do any work.
	(store_folder_unsubscribed): Ref store while busy.
	(real_folder_deleted): And unref here.
	(store_folder_subscribed): Reg store while busy.
	(real_folder_created): Unref here.
	(mail_note_folder): Ref folder while busy.
	(real_note_folder): And unref here.
	(mail_note_folder): Hook onto folder_deleted event.
	(folder_deleted): Just mark this folder as no longer available.

	* mail-session.c (register_timeout): Use mail_call_main instead of
	proxy_event.
	(remove_timeout): Same here.

	* folder-browser.c (folder_changed): use the new mail_async_event
	stuff.
	(folder_changed_main): Remove old async event handling stuff.
	(FOLDER_BROWSER_LOCK/UNLOCK): Removed.
	(FolderBrowserPrivate): Removed too, sigh.

	* mail-mt.c (mail_async_event_new, mail_async_event_emit,
	mail_async_event_destroy): New functions to handle async events.
	(mail_proxy_event, mail_proxy_event_id): Removed old functions for
	async events.
	(do_call): Add suport for MAIL_CALL_p_pp.
	(mail_msg_free): Use mail_async_event instead of proxy_event.

	* message-list.c (message_changed): Promote the message_changed to
	a folder_changed and use main_folder_changed to process it.
	(main_message_changed): Remove.d
	(message_list_init): Setup async event handler.
	(message_list_destroy): Remove async handler.
	(folder_changed): Use async hanler to emit event in main loop.
	(message_changed): Same.

svn path=/trunk/; revision=13698
2001-10-16 19:13:31 +00:00
6
41802db263 New function to return the id of the currently executing proxied event.
2001-10-16    <NotZed@Ximian.com>

	* mail-mt.c (mail_proxy_event_id): New function to return the id
	of the currently executing proxied event.

	* folder-browser.h: Added private field.

	* folder-browser.c (folder_changed): Keep track of tasks
	outstanding in the tasks list, locked access.
	(FOLDER_BROWSER_LOCK, UNLOCK): Macros to lock the folder browser
	for poking about in diff threads.
	(folder_browser_finalise): Wait for any outstanding takss to
	finish before cleaning ourself up.
	(folder_browser_destroy): Move the seen_id handling to finalise,
	also add a loading_id handling code.
	(main_folder_changed): Remove our running task when done.

svn path=/trunk/; revision=13695
2001-10-16 17:34:59 +00:00
4bcda57628 Remove the mark_seen timeout.
2001-10-15  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (folder_browser_destroy): Remove the mark_seen
	timeout.

svn path=/trunk/; revision=13689
2001-10-15 23:12:29 +00:00
f989a757a1 Make sure the mail-display is non-NULL.
2001-10-09  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (done_message_selected): Make sure the
	mail-display is non-NULL.

svn path=/trunk/; revision=13535
2001-10-09 23:21:11 +00:00
cd28010b32 Create a chaqrset picker submenu in the View menu.
2001-10-09  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser-ui.c (folder_browser_ui_add_message): Create a
	chaqrset picker submenu in the View menu.

	* mail-format.c (mail_format_raw_message): Pass the mail-display
	to get_data_wrapper_text.
	(get_data_wrapper_text): Use the user's override charset if one is
	provided, otherwise user the user's default charset.
	(handle_text_plain): Pass along the mail-display to
	get_data_wrapper_text.
	(handle_application_pgp): Same.
	(handle_text_enriched): Here too.
	(mail_get_message_body): Pass NULL as the mail-display to
	get_data_wrapper_text since we don't have access to a
	mail-display.

	* mail-display.c (mail_display_set_charset): New function to set a
	charset on the maildisplay. Once set, the message is redisplayed
	using the new charset.
	(mail_display_destroy): Free the charset.

	* folder-browser.c (folder_browser_charset_changed): New callback
	for when a user overrides the message charset.

svn path=/trunk/; revision=13530
2001-10-09 22:01:49 +00:00
eb6606cf3f Update for folder_flags.
* mail-local.c (mlf_set_folder, mlf_unset_folder): Update for
	folder_flags.

	* folder-browser-ui.c (folder_browser_ui_add_list): Check
	CAMEL_FOLDER_IS_TRASH flag rather than checking
	CAMEL_IS_VTRASH_FOLDER.

	* folder-browser.c (folder_browser_toggle_hide_deleted): Likewise

	* message-list.c (message_list_set_folder): Likewise.
	(message_list_set_hidedeleted): Remove redundant trash check.

svn path=/trunk/; revision=13510
2001-10-09 03:08:29 +00:00
5
e2aaec85d0 reformatted the menu tables so they're a bit more bloody readable.
2001-10-05    <NotZed@Ximian.com>

        * folder-browser.c: reformatted the menu tables so they're a bit
        more bloody readable.

        * mail-folder-cache.c (mail_note_store): Hook into
        subscribed/unsubscribed events.  Only 'add/remove' folders from
        the add/removed events if we aren't subscribed, otherwise use the
        subscribed events.  Rest of fix for #11831

svn path=/trunk/; revision=13472
2001-10-05 21:50:12 +00:00
4
b4d1e6b70e Show "nn sent" as total in sent folder, rather than just 'total'.
2001-10-04    <NotZed@Ximian.com>

        * folder-browser.c (update_status_bar): Show "nn sent" as total in
        sent folder, rather than just 'total'.

        * mail-folder-cache.c (update_1folder): Also show total message
        count for sent_folder.

svn path=/trunk/; revision=13429
2001-10-05 00:21:28 +00:00
3
f4742f2892 Set 'to' -> 'recipient' data for search object. #6199.
2001-10-03    <NotZed@Ximian.com>

        * folder-browser.c (folder_browser_config_search): Set 'to' ->
        'recipient' data for search object.  #6199.

svn path=/trunk/; revision=13399
2001-10-04 00:26:53 +00:00
3
636b05ecb8 If we have hide deleted set, then dont count deleted messages in the
2001-10-03    <NotZed@Ximian.com>

        * folder-browser.c (update_status_bar): If we have hide deleted
        set, then dont count deleted messages in the 'total' messages
        count.  Fixes #6591.

svn path=/trunk/; revision=13381
2001-10-03 18:18:02 +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
3032dfd5ca removed mail-vtrash.c
svn path=/trunk/; revision=13221
2001-09-28 19:14:10 +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
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
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
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
e73fea5ecf Merged into folder_browser_new: nothing ever changes the URI of an
* folder-browser.c (folder_browser_set_uri): Merged into
	folder_browser_new: nothing ever changes the URI of an existing
	folder browser any more.
	(folder_browser_new): Make this take a uri argument and do the
	work folder_browser_set_uri used to do, except that we set fb->uri
	right away, so that if the folder browser's control is activated
	before got_folder() gets called, then folder_browser_ui_add_list()
	will have access to the correct uri for purposes of setting
	ViewThreaded, etc. Fixes #4913.
	(got_folder): Don't set fb->uri here since it will already have
	been set. Don't call message_list_set_threaded, since it should be
	a noop now (and if it's not, it would make the message list not
	match the menu item).

	* folder-browser-ui.c (folder_browser_ui_add_list): Remove some
	code that was failing to work around the problems above.

	* message-browser.c (message_browser_new): Pass uri to
	folder_browser_new, remove call to set_uri.

	* folder-browser-factory.c (folder_browser_factory_new_control):
	Likewise. Also fix a s/destroy/unref/ in an error cleanup.

svn path=/trunk/; revision=12954
2001-09-18 21:12:37 +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
e00591f008 Use the new e_mkdtemp function.
2001-08-24  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-display.c (launch_cb): Use the new e_mkdtemp function.

	* folder-browser.c (message_list_drag_data_get): Use the new
	e_mkdtemp function.

svn path=/trunk/; revision=12462
2001-08-24 22:41:24 +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
ee5591ab84 Rename to fbui_real_sensitize_items. Now we queue a change and set up a
2001-08-21  Peter Williams  <peterw@ximian.com>

	* folder-browser-ui.c (fbui_sensitize_items): Rename to
	fbui_real_sensitize_items. Now we queue a change and set up a timeout,
	making sure weed out redundant changes, fixing flicker.
	(fbui_sensitize_timeout): New function. The timeout.
	(fbui_real_sensitize_items): Semi-new function. Rename of old
	fbui_sensitize_items.
	(folder_browser_ui_set_selection_state): Pass the FB instead of only
	the UIC to sensitize_items.
	(folder_browser_ui_message_loaded): Same.

	* folder-browser.c (folder_browser_destroy): Kill the new timeout if
	it is registered.

	* folder-browser.h: Add some members to FolderBrowser for keeping
	track of the queue of changes.

svn path=/trunk/; revision=12343
2001-08-21 16:00:41 +00:00
866a960fd9 Fix bug #215... desensitize menu items based on the number of selected
2001-08-09  Peter Williams  <peterw@ximian.com>

	Fix bug #215... desensitize menu items based on the number of
	selected messages (and whether there's a message in the pane)

	* folder-browser-ui.c (folder_browser_ui_add_message): Sensitize
	the menu items appropriately based on the old state.
	(fbui_sensitize_items): New function. Set the sensitivity of a
	list of commands.
	(folder_browser_ui_set_selection_state): New function. Move the FB
	to a new state of selected-ness, and sensitize menu items
	appropriately.
	(folder_browser_ui_message_loaded): New function. When notified
	that a message has been loaded, sensitize some menu items.

	* folder-browser-ui.h: Prototype new functions.

	* folder-browser.h: New enumeration,
	FolderBrowserSelectionState, that records the previous state
	of the selection (_NONE, _SINGLE, _MULTIPLE).

	* folder-browser.c (got_folder): If the component is set,
	set our selection state to _NONE, because that's the default
	state of the ETree.
	(on_selection_changed): When the number of selected messages
	is updated, notify the FBUI code of our new state.
	(folder_browser_gui_init): Hook up to the selection_changed
	signal and default to the _NONE selection state.
	(done_message_selected): Notify when a message is loaded.

2001-08-08  Peter Williams  <peterw@ximian.com>

	* mail-folder-cache.c: Display how many messages are selected,
	too.
	(make_folder_status): If multiple messages are selected, add that
	to the string (the 0 and 1 cases are boring)
	(selection_changed): New function, update the selected count.
	(mail_folder_cache_note_fb): Connect to the selection_changed
	signal.

svn path=/trunk/; revision=12012
2001-08-14 15:26:00 +00:00
28d41bb474 Fix the fix for #6722.
* 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-14 14:14:55 +00:00
5f6e3bde3b Make the right click "Resend..." into "Edit as New Message...", bug #6838.
2001-08-11  Jason Leach  <jleach@ximian.com>

	* folder-browser.c: Make the right click "Resend..." into "Edit as
	New Message...", bug #6838.

svn path=/trunk/; revision=11927
2001-08-12 00:45:18 +00:00
78544223ad Removed comment about the need to resolve nicknames properly, because we
2001-08-10  Jon Trowbridge  <trow@ximian.com>

	* e-msg-composer-hdrs.c (set_recipients): Removed comment about
	the need to resolve nicknames properly, because we now do that.

2001-08-10  Jon Trowbridge  <trow@ximian.com>

        * e-filter-bar.h: Set the subitems to NULL in the pre-defined
        ESearchBarItems.

        * e-filter-bar.c (rule_editor_clicked): Set the ESearchBarItem's
        subitems to NULL.
        (build_items): Set the ESearchBarItem's subitems to NULL.
        (e_filter_bar_new): Set the ESearchBarItem's subitems to NULL.

        * e-search-bar.c: Added support for subitems, so that a search
        option can key off of another option menu rather than just an
        entry.

2001-08-10  Jon Trowbridge  <trow@ximian.com>

        * gui/component/addressbook.c: Set the ESearchBarItem
        subitems explicitly to NULL.

2001-08-10  Jon Trowbridge  <trow@ximian.com>

        * gui/cal-search-bar.c: Where we have ESearchBarItems, set their
        subitems to NULL.

2001-08-10  Jon Trowbridge  <trow@ximian.com>

        * folder-browser.c: Set our ESearchBarItems subitems to NULL.

svn path=/trunk/; revision=11904
2001-08-10 22:36:41 +00:00
1a6ecd207d Make the context menu for the Sent folder have "Resend..." instead of
2001-08-10  Jason Leach  <jleach@ximian.com>

	* folder-browser.c: Make the context menu for the Sent folder have
	"Resend..." instead of "Resend", to clarify that it will bring up
	a dialog needing your input rather than just blindly sending the
	message again.  Also give it the 'e' accelerator.  Bug #6838.

svn path=/trunk/; revision=11901
2001-08-10 22:06:48 +00:00
5cfa31ba11 Added a comment about leaking memory here, but we seem to not even use the
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 04:23:32 +00:00
09eba6fad0 in mail:
2001-08-09  Peter Williams  <peterw@ximian.com>

	[ * folder-browser.c (on_key_press): The bonobo menu items now
	handle 'n' and 'p'. ]
	(on_key_press): 'q' as well.

in ui:

2001-08-09  Peter Williams  <peterw@ximian.com>

	* evolution-mail-global.xml: Give the (pre)view pane toggle
	an accelerator of 'q', like we were implementing the hard
	manual way before.

svn path=/trunk/; revision=11858
2001-08-10 00:16:16 +00:00
3e4aed06db The bonobo menu items now handle 'n' and 'p'.
2001-08-09  Peter Williams  <peterw@ximian.com>

	* folder-browser.c (on_key_press): The bonobo menu items now
	handle 'n' and 'p'.

svn path=/trunk/; revision=11853
2001-08-09 23:51:23 +00:00
3c88c8b755 Fixes bug #6918
2001-08-09  Anna Marie Dirks <anna@ximian.com>

	Fixes bug #6918

	* folder-browser.c: Changed the "Store search as vFolder"
	menu item to "Create vFolder from Search".

svn path=/trunk/; revision=11848
2001-08-09 23:37:29 +00:00
97e76a8703 Fixes bug #6722
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-09 20:33:41 +00:00
739376df3b Set the message-display message to NULL if we can't get an info too.
2001-08-06  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (expunge_folder): Set the message-display
	message to NULL if we can't get an info too.

svn path=/trunk/; revision=11711
2001-08-06 21:47:58 +00:00
ed0295fd12 Add a @wraparound argument, so the 'n' and 'p' keypresses (or anything
2001-08-04  Jason Leach  <jleach@ximian.com>

	* message-list.c (message_list_select): Add a @wraparound
	argument, so the 'n' and 'p' keypresses (or anything else that
	wants to) can wrap around to find the next unread.

	* folder-browser.c (on_key_press): Tell it to wrap around here.

	* mail-callbacks.c (delete_msg): Don't wrap around here (or the
	other callbacks in this file).

svn path=/trunk/; revision=11651
2001-08-04 18:33:50 +00:00
5e1e2e9850 I obviously can't spell recieved, er, received...uh, yea.
2001-08-02  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (message_list_drag_data_received): I obviously
	can't spell recieved, er, received...uh, yea.

svn path=/trunk/; revision=11595
2001-08-02 19:38:52 +00:00
221856a80b Do the Right Thing (tm) if the message list is not the widget in focus
2001-08-01  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (folder_browser_copy): Do the Right Thing (tm)
	if the message list is not the widget in focus (which is to copy
	the text selected in the html viewer instead). Fixes bug #5868.

svn path=/trunk/; revision=11558
2001-08-01 19:02:10 +00:00
eede44087f If we don't have any messages selected, break out. This fixes bug #5612.
2001-07-26  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (message_list_drag_data_get): If we don't have
	any messages selected, break out. This fixes bug #5612.

	* component-factory.c (xfer_folder): Fixed a strstr (url,
	"noselect=yes") brokenness.
	(destination_folder_handle_motion): Same.
	(destination_folder_handle_drop): And again here.

	* mail-format.c (handle_application_pgp): Implemented.
	(setup_mime_tables): Setup the application/pgp handler to use
	handle_application_pgp instead of handle_text_plain.
	(handle_text_plain): Remove special-case hacks for application/pgp
	types.

svn path=/trunk/; revision=11438
2001-07-26 22:31:54 +00:00
e49022b776 Make 'q' a toggle, not one-way.
2001-07-26  Peter Williams  <peterw@ximian.com>

	* folder-browser.c (on_key_press): Make 'q' a toggle, not
	one-way.

svn path=/trunk/; revision=11425
2001-07-26 14:53:00 +00:00
f0e17938dc Make it so Enter always opens the message in another window.
2001-07-25  Peter Williams  <peterw@ximian.com>

	* folder-browser.c (etree_key): Make it so Enter always opens the message
	in another window.

svn path=/trunk/; revision=11409
2001-07-25 19:40:32 +00:00