Commit Graph

269 Commits

Author SHA1 Message Date
8ae13b9883 Changed to get the address from the messageinfo of the current selected
2002-03-26  Not Zed  <NotZed@Ximian.com>

        * mail-callbacks.c (addrbook_sender): Changed to get the address
        from the messageinfo of the current selected message rather than
        from the current_message.
        (requeue_mail_reply): Only re-queue if we got a message, could
        potentially cause an infinite loop trying to get a message it
        can't.
        (reply_to_sender, reply_to_list, reply_to_all): Always pass NULL
        as the msg to mail_replay, this forces mail_reply to always load
        the message anew.  Fixes FIXME's and popup behaviour.  Basically
        this and stuff below fixes #8542.  Its probably not the nicest
        way, but it works.
        (mark_as_important): Use the flags properly, we can set all flags
        to any combination of on or off as we want, so we just need to
        call set_flags once, thats why its set flags and not set_option.
        (toggle_flags): Fixed the logic here also, so we dont have to call
        set_message_flags more than once, and also implement a true toggle
        for any number of simultaneous flags (whilst simplifying code).

        * mail-vfolder.c (vfolder_gui_add_from_mlist): Removed the 'msg'
        parameter, its not used, fixed callers.

        * folder-browser.c (on_right_click): Lookup the mlist from
        messageinfo, and change the 'no selected' logic slightly, fixes
        most of #8542.
        (filter_data_free): Free filter data struct.
        (vfolder_type_got_message): Actually create vfolder once we have
        the message we need to use for it.  Code could probably be changed
        to use messageinfo instead.
        (vfolder_type_uid): Lookup a message based on uid, and use that to
        create a vfolder based on type.
        (vfolder_subject_uid, vfolder_sender_uid, vfolder_receipient_uid,
        vfolder_mlist_uid): Callbacks for the popup menu, used to create
        rules based on the uid rather than the message, which it loads as
        required.
        (filter_type_got_message, filter_*_uid): Similar to vfolder
        stuff above.
        (filter_menu[]): Changed callbacks to popup specific ones, not
        folderbrowser specific ones used by bonobo.
        (on_right_click): Initialise callback data for the filter submenu
        so it can look up messages for callback implementation.

svn path=/trunk/; revision=16253
2002-03-26 06:55:05 +00:00
9eeff8bfec Add accelerators for "Find Now" and "Clear".
* e-search-bar.c (update_bonobo_menus): Add accelerators for "Find
Now" and "Clear".

* e-filter-bar.h: Change search labels as suggested in Anna's
redesign [#16246].

* folder-browser.c: Reorder folder_browser_search_menu_items
according to #16246.

svn path=/trunk/; revision=16219
2002-03-20 22:25:06 +00:00
6f9b8ecfb3 [Search bar re-design implementation, Take 2.]
* e-search-bar.c (clear_verb_cb): New.
(setup_standard_verbs): New.
(e_search_bar_set_ui_component): Call it if a new
BonoboUIComponent is set.
(append_xml_menu_item): New helper function.
(update_bonobo_menus): Use it.  Also add a "Clear" menu item.
(e_search_bar_construct): @menu_items can be NULL now.
(e_search_bar_new): Same here.
(set_menu): Work with NULL items.

* e-filter-bar.c (menubar_activated): Don't handle
E_FILTERBAR_RESET_ID anymore.

* e-filter-bar.h: Remove `E_FILTERBAR_RESET_ID' and `E_FILTERBAR_RESET'.

* folder-browser.c: Remove E_FILTERBAR_RESET menu entry.

* gui/cal-search-bar.c: Removed `search_menu_items'.
(cal_search_bar_menu_activated): Removed.
(cal_search_bar_class_init): Don't install.
(cal_search_bar_construct): No menu items here.

* gui/component/addressbook.c (addressbook_menu_activated):
Removed.
(addressbook_factory_new_control): Don't connect anymore, as this
signal has been removed from the ESearchBar.
(addressbook_factory_new_control): No more custom menu items here.

svn path=/trunk/; revision=16194
2002-03-18 20:06:00 +00:00
0ae3f73824 Draw colour rectangles for each of the colour items and set a closure on
2002-03-15  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (on_right_click): Draw colour rectangles for
	each of the colour items and set a closure on each.
	(colourise_msg): colourise the message, yo.

svn path=/trunk/; revision=16187
2002-03-16 04:40:07 +00:00
4c1a78e612 New callback to set a colour on a message.
2002-03-15  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (colour_msg): New callback to set a colour on a
	message.

	* folder-browser.c (on_right_click): Setup our popup icons and
	stuff. Also add a submenu for Labels.

	* mail-display.c (pixmap_press): Sync up with the new EPopupMenu
	API. Note: This code can probably now be fixed to use per-item
	closures - yay!

	* mail-accounts.c (construct): Connect to the label GtkEntry's and
	GnomeColorPickers and also to the Restore Defaults button.

	* mail-config.c (mail_config_get_label_name): New function to get
	a label's name.
	(mail_config_set_label_name): New function to set the label name.
	(mail_config_get_label_color): New function to get the label
	color.
	(mail_config_set_label_color): New function to set the label
	color.
	(config_read): Read in the config options for the labels and their
	colors.
	(mail_config_write_on_exit): Save the label options.

svn path=/trunk/; revision=16186
2002-03-16 02:22:54 +00:00
b171dcc269 expand the relative urls of the object at the point so that relative
2002-03-15  Larry Ewing  <lewing@ximian.com>

	* mail-display.c: expand the relative urls of the object at the
	point so that relative images can be saved correctly.

	* folder-browser.c: add a closing quote in a comment.

svn path=/trunk/; revision=16181
2002-03-15 23:27:04 +00:00
fff110978a Set the folder on a folder-browser object.
2002-03-12  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (folder_browser_set_folder): Set the folder on
	a folder-browser object.

	* folder-browser-window.c (folder_browser_window_new): Simple
	window to display a folder-browser.

	* mail-callbacks.c (view_digest): New callback to open a
	folder-browser-window with a digest folder.

svn path=/trunk/; revision=16127
2002-03-12 21:10:12 +00:00
3227c579dc Made all the acclerators in the context menu on a message work. (There are
2002-03-07  Anna Marie Dirks  <anna@ximian.com>

	* folder-browser.c: Made all the acclerators in the context menu on a message work. (There are 22 different menu items here, so picking a unique accelerator for each label was tricky, and some of the choices I made are different from the ones I would have made if there weren't so many stinking menu items.)

svn path=/trunk/; revision=15978
2002-03-07 23:02:34 +00:00
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