Commit Graph

298 Commits

Author SHA1 Message Date
17815d8669 Connect to our own message_list_built signal. Focus the list and select
2002-02-21  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (on_message_list_built): Connect to our own
	message_list_built signal. Focus the list and select the first
	unread message (or frst message depending). Fixes bug #3900.

svn path=/trunk/; revision=15784
2002-02-22 00:13:56 +00:00
cf945fcde2 Prompt the user to find out if he/she wants to go to the next folder with
2002-02-19  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (confirm_goto_next_folder): Prompt the user to
	find out if he/she wants to go to the next folder with unread mail
	in it.
	(find_current_folder): Find a given CamelFolderInfo node based on
	a given uri.
	(find_next_folder_r): Recursively look for a CamelFOlderInfo node
	which has unread messages.
	(find_next_folder): Given a currently selected CamelFolderInfo
	node, look for the next node containing unread messages.
	(do_evil_kludgy_goto_next_folder_hack): Find the currently
	selected folder and then find the very next folder after it that
	contains unread messages and then select it via a CORBA call to
	the shell.
	(next_unread_msg): If we fail to find an unread message in the
	message-list, prompt the user to find out if we should jump to the
	next fodler containing unread messages. If so, call
	do_evil_kludgy_goto_next_folder_hack().

	* message-list.c (message_list_select): Return a boolean value
	based on whether the call was successfull or not.

	* mail-config.c (mail_config_get_confirm_goto_next_folder):
	(mail_config_set_confirm_goto_next_folder):
	(mail_config_get_goto_next_folder):
	(mail_config_set_goto_next_folder): All new functions, yay.
	(config_read): Read in the confirm_goto_next_folder and
	goto_next_folder config options.
	(mail_config_write_on_exit): Same the options here.

svn path=/trunk/; revision=15770
2002-02-20 03:51:20 +00:00
7751734b69 Set the followup icon to use the new flag icon rather than the exclamation
2002-02-13  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser-ui.c: Set the followup icon to use the new flag
	icon rather than the exclamation mark icon.

	* mail-callbacks.c (flag_for_followup): Append the selected
	messages to the clist in the followp editor.

	* message-list.c: Include the new flag-for-followup icon.

	* message-tag-followup.c (message_tag_followup_append_message):
	New method to add a message to the message-list.
	(construct): Get the message_list widget and load the flag icon
	pixmap.

svn path=/trunk/; revision=15720
2002-02-13 22:28:39 +00:00
2d4d49a088 Get followup-up message-list values. Also highlight the message in red if
2002-02-11  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (ml_tree_value_at): Get followup-up message-list
	values. Also highlight the message in red if the due-by date is
	past due (this is what Outlook does).
	(ml_duplicate_value): Handle follow-up columns.
	(ml_free_value): Same.
	(ml_initialize_value): Here too.
	(ml_value_is_empty): And here.
	(ml_value_to_string): And finally here.

	* message-tag-followup.c (message_tag_followup_i18n_name): New
	convenience function.

svn path=/trunk/; revision=15680
2002-02-11 23:00:13 +00:00
e02a62282c removed more needs-reply cruft
svn path=/trunk/; revision=15604
2002-02-08 00:48:26 +00:00
b7ac37f6b1 Bumped the required version of gal.
2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* configure.in: Bumped the required version of gal.

From addressbook/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_setup_menus): Changed this function to use the
	new GalViewMenus which takes a GalViewInstance, instead of a
	GalViewCollection.

From calendar/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* gui/e-tasks.c (e_tasks_setup_view_menus), gui/gnome-cal.c
	(gnome_calendar_setup_view_menus): Made these use the new
	GalViewMenus stuff.

