Commit Graph

291 Commits

Author SHA1 Message Date
956ed2760e Unlock camel when done to prevent a hang later.
* message-list.c (hide_save_state): Unlock camel when done to
	prevent a hang later.

svn path=/trunk/; revision=7072
2000-12-18 20:39:55 +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
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
df6a67437b Change the "drawfocus" argument on e_table_scrolled_get_table(etable)
2000-12-09  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c (message_list_init): Change the "drawfocus"
	argument on e_table_scrolled_get_table(etable) instead of on
	etable (etable is an ETableScrolled.)

svn path=/trunk/; revision=6893
2000-12-10 00:07:30 +00:00
25ad3092eb a slight mixup in order causes "1.33 M" to be displayed as the subject...uh huh, yea...
svn path=/trunk/; revision=6877
2000-12-08 23:07:30 +00:00
1e42d39243 Set the "Size" field to sort using integer comparison instead of string.
2000-12-08  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-list.c (message_list_get_layout): Set the "Size" field
	to sort using integer comparison instead of string.
	(filter_size): New function to transform a integer size into a
	more readable form.
	(ml_value_to_string): Use filter_size.
	(ml_value_is_empty): COL_SIZE is no longer a string, so handle
	this as an integer.
	(ml_initialize_value): Here too.
	(ml_free_value): And here.
	(ml_duplicate_value): And here too.
	(message_list_create_extras): Setup the size etable cell.

svn path=/trunk/; revision=6876
2000-12-08 22:57:02 +00:00
4294cdc1ed Connect to signals on the ETable instead of the ETableScrolled.
2000-12-08  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c: Connect to signals on the ETable instead of the
	ETableScrolled.

svn path=/trunk/; revision=6871
2000-12-08 21:21:07 +00:00
7eb086940f Got rid of code referencing the ETableScrolled proxy functions. Changed
2000-12-07  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c: Got rid of code referencing the ETableScrolled
	proxy functions.  Changed the call to e_table_set_cursor_row to
	send a model row instead of a view row.

svn path=/trunk/; revision=6852
2000-12-07 23:44:25 +00:00
804acf56c6 Use e_filename_make_safe (which used to be e_str_make_safe).
2000-12-06  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-config.c (mail_config_folder_to_cachename): Use
	e_filename_make_safe (which used to be e_str_make_safe).

	* mail-display.c (make_safe_filename): And here.

	* message-list.c (message_list_drag_data_get): Here too.

svn path=/trunk/; revision=6827
2000-12-06 22:30:28 +00:00
06408727b6 Perform better error-handling.
2000-12-01  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-list.c (e_mail_address_new): Perform better
	error-handling.

svn path=/trunk/; revision=6758
2000-12-01 19:16:56 +00:00
8fa85c39e5 Don't display a dialog, instead inform the user that there was no new mail
2000-11-30  Jeffrey Stedfast  <fejj@helixcode.com>

	* mail-ops.c (cleanup_fetch_mail): Don't display a dialog, instead
	inform the user that there was no new mail by setting a status
	message.

	* message-list.c (message_list_drag_data_get): Use the new
	e_str_make_safe function.

	* mail-display.c (make_safe_filename): And here.

	* mail-config.c (mail_config_folder_to_cachename): Here too.

