Commit Graph

146 Commits

Author SHA1 Message Date
dd04e750f2 Don't advance to the next undeleted message after "Delete"...
* folder-browser.c (on_key_press): Don't advance to the next
	undeleted message after "Delete"...

	* mail-callbacks.c (delete_msg): ...instead, do it here, whether
	the user used Delete, Alt+D, or the toolbar. (But only if they
	only deleted a single message.)

	* message-list.c (message_list_select): Don't clear the display on
	failure.
	(build_tree): Clear the display when the currently-selected
	message stops existing and we don't have an obvious message to
	select instead of it. (Eg, when deleting the last message with
	"hide deleted messages" set, or expunging while a deleted message
	is selected.)

svn path=/trunk/; revision=9744
2001-05-10 16:16:06 +00:00
a8cdef7243 Connect to key_press_event on the GtkHTML widget. (etree_key): Only handle
* folder-browser.c (my_folder_browser_init): Connect to
	key_press_event on the GtkHTML widget.
	(etree_key): Only handle space/backspace here, pass the rest off
	to on_key_press.
	(on_key_press): Handle Delete/N/P/Menu in either MessageList or
	MailDisplay.

	* message-list.c (message_list_select): Grab focus if we don't
	have it.

svn path=/trunk/; revision=9694
2001-05-07 19:16:05 +00:00
155fcd8153 only remove event handlers if we set them up originally, to avoid
warnings from camel

svn path=/trunk/; revision=9631
2001-04-30 15:48:00 +00:00
246388d822 Unhook event handlers before syncing the folder, since the folder browser
* folder-browser.c (folder_browser_destroy): Unhook event handlers
	before syncing the folder, since the folder browser will have been
	destroyed by the time the sync thread completes and calls the
	signal handlers.

svn path=/trunk/; revision=9630
2001-04-30 13:55:29 +00:00
b61b14b324 Added a new signal, "message_loaded" that gets emitted when the message
2001-04-24  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c: Added a new signal, "message_loaded" that gets
	emitted when the message has been loaded and set on the
	mail_display.
	(folder_browser_class_init): Define the "message_loaded" signal
	stuff.
	(done_message_selected): Emit the "message_loaded" signal here.

	* message-browser.c (message_browser_next_msg): Do our own
	message-list manipulation. We want the next message, not the next
	unread message.
	(message_browser_prev_msg): Same here but for previous.
	(message_browser_new): Connect to the folder browser's
	"message_loaded" signal.
	(message_browser_folder_loaded): Don't connect to the
	message-list's "message_selected" signal.
	(message_browser_message_loaded): Nw callback which replaces the
	old message_browser_message_selected callback's functionality.

svn path=/trunk/; revision=9551
2001-04-24 20:56:56 +00:00
946ca213c4 Add accelerators to the context menu. (on_right_click): Use
* folder-browser.c: Add accelerators to the context menu.
	(on_right_click): Use e_tree_get_cell_geometry and a
	GtkMenuPositionFunc when responding to a Menu-key press so we can
	line the menu up with the selected row rather than the cursor.

	* message-browser.c: include <gal/util/e-util.h> for E_MAKE_TYPE.

svn path=/trunk/; revision=9547
2001-04-24 16:23:51 +00:00
373b8669f5 Use the message-browser widget rather than the mail-view window.
2001-04-23  Jeffrey Stedfast  <fejj@ximian.com>

	* mail-callbacks.c (do_view_message): Use the message-browser
	widget rather than the mail-view window.

	* mail-view.c: Removed.

	* folder-browser.c: Added a folder_loaded signal.

	* message-browser.[c,h]: New window to solve all our message
	browsing needs. This replaces mail-view.c.

	* message-list.c (message_list_select_uid): New function needed by
	the new message-browser window.

svn path=/trunk/; revision=9525
2001-04-23 21:16:00 +00:00
b50306c380 use system = EVOLUTION_DATADIR "/file" instead of g_strdup_printf. Rename
2001-04-22  Gediminas Paulauskas <menesis@delfi.lt>

	* folder-browser.c, mail-autofilter.c, mail-callbacks.c, mail-ops.c,
	mail-summary.c, mail-vfolder.c: use system = EVOLUTION_DATADIR "/file"
	instead of g_strdup_printf. Rename userrules to user (and system) to be
	consistent.

	* mail-send-recv.c: set window icon to send-receive.xpm

2001-04-21  Gediminas Paulauskas <menesis@delfi.lt>

	* mail-summary.c: translate "Mail summary".

svn path=/trunk/; revision=9490
2001-04-21 22:52:56 +00:00
d7cd78ec3b Don't printf NULL
* folder-browser.c (do_message_selected, on_message_selected):
        Don't printf NULL

svn path=/trunk/; revision=9278
2001-04-12 18:41:31 +00:00
130017e157 Merge from evolution-0-10 to evolution-0-10-merge-0 into head.
2001-04-05  Not Zed  <NotZed@Ximian.com>

	* Merge from evolution-0-10 to evolution-0-10-merge-0 into head.

svn path=/trunk/; revision=9193
2001-04-05 02:06:26 +00:00
57574f0be3 Cleaned up #includes. Remove unneccesary includes of <gnome.h>,
2001-03-29  Kjartan Maraas  <kmaraas@gnome.org>

	* *.*: Cleaned up #includes. Remove unneccesary includes of
	<gnome.h>, <gtk/gtk.h>, <bonobo.h> and replaced with more
	fine grained headers where needed. Also marked a bunch of
	strings for translations and added some missing prototypes.