From mail/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* folder-browser.c, folder-browser.h, folder-browser-ui.c,
	folder-browser-ui.h
	(folder_browser_ui_setup_view_menus,
	folder_browser_ui_discard_view_menus): Changed this to use the new
	GalViewMenus stuff.  Made these exported functions.

	* mail-callbacks.c, message-browser.c: Changed these to not pass
	the now removed row parameter to message_list_select.

	* mail-config.c, mail-config.h (mail_config_folder_to_safe_url):
	Refactored this out of mail_config_folder_to_cachename.

	* message-list.c, message-list.h (message_list_select): Removed
	the row argument.  Changed this to use the new function in ETree
	for finding the next cursor row that matches a test.
	(message_list_construct): Handle a failed construction of the
	ETree here.
	(message_list_setup_etree, save_tree_state): Don't load or save
	the header state.  folder-browser-ui.c deals with this now.

From views/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* addressbook/galview.xml, calendar/galview.xml, mail/galview.xml,
	tasks/galview.xml: Added default-view parameters.

	* mail/As_Sent_Folder.galview: New galview.

	* mail/Makefile.am, mail/galview.xml: Added As_Sent_Folder
	galview.

From widgets/ChangeLog:

2002-02-07  Christopher James Lahey  <clahey@ximian.com>

	* menus/gal-view-menus.c, menus/gal-view-menus.h
	(gal_view_menus_new): Made this take a GalViewInstance instead of
	a GalViewCollection.  Reworked most of this to utilize the
	interfaces provided by GalViewInstance.

svn path=/trunk/; revision=15592
2002-02-07 11:24:08 +00:00
a184d302d5 Removed references to NEEDS_REPLY.
2002-02-06  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c: Removed references to NEEDS_REPLY.

	* mail-callbacks.c (mark_as_needing_reply): Removed.
	(mark_as_not_needing_reply): Removed.
	(toggle_need_reply): Removed.

	* folder-browser.c (on_right_click): Remove CAN_MARK_NEEDS_REPLY
	stuff, this is going to be implemented in an entirely different
	way.

svn path=/trunk/; revision=15585
2002-02-07 00:27:24 +00:00
956b6f95d0 When performing a wraparound, check to see if the first (or last depending
2002-01-08  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_select): When performing a
	wraparound, check to see if the first (or last depending on
	direction) message fits the selection criteria before telling
	etable to find the next/previous matching node.

	* mail-account-gui.c (mail_account_gui_new): When connecting to
	the transport username changed event, pass the gui->transport not
	the gui->source.