svn path=/trunk/; revision=6745
2000-11-30 22:44:00 +00:00
9b49b3e25a Set threaded view before setting the folder (cleanup some flash ons
2000-11-30  Not Zed  <NotZed@HelixCode.com>

	* mail-ops.c (cleanup_load_folder): Set threaded view before
	setting the folder (cleanup some flash ons tartup).

	* message-list.c (message_list_init): Initialise a mempool for uid
	string storage.
	(new_id_from_uid): Added messagelist arg, allocate strings from
	uid_pool.
	(new_id_from_subject): Same.  Fixed all callers.
	(remove_node_diff): Dont free uid here.
	(build_flat_diff): Nor here.
	(clear_tree): Flush the mempool, rather than freeing the id's
	directly.
	(free_tree_ids): Removed, no longer required.
	(free_tree_ids): Likewise.
	(message_list_init): Dont connect to the table destroy signal
	anymore to free the uid table.
	(message_list_destroy): Free the uid pool here.
	(*): Use accessors for messageid stuff.
	(content_is_attachment): Removed, no longer required.
	(ml_tree_value_at): Get the attachment flag directly from the
	summary.
	(ml_tree_value_at): For 'fake' nodes, try and do something better
	than "?" for from, to, and size.
	(subtree_size): New function, add up the total size of a subtree.
	(subtree_earliest): Get the earliest date from a subtree.
	(ml_tree_value_at): Return earliest date sent/received for fake
	nodes.
	(ml_tree_value_at): Return something to mark a fake subject line
	as a fake subject, although i dont know, i guess this buggers up
	sorting ...
	(subtree_size): Check the info node is still there.
	(subtree_earliest): Same here.
	(subtree_unread): And here.  The info node might vanish if the
	folder has changed/is changing and we try and redraw stuff while
	its doing it.
	(message_list_drag_data_get): Use accessors.

svn path=/trunk/; revision=6732
2000-11-30 11:32:50 +00:00
f65d521704 Implement. (message_list_init): Connect the d&d signal.
2000-11-29  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-list.c (message_list_drag_data_get): Implement.
	(message_list_init): Connect the d&d signal.

	* mail-ops.c (do_save_messages): Use camel a bit more to help us
	out. Don't create the file ourselves, treat it as a CamelFolder so
	we don't have to worry about formatting.

svn path=/trunk/; revision=6728
2000-11-30 00:59:27 +00:00
8d9d1e00dd IF we dont find a source, clear the exception and ignore it silently. for
2000-11-21  Not Zed  <NotZed@HelixCode.com>

	* mail-vfolder.c (vfolder_uri_to_folder): IF we dont find a
	source, clear the exception and ignore it silently.  for e.g. if
	the user reconfigured their mailboxes and one of them no longer
	exists.

	* message-list.c:
	(message_list_set_folder): If we get set a new folder, unhook any
	events before unrefing the folder too (the folder is never reset
	currently, but this would cause problems).
	(subtree_unread): Check for uid null, wont crash, but its a bug.
	(ml_tree_value_at): If the uid is null, then fake an obviously bad
	line.
	(build_subtree): Yeah well, we can't like freeze/thaw here,
	because this is called recursive, and freeze/thaw isn't
	recursive, like pre model and post model change was.
	(build_tree): Maybe we can try it here, although i dont think
	it'll help much.
	(build_flat): And this is also a tree.  yes a tree.
	(build_tree): Added changes arg.  If set, then try the 'diff'
	approach, unless the tree is already empty.
	(message_list_set_threaded): Dont clear the tree here.
	(message_list_set_search): Or here.

svn path=/trunk/; revision=6629
2000-11-21 14:28:06 +00:00
587d706eea Removed. No longer serves a purpose.
2000-11-21  Not Zed  <NotZed@HelixCode.com>

        * message-thread.[ch]: Removed.  No longer serves a purpose.

        * Makefile.am (evolution_mail_SOURCES): Removed message-thread.[ch].

        * message-list.c (build_subtree):
        (node_equal):
        (add_node_diff):
        (build_subtree_diff):
        (do_regenerate_messagelist):
        (cleanup_regenerate_messagelist): Changed to use camel-folder-thread.

svn path=/trunk/; revision=6625
2000-11-21 04:28:53 +00:00
7b8057a43c Save out the md5 hash of the messageid as hex, since thats all we have for
2000-11-20  Not Zed  <NotZed@HelixCode.com>

        * message-list.c (save_node_state): Save out the md5 hash of the
        messageid as hex, since thats all we have for those nodes.
        (build_subtree): Expand the messageid to a hex string first, then
        check it.
        (add_node_diff): And the same here.

        * message-thread.c (thread_messages): Changed for changes to
        messageid/references items.
        (id_hash, id_equal): New functions to hash on the binary message id hash.
        (thread_messages): removed some more no longer used dead code.

svn path=/trunk/; revision=6617
2000-11-20 23:49:53 +00:00
ba1dbc4a96 New comparison function that will replace address_compare if/when we ever
2000-11-20  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-list.c (e_mail_address_compare): New comparison function
	that will replace address_compare if/when we ever go to save the
	preparsed addresses in the ETable rather than parsing them each
	time. Also fixed it so that we should get better sorting when
	addresses don't contain name parts (I was checking for NULL but
	not '\0').

svn path=/trunk/; revision=6615
2000-11-20 22:58:39 +00:00
25107cd4d7 Before we destroy ourselves, unhook ourselves from the folder update
2000-11-17  Not Zed  <NotZed@HelixCode.com>

        * message-list.c (message_list_destroy): Before we destroy
        ourselves, unhook ourselves from the folder update events.  Should
        fix a common crash on exit case.

svn path=/trunk/; revision=6598
2000-11-17 06:18:01 +00:00
4db080e17f Added the MessageViewSource bonobo menu verb.
2000-11-16  Jeffrey Stedfast  <fejj@helixcode.com>

	* folder-browser-factory.c: Added the MessageViewSource bonobo
	menu verb.

	* mail-ops.c (mail_do_save_messages): New async function to save
	messages as individual files in a given path.

svn path=/trunk/; revision=6596
2000-11-16 23:05:32 +00:00
a53ac3867b Update the gal reqiurement version.
2000-11-13  Christopher James Lahey  <clahey@helixcode.com>

	* configure.in: Update the gal reqiurement version.

From mail/ChangeLog:

2000-11-13  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c: Removed some e_table_model calls and replaced
	them with e_tree_model calls.