svn path=/trunk/; revision=9025
2001-03-29 20:53:17 +00:00
76219e84e7 Made this check if the control mask is set.
2001-03-20  Christopher James Lahey  <clahey@ximian.com>

	* folder-browser.c (etree_key): Made this check if the control
	mask is set.

svn path=/trunk/; revision=8844
2001-03-20 09:52:54 +00:00
68a731e0a0 Bumped gal requirement to 0.5.99.8.
2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* configure.in: Bumped gal requirement to 0.5.99.8.

From addressbook/ChangeLog:

2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* Merged branch:

2001-03-14  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-minicard-view.c: Call
	e_selection_model_simple_insert_rows and
	e_selection_model_simple_delete_rows instead of
	e_selection_model_simple_insert_row and
	e_selection_model_simple_delete_row.

End of branch

From mail/ChangeLog:

2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* Merged e-tree-rework-branch:

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c: Added has_save_id and get_save_id methods.

	* subscribe-dialog.c: Added arguments for
	e_tree_memory_callbacks_new of get_save_id and has_save_id to
	NULL.

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

	* message-list.c: Added a call to
	e_tree_memory_set_expanded_default to TRUE.  Removed all calls to
	set_expanded on nodes while the tree is frozen since this fails
	miserably now.

2001-03-13  Christopher James Lahey  <clahey@ximian.com>

	* message-list.c (message_list_get_layout): Turned off draw-grid.

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

	* folder-browser-factory.c, folder-browser.c, message-list.c,
	message-list.h, subscribe-dialog.c, subscribe-dialog.h,
	mail-callbacks.c: Converted these all to use ETree instead of
	ETable.

End of branch

From shell/ChangeLog:

2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* Merged e-tree-rework-branch:

2001-03-19  Christopher James Lahey  <clahey@ximian.com>

	* e-storage-set-view.c (etree_get_save_id): Made "root" detection
	deal properly with removed nodes.

2001-03-18  Christopher James Lahey  <clahey@ximian.com>

	* e-shell-view.c (e_shell_view_save_settings): Added some unused
	code to implement saving of the expanded state.

	* e-storage-set-view.c: Added has_save_id and get_save_id methods.

2001-03-13  Christopher James Lahey  <clahey@ximian.com>

	* e-storage-set-view.c (ETREE_SPEC): Set draw-grid here to false.

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

	* e-storage-set-view.c, e-storage-set-view.h: Chaned this to use
	ETree instead of ETable.

End of branch

svn path=/trunk/; revision=8839
2001-03-20 04:48:59 +00:00
2a9d6b7ad6 Add Resend Message menu item.
2001-03-19  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser-factory.c: Add Resend Message menu item.

	* folder-browser.c (on_right_click): Add resend to the right-click
	menu.

	* mail-callbacks.c (composer_sent_cb): Unref the message.
	(composer_postpone_cb): Unref the message here too.
	(resend_msg): New callback to allow resending of messages in the
	Sent folder.

svn path=/trunk/; revision=8816
2001-03-19 06:11:59 +00:00
fcb4ed5a4f Move the proxy event outside the lock (otherwise we always deadlock).
2001-03-17  Not Zed  <NotZed@Ximian.com>

	* mail-mt.c (mail_msg_free): Move the proxy event outside the lock
	(otherwise we always deadlock).

	* mail-local.c (reconfigure_clicked): Clear the message list
	during update inside the folder thingy.  This is a hell mess, need
	to move the gui stuff to mail-callbacks and make this reconfigure
	thing a more generic func.

	* message-list.c (ml_value_to_string): Cleanup the logic to use
	lookup tables.
	(sort_uid_to_rows): Removed due to rewrite below.
	(build_flat_diff): Changes for node/summary/etc changes.  Also do
	changed nodes too.
	(clear_tree): Free the info reference for nodes in our hashtable.
	(build_subtree): Ref the info reference in our hash/tree node.
	(on_click): Dont free message info, since we just got our ref to
	it.
	(remove_node_diff): Free messageinfo off node.
	(build_flat): Ref messageinfo.
	(message_list_set_folder): Allow a NULL folder to be set -
	i.e. clear the view.
	(message_list_set_folder): Emit a no message sleeted signal.
	(build_tree): Change cursor keeping stuff to work with new info.

	Turned off BROKEN_ETREE - well maybe it'll work.  Check for
	duplicate messages displayed, etc.

2001-03-16  Not Zed  <NotZed@Ximian.com>

	* message-list.h: Added uid_nodemap; mapping of uid's to e-tree
	nodes.

	* message-list.c (build_flat): Changed to take a summary argument,
	and to store node in node map, etc, and store info's in e-tree.
	(build_subtree): Changed to store node in node map, and to store
	info's in tree directly.
	(ml_tree_value_at): Changed to get info directly from tree node,
	removed allocated return value logic.
	(ml_tree_value_at): Removed all "fake node" handling, no fake
	nodes should ever exist.
	(id_is_uid, id_is_subject, id_uid, id_subject): Removed macro's no
	longer used.
	(new_id_from_uid, new_id_from_subject): Removed no longer used.
	(get_message_uid):
	(get_message_info): Treat tree node data as messageinfo.
	(message_list_select): Dont free the messageinfo, as its part of
	our data, not retrieved from folder.
	(message_list_drag_data_get): ditto.
	(subtree_unread): Treat tree node data as messageinfo.
	(subtree_size): ditto.
	(subtree_earliest): ditto.
	(clear_tree): Reset uid_nodemap on clear.
	(save_node_state): tree nodes == messageinfo's.
	(add_node_diff): ditto.
	(remove_node_diff): ditto.
	(main_folder_changed): use uid_nodemap to lookup changed nodes.
	(main_message_changed): ditto.

