Commit Graph

261 Commits

Author SHA1 Message Date
1bd6c04cf6 Added more debugging code to help figure out why a certain image isn't
2002-03-04  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-display.c (load_http): Added more debugging code to help
	figure out why a certain image isn't loading - looks like
	gnome-vfs is getting a premature EOF?

svn path=/trunk/; revision=15910
2002-03-04 23:01:28 +00:00
c5f85f4f33 Connect to the focus-in/out events on the message-list so that we can
2002-03-04  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (my_folder_browser_init): Connect to the
	focus-in/out events on the message-list so that we can disable the
	EditInvertSelection and EditSelectThread menu items when the
	message-list is not in focus.

	* folder-browser-ui.c (folder_browser_ui_message_list_unfocus):
	New function to de-sensitize some items if the message-list is not
	in focus.
	(folder_browser_ui_message_list_focus): New function to sensitize
	some items if the message-list is not in focus.

	* mail-callbacks.c (invert_selection): Only invert the selection
	of the message-list if it is the widget in focus.

	* message-list.c (message_list_select): Do not explicitly grab the
	focus here.

svn path=/trunk/; revision=15909
2002-03-04 22:01:12 +00:00
c08e6b2652 rename folder_browser_search_query_changed to this.
2002-02-24  Chris Toshok  <toshok@ximian.com>

        * folder-browser.c (folder_browser_search_do_search): rename
        folder_browser_search_query_changed to this.
        (folder_browser_gui_init): hook both query_changed and
        search_activated up to folder_browser_search_do_search, preserving
        current behavior.

svn path=/trunk/; revision=15829
2002-02-25 11:05:39 +00:00
69eb6f9a7b oops, Ximian is spelled Ximian, not Ximain. :-)
svn path=/trunk/; revision=15725
2002-02-14 19:11:06 +00:00
05014ce820 Implement. (drag_data_delete_cb): Implement. (do_attachment_header): Setup
2002-02-13  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-display.c (drag_data_get_cb): Implement.
	(drag_data_delete_cb): Implement.
	(do_attachment_header): Setup Drag & Drop. This implements
	bugzilla bug #1066.

svn path=/trunk/; revision=15721
2002-02-14 01:24:23 +00:00
926cc83a34 Fixed a bug.
2002-02-12  Jeffrey Stedfast  <fejj@ximian.com>

	* message-tag-followup.c (set_widget_values): Fixed a bug.

	* mail-callbacks.c (flag_for_followup): If only 1 message is
	selected and it happens to already be marked for follow-up, set
	the value of the flag on the editor so the settings are restored.

	* folder-browser-ui.c: Set the pixmaps on MarkAsRead, MarkAsUnread
	and MarkAsImportant bonobo verbs. Also connect to
	flag-for-followup verb.
	(folder_browser_ui_set_selection_state): Added MessageFollowUpFlag
	verb to the array of verb strings.

	* folder-browser.c: Set key accelerators on the follow-up
	right-click menu items to match Outlook.

svn path=/trunk/; revision=15702
2002-02-13 01:09:56 +00:00
af223e6f19 Implemented. (on_right_click): Do better enabling/hiding of unwanted
2002-02-11  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (followup_tag_complete): Implemented.
	(on_right_click): Do better enabling/hiding of unwanted
	flag-for-followup options.

svn path=/trunk/; revision=15675
2002-02-11 16:54:59 +00:00
f9f3d6073e New flag-for-followup tag editor dialog.
2002-02-08  Jeffrey Stedfast  <fejj@ximian.com>

	* message-tag-followup.[c,h]: New flag-for-followup tag editor
	dialog.

	* mail-callbacks.c (flag_for_followup): New callback that pops up
	a flag-for-followup editor dialog.
	(flag_followup_completed): Marks all flag-for-followup'd messages
	as 'complete'.
	(flag_followup_clear): Clears all flag-for-followup tags from the
	selected messages.

	* message-tags.glade: glade file for tag editors.

svn path=/trunk/; revision=15632
2002-02-09 02:03:07 +00:00
9fecb732de Base class for a message tag editor.
2002-02-08  Jeffrey Stedfast  <fejj@ximian.com>

	* message-tag-editor.[c,h]: Base class for a message tag editor.

	* folder-browser.c (on_right_click): Setup the hide/enable masks
	for "Flag for Follow-up"

	* mail-callbacks.c (confirm_expunge): Instead of hiding deleted
	messages and then expunging, disable the use of the message-list
	completely during the expunge operation.
	(expunged_folder): Re-enable the use of the message-list widget
	here.

svn path=/trunk/; revision=15626
2002-02-08 22:32:13 +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
8cdf205496 Implements bug #15692
2002-01-23  Jeffrey Stedfast  <fejj@ximian.com>

	Implements bug #15692

	* folder-browser.c (html_button_press_event): New callback that
	checks to make sure that the mouse isn't over a link or image in
	the html view and then calls the on_right_click handler after
	getting the appropriate args.
	(my_folder_browser_init): Connect to the button_press_event here.

svn path=/trunk/; revision=15437
2002-01-23 20:43:16 +00:00
79d8399544 Avoid embedding <object> tags when we are printing.
2001-12-17  Jon Trowbridge  <trow@ximian.com>

	* mail-format.c (attachment_header): Avoid embedding <object> tags
	when we are printing.
	(handle_multipart_signed): Don't do the click-for-info signature
	stuff when we are printing.
	(handle_via_bonobo): Don't embed an <object> tag if we are
	printing.

	* folder-browser.c: Changed context_menu[] array so that we can
	print when the preview pane is closed.