svn path=/trunk/; revision=6564
2000-11-13 19:33:47 +00:00
3d3cfc1137 A very, long, very tedious IDL API rename and re-scoping;
this script + some grunt approximates the work:

    s/Evolution_MessageList/GNOME_Evolution_MessageList/g;
    s/GNOME_Evolution_MessageList_select_message/GNOME_Evolution_MessageList_selectMessage/g;
    s/GNOME_Evolution_MessageList_open_message/GNOME_Evolution_MessageList_openMessage/g;

    s/Evolution_Folder([ \t])/GNOME_Evolution_Folder$1/g;
    s/Evolution_FolderTypeList/GNOME_Evolution_FolderTypeList/g;
    s/Evolution_FolderBrowser/GNOME_Evolution_FolderBrowser/g;
    s/GNOME_Evolution_FolderBrowser_get_message_list/GNOME_Evolution_FolderBrowser_getMessageList/g;

    s/Evolution_LocalStorage/GNOME_Evolution_LocalStorage/g;
    s/GNOME_Evolution_LocalStorage_update_folder/GNOME_Evolution_LocalStorage_updateFolder/g;

    s/Evolution_ShellView/GNOME_Evolution_ShellView/g;
    s/GNOME_Evolution_ShellView_set_message/GNOME_Evolution_ShellView_setMessage/g;
    s/GNOME_Evolution_ShellView_unset_message/GNOME_Evolution_ShellView_unsetMessage/g;
    s/GNOME_Evolution_ShellView_change_current_view/GNOME_Evolution_ShellView_changeCurrentView/g;

    s/Evolution_StorageSetViewListener/GNOME_Evolution_StorageSetViewListener/g;
    s/GNOME_Evolution_StorageSetViewListener_folder_selected/GNOME_Evolution_StorageSetViewListener_notifyFolderSelected/g;
    s/GNOME_Evolution_StorageSetViewListener_storage_selected/GNOME_Evolution_StorageSetViewListener_notifyStorageSelected/g;

    s/Evolution_StorageSetView/GNOME_Evolution_StorageSetView/g;
    s/GNOME_Evolution_StorageSetView_add_listener/GNOME_Evolution_StorageSetView_addListener/g;
    s/GNOME_Evolution_StorageSetView_remove_listener/GNOME_Evolution_StorageSetView_removeListener/g;

    s/Evolution_Shell/GNOME_Evolution_Shell/g;
    s/GNOME_Evolution_Shell_get_component_for_type/GNOME_Evolution_Shell_getComponentByType/g;
    s/GNOME_Evolution_Shell_user_select_folder/GNOME_Evolution_Shell_selectUserFolder/g;
    s/GNOME_Evolution_Shell_get_local_storage/GNOME_Evolution_Shell_getLocalStorage/g;
    s/GNOME_Evolution_Shell_create_storage_set_view/GNOME_Evolution_Shell_createStorageSetView/g;

    s/Evolution_FolderSelectionListener/GNOME_Evolution_FolderSelectionListener/g;
    s/GNOME_Evolution_FolderSelectionListener_selected/GNOME_Evolution_FolderSelectionListener_notifySelected/g;
    s/GNOME_Evolution_FolderSelectionListener_cancel/GNOME_Evolution_FolderSelectionListener_notifyCanceled/g;

    s/Evolution_Storage/GNOME_Evolution_Storage/g;
    s/GNOME_Evolution_Storage_add_listener/GNOME_Evolution_Storage_addListener/g;
    s/GNOME_Evolution_Storage_remove_listener/GNOME_Evolution_Storage_removeListener/g;

    s/GNOME_Evolution_StorageListener_destroyed/GNOME_Evolution_StorageListener_notifyDestroyed/g;
    s/GNOME_Evolution_StorageListener_new_folder/GNOME_Evolution_StorageListener_notifyFolderCreated/g;
    s/GNOME_Evolution_StorageListener_update_folder/GNOME_Evolution_StorageListener_notifyFolderUpdated/g;
    s/GNOME_Evolution_StorageListener_removed_folder/GNOME_Evolution_StorageListener_notifyFolderRemoved/g;

    s/GNOME_Evolution_StorageRegistry_register_storage/GNOME_Evolution_StorageRegistry_addStorage/g;
    s/GNOME_Evolution_StorageRegistry_unregister_storage/GNOME_Evolution_StorageRegistry_removeStorageByName/g;

    s/Evolution_ShellComponent/GNOME_Evolution_ShellComponent/g;
    s/GNOME_Evolution_ShellComponent_set_owner/GNOME_Evolution_ShellComponent_setOwner/g;
    s/GNOME_Evolution_ShellComponent_unset_owner/GNOME_Evolution_ShellComponent_unsetOwner/g;
    s/GNOME_Evolution_ShellComponent_create_view/GNOME_Evolution_ShellComponent_createView/g;
    s/GNOME_Evolution_ShellComponent_async_create_folder/GNOME_Evolution_ShellComponent_addFolderAsync/g;
    s/GNOME_Evolution_ShellComponent_async_remove_folder/GNOME_Evolution_ShellComponent_removeFolderAsync/g;
    s/GNOME_Evolution_ShellComponent_populate_folder_context_menu/GNOME_Evolution_ShellComponent_populateFolderContextMenu/g;

    s/GNOME_Evolution_ShellComponentListener_report_result/GNOME_Evolution_ShellComponentListener_notifyResult/g;

    s/Evolution_Session/GNOME_Evolution_Session/g;
    s/GNOME_Evolution_Session_save_configuration/GNOME_Evolution_Session_saveConfiguration/g;
    s/GNOME_Evolution_Session_load_configuration/GNOME_Evolution_Session_loadConfiguration/g;

    s/Evolution_Calendar_Cal/GNOME_Evolution_Calendar_Cal/g;
    s/GNOME_Evolution_Calendar_Cal_get_n_objects/GNOME_Evolution_Calendar_Cal_countObjects/g;
    s/GNOME_Evolution_Calendar_Cal_get_object/GNOME_Evolution_Calendar_Cal_getObject/g;
    s/GNOME_Evolution_Calendar_Cal_get_uids/GNOME_Evolution_Calendar_Cal_getUIds/g;
    s/GNOME_Evolution_Calendar_Cal_get_changed_uids/GNOME_Evolution_Calendar_Cal_getChangedUIds/g;
    s/GNOME_Evolution_Calendar_Cal_get_objects_in_range/GNOME_Evolution_Calendar_Cal_getObjectsInRange/g;
    s/GNOME_Evolution_Calendar_Cal_get_alarms_in_range/GNOME_Evolution_Calendar_Cal_getAlarmsInRange/g;
    s/GNOME_Evolution_Calendar_Cal_get_alarms_for_object/GNOME_Evolution_Calendar_Cal_getAlarmsForObject/g;
    s/GNOME_Evolution_Calendar_Cal_update_object/GNOME_Evolution_Calendar_Cal_updateObject/g;
    s/GNOME_Evolution_Calendar_Cal_remove_object/GNOME_Evolution_Calendar_Cal_removeObject/g;

    s/Evolution_Calendar_Listener/GNOME_Evolution_Calendar_Listener/g;
    s/GNOME_Evolution_Calendar_Listener_cal_loaded/GNOME_Evolution_Calendar_Listener_notifyCalLoaded/g;
    s/GNOME_Evolution_Calendar_Listener_obj_updated/GNOME_Evolution_Calendar_Listener_notifyObjUpdated/g;
    s/GNOME_Evolution_Calendar_Listener_obj_removed/GNOME_Evolution_Calendar_Listener_notifyObjRemoved/g;

    s/Evolution_Calendar_CalFactory/GNOME_Evolution_Calendar_CalFactory/g;
    s/GNOME_Evolution_Calendar_CalFactory_load/GNOME_Evolution_Calendar_CalFactory_load/g;
    s/GNOME_Evolution_Calendar_CalFactory_create/GNOME_Evolution_Calendar_CalFactory_create/g;

    s/Evolution_Composer/GNOME_Evolution_Composer/g;
    s/GNOME_Evolution_Composer_set_headers/GNOME_Evolution_Composer_setHeaders/g;
    s/GNOME_Evolution_Composer_set_body_text/GNOME_Evolution_Composer_setBodyText/g;
    s/GNOME_Evolution_Composer_attach_MIME/GNOME_Evolution_Composer_attachMIME/g;
    s/GNOME_Evolution_Composer_attach_data/GNOME_Evolution_Composer_attachData/g;
    s/GNOME_Evolution_Composer_show/GNOME_Evolution_Composer_show/g;

    s/Evolution_Addressbook_SelectNames/GNOME_Evolution_Addressbook_SelectNames/g;
    s/GNOME_Evolution_Addressbook_SelectNames_add_section/GNOME_Evolution_Addressbook_SelectNames_addSection/g;
    s/GNOME_Evolution_Addressbook_SelectNames_get_entry_for_section/GNOME_Evolution_Addressbook_SelectNames_getEntryBySection/g;
    s/GNOME_Evolution_Addressbook_SelectNames_activate_dialog/GNOME_Evolution_Addressbook_SelectNames_activateDialog/g;

    s/Evolution_CardCursor/GNOME_Evolution_Addressbook_CardCursor/g;
    s/GNOME_Evolution_Addressbook_CardCursor_get_length/GNOME_Evolution_Addressbook_CardCursor_getLength/g;
    s/GNOME_Evolution_Addressbook_CardCursor_get_nth/GNOME_Evolution_Addressbook_CardCursor_getNth/g;

    s/Evolution_BookViewListener/GNOME_Evolution_Addressbook_BookViewListener/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_added/GNOME_Evolution_Addressbook_BookViewListener_notifyCardAdded/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_removed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardRemoved/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_changed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardChanged/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_sequence_complete/GNOME_Evolution_Addressbook_BookViewListener_notifySequenceComplete/g;
    s/GNOME_Evolution_Addressbook_BookViewListener_signal_status_message/GNOME_Evolution_Addressbook_BookViewListener_notifyStatusMessage/g;

    s/Evolution_BookView/GNOME_Evolution_Addressbook_BookView/g;

    s/Evolution_Book/GNOME_Evolution_Addressbook_Book/g;
    s/GNOME_Evolution_Addressbook_Book_get_vcard/GNOME_Evolution_Addressbook_Book_getVCard/g;
    s/GNOME_Evolution_Addressbook_Book_can_write/GNOME_Evolution_Addressbook_Book_isWriteable/g;
    s/GNOME_Evolution_Addressbook_Book_can_write_card/GNOME_Evolution_Addressbook_Book_isCardWriteable/g;
    s/GNOME_Evolution_Addressbook_Book_create_card/GNOME_Evolution_Addressbook_Book_addCard/g;
    s/GNOME_Evolution_Addressbook_Book_remove_card/GNOME_Evolution_Addressbook_Book_removeCard/g;
    s/GNOME_Evolution_Addressbook_Book_modify_card/GNOME_Evolution_Addressbook_Book_modifyCard/g;
    s/GNOME_Evolution_Addressbook_Book_get_cursor/GNOME_Evolution_Addressbook_Book_getCursor/g;
    s/GNOME_Evolution_Addressbook_Book_get_book_view/GNOME_Evolution_Addressbook_Book_getBookView/g;
    s/GNOME_Evolution_Addressbook_Book_get_changes/GNOME_Evolution_Addressbook_Book_getChanges/g;
    s/GNOME_Evolution_Addressbook_Book_check_connection/GNOME_Evolution_Addressbook_Book_checkConnection/g;
    s/GNOME_Evolution_Addressbook_Book_get_static_capabilities/GNOME_Evolution_Addressbook_Book_getStaticCapabilities/g;
    s/GNOME_Evolution_Addressbook_Book_get_name/GNOME_Evolution_Addressbook_Book_getName/g;

    s/Evolution_BookListener/GNOME_Evolution_Addressbook_BookListener/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_create_card/GNOME_Evolution_Addressbook_BookListener_notifyCardCreated/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_remove_card/GNOME_Evolution_Addressbook_BookListener_notifyCardRemoved/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_modify_card/GNOME_Evolution_Addressbook_BookListener_notifyCardModified/g;
    s/GNOME_Evolution_Addressbook_BookListener_report_open_book_progress/GNOME_Evolution_Addressbook_BookListener_notifyOpenBookProgress/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_open_book/GNOME_Evolution_Addressbook_BookListener_notifyBookOpened/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_get_cursor/GNOME_Evolution_Addressbook_BookListener_notifyCursorRequested/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_get_view/GNOME_Evolution_Addressbook_BookListener_notifyViewRequested/g;
    s/GNOME_Evolution_Addressbook_BookListener_respond_get_changes/GNOME_Evolution_Addressbook_BookListener_notifyChangesRequested/g;
    s/GNOME_Evolution_Addressbook_BookListener_report_connection_status/GNOME_Evolution_Addressbook_BookListener_notifyConnectionStatus/g;

    s/Evolution_BookFactory/GNOME_Evolution_Addressbook_BookFactory/g;
    s/GNOME_Evolution_Addressbook_BookFactory_open_book/GNOME_Evolution_Addressbook_BookFactory_openBook/g;

    s/Evolution_SummaryComponent/GNOME_Evolution_Summary_Component/g;
    s/GNOME_Evolution_Summary_SummaryComponent_set_owner/GNOME_Evolution_Summary_Component_setOwner/g;
    s/GNOME_Evolution_Summary_SummaryComponent_unset_owner/GNOME_Evolution_Summary_Component_unsetOwner/g;
    s/GNOME_Evolution_Summary_SummaryComponent_create_view/GNOME_Evolution_Summary_Component_createView/g;
    s/GNOME_Evolution_Summary_SummaryComponent_destroy_view/GNOME_Evolution_Summary_Component_destroyView/g;

    s/Evolution_Summary([ \t])/GNOME_Evolution_Summary_ViewFrame$1/g;
    s/Evolution_Summary_set_title/GNOME_Evolution_Summary_ViewFrame_setTitle/g;
    s/Evolution_Summary_set_icon/GNOME_Evolution_Summary_ViewFrame_setIcon/g;
    s/Evolution_Summary_update_component/GNOME_Evolution_Summary_ViewFrame_updateComponent/g;

    s/GNOME_GNOME/GNOME/g;
    s/GNOME_GNOME/GNOME/g;
    s/GNOME_GNOME/GNOME/g;