svn path=/trunk/; revision=8775
2001-03-17 04:56:54 +00:00
6e5821b6d2 Added edit item to search-bar menu.
2001-03-15  Not Zed  <NotZed@Ximian.com>

        * folder-browser.c: Added edit item to search-bar menu.

        * mail-callbacks.c (filter_edit): Changed for filter_editor_new()
        api addition/change.

        * mail-vfolder.c (vfolder_edit): Use vfolder_editor_new intead.

svn path=/trunk/; revision=8731
2001-03-15 06:57:20 +00:00
b55ef8b523 Call open_msg here so that it does the Right Thing (tm).
2001-03-08  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c (on_double_click): Call open_msg here so that
	it does the Right Thing (tm).

svn path=/trunk/; revision=8600
2001-03-08 21:52:27 +00:00
789ed9286e Reorganize the menus to have entries always in a consistent fashion, as
2001-02-27  Miguel de Icaza  <miguel@ximian.com>

	* gui/e-day-view.c (e_day_view_on_event_right_click): Reorganize
	the menus to have entries always in a consistent fashion, as
	reported to the genepool mailing list.
	(e_day_view_on_event_right_click): Added a FIXME comment to the
	FIXME comment without a FIXME.

	Now we use e_popup_menu.  This allows us to hide/show items on
	demand, and to sensitize/de-sensitize items depending on their
	state.

	This will also let us add icon support (when we get nice icons for
	this)

	* gui/e-week-view.c (e_week_view_show_popup_menu): Ditto.

	The files popup-menu.c and popup-menu.h can now be removed.
2001-03-01  Miguel de Icaza  <miguel@ximian.com>

	* folder-browser.c (on_right_click):  Move the context menus to
	the toplevel code;  Use enumerations for the various bitfield
	constants.

	Add support for hiding items that are not required (read/unread
	and delete/undelete).

	This requires my previous patch, as it assumes "Open" does the
	right thing instead of having two operations: Open and Edit.

2001-02-28  Miguel de Icaza  <miguel@ximian.com>

	* folder-browser.c (on_right_click): Removed draft folders op
	here, since open_msg now does the right thing (edit or view).

	* folder-browser-factory.c (update_pixmaps): Removed MessageEdit
	from here.

	* mail-callbacks.c (open_msg): New function, does the "right
	thing" to a message (either, edit or open).

	* folder-browser-factory.c: Register new command here.
	(update_pixmaps): Rename keys that have been shuffled around.
	(update_pixmaps): Rename to match new updates on xml file.

	Rename MessageOpenNewWindow to MessageOpen.  Change action from
	"view_message" to "open_message".

	* mail-callbacks.c (mark_all_as_seen): New command.  Marks all
	messages as seen.
2001-03-06  Miguel de Icaza  <miguel@ximian.com>

	* evolution-tasks.xml: Added "File/New/Task" as well.

	* evolution-mail.xml: Added "File/New/Mail Message" at the top
	with binding C-n.

	* evolution-calendar.xml: Set the binding for New Appointment to C-n

	* evolution-contact-editor.xml: Set the toolbar to hlook=text
	vlook=icon;  Set all icons priority-text to 1.

	* evolution-addressbook.xml: Added "Contact" to the New menu.

	* evolution.xml: Provide an entry point to put "New" items on the
	first level.

	We are going to need some Bonobo support to "hide" objects when
	other objects appear (like, having Mail Message bound to C-S-X in
	the global space, and when we switch to Mail, we only show the
	entry that has C-n as the binding).

2001-02-28  Miguel de Icaza  <miguel@ximian.com>

	* evolution.xml: Moved Importer after the Folder operations per
	Dan's proposal.

	* evolution-addressbook.xml: Renamed Settings/AddressBook
	Configuration to Tools/Settings.

	Make all the items have "Print" items that use the same icon
	instead of a collection of icons.

	* evolution-calendar.xml: Moved "Calendar Preferences" from
	"Settings" to "Tools/Settings".

	* evolution-mail.xml: Settings menu is fully gone.  All things
	that run a dialog now end up in "Tools" while actions end up in
	"Actions".  Hence I am right.

	Renamed "Mail Configuration..." to "Identieies and Servers"

	Move MessageMarkAsRead, MessageMarkAsUnRead
	to Edit menu.  Add MessageMarkAllAsRead.

	Remove "Print Message" from Message menu.  Remove "Print Preview
	Message" from Message menu.  Leave them on the "File" menu.

	Renamed "Reply to Sender" to "Reply" (awaiting Ettore's
	permission).

	Renamed "Messages" to "Actions".

	Open Message renamed to "Open Selected Items" (as this is what it
	actually does).

	Moved "Save Message As" to "File" menu.

	Added "Properties" to the File/Folder submenu.

	Edit menu now looks like this: Message Move, Message Copy, Select
	All, Invert Selection, Delete, Undelete, Mark as Read, Mark as
	Unread.  Some of them were moved from the "Messages" menu.

	"Forward message" shortcut changed to C-f

	Tools menu created.

	Create Rule From message moved to "Tools".

	* evolution.xml: Added Tools menu.  Moved Edit/Customize to
	Tools/Customize Toolbar.

	Added File/Folder submenu.  Duplicate "New Folder" in here.