svn path=/trunk/; revision=15139
2001-12-17 21:16:30 +00:00
d91cf08981 Fixed for mail_content_loaded's new signature.
2001-12-11  Jon Trowbridge  <trow@ximian.com>

	* mail-identify.c (mail_identify_mime_part): Fixed for
	mail_content_loaded's new signature.

	* mail-format.c (attachment_header): Don't convert URLs, etc. if
	we are printing.
	(write_address): Don't convert addresses to mailto: links if we
	are printing.
	(write_one_text_plain_chunk): Add a printing flag, that we pass
	along to mail_text_write.
	(handle_text_plain): Pass our printing flag to
	write_one_text_plain_chunk.
	(mail_get_message_rfc822): Don't unneccesarily convert URLs.
	(mail_content_loaded): Add a GtkHTML parameter.

	* mail-display.c (mail_display_initialize_gtkhtml): Added.  Breaks
	all of the signal hookups out of mail_display_new.
	(mail_display_new): Call mail_display_initialize_gtkhtml.
	(mail_text_write): Don't convert URLs, etc., if we are printing.
	Lots of other changes to pass around GtkHTML/GtkHTMLStream objects.

	* mail-callbacks.c (do_mail_print): Call
	mail_display_initialize_gtkhtml on our GtkHTML object.

	* folder-browser.c (update_status_bar): Make the status bar more
	useful when you have a large number of hidden messages.

svn path=/trunk/; revision=14997
2001-12-11 23:07:22 +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
ba58d14fae merged from evoution-1-0-branch
2001-11-25  Not Zed  <NotZed@Ximian.com>

        * mail-config.c (config_read): Enable news accounts that exist
        always, since no gui for it.

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

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

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

2001-11-20  Not Zed  <NotZed@Ximian.com>

        * folder-browser-ui.c: Disable search if no message
        loaded/viewed.  Also for #14348.

        * folder-browser.c: Disable "Add sender to addressbook" if we dont
        have a message loaded (it wont work).  For #14348.

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

        * mail-display.c (load_content_loaded): Make sure the mail-display
        object is still "alive" before accessing any of it's data.

svn path=/trunk/; revision=14796
2001-11-27 21:41:18 +00:00
056f54ee28 Was x_evolution_message_parse from folder-browser.c. A space char is no
2001-11-08  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-tools.c (mail_tools_x_evolution_message_parse): Was
	x_evolution_message_parse from folder-browser.c. A space char is
	no longer used to separate the folder URI and the first uid,
	instead this is now done with a nul-char so update to parse the
	newer/better format.

	* component-factory.c (destination_folder_handle_drop): Update to
	parse the new/better format.

	* folder-browser.c (x_evolution_message_parse): Moved to
	mail-tools.c
	(message_list_drag_data_get): Instead of placing a space char
	after the folder URI, instead use a nul-char.

svn path=/trunk/; revision=14645
2001-11-09 19:36:03 +00:00
2
e735e8fa89 Disconnect from the message_list_built function so we dont do it every
2001-11-02    <NotZed@Ximian.com>

        * message-browser.c (message_browser_message_list_built):
        Disconnect from the message_list_built function so we dont do it
        every time the list is rebuilt.

        * mail-callbacks.c (composer_send_cb): Disable autosave when we're
        sending mail.
        (composer_sent_cb): Re-enable autosave.

        * folder-browser-ui.c (fbui_sensitize_timeout): Make sure we reset
        any data we're using on the folderbrowser before doing anything
        'cause things could vanish while we're doing it, and also
        ref/unref the folderbrowser so it doesn't vanish while w'ere
        working.

        * folder-browser.c (folder_browser_set_ui_component): If we are
        changing the ui comp, remove any pending timeouts.  For #13719.

svn path=/trunk/; revision=14575
2001-11-03 00:07:33 +00:00
b4a24233f6 fix cut & paste from the message body.
2001-11-01  Larry Ewing  <lewing@ximian.com>

	* folder-browser.c (folder_browser_copy): fix cut & paste from the
	message body.

svn path=/trunk/; revision=14568
2001-11-02 02:36:05 +00:00
2e6dc6d43f Don't warn the user if the source and destination folders are the same.
2001-10-29  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-ops.c (transfer_messages_transfer): Don't warn the user if
	the source and destination folders are the same.

svn path=/trunk/; revision=14410
2001-10-30 03:25:51 +00:00
60dcd52057 Fixed a warning by #if 0ing out this function.
2001-10-29  Christopher James Lahey  <clahey@ximian.com>

	* e-searching-tokenizer.c (search_info_set_match_size_increase):
	Fixed a warning by #if 0ing out this function.

	* folder-browser.c, folder-browser.h (on_selection_changed):
	Update status bar in an idle call.  Fixes Ximian bug #13929.

	* mail-folder-cache.c (folder_renamed, store_folder_renamed):
	Fixed some warnings here.

svn path=/trunk/; revision=14372
2001-10-29 22:41:35 +00:00
9892741e7e Fix the focus check. It's not fb->message_list that has focus, it's one of
* folder-browser.c (folder_browser_copy): Fix the focus check.
	It's not fb->message_list that has focus, it's one of its
	children. #13616.

svn path=/trunk/; revision=14370
2001-10-29 22:25:43 +00:00
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