svn path=/trunk/; revision=6535
2000-11-10 20:41:13 +00:00
4f8dfcf380 don't free the MessageList search when it's being reused
* message-list.c (cleanup_regenerate_messagelist): don't free the
	MessageList search when it's being reused

svn path=/trunk/; revision=6382
2000-11-03 22:41:03 +00:00
1cb19b5a1b Added new header files.
2000-11-03  Jeffrey Stedfast  <fejj@helixcode.com>

	* Makefile.am: Added new header files.

	* component-factory.c (owner_set_cb):
	s/session_init/mail_session_init

	* session.c: Renamed public functions to mail_session_*.
	FIXME: Rename session.c to mail-session.c

	* folder-browser-factory.c: #include "mail-callbacks.h", #include
	"mail-session.h" and replace forget_passwords with
	mail_session_forget_passwords

	* mail.h: Move session prototypes to mail-session.h, Move
	mail-crypto prototypes to mail-crypto.h, Move mail-callback
	prototypes to mail-callbacks.h

	* mail-session.h: New header file containing public prototypes
	for session.c

	* mail-format.c: #include "mail-crypto.h"

	* mail-view.c:
	* folder-browser.c: #include "mail-callbacks.h"

	* mail-crypto.h: New header file containing public prototypes
	for mail-crypto.c

	* mail-callbacks.h: New header file containing public prototypes
	for mail-callbacks.c

	* message-list.c (message_list_get_layout): Set useful defaults.
	(message_list_setup_etable): Don't set the Outbox defaults on a
	folder just because it doesn't have a corresponding saved file.