svn path=/trunk/; revision=15267
2002-01-08 22:47:21 +00:00
fb540f5bfb Makes the auto-undelete behavior when changing message flags a bit more
2001-12-20  Jon Trowbridge  <trow@ximian.com>

        * message-list.c (on_click): Makes the auto-undelete behavior when
        changing message flags a bit more sane. (Fixes #17634)

svn path=/trunk/; revision=15200
2001-12-21 03:39:10 +00:00
6642d01f14 Add ETable magic for our new "Needs Reply" column. (The next few entries
2001-12-11  Jon Trowbridge  <trow@ximian.com>

	* message-list.etspec: Add ETable magic for our new "Needs Reply"
	column.  (The next few entries are for bug #90)

	* message-list.h: Add COL_NEED_REPLY.

	* message-list.c: Move mail_need_reply_xpm to the end of
	states_pixmaps.
	(ml_duplicate_value): Handle COL_NEED_REPLY.
	(ml_free_value): Handle COL_NEED_REPLY.
	(ml_initialize_value): Handle COL_NEED_REPLY.
	(ml_value_is_empty): Handle COL_NEED_REPLY.  Added
	needs_reply_map[] array.
	(ml_value_to_string): Handle COL_NEED_REPLY.
	(ml_tree_value_at): Fix magic numbers, undoing my changes from the
	otehr day.  Add handler for COL_NEED_REPLY.
	(message_list_create_extras): Attach icons for COL_NEED_REPLY.
	(on_click): Undo my previous changes to display need-reply status
	in COL_MESSAGE_STATUS.  Add handing for COL_NEED_REPLY.

	* mail.h: Change mail_format_mime_message, mail_format_raw_message
	and the MailMimeHandlerFn typedef to take GtkHTML and
	GtkHTMLStream args, as per our changes in mail-format.c.

	* mail-format.c: Giant refactoring.  Remove the assumption
	throughout that we will always want to render into the GtkHTML
	object contained in the MailDisplay.  Instead, always pass in the
	GtkHTML and GtkHTMLStream that we want to write to.  Also, ignore
	theme work-arounds if the printing flag is set.  (This and what
	follows fixes bug #82)

	* mail-display.h: Remove GtkHTMLStream *stream from MailDisplay.
	We don't need it anymore.

	* mail-display.c (mail_display_render): Added.  Breaks the code
	that renders the message into the GtkHTML object out of
	mail_display_redisplay.
	(mail_display_redisplay): Call mail_display_render.
	(mail_display_init): Remove reference to ->stream.
	(mail_display_new): Remove reference to ->stream.

	* mail-callbacks.c (do_mail_print): Create a new GtkHTML to render
	our printed version into (via the new function
	mail_display_render.  Set the MailDisplay's printing flag to TRUE
	before we render, and set it back to FALSE afterwards.
	(do_mail_fetch_and_print): If the preview pane isn't open when we
	try to print, fetch the message before printing.
	(print_msg): Call do_mail_fetch_and_print.
	(print_preview_msg): Call do_mail_fetch_and_print.

	* folder-browser-ui.c: Remove "PrintMessage" and
	"PrintPreviewMessage" from message_pane_enables... these now work
	when the preview pane is closed.  Disable printing if multiple
	messages are selected.

svn path=/trunk/; revision=14981
2001-12-11 18:03:44 +00:00
b5e7713c8e Implements marking messages as "Need Reply".
Implements marking messages as "Need Reply".

2001-12-09  Jon Trowbridge  <trow@ximian.com>

	* mail-need-reply.xpm: Added a really, really ugly and
	awful icon to symbolize "message needs a reply".

	* Makefile.am (EXTRA_DIST): Added mail-need-reply.xpm.

2001-12-09  Jon Trowbridge  <trow@ximian.com>

	* camel-folder-summary.c: Add "NeedsReply" to the flag_names array
	for CAMEL_MESSAGE_NEEDS_REPLY.

	* camel-folder-summary.h: Added CAMEL_MESSAGE_NEEDS_REPLY flag.

2001-12-09  Jon Trowbridge  <trow@ximian.com>

	* vfoldertypes.xml: Add "Needs Reply" option to different status
	types.

	* filtertypes.xml: Add "Needs Reply" option to different status
	types.

2001-12-09  Jon Trowbridge  <trow@ximian.com>

	* message-list.c: #include "art/mail-need-reply.xpm".
	(ml_tree_value_at): Adjust magic numbers, show "Need Reply" icon
	if the message needs reply.
	(message_list_create_extras): Adjust magic numbers to add new
	icon.
	(on_click): Changed to toggle between unread, read, and need reply
	when the status icon is clicked.

	* mail-callbacks.c (mark_as_needing_reply): Added.
	(mark_as_not_needing_reply): Added.  Add "set" value to struct
	post_send_data.
	(composer_sent_cb): Use both "flags" and "set" elements of
	post_send_data when setting message flags.
	(mail_reply): Clear "Needs Reply" flag when we actually reply to a
	message.

	* folder-browser.c: Changed flag values to be given by
	bit-shifting (1<<5) vs. base-ten (32).  Added
	CAN_MARK_DOESNT_NEED_REPLY flag.  Added "Mark as Needing Reply"
	and "Mark as Not Needing Reply" elements to context menu.
	(on_right_click): Hide "Mark as (Not) Needing Reply" context menu
	elements as appropriate.

svn path=/trunk/; revision=14946
2001-12-10 03:50:36 +00:00
289a09f501 If the path exists, make sure it's a regular file (or we can't possibly
2001-11-28  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (save_msg_ok): If the path exists, make sure
	it's a regular file (or we can't possibly save to it). Fix for
	#14127.

2001-11-28  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_select): Cleaned up the code.

	* mail-callbacks.c (previous_unread_msg): Pass wraparound as TRUE.

svn path=/trunk/; revision=14850
2001-12-03 19:57:19 +00:00
c07ade51d5 Reverted my hide_save_state patch.
2001-11-21  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c: Reverted my hide_save_state patch.

svn path=/trunk/; revision=14775
2001-11-21 20:44:26 +00:00
9ce31bbfa8 'n' shouldn't wrap if 'p' doesn't.
2001-11-20  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_select): 'n' shouldn't wrap if 'p'
	doesn't.

svn path=/trunk/; revision=14766
2001-11-20 21:33:15 +00:00
e0103cdf6e Save hide state. (message_list_hide_uids): Save hide state.
2001-11-16  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (message_list_hide_clear): Save hide state.
	(message_list_hide_uids): Save hide state.
	(message_list_hide_add): Save hide state.

	* mail-format.c (format_mime_part): Make sure the mime-type is
	non-NULL before passing it off to mail_lookup_handler().

svn path=/trunk/; revision=14734
2001-11-16 22:54:19 +00:00
404df6b3a1 Use GINT_TO_POINTER here for platforms where simply casting an int to void
2001-11-02  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (ml_tree_value_at): Use GINT_TO_POINTER here for
	platforms where simply casting an int to void * won't work.
	(build_flat_diff, main_folder_changed): Call
	e_tree_model_pre_change here.

svn path=/trunk/; revision=14581
2001-11-03 13:28:23 +00:00
0
093a00cf2b Argh!!! Dont free the async op data here, the async op is still running
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-30 03:28:40 +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
3
36894c7adc Dont do anything if we're destroyed #13021.
2001-10-23    <NotZed@Ximian.com>

        * message-list.c (regen_list_regened): Dont do anything if we're
        destroyed #13021.

svn path=/trunk/; revision=13963
2001-10-23 22:10:14 +00:00
700863d703 Check that the cursor_uid is non-NULL before emitting a "message_selected"
2001-10-16  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (on_cursor_activated_idle): Check that the
	cursor_uid is non-NULL before emitting a "message_selected"
	signal. Fixes bug #6015.

svn path=/trunk/; revision=13706
2001-10-16 21:35:13 +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
29175904b0 Revert the change to remove the Score column until Chris can fix ETable so
* message-list.c, message-list.h, message-list.etspec: Revert the
	change to remove the Score column until Chris can fix ETable so
	it's possible to remove a column without breaking everyone's
	exisiting settings.

svn path=/trunk/; revision=13646
2001-10-13 01:29:14 +00:00
fdd4274ddf removed Score stuff from the message-list
svn path=/trunk/; revision=13626
2001-10-12 20:40:48 +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
0209a69447 Turn on "uniform_row_height" argument.
2001-10-05  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (message_list_setup_etree): Turn on
	"uniform_row_height" argument.

svn path=/trunk/; revision=13442
2001-10-05 13:30:13 +00:00
cead076702 Check for the root node here.
2001-09-26  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (mlfe_callback): Check for the root node here.

svn path=/trunk/; revision=13177
2001-09-26 23:52:25 +00:00
0168b67f2a Use e_tree_selected_path_foreach instead of e_tree_selected_row_foreach
2001-09-26  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (message_list_foreach): Use
	e_tree_selected_path_foreach instead of
	e_tree_selected_row_foreach here.

svn path=/trunk/; revision=13145
2001-09-26 10:36:47 +00:00
39a677e75a Use e_strftime_fix_am_pm instead of strftime.
2001-09-24  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (filter_date): Use e_strftime_fix_am_pm instead
	of strftime.

svn path=/trunk/; revision=13104
2001-09-24 21:47:48 +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
67b6c40da6 Updated required version of gal to 0.11.99.4.
2001-09-16  Christopher James Lahey  <clahey@ximian.com>

	* configure.in: Updated required version of gal to 0.11.99.4.

From calendar/ChangeLog:

2001-09-16  Christopher James Lahey  <clahey@ximian.com>

	* gui/dialogs/meeting-page.c (build_etable): Updated this to match
	the new ETableSimple interface.

From mail/ChangeLog:

2001-09-16  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (ml_get_node_by_id): Made save_id const here.

From shell/ChangeLog:

2001-09-16  Christopher James Lahey  <clahey@ximian.com>

	* e-storage-set-view.c (etree_get_node_by_id): Made save_id const
	here.

svn path=/trunk/; revision=12870
2001-09-17 04:00:31 +00:00
136c97b56d Use g_utf8_collate instead of g_strcasecmp for comparing names.
* message-list.c
(e_mail_address_compare): Use g_utf8_collate instead of g_strcasecmp
for comparing names.
(subject_compare): Replaced g_strcasecmp, isspace, var++ with UTF-8
counterparts.

svn path=/trunk/; revision=12541
2001-08-31 21:41:31 +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
1decfd89d3 Don't sink the extras since _set_folder can get called more than once (on
2001-08-21  Peter Williams  <peterw@ximian.com>

	* message-list.c (message_list_set_folder): Don't sink the extras since
	_set_folder can get called more than once (on reconfigure.)
	(message_list_destroy): So just unref the extras here.

svn path=/trunk/; revision=12345
2001-08-21 18:42:24 +00:00
7da638d6aa Always remove the idle and return FALSE, instead of returning TRUE if more
2001-08-15  Peter Williams  <peterw@ximian.com>

	* message-list.c (on_cursor_activated_idle): Always remove the
	idle and return FALSE, instead of returning TRUE if more than one
	message is selected.

svn path=/trunk/; revision=12075
2001-08-15 21:28:59 +00:00
0c485b040f Use ALWAYS for scroll frame policy because ETable acts lame with
2001-08-15  Jason Leach  <jleach@ximian.com>

	* message-list.c (message_list_init): Use ALWAYS for scroll frame
	policy because ETable acts lame with AUTOMATIC.  Bug #6925.

svn path=/trunk/; revision=12061
2001-08-15 19:25:01 +00:00
21a13fbcb6 gets rid of those annoying operation-re-registered messages at last.
2001-08-15  Not Zed  <NotZed@Ximian.com>

        * mail-local.c (register_folder_register): Remove operation
        registration/etc.  Handled by mail-mt.c

        * message-list.c (regen_list_regen): Remove camel operation
        registration/etc.

svn path=/trunk/; revision=12041
2001-08-15 04:46:35 +00:00
b89002edea Do some g_assert() action. Make sure that the node passed in is non-NULL
2001-08-13  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (get_message_uid): Do some g_assert()
	action. Make sure that the node passed in is non-NULL and also
	make sure that the CamelMessageInfo gotten from the ETree is
	non-NULL.
	(get_message_info): Same here.

svn path=/trunk/; revision=11959
2001-08-13 20:41:50 +00:00
acdfbcd161 Since 'N' keypresses go through here now, use wrap-around selecting.
2001-08-10  Jason Leach  <jleach@ximian.com>

	* mail-callbacks.c (next_unread_msg): Since 'N' keypresses go
	through here now, use wrap-around selecting.
	(previous_unread_msg): Same for 'P' here.

	* message-list.c (on_cursor_activated_idle): Stop this idle timer
	when we have multiple items selected, this keeps it from loading
	and then marking the last item in your selection list as read.
	Bug #4693.

svn path=/trunk/; revision=11895
2001-08-10 20:02:05 +00:00
d9ae7c3b78 Free dbkey if we don't use it.
2001-08-10  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-config.c (mail_config_get_show_preview): Free dbkey if we
	don't use it.

	* 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=11874
2001-08-10 05:24:43 +00:00
91cc2f264e Added a g_assert_not_reached() - I'm hoping this will help us track down
2001-08-09  Jeffrey Stedfast  <fejj@ximian.com>

	* message-list.c (mlfe_callback): Added a g_assert_not_reached() -
	I'm hoping this will help us track down the "can't delete message
	sometimes" (ie bug #6637 and friends) bugs that users have been
	reporting. If herein lies the problem, then we can expect some
	crashes and some good backtraces, hopefully.

svn path=/trunk/; revision=11854
2001-08-09 23:58:52 +00:00
8575c0d88d Fix inline documentation.
2001-08-09  Peter Williams  <peterw@ximian.com>

	* message-list.c (message_list_select): Fix inline documentation.

svn path=/trunk/; revision=11852
2001-08-09 23:47:40 +00:00
633656205f Dont double-register this operation, mail-mt will do it for us.
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-09 04:26:08 +00:00
c56fade286 Fix a minor glitch with how it started a backwards wraparound at the 2nd
2001-08-06  Jason Leach  <jleach@ximian.com>

	* message-list.c (message_list_select): Fix a minor glitch with
	how it started a backwards wraparound at the 2nd to last message,
	skipping the very last message.

svn path=/trunk/; revision=11698
2001-08-06 16:31:25 +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
b751e3beb0 Added. Provide description for filter_folder_op. (fetch_mail_describe):
2001-08-02  Jon Trowbridge  <trow@ximian.com>

	* mail-ops.c (filter_folder_describe): Added.  Provide
	description for filter_folder_op.
	(fetch_mail_describe): Added.  Provide description for
	fetch_mail_op.

	* message-list.c (regen_list_describe): Added.  Provide
	description for regen_list_op.

	* mail-config.c (check_service_describe): Added.  Provide
	description for check_service_op.

	* folder-info.c (do_describe_info): Added.  Provide description
	for get_info_op.

svn path=/trunk/; revision=11604
2001-08-03 04:35:06 +00:00
cb4926026f Go back to calling mail_msg_free here. (mail_msg_destroy): Remove the
2001-07-23  Not Zed  <NotZed@Ximian.com>

        * mail-mt.c (mail_msgport_replied): Go back to calling
        mail_msg_free here.
        (mail_msg_destroy): Remove the operation unregistration stuff.
        (mail_msg_received): And put it here, so we unregister as soon as
        the async part of the operation is complete.  I thought about this
        and we should be doing this anyway so we register/unregister
        always in the same thread, although the camel_operation api
        doesn't enforce it, this *is* what it expects.

        * message-list.c (regen_list_regen): re-add reporting to
        rebuilding the message list.  Basically fixes #4931

svn path=/trunk/; revision=11332
2001-07-24 01:36:11 +00:00
400b130060 Set the vertical scrolling policy for the mail display to AUTOMATIC, only
2001-07-19  Jason Leach  <jleach@ximian.com>

	* mail-display.c (mail_display_new): Set the vertical scrolling
	policy for the mail display to AUTOMATIC, only get a scrollbar if
	the e-mail is longer than one frame.

	* folder-browser.c (my_folder_browser_init): We were setting the
	policy twice (and to two different things).  Removed this one.

	* message-list.c (message_list_init): Set the policy for the
	message list scroll frame to be horizontal=NEVER,
	vertical=AUTOMATIC (scrollbar only if you have >1 page of
	messages).

svn path=/trunk/; revision=11239
2001-07-19 21:45:06 +00:00
04d7e28a0b Some NULL protection for our strings: pgp_key, html_signature, smime_key.
2001-07-09  Peter Williams  <peterw@ximian.com>

	* mail-config.c (mail_config_write): Some NULL protection for our strings:
	pgp_key, html_signature, smime_key. Probably we should do this for all
	strings. Either that or change Bonobo Config.

	* message-list.c (message_list_init): Explicitly initialize search to NULL.
	Bug 3951 might to be due to a problem wrt this, and it can't hurt.

svn path=/trunk/; revision=10919
2001-07-09 18:00:53 +00:00
b6214e68c3 Check for new_uid != NULL here before strcmping.
2001-07-07  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (on_cursor_activated_cmd): Check for new_uid !=
	NULL here before strcmping.

svn path=/trunk/; revision=10889
2001-07-08 03:44:24 +00:00