2001-02-28  Miguel de Icaza  <miguel@ximian.com>

	* menus/gal-view-menus.c (build_menus): Add translation string
	here.

svn path=/trunk/; revision=8572
2001-03-06 21:08:56 +00:00
2de08e6b9a Remove very old camel lock stuff.
2001-03-03  Not Zed  <NotZed@Ximian.com>

        * mail-tools.c: Remove very old camel lock stuff.

        * mail-local.c (register_folder_registered): Add the local folder
        as a potential vfolder source.

        * folder-browser.c (got_folder): When we have a new folder,
        register it as a potential vfolder source.

        * mail-vfolder.c: Added the source rule to the vfolder_info.
        (vfolder_refresh): Store the rule in the vfolder info, etc.
        (vfolder_register_source): Function to register a newly opened
        folder with us.
        (vfolder_uri_to_folder): Save the folder in the vfolder_info too.
        (source_finalise): Handle clenaup when the folder dies.

svn path=/trunk/; revision=8534
2001-03-02 23:39:39 +00:00
f01589262c Fixes for changes to search bar. (search_save): Removed. (search_full):
2001-03-01  Not Zed  <NotZed@Ximian.com>

        * folder-browser.c (folder_browser_search_menu_activated): Fixes
        for changes to search bar.
        (search_save): Removed.
        (search_full): Removed.
        (search_full_clicked): Removed.
        (folder_browser_search_option_items[]): Removed.
        (folder_browser_search_query_changed): Changed for search bar
        changes.
        (folder_browser_clear_search): Removed.

        * mail-vfolder.c (vfolder_clone_rule): New function to clone a
        filter/search rule into a matching vfolder rule.

        * mail-send-recv.c (mail_receive_uri): Setup a timeout for status
        updates.
        (build_dialogue): Setup timeout id for status updates.
        (operation_status_timeout): New function to set the status via a
        timeout.
        (receive_done): Remove the timeout handler if we need to.
        (operation_status):
        (receive_status): Just update the info, and let the timeout
        handler update the gui.
        (do_free_status):
        (do_show_status): Removed gui thread status message processing.

2001-02-28  Not Zed  <NotZed@Ximian.com>

        * folder-browser.c (folder_browser_config_search): New function to
        configure the FilterRule for the search mechanism.

2001-02-27  Not Zed  <NotZed@Ximian.com>

        * folder-browser.c (folder_browser_gui_init): Setup the search bar
        as a filterbar.
        (got_folder): Set the whole search bar sensitive or not based on
        the search capability of the folder.

        * folder-browser.h: Changed to use efilterbar instead of esearchbar.

svn path=/trunk/; revision=8438
2001-03-01 00:58:16 +00:00
1f84ac2916 Toss the mail_tool_camel_lock* stuff. Same. Here too.
2001-02-24  Jeffrey Stedfast  <fejj@ximian.com>

	* folder-browser.c: Toss the mail_tool_camel_lock* stuff.
	* mail-ops.c: Same.
	* mail-summary.c: Here too.

	* mail-tools.c (mail_tool_uri_to_folder_noex): Blown away!
	(mail_tool_filter_get_folder_func): *kapoosh*
	(mail_tool_camel_lock_up): Same.
	(mail_tool_camel_lock_down): Same.
	(mail_tool_set_uid_flags): Don't need this rubbish anymore either.

svn path=/trunk/; revision=8384
2001-02-24 21:57:23 +00:00
5c9c2f33b9 vfolder/filter on mailing list. Doesn't acutally work right yet.
* mail-vfolder.c (vfolder_gui_add_from_mlist): Rule to add mlist
	vfolder.

	* mail-autofilter.c (filter_gui_add_for_mailing_list): Removed.
	(rule_from_mlist): Build a generic match rule from an mlist.
	(vfolder_rule_from_mlist): Setup the vfolder rule for an mlist.
	(filter_rule_from_mlist): Setup a filter rule fro an mlist.
	(filter_gui_add_from_mlist): GUI thingy to do the work.

	* folder-browser.c (on_right_click): Added vfolder on mailing list
	to filter menu.
	(on_right_click): Use header_raw_check_mailign_list instead of
	mlist magic to get the mailing list name.
	(filter_mlist): Changed to use new add_from_mlist() call.
	(vfolder_mlist): New function for vfolder from mlist.

svn path=/trunk/; revision=8358
2001-02-23 00:31:23 +00:00
601872effd Fix typo.
2001-01-30  Kjartan Maraas  <kmaraas@gnome.org>

	* folder-browser.c: Fix typo.

svn path=/trunk/; revision=7913
2001-01-30 15:14:39 +00:00
a2befe96e6 Don't handle home and end keys since %ETable deals with them now.
2001-01-27  Christopher James Lahey  <clahey@helixcode.com>

	* folder-browser.c (etable_key): Don't handle home and end keys
	since %ETable deals with them now.

svn path=/trunk/; revision=7865
2001-01-27 22:23:06 +00:00
54ac4051e9 Define BROKEN_ETREE again, till we get this stuff fixed better.
2001-01-26  Not Zed  <NotZed@Ximian.com>

	* message-list.c (build_tree): Define BROKEN_ETREE again, till we
	get this stuff fixed better.