svn path=/trunk/; revision=6372
2000-11-03 18:55:41 +00:00
8952ed2a26 Added mail-display.h.
2000-11-03  Not Zed  <NotZed@HelixCode.com>

	* mail-view.c: Added mail-display.h.

	* mail-autofilter.c: Removed unecessary headers.  Who ran indent
	over this code?  Sigh.

	* mail-ops.c (display_message_input_s): Added messagedisplay.
	(mail_do_display_message): Added messagedisplay arg.
	(mail_do_display_message): Dont bother doing another thread when
	we know we dont have a uid.
	(): Added folder-browser.h to headers.  Sigh.

	* folder-browser-factory.c (control_activate): Setup the
	viewthreaded callback to the folder_browser function.

	* folder-browser.c (my_folder_browser_init): Connect to
	right_click of etable of the messagelist here.
	(on_right_click): Changed for argument changes.
	(folder_browser_toggle_threads): Changed to take a fb, and to set
	threaded mode on the messagelist.
	(my_folder_browser_init): Connect also to the double_click signal.
	(my_folder_browser_init): Connect to the message_selected signal
	of the message_list.
	(on_message_selected): Signal handler for message selected.
	(my_folder_browser_init): Fix for change to message_list_new().

	* message-list.h: Dont include folder-browser.h.
	(message_list_toggle_threads): Moved into folder-browser.h.
	(struct _MessageList): Removed folderbrowser.

	* mail.h: Dont include folder-browser.h here either, but
	mail-types.h instead.
	Moved prototypes moved into folder-browser.c into
	folder-browser.h. (vfolder_*, filter_*).

	* mail-display.h: Dont include folder-browser.h here, but
	mail-types.h and specific camel headers.

	* message-thread.c (sort_node): Invert the sort order logic so the
	list is sorted in mailbox order, not reverse mailbox order.

	* message-list.c (free_tree_ids): Fix a merge foo.
	(remove_node_diff): Removed unused row argument.  Fixed callers/prototype.
	(clear_tree): pre_change on the removal of the root node.
	(build_flat): Only perform pre_change if we are rebuilding the
	whole lot.  For incremental change let etable do its thing.
	(build_tree): Likewise for building the tree view.  If making
	incremental updates, do them as we build it.
	(vfolder_subject):
	(vfolder_sender):
	(vfolder_recipient):
	(filter_subject):
	(filter_sender):
	(filter_recipient):
	(filter_mlist):
	(on_right_click): Moved to folder-browser.c, where they belong.
	(message_list_init): Dont connect to right_click anymore.
	(message_list_toggle_threads): Moved to folder-browser.c, renamed.
	(on_double_click): Moved to folder-browser.c
	(on_click): Set the flags directly, rather than in anothre thread,
	which is just not necessary.
	(message_list_class_init): Added a new signal 'message_selected',
	to indicate when a message was selected.
	(on_cursor_change_idle): Emit a signal, rather than directly
	triggering the display update.
	(select_row): Removed, no longer used.
	(idle_select_row): And this too.
	(select_msg): Removed as well.
	(message_list_select): Emit a signal, rather
	thandisplaying/clearing the mail-display directly.
	(mark_msg_seen): Moved to folder-browser.c
	(message_list_new): Removed folderbrowser argument.

svn path=/trunk/; revision=6365
2000-11-03 09:28:00 +00:00
3e6229afab Sync with message menu. Addresses bugzilla bug #778.
2000-11-02  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-list.c (on_right_click): Sync with message
	menu. Addresses bugzilla bug #778.

svn path=/trunk/; revision=6360
2000-11-02 21:44:10 +00:00
7b60f48ddd Turn on draw grid for the main ETable (this may not be working in ETable
2000-11-02  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c: Turn on draw grid for the main ETable (this may
	not be working in ETable itself.)

svn path=/trunk/; revision=6358
2000-11-02 19:29:04 +00:00
6db2305b33 ** Merged in camel-incremental-branch.
2000-11-02  Not Zed  <NotZed@HelixCode.com>

        ** Merged in camel-incremental-branch.

        * mail-format.c (mail_get_message_body): Jeff!  Sigh.
        We should definetly not be strduping the
        content, it has already been copied and duplicated.  Look at
        get_data_wrapper_text.

svn path=/trunk/; revision=6337
2000-11-02 03:36:48 +00:00
9e6c10a18b Don't try to regenerate the message list if there is no folder. (The
* message-list.c (mail_do_regenerate_messagelist): Don't try to
	regenerate the message list if there is no folder. (The Bonobo UI
	code will call this as the callback for the "Threaded View"
	command.)

svn path=/trunk/; revision=6255
2000-10-29 20:41:55 +00:00
6eb3e631bd Add a "flagged" column, based on the Camel "flagged" flag, for assigning
* message-list.c: Add a "flagged" column, based on the Camel
	"flagged" flag, for assigning an arbitrary "hey, I care about
	this" flag to a message.
	(ml_tree_set_value_at): Remove
	(ml_tree_is_cell_editable): No, it's not.
	(on_click): Handle the read/unread and flagged fields via the
	click handler. Among other things, this makes it not select
	a message when you change its read status.

svn path=/trunk/; revision=6173
2000-10-25 19:05:20 +00:00
360675f54b lots of i18n fixes
svn path=/trunk/; revision=6143
2000-10-24 05:23:27 +00:00
46b30bb1be Fixed a possible error in row numberings. This needs to be changed quite a
2000-10-23  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c: Fixed a possible error in row numberings.  This
	needs to be changed quite a bit anyway, but this should make
	things slightly nicer in some cases.

svn path=/trunk/; revision=6128
2000-10-23 19:44:04 +00:00
e42e84e2bf Make the vertical toolbar always visible in the message list and the
message view (patch pulled up from the evolution-0-6-branch).

svn path=/trunk/; revision=6112
2000-10-22 21:19:07 +00:00
472ffcd238 e-tree-model is now opaque. use the accessor to get the root node.
2000-10-19  Chris Toshok  <toshok@helixcode.com>

	* message-list.c (nuke_uids): e-tree-model is now opaque.  use the
	accessor to get the root node.

svn path=/trunk/; revision=6073
2000-10-20 05:24:35 +00:00
172f70c641 For an imap store, just refresh the INBOX.
* mail-ops.c: (do_fetch_mail): For an imap store, just refresh the
	INBOX.

	* folder-browser-factory.c (control_deactivate): Don't sync
	non-existent folders.
	* message-list.c (nuke_uids): Don't traverse non-existent trees.

svn path=/trunk/; revision=6047
2000-10-19 20:32:54 +00:00
eb914c346e Fixed some column widths.
2000-10-18  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c: Fixed some column widths.

svn path=/trunk/; revision=6013
2000-10-19 01:52:22 +00:00
ee5eeb1dd2 No, we REALLY dont want to perform an immediate search as the keys are
2000-10-18  Not Zed  <NotZed@HelixCode.com>

        * folder-browser.c (folder_browser_gui_init): No, we REALLY dont
        want to perform an immediate search as the keys are pressed.

        * mail-display.c (on_object_requested): Kill a minor warning with
        a cast.

        * mail-config.c: Include mising ctype.h to kill a warning.

        * message-thread.c (main): Fixed the test case for api changes.

        * message-list.c (message_list_drag_data_get): Set some flags to
        get_folder().  I dont even think this will work because
        mail_tool_get_folder doesn't handle file url's.

        * mail-vfolder.c (vfolder_uri_to_folder): Pass appropriate flags.

        * mail-ops.c (do_setup_folder): Pass appropriate flags.  Hmm,
        whats the difference between setup and create.  *shrug*
        (do_create_folder): Pass appropriate flags to get_folder.  Needs a
        way to specify the index flag.

        * mail-tools.c (mail_tool_get_folder_from_urlname): Changed create
        to flags argument.
        (mail_tool_get_local_inbox_url): Add an index argument.
        (mail_tool_get_local_inbox): honour index flag.
        (mail_tool_get_inbox): Changed for api change.
        (mail_tool_uri_to_folder): Fixed calls to store_get_folder();

        * mail-local.c (load_metainfo): Added an indexed field to the metainfo.
        (save_metainfo): And save it too.
        (do_reconfigure_folder): Honour index flag when creating the new
        folder.  Do not open the old folder with an index at all.
        (mail_local_map_uri): Add an index argument - tells if the mbox is
        indexed.
        (mail_tool_local_uri_to_folder): Create & pass flags properly.
        (#include gnome.h): Dont include all of gnome, just what we use,
        and explicity include xml-memory, so we get xmlFree().

svn path=/trunk/; revision=5979
2000-10-18 06:13:12 +00:00
1bf57bb0d6 Uh, fixed jeff's wrong fix for setting the speficiation (the function
2000-10-16  Not Zed  <NotZed@HelixCode.com>

        * message-list.c (message_list_setup_etable): Uh, fixed jeff's
        wrong fix for setting the speficiation (the function changed to
        set_state(), as can be seen in the e_table-scrolled_load_state()
        call only 2 lines above).

svn path=/trunk/; revision=5938
2000-10-16 06:31:18 +00:00
9ea0801fff ETreePath != GNode now, use accessors. (ml_tree_value_at): same.
2000-10-15  Chris Toshok  <toshok@helixcode.com>

	* message-list.c (subtree_unread): ETreePath != GNode now, use
	accessors.
	(ml_tree_value_at): same.
	(save_node_state): same.
	(save_tree_state): same.
	(nuke_uids_cb): convert to e_tree_model_node_traverse required
	type.
	(nuke_uids): g_node_traverse -> e_tree_model_node_traverse.

svn path=/trunk/; revision=5936
2000-10-15 23:22:33 +00:00
2ee3d212f8 Don't free the service name.
2000-10-13  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-list.c (message_list_setup_etable): Don't free the
	service name.

svn path=/trunk/; revision=5902
2000-10-13 21:51:19 +00:00
dd388c63f5 Create the 'spec' and 'extras' arguments and call e_table_scrolled_new()
2000-10-12  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-list.c (message_list_setup_etable): Create the 'spec'
	and 'extras' arguments and call e_table_scrolled_new() rather than
	set_specification as that function no longer (?) exists.

	Also started to add drag & drop functionality to something like
	Nautilus (but #if 0'd it out until I had time to finish it and
	till after 0.6).

svn path=/trunk/; revision=5890
2000-10-12 20:22:05 +00:00
80237e0c26 Duh, fix the test for the folder name, strstr != strcmp is it.
2000-10-12  Not Zed  <NotZed@HelixCode.com>

        * message-list.c (message_list_setup_etable): Duh, fix the test
        for the folder name, strstr != strcmp is it.

2000-10-10  Not Zed  <NotZed@HelixCode.com>

        * message-list.c (folder_to_cachename): Removed, changed callers
        to use mail_config_folder_to_cachename instead.

        * mail-config.c (mail_config_folder_to_cachename): New utility
        function to get a cache name for a folder.

        * mail-tools.c (mail_tool_do_movemail): Changed to return the path
        to the mbox, rather than opening a folder of it.

        * mail-ops.c (mail_incorporate_messages): Dont bother making the
        pseudo messageinfo, filder_driver_filter_message will do it for
        us.
        (report_status): Callback to report status of filtering operation.
        (do_fetch_mail): Changed significantly - for the api changes to
        the filtering system.  Also now incorporates a mailbox file
        directly, without having to import it into a camel folder first.
        (mail_incorporate_messages): Removed entirely, no longer needed.

        * mail-vfolder.c (vfolder_refresh): Fix for context api changes.
        (vfolder_uri_to_folder): Likewise.

        * folder-browser-factory.c (create_ondemand_hooks): Changed for
        api changes.  Also only adds demand filters to the menu (fixed a
        small logic bug).

svn path=/trunk/; revision=5883
2000-10-12 13:48:36 +00:00
2adab13971 Replace To with From except in Drafts, Outbox, or Sent boxes. Make Subject
2000-10-12  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c: Replace To with From except in Drafts, Outbox,
	or Sent boxes.  Make Subject column pay attention to text
	attributes like bold and strikethrough.

svn path=/trunk/; revision=5877
2000-10-12 04:57:05 +00:00
82dd927886 Changed these to use the proper form for the column element.
2000-10-11  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c, message-list.h, subscribe-dialog.c: Changed
	these to use the proper form for the column element.

svn path=/trunk/; revision=5849
2000-10-11 12:11:11 +00:00
fb49a9def4 Updated these to the new ETable style of specifications.
2000-10-11  Christopher James Lahey  <clahey@helixcode.com>

	* message-list.c, message-list.h, subscribe-dialog.c: Updated
	these to the new ETable style of specifications.

svn path=/trunk/; revision=5845
2000-10-11 11:06:51 +00:00
79154e4ac8 New widget, full search dialogue for mail.
2000-10-06  Not Zed  <NotZed@HelixCode.com>

        * mail-search-dialogue.c: New widget, full search dialogue for
        mail.

        * folder-browser.c (search_set): If we click on custom search, run
        the full search dialogue.
        (folder_browser_gui_init): Add a button to perform a full search.
        (search_full): Bring up the mail search dialogue asynchronously.
        (search_full_clicked): Handle search options.
        (folder_browser_destroy): Free the saved rule if there is one
        there.
        (search_options[]): Added a custom option option - brings up the
        full search dialogue.
        (search_set): Disable the search entry if we are doing a full
        search.

        * mail-vfolder.c (vfolder_create_storage): Yay, finally
        depeterised this stuff.
        (vfolder_uri_to_folder): Removed an irrelevant comment.

        * mail-callbacks.c (filter_edit): And here.

        * mail-ops.c (do_fetch_mail): And here too.

        * mail-autofilter.c (filter_gui_add_from_message): Fixed call to
        context_load.
        (filter_gui_add_for_mailing_list): And here too.

        * folder-browser-factory.c (create_ondemand_hooks): Remove that
        ondemand callback snot.

2000-10-05  Not Zed  <NotZed@HelixCode.com>

        * message-list.c (message_list_init_etable): Build the etable once
        we know what folder we are going to use.
        (save_header_state): Save the header spec to a cache file.
        (message_list_destroy): Save the header spec.
        (message_list_setup_etable): Setup the etable spec for this
        folder, from a saved version if one exists, or to suit the folder
        type (sent/received).
        (message_list_set_folder): Setup the etable here once we have a folder.

svn path=/trunk/; revision=5798
2000-10-09 12:57:36 +00:00
625a04713d re-write.
2000-10-09  Michael Meeks  <michael@helixcode.com>

	* message-list.c (message_list_toggle_threads): re-write.

	* folder-browser-factory.c (control_activate): update paths, need
	CVS HEAD bonobo, use a listener not a verb.

svn path=/trunk/; revision=5792
2000-10-09 12:01:27 +00:00
83b5ac87fc Use CamelInternetAddress instead of my quick hack (aka InternetAddress).
2000-10-04  Jeffrey Stedfast  <fejj@helixcode.com>

	* message-list.c (address_compare): Use CamelInternetAddress
	instead of my quick hack (aka InternetAddress).

svn path=/trunk/; revision=5741
2000-10-05 01:49:13 +00:00
91951b638c Fix the attachment icon width. (content_is_attachment): Perform some
2000-10-04  Not Zed  <NotZed@HelixCode.com>

        * message-list.c (message_list_init_header): Fix the attachment icon width.
        (content_is_attachment): Perform some simple tests to see if the
        message contains an attachment.
        (build_subtree): Kill a pointless warning.

svn path=/trunk/; revision=5707
2000-10-04 15:59:18 +00:00
26973c935a remove the 2 tree pixbufs, so adjust the offsets to the score pixbufs.
2000-10-02  Chris Toshok  <toshok@helixcode.com>

	* message-list.c (message_list_init_renderers): remove the 2 tree
	pixbufs, so adjust the offsets to the score pixbufs.  also, pass
	NULL for the open/closed pixbufs to the tree cell renderer.

svn path=/trunk/; revision=5667
2000-10-02 19:57:13 +00:00