2001-01-25  Not Zed  <NotZed@Ximian.com>

	* folder-browser.c: Moved teh "sender contains" item to the end of
	the list, so the gui doesn't suddenly change on everyone.  Fixed
	the sender-contains search string to be a valid s-exp (ha, didn't
	test it even once eh ettore?!)
	(search_save): Dont have the sender contains as the default case
	(which well, never gets called anyway), oops i guess i should've
	reviewed the patch a little more.

svn path=/trunk/; revision=7835
2001-01-26 09:16:29 +00:00
66c8e42323 Fix the "sender contain" quicksearch rule by adding a missing
parenthesis; also make it the last item on the OptionMenu instead of
the first one.

svn path=/trunk/; revision=7834
2001-01-26 06:09:43 +00:00
811ce582d4 Fix the subject match expression, which was missing a closing ).
2001-01-24  Not Zed  <NotZed@Ximian.com>

        * folder-browser.c (search_string[]): Fix the subject match
        expression, which was missing a closing ).

        * mail-send-recv.c (do_show_status): Escape any % signs in the
        string before setting the format string.

svn path=/trunk/; revision=7797
2001-01-25 02:05:34 +00:00
0f301f38bc Patch from Tuomas to have a "Sender contains" rule in the quicksearch
bar.

svn path=/trunk/; revision=7764
2001-01-23 23:51:04 +00:00
88f9e36086 remove a warning with conditional news compilation.
2001-01-22  Not Zed  <NotZed@Ximian.com>

	* component-factory.c (owner_set_cb): remove a warning with
	conditional news compilation.

	* mail-ops.h: Cleaned up the header list.

	* folder-browser-factory.c: Replace the old get_send mail with the
	new one (button).

	* mail-ops.c (set_x_mailer):
	(mail_load_evolution_rule_context):
	(mail_do_fetch_mail):
	(mail_do_filter_ondemand):
	(mail_send_mail_old):
	(mail_do_send_queue): All removed, (for) now lives in mail-send-recv.c.
	(load_context):
	(setup_filter_driver):
	(filter_get_folder):
	(mail_filter_folder):
	(mail_fetch_mail):
	(mail_update_subfolders):
	(mail_send_mail):
	(mail_send_queue): New equivalents of all these fundtions, moved
	from mail-send-recv.c ...
	(mail_filter_on_demand): Moved here too.
	(mail_load_filter_context): Export this.

	* mail-callbacks.c (apply_filters): Use the new
	mail_filter_on_demand() call.
	(send_receieve_mail): Use mail_send_receive to do the work.  Add a
	little error handling here that used to be elsewhere.
	(send_queued_mail): Removed.
	(fetch_mail): Removed.
	(select_first_unread): #ifdef'd this out.  Not sure if this still
	makes sense, but it doesn't get run right now anyway.
	(composer_postpone_cb): Fix the setting of message flags.  You
	dont need to get them first, ever.

	* mail-send-recv.c (mail_send_message): Dont use
	mail_tool_send_via_transport anymore (it does nothing useful).

	* mail-tools.c (mail_tool_camel_lock_up): Turned into a noop.
	(mail_tool_camel_lock_down): And here too.
	(mail_tool_move_folder_contents): Removed from the code (hasn't
	bene used for ages).
	(mail_tool_send_via_transport): Removed, it doesn't save anything.

svn path=/trunk/; revision=7702
2001-01-22 11:43:18 +00:00
745193f7fb Update for e_popup_menu_run change.
* mail-display.c (pixmap_press): Update for e_popup_menu_run
	change.

	* folder-browser.c (etable_key): On GDK_Menu (the menu key on
	105-key keyboards), pop up the right-click menu.
	(on_right_click): update for e_popup_menu_run change.

svn path=/trunk/; revision=7662
2001-01-20 00:21:35 +00:00
936a6d77dd Add an ::asyncCopyFolder method to the ShellComponent interface. Move
all the message hiding options to the View menu.

svn path=/trunk/; revision=7456
2001-01-12 21:00:21 +00:00
4cd709cd18 Rename "Save" to "Store search as vFolder".
2001-01-12  Miguel de Icaza  <miguel@ximian.com>

	* folder-browser.c: Rename "Save" to "Store search as vFolder".

svn path=/trunk/; revision=7439
2001-01-12 07:07:36 +00:00
e86c8105a7 Connect to folder_changed as well as message_changed for updating unread
* folder-browser.c (got_folder): Connect to folder_changed as well
	as message_changed for updating unread count

svn path=/trunk/; revision=7420
2001-01-11 23:59:15 +00:00
a2d998fe13 Brand spankin' new config druid, editor, and manager.
2001-01-08  Jeffrey Stedfast  <fejj@helixcode.com>

	* Makefile.am:
	* component-factory.c:
	* folder-browser-factory.c:
	* folder-browser.c:
	* mail-accounts.[c,h]:
	* mail-account-editor.[c,h]:
	* mail-callbacks.c:
	* mail-config.[c,h]:
	* mail-config-druid.[c,h]:
	* mail-config-druid.glade:
	* mail-display.c:
	* mail-format.c:
	* mail-tools.c: Brand spankin' new config druid, editor,
	and manager.

svn path=/trunk/; revision=7313
2001-01-09 03:31:31 +00:00
875c9d02c4 Reverted mail-config changes temporarily until I get it working correctly.
2001-01-08  Jeffrey Stedfast  <fejj@helixcode.com>

	* Makefile.am:
	* component-factory.c:
	* folder-browser-factory.c:
	* folder-browser.c:
	* mail-callbacks.c:
	* mail-config.[c,h]:
	* mail-display.c:
	* mail-format.c:
	* mail-tools.c: Reverted mail-config changes temporarily until
	I get it working correctly.

svn path=/trunk/; revision=7305
2001-01-08 20:51:24 +00:00
d53b9af629 Updated to reflect changes to the mail-config API. (create_msg_composer):
2001-01-07  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-callbacks.c (check_send_configuration): Updated to reflect
	changes to the mail-config API.
	(create_msg_composer): Same.
	(forward_get_composer): Same.
	(send_queued_mail): Same.
	(composer_send_cb): Same.

	* mail-account-editor.c: Updated to build cleanly.  *
	mail-config-druid.c: Same.  * mail-accounts.c: Same.

	* folder-browser-factory.c (control_activate): Updated for API
	changes in mail-config.

	* folder-browser.c (done_message_selected): Updated for API
	changed in mail-config.
	(folder_browser_gui_init): Same.
	(got_folder): Same.

	* component-factory.c (owner_set_cb): After using the sources
	list, free it as it is no longer a const GSList as with the older
	mail-config code.

	* mail-config.c: Totally rewritten.

svn path=/trunk/; revision=7294
2001-01-07 23:12:11 +00:00
f325b6f0a7 Fix leaks, set unread count on folder creation as well as on changes
svn path=/trunk/; revision=7250
2001-01-04 18:28:09 +00:00
495030c715 Connect to "message_changed" on the folder if it's on a remote storage.
* folder-browser.c (got_folder): Connect to "message_changed" on
	the folder if it's on a remote storage.
	(update_unread_count): Update the folder unread count / highlight
	in the shell when the unread message count changes

svn path=/trunk/; revision=7249
2001-01-04 17:08:40 +00:00
f4f3ede9d3 Removed old implementation.
2001-01-04  Not Zed  <NotZed@HelixCode.com>

	* mail-ops.c (mail_do_send_mail): Removed old implementation.

	* folder-browser.c (do_message_selected): If we haven't got a real
	uid, then clear the display instead.

	* message-list.c (message_list_drag_data_get): Use new save
	message function, and also wait for it to finish before
	continuing.
	(folder_changed):
	(message_changed): Use mail_proxy_event instead of
	mail_do_forward.
	(mail_regen_list): New iplementation to replace the old.
	: remove <gnome.h> from headers.  Dont define timeit by default.
	(main_folder_changed):
	(message_list_set_folder):
	(message_list_set_threaded):
	(message_list_set_search):
	(message_list_hide_add):
	(message_list_hide_uids):
	(message_list_hide_clear): Use mail_regen_list instead of
	mail_do_regenerate_messagelist.
	(mail_do_regenerate_messagelist): Removed the old stuff.  No
	functionality changed yet, just using different thread stuff.

	* mail-callbacks.c (save_msg_ok): Use new save message function.

	* component-factory.c (create_view):
	(add_storage): Use mail_scan_subfolders to build the folder info.
	(create_folder): Use new implementation with our own callback.
	(owner_set_cb): Changed b ack to use mail_get_folder, but now wait
	for it to finish.  This will let any gui still run, but also gives
	us the required synchronous operation.
	(got_folder): Callback for when the folder has been opened.

	* mail-ops.c (mail_get_folderinfo): New function to just get the
	folder info in another thread.
	(mail_scan_subfolders): New scan subfolder implementation that
	uses mail_get_folderinfo.
	(mail_do_scan_subfolders): Removed old implementation.
	(mail_create_folder): Nerw implementation to create a folder, only.
	(mail_do_create_folder): Removed old implementation.
	(mail_save_messages): New implementation, fixes a couple of minor
	problems, and now provides a return so it can be waited on.  Also
	check that the writes worked, etc.
	(mail_do_save_messages): Remove previous implementation.
	(mail_do_flag_messages): Removed, nothing uses it.
	(mail_do_flag_messages): Removed, nothing uses it anymore.
	(mail_get_folder): REturn the operation id, so callers can wait
	for it.
	(sync_folder_desc):
	(expunge_folder_desc): Add describe functions so we know what its
	doing.
	(mail_send_mail): More generic implementation of sending mail.

	* mail-mt.c (mail_msg_new): Lock around seq increment.  And insert
	each new message into a hash table of active messages.
	(mail_msg_init): Init the active message table.
	(mail_msg_free): Remove the message from the active message table.
	(mail_msg_wait): New function, waits for a message to be
	processed, by id.
	(mail_msg_check_error): Dont display the error if it is a
	user-cancelled operation.
	(mail_proxy_event): new implementation of mail_op_forward_event.
	Only real difference is it uses the new	thread stuff, and you can
	wait for it to finish if you want.
	(mail_proxy_event): If we're already in the main thread, just call
	the function.

svn path=/trunk/; revision=7246
2001-01-04 07:34:26 +00:00
a16344fff4 Fix for mail_get_message change, use queue thread.
2001-01-02  Not Zed  <NotZed@HelixCode.com>

	* mail-callbacks.c (view_msg): Fix for mail_get_message change,
	use queue thread.

	* folder-browser.c (done_message_selected): Fix mail_Get_message
	calls, use new thread.
	(do_message_selected): "

	* mail-ops.c (mail_get_message): Add a thread argument so callers
	can specify which queue it executes on.

	* mail-mt.c (mail_msg_free): Fix a free order problem.
	(mail_msg_destroy): Call mail_msg_free to do the work.
	(mail_msgport_replied): "
	(mail_msgport_replied): Check/display errors if we get them.
	(mail_msgport_received): If we have a describe function, say what
	we're doing, also set busy/unbusy.
	(mail_msgport_replied): Clear busy when we get a reply.
	(mail_get_password): Unset busy.
	(mail_msg_received): Set busy as we go.
	(mail_msg_destroy): Unset busy when done.
	(mail_status): Blah blah, new status interface, the other wans't
	workable with the way the shell api works.

2000-12-29  Not Zed  <NotZed@HelixCode.com>

	* folder-browser.c (do_message_selected): If we are reconfiguring,
	just keep polling till we are done (yeah kinda shitty, but easy).
	(folder_browser_set_uri): Clear reconfigure flag here.  ick.
	(got_folder): And here too.
	(on_right_click): Remove locking.
	(hide_sender): and here too.
	(hide_subject): And here.
	(on_right_click): If we are in reconfigure, then the whole menu is disabled.

	* mail-mt.c (status_busy_timeout): Clear the status_busy_timeout_id.

	* mail-local.c (local_storage_new_folder_cb): Made getting folders
	completely synchronous.  The shell expects it, and it was only
	synchronous before by a sideeffect.
	(do_reconfigure_folder): Remove locking stuff.
	(do_reconfigure_folder): Use our own much simpler copying routine
	than that stupid move_folder_contents thing.
	(update_progress): Use mail_status_message() instead.
	(do_reconfigure_folder): Set the reconfigure flag during
	reconfigure & set busy flag.
	(cleanup_reconfigure_folder): clear busy flag.

	* mail-tools.c (mail_tool_uri_to_folder): Remove the tool_lock
	stuff.
	(mail_tool_uri_to_folder_noex): Clear exception on exit.
	(mail_tool_move_folder_contents): Get rid of this really stupid
	function that is only used in one place.

	* component-factory.c (owner_set_cb): Use direct calls to get the
	folders, as this code must run synchronous.  Remove the event wait
	stuff.

	* mail-callbacks.c (edit_msg): Call mail_get_messages, and create
	the composers ourself.
	(do_edit_messages): get_messages callback, create the composers
	and connect to signals we need.
	(view_msg): Dont call do_view_messages, just call
	mail_get_messge for each to get them in parallel.
	(do_view_message): view a single message.

	* mail-ops.c (mail_edit_messages): Just use mail_get_messages
	for this operation.  Removed the other async operation stuff.
	Changed my mind, just removed entirely.
	(mail_do_view_messages): Removed.
	(mail_do_setup_folder): Removed.
	(mail_do_scan_subfolders): Make this run synchronously, as every
	caller expects it to (even if they didn't realise).

2000-12-28  Not Zed  <NotZed@HelixCode.com>

	* mail-callbacks.c (send_queued_mail): Dont expunge the folder
	here, but in send_queue, otherwise it might execute out of order.
	(expunge_folder): Remove the talbe prechange stuff, and infact
	references to the message_list folder, as we have our own folder.
	Also, dont allow expunge if we're already expunging.
	(expunged_folder): Clkear the expunging flag if we're finished.

	* folder-browser-factory.c (control_deactivate): Likewise here.
	Hrm, i thought this function required a callback, silly me.

	* mail-tools.c (mail_tool_make_message_attachment): Remov e
	locking.

	* folder-browser.c (on_message_selected): Use a timeout handler so
	we dont select immediately.
	(folder_browser_set_uri): Changed to use mail_get_folder.
	(got_folder): New callback called when get_folder is finished.
	(folder_browser_destroy): Use new sync interface.

	* mail-ops.c (mail_get_message): New function to asynchrounously
	get a message.
	: #define out mail_tool_camel_lock stuff entirely.
	(mail_get_folder): New function to asynchrounously get a folder.
	(mail_do_load_folder): Removed, replaced by more generic function
	above.
	(mail_do_display_message): Removed, replaced by the more generic
	funciton get_message.
	(mail_get_messages): New function to get a list of messages
	asynchronously.
	(mail_sync_folder): New interface to sync a folder async.
	(mail_expunge_folder): New interface for expunging folder, with
	callback.
	(do_send_queue): Remove lock stuff, and expunge if (and only if)
	successful, also sync the sent folder while we're at it.

	* session.c (mail_session_request_dialog): Changed to use new
	mail_get_password call.

	* mail-mt.[ch]: New threading/interthread messaging framework.

	* main.c (main): Init the message/thread system.

svn path=/trunk/; revision=7223
2001-01-03 01:18:21 +00:00
fba04bdda7 Merge from camel-mt-branch.
2000-12-24  Not Zed  <NotZed@HelixCode.com>

        * Merge from camel-mt-branch.

svn path=/trunk/; revision=7153
2000-12-24 01:03:14 +00:00
a228c210b0 Always use the slow (full-update) version of the tree update code, to get
2000-12-16  Not Zed  <NotZed@HelixCode.com>

	* message-list.c (build_tree): Always use the slow (full-update)
	version of the tree update code, to get around a bug(?) in etree.
	(build_flat): Likewise.

2000-12-15  Not Zed  <NotZed@HelixCode.com>

	* mail-display.c (write_data_to_file): Dont blindly convert all
	parts to utf8, e.g. image/jpg.  We only convert text/* parts, and
	only then if required.

2000-12-14  Not Zed  <NotZed@HelixCode.com>

	* component-factory.c (create_view): cast over a warning.

	* folder-browser-factory.c: Add verbs for hide functions.

	* message-list.c (message_list_hide_clear):
	(message_list_hide_uids):
	(message_list_hide_add): Some api renaming.
	(message_list_hide_add): Allow ML_HIDE_SAME to be passed to mean
	not to change the upper/lower range at all.
	(hide_save_state): Save the state of the hide list to stable
	storage.
	(hide_load_state): Load the state of hte hide list.
	(message_list_set_folder): Load/save the state of the folder if it
	is changed/set.
	(message_list_destroy): Save the state of the folder hide list
	when done.
	(save_tree_state): If we wrote out an empty state file, simply
	remove it instead.

	* folder-browser.c (on_right_click): Add some hide menus.
	(hide_read): Hide read messages.
	(hide_deleted): Hide deleted messages.
	(hide_selected): Hide selected/current message.
	(hide_none): Show all hidden messages.
	(on_right_click): Lock around accesses to the message (inside
	mlist_detect_magic).
	(on_right_click): Free the mailing list name.

2000-12-13  Not Zed  <NotZed@HelixCode.com>

	* folder-browser.c (on_right_click): Add camel locking since we
	call it directly.  Whoever heard of a lock you 'down' to unlock?

	* message-list.c (mail_do_regenerate_messagelist): Added hide
	expression, messages to hide.  Fixed all callers.
	(do_regenerate_messagelist): IF we have a hide expression, search
	and remove those from the uid list.  If we have a hide range,
	apply that afterwards.
	(cleanup_regenerate_messagelist): Handle freeing the hide uid
	temporary data, if required.
	(message_list_destroy): Free hide data, also lock around all camel
	object stuff.
	(message_list_length): New function to get the number of messages
	avaialble to be hidden by range.
	(message_list_set_hide): Set the hide expression and range.
	Issue: Should hiding be remembered?
	(message_list_unhide_all): Turn off all hiding.
	(message_list_hide_uids): Hide a list of uid's.

svn path=/trunk/; revision=7061
2000-12-16 08:55:37 +00:00
d4c75eb010 Made the vertical scrollbar always be there.
2000-12-13  Christopher James Lahey  <clahey@helixcode.com>

	* folder-browser.c (my_folder_browser_init): Made the vertical
	scrollbar always be there.

	* message-list.c (message_list_get_layout): Changed the minimum
	width of some of the pixmap column headers.

svn path=/trunk/; revision=6983
2000-12-14 01:31:29 +00:00
b7c314b29c Ignore double-clicks on "active" columns (the ones where clicking does
* folder-browser.c (on_double_click): Ignore double-clicks on
	"active" columns (the ones where clicking does something
	beyond "select"), fixing bug #811

svn path=/trunk/; revision=6910
2000-12-11 17:02:07 +00:00
e22c643dc6 Remove the never-once-used BonoboObject stuff and make MessageList be a
* message-list.c: Remove the never-once-used BonoboObject stuff
	and make MessageList be a GtkWidget instead. Also, keep track of
	the ETable directly rather than repeatedly calling
	e_table_scrolled_get_table.

	* folder-browser.c (folder_browser_destroy): Use gtk methods
	rather than bonobo methods to destroy the message list.
	(on_right_click, on_double_click): These are being attached to the
	ETable directly now, so fix the first argument (which isn't being
	used anyway, but...)
	(folder_browser_gui_init): simplify now that MessageList itself is
	a widget. Also use message_list->table rather than
	e_table_scrolled_get_table.

	* mail-local.c (mail_local_reconfigure_folder): Add "mail_" to
	the beginning of this function name to match its prototype and the
	other vague namespace conventions in the mailer.

	* mail-callbacks.c (select_all, invert_selection): Use ml->table.
	(configure_folder): s/local_reconfigure_folder/mail_&/

svn path=/trunk/; revision=6908
2000-12-11 16:44:30 +00:00
a203289d4e the e-table double-click signal now has extra params
2000-12-08  JP Rosevear  <jpr@helixcode.com>

	* folder-browser.c (on_double_click): the e-table double-click
	signal now has extra params

svn path=/trunk/; revision=6880
2000-12-09 01:46:15 +00:00
3fb451ad92 Connect to signals on the ETable instead of the ETableScrolled.
2000-12-08  Christopher James Lahey  <clahey@helixcode.com>

	* folder-browser.c: Connect to signals on the ETable instead of
	the ETableScrolled.

	* subscribe-dialog.c: Used the e_table_scrolled_get_table function
	instead of accessing the variable directly.

svn path=/trunk/; revision=6873
2000-12-08 21:33:35 +00:00
97f16d13a4 Add some g_return_if_fail()s to protect from crashes until the code to
* mail-callbacks.c: (various)
	* folder-browser.c (filter_mlist):
	* mail-autofilter.c (filter_gui_add_from_message):
	* mail-vfolder.c (vfolder_gui_add_from_message): Add some
	g_return_if_fail()s to protect from crashes until the code to
	enable/disable commands based on how many messages are selected is
	done.

svn path=/trunk/; revision=6840
2000-12-07 19:19:48 +00:00
5c7218c629 Remove bits of filter-on-demand and toolbar bug workaround cruft that
* folder-browser.c: Remove bits of filter-on-demand and toolbar
	bug workaround cruft that don't do anything useful any more.

	* mail-ops.c (cleanup_load_folder): unref the ref we added in
	setup_load_folder.

svn path=/trunk/; revision=6812
2000-12-06 18:40:11 +00:00
bfb8c33969 Make inline forwarding not be the default anymore.
svn path=/trunk/; revision=6771
2000-12-04 10:52:55 +00:00