2002-11-05  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-simple-card-bonobo.[ch]: Port to
	GObject/gnome2.
	
	* gui/component/select-names/e-select-names.[ch]: Port to
	GObject/gnome2.
	
	* gui/component/select-names/e-select-names-text-model.c: Port to
	GObject/gnome2.
	
	* gui/component/select-names/e-select-names-table-model.c: Port to
	GObject/gnome2.
	
	* gui/component/select-names/e-select-names-popup.[ch]: Port to
	GObject/gnome2.

	* gui/component/select-names/e-select-names-model.c: Port to
	GObject/gnome2.

	* gui/component/select-names/e-select-names-manager.[ch]: Port to
	GObject/gnome2.

	* gui/component/select-names/e-select-names-factory.c: Port to
	GObject/gnome2.

	* gui/component/select-names/e-select-names-completion.[ch]: Port
	to GObject/gnome2.

	* gui/component/select-names/e-select-names-bonobo.[ch]: Port to
	GObject/gnome2.

	* gui/component/select-names/Makefile.am: typical port stuff.  add
	marshaller generation foo, dist it, and switch the .oaf to .server

	* gui/component/select-names/.cvsignore: ignore the marshaller
	stuff.
<
2002-11-05  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/.cvsignore: ignore the generated marshaller files.

	* backend/ebook/e-destination.c (e_destination_dispose): rename
	e_destination_destroy.
	(e_destination_equal): ifdef this out for now, PENDING_PORT_WORK.
	(e_destination_get_name): same.
	(e_destination_get_email): same.
	(e_destination_get_address): same.
	(e_destination_get_textrep): same.

	* backend/ebook/Makefile.am: don't build the executables
	(importers and loaders) for now.  Also, s/oaf/server, and use
	INTLTOOL_SERVER_RULE.

	* backend/ebook/e-book-util.c (e_book_get_config_database):
	un-#ifdef this.
	(e_book_default_book_open): un-#ifdef ths code in here that relies
	on the e_config_listener.

2002-11-05  Dan Winship  <danw@ximian.com>

	* backend/pas/pas-backend-ldap.c (send_pending_adds): copy a
	memleak fix from pas-backend-ad.

2002-11-05  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-card.c: g_date_* => g_date_get_*, fixes
	G_DISABLE_DEPRECATED build.

	* backend/ebook/e-book-listener.[ch]: remove the servant crap i'd
	c&p'ed and put in here.

	* backend/ebook/e-book-view-listener.[ch]: remove the servant crap
	i'd c&p'ed and put in here.
	
	* backend/pas/pas-book-factory.[ch]: subclass from BonoboObject,
	and remove the servant crap from here too.  whee.

	* backend/pas/pas-card-cursor.[ch]: remove the servant crap i'd
	c&p'ed and put in here.

	* backend/pas/pas-book.[ch]: remove the servant crap i'd c&p'ed
	and put in here.

	* backend/pas/pas-book-view.[ch]: remove the servant crap i'd
	c&p'ed and put in here.

2002-11-05  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-card-sexp.[ch]: port to gnome 2.

	* backend/pas/pas-backend-file.[ch]: same.

	* backend/pas/pas-backend-file.[ch]: same.

	* backend/pas/pas-backend-ldap.[ch]: same.

	* backend/pas/pas-backend-summary.[ch]: same.

	* backend/pas/pas-backend.[ch]: same.

	* backend/pas/pas-book-factory.[ch]: same.

	* backend/pas/pas-book-view.[ch]: same.

	* backend/pas/pas-book.[ch]: same.

	* backend/pas/pas-card-cursor.[ch]: same.

	* backend/pas/pas-marshal.list: list of marshallers.

	* backend/pas/Makefile.am (libpas_a_SOURCES): add pas-marshal.c
	also add the marshal building foo.

	* backend/pas/.cvsignore: ignore pas-marshal.[ch]
	
2002-11-05  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/test-client-list.c (main): don't call
	bonobo_activation_init directly.

	* backend/ebook/test-client.c (get_card_cb): don't unref the card
	here since we never reffed it.
	(main): no need to call bonobo_activation_init, as
	gnome_program_init did it for us.

	* backend/ebook/e-card-simple.c (e_card_simple_get_property):
	s/g_value_{set,get}_pointer/g_value_{set,get}_object

	* backend/ebook/e-book-util.c (set_default_book_uri_local): make
	sure to terminate args with NULL for g_build_filename.

	* backend/ebook/e-book-listener.c: nuke e_book_listener_get_type
	and use the BONOBO_TYPE_FUNC_FULL macro.

	* backend/ebook/e-book-listener.h: add the epv to
	EBookListenerClass so BONOBO_TYPE_FUNC_FULL works.

	* backend/ebook/e-book-view-listener.c: nuke
	e_book_view_listener_get_type and use the BONOBO_TYPE_FUNC_FULL
	macro.

	* backend/ebook/e-book-view-listener.h: add the epv to
	EBookViewListenerClass so BONOBO_TYPE_FUNC_FULL works.

2002-11-02  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-book-types.h: just include glib.h instead of the
	gtk stuff.

	* backend/ebook/e-book-listener.[ch]: convert to
	GObject/bonobo-activation/etc/etc.
	* e-book-util.[ch]: same.
	* e-book-view-listener.[ch]: same.
	* e-book-view.[ch]: same.
	* e-book.[ch]: same.
	* e-card-compare.[ch]: same.
	* e-card-cursor.[ch]: same.
	* e-card-simple.[ch]: same.
	* e-card.[ch]: same.
	* e-destination.[ch]: same.
	* evolution-ldif-importer.c: same.
	* evolution-vcard-importer.c: same.
	* load-gnomecard-addressbook.c: same.
	* load-pine-addressbok.c: same.
	* test-card.c: same.
	* test-client-list.c: same.
	* test-client.c: same.

	* backend/ebook/Makefile.am: add e-book-marshal.c to SOURCES, add
	e-book-marshal.[ch] to CLEANFILES, and add e-book-marshal.list to
	EXTRA_DIST.  Also, remove the camel libs from the test LDADD's,
	and leave e-destination.[ch] out of the build.

	* backend/ebook/.cvsignore: ignore e-book-marshal.[ch]

	* backend/ebook/e-book-marshal.list: marshallers for e-book.

2002-10-28  Larry Ewing  <lewing@ximian.com>

	* backend/ebook/e-card.c (addPropValueUTF8): never set the charset
	on an item without also encoding it.  Mime messages don't like
	parts with multiple charsets. 	

2002-10-25  Dan Winship  <danw@ximian.com>

	* gui/widgets/e-addressbook-model.c (addressbook_destroy):
	Disconnect from the book's backend_died signal.

2002-10-24  Chris Toshok  <toshok@ximian.com>

       * backend/pas/Makefile.am: install evolutionperson.schema to
       $(datadir)/evolution.

2002-10-24  Chris Toshok  <toshok@ximian.com>

	[ fixes #29144 ]
	* gui/component/addressbook-config.c (edit_dialog_store_change):
	use e_table_memory_storage_change instead of remove/insert, so the
	selection is maintained.

2002-10-22  Dan Winship  <danw@ximian.com>

	* gui/component/select-names/e-select-names.c
	(folder_selected): Set /Addressbook/select_names_uri in the
	configdb to the selected folder.
	(e_select_names_init): Look for /Addressbook/select_names_uri
	before /DefaultFolders/contacts_uri for the initial folder. So the
	select names dialog now starts up using the same folder you used
	last time, which is useful when you have an LDAP company directory
	(which can't be your default contacts folder because it's
	read-only).

2002-10-21  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-component.c (IS_CONTACT_TYPE): fix the
	sense of a strcmp

2002-10-20  Chris Toshok  <toshok@ximian.com>

	[ fix for #23764 ]
	* gui/widgets/e-addressbook-view.c (jump_to_letters): handle
	multiple letters associated with a single button.
	(button_toggled): closure->letter -> closure->letters.
	(free_closure): free closure->letters.
	(create_alphabet): init closure->letters.

2002-10-20  Chris Toshok  <toshok@ximian.com>

	[ fixes #29067 ] 
	* backend/pas/pas-backend-file.c (pas_backend_file_search): we
	need to create a card_sexp even when doing summary queries since
	it's used to check modifications of cards in the view.

2002-10-20  Chris Toshok  <toshok@ximian.com>

       [ fixes #32144 ]
	* gui/contact-editor/e-contact-save-as.c (e_contact_save_as):
	convert the name to the gtk locale before saving.
	(e_contact_list_save_as): same.
	
2002-10-19  Chris Toshok  <toshok@ximian.com>

	[ probable fix for #25477, and memory leak fix ]
	* gui/contact-editor/e-contact-editor.c (supported_fields_cb): if
	the dialog isn't in the list of all dialogs it's been destroyed so
	just return here.

	* backend/ebook/e-book.c
	(e_book_do_response_get_supported_fields): plug leak of
	resp->fields.

2002-10-15  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-card.c (e_card_email_match_string): Return right
	away rather than crashing if card->email is NULL.
	(e_card_email_find_number): Likewise.

2002-10-10  Kjartan Maraas  <kmaraas@gnome.org>

	[ Fix #7094, #7064, #7095, #31944, #31945 ]
	* gui/component/Makefile.am: Hook up new etspec file.
	* gui/component/addressbook-config.c: Remove ETable spec.
	* gui/component/addressbook-config.etspec: New file.
	* gui/component/ldap-config.glade: Fix typo.
	* gui/component/select-names/e-select-names.c: Remove inline spec.
	* gui/component/select-names/e-select-names.etspec: New file.
	* gui/contact-list-editor/Makefile.am: Hook up etspec.
	* gui/contact-list-editor/e-contact-list-editor.c: Remove inline spec.
	* gui/contact-list-editor/e-contact-list-editor.etspec: New file.
	* gui/widgets/Makefile.am: Hook up new spec.
	* gui/widgets/e-addressbook-view.c: Remove inline spec.
	* gui/widgets/e-addressbook-view.etspec: New file.

2002-10-02  Chris Toshok  <toshok@ximian.com>

	[ Fix #28392 ]
	* gui/widgets/e-addressbook-view.c (do_popup_menu): #if 0 out the
	gal_view submenu, since it's not spec'ed to be there anyway (as
	per bug #16250).

2002-09-30  Chris Toshok  <toshok@ximian.com>

	[ Fixes #31321 ]
	* backend/ebook/e-card.c (e_card_get_vobject): add VERSION:2.1 to
	exported vCards.

2002-09-30  Chris Toshok  <toshok@ximian.com>

	[ Fixes #31434 ]
	* backend/pas/pas-backend-file.c (do_summary_query): always
	retrieve the card from the db.  use the summary strictly for
	matching, not for storing all information.  This fixes completion
	of contact lists, since only 3 addresses were being stored and
	contact lists can have more.

2002-09-30  Aaron Weber  <aaron@ximian.com>

	* gui/widgets/e-addressbook-util.c (e_addressbook_show_multiple_cards): rephrase string on l. 213
	
2002-09-30  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-card.c (e_card_list_send): update for
	Composer_setHeaders change.

2002-09-27  Chris Toshok  <toshok@ximian.com>

	[ fixes #27521 ]
	* gui/contact-editor/e-contact-quick-add.c (editor_closed_cb):
	always unref the contact editor when we get the editor_closed
	signal.

2002-09-27  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (check_schema_support): set the
	timeout to 30 seconds.
	(query_ldap_root_dse): same, and also return the ldap_error since
	this function is the one that actually causes openldap to
	connect() to the ldap host.
	(pas_backend_ldap_connect): check the return value of
	query_ldap_root_dse, and error out if it's not SUCCESS.

2002-09-26  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-storage.c (load_source_data): Change
	folder type to "contacts/ldap".
	(addressbook_storage_add_source): Likewise.
	(create_ldap_folder): Check for type being "contacts" not
	ldap contacts, since the ldap-specific type doesn't appear in the
	menu.

2002-09-25  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-component.c (folder_types): Rename
	"ldap-contacts" to "contacts/ldap" and add "contacts/public".
	(IS_CONTACT_TYPE): update for new types.

	* gui/component/select-names/e-select-names.c
	(e_select_names_init): Use "contacts/*" for selector_types.

	* gui/widgets/e-addressbook-util.c (e_addressbook_transfer_cards):
	Likewise.

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: add
	"evolution:config_item:type" = "contacts/ldap" to the LDAP sources
	control so it comes up by default when you open Preferences in an
	LDAP folder.

2002-09-23  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-table-adapter.c (addressbook_destroy):
	free adapter->priv.

	* gui/widgets/e-addressbook-model.c (addressbook_destroy): free
	model->query.

	* gui/component/select-names/e-select-names-manager.c
	(load_completion_books): use e_book_expand_uri here, and free the
	expanded uri after calling addressbook_load_uri, plugging a leak.

	* gui/component/select-names/e-select-names.c (set_book): unref
	esn->model before we unref esn.  fixes an edge case memory
	corruption bug.
	(clear_widget): utility function to set a widget's ref to NULL
	when it's destroyed.
	(e_select_names_init): hook the status_message, categories option
	menu, and select_entry to clear_widget.
	(addressbook_model_set_uri): use e_book_expand_uri.

2002-09-23  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: add libeutil to the link and link with
	libcamel instead of libcamel-static.la

2002-09-22  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names-manager.h: oops, add
	cached_folder_list to struct _ESelectNamesManager.

2002-09-22  Chris Toshok  <toshok@ximian.com>

	[ Fixes #30481 ] 
	* gui/component/select-names/e-select-names.c
	(e_select_names_init): initialize the select names dialog with the
	default contacts folder.

2002-09-22  Chris Toshok  <toshok@ximian.com>

	[ Fixes #28165, 29171 ]
	* gui/component/select-names/e-select-names-manager.c
	(uris_listener): check to see if the value has really changed.
	the way the preferences dialog works is such that we'll get called
	when any of the Folder Options are changed (default folders,
	offline stuff, etc.)  we really only want to tear down and build
	back up the completion books if the autocomplete folder setting
	changed.
	(read_completion_books_from_db): cache the folder list, and call
	load_completion_books.
	(load_completion_books): new function, loads from the
	cached_folder_list.
	(e_select_names_manager_init): init cached_folder_list to NULL.
	(e_select_names_manager_destroy): g_free (cached_folder_list).

2002-09-20  Chris Toshok  <toshok@ximian.com>

	[ Fixes #30483 ]
	* gui/component/select-names/e-select-names-completion.c
	(name_style_query): argh, contains => beginswith.

2002-09-17  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c (add_creatable_item):
	don't add the user creatable item for ldap-contact folders atm,
	since it results in their being duplicate New Contact and New
	Contact List menu items.

2002-09-17  Kjartan Maraas  <kmaraas@gnome.org>

	* gui/component/ldap-config.glade: Fix a typo.
	
2002-09-13  Chris Toshok  <toshok@ximian.com>

	[ Fixes bug #30250 ]
	* backend/ebook/e-destination.c (e_destination_get_name): handle
	"Unnamed Lists" here by setting their name to _("Unnamed List').

	* backend/ebook/e-card-simple.c (e_card_simple_get): same.

	* gui/contact-list-editor/e-contact-list-editor.c (is_named): new
	function, return TRUE if the name field is filled in.
	(prompt_to_save_changes): return TRUE if the list isn't named
	(meaning it's not saveable.)
	(command_state_changed): saving requires a name.
	(add_email_cb): always call command_state_changed.
	(remove_entry_cb): same.
	(list_name_changed_cb): same.
	(visible_addrs_toggled_cb): same.
	(table_drag_data_received_cb): same.

2002-09-12  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-card-simple.c (e_card_simple_get): return
	g_strdup("true"), not "true".

2002-09-11  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_start_query): institute an arbitrary
	minimum limit on the number of characters before we actually try
	to autocomplete.  It's 3, btw.

2002-09-11  Chris Toshok  <toshok@ximian.com>

	[ fixes the other half of #17336 ]
	* gui/contact-editor/e-contact-quick-add.c (quick_add_set_name):
	parse the name when we're asked to set it, so the full name
	doesn't get stored as (potentially) "Last, First" in the card.

2002-09-11  Chris Toshok  <toshok@ximian.com>

	[ fixes part of #17336 ]
	* gui/contact-editor/e-contact-editor-fullname.c
	(e_contact_editor_fullname_init): get the window title from the
	.glade file, and supply a suitable wm icon.

	* gui/contact-editor/e-contact-editor-address.c
	(e_contact_editor_address_init): same.

2002-09-11  Chris Toshok  <toshok@ximian.com>

	[ fixes #30208 ]
	* gui/component/addressbook.c (load_uri_auth_cb): if the user
	clicked cancel in the password dialog, let them off the hook and
	bind anonymously.  Otherwise (if they failed to auth), prompt them
	for the password again.
	(addressbook_authenticate): new function, split out 99% of the
	auth machinery here so it can be called multiple times.  Also,
	call the callback with E_BOOK_STATUS_CANCELLED if the user clicked
	the cancel button in the dialog.
	(load_uri_cb): call addressbook_authenticate if the book has auth
	enabled.
	(addressbook_load_uri): use g_new0.

2002-09-05  Anna Dirks  <anna@ximian.com>
	* gui/component/GNOME_Evolution_Addressbook.oaf.in : Changed the 
	description of the Directory Servers page of the settings dialog 
	to be a little less wordy {This page can be used to configure blah--> 
	Configure blah.}


2002-09-04  Chris Toshok  <toshok@ximian.com>

	[ Fixes #29904 ]
	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_activate_obj): we need to activate
	either a contact list editor or contact editor depending on if
	it's a list (this screams for a utility function.)

2002-09-04  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-storage.c
	(addressbook_get_other_contact_storage): Pass FALSE to
	evolution_storage_new: the Other Contacts storage doesn't support
	shared folders.

2002-09-04  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (create_component): Pass
	NULL as @unpopulate_folder_context_menu_fn to
	evolution_shell_component_new().

2002-09-03  Mike Kestner  <mkestner@ximian.com>

	* gui/component/select-names/e-select-names.c (e_select_names_destroy):
	unref the "without", adapter, and model, then chain up the GnomeDialog
	destroy function.

2002-09-03  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Use
	ldap-settings.png instead of evolution-contacts.png.

2002-09-03  Chris Toshok  <toshok@ximian.com>

	[ fixes #29699 ]
	* gui/component/addressbook-config.c
	(addressbook_add_server_druid): call _set_source with a NULL
	source to fill in dialog settings that are set from the option
	menus (like the SSL setting).

2002-09-03  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c (delete_contact_cb): Fix typo
	[`view>view' instead of `view->view'].  Also, cast to
	GTK_WINDOW instead of GTK_WIDGET as it should be.

2002-08-30  Dan Winship  <danw@ximian.com>

	* backend/idl/addressbook.idl (CallStatus): add QueryRefused, for
	when the backend refuses to perform a query. (part of #25782)

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_convert_status): translate
	GNOME_Evolution_Addressbook_BookViewListener_QueryRefused.

	* gui/component/addressbook.c (search_result): Handle
	E_BOOK_VIEW_STATUS_QUERY_REFUSED.

2002-08-30  Chris Toshok  <toshok@ximian.com>

	[ fixes #27923]
	* backend/pas/pas-backend-summary.c: up the version to 4_0 (4000).
	(pas_backend_summary_load_item): handle wants_html{_set}, list,
	and list_show_addresses.
	(pas_backend_summary_save_item): same.
	(pas_backend_summary_add_card): same.
	(pas_backend_summary_get_summary_vcard): same.

2002-08-29  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c (add_creatable_item): call
	evolution_shell_component_add_user_creatable_item twice here, once
	for the "contacts" folder type, and once for "ldap-contacts".

2002-08-29  Chris Toshok  <toshok@ximian.com>

	[ fixes #20347 ]
	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init): hook
	up the backend_died signal.
	(backend_died): new function, pop up an error dialog saying the
	backend died.

	* gui/widgets/e-addressbook-model.c (backend_died): new function,
	emit the backend_died signal.
	(e_addressbook_model_class_init): create the backend_died signal.
	(e_addressbook_model_init): init backend_died_id
	(e_addressbook_model_set_arg): disconnect the backend_died signal
	from the old book and hook it up to the new book.

	* gui/widgets/e-addressbook-model.h: add the backend_died signal.

	* backend/ebook/e-book.c (backend_died_cb): new function, emit the
	backend_died signal.
	(e_book_do_response_open): create the component listener and hook
	up the backend_died signal.
	(e_book_destroy): disconnect the component listener and unref it.

	* backend/ebook/e-book.h: add backend_died signal.

2002-08-29  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-card-sexp.c (is_helper): use strcasecmp
	here, since all the other helpers use case insensitive
	comparisons.

	* backend/pas/pas-backend-summary.c (is_helper): same.

2002-08-29  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (category_ber): return NULL if
	the list is empty.
	(pas_backend_ldap_connect): always try to use ldapv3, not just
	when we want to use tls.

2002-08-29  Chris Toshok  <toshok@ximian.com>

	[ fixes #25038 ]
	* gui/contact-editor/Makefile.am (INCLUDES): need to have
	EVOLUTION_ICONSDIR defined.

	* gui/contact-list-editor/Makefile.am (INCLUDES): same.

	* gui/contact-editor/e-contact-editor.c (e_contact_editor_init):
	set the window icon to the contact mini icon.

	* gui/contact-list-editor/e-contact-list-editor.c
	(e_contact_list_editor_init): set the window icon to the new
	contact list icon.
	
	* gui/widgets/e-minicard.c (LIST_ICON_FILENAME): change to (the
	prettier, imo) "contact-list-16.png"

2002-08-28  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_search): spew
	the filter we're using for the search.

2002-08-28  Mike Kestner  <mkestner@ximian.com>

	* gui/component/select-names/e-select-names-completion.c : stop the
	EBookViews before unreffing.

2002-08-28  Dan Winship  <danw@ximian.com>

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Add an
	evolution:shell_component_launch_order and rename
	evolution:shell_component_icon.

2002-08-28  Chris Toshok  <toshok@ximian.com>

	[ oops, merged the .h and .glade file back to the HEAD from the
	1-0 branch, but missed the .c file. ]
	* gui/component/select-names/e-select-names.c (status_message): set
	the status label's text.
	(e_select_names_init): get the status message widget from the
	glade ui.

2002-08-28  Chris Toshok  <toshok@ximian.com>

	[ fixes #19286 ]
	* gui/component/addressbook.c (delete_contact_cb): confirm
	deletion of contacts when using the menubar or toolbar.

2002-08-28  Chris Toshok  <toshok@ximian.com>

	[ fixes #28897 ]
	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_clear_book_data): set book_data to NULL
	after clearing/freeing the list.  fixes a crash.

2002-08-28  Chris Toshok  <toshok@ximian.com>

	[ fixes #20348 ]
	* backend/pas/evolutionperson.schema: deprecate "categories" in
	favor of "category".  evolution no longer uses "categories".

	* backend/pas/pas-backend-ldap.c (category_populate): new
	function, "category" is the new name, and it's multivalued so we
	need the complex-prop stuff..
	(category_ber): new function, same.
	(category_compare): new function, same.

	* gui/component/addressbook.c (addressbook_search_activated): the
	text is "Category is" so we should use "is" instead of "contains"
	for the query.

2002-08-27  Chris Toshok  <toshok@ximian.com>

	[ Fixes #14835 ]
	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_search):
	notify_complete with InvalidQuery if the parse fails.

2002-08-27  Chris Toshok  <toshok@ximian.com>

	[ fixes #26907 ]
	* gui/component/addressbook.c (addressbook_search_activated): use
	beginswith for email.

2002-08-26  Chris Toshok  <toshok@ximian.com>

	* printing/e-contact-print.c (complete_sequence): change prototype
	for complete_sequence to match sequence_complete.
	(e_contact_print_button): same.

2002-08-26  Chris Toshok  <toshok@ximian.com>

	[ fixes #29446 ]
	* gui/component/addressbook-config.c (scope_optionmenu_activated):
	searching_modify_func can be NULL (since we don't require changes
	to enable the "Next" button on this page when you create a
	directory server.)

2002-08-26  Chris Toshok  <toshok@ximian.com>

	[ Fixes (almost certainly) #24649, #25494, #27351, and other LDAP search crashes ]
	* backend/pas/pas-backend-ldap.c (view_destroy): use an EList
	instead of a GList to store the book_view's so we don't have weird
	issues with modifying the list while it's being traversed.
	(find_book_view): same.
	(create_card_handler): same.
	(remove_card_handler): same.
	(modify_card_modify_handler): same.
	(poll_ldap): same, and also ref the book_view before calling
	ldap_search_op_timeout (and therefore send_pending_adds).
	(ldap_search_handler): same.
	(ldap_op_add): warn about conflicting ldap msgid's (shouldn't ever
	happen..)
	(homephone_populate): make this a bit more robust (if values[0] ==
	NULL, values[1] won't be valid).
	(business_populate): same.
	(build_card_from_entry): break out of the prop_info loop when we
	get a match, and only set the simple field if the value != NULL.
	(ldap_search_dtor): free all the pending adds stuff.
	(pas_backend_ldap_process_get_book_view): g_list_prepend =>
	e_list_append.
	(pas_backend_ldap_remove_client): simplify the removing of the
	book (use g_list_remove instead of searching and then using
	g_list_remove_link.)
	(pas_backend_ldap_destroy): unref the book_views list.
	(pas_backend_ldap_init): initialize the EList for book_views.

2002-08-25  Mike Kestner  <mkestner@ximian.com>

	* gui/widgets/e-addressbook-view.c (remove_book_view): stop the
	view before unref, in case the listener has pending events.

2002-08-20  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (book_open_cb): not sure what i was
	thinking here... the EBook isn't valid if we couldn't open it, so
	we can't turn around and query it for its capabilities.

2002-08-19  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names-manager.h: add the
	listener_id slot.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_new): store off the listener_id.
	(e_select_names_manager_destroy): remove the bonobo listener -
	fixes a crash when modifying the completion folders after you
	bring up a compose window.
	(e_select_names_manager_entry_new): another random timeout change
	- make the completion at 100ms.

2002-08-19  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book-view.c (pas_book_view_notify_complete):
	take and pass the CallStatus to our listener.

	* backend/pas/pas-book-view.h: change the prototype for
	notify_complete to include the CallStatus.

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_seq_complete_cb): add the status arg.

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_class_init): init the search_result signal.
	(e_addressbook_view_init): connect to the model's search_result
	signal.
	(emit_search_result): emit our search_result signal.
	(search_result): call emit_search_result.

	* gui/widgets/e-addressbook-view.h (struct
	_EAddressbookViewClass): add the search_result signal.

	* gui/widgets/e-addressbook-model.c (sequence_complete): emit both
	a "search_result" as well as the "stop_state_changed" signal.
	(e_addressbook_model_class_init): init the search_result signal.

	* gui/widgets/e-addressbook-model.h: add search_result signal.

	* gui/component/addressbook.c (search_result): pop up a dialog
	telling the user why the search failed or was truncated.
	(addressbook_factory_new_control): connect to the "search_result"
	signal on the view.

	* conduit/address-conduit.c (sequence_complete): add the status
	parameter to sequence_complete.

	* backend/idl/addressbook.idl: add BookViewListener_CallStatus,
	and change notifySequenceComplete to take a CallStatus.

	* backend/pas/pas-backend-ldap.c (create_card_handler): pass
	status back in the notify_complete call.
	(remove_card_handler): same.
	(modify_card_modify_handler): same
	(ldap_search_handler): same, and parse out the ldap return code so
	we can report limits being properly.

	* backend/pas/pas-backend-file.c (do_summary_query): pass status
	back in the notify_complete call.
	(pas_backend_file_search): same, and get rid of the
	status_message, as the status is passed back properly.
	(pas_backend_file_search): pass status
	back in the notify_complete call.
	(pas_backend_file_changes): same.
	(pas_backend_file_process_create_card): same.
	(pas_backend_file_process_remove_card): same.
	(pas_backend_file_process_modify_card): same.

	* backend/ebook/e-book-util.c (simple_query_sequence_complete_cb):
	add status parameter.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_queue_status_event): change name from
	_queue_empty_event, and take a status arg.
	(e_book_view_listener_queue_id_event): init resp->status (to
	SUCCESS).
	(e_book_view_listener_queue_sequence_event): same.
	(e_book_view_listener_queue_message_event): same.
	(impl_BookViewListener_notify_sequence_complete): call
	queue_status_event, and convert the corba status to
	EBookViewStatus.
	(e_book_view_listener_convert_status): new function, conver the
	corba status to EBookViewStatus.

	* backend/ebook/e-book-view-listener.h: add a "status" slot to
	EBookViewListenerResponse.

	* backend/ebook/e-book-view.h: change prototype for
	sequence_complete signal.

	* backend/ebook/e-book-view.c (e_book_view_do_complete_event):
	sequence_complete takes a parameter now (EBookViewStatus).
	(e_book_view_class_init): add the enum arg to the signal.

	* backend/ebook/e-book-types.h: add EBookViewStatus enum.

2002-08-19  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_get_static_capabilities): add
	"cache-completions" here, since file completion results are
	blanket cached (as they're generated from a summary).

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_get_cursor): there should be no search
	limit on the get_cursor_request, as it's meant to match every card
	it can.
	(ldap_search_handler): parse the ldap result in the
	RES_SEARCH_RESULT case.  we'll want more here soon, so we can
	notify the front end if the result was truncated due to either the
	size or time limit being exceeded.
	(pas_backend_ldap_process_get_book_view): in the case of a
	completion view, we hardcode (yeah yeah, i know, but really) the
	search limit to MIN (100, user-specified-limit).
	(pas_backend_ldap_search): each view has its own limit now,
	defaulting from the user specified one for normal searches but
	possibly different for completion views.  use the view's limit
	here.

2002-08-19  Dan Winship  <danw@ximian.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): add an "addresses" property, to get the
	"Dan Winship <danw@ximian.com>" form, as opposed to "text", which
	gets you what's displayed, which might be just "Dan Winship".
	(entry_set_property_fn): When setting, just reuse the "text" code,
	since it should properly cardify everything for us anyway.
	(impl_SelectNames_get_entry_for_section): Add the property.

2002-08-16  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c
	(addressbook_source_dialog_set_source): fix c&p error that was
	losing the ssl setting.

2002-08-16  Iain <iain@ximian.com>

	* backends/e-book/evolution-ldif-importer.c (ebook_create): Use the
	default EBook instead of the local one.

	* backends/e-book/evolution-vcard-importer.c (ebook_create): Ditto.

2002-08-16  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (book_view_notify_status): new
	function to save a little typing.
	(find_book_view): same.
	(pas_backend_ldap_connect): reorder things a bit - set the version
	to VERSION3 *before* doing TLS, as tls requires v3, and if we're
	doing ldaps://, do tls a little differently (not sure if this is
	strictly necessary, but the openldap source did it..  *shrug*).
	also, guard the schema check as this function can be called
	multiple times for the same server (if the server goes down or
	times us out.)
	(pas_backend_ldap_reconnect): new function, reconnect and if
	necessary reauth the user.
	(pas_backend_ldap_process_create_card): use
	find_book_view/book_view_notify_status/pas_backend_ldap_reconnect.
	(pas_backend_ldap_process_remove_card): same.
	(pas_backend_ldap_process_modify_card): same.
	(pas_backend_ldap_process_get_vcard): same.
	(pas_backend_ldap_process_get_cursor): same.
	(pas_backend_ldap_search): same.
	(poll_ldap): reconnect if ldap_result returns -1.
	(pas_backend_ldap_process_authenticate_user): ick ick ick save off
	the dn/passwd we auth with so we can use them to reauthenticate.

2002-08-16  Chris Toshok  <toshok@ximian.com>

	[ fix 27333 ]
	* gui/widgets/e-addressbook-model.c (get_view): "local" ->
	"do-initial-query".

	* backend/pas/pas-backend-file.c
	(pas_backend_file_get_static_capabilities): "local" ->
	"local,do-initial-query".

	* gui/widgets/e-addressbook-model.c (get_view): "local" ->
	"do-initial-query".

	* gui/component/addressbook.c (book_open_cb): Only assume the
	addressbook is local if "local" appears in its static
	capabilities.  We still use the ldap special case, but be nicer to
	other networked backends.

2002-08-12  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-component.c (user_create_new_item_cb):
	If invoked from a non-contact folder, add the contact to the
	default contact folder, not the local one. If invoked from a
	contact folder, don't append "addressbook.db" to the URI, let
	ebook do the right thing. Fixes #28327 and #28325.

	* backend/idl/addressbook.idl (CallStatus): Add NoSuchBook.
	(Initially intended as part of a fix for #28327, but the other
	changes make it so the error code never ends up getting used any
	more, but it's still good to have.)

	* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):
	Handle NO_SUCH_BOOK.

	* backend/ebook/e-book-types.h (EBookStatus): Add
	E_BOOK_STATUS_NO_SUCH_BOOK.

	* backend/ebook/e-book-listener.c
	(e_book_listener_convert_status): add case for NoSuchBook.

	* backend/ebook/e-book-util.c (e_book_load_local_address_book):
	Kill this. Nothing should ever explicitly load the local
	addressbook.
	(e_book_use_default_book): Replaces e_book_use_local_address_book,
	using the default book instead.
	(e_book_default_book_open): Fall back to local contact folder on
	E_BOOK_STATUS_NO_SUCH_BOOK too.
	(e_book_query_address_default): Use default book, not local.

	* gui/component/e-address-widget.c (query_idle_fn): Use the
	default book, not the local book.

	* gui/component/select-names/e-select-names-popup.c
	(edit_contact_info_cb): Use the default book, not the local book.

	* backend/ebook/e-destination.c (e_destination_cardify): Use the
	default book, not the local book.
	(e_destination_touch): Query the default book, not the local book.

	* backend/ebook/e-card-compare.c (e_card_locate_match,
	e_card_locate_match_full): Use the default book, not the local
	book.

2002-08-08  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-summary.c (pas_backend_summary_init):
	initialize summary->upgraded to quiet valgrind.

2002-08-06  Dan Winship  <danw@ximian.com>

	* backend/ebook/test-client.c (TEST_VCARD): Use "\r" rather than
	including literal CRs in the string, which confuses gcc on OS X.

	* backend/ebook/test-card.c (TEST_VCARD): Likewise.

2002-08-01  Chris Toshok  <toshok@ximian.com>

	[ fixes bug #25958 ]
	* gui/component/addressbook.c (alphabet_state_changed): use
	FULL_NAME in the case where we're untoggling a letter, and... well
	use FULL_NAME in the other case too - we should never pop up the
	advanced dialog.

2002-08-01  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names.h (struct
	_ESelectNames): no more search_entry.

	* gui/component/select-names/e-select-names.c (update_query): no
	more search_entry, search_entry => select_entry, and add file_as
	to the query since some entries don't have names (like the Ximian,
	Inc. default card.)
	(e_select_names_init): no more search_entry, and add an "activate"
	handler on select_entry that updates the query.

2002-08-01  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names.h (struct
	_ESelectNames): remove folders and folders_by_uri, and the 2
	listeners.

	* gui/component/select-names/e-select-names.c
	(e_select_names_destroy): remove the hash_table_destroys of
	folders and folders_by_uri, since they no longer exist.  same for
	other_contacts_listener and local_listener.

2002-08-01  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (create_component): Use
	"contact-list-16.png" for the "New Contact List" item.

2002-07-31  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (create_component): Change
	the order so that "New Contact" is first and "New Contact List" is
	next.

2002-07-31  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (add_creatable_item): Pass
	"contacts" as the @folder_type to
	evolution_shell_component_add_user_creatable_item().

2002-07-31  Chris Toshok  <toshok@ximian.com>

	[ roll in the following change from the 1.0 branch.]
	* backend/pas/pas-backend-ldap.c:
	(prop_info): change the CALURI and FBURL ecard attributes to map to the
	RFC 2739 specified attributes.
        (check_schema_support): check to see if calEntry is supported.
        (add_objectclass_mod): insert calEntry if it's supported.
	* backend/pas/evolutionperson.schema: deprecate freeBusyURI
	and calendarURI.

2002-07-31  Ettore Perazzoli  <ettore@ximian.com>

	[Patch by Jacob Berkman <jacob@ximian.com>, fixes #25968]

	* backend/ebook/e-book.c (activate_factories_for_uri): Don't
	double free protocol and query.

2002-07-27  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-summary.c (save_string): don't save
	empty strings.
	(pas_backend_summary_save): print out the errno when we fail.

2002-07-26  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c: Don't set up the ContactNew and
	ContactNewList verbs.
	(update_command_state): Don't set the sensitivity of
	/commands/ContactNew and /commands/ContactNewList anymore.
	(new_contact_cb): Removed.
	(new_contact_list_cb): Removed.

2002-07-24  Peter Williams  <peterw@ximian.com>

	* conduit/Makefile.am (libeaddress_conduit_la_LIBADD): Change
	libversit.la -> libversit.a for danw's changes.

2002-07-24  Dan Winship  <danw@ximian.com>

	* conduit/Makefile.am (libeaddress_conduit_la_LIBADD):
	s/libversit_lt/libversit/

2002-07-22  Dan Winship  <danw@ximian.com>

	* backend/pas/Makefile.am: Split pas-backend-file and
	pas-backend-ldap out of libpas and build them as separate (noinst)
	libraries libpasfile.a and libpasldap.a. This gets the db3 and
	LDAP dependencies out of libpas, and people trying to create an
	addressbook backend shouldn't be calling functions from the
	existing backends anyway so there's no reason to install them.

2002-07-16  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/select-names.glade: remove the option
	menu and browse button, and add a custom widget placeholder for
	the folder-selector.

	* gui/component/select-names/e-select-names.c
	(addressbook_model_set_uri): move the "append /addressbook.db"
	stuff here.
	(e_addressbook_create_ebook_table): remove the code setting
	initial uri from here.
	(e_select_names_folder_free): gone.
	(e_select_names_option_activated): gone.
	(add_menu_item): gone.
	(update_option_menu): gone.
	(new_folder): gone.
	(removed_folder): gone.
	(folder_browse): gone.
	(hookup_listner): gone.
	(add_additional_select_names_uris): gone.
	(e_select_names_hookup_listners): gone.
	(e_addressbook_create_folder_selector): new function, create the
	folder selector button.
	(folder_selected): new function, callback for the folder selector.
	just calls addresbook_model_set_uri.
	(e_select_names_init): get the folder selector and initialize it
	to show /local/Contacts.  also, set the model's uri here to the
	same folder.  nuke the code involving the old option menu and
	browse button.

2002-07-08  Peter Williams  <peterw@ximian.com>

	* backend/ebook/Makefile.am: Install libebook-static.la. 
	Also change --all-static to -all-static, which is the right flag.
	
	* backend/pas/Makefile.am: Install the PAS headers in 
	$(includedir)/evolution/pas. Install libpas.a

2002-07-08  Peter Williams  <peterw@ximian.com>

	* gui/component/select-names/Makefile.am (idl_DATA): Install the
	SelectNames IDL and ancillary changes.

2002-07-12  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-summary.c (free_summary_item): free the
	full_name (as well as given_name.  oops.)
	(pas_backend_summary_new): new summaries are version 3.0 now.
	(pas_backend_summary_load_item): all loaded summaries should be
	3.0+, as we fail to load versions lower than that.
	(pas_backend_summary_load_header): if the summary isn't version
	3.0 fail out, as we need to rebuild the entire file to cache the
	full_name fields.
	(pas_backend_summary_save_item): save out the full_name.
	(pas_backend_summary_add_card): put the item's full_name in the
	card.

2002-07-12  Dan Winship  <danw@ximian.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Make the
	ENTRY_PROPERTY_ID_SIMPLE_CARD_LIST case not crash, although
	there's still something wrong.

2002-07-10  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_start_query): e_book_get_book_view =>
	e_book_get_completion_view, so the backends have the option of
	using a pregenerated summary.

2002-07-10  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-summary.c (clear_items): actually remove
	the items from the pointer array too, so an error while loading
	doesn't leave the memory summary corrupted.
	(pas_backend_summary_load_header): bleah, load the num_items and
	summary_mtime in the right order :) Also, set upgraded to TRUE if
	we loaded a v1.0 summary.
	(pas_backend_summary_open): make this return a gboolean, return
	TRUE if the summary is already open (priv->fp != NULL).  return
	FALSE in error conditions.
	(pas_backend_summary_load): if summary_open returns FALSE, return
	FALSE, also set the dirty flag to FALSE after we load, and if the
	summary was upgraded write it out.
	(pas_backend_summary_save): update the in memory mtime to that of
	the file when we save.
	(summary_flush_func): if we're not dirty, do nothing and return.
	(pas_backend_summary_is_up_to_date): make sure we've opened the
	summary.
	(pas_backend_summary_get_summary_vcard): fix compiler warning.

2002-07-10  Peter Williams  <peterw@ximian.com>

	* backend/ebook/e-book-view-listener.h: Oops, missed this one.

	* backend/ebook/Makefile.am (libebookinclude_HEADERS): Also
	put addressbook.h here because several headers reference it.

2002-07-08  Peter Williams  <peterw@ximian.com>

	* backend/ebook/e-book.h: Normalize includes to <ebook/foo.h>, so
	that the installed headers will work sanely.

	* backend/ebook/e-card-cursor.h:
	* backend/ebook/e-book-view.h:
	* backend/ebook/e-card-simple.h:
	* backend/ebook/e-card.h:
	* backend/ebook/e-destination.h: Same.

	* printing/Makefile.am (INCLUDES): add -Iaddressbook/backend
	to access the ebook headers. Also the builddir version to get
	the generated addressbook.h

	* conduit/Makefile.am (INCLUDES): Same.

	* gui/widgets/Makefile.am (INCLUDES): Same builddir fix.

	* gui/merging/e-card-merging.c: Fix an ebook #include.

	* gui/merging/Makefile.am (INCLUDES): Same idea.

	* gui/contact-list-editor/Makefile.am (INCLUDES): Same.

	* gui/contact-editor/Makefile.am (INCLUDES): Same builddir
	change.

2002-07-10  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-storage.c (load_source_data): Pass
	zero as the @sorting_priority to evolution_storage_new_folder().
	(addressbook_storage_add_source): Likewise.

2002-07-10  Chris Toshok  <toshok@ximian.com>

	* backend/idl/addressbook.idl: add Book.getCompletionView.

	* backend/ebook/e-book.c (e_book_get_completion_view): new
	function, basically c&p of e_book_get_book_view, but call
	getCompletionView.

	* backend/ebook/e-book.h: add prototype for
	e_book_get_completion_view.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_client_requests): add a
	GetCompletionView case here that just calls the same code as
	GetBookView (since we don't build summaries for the ldap backend.)

	* backend/pas/pas-backend-file.c (do_summary_query): add
	@completion_search.  If it's TRUE, just create the vcards from the
	summary using pas_backend_summary_get_summary_vcard instead of
	looking them up from the db.
	(pas_backend_file_search): add @completion_search and pass it on
	to do_summary_query.
	(pas_backend_file_process_get_book_view): pass FALSE to
	pas_backend_file_search.
	(pas_backend_file_process_get_completion_view): new function,
	basically c&p pas_backend_file_process_get_book_view, but pass
	TRUE to pas_backend_file_search.
	(pas_backend_file_process_client_requests): add a case for
	GetCompletionView.
	(pas_backend_file_load_uri): track the change to the summary api -
	create the summary filename

	* backend/pas/pas-book.c (pas_book_queue_get_completion_view): new
	function, queue a GetCompletionView request to our queue.
	(impl_GNOME_Evolution_Addressbook_Book_getCompletionView): new
	function, call pas_book_queue_get_completion_view.
	(pas_book_respond_get_completion_view): new function, just call
	notifyViewRequested.
	(pas_book_free_request): add a case for GetCompletionView.
	(pas_book_get_epv): fill in epv->getCompletionView.

	* backend/pas/pas-book.h: add a GetCompletionView PASOperation,
	and a new structure (PASGetCompletionViewRequest).  Also, add
	get_completion_view to PASRequest.

	* backend/pas/pas-backend-summary.c (clear_items): remove the
	items from the hash table.
	(pas_backend_summary_new): db_path -> summary_path.
	(pas_backend_summary_destroy): db_.path -> summary_path, and
	destroy the hash table.
	(pas_backend_summary_init): db_path = summary_path, and initialize
	the id_to_item hashtable.
	(pas_backend_summary_load_header): handle the upgrading from
	version 1.0 to version 2.0 (the addition of an mtime field in the
	header)
	(pas_backend_summary_load_item): version 1.0 and 2.0 have the same
	format for items.
	(pas_backend_summary_open): new function.  open the summary so we
	can load the header (and get the mtime).
	(pas_backend_summary_load): rework this a bit since the header has
	already been loaded, and also add the items to the hashtable.
	(pas_backend_summary_add_card): add the new item to the hashtable.
	(pas_backend_summary_remove_card): remove the item from the hash
	table.
	(pas_backend_summary_is_up_to_date): new function, chekc @t
	against the summary's mtime.
	(pas_backend_summary_get_summary_vcard): create a vcard from the
	fields we have in the summary.

	* backend/pas/pas-backend-summary.h: add prorotypes for
	pas_backend_summary_is_up_to_date and
	pas_backend_summary_get_summary_vcard.

2002-07-09  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-storage.c (load_source_data): Pass
	NULL @custom_icon_name to evolution_storage_new_folder().
	(addressbook_storage_add_source): Likewise.  [Note we could be
	passing a nice custom here. ;-)]

2002-07-02  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (add_creatable_item): New
	arg @tooltip; pass it to
	evolution_shell_component_add_user_creatable_item() [which now has
	a @tooltip arg].

2002-06-29  Chris Toshok  <toshok@ximian.com>

	* backend/pas/Makefile.am (libpas_a_SOURCES): add
	pas-backend-summary.[ch].

	* backend/pas/pas-backend-file.c (string_to_dbt): move this to the
	top of the file so it can be used in..
	(build_summary): loop over the db, adding cards ot the summary.
	(do_summary_query): call pas_backend_summary_search and loop over
	the returned id's looking them up in the db.
	(pas_backend_file_search): call
	pas_backend_summary_is_summary_query, and either call
	do_summary_query if it's a query over just the set of attributes
	in the summary or use the old, slow method if not.
	(pas_backend_file_process_create_card): call
	pas_backend_summary_add_card.
	(pas_backend_file_process_remove_card): call
	pas_backend_summary_remove_card.
	(pas_backend_file_process_modify_card): call remove_card/add_card.
	(pas_backend_file_load_uri): try to load the summary file, and if
	it doesn't exist create it.
	(pas_backend_file_destroy): unref the summary.

	* backend/pas/pas-backend-summary.[ch]: new files, reading and
	writing (and querying) summaries.

2002-06-27  Sean Atkinson  <sean@cantab.net>

        * gui/component/addressbook-config.c (query_for_supported_bases):
        don't unref selection_model (otherwise 3 clicks of
        "Show Supported Bases" crashes if LDAP server isn't running).

2002-06-25  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c (create_component):
	reorder the adding of creatable items so the default is a new
	contact, not a new contact list.

2002-06-21  Sean Atkinson  <sean@cantab.net>

	* gui/component/addressbook-config.c (addressbook_edit_server_dialog):
	remove source argument (get it from the dialog).
	(edit_source_clicked): same.
	(sources_table_double_click): added to edit server by double-clicking.
	(ldap_dialog_new): use sources_table_double_click.

2002-06-17  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_save_as):
	pass NULL to e_contact_list_save_as.  modality sucks.  fixes
	broken build.
	(save_as): same.

2002-06-15  Chris Toshok  <toshok@ximian.com>

	[ fixes bug #26130 ]
	* gui/contact-editor/e-contact-editor.c (file_save_as_cb): pass
	ce->app as parent_window.

	* gui/contact-list-editor/e-contact-list-editor.c
	(file_save_as_cb): same .

	* gui/contact-editor/e-contact-save-as.c (e_contact_list_save_as):
	if a parent_window is specified, the file selector should be
	modal/transient for that window.
	(e_contact_save_as): same.

	* gui/contact-editor/e-contact-save-as.h: track prototype changes
	(addition of GtkWindow *parent_window to both calls.)
	
2002-06-15  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): use
	ldap_unbind_ext.
	(create_card_handler): don't leak the new vcard.
	(pas_backend_ldap_process_authenticate_user): don't leak the dn.

2002-06-14  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_search): up the
	max threshold to 3000 cards from 1000 cards.. seems to improve
	performance a bit.  also remove the g_list_reverse since it
	doesn't matter what order the cards arrive to the gui.
	(pas_backend_file_changes): plug memory leaks.

2002-06-14  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-compare.c (compare_email_addresses): Made
	"" compare as not equal to "" for addresses.
	(use_common_book_cb): Don't bother checking for nickname here
	since we don't use it as a match later.  Don't add "" as an
	address to the list of query parts.

2002-06-13  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/e-contact-editor.c (enable_writable_fields):
	Don't enable fields if the editor isn't editable and the
	widget_field_mappings lists this field as being desensitize for
	read only.

2002-06-11  Chris Toshok  <toshok@ximian.com>

	[ fixes bug #17332 ]
	* backend/ebook/e-book.c (e_book_get_static_capabilities): we
	shouldn't ever return NULL here.  in error cases we need to return
	g_strdup("");

2002-06-11  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-minicard-view.c (e_minicard_view_event): Made
	double clicking on read only folders not do anything.

2002-06-10  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-book-util.c (e_book_expand_uri): Made expand_uri
	a bit more robust and readable.
	(e_book_get_default_book_uri): Made e_book_get_default_book_uri
	use e_book_expand_uri if using the bonobo_config value.

	* gui/component/e-address-popup.c (start_query): Handle the
	failure state here by acting as if there are no matches.

2002-06-05  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-minicard.c (e_minicard_event): Call
	e_minicard_selected in the GDK_BUTTON_RELEASE case here.
	(e_minicard_drag_begin): Set E_REFLOW (parent)->maybe_in_drag =
	FALSE if it's an EReflow.

2002-06-04  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_book_ready): Commented out this unused
	function.

	* gui/component/select-names/e-select-names-manager.c
	(open_book_cb): Ref if we're keeping the book.  Don't unref if
	we're not keeping the book.
	(clean_cb): Commented out this unused function.

2002-06-04  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c (init_collection): Set the
	title of our GalVIewCollection.

2002-05-29  Anna Marie Dirks  <anna@ximian.com>

	* gui/component/select-names/select-names.glade: Changed some spacing 
	and expanding behavior to make this dialog behave more like I intended 
	to. 

2002-05-24  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c (CONFIG_CONTROL_FACTORY_ID):
	put this back in, accidentally got snipped with the hacking going
	on in here.

2002-05-24  Chris Toshok  <toshok@ximian.com>

	[ part of #25047 ]
	* gui/component/addressbook-config.c: remove the autocompletion
	config control from here, as it lives in the shell now.

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: same.

2002-05-24  Chris Toshok  <toshok@ximian.com>

	[ #24189 ]
	* gui/component/select-names/e-select-names-manager.c
	(focus_out_cb): ifdef out the body of this because it only works
	with a single completion book.  not sure what to do here, but it
	doesn't impact most usage scenarios.
	(completion_popup_cb): same.
	(e_select_names_manager_entry_new): add the books that have been
	loaded successfully by the time this entry is created.
	(open_book_cb): add the opened book to the entries that have
	already been created, and store it in our list so that entries
	that are created in the future can catch up.
	(read_completion_books_from_db): slurp in the folder list from the
	config db and load all the uris.
	(uris_listener): listener function - when there's a change it
	calls _clear_books on all the created entries, and clears our
	list.  It then re-reads the books from the db.
	(e_select_names_manager_new): create our bonobo listener and call
	read_completion_books_from_db.
	(e_select_names_manager_init): init completion_books.
	(e_select_names_manager_destroy): free our list of
	completion_books.

	* gui/component/select-names/e-select-names-manager.h: switch from
	a single EBook to a GList of completion_books here.

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_add_book): deal with the case where
	there's an active query (by effectively restarting it.)  This is
	quite a contrived edge case.
	(e_select_names_completion_clear_books): stop the current query
	and clear our list of books.
	(e_select_names_completion_new): track change to prototype, and
	axe the majority of this method since an EBook* isn't passed
	anymore.
	(e_select_names_completion_clear_book_data): split this code out
	from the destroy method so it can be called from _clear_books.

	* gui/component/select-names/e-select-names-completion.h: the
	constructor no longer takes an EBook -- pass in as many as you
	want using _add_book.  Also, add prototype for _clear_books.

	* gui/component/addressbook.c (load_uri_cb): when
	storing/retrieving passwords, use the cleaned (without params)
	version of the uri, so changing things like download limit don't
	cause the user to be prompted for a password again.

	* gui/component/addressbook-component.c
	(ensure_completion_uris_exist): new function - probably doesn't
	belong in this file.  Make sure the basic local Contacts folder
	exists in the completion uris.
	(addressbook_component_factory_init): call
	ensure_completion_uris_exist.

	* backend/ebook/e-book-util.h: add prototype for
	e_book_get_default_book_uri.

	* backend/ebook/e-book-util.c (e_book_get_default_book_uri): new
	function, just return the default contacts uri.
	(e_book_load_default_book): change
	to use e_book_get_default_book_uri.

2002-05-23  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c (addressbook_root_dse_query):
	fix parameter/local variable overloading.

2002-05-21  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c (load_uri_cb): Don't try to invoke
	e_book_get_uri() on NULL.  Fixes #25069.

2002-05-17  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):
	make sure we map status -> string correctly (add missing strings).

	* backend/ebook/e-book-types.h (EBookStatus): add the missing
	AUTHENTICATION_REQUIRED status code, to map to the idl response.

	* backend/ebook/e-book-listener.c
	(e_book_listener_convert_status): make sure we map all idl status
	codes to EBookStatus statuses.

2002-05-20  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-storage.c (load_source_data): Pass
	FALSE for @sync_offline to evolution_storage_new_folder().
	(addressbook_storage_add_source): Pass FALSE for @sync_offline to
	evolution_storage_new_folder().

2002-05-16  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (request_quit): New, quit
	handler for the EvolutionShellComponent.
	(add_creatable_item): Set it up.

	* gui/contact-editor/e-contact-list-editor.c
	(e_contact_list_editor_request_close_all): New.
	(e_contact_list_editor_new): Put the contact editor in a static
	list and gtk_object_weakref() it.
	(contact_list_editor_destroy_notify): New, GtkDestroyNotify
	function for the contact editors.

	* gui/contact-editor/e-contact-editor.c
	(e_contact_editor_request_close_all): New.
	(e_contact_editor_new): Put the contact editor in a static list
	and gtk_object_weakref() it.
	(contact_editor_destroy_notify): New, GtkDestroyNotify function
	for the contact editors.

2002-05-15  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (create_component): Pass
	NULL as @request_quit_fn.

2002-05-13  Christopher James Lahey  <clahey@ximian.com>

	* backend/idl/addressbook.idl: Removed an incorrect comment here.

2002-05-13  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/e-contact-editor.c (enable_writable_fields):
	Enable the dropdown widgets even if the contact is not editable so
	that you can view any email address, phone number, or postal
	address on read only contacts.

2002-05-10  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/Evolution-Addressbook-SelectNames.idl:
	Added SimpleCard interface.

	* gui/component/select-names/Makefile.am: Added
	e-simple-card-bonobo.c and e-simple-card-bonobo.h.

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Added SIMPLE_CARD_LIST arg.

	* gui/component/select-names/e-simple-card-bonobo.c,
	gui/component/select-names/e-simple-card-bonobo.h: New class to
	represent an ECardSimple across Bonobo.

2002-05-09  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Added "first_email" property.

2002-05-09  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-storage.c
	(addressbook_get_other_contact_storage): Pass %FALSE as
	@has_shared_folders to evolution_storage_new().

2002-05-08  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: link against the libtool version of
	libversit

2002-05-07  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c
	(addressbook_config_control_new): oops, add the NULL back at the
	end of possible_types.

2002-05-07  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c (addressbook_ldap_init):
	bleah, need to pass the GtkWindow here so we can pop up the a
	modal parented dialog (gtk modal dialogs suck?).
	(addressbook_ldap_auth): same.
	(addressbook_root_dse_query): same.
	(do_ldap_root_dse_query): same.
	(addressbook_config_control_new): add "ldap-contacts" to the list
	of possible types.

2002-05-07  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-storage.c (create_ldap_folder):
	s/ldap_config/addressbook_config/

2002-05-03  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-book.c (activate_factories_for_uri): finally
	remove the #if 0's and use the oaf query stuff to get backends
	that handle specific protocols.

2002-05-03  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook-config.c
	(addressbook_folder_list_changed_callback): Call
	evolution_config_control_changed when the EFolderList changes.

2002-05-03  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Updated this
	to have the ConfigControlFactory have an addressbookwide generic
	name and added OAFIID:GNOME_Evolution_Addressbook_ConfigControl.

	* gui/component/Makefile.am (evolution_addressbook_SOURCES),
	gui/component/addressbook-component.c,
	gui/component/addressbook-storage.c, gui/component/addressbook.c:
	Replaced ldap-config.c and ldap-config.h with addressbook-config.c
	andaddressbook-config.h.

	* gui/component/addressbook-config.c,
	gui/component/addressbook-config.h: Based on ldap-config.c and
	ldap-config.h.  Added a folder list control.  Made this a multi
	factory.

	* gui/component/ldap-config.c, gui/component/ldap-config.h:
	Replaced these with addressbook-config.c and addressbook-config.h.

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

	* gui/component/select-names/e-select-names.c (selection_change):
	Desensitize the to, cc, and bcc buttons if there's no selection
	here.  Fixes Ximian bug #21482.

2002-05-01  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-list-editor/e-contact-list-editor.c (verbs): Changed
	some of these to bind to the ContactListEditor verbs since they're
	marked as that in the ui file.  Fixes Ximian bug #13034.

2002-04-30  JP Rosevear  <jpr@ximian.com>

	* gui/component/Makefile.am (EXTRA_DIST): fix

2002-04-30  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-model.c,
	gui/widgets/e-addressbook-model.h
	(e_addressbook_model_peek_card): Added this function so that there
	would be less duplication of cards during run time when
	duplication is unnecessary.

	* gui/widgets/e-addressbook-view.c: Cleaned up get_card_list and a
	number of associated functions to be much more uniform and
	simpler.
	(get_has_email_address): Don't show the "Send Message to Contact"
	menu item if there are no email addresses in the listed contacts.
	Fixes bug #1298.

2002-04-30  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card.c (e_card_list_send): Changed this to set a
	subject when sending a contact.  This makes the signature be set
	properly also.

2002-04-26  Jeffrey Stedfast  <fejj@ximian.com>

	* printing/Makefile.am: Don't link to libibex anymore.

	* conduit/Makefile.am: Same.

	* backend/ebook/Makefile.am: Again here.

	* gui/component/Makefile.am: And finally here.

2002-04-26  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_child_free): Unref the text_model here instead of
	the model, since the model never gets set.  Removed the model
	field since it's no longer used.

2002-04-24  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/ldap-config.c: Updated this for the new
	e_table_memory_store_insert function prototype.

2002-04-24  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h,
	gui/component/select-names/select-names.glade (folder_browse):
	Added a "Browse..." button to switch to a different addressbook
	folder.

	* gui/widgets/e-addressbook-util.c (e_addressbook_transfer_cards):
	Moved extern EvolutionShellClient out of this function so that
	it'd be more readable.

2002-04-23  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h: Coded handling of the
	select_entry to search within the displayed contacts.

	* gui/component/select-names/select-names.glade: Updated this
	dialog to have an entry-select instead of an entry-find.

2002-04-23  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/select-names.glade: Updated this
	dialog to match the redesign.

2002-04-23  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c (do_popup_menu): Make unused
	menu items disappear instead of graying out.

2002-04-23  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-reflow-adapter.c,
	gui/widgets/e-addressbook-reflow-adapter.h: Removed
	e_addressbook_reflow_adapter_right_click and
	e_addressbook_reflow_adapter_base_right_click.

	* gui/widgets/e-addressbook-view.c: Handle right click menu for
	both types of view.  Merged right click on white space with right
	click on main area.  General clean up.

	* gui/widgets/e-minicard-view-widget.c,
	gui/widgets/e-minicard-view-widget.h: Removed a couple unnecessary
	functions.  Added e_minicard_view_widget_get_view.  Added
	right_click signal.

	* gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h:
	Added the right_click signal and the e_minicard_view_get_card_list
	function.

2002-04-22  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.h: Removed an unused
	variable here.

	* gui/widgets/e-addressbook-view.c (table_right_click,
	table_white_space_event): Added a current view submenu to the
	popup menu here.

2002-04-22  Jeffrey Stedfast  <fejj@ximian.com>

	* gui/widgets/e-minicard-view.c (e_minicard_view_drag_begin):
	Allow GDK_ACTION_COPY also, since the composer for example does
	not accept MOVE's. Completes bug #8448.

2002-04-18  Chris Toshok  <toshok@ximian.com>

	* gui/component/ldap-config.glade: change order of scope option
	menu to match how it's stored.

2002-04-18  Chris Toshok  <toshok@ximian.com>

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: change ldap
	config control text so it fits in the config dialog.

	* gui/component/ldap-config.c: #ifdef lots of stuff HAVE_LDAP so
	it'll build/run in either case.
	(addressbook_source_dialog_destroy): rename
	addressbook_add_server_druid_destroy to this, and free lots more
	stuff.
	(addressbook_add_server_druid):
	addressbook_add_server_druid_destroy ->
	addressbook_source_dialog_destroy.
	(do_schema_query): add 3 second timeout to schema query.
	(addressbook_edit_server_dialog): hook up destroy signal.
	(config_control_new): if HAVE_LDAP isn't defined, put up a label
	saying so.

2002-04-18  Chris Toshok  <toshok@ximian.com>

	* gui/component/Makefile.am (INCLUDES): add LDAP_CFLAGS to INCLUDES

2002-04-18  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (book_open_cb): no more
	source->type.

2002-04-18  Chris Toshok  <toshok@ximian.com>

	* gui/component/ldap-config.c (addressbook_dialog_get_source):
	fill in source->ssl.
	(addressbook_source_dialog_set_source): set up auth/scope/ssl
	option menus properly.

	* gui/component/addressbook-storage.c
	(addressbook_storage_init_source_uri): always include the
	limit/ssl in the uri so we don't need to rely on defaults
	everywhere.
	(ldap_source_foreach): store the ssl option.

	* gui/component/addressbook-storage.h: reorder SSLType to match
	the UI.

	* backend/pas/pas-backend-ldap.c: (struct _PASBackendLDAPPrivate)
	add field for ldap_timeout.
	(pas_backend_ldap_connect): reorder things a bit - we need to
	start tls before the root dse query, if we can.
	(pas_backend_ldap_load_uri): track the way ssl parameters are
	given in the uri, and parse out the timeout.

	* gui/component/ldap-config.c (port_changed_func): use the
	symbolic SSL name instead of an integer constant.

2002-04-18  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (get_ldap_library_info): fix
	memory leaks.

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: remove the
	Addressbook_ConfigControl stuff to LDAP_ConfigControl.

	* gui/component/Makefile.am (evolution_addressbook_SOURCES):
	remove addressbook-config.* and add ldap-config.*
	(glade_DATA): same.
	(evolution_addressbook_LDADD): add LDAP_LIBS.

	* gui/component/addressbook-component.c (owner_set_cb):
	addressbook_config_register_factory =>
	ldap_config_register_factory.

	* gui/component/addressbook.c (book_open_cb): remove source->type
	check - they're always LDAP.
	(load_uri_cb): same.

	* gui/component/addressbook-storage.c (ldap_unparse_ssl): new
	function.
	(ldap_parse_ssl): new function.
	(addressbook_storage_init_source_uri): use a more flexible scheme
	to build up the uri's, and add in the ssl parameter.
	(load_source_data): fill in source->ssl, and remove source->type
	assignment.
	(addressbook_source_copy): copy source->ssl, and remove
	source->type copy.
	(create_ldap_folder): addressbook_create_new_source =>
	ldap_config_create_new_source.

	* gui/component/addressbook-storage.h: remove
	AddressbookSourceType (it was always LDAP), and add
	AddressbookLDAPSSLType.

2002-04-18  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-book-util.c (e_book_load_default_book): Append
	/addressbook.db to the end of the default URI if it starts with
	file:

	* backend/ebook/e-book.c (e_book_load_uri_step): Fix this to not
	loop forever if you have more than one backend.

2002-04-17  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_create_categories): Changed this to use
	ECategoriesMasterListOptionMenu.

	* gui/component/select-names/e-select-names.c
	(section_right_click_cb),
	gui/widgets/e-addressbook-reflow-adapter.c,
	gui/widgets/e-addressbook-view.c: Updated these to match the new
	EPopupMenu.

2002-04-11  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook-component.c: Include
	addressbook-config.h here as this file uses it.

	* gui/component/select-names/e-select-names.c (SPEC, SPEC2): Made
	this dialog searchable by typing in the ETable.

	* gui/widgets/e-addressbook-model.c: Include e-addressbook-util.h
	here.

	* gui/widgets/e-addressbook-reflow-adapter.c
	(e_addressbook_reflow_adapter_right_click),
	gui/widgets/e-addressbook-view.c (table_right_click): Fixed a
	memory leak here by using "selection-done" signal.

	* gui/widgets/e-addressbook-reflow-adapter.c,
	gui/widgets/e-addressbook-reflow-adapter.h,
	gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-view.c:
	Added a right click menu for areas that aren't cards.

2002-04-09  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-book-util.c (e_book_load_default_book): Update
	for new-and-improved consistent default folder uri.

	* gui/component/addressbook.c (addressbook_load_default_book): Use
	e_book_load_default_book rather than duplicating most of its logic
	here.
	(load_uri_cb): Modify to work as a callback for
	addressbook_load_default_book as well as addressbook_load_uri.

2002-04-08  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-component.c (create_view): Add
	view_info arg, but don't do anything with it.

2002-04-06  JP Rosevear  <jpr@ximian.com>

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: add
	config_item:type

2002-04-04  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: link to the static libversit

2002-04-04  Dan Winship  <danw@ximian.com>

	* gui/widgets/e-addressbook-util.c (e_addressbook_transfer_cards):
	Update for evolution_shell_client_user_select_folder API change.

2002-04-04  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c: Remove AddressbookConfig,
	ContactNew, ContactNewList EPixmap entries.

	* gui/component/addressbook-factory.c (main): Print out a
	debugging message just before the main loop starts, for debugging
	purposes.

2002-04-02  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-card-simple.h: Fix spelling of
	E_CARD_SIMPLE_PHONE_ID_TTYTDD and E_CARD_SIMPLE_FIELD_PHONE_TTYTDD
	(they previously ended with "TTD" instead of "TDD")

	* backend/ebook/e-card-simple.c: Update for spelling fix.

	* backend/pas/pas-backend-ldap.c: Likewise

2002-04-01  Dan Winship  <danw@ximian.com>

	* gui/component/select-names/e-select-names-text-model.c:
	parent_class should be static. (From Max Horn <max@quendi.de>)

2002-03-29  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Add priority
	for the config page.  Renamed to "Directory Servers".

2002-03-27  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_create_card): don't free req->vcard.
	it's freed in pas_book_free_request.
	(pas_backend_file_process_remove_card): don't free req->id for the
	same reason.
	(pas_backend_file_process_modify_card): don't free req->vcard for
	the same reason.
	(pas_backend_file_process_get_changes): don't free req->change_id
	or release_unref the listener for the same reason.

2002-03-27  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (check_schema_support): make sure
	to call ldap_value_free (values);, and ldap_msgfree (resp).
	(get_ldap_library_info): don't ask me why, but it appears we have
	to free each extension char*.
	(query_ldap_root_dse): make sure to free values in the
	subschemaSubentry code before overwriting it, and call
	ldap_msgfree(resp) when we're all done.
	(build_card_from_entry): don't leak the DN, ldap attributes, or
	the berval the ldap_*_attribute calls use to step through the
	attributes.  the docs say this berval is freed when
	ldap_next_attribute returns NULL, but if we don't free it it leaks
	a substantial amount of memory.
	(pas_backend_ldap_search): make sure to only allocate *op once,
	and fix the g_warning since op isn't valid in its scope anymore.

2002-03-19  Dan Winship  <danw@ximian.com>

	* backend/ebook/Makefile.am: Update for libversit change: Use .a
	rather than .la now.

	* printing/Makefile.am: Likewise

	* gui/component/Makefile.am: Likewise

2002-03-18  Ettore Perazzoli  <ettore@ximian.com>

	* 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.

2002-03-15  Jeffrey Stedfast  <fejj@ximian.com>

	* gui/widgets/e-addressbook-view.c (table_right_click): Update to
	use new EPopupMenu API.

	* gui/widgets/e-addressbook-reflow-adapter.c
	(e_addressbook_reflow_adapter_right_click): Update to use new
	EPopupMenu API.

	* gui/component/select-names/e-select-names.c
	(section_right_click_cb): Update to match new EPopupMenu api.

2002-03-15  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c: Remove the
	`addressbook_search_menu_items'.
	(addressbook_menu_activated): Removed.
	(addressbook_factory_new_control): Don't connect.  No menu items.

2002-03-15  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c (control_activate): Call
	`e_search_bar_set_ui_component()' to set the BonoboUIComponent for
	the search bar.

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Add an icon
	for the LDAP sources configuration control.

2002-03-12  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c: Remove verb "AddressbookConfig".
	(config_cb): Removed.

	* gui/component/addressbook-config.c: Remove `dialog' member from
	`AddresbookDialog'.  Instead, add a `config_control' member.
	(config_control_new): New.
	(addressbook_config): Removed.
	(addressbook_config_register_factory): New.
	(config_control_factory_fn): New, factory function for the
	ConfigControl page.
	(addressbook_source_edit_changed): Don't change the sensitivity of
	the dialog.  Rather, invoke ::changed on the ConfigPage.
	(auth_checkbutton_changed): No need to manually change the
	sensitiviness of the buttons here either.
	(add_source_clicked): Likewise, just invoke
	evolution_config_control_changed().
	(edit_source_clicked): Likewise.
	(addressbook_dialog_close): Removed.
	(config_control_destroy_callback): New, callback for when the
	config control gets destroyed.
	(addressbook_dialog_apply): Removed.
	(config_control_apply_callback): New callback for
	EvolutionConfigControl::apply.
	(addressbook_dialog_ok): Removed.
	(addressbook_config_control_new): Set up ->config_control and
	connect the signals.

	* gui/component/addressbook-config.glade: Call the main hbox in
	the addressbook_sources dialog `addressbook_sources_main_hbox'.

	* gui/component/addressbook-component.c (owner_set_cb): Call
	`addresbook_config_register_factory'.

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Add items for
	OAFIID:GNOME_Evolution_Addresbook_ConfigControl and
	OAFIID:GNOME_Evolution_Addressbook_ConfigControlFactory.

2002-03-11  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names.c (update_query):
	change contains x-evolution-any-field to beginswith on email,
	full_name, and nickname.  faster, and more applicable to this
	dialog.

2002-03-09  Chris Toshok  <toshok@ximian.com>

	* backend/idl/addressbook.idl: add TLSNotAvailable to
	BookLister_CallStatus.

	* backend/ebook/e-book-types.h: add TLS_NOT_AVAILABLE to the EBookStatus enum.

	* backend/ebook/e-book-listener.c
	(e_book_listener_convert_status): add TLS_NOT_AVAILABLE to the
	switch.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_get_static_capabilities): fix name.
	(pas_backend_ldap_class_init): fix name.
	(pas_backend_ldap_connect): change return type to CallStatus so we
	can return different errors from here.  Also, do STARTTLS if the
	user has asked for it and the connection supports it, returning
	TLSNotAvailable (and close the connection) if they chose to
	require it.
	(pas_backend_ldap_load_uri): return pas_backend_ldap_connect.
	(func_beginswith): pull in change from evolution-1-0-branch to
	make full_name beginswith search both cn and sn.

2002-03-09  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-view.c (jump_to_letter): since I've
	gone ahead and made the file backend (by way of
	pas-backend-card-sexp.c) use case insensitive searches for
	beginswith, there's no need to list upper and lower case here.

	* gui/component/addressbook.c (addressbook_search_option_items):
	reorder things to put "Any field contains" at the end, since it's
	the least efficient search.  Also reorder the enum to the same
	ordering.  Change "Name contains" to "Name begins with" and change
	"Email contains" to "Email is".
	(addressbook_search_activated): change FULL_NAME to beginswith,
	and change EMAIL to is to match the labels.

	* backend/pas/pas-backend-card-sexp.c (compare_name): new
	function, so we can compare both full and family names (so
	beginswith can operate on them both.)
	(endswith_helper): use e_utf8_strstrcase here, since all the
	backends backends use case insensitive searching.
	(func_endswith): same.

2002-03-06  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book.c (pas_book_queue_create_card): track
	union/struct change.
	(pas_book_queue_remove_card): same.
	(pas_book_queue_modify_card): same.
	(pas_book_queue_get_cursor): same.
	(pas_book_queue_get_vcard): same.
	(pas_book_queue_authenticate_user): same.
	(pas_book_queue_get_book_view): same.
	(pas_book_queue_get_changes): same.
	(pas_book_free_request): new function - free everything we need to
	for each type of request.
	(pas_book_destroy): call pas_book_free_request here instead of
	just freeing 3 elements of the old struct.  yay plugging memleaks.

	* backend/pas/pas-book.h: make PASRequest a union and split out
	members into structs, so it's a little clearer which fields are
	used by which requests.  Also, add prototype for
	pas_book_free_request so backends can just free everything at once
	(usually in their requests_queued signal func.)

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_create_card): track struct/union change.
	(pas_backend_file_process_remove_card): same.
	(pas_backend_file_process_modify_card): same.
	(pas_backend_file_build_cards_list): same.
	(pas_backend_file_process_get_vcard): same.
	(pas_backend_file_process_get_cursor): same.
	(pas_backend_file_process_get_book_view): same.
	(pas_backend_file_process_get_changes): same.
	(pas_backend_file_process_check_connection): same.
	(pas_backend_file_process_authenticate_user): same.
	(pas_backend_file_process_get_supported_fields): same.
	(pas_backend_file_process_client_requests): case the union to the
	specific struct and pass it to the process_* functions.  also,
	call pas_book_free_request here, instead of relying on each of the
	functions to free their stuff.

2002-03-07  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-storage.c
	(addressbook_get_other_contact_storage): Update for
	evolution_storage_new() change.

2002-03-05  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_realize): don't set "editable" here, as
	the way things work the backend isn't able to override a setting
	from the UI, so writable books never show up as writable.

2002-03-04  Chris Toshok  <toshok@ximian.com>

	[fixes bug #20871]
	* gui/component/select-names/select-names.glade: add the
	status-message label.

	* gui/component/select-names/e-select-names.h (struct
	_ESelectNames): add status_message field.

	* gui/component/select-names/e-select-names.c (status_message):
	new function, set the label's text from the message.
	(e_select_names_init): get the status-message label, and if it's
	valid, connect to the status_message signal of the
	EAddressbookModel.

2002-02-28  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_search): don't
	ref the view here, since it keeps the view alive until the search
	is over, which we don't want.  we want the view's death to cancel
	the search.  This speeds up starting new searches after one is
	already active (since switching searches actually creates a new
	book view and destroys the old one.)
	(ldap_search_dtor): remove the matching unref here.  The unref as
	it was was incorrect anyway, and caused a crash (we needed
	search_op->view, not op->view.)

2002-02-27  Chris Toshok  <toshok@ximian.com>

	[fixes bug #20690]
	* backend/pas/pas-backend-ldap.c (func_and): the data arg is not
	GList** anymore, it's PASBackendLDAPSExpData*, so use
	ldap_data->list instead of *list.
	(func_or): same.
	(func_not): same.
	(func_contains): same.
	(func_is): same.
	(func_endswith): same.
	(func_beginswith): same, but also special case the beginswith
	"fileAs" query type (the one used by the alphabet buttons on the
	right hand side, so we can deal with entries that don't have
	fileAs attributes, and return meaningful responses.)
	(pas_backend_ldap_build_query): initialize the
	PASBackendLDAPSExpData struct and pass that instead of &list.
	Also, take the PASBackendLDAP arg to add to the struct in case we
	need it at some point in the future.
	(ldap_search_handler): pass in the PASBackendLDAP.

2002-02-26  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_search): move
	card_count++ inside the if that checks to see if a card matches
	(and adds the card to the list).

2002-02-24  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (addressbook_query_changed): only
	handle the ESB_ADVANCED case here now.  the actual query work is
	done in addressbook_search_activated.
	(addressbook_search_activated): split out all the searching
	functionality here.
	(addressbook_factory_new_control): hook up "search_activated" to
	addressbook_search_activated.

2002-02-24  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c
	(addressbook_source_dialog_set_source): make the right auth page
	start up open.

	* gui/component/addressbook-storage.c (addressbook_source_free):
	free the binddn.
	(addressbook_source_copy): copy the binddn;

2002-02-22  Chris Toshok  <toshok@ximian.com>

	[ Fixes bugs 20740, 16680, and god knows what else :) ]
	* gui/widgets/e-addressbook-model.c (create_card): double the
	allocated size every time we need more space instead of using a
	fixed size increment.  this helps huge queries.  Also, remove the
	gtk_object_get of "file_as", as it was dead code.
	(book_view_loaded): handle errors here (by popping up a dialog).

	* backend/pas/pas-backend-ldap.c (view_destroy): search_idle ->
	search_timeout.
	(build_card_from_entry): comment out some spew, and unref ecard
	when we're done to plug a memory leak.
	(send_pending_adds): send along to the client all the cards we've
	been saving up.
	(poll_ldap): use a timeout for ldap_result to keep the backend
	from blocking (and it turns out keep the frontend from hanging
	waiting on a ref to complete) on large db's with few matches.

	Also, add some fairly smart, self-tuning aggregating of cards.
	Keep track of the number of cards we've sent the last time through
	as well as this time, and estimate the number we want to aggregate
	the next time based on them (we average them at the moment),
	subject to maximum/minimum number of cards.  also, we have a
	maximum aggregation time, after which we force a flush if there
	are pending cards and recalculate our target pending number.
	there's a minimum wait time to possibly keep outselves from
	spamming the ui, although it's 0 at the moment.

	Lastly, make sure to only notify the GUI of status messages when
	we need to.  this results in a *huge* savings.
	(ldap_search_handler): initialize all the pending card stuff, and
	use a timeout instead of an idle function for poll_ldap.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_queue_response): performance optimization
	for large adds.  If we're a CardAddedEvent and there's an existing
	CardAddedEvent at the end of the queue, just concat the lists of
	cards together.  This is to keep the gui from falling further and
	further behind the ldap backend, which is merrily spewing updates
	at the gui.

2002-02-21  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/Makefile.am: Define $(iconsdir).

	* gui/component/addressbook-component.c (add_creatable_item): New
	helper function.
	(create_component): Add the icons for the user creatable items as
	well.

2002-02-20  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_load_uri):
	track change to signature, and (for now) just change all the
	return FALSE's to _RepositoryOffline (what FALSE used to map to in
	pas_book_factory_process_request), and change TRUE to _Success.

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_load_uri):
	track change to signature, and differentiate between
	pas_backend_ldap_connect failing (RepositoryOffline), and
	ldap_url_parse failing (OtherError).
	
	* backend/pas/pas-book-factory.c
	(pas_book_factory_process_request): since pas_backend_load_uri
	returns status now, use it to nodify the BookListener if there's a
	failure.

	* backend/pas/pas-backend.c (pas_backend_load_uri): track change
	to signature.

	* backend/pas/pas-backend.h: change return type of
	pas_backend_load_uri to
	GNOME_Evolution_Addressbook_BookListener_CallStatus to allow
	differentiation between failure types.

	* backend/ebook/e-book-listener.c
	(e_book_listener_convert_status): handle _AUTHENTICATION_FAILED.

	* backend/ebook/e-book-types.h (EBookStatus): add
	_AUTHENTICATION_FAILED.

2002-02-18  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book-factory.c
	(pas_book_factory_process_request): if the load_uri fails, notify
	the listener that the repository is offline.  (partial fix for bug
	20347)

2002-02-18  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (create_dn_from_ecard): escape
	commas in the dn, since they're used by ldap to specify the node's
	placement in the tree. (fixes bug 20089)
	(rfc2254_escape): just use sprintf and %02X instead.

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

	* gui/component/select-names/e-select-names.c (set_book): Keep a
	ref of the model in this case as well.

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

	* gui/component/select-names/e-select-names.c (set_book): Make
	sure to only set the query once when creating a new book and not
	at all on addressbook model creation.  This prevents an accidental
	pair of changes from making the addressbook model load a remote
	addressbook.

	* gui/widgets/e-addressbook-model.c (get_view): If this is the
	first_get_view and the addressbook is remote, empty the view
	instead of leaving it in the state it used to be in.  This only
	occurs if you set the book after the model has existed for a
	while.
	(e_addressbook_model_set_arg): When setting the book, set
	first_get_view to TRUE.

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

	* gui/widgets/e-addressbook-view.c (display_view): Attach to the
	emvw instead of the emv here.

	* gui/widgets/e-minicard-view-widget.c, e-minicard-view-widget.h:
	Made this object have a "column_width" argument and a
	"column_width_changed" signal which are a simple layer down to the
	EMinicardView contained within.

	* gui/widgets/gal-view-minicard.c, gui/widgets/gal-view-minicard.h
	(gal_view_minicard_attach): Made this attach to an
	EMinicardViewWidget instead of a EMinicardView.

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

	* backend/ebook/e-book-util.c, backend/ebook/e-book-util.h
	(e_book_expand_uri, e_book_load_address_book_by_uri,
	e_book_use_address_book_by_uri): New functions that take a file://
	url ending in the directory name and automatically append the
	addressbook.db and do the appropriate thing.

	* backend/pas/pas-backend-card-sexp.c,
	backend/pas/pas-backend-card-sexp.h: Added copyright notice here.

	* gui/component/addressbook-component.c
	(destination_folder_handle_drop), gui/component/addressbook.c
	(set_prop): Use e_book_expand_uri instead of
	addressbook_expand_uri.

	* gui/component/addressbook-storage.c: Fixed the fcntl include
	here.

	* gui/component/addressbook.c (ContactsCopyToFolder,
	ContactsMoveToFolder): Added handlers for these two verbs.

	* gui/component/addressbook.h: Removed addressbook_expand_uri in
	favor of e_book_expand_uri.

	* gui/widgets/e-addressbook-reflow-adapter.c (transfer_cards):
	Added code to handle Move to and Copy to right click menu items.

	* gui/widgets/e-addressbook-util.c,
	gui/widgets/e-addressbook-util.h (e_addressbook_transfer_cards):
	New function to pop up a dialog and transfer a set of cards to the
	given folder.

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h (display_view): Don't attach to
	the view if it doesn't exist yet.  We have to make this then
	attach later.
	(e_addressbook_view_copy_to_folder,
	e_addressbook_view_move_to_folder): New functions utilizing
	e_addressbook_transfer_cards.
	(table_right_click): Add copy_to_folder and move_to_folder to the
	right click menu for tables here.
	(e_addressbook_view_discard_menus): Handle menu unmerging here.

	* gui/widgets/e-minicard-view-widget.h (struct
	_EMinicardViewWidget): Removed unused field.

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

	* gui/widgets/e-addressbook-view.c (display_view): Attach the
	GalViewMinicard to the EMinicardView here.

	* gui/widgets/gal-view-minicard.c, gui/widgets/gal-view-minicard.h
	(gal_view_minicard_load, gal_view_minicard_save): Made these save
	the column width of the view.
	(gal_view_minicard_attach, gal_view_minicard_detach): Added these
	functions to allow the GalViewMinicard to set the column width of
	a EMinicardView and to monitor its changes.

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

	* gui/widgets/e-addressbook-reflow-adapter.c
	(addressbook_get_arg): Added an argument to get the model.

	* gui/widgets/e-addressbook-view.c (writable_status): Don't bother
	connecting to the writable_status callback on the book, simply
	rely on the writable_status callback on the addressbook model.

	* gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h
	(set_empty_message): Handle the case of a read only view here.

2002-02-07  JP Rosevear  <jpr@ximian.com>

	* gui/component/addressbook-component.c (create_component): remove
	"New" from user creatable menu items

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

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

2002-02-04  JP Rosevear  <jpr@ximian.com>

	* gui/contact-editor/e-contact-editor.c (find_address_mailing): tidy

	* conduit/address-conduit.c (addrconduit_load_configuration): load
	default address setting
	(addrconduit_save_configuration): save default address setting
	(e_addr_gui_new): new gui routine for conduit settings
	(e_addr_gui_fill_widgets): ditto
	(e_addr_gui_fill_config): ditto
	(e_addr_gui_destroy): ditto
	(e_addr_context_destroy): destroy the gui and new_cfg
	(local_record_from_ecard): reinstate commented out bits, determine
	which address to sync to pilot
	(ecard_from_remote_record): determine which address to sync from
	pilot
	(fill_widgets): put the gui widgets in
	(create_settings_window): create gui
	(save_settings): fill gui

2002-02-04  JP Rosevear  <jpr@ximian.com>
	
	* gui/contact-editor/e-contact-editor.c (address_text_changed): if
	the shown address in the mailing address or there is no mailing
	address, set the default flag and make sure the button is checked
	(address_mailing_changed): set the flags properly when the mailing
	address changes
	(e_contact_editor_init): listen for the check button being toggled
	(find_address_mailing): find the address (if any) with the default
	flag
	(set_address_field): set the mailing address button appropriately
	(fill_in_info): find the mailing address

	* gui/contact-editor/e-contact-editor.h: add new class data member

	* gui/contact-editor/contact-editor.glade: show mailing address
	check button

2002-02-01  Jeffrey Stedfast  <fejj@ximian.com>

	* backend/ebook/e-destination.c (e_destination_is_auto_recipient):
	New function to find out if a destination was one which was
	auto-matically set by Evolution.
	(e_destination_set_auto_recipient): Set whether or not the dest is
	an auto-recipient.
	(e_destination_touch): Don't touch the address if it is an
	auto_recipient.
	(e_destination_list_to_vector_sized): New function to avoid having
	to calculate the length of the list ourselves. Allows for a bit of
	optimization if our caller knows the length of the list.
	(e_destination_xml_encode): Encode the auto_recipient bit.
	(e_destination_xml_decode): Decode the auto_recipient bit.

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

	* backend/ebook/e-card-simple.c (e_card_simple_sync_card): Made
	this preserve addressbook flags other than the first three.

	* backend/ebook/e-card-types.h: Added E_CARD_ADDR_MASK and
	E_CARD_ADDR_DEFAULT.

	* backend/ebook/e-card.c (get_address_flags): Added "PREF" to
	E_CARD_ADDR_DEFAULT mapping.

	* backend/ebook/test-client.c: Added #include "e-book-util.h".

2002-01-30  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_changes):
	compute the change db filename based on our contact db filename.
	(pas_backend_file_load_uri): store the filename in
	bf->priv->filename.
	(pas_backend_file_destroy): free the filename, and (!) free
	bf->priv too.

2002-01-28  Jeffrey Stedfast  <fejj@ximian.com>

	* backend/ebook/e-destination.c (e_destination_is_valid): Revert
	my previous change as trow says this will break auto-completion
	stuff.

2002-01-27  Ettore Perazzoli  <ettore@ximian.com>

	* gui/contact-editor/Makefile.am: Use EVOLUTION_ADDRESSBOOK_CFLAGS.
	* gui/contact-list-editor/Makefile.am: Likewise.
	* gui/merging/Makefile.am: Likewise.
	* gui/search/Makefile.am: Likewise.
	* gui/component/select-names/Makefile.am: Likewise.

2002-01-25  Jeffrey Stedfast  <fejj@ximian.com>

	* backend/ebook/e-destination.c (e_destination_is_valid): Don't
	check for an @ in the email address. This is to fix bug #10960.

2002-01-24  Chris Toshok  <toshok@ximian.com>

	[ fixes bug 16097 ]
	* gui/component/addressbook-config.glade: gui love for the new
	auth stuff.
	
	* gui/component/addressbook.c (load_uri_cb): track change to auth,
	and offer up different prompt strings depending on which method
	(binddn or email) we're using.
	
	* gui/component/addressbook-storage.c (ldap_unparse_auth): use the
	new auth types for ldap.
	(ldap_parse_auth): same.
	(addressbook_storage_auth_type_to_string): new function.
	(load_source_data): get the binddn too.
	(ldap_source_foreach): store out binddn or emailaddr, depending on
	the auth type chosen.

	* gui/component/addressbook-storage.h: add the more detailed auth
	types, add "binddn" to the source structure, and add a prototype
	for addressbook_storage_auth_type_to_string.
	
	* gui/component/addressbook-config.c (auth_checkbutton_changed):
	set the auth stuff  (in)sensitive.
	(auth_optionmenu_activated): new function.
	(addressbook_source_dialog_set_source): track UI change.
	(addressbook_source_dialog_get_source): same.
	(add_scope_activate_cb): rename add_activate_cb to this to
	distinguish it from the auth stuff.
	(add_auth_activate_cb): new function.
	(addressbook_source_dialog): track change to auth UI stuff.
	(addressbook_storage_auth_type_to_string): new function.

	* backend/ebook/e-book.h: add auth_method arg to
	e_book_authenticate_user.

	* backend/ebook/e-book.c (e_book_authenticate_user): track change
	to prototype - add auth_method arg, and pass it along to the CORBA
	call.

	* backend/ebook/test-client.c (book_open_cb): track api change -
	keep this building.

	* backend/pas/pas-book.h: add auth_method slot in PASRequest.

	* backend/pas/pas-book.c (pas_book_queue_authenticate_user): add
	auth_method arg and add it to the PASRequest.
	(impl_GNOME_Evolution_Addressbook_Book_authenticateUser): track
	idl change, add auth_method and pass it along to
	pas_book_queue_authenticate_user.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_authenticate_user): support both
	"ldap/simple-email" and "ldap/simple-binddn" auth methods.

	* backend/idl/addressbook.idl: add "in string authMethod" to
	authenticateUser.

2002-01-24  Ettore Perazzoli  <ettore@ximian.com>

	* conduit/Makefile.am: Use EVOLUTION_ADDRESSBOOK_CONDUIT_CFLAGS
	and EVOLUTION_ADDRESSBOOK_CONDUIT_LIBS and remove unused flags

	* gui/component/Makefile.am: Use EVOLUTION_ADDRESSBOOK_CFLAGS and
	EVOLUTION_ADDRESSBOOK_LIBS and remove unused flags.
	* backend/pas/Makefile.am: Likewise.
	* backend/ebook/Makefile.am: Likewise.
	* printing/Makefile.am: Likewise.
	* backend/ebook/Makefile.am: Likewise.
	* gui/widgets/Makefile.am (INCLUDES): Likewise.

2002-01-23  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (create_component): Pass a
	NULL @icon to
	`evolution_shell_component_add_user_creatable_item()'.

2002-01-23  Ettore Perazzoli  <ettore@ximian.com>

	* gui/contact-editor/e-contact-editor-address.c: #include
	<locale.h>.

2002-01-22  Chris Toshok  <toshok@ximian.com>

	[ fixes bug # 16864 ]
	* backend/ebook/evolution-ldif-importer.c (getValue): create and
	return a GString here, instead of writing to a fixed size buffer.
	(parseLine): use a GString here instead of a fixed size buffer.

2002-01-21  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/pas-backend-ldap.c (ldap_search_handler): Set the
	number of cards to return to the value specified in the ldap uri,
	leaving the default at 100.  Fixes Ximian bug #13953.

	* gui/component/addressbook-config.c (addressbook_source_dialog),
	gui/component/addressbook-config.glade: Added a limit entry here
	to edit the limit field of the source.

	* gui/component/addressbook-storage.c,
	gui/component/addressbook-storage.h
	(addressbook_storage_init_source_uri): Added a limit field to this
	class and pass that value through in the uri that's generated.

2002-01-18  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-compare.c: Made username match with no
	domain match be vague instead of partial.  Fixes Ximian bug
	#13612.

2002-01-18  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook.c (view_contact_cb): New verb to open
	a bunch of cards.

	* gui/widgets/e-addressbook-reflow-adapter.c (open_card): Call
	e_addressbook_show_multiple_cards instead of doing this ourselves.

	* gui/widgets/e-addressbook-util.c,
	gui/widgets/e-addressbook-util.h
	(e_addressbook_show_multiple_cards): Added this function to show a
	bunch of cards, including a dialog if lots of windows are going to
	appear.

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_view,
	e_addressbook_view_can_view): e_addressbook_view_view calls
	e_addressbook_show_multiple_cards on the appropriate list of
	cards.

2002-01-18  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/e-contact-editor-address.c
	(fill_in_countries), gui/contact-editor/fulladdr.glade: Sort
	country list.  Country list moves from fulladdr.glade to
	e-contact-editor-address.c, but only a few country names have
	actually changed.  Fixes Ximian bug #16545.

2001-12-20  Zbigniew Chyla  <cyba@gnome.pl>

	Fixes #17725

	* evolution/addressbook/printing/e-contact-print.c (complete_sequence):
	Do not assume that the first byte of file_as is the first letter, use
	utf8 functions instead.

2002-01-16  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c: move all functions here, get rid of
	header files, use e-pilot-settings to display gui

2002-01-15  JP Rosevear  <jpr@ximian.com>

	* gui/component/select-names/select-names.glade: remove misleading
	title and fix spacing

2002-01-11  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook.c (alphabet_state_changed): Handle
	setting the search bar to "Advanced..." when the alphabet buttons
	are pushed and back when they're cleared.  Fixes Ximian bug
	#12904.
	(addressbook_menu_activated): When the user calls Search->clear,
	set the search to ESB_ANY and "", don't just set the text.  This
	is especially useful when it's set to ESB_ADVANCED.

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h (alphabet_state_change): Added
	this signal which gets emitted when the alphabet buttons are
	pushed.
	(command_state_change): Removed the ref pair here.  It's not
	necessary.  gtk_signal_emit refs the object itself.

2002-01-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-compare.c (name_synonyms): Added a couple
	of names here.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_get_nth_obj): Removed an unused
	variable.

2002-01-11  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h (create_alphabet): Use toggle
	buttons here.  Fixes Ximian bug #10734.

2002-01-09  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/e-contact-editor.c (set_fields): Choose the
	first filled in address field here.  Fixes Ximian bug #2222.

2002-01-03  Joe Shaw  <joe@ximian.com>

	* backend/ebook/test-card.c: Add a test for getting arbitrary
        fields.

	* backend/pas/pas-backend-card-sexp.c (compare_arbitrary): Added.
	(prop_info_table): Add a LIST_PROP for arbitrary fields.

2002-01-03  Nat Friedman  <nat@ximian.com>

	* backend/ebook/e-book.c (activate_factories_for_uri): Free the
	query if the oaf response is of zero length.

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

	* gui/component/select-names/e-select-names.c
	(real_add_address_cb): When we clean, don't clean the model's last
	element.  This helps keep things working properly when we have
	signal-character separators.
	(section_right_click_cb): Changed to work properly with our
	EText-emitted popup signal.
	(e_select_names_add_section): Use ETexts for the recipient
	sections, rather than tables.  This lets us make them directly
	editable. (Bug #1721)

	* gui/component/select-names/e-select-names-popup.c
	(popup_info_new): Pass in a ESelectNamesTextModel, not a
	ESelectNamesModel.
	(e_select_names_popup): Adjust for the new signature for
	e_select_names_model_text_pos.

	* gui/component/select-names/e-select-names-manager.c
	(focus_out_cb): Schedule a cleaning when we focus out.
	(focus_in_cb): Cancel pending cleaning when we get focus.  This
	helps us avoid bad things happening during the fast focus out/ins
	that happen when the completion dropdown appears.
	(completion_handler): Adjust for new signatures of
	e_select_names_model_text_pos and e_select_names_model_name_pos.
	(e_select_names_manager_entry_new): Pass in our
	ESelectNamesTextModel when constructing the
	ESelectNamesCompletion.
	(e_select_names_manager_entry_free): Cancel any pending clean-ups.

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Get the text off of the text model.
	Which is the only way that really makes sense when you think about
	it.

	* gui/component/select-names/e-select-names-completion.c: Added a
	copy of the associated ESelectNamesTextModel to
	ESelectNamesCompletionPrivate.  This replaces the
	ESelectNamesModel.
	(e_select_names_completion_destroy): Unref ->text_model.
	(e_select_names_completion_handle_request): Pass in our text
	model's separator info when calling e_select_names_model_text_pos.
	(e_select_names_completion_new): Pass in the text model as an arg
	instead of the model, and ref it as needed.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_init): Set separator as either ", " or
	",", depending on the value of the EVOLUTION_DISABLE_MAGIC_COMMA
	environment variable.
	(e_select_names_text_model_destroy): Free the separator.
	(changed_cb): Flush our cached text on changed.
	(e_select_names_text_model_set_source): Use our own changed_cb
	callback on changed, rather than just connecting up
	e_text_model_changed.
	(e_select_names_text_model_set_separator): Added.  Lets the
	separator between recipients be specified.
	(e_select_names_text_model_get_text): Cache the text we get from
	calling e_select_names_model_get_textification.
	(e_select_names_text_model_insert_length): A bunch of small
	changes to properly support generic separators, rather than
	(implicit and explicitly) assuming ", ".
	(e_select_names_text_model_delete): More small tweaks to handle
	generic separators.
	(e_select_names_text_model_get_nth_obj): Use new signature when
	calling e_select_names_model_name_pos, and use our cached text.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_destroy): We don't cache the text or
	addr_text anymore, so no need to free them here.
	(e_select_names_model_changed): ...and no need to reset our text
	and addr_text caches here.
	(e_select_names_model_get_textification): Take a separator as an
	arg, rather than just using ", ".  Also, no caching.
	(e_select_names_model_get_address_text): Take a separator as an
	arg, rather than just using ", ".  And no caching here either.
	(e_select_names_model_clean): Add arg that give us control over
	whether or not the last entry should get cleaned.  We need this
	when using a one-character separator, so that new destinations
	that get tacked onto the end don't get immediately cleaned away
	for being empty.
	(e_select_names_model_name_pos): Take the separator length as an
	argument, remove implicit assumption of length 2.
	(e_select_names_model_text_pos): Take the separator length as an
	argument, remove implicit assumption of length 2.

2001-12-20  Ettore Perazzoli  <ettore@ximian.com>

	[Fix #17377, Evolution doesn't work on multi-depth displays.]

	* gui/component/addressbook-factory.c (main): Push GdkRGB visual
	and colormap.

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

	* gui/widgets/e-addressbook-reflow-adapter.c
	(e_addressbook_reflow_adapter_right_click): Add cut/copy/paste to
	right-click menu.

	* gui/widgets/e-addressbook-view.c (table_right_click): Add
	cut/copy/paste to right-click menu.  (Fixes bug #14528.)  Also,
	disable some right-click options if our addressbook isn't
	editable.

2001-12-18  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (check_for_slow_setting): go slow and
	clear the map if the last uri and the current uri do not match
	(post_sync): save the last uri

	* conduits/address-conduit-config.h: handle a last uri config
	option

2001-12-18  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (addressbook_default_book_open):
	change this to match its e-book counterpart, and only failover to
	the local addressbook if the protocol wasn't supported.  that way
	errors like "failure to connect" are still reported to the user.

	* backend/ebook/e-book-util.h: add prototypes for
	e_book_load_default_book and e_book_get_config_database.

	* backend/ebook/e-book-util.c (e_book_default_book_open): new
	function, basically cut and paste addressbook_default_book_open
	from addressbook.c here.
	(e_book_load_default_book): cut and past
	addressbook_load_default_book here, pretty much, except leave off
	the auth stuff.
	(e_book_get_config_database): new function, returns the
	Bonobo_ConfigDatabase for e_book_load_default_book to use.

	* conduit/address-conduit.c (start_addressbook_server): use
	e_book_load_default_book here.
	
2001-12-17  Chris Toshok  <toshok@ximian.com>

	[ fixes bug 17355 ]
	* gui/component/select-names/e-select-names.c (new_folder): if
	we're dealing with an LDAP folder, prepend [LDAP] to it.  Now that
	we have 3 different places where folders are coming from, it helps
	to be able to differentiate "Contacts" in ~/evolution and a
	"Contacts" ldap server and a "Contacts" exchange folder.
	(add_additional_select_names_uris): loop through the bonobo conf
	settings for additional folders, adding them to the option menu.
	(e_select_names_hookup_shell_listeners): call
	add_additional_select_names_uris.

2001-11-28  Christopher James Lahey  <clahey@ximian.com>
 
 	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_realize): Use an #ECanvasBackground here
	instead of a #GnomeCanvasRect.
 
2001-12-16  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c: Added
	'cache_complete' flag to ESelectNamesCompletionPrivate.
	(e_select_names_completion_seq_complete_cb): Set cache_complete
	to TRUE if our query wasn't interrupted.
	(e_select_names_completion_start_query): Set cache_complete to
	FALSE at the beginning of a potentially-cached query.
	(e_select_names_completion_do_query): Only reuse cached cards
	if cache_complete is TRUE.  (Fixes bug #10241)

2001-12-15  JP Rosevear  <jpr@ximian.com>
 
 	* conduit/address-conduit.c (e_addr_context_destroy): don't free
 	the hash table keys, we didn't allocate them and free the change
 	objects and unref the associated cards
 	(local_record_from_uid): unref the temp card we create
 	(replace_record): ref the new card associated with the card change
 	and unref the old one

2001-12-13  JP Rosevear  <jpr@ximian.com>
 
 	* conduit/address-conduit.c (local_record_from_ecard): Make sure
 	to copy the custom fields so they are not overwritten

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

	* backend/ebook/e-book-util.c (simple_query_new): Used
	g_strdup_printf to dup a string.  Doh!  Changed to g_strdup.
	(Bug #17126)

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

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_entry_new): Remove a reference to code
	I don't want to commit yet. :-)

	* gui/component/select-names/e-select-names-manager.c: Extensively
	refactored -- this code had gotten _really_ ugly.  Untangle things
	to the point where our reference counting problems are fixable.

	* gui/component/select-names/e-select-names-bonobo.c
	(impl_destroy): Remove all of the ugly hacks to work around our
	memory management problems, and just unref the manager.
	(Fixes #14412)

2001-12-05  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c
	(search_for_dn_with_objectclasses): move search_for_dn's contents
	here, and add an "existing_objectclasses" parameter that we pass
	on to build_card_from_entry.
	(search_for_dn): call search_for_dn_with_objectclasses with NULL
	for existing_objectclasses.
	(build_card_from_entry): if existing_objectclasses is non-NULL,
	fill it in with the list of existing objectclass values for this
	entry.
	(add_objectclass_mod): if existing_objectclasses is non-NULL,
	meaning we're modifying an entry, search in the existing
	objectclasses for the ones we want to be there, and only add
	what's missing.  If none are missing, don't add objectclass_mod to
	the list of mods.
	(create_card_handler): track change to add_objectclass_mod (pass
	NULL).
	(modify_card_handler): use search_for_dn_with_objectclasses
	instead of search_for_dn, and pass the existing objectclasses to
	add_objectclass_mod.  also, free the list when we're done.
	(poll_ldap): track change to build_card_from_entry (pass NULL).

2001-12-05  Chris Toshok  <toshok@ximian.com>

	* gui/contact-editor/e-contact-editor.c (enable_writable_fields):
	we need to be able to disable non-labels here as well.  since
	we're using enable_widget and not gtk_widget_set_sensitive, it's
	okay to handle entries/text's, etc, here.
	(widget_field_mappings): add label-caluri and label-fburl here.

	* gui/contact-editor/contact-editor.glade: change the label names
	for the freebusy/calendar urls to have more descriptive names,
	since we use them in e-contact-editor.c now.

	* backend/pas/pas-backend-ldap.c: add support for
	caluri/calendarURI, fburl/freeBusyURI.

	* backend/pas/evolutionperson.schema: add calendarURI and
	freeBusyURI.

2001-12-04  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/contact-editor.glade: Fixed up the
	accelerators and such here.

	* gui/contact-editor/e-contact-editor.c (file_save_as_cb):
	Translate this string.
	(pixmaps): Added a pixmap for the ContactEditorSaveClose command.
	(setup_tab_order): Fixed up the tab order here.

	* gui/contact-editor/fulladdr.glade: Made the country combo
	focusable here.

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

	* backend/ebook/e-destination.c (e_destination_equal): Make address
	comparisons case-insensitive. (Fixes 11776)

	* backend/ebook/e-card.c (e_card_email_match_single_string): Make address
	host comparisons case-insensitive. (Fixes 11776)

	* gui/component/select-names/e-select-names-manager.c (focus_out_cb): Clean
	ESelectNamesModel on focus-out. (Half of a fix for 15656)

	* backend/ebook/e-destination.c (nonempty): Fix this function
	and make it utf8-safe. (The other half of the fix for 15656)

2001-11-28  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-list-editor/e-contact-list-editor.c: Consistency
	fixes with standard contact editor.  Added Save As, Send As, and
	Send To.  Replaced Save toolbar with Save and Close and added Save
	and Close menu item.  Added a trash icon.

2001-11-28  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/e-contact-editor-address.c (setup_tab_order):
	Setup the tab order here.  Fixes Ximian bug #13751.

2001-11-28  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook.c (connect_master_list_changed,
	make_suboptions): Changed how this list of categories gets
	computed.  Fixes Ximian bugs #7707 and #7708.

2001-11-15  Zbigniew Chyla  <cyba@gnome.pl>

	* printing/e-contact-print-envelope.c (ecpe_linelist_dimensions),
	printing/e-contact-print.c (e_contact_divide_text, e_contact_output,
	e_contact_rectangle, e_contact_print_letter_tab,
	e_contact_print_letter_heading, e_contact_get_card_size,
	e_contact_print_card, e_contact_print_phone_list):
	s/gnome_font_get_width_string/gnome_font_get_width_utf8/
	s/gnome_font_get_width_string_n/gnome_font_get_width_utf8_sized/

2001-11-14  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (search_for_dn): check against
	LDAP_SUCCESS as the return value, not -1.
	(pas_backend_ldap_build_all_cards_list): same.
	(pas_backend_ldap_process_authenticate_user): same.

2001-11-12  Chris Toshok  <toshok@ximian.com>

	[ Fixes Ximian bug #14843 ]
	* backend/pas/pas-backend-ldap.c (func_and): don't crash if a
	subexpression wasn't filled in.

	* backend/pas/pas-backend-ldap.c (func_or): same.

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

	* gui/contact-list-editor/e-contact-list-editor.c (list_added_cb):
	Release callback's reference to EContactListEditor.
	(list_modified_cb): Release callback's reference to
	EContactListEditor.
	(save_card): Ref the EContactListEditor on behalf of the
	e_book_foo callback. (Fixes bug #14743)
	(save_card): Set changed to false once we've saved.
	(list_deleted_cb): Release callback's reference.
	(delete_cb): Hold reference for the callback.

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

	* gui/contact-editor/e-contact-editor.c (categories_clicked): If
	our call to e_categories_new returns NULL, put up an error dialog
	and return.  (Fixed #14780)
		
2001-11-09  Chris Toshok  <toshok@ximian.com>

	[ Fixes Ximian bug #14687 ]
	* backend/pas/pas-backend-file.c

	* backend/pas/pas-book-factory.c
	(pas_book_factory_process_request): do load_uri before add_client,
	so we know if the load actually worked (add_client uses this
	information to respond to the new client.)  before this change,
	the client would still think the book was in a useful state even
	if the load_uri failed.

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client): if
	the we're not connected, say so.

	* backend/pas/pas-backend-file.c (pas_backend_file_add_client):
	same.
	(pas_backend_file_load_uri): don't report_writable here,
	add_client does it.  was only needed before because of the
	improper ordering in pas-book-factory.c above.

2001-11-09  Chris Toshok  <toshok@ximian.com>

	[ Fixes Ximian bug #14646 ]
	* gui/component/addressbook.c (addressbook_default_book_open): new
	function.  if the default_book failed to load, load the local
	addressbook in its place.
	addressbook_load_default_book): if we're loading the default_book
	uri, use addressbook_default_book_open as the open_response.

	* backend/ebook/e-book.c (e_book_load_uri_step): reset the
	load_state to NotLoaded so we can attempt another load_uri on
	the book if it fails.

2001-11-08  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(impl_destroy): Explicitly destroy entries.  Part of the fix for
	the lingering completion window bug.

2001-11-04  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c: Use ordering of the pilot's phone
	label list to find fields we sync in order to avoid strcmp'ing the
	pilot's labels rendering phone syncing usable only for english
	language pilots

2001-11-03  Chris Toshok  <toshok@ximian.com>

	[ Fixes Ximian bug #14410 ]
	* gui/contact-editor/e-contact-editor.c (e_contact_editor_init):
	init in_async_call to FALSE.
	(card_added_cb): turn the UI back on and set in_async_call to
	FALSE.
	(card_modified_cb): same.
	(card_deleted_cb): same.
	(save_card): turn off the UI by setting the dialog insensitive,
	and set in_async_call to TRUE.
	(delete_cb): same.
	(app_delete_event_cb): if we're in an async call don't let the
	window get deleted.

	* gui/contact-editor/e-contact-editor.h (struct _EContactEditor):
	add in_async_call flag for when we make a wombat call and need to
	disable the UI.

	* gui/contact-list-editor/e-contact-list-editor.c
	(e_contact_list_editor_init): init in_async_call to FALSE.
	(list_added_cb): turn the UI back on and set in_async_call to
	FALSE.
	(list_modified_cb): same.
	(list_deleted_cb): same.
	(save_card): turn off the UI by setting the dialog insensitive,
	and set in_async_call to TRUE.
	(delete_cb): same.
	(app_delete_event_cb): if we're in an async call don't let the
	window get deleted.

	* gui/contact-list-editor/e-contact-list-editor.h (struct
	_EContactListEditor): add in_async_call flag for when we make a
	wombat call and need to disable the UI.

2001-11-02  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c (e_card_simple_get): Check for
	NULL dates before converting them to strings.  Fixes Ximian bug
	#14394.

2001-11-02  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(impl_destroy): Leak select-names related data structures until
	the memory management issues get sorted out.  Fixed bug #14086.

2001-10-31  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/e-cardlist-model.c,
	gui/component/select-names/e-select-names-table-model.c,
	gui/widgets/e-addressbook-table-adapter.c: Make the pre_changes
	and changes match here.

2001-10-31  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_destroy): Check that local_listener and
	other_contacts_listener are non-NULL before
	disconnecting/unrefing.

	* gui/component/select-names/e-select-names-manager.c
	(entry_destroyed): The entry shouldn't unref the manager.
	(e_select_names_manager_create_entry): The entry shouldn't hold a
	ref to the manager.  It becomes circular.
	(e_select_names_manager_create_entry): On the other hand, we
	should hold a ref to the entry we create.

	* gui/component/select-names/e-select-names-bonobo.c
	(impl_destroy): Remove the explicit dialog destroy hack.

2001-10-30  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(impl_destroy): Force the select names dialog to be destroyed.
	This is a hack to fix bug #14002 -- I'll clean up the refcounting
	issues post-freeze.  At least now it won't crash.

2001-10-30  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (ecard_from_remote_record): make sure
	to translate the character sets of the names

2001-10-30  JP Rosevear  <jpr@ximian.com>
	
	* gui/component/select-names/e-select-names-bonobo.c
	(manager_ok_cb): send a null bonobo arg to prevent explosion

2001-10-30  JP Rosevear  <jpr@ximian.com>
	
	* gui/widgets/e-addressbook-view.c: correct include typo

2001-10-29  Jon Trowbridge  <trow@ximian.com.

	* gui/widgets/e-minicard.c (add_field): Five characters, not four!
	
	* gui/widgets/e-addressbook-table-adapter.c
	(addressbook_value_at): Convert xml-ified destinations into proper
	addresses.

2001-10-29  Jon Trowbridge  <trow@ximian.com.

	* gui/component/select-names/e-select-names-bonobo.c (init):
	Connect to manager's "ok" signal.
	(manager_ok_cb): Emit "ok" bonobo-signal.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_class_init): Added "ok" signal.
	(e_select_names_clicked): Emit 'ok' signal.

2001-10-29  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-util.c
	(e_addressbook_prompt_save_dialog): new function, a "Do you want
	to save changes?" dialog.

	* gui/widgets/e-addressbook-util.h: add prototype for
	e_addressbook_prompt_save_dialog.

	* gui/contact-editor/e-contact-editor.c (prompt_to_save_changes):
	call e_addressbook_prompt_save_dialog and save the card if they
	select save.  return TRUE if the dialog should be closed, FALSE
	otherwise.
	(file_close_cb): check prompt_to_save_changes before closing the
	dialog.
	(app_delete_event_cb): same.

	* gui/contact-list-editor/e-contact-list-editor.c
	(prompt_to_save_changes): call e_addressbook_prompt_save_dialog
	and save the card if they select save.  return TRUE if the dialog
	should be closed, FALSE otherwise.
	(file_close_cb): check prompt_to_save_changes before closing the
	dialog.
	(app_delete_event_cb): same.

2001-10-29  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (add_objectclass_mod): overload
	this function for modifying objectclasses too, so we can make sure
	evolutionPerson shows up in the objectclasses of an entry if it
	shows up in the schema for the server.
	(create_card_handler): add @replace = FALSE in the call to
	add_objectclass_mod.
	(modify_card_handler): call add_objectclass_mod with @replace =
	TRUE.
	(anniversary_compare): fix typo - return "equal", not "TRUE".
	(birthday_compare): same.

2001-10-29  Jon Trowbridge  <trow@ximian.com>

	* conduit/address-conduit.c (pre_sync): Comment out spew.

	* gui/contact-list-editor/e-contact-list-editor.c (fill_in_info):
	Comment out spew.

	* gui/component/addressbook-component.c
	(destination_folder_handle_drop): Comment out spew.
	(get_dnd_selection): Comment out spew.

	* gui/widgets/e-addressbook-table-adapter.c
	(addressbook_set_value_at): Comment out spew.

2001-10-29  Jon Trowbridge  <trow@ximian.com>

	* gui/component/addressbook.c (update_command_state): Check that
	our BonoboUIComponent has a container so we don't get a lot of
	annoying debug spew.

	* printing/smallbook.ecps: Fixed fonts.

	* printing/phonelist.ecps: Fixed fonts.

	* printing/medbook.ecps: Fixed fonts.

	* printing/e-contact-print.c (e_contact_get_card_size): Commented
	out spew.

	* gui/widgets/e-minicard.c (remodel): Check that e_minicard->card
	!= NULL.

2001-10-29  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_destroy): We were using
	book_data->book_view immediately after unrefing it.  Reordered the
	code a bit to avoid this.

2001-10-29  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book-factory.h: add prototype for
	pas_book_factory_dump_active_backends.

	* backend/pas/pas-book-factory.c
	(pas_book_factory_dump_active_backends): new function.
	(dump_active_server_map_entry): new function.

2001-10-29  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(make_match): Drop a match if either of the text fields is NULL.
	This could happen if any of the utf-8 involved is invalid, for
	example. (Bug #13757)

2001-10-29  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (is_syncable): fix bug that allowed
	for phone's not to be in priority order and the item to still be
	syncable

	* conduit/address-conduit-config.h
	(addrconduit_load_configuration): get management by id

2001-10-29  JP Rosevear  <jpr@ximian.com>
	
	* conduit/address-conduit.c (is_syncable): a card also needs to
	have its phone nums in priority order to be "syncable"
	
2001-10-29  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (is_syncable): move the syncable
	checking code to a different function
	(ecard_from_remote_record): set the name parts individually
	(local_record_from_ecard): use is_syncable

2001-10-29  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c (file_as_get_style,
	file_as_set_style): Use the actual ECardName in the ECard instead
	of parsing the full_name here.

2001-10-29  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h
	(e_card_simple_set_name): New function to set the ECardName on
	this card and fix the file_as if necessary.

2001-10-29  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h
	(e_card_simple_get): Handle returning dates here.
	(e_card_simple_get_allow_newlines): New function.  Returns whether
	it makes much sense to have newlines in this string.

	* gui/component/addressbook-config.c,
	gui/component/addressbook-config.h
	(addressbook_create_new_source): The first argument here should
	be const.

	* gui/component/addressbook-storage.c: Added #include
	"addressbook-config.h".

	* gui/widgets/e-minicard-label.c (e_minicard_label_event): On an
	escape here, cancel editing and remove the focus from the text.

	* gui/widgets/e-minicard.c (add_field): Set allow_newlines here.
	(field_activated): Stop editing on the activate signal and remove
	the focus from the text.  Fixes Ximian bug #12286.

2001-10-28  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.h: tidy

	* conduit/address-conduit-config.h: ditto

	* conduit/address-conduit.c (add_record): unref ecard when done

2001-10-28  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-card.c (e_card_date_from_string): Expose this
	function.
	(e_card_date_to_string): ...and this one.  Fixes build problem in
	pas-backend-ldap.c.

2001-10-28  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_hookup_shell_listeners): Change "this should never
	happen" dialog to not give my name/e-mail.  Sorry translators.
	But this really should never happen, thanks to my fix below.

	* gui/component/addressbook-component.c: Initialize
	global_shell_client to NULL. (Bug #6625)

2001-10-27  Chris Toshok  <toshok@ximian.com>

	[ bug #12979 ]
	* backend/pas/pas-backend-ldap.c (anniversary_populate): new
	function.
	(anniversary_ber): new function.
	(anniversary_compare): new function.
	(birthday_populate): new function.
	(birthday_ber): new function.
	(birthday_compare): new function.

2001-10-27  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_destroy): free up all the book_data
	list stuff.
	(e_select_names_completion_got_book_view_cb): deal with book_data
	being passed as the closure, and increment the
	pending_completion_seq counter.
	(e_select_names_completion_card_added_cb): deal with book_data
	being passwd as the closure.
	(e_select_names_completion_seq_complete_cb): same, and decrement
	the pending_completion_seq if we haven't gotten one for this book
	view before.
	(e_select_names_completion_stop_query): cancel all the
	book_data's.
	(e_select_names_completion_start_query): use the books_not_ready
	counter instead of book_ready.  also, do e_book_get_book_view on
	each of the book's in our list.
	(e_select_names_completion_do_query): change to deal with our
	list.
	(e_select_names_completion_book_ready): decrement the
	book_not_ready counter.
	(e_select_names_completion_new): add the book we're created with
	to our list.
	(e_select_names_completion_add_book): implement.

	* gui/component/select-names/e-select-names-completion.h: add
	prototype for e_select_names_completion_add_book.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_new): use addressbook_config_data, and
	don't unref the db.
	(e_select_names_manager_create_entry): always add NULL for a book
	(which corresponds to the local book), and if the completion_book
	is present, add it to the list of books to complete again.

2001-10-27  Chris Toshok  <toshok@ximian.com>

	* gui/contact-editor/e-contact-quick-add.c (merge_cb): change to
	EBookCallback signature, and unref the book.
	(quick_add_merge_card): use addressbook_load_default_book.
	(ce_have_book): change to EBookCallback signature, and unref the
	book.
	(edit_card): use addressbook_load_default_book.

	* gui/component/e-address-popup.c (email_table_save_card_cb):
	change to EBookCallback signature, and unref the book.
	(add_card_idle_cb): use addressbook_load_default_book, and call
	the cb if it fails.
	(e_address_popup_cleanup): fix type -- should be "pop->card =
	NULL", not "pop = NULL".
	(contact_editor_cb): change to EBookCallback signature.
	(edit_contact_info_cb): use addressbook_load_default_book.
	(start_query): change to EBookCallback signature.
	(e_address_popup_query): use addressbook_load_default_book.

	* gui/widgets/e-minicard-control.c (book_open_cb): change to
	EBookCallback signature, and unref the book.
	(save_in_addressbook): use addressbook_load_default_book instead
	of e_book_use_local_address_book.

	* gui/widgets/Makefile.am (INCLUDES): change includes since we're
	including addressbook.h which has it's own set of funky include
	path requirements.

2001-10-27  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book.c (activate_factories_for_uri): Don't leak
	stuff. (Bug #13709)

2001-10-27  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-destination.c (name_and_email_simple_query_cb,
	nickname_simple_query_cb): Set book_uri when cardification occurs.

2001-10-27  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_add_section): Turned off use_ellipsis (it breaks
	emulate_label_resize) and on emulate_label_resize.  Fixes Ximian
	bug #13693.

2001-10-27  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(make_match): Doh!  We should be sorting our contacts so that the
	most frequently used ones are at the top of the list, not the
	bottom.

	* backend/pas/pas-book.c (pas_book_check_queue): That should be a
	bonobo_object_unref, not a gtk_object_unref.
	(pas_book_queue_request): Likewise, we need to bonobo_object_ref
	here.
	(pas_book_destroy): If our pas_book_check_queue timeout is still
	active, disable it.  This should never happen, but it never hurts
	to be careful.
	(pas_book_destroy): Set book->priv to NULL after we free it.

2001-10-27  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (local_record_from_ecard): copy phone
	labels and show phone as well, clear correct entry text and
	correctly detect unsyncable cases

2001-10-27  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (local_record_from_ecard): touch the
	record on lookup
	(check_for_slow_setting): write touched only if we are doing a
	slow sync
	(card_removed): don't touch on lookup
	(match): touch on lookup

2001-10-27  Jon Trowbridge  <trow@ximian.com>

	* backend/pas/pas-book.c (pas_book_check_queue): Added paranoid
	reentrancy guards.
	(pas_book_queue_request): Changed our idle handler into a timeout,
	so as to work w/ reentrancy guards.
	(pas_book_init): Explicit initialization.

2001-10-26  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.h: add prototypes for
	addressbook_config_database, and addressbook_load_default_book.

	* gui/component/addressbook.c (addressbook_config_database): new
	function, so we aren't activating the db everywhere we need to use
	it.
	(addressbook_load_default_book): load the default book, after
	getting the uri from bonobo-config.

2001-10-26  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book-util.c (simple_query_card_added_cb): Return
	on cancellation.
	(simple_query_sequence_complete_cb): Act if not cancelled.
	(simple_query_book_view_cb): Free & return on cancellation.
	(e_book_simple_query_cancel): Set cancellation flag.

	* gui/component/e-address-popup.c (e_address_popup_query): Hold a
	reference to ourselves for the duration of our addressbook fetch.
	(start_query): Release when we've fetched our addressbook.
	(e_address_popup_cleanup): Break out most of what we do in
	_destroy into a separate function.
	(e_address_popup_destroy): Class cleanup.
	(contact_editor_cb): Paranoid clean-up.
	(add_contacts_cb): Paranoid clean-up.
	(e_address_popup_ambiguous_email_add): Paranoid clean-up.

2001-10-26  JP Rosevear  <jpr@ximian.com>

	* conduit/e-address.conduit.in: remove the merges as valid sync
	types

	* conduit/address-conduit.c (pre_sync): write out only the touched
	records if we are doing copies

	* conduit/address-conduit-config.h
	(addrconduit_load_configuration): get the sync type

2001-10-26  Jon Trowbridge  <trow@ximian.com>

	* gui/component/e-address-popup.c (e_address_popup_destroy):
	Cancel any pending queries.

	* gui/contact-editor/e-contact-editor.c (close_dialog): Don't
	assert, but check if ce->app != NULL, since this function can
	(apparently) get called multiple times.

	* gui/contact-editor/e-contact-save-as.c (file_exists): Remove bad
	dialog ref-counting crap.

	* gui/contact-editor/e-contact-editor.c (save_card): Ref our
	EContactEditor, since we are holding a pointer to it in
	EditorCloseStruct.
	(card_modified_cb): Unref our EContactEditor when we free our
	EditorCloseStruct.
	(card_added_cb): Unref our EContactEditor when we free our
	EditorCloseStruct.

2001-10-26  JP Rosevear  <jpr@ximian.com>
	
	* conduit/address-conduit.c (check_for_slow_setting): make debug
	info more accurate
	
2001-10-26  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (e_addr_context_destroy): prevent
	double unref
	(cursor_cb): correct typo
	(card_removed): remove the card from the map if was archived and
	is now deleted

2001-10-26  JP Rosevear  <jpr@ximian.com>
	
	* conduit/address-conduit.h: new member

	* conduit/address-conduit.c (print_remote): free the struct after
	using it
	(e_addr_context_new): make consistent with other conduits
	(e_addr_context_destroy): properly destroy the context
	(cursor_cb): no need to ref the card, its done for us
	(clear_entry_text): util function to free a field
	(free_local): free a local record
	(local_record_to_pilot_record): use a static buffer so we don't
	have to free it later
	(local_record_from_ecard): only fill in the fields we might not
	sync, clear a field before replacing the contents
	(for_each): track locals
	(for_each_modified): ditto
	(free_match): use free_local

2001-10-26  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-minicard.c, gui/widgets/e-minicard.h
	(set_has_cursor): Added has_cursor argument.  Setting the argument
	to TRUE if the minicard doesn't have focus will grab the focus.
	Fixes Ximian bug #3024.

2001-10-24  Jon Trowbridge  <trow@ximian.com>

	* gui/component/addressbook-factory.c (main): Initialize
	gnome-vfs.

	* gui/component/addressbook-component.c (xfer_file): Added.
	(Copied from the calendar.)
	(xfer_folder): Fixed to allow renaming of contact folders.

2001-10-24  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_class_init): Removed key_press handler here
	since delete and backspace are now handled by keybindings.

2001-10-23  Jon Trowbridge  <trow@ximian.com>

	* gui/component/addressbook.c: Fix command paths when we specify
	our pixmaps, so we don't get a lot of totally useless & very ugly
	bonobo-ui spew.

	* backend/ebook/e-book-util.c (e_book_nickname_query): The empty
	string as an arg shouldn't generate a warning.

	* gui/component/select-names/e-select-names-completion.c: Removed
	our cancelled flag and e_select_names_completion_cancel function,
	since we were just duplicating stuff that had ended up in
	ECompletion.
	(match_name): Form our menu_text properly on an additional-name
	match.
	(e_select_names_completion_got_book_view_cb): Store handles for
	our signals, disconnect them properly when we switch book views.
	(e_select_names_completion_stop_query): Disconnect signals when we
	stop our query.
	(check_capabilities): Spew if we are using LDAP for completion.
	(e_select_names_completion_destroy): Disconnect our signals when
	we destroy.
	This all should fix bug #10241.

2001-10-23  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_add_section): Set "draw_button" argument to TRUE
	on this EEntry.

2001-10-22  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/e-contact-save-as.c (save_it): Put up an
	error dialog if there's an error while saving.  If the person hits
	cancel on the "file exists" dialog, don't close the file selection
	dialog.  Fixes Ximian bug #7055.

2001-10-21  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-reflow-adapter.c
	(model_and_selection_free): right_click_up here when we let go of
	the popup.

	* gui/widgets/e-minicard-view.c (e_minicard_view_selection_event):
	right_click_up here.

2001-10-21  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_add_section, e_select_names_set_default): Use an
	EEntry here instead of a GtkLabel.  Fixes Ximian bug #7067.

2001-10-21  Jon Trowbridge  <trow@ximian.com>

	* gui/component/addressbook.c (control_activate_cb): Call
	e_addressbook_model_force_folder_bar_message when we activate the
	component. (Fixes bug #11749)

	* gui/widgets/e-addressbook-model.c
	(e_addressbook_model_force_folder_bar_message): Added.  Forces
	emission of a folder_bar_message.

2001-10-20  Larry Ewing  <lewing@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_set_default): stick with the style font if the
	efont bold font does not exist.	
	(e_select_names_set_default): don't forget to unref the oldstyle.

2001-10-20  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(name_style_query): Fix memory leak.

	* gui/widgets/e-addressbook-view.c (jump_to_letter): Free our
	string vector letter_v when we are done with it.

	* gui/contact-editor/e-contact-quick-add.c (edit_card): Unref our
	QuickAdd structure.

	* gui/component/e-address-popup.c (e_address_popup_construct):
	Unref our style after we are done with it.

2001-10-20  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book.c (activate_factories_for_uri): We
	shouldn't leak the info returned by oaf_query.

	* gui/contact-editor/e-contact-quick-add.c (card_added_cb): Remove
	superfluous call to quick_add_unref.
	(editor_closed_cb): Remove superfluous call to quick_add_unref.

	* gui/component/select-names/e-select-names.c (esn_get_key_fn): We
	need to unref the card returned by e_addressbook_model_get_card.

2001-10-20  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c: Make LDAP servers
	non-user-creatable.

2001-10-20  Jon Trowbridge  <trow@ximian.com>

	* printing/e-contact-print.c (e_contact_print_card): Check that the
	string we are checking for xml-ness is non-NULL.

	* backend/ebook/e-destination.c (e_destination_importv): Filter
	out empty destinations. (also Bug #13036)

	* printing/e-contact-print.c (e_contact_build_style): Use
	gnome_font_new_closest; if gnome_font_new fails and returns NULL,
	our spacing gets all messed up. (Bug #10785)
	
	* gui/widgets/e-addressbook-view.c (e_addressbook_view_can_print):
	Allow printing if there are any cards in our view.  The selection
	has nothing to do with it.

	* backend/ebook/e-destination.c (e_destination_is_empty): Check
	for strings that contain non-whitespace, rather than just looking
	for a non-zero first character. (Bug #13036)

2001-10-20  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-minicard-view.c (e_minicard_view_selection_event):
	Handle focus_change in event by selecting that contact.  Fixes
	Ximian bug #3024.

	* gui/component/addressbook-component.c (owner_unset_cb):
	Repeatedly call gtk_main_quit here as long as there is a main loop
	around.  This is an ugly hack around Ximian bug #11760.

2001-10-20  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c: Added #include
	<gal/widgets/e-unicode.h>.

	* gui/widgets/e-minicard-control.c: Made this display the number
	of extra cards in the attachment as well as made it save them all
	to the local addressbook if the person selects the button.  Fixes
	Ximian bug #9507.

2001-10-20  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-minicard.c (e_minicard_event): Changed this to not
	grab on a right click.  Fixes Ximian bug #12660.

2001-10-19  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c
	(destination_folder_handle_motion): Get @folder_type here too [to
	match the changes in the EvolutionShellComponentDnd interface].
	Also, remove a debugging message.
	(destination_folder_handle_drop): Likewise.

2001-10-18  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names.c (add_menu_item):
	Translate labels in select-names option menu. (Bug #9604)

	* gui/search/e-addressbook-search-dialog.c
	(e_addressbook_search_dialog_init): Made the default window size
	slightly wider. (Bug #7516)

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

	* backend/ebook/e-card.c, backend/ebook/e-card.h
	(e_card_list_get_vcard): Made this take a const GList.

2001-10-18  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(check_capabilities): Added.  Check if our book is local or
	networked.
	(e_select_names_completion_book_ready): Call check_capabilities.
	(e_select_names_completion_new): Call check_capabilities.
	(e_select_names_completion_do_query): If we have a networked book,
	keep trying if we haven't been able to cache any cards --- our
	earlier attempts could have failed due to too many matches. (Bug
	#12932)

	* gui/component/select-names/e-select-names-manager.c
	(focus_out_cb): Lag our cardification on focus-out.  This seems to
	help with the unintended cardifications that can result from the
	weird focus-out/focus-in events that get generated when the popup
	disappears.

	* backend/ebook/e-card-compare.c: Removed some debug spew.

2001-10-17  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c (addressbook_source_dialog):
	grab focus in the Account entry when preparing the dialog, fixes
	#10406.

2001-10-17  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names.c (new_folder): make
	sure to also add "ldap-contacts" folders to the option menu.

2001-10-17  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (ecard_from_remote_record): sync all
	the fields we can, with out overwriting
	(local_record_from_ecard): write the fields to the pilot in
	priority order unless there are fields on the pilot we can't
	store, then fill in the fields as they are on the pilot

2001-10-17  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card.c (e_card_get_vobject): Did a bit of clean
	up here.  Might fix some crashes, specifically Ximian bug #10164.

	* gui/widgets/e-addressbook-view.c (SPEC): Updated the model
	column numbers here.  Fixes Ximian bug #12308.

2001-10-17  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_upgrade_db):
	add upgrade from 0.1 to 0.2, where we make sure id dbt's match
	vcard id's, fixes longstanding bug (#7406) where cards were not
	modifiable or removable after having been created during a 1-2
	week long window in early betas.
	(PAS_BACKEND_FILE_VERSION): change to 0.2
	(PAS_ID_PREFIX): #define this here.
	(pas_backend_file_create_unique_id): use PAS_ID_PREFIX instead of
	the string.

2001-10-16  Iain Holmes  <iain@ximian.com>

	* backend/ebook/evolution-ldif-importer.c (support_format_fn): Return
	FALSE if no extension.

2001-10-16  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-card.c (e_card_get_id): If card->id is NULL,
	return an empty string.
	(e_card_set_id): Don't allow the card id to be set to NULL; use
	the empty string instead.
	(e_card_get_vobject): When building our vcard, pass in the empty
	string as the id if card->id is NULL. (Bug #10164)

2001-10-16  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (local_record_from_ecard): don't set
	the phone info if it is blank
	(ecard_from_remote_record): save up to 3 fax numbers

2001-10-15  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client):
	unref the book after we pass it off to evolution-addressbook.

2001-10-15  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (create_card_dtor): unref
	op->view.
	(pas_backend_ldap_process_create_card): ref op->view.
	(remove_card_dtor): unref op->view.
	(pas_backend_ldap_process_remove_card): ref op->view.
	(modify_card_dtor): unref op->view.
	(pas_backend_ldap_process_modify_card): ref op->view.
	(ldap_search_dtor): unref op->view.
	(pas_backend_ldap_search): ref op->view.

2001-10-15  Chris Toshok  <toshok@ximian.com>
	
	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_get_book_view): make sure to unref the
	book_view here so we don't leak them.

2001-10-12  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-factory.c (main): call
	e_passwords_init and e_passwords_shutdown.

2001-10-15  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card.c (addPropValueQP, addPropValueSets,
	e_card_get_vobject): Properly decide whether a property needs to
	be marked as QP by searching for '\n'.  Fixes Ximian bug #3021.

2001-10-15  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/e-contact-save-as.c (e_contact_save_as,
	e_contact_list_save_as): Set the default file name here.  Fixes
	Ximian bug #7053.

2001-10-14  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_hookup_shell_listeners): Added linebreaks to our
	"this shouldn't happen" dialog message. (Bug #12498)

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

	* gui/component/addressbook-factory.c (main): Add a component name
	to the e_passwords_init() call.

2001-10-12  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/evolution-ldif-importer.c: commit the importer
	originally from Michael M. Morrison, with fixups by toshok.

	* backend/ebook/Makefile.am (bin_PROGRAMS): add
	evolution-ldif-importer.
	(oaf_in_files): add
	GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in.

	* backend/ebook/e-card-simple.h: add WANTS_HTML and IS_LIST.

	* backend/ebook/e-card-simple.c (field_data): add WANTS_HTML and
	IS_LIST.
	(e_card_simple_set): fix typo.

	* backend/ebook/.cvsignore: ignore
	GNOME_Evolution_Addressbook_LDIF_Importer.oaf and
	evolution-ldif-importer.

	* backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.oaf.in:
	ldif importer oafinfo.

2001-10-12  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Added a boolean type here.

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

	* gui/component/select-names/e-select-names.c
	(addressbook_model_set_uri): Check to see if the uri we are
	setting is the same as the current uri.  If so, do nothing.
	(Bug #11324)

2001-10-11  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-destination.c
	(e_destination_reverting_is_a_good_idea): Added.  Heuristic for
	whether or not we want to revert to an earlier cardified state.
	(e_destination_cardify): Don't be quite as aggressive about
	reverting to previous cardified states. (Bug #11890)

2001-10-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c (e_card_simple_destroy,
	fill_in_info, e_card_simple_sync_card, e_card_simple_set_phone,
	e_card_simple_set_address, e_card_simple_set_delivery_address,
	file_as_get_style, file_as_set_style, e_card_simple_set,
	e_card_simple_set_arbitrary),
	gui/contact-editor/e-contact-editor-address.c
	(e_contact_editor_address_destroy,
	e_contact_editor_address_set_arg,
	e_contact_editor_address_get_arg),
	gui/contact-editor/e-contact-editor-fullname.c
	(e_contact_editor_fullname_destroy,
	e_contact_editor_fullname_set_arg,
	e_contact_editor_fullname_get_arg),
	gui/contact-editor/e-contact-editor.c (phone_entry_changed,
	address_text_changed, name_entry_changed, full_name_clicked,
	full_addr_clicked, fill_in_info): Changed these to use the new ref
	and unref functions for ECard auxillary types.

	* backend/ebook/e-card-simple.h: Added a comment.

	* backend/ebook/e-card-types.h: Added ref_count field to all the
	types.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added ref and
	unref functions here for all the ECard auxillary types.  Removed
	the corresponding free functions.  Switched to using these
	functions where appropriate.

	* gui/component/addressbook-factory.c: #include
	<e-util/e-passwords.h>

	* gui/component/addressbook.c (load_uri_cb): const correctify.

	* gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names.c: #include
	<addressbook/gui/component/addressbook.h>

	* gui/widgets/e-addressbook-model.c (modify_card): Removed an
	unnecessary ref here.

2001-10-11  Dan Winship  <danw@ximian.com>

	* gui/component/select-names/e-select-names.c (update_folder):
	Don't need this any more.

2001-10-11  Jon Trowbridge  <trow@ximian.com>

	* gui/component/addressbook.c (new_contact_cb): Check that
	view->view != NULL.
	(save_contact_cb): Check that view->view != NULL.
	(search_cb): Check that view->view != NULL.
	(delete_contact_cb): Check that view->view != NULL.
	(print_cb): Check that view->view != NULL.
	(print_preview_cb): Check that view->view != NULL.
	(stop_loading_cb): Check that view->view != NULL.
	(cut_contacts_cb): Check that view->view != NULL.
	(copy_contacts_cb): Check that view->view != NULL.
	(paste_contacts_cb): Check that view->view != NULL.
	(select_all_contacts_cb): Check that view->view != NULL.
	(send_contact_cb): Check that view->view != NULL.
	(send_contact_to_cb): Check that view->view != NULL.
	(update_command_state): Check that view->view != NULL.  Hold a
	reference to the AddressbookView for the duration of the function,
	in case we exit during bonobo-reentrancy.
	(addressbook_view_ref): Added.
	(addressbook_view_unref): Added.  Simple ref counting for
	AddressbookView objects.
	(addressbook_view_clear): Zero out an AddressbookView.  This is
	now separated from the deallocation of the AddressbookView object,
	so that we don't leave a dangling pointer if we exit during
	bonobo-reentrancy in update_command_state. (Which often seems to
	happen if we exit while addressbook operations are going on.)
	(destroy_callback): Replace previous call to addressbook_view_free
	with addressbook_view_clear/addressbook_view_unref calls.
	(addressbook_factory_new_control): Initialize the reference count
	in the AddressbookView object.

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_destroy):
	Carefully zero out our destroyed object.
	(command_state_change): Hold a reference to ourselves during the
	signal emission.
	(get_selected_cards): Ref cards as we add them to the list.
	(e_addressbook_view_stop): Check for view != NULL.
	(e_addressbook_view_can_create): Check for view != NULL.
	(e_addressbook_view_can_print): Check for view != NULL.
	(e_addressbook_view_can_save_as): Check for view != NULL.
	(e_addressbook_view_can_send): Check for view != NULL.
	(e_addressbook_view_can_send_to): Check for view != NULL.
	(e_addressbook_view_can_delete): Check for view != NULL.
	(e_addressbook_view_can_cut): Check for view != NULL.
	(e_addressbook_view_can_copy): Check for view != NULL.
	(e_addressbook_view_can_paste): Check for view != NULL.
	(e_addressbook_view_can_select_all): Check for view != NULL.
	(e_addressbook_view_can_stop): Check for view != NULL.

	* gui/widgets/e-addressbook-model.c (addressbook_destroy): Be
	careful about zeroing out our destroyed object.
	
	* backend/ebook/e-book-view.c (e_book_view_stop): Added.  Stops
	event processing in the underlying listener.

2001-10-10  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_destroy): If our select names dialog is
	still around, destroy it.  Otherwise, the dialog will hang around
	after our composer goes away.

2001-10-06  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.glade: add an Email Address
	field/label/help text.

	* gui/component/addressbook-config.c
	(addressbook_source_dialog_set_source): fill in the email entry
	from the source.  also, set the initial state of the email
	label/entry.
	(auth_checkbutton_changed): set the email label/entry
	sensitive/editable if auth is turned on, and
	insensitive/uneditable if it's off.
	(addressbook_source_dialog_get_source): get the email address from
	the email entry.
	(addressbook_source_dialog): hook up the email entry to the
	changed signal foo, as well as the focus handler for displaying
	help text.

2001-10-06  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_new): db isn't a BonoboObject, so don't
	bonobo_object_unref it!

2001-10-05  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names.c
	(addressbook_model_set_uri): e_book_load_uri ->
	addressbook_load_uri.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_new): e_book_load_uri ->
	addressbook_load_uri.

	* gui/component/addressbook.c (forget_passwords_cb): new function,
	call e_passwords_forget_passwords.
	(verbs): Add ContactsForgetPasswords.
	(load_uri_auth_cb): new function, call the callback and free up
	our closure stuff.
	(load_uri_cb): once the uri is loaded, check if we're configured
	to authenticate for it, and do so, using the e_passwords stuff.
	(addressbook_load_uri): wrapper around e_book_load_uri.  save off
	the parameters and start the load-with-auth machinery.
	(book_open_cb): remove all the auth stuff from here, as it's
	handled elsewhere now.

	* gui/component/addressbook-factory.c (main): call
	e_passwords_init.

	* gui/component/addressbook-component.c (user_create_new_item_cb):
	e_book_load_uri -> addressbook_load_uri.
	(destination_folder_handle_drop): same.

	* gui/component/addressbook.h: add prototype for
	addressbook_load_uri (a wrapper around e_book_load_uri that also
	handles authentication if the user selects it.)

2001-10-05  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names.c
	(real_add_address_cb): Check to make sure our call to
	e_addressbook_model_get_card doesn't return NULL.

	* gui/widgets/e-addressbook-model.c
	(e_addressbook_model_get_card): Chek that we aren't requesting a
	negative row.

	* gui/contact-list-editor/e-contact-list-editor.c (add_email_cb):
	Move to the bottom of the scrolled window, so we can see the
	address we just added.
	(table_drag_data_received_cb): Move to the bottom of the scrolled
	window, so we can see the contact we just dropped.

	* gui/component/addressbook.c (addressbook_factory_new_control):
	We don't own the string returned by e_categories_master_list_nth,
	so terrible things will happen if we free it. (Bug 10916)

2001-10-05  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_set_arg):
	don't set the editable field on the model - let the book do that.
	(book_writable_cb): call writable_status to propagate a ui-change
	event up (and sensitize the write-only toolbar buttons after you
	authenticate with ldap.)

2001-10-04  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-book.c (activate_factories_for_uri): for some
	reason, matching on protocol is causing problems for me.
	disabling it for now.

2001-10-04  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c: use ldap.png for ldap
	contacts.

2001-10-03  Iain Holmes  <iain@ximian.com>

	* addressbook/gui/component/addressbook-storage.c 
	(addressbook_storage_setup): Only load_storages if you have LDAP.
	(load_source_data): Only do stuff if you have LDAP.

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

	* gui/widgets/e-addressbook-reflow-adapter.c (addressbook_height),
	gui/widgets/e-minicard.c (remodel): Fixed these to determine the
	fields to use properly.

2001-10-02  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(name_style_query): Strip out commas before forming our query.
	(match_name): Use e_card_compare_name_to_string_full, rather
	than our crufty old matching code.  Not only is this cleaner,
	but that crufty old code was very broken when it came to 
	handling strings with whitespace. (Bug 8988)
	(match_nickname): utf8 and bug fixes.

	* backend/ebook/e-card-compare.c
	(e_card_compare_name_to_string_full): Added.  This is basically
	e_card_compare_name_to_string with a bunch of extra options, so
	that it can more readily be reused in other contexts.
	(e_card_compare_name_to_string): This is now just a call to
	e_card_compare_name_to_string_full with the extra args filled in
	to defaults that simulate the old behavior.

2001-10-02  Chris Toshok  <toshok@ximian.com>

        * backend/ebook/e-book.c (e_book_construct): remove most of the
	oaf stuff from here.  we do it in load_uri, where we'll have more
	information (namely, the protocol we're using.)
	(activate_factories_for_uri): do an oaf query to get a list of all
	objects implementing our BookFactory interface and also supporting
	the protocol used in the uri.
        (e_book_load_uri): try activating book factories to handle this
	uri, and start the iteration over the list.
        (e_book_load_uri_from_factory): try and load the uri.
        (e_book_load_uri_open_cb): callback function for the
	BookFactory_openBook call - if it succeeds, call the user's
	callback.  otherwise step to the next factory.
        (e_book_load_uri_step): go to the next factory in our list, and
	error out if there are no more.
	
2001-10-02  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_get_textification): Made the max length of
	the textification be 2047 characters.  Fixes Ximian bug #3021.

2001-10-01  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (ecard_from_remote_record): if there
	was no first name or last name, file as the company.

2001-10-01  JP Rosevear  <jpr@ximian.com>
	
	* backend/pas/pas-backend-file.c
	(pas_backend_file_changes_foreach_key): if there is a db error,
	assume deletion
	(pas_backend_file_changes): write after all is done for efficiency

2001-09-28  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_changes_foreach_key): g_strdup
	(pas_backend_file_changes): ditto, make sure to free all data and
	do a hash write after each add/remove

	* conduit/address-conduit.c (local_record_to_pilot_record): use
	the local record category
	(local_record_from_ecard): ndle the fields and category we don't
	sync by making sure we don't overwrite them

2001-09-27  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-book.c (e_book_construct): do an oaf query to
	get a list of all objects implementing our BookFactory interface,
	instead of just activating the one IID.  this should really be a
	global list, not a per EBook.
	(e_book_load_uri): start the iteration over our list of
	BookFactory's.
	(e_book_load_uri_from_factory): try and load the uri.
	(e_book_load_uri_open_cb): callback function for the
	BookFactory_openBook call - if it succeeds, call the user's
	callback.  otherwise step to the next factory.
	(e_book_load_uri_step): go to the next factory in our list, and
	error out if there are no more.

2001-09-27  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (local_record_from_ecard): use the old
	record (if there was one) so as not to overwrite fields we don't
	sync
	(pre_sync): store the dbi in the context and don't make it object
	data

2001-09-26  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book-factory.c (pas_book_factory_destroy): use
	priv->iid instead of the hardcoded string here.
	(pas_book_factory_activate): parameterize the factory's iid, as in
	the calendar server, and provide a default if iid == NULL.

	* backend/pas/pas-book-factory.h: add iid parameter for
	pas_book_factory_activate.

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

	* backend/ebook/e-destination.c (e_destination_get_textrep): Use
	camel_address_format, not camel_address_encode.

2001-09-26  Anna Marie Dirks  <anna@ximian.com>

	* gui/contact-editor/contact-editor.glade: Added help text (thanks 
	to Aaron) and re-worded the labels, and fixed the shortcuts on the 
	brand-spanking-new Collaboration tab.
	

2001-09-26  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names-manager.h: add
	completion_book.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_new): get /Addressbook/Completion/uri, and
	if it's present, use the corresponding EBook for completing
	addresses.
	(focus_out_cb): use manager->completion_book here instead of NULL,
	which corresponds to the local addressbook.
	(completion_popup_cb): same.
	(e_select_names_manager_create_entry): same.

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

	* backend/ebook/e-card-compare.c (e_card_compare_name_to_string):
	Properly handle names when the individual elements (given,
	addition, family) contain whitespace.  (Bug #10502)

	* backend/ebook/e-destination.c (e_destination_set_name): Reset
	textrep when we change the name.
	(e_destination_set_email): Reset textrep when we change the email.
	(e_destination_get_textrep): Make sure that the textrep version of
	the address is properly quoted if it contains unsafe characters.
	(All related to bug #10796)

	* gui/component/select-names/e-select-names-completion.c
	(match_nickname): Fix nickname matching. (bug #9698)
	(make_match): Use e_completion_match_new when building our match,
	rather than ad hoc manipulation of the struct.

2001-09-26  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_changes): set
	the last_use and use_score fields of the card to known values so
	the card doesn't register as changed when only they have changed

2001-09-26  Peter Williams  <peterw@ximian.com>
 
 	* conduit/address-conduit.c (ecard_from_remote_record): Fix this function
 	to set email addresses properly, and handle multiple occurrences of
 	email addresses, home phone numbers, and business phone numbers.
	
2001-09-25  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook-component.c (user_create_new_item_cb):
	Handle creating the new contact in the current folder if it's a
	contacts folder.  Fixes Ximian bug #7814.

2001-09-24  Chris Toshok  <toshok@ximian.com>

	* backend/pas/Makefile.am (LDAP_SCHEMA): add
	evolutionperson.schema
	(EXTRA_DIST): add LDAP_SCHEMA to the dist (but don't install it).

2001-09-23  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (ecard_from_remote_record): sync the
	note the to pilot and make sure to blank fields when appropriate
	(local_record_from_ecard): sync the note to the desktop

2001-09-22  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c (do_create): g_free (id) in the
	error case to plug a memory leak.

2001-09-22  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard.c (remodel): when creating the cards,
	don't display any of the subname fields (surname, given, middle,
	suffix, etc.)

2001-09-22  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-card-simple.c
	(e_card_simple_get): add getters for the additional name fields.
	(field_data): move FAMILY_NAME to the end of the list, and add
	GIVEN_NAME, ADDITIONAL_NAME (middle name), and NAME_SUFFIX.
	
	* backend/ebook/e-card-simple.h: same.

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

	* gui/component/addressbook.c (print_preview_cb): Hooked up print
	preview button.

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h
	(e_addressbook_view_print_preview): Added this function.

	* printing/e-contact-print.c, printing/e-contact-print.h
	(e_contact_print_preview): Added this function.

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

	* backend/ebook/e-destination.c (name_and_email_simple_query_cb):
	Use the default e-mail address if we have nothing else to go on.
	Previously we just failed, which basically meant that name-only
	searches would never work properly.
	(nickname_simple_query_cb): The logic was a bit tangled here; if
	our query status isn't SUCCESS, always give up but don't leak the
	destination.  And if our nickname query fails and we try the
	name-and-email query, use the textrep for a name-only search.  The
	only reason we are doing a nickname query in the first place is if
	we have an obviously invalid e-mail.
	(launch_cardify_query): Use e_destination_is_valid to determine
	if we should try a nickname query first.
	These changes basically fix bug 7728, and generally make the
	auto-cardification of addresses a lot more clever and robust.

	* backend/ebook/e-book-util.c (name_and_email_cb): Use
	e_card_compare_name_to_string instead of e_card_name_match_string.
	(e_book_name_and_email_query): The arguments to g_strsplit were
	in the wrong order.  Doh!

	* backend/ebook/e-card-compare.c (e_card_compare_name_to_string):
	Added.  Replaces e_card_name_match_string, and actually works.

	* backend/ebook/e-card.c: Removed e_card_name_match_string
	function, which didn't work particularly well.

2001-09-19  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (cursor_cb): don't add to the complete
	list of cards if the card is a list
	(card_added): don't add to the list of changes if the card is a
	list
	(card_changed): ditto
	(card_removed): ditto

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

	* gui/component/select-names/e-select-names.c
	(e_select_names_hookup_shell_listeners): Change the "this should
	never happen" message into a request for people to e-mail me
	directly with info if they encounter that error.

	* backend/ebook/e-book-util.c (e_book_name_and_email_query):
	Freeing name[i] instead of namev[i] is a bad idea. (bug #10270)

	* gui/component/select-names/e-select-names-popup.c
	(popup_menu_card): Properly handle our GnomeUIInfo labels so that
	they won't be leaked if they are dynamic strings, so that they
	will be i18n-correct, and so that underscores won't be interpreted
	as key accelerators.  What a PITA.  Also, don't leak our
	iterators.  (Bug #10200.)
	(popup_menu_list): The same GnomeUIInfo tweaking as in
	popup_menu_card.
	(popup_menu_nocard): Ditto.

2001-09-18  JP Rosevear  <jpr@ximian.com>
 
 	* backend/ebook/e-card-simple.c (field_data): add caluri field data
 
 	* backend/ebook/e-card.c (e_card_get_vobject): add the caluri
 	property when appropriate
 	(parse_caluri): handle read caluri
 	(e_card_class_init): add caluri arg
 	(e_card_destroy): free the caluri
 	(e_card_get_arg): return caluri arg
 	(e_card_set_arg): set caluri from arg
 	(e_card_init): init caluri to null
 
 	* backend/ebook/e-card-simple.h: new simple field
 
 	* backend/ebook/e-card.h: new member
 
 	* gui/contact-editor/e-contact-editor.c (field_changed): util
 	callback to change the command state
 	(set_entry_changed_signal_field): hook up a change signal to above
 	(set_entry_changed_signals): use above function
 
 	* gui/contact-editor/e-contact-editor.glade: Add collaboration
 	page and fields
	
2001-09-18  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_build_cards_list): create a sexp and check if
	the cards match before adding them to the list
	(pas_backend_file_process_get_cursor): send extra param

2001-09-18  Larry Ewing  <lewing@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(book_query_process_card_list): unref the destination regardless
	of whether we get an email addresss.

2001-09-17  Larry Ewing  <lewing@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(name_style_query): use g_strfreev.
	(match_name): s/g_free/g_strfreev.
	(match_file_as): s/g_free/g_strfreev.

	* backend/ebook/e-book-util.c (e_book_name_and_email_query): fix
	the memory handling here.  All there members of the vector need to
	be freed all the time.

	* backend/ebook/load-pine-addressbook.c (parse_line): free the
	string outside of the test that makes sure there are three
	entries.

	* gui/component/select-names/e-select-names-completion.c
	(match_nickname): don't malloc a match we will never use.

	* gui/widgets/e-addressbook-model.c (get_view): free the dup'd
	capabilities.

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

	* backend/ebook/e-destination.c (e_destination_is_valid): We want
	to assume that a destination that comes from a card is
	automatically valid, but the right way to check that is by calling
	e_destination_from_card, not by checking if dest->priv->card !=
	NULL.  (Fixed bug #10017)

	* gui/component/select-names/e-select-names-completion.c
	(match_name): Fixed a stupid bug was causing completion to fail
	for contacts who have only one name.  (The classic example we all
	know and love is 'George <jirka@5z.com>')  (bug #8353)

	* backend/ebook/e-card.c (e_card_list_send): Do the right thing if
	the card we are trying to send to has no valid e-mail addresses.
	(bug #10137)

	* gui/widgets/e-minicard.c (e_minicard_event): Code implicitly
	assumed that event->button.button is 1, 2, or 3, causing disaster
	when using a wheel-mouse.  Fixed. (bug #9400)

2001-09-16  Chris Toshok  <toshok@ximian.com>

	* gui/contact-editor/e-contact-editor.c (_phone_arrow_pressed):
	use enable_widget instead of gtk_widget_set_sensitive.
	(_email_arrow_pressed): same.
	(_address_arrow_pressed): same.
	(disable_widget_foreach): same.
	(enable_writable_fields): same.
	(set_editable): same.
	(enable_widget): new function, using both gtk_widget_set_sensitive
	and *_set_editable to allow the user to select text in GtkEntry's
	and GtkText's.

	* gui/contact-editor/e-contact-editor-fullname.c
	(e_contact_editor_fullname_set_arg): use set_editable as well as
	set_sensitive, to allow the user to select text in GtkEntry's.

	* gui/contact-editor/e-contact-editor-address.c
	(e_contact_editor_address_set_arg): same.

2001-09-16  Chris Toshok  <toshok@ximian.com>

	* backend/pas/evolutionperson.schema: fix syntax errors (which are
	broken, imo...)

2001-09-16  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-storage.h: reorder the LDAP scopes so
	that they match the order of the option menus in the glade file.

	* gui/component/addressbook-config.c (auth_checkbutton_changed):
	new function, mostly there to house some #ifdef'ed out code.
	(option_menuitem_activated): new function, to keep track of
	changes to the ldap scope optionmenu.
	(addressbook_source_dialog_set_source): set the menu history as
	well as the dialog's copy of the scope.
	(addressbook_source_dialog_get_source): fill in the source's scope
	from the dialog's copy, and add more #if the_ui_gods_smile_on_me
	code.
	(add_activate_cb): new function, add an activate callback for the
	optionmenu's items.
	(addressbook_source_dialog): more #if the_ui_gods_smile_on_me
	code, always start the dialog on page 0, and hook up the
	scope optionmenu's items.

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

	* backend/ebook/e-card-compare.c (e_card_compare_name): No
	loose name matches on family names. (#8802)

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_activate_obj): We can't use NULL as the
	first arg for e_addressbook_show_contact_editor anymore.  Damn.
	(#8535)

	* backend/ebook/e-book-listener.c (e_book_listener_stop): Make
	"stop" do nothing but set the stopped flag, as in
	e-book-view-listener.c.
	(e_book_listener_destroy): Clean up our queue here, rather than in
	e_book_listener_stop.
	(response_free): Added.  Move the rather lengthy bit of code
	needed to free a EBookListenerResponse into one place.
	(e_book_listener_check_queue): Properly deal with the stopped
	flag.
	(e_book_listener_queue_response): If the stopped flag is set, just
	drop the incoming response.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_stop): Make "stop" do nothing but set the
	stopped flag.
	(e_book_view_listener_destroy): Move all of the clean-up that used
	to be in e_book_view_listener_stop here.  This considerably simplifies
	the logic required to avoid various race conditions.
	(e_book_view_listener_check_queue): Properly deal with the stopped flag.
	(e_book_view_listener_queue_response): Drop all incoming responses if
	we are stopped.

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

	* backend/pas/pas-book.c (pas_book_queue_request): Hold a
	reference to the book on behalf of our idle function.
	(pas_book_check_queue): When we are finished, drop the reference
	we've been holding on behalf of the idle function.

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_create_card): Hold a reference to the
	book_view while sending our notifications.
	(pas_backend_file_process_remove_card): Hold a reference to the
	book_view while sending our notifications.

	* gui/contact-editor/e-contact-quick-add.c (quick_add_unref): Remove
	debugging spew.

	* backend/ebook/e-book-util.c: Remove a lot of unused code that
	worked around bugs that have long since been fixed.
	(simple_query_disconnect): Added.  Breaks out the part of
	simple_query_free that disconnect signals.
	(simple_query_free): Replace code w/ a call to
	simple_query_disconnect.
	(simple_query_sequence_complete_cb): Call simple_query_disconnect
	before executing the callback, so that our callbacks don't get
	triggered by any book changes that might occur during that
	callback.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_check_queue): Changed to be consistent with
	e_book_listener_check_queue.
	(e_book_view_listener_queue_response): Also changed to use a
	high-frequency timeout.

	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):
	OK, I've agonized over this stupid little function, and it should
	now be race-free.
	(e_book_listener_queue_response): We process our response queue in
	a high-frequency timeout rather than an idle.  Using an idle
	function leads to some tricky race conditions and bad interactions
	with bonobo's semi-broken attempts to take over event processing.
	(e_book_view_listener_stop): Manually disable our timeout and
	clean up.

2001-09-14  Ettore Perazzoli  <ettore@ximian.com>

	[Automake 1.5 fixes pointed out by Richard Boulton
	<richard@tartarus.org>, as per #9258.]

	* gui/component/select-names/Makefile.am: Set CLEANFILES directly
	instead of using `+='.

	* backend/pas/Makefile.am: Rename `LDAP_BACKEND_SOURCES' to
	`LDAP_BACKEND_FILES'.

	* backend/ebook/Makefile.am: Set CLEANFILES directly instead of
	using `+='.

2001-09-13  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): use
	ldap_init.  ldap_open is deprecated in openldap 2.x.

2001-09-12  Iain Holmes  <iain@ximian.com>

	* backends/ebook/evolution-vcard-importer.c (check_file_is_vcard):
	Fix the check.

2001-09-12  Larry Ewing  <lewing@ximian.com>

	* backend/ebook/e-destination.c: free the values that are being
	leaked here.

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

	* gui/component/select-names/e-select-names-completion.c (match_email): 
	printf arguments were reversed by mistake.  Fixed bug #9693.

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

	* gui/component/select-names/e-select-names-popup.c
	(popup_menu_list): Added.  Treat right-clicks on a contact list as
	a special case.
	(e_select_names_popup): Check if we are dealing with a contact
	list.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_check_queue): See
	e_book_listener_check_queue below.
	(e_book_view_listener_queue_response): See
	e_book_listener_queue_response below.

	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):
	Explicitly prohibit reentrancy.  Use gtk-unref rather than
	bobobo-unref.
	(e_book_listener_queue_response): Hold a gtk-ref to the listener
	while the idle function runs, not a bonobo-ref.  As far as I can
	tell, it is impossible to avoid a race condition here when we have
	to worry about bonobo reentrancy.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_insert_length): Alter a copy of the
	original EDestination, rather than just using a new one.  We need
	to do this to preserve prior-card information for possible
	reversion later.
	(e_select_names_text_model_delete): Ditto.

	* backend/ebook/e-destination.c (e_destination_clear_card): When
	clearing a destination where ->card != NULL, store it for possible
	reversion later.
	(e_destination_revert): If we have an old card stored, go back to
	using it for the destination.
	(e_destination_is_valid): Tries to detect obviously broken
	addresses.
	(e_destination_cardify): If our destination is invalid, first try
	to cardify simply by reverting to an older card.
	(e_destination_destroy): Unref any cached old card.
	(e_destination_copy): Copy the old card information.

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

	* gui/component/select-names/e-select-names.c
	(sync_table_and_models): Show all rows in the table, and then
	remove the rows that correspond to entries in the
	ESelectNamesModels in the children.
	(real_add_address): Freeze/thaw our ESelectNamesModel, so that we
	don't change our table while we are in the middle of iterating
	over the selection.
	(remove_address): Just delete the address from the
	ESelectNamesModel, the signal handler will do the rest.
	(selected_rows_foreach_cb): Call remove_address to do our dirty
	work.
	(e_select_names_add_section): Connect to the 'changed' signal from
	the ESelectNamesModel, and call sync_table_and_models explicitly to
	get our initial state correct.

	* gui/component/select-names/e-select-names-table-model.c
	(fill_in_info): Deal with EDestinations in our table that don't
	come from cards.

	* gui/component/select-names/e-select-names-manager.c: Added
	another ESelectNamesModel* to the ESelectNamesManagerSection
	struct.  Called 'original_model', this contains a copy of the
	model as it is when we begin using the SelectNames dialog.
	(section_copy): Copy the original model.
	(section_free): Free the original model.
	(e_select_names_manager_add_section_with_limit): Initialize the
	original model.
	(e_select_names_clicked): I've changed the semantics of this
	dialog quite a bit... no UI freeze can stop me!  If OK is clicked,
	we do nothing.  If Cancel is clicked, we revert to the
	'original_model' copy of our address entry state before we started
	editting.  Finally, we close the dialog before any of thing. Doing
	it last caused problems, because signals were being triggered
	which had dangling pointers as their closures.
	(e_select_names_manager_activate_dialog): Copy our current state
	to the original model, and share the same ESelectNamesModel
	between the dialog and the address entry in the composer..
	(e_select_names_manager_get_cards): Removed.  It had been
	#if 0/#endif-ed out for a while.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_freeze): Added.
	(e_select_names_model_thaw): Added.
	(e_select_names_model_uncardify): Added.  If possible,
	"uncardifies" a specific model entry.
	(e_select_names_model_changed): Changed to pay attention
	to the freeze count.

	* gui/component/select-names/e-select-names-completion.c
	(clean_query_text): Strip leading/trailing whitespace from
	queries.

	* backend/ebook/e-destination.c (e_destination_uncardify): Added.
	Converts a card-associated destination into a text-associated
	destination w/ the e-mail address.
	(e_destination_list_to_vector): Added.  A convenience routine.
	(e_destination_freev): Added.  A convenience routine.
	(e_destination_touchv): Added.  I'm lazy.

2001-09-08  Chris Toshok  <toshok@ximian.com>

	(make_contact_editor_cb): show the right contact editor (the list
	editor for list cards).
	
2001-09-08  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names-popup.c
	(popup_menu_card): do the EDestination xml magic on email
	addresses we put in the popup.

2001-08-27  Zbigniew Chyla  <cyba@gnome.pl>

	* gui/component/addressbook.c (addressbook_factory_new_control):
	For every category:
	- set .translate to FALSE (e_categories_master_list_nth returns
	translated category name)
	- convert category name in UTF-8 to locale's encoding

2001-08-23  Zbigniew Chyla  <cyba@gnome.pl>

	* gui/component/select-names/e-select-names-popup.c
	(popup_menu_card): Fixed two bugs:
	- missing coversion of contact name to GTK+ locale,
	- passing dynamically created string (contact name) inside uiinfo struct
	to gnome-app-helper functions.
	Remember: these functions may change strings, trying to translate them!
	(popup_menu_nocard): Ditto

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

	* gui/component/addressbook-component.c: Removed unused factory
	variable.

2001-09-06  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-storage.c (notify_listener): new
	function, notify the bonobo listener.
	(remove_ldap_folder): track change to EvolutionStorage signal.
	(create_ldap_folder): same, and make sure the type is
	"ldap-contacts".
	(load_source_data): folders that we create should have
	"ldap-contacts" as their type.
	(addressbook_storage_add_source): same.

	* gui/component/addressbook-component.c: (folder_types): add
	"ldap-contacts", for display of ldap servers (they get their own
	icon, and their own name in the Create New Folder dialog.
	(create_view): use IS_CONTACT_TYPE since we support two folder
	types now.
	(create_folder): same.
	(remove_folder): same.
	(xfer_folder): same.

2001-09-06  Chris Toshok  <toshok@ximian.com>

	* gui/contact-editor/e-contact-editor.c: (pixmaps): change
	/Toolbar/ContactEditorSave to /Toolbar/ContactEditorSaveClose.

2001-09-06  Chris Toshok  <toshok@ximian.com>

	* gui/component/Makefile.am (INCLUDES): add -DEVOLUTION_IMAGESDIR.

	* gui/widgets/e-addressbook-view.c (card_deleted_cb): remove
	status messages from here.
	(e_addressbook_view_delete_selection): same.

	* gui/widgets/e-addressbook-model.c (sequence_complete): emit a
	NULL status message along with the stop_state_changed.  The null
	status message will clear the status bar for this view.

	* gui/component/addressbook.c (set_status_message): use the
	EvolutionActivityClient stuff.

	* backend/pas/pas-backend-ldap.c (view_destroy): remove status
	message for abandoning a search.
	(ldap_op_process_current): wrap status messages in _().
	(ldap_op_process): same.
	(create_card_handler): same, and remove the notify_status for ""
	and add a notify_complete call after the card is added.
	(remove_card_handler): same.
	(modify_card_handler): same.
	(poll_ldap): wrap status messages with _(), and remove the "Search
	Complete" message.
	(ldap_search_handler): wrap status message.

	* backend/pas/pas-backend-file.c (pas_backend_file_search): use
	_() on status messages, and make sure the last notify_* called is
	notify_complete.

2001-09-05  Ettore Perazzoli  <ettore@ximian.com>

	[Fix #958, ShellComponents should not be created by factories, for
	the addressbook.]

	* gui/component/addressbook-component.c
	(GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_FACTORY_ID): Removed.
	(GNOME_EVOLUTION_ADDRESSBOOK_COMPONENT_ID): New.
	(create_component): Renamed from `factory_fn'.  Just register the
	thing on OAF.
	(addressbook_component_factory_init): Just call it.

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Remove the
	ShellComponentFactory.

2001-09-04  Iain Holmes  <iain@ximian.com>

	* backend/ebook/evolution-vcard-importer.c (load_file_fn): Return FALSE
	if the file isn't a valid VCard file.

2001-08-05  Zbigniew Chyla  <cyba@gnome.pl>

	I18n fixes (mainly making buttons on the right side less Anglocentric :-)

	* backend/ebook/e-card-simple.c
	(field_data): Marked "name" and "short_name" fields for translation.
	(e_card_simple_get_name, e_card_simple_get_short_name): Return
	localized version of the name (using U_() macro).

	* gui/contact-editor/e-contact-editor.c (set_entry_changed_signals):
	Connect "changed" signal from "entry-web" entry to widget_changed.
	(changing this field wasn't making "Save and Close" button sensitive)

	* gui/widgets/Makefile.am (glade_DATA): Removed alphabet.glade.

	* gui/widgets/e-addressbook-view.c
	(button_labels, button_letters): New strings containing a list of
	labels and "values" of all buttons placed on the right side of the
	addressbook view (intended for localization).
	(struct LetterClosure): Changed the type of letter field to gunichar.
	(e_utf8_split): New function, similar to g_strsplit, but operates on
	UTF-8 strings.
	(jump_to_letter): Don't hardcode letters, build queries dynamically
	using UTF-8 and localized letters stored in button_letters.
	(connect_button): Removed.
	(create_alphabet): Don't use glade file, build buttons manually using
	(localized) labels from button_labels. Use (localized) values from
	button_letters when creating LetterClosure.

	* gui/widgets/e-minicard-view-widget.[ch]
	(e_minicard_view_widget_jump_to_letter): Changed the type of the
	second argument from char to gunichar.

	* gui/widgets/e-minicard-view.c
	(compare_to_utf_str): Renamed from compare_to_letter, now operates on
	UTF-8 string.
	(e_minicard_view_jump_to_letter): Changed the type of the second
	argument from char to gunichar + conversion to UTF-8 string.

	* gui/widgets/e-minicard-view.h
	(e_minicard_view_jump_to_letter): Changed the type of the second
	argument from char to gunichar.

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

	* backend/ebook/e-book.c (e_book_add_card, e_book_commit_card),
	backend/pas/pas-backend-file.c (do_create),
	backend/pas/pas-backend-ldap.c
	(create_card_handler, remove_card_handler, modify_card_handler,
	pas_backend_ldap_process_get_vcard, poll_ldap): Use
	e_card_get_vcard_assume_utf8 instead of e_card_get_vcard here
	since all internal communications and database storage are assumed
	to be utf8.

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h
	(e_card_simple_duplicate): Simplified this function considerably.
	(e_card_simple_get_vcard_assume_utf8): Added this function.

	* backend/ebook/e-card.c, backend/ebook/e-card.h (e_card_new,
	e_card_load_cards_from_file, e_card_load_cards_from_string): Made
	these functions pay attention to charset attributes.
	(e_card_new_with_default_charset,
	e_card_load_cards_from_file_with_default_charset,
	e_card_load_cards_from_string_with_default_charset): New functions
	that let you change the default charset from UTF-8.
	(e_card_get_vcard): Made this write out charset attributes when
	necessary.
	(e_card_get_vcard_assume_utf8): New function that writes out a
	card without writing out charset attributes.

	* backend/ebook/evolution-vcard-importer.c (book_open_cb),
	backend/ebook/load-gnomecard-addressbook.c (book_open_cb),
	backend/ebook/test-card.c (main),
	gui/component/addressbook-component.c
	(destination_folder_handle_drop), gui/contact-editor/test-editor.c
	(main), gui/contact-list-editor/e-contact-list-editor.c
	(table_drag_data_received_cb), gui/widgets/e-addressbook-view.c
	(selection_received), gui/widgets/e-minicard-control.c
	(pstream_load): Changed the default charset to be used here to
	ISO-8859-1.

	* backend/ebook/load-gnomecard-addressbook.c (add_card_cb),
	backend/ebook/load-pine-addressbook.c (add_card_cb),
	backend/ebook/test-client-list.c (get_cursor_cb),
	backend/ebook/test-client.c (get_cursor_cb, get_card_cb): Use
	e_card_get_vcard_assume_utf8 to print out testing strings.

	* gui/component/select-names/e-select-names-model.c,
	gui/component/select-names/e-select-names-model.h
	(e_select_names_model_contains): Changed this to be const
	EDestination *dest to fix a warning.

	* gui/contact-editor/e-contact-editor.c (e_contact_editor_init):
	Translate window title here.

2001-08-31  Zbigniew Chyla  <cyba@gnome.pl>

	* gui/component/addressbook-storage.c
	(addressbook_get_other_contact_storage): s/_/U_/

	* gui/widgets/e-addressbook-reflow-adapter.c (addressbook_compare):
	Use g_utf8_collate.

	* gui/widgets/e-minicard.c (e_minicard_compare):
	Ditto.

	* printing/e-contact-print.c (card_compare):
	Ditto.

2001-08-29  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_clicked): Use e_select_names_model_merge to
	combine the selected names with any existing ones.  This causes
	you to not lose addresses typed directly into the entry while the
	SelectNames dialog is up. (Bug #8058)

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_merge): Merge the contents of one
	ESelectNamesModel into another, avoiding duplicates.

	* backend/ebook/e-destination.c (e_destination_equal): Added.
	Determines if two destinations appear to refer to the same
	recipient.

	* backend/ebook/e-card.c (e_card_list_send): Added cast to
	g_free args to silence compiler warnings.

	* gui/contact-editor/e-contact-quick-add.c (quick_add_set_name):
	Paranoia.  Check that name != qa->name.
	(quick_add_set_email): Check that email != qa->email.
	(ce_have_book): Store the QuickAdd data structure in object data,
	so that we can be extra-careful and avoid having a dangling
	pointer floating around out somewhere as the closure for a signal.
	Fixes bug #8155, I think.
	(card_added_cb): Clear object data to ensure single unref.
	(editor_closed_cb): Clear object data to ensure single unref.

	* gui/component/select-names/e-select-names-completion.c
	(book_query_score): Make sure that comp->priv->query_text isn't
	NULL.  (Fixes bug #8195)

	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):
	This function can be re-entrant during the signal emission; Added
	extra ref/unrefs and checks to avoid problems if this happens.
	This is similar to my recent changes to
	e_book_view_listener_check_queue.  (Fixes bug #7400)

2001-08-27  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c: Get rid of a warning by
	initializing the closing NULL element in folder_types correctly.

	* gui/component/select-names/e-select-names.c: Updated to match
	the studlyCapsification of attributes in shell/Evolution*.idl.

2001-08-27  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(sexp_file_as): Added.  Generated queries against file_as.
	(match_file_as): Added.  Match results of queries against
	file_as. (Bug #8152)

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_check_queue): Added ref/unref pair to make
	sure that our listener doesn't get finalized during the signal
	emission and leave us with a dangling pointer. (Bug #7661)

	* backend/ebook/e-card.c (e_card_list_send): Removed some debugging
	spew that I left in by mistake.

	* gui/widgets/e-addressbook-model.c (create_card): Removed debugging
	spew.

	* backend/ebook/e-card.c (e_card_list_send): Do the right thing if
	the card we are trying to send to is a contact list. (Bug #6580)

2001-08-27  Zbigniew Chyla  <cyba@gnome.pl>

	* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):
	Display localized status string (added missing _()).

2001-08-24  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-destination.c (e_destination_set_card): Put a
	freeze/thaw around our the set of operations that changes the
	internal state of our card, so 'changed' signal callbacks won't be
	invoked on a card in an intermediary state.  This fixes the bug
	that was causing the e-mail addresses in cards to be blank when
	replying to a message.  (An unexpected side-effect of toshok's
	change on 8/22 to make sure that priv->email != NULL).
	(e_destination_get_name): Code slightly rearranged for (IMO)
	clarity.

2001-08-23  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard.c (e_minicard_event): add
	BUTTON_PRESS_MASK so double clicks still work.

2001-08-23  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (addressbook_query_changed): switch
	"full_name" to "x-evolution-any-field" in all the queries where we
	want to match all cards, since the backends universally handle
	this special case more efficiently.

2001-08-22  Jon Trowbridge  <trow@ximian.com>

	* gui/contact-list-editor/e-contact-list-editor.c (extract_info):
	In the GUI, the toggle is labelled "hide addresses", not "show
	addresses" -- so we have to reverse the boolean value we read in.
	(fill_in_info): Same bug as before: since the GUI reads "hide", we
	have to initialize the toggle to '!show_addresses', not
	'show_addresses'.

	* backend/ebook/e-destination.c
	(e_destination_list_show_addresses): Added.
	(e_destination_xml_encode): Encode the value of
	e_destination_list_show_addresses into the XML.
	(e_destination_xml_decode): Read and store the "show_addresses"
	flag.

2001-08-22  jacob berkman  <jacob@ximian.com>

	* gui/component/e-address-popup.c (emit_event): emit an event from
	our event source
	(contact_editor_cb): emit a destroy event so our control frame can
	be destroyed.
	(edit_contact_info_cb): emit a hide event so our control frame can
	be hidden
	(e_address_popup_cardify):
	(add_contacts_cb): emit the destroy event
	(e_address_popup_factory_new_control): don't unref our object at
	widget destroy time as that was really really broken
	(e_address_popup_factory_new_control): create an event source and
	aggregate ourself with it

	* gui/contact-editor/e-contact-editor.c (enable_writable_fields):
	display a nicer warning when we can't find a widget for a given
	field
	(e_contact_editor_raise): only raise if there is a window

	* gui/contact-editor/contact-editor.glade: name some widgets that
	got unnamed, and set the first entry as defaultable

	* gui/contact-editor/e-contact-editor.c: envelope printing is
	disabled in 1.0

2001-08-22  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-destination.c (e_destination_get_email): make
	sure we don't get into a situation where priv->email == NULL.

2001-08-21  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard.c (e_minicard_event): if we're dragging,
	drag_button_down won't be true in the BUTTON_RELEASE case, since
	we set it to false in MOTION_NOTIFY once the threshold is reached.
	(e_minicard_drag_end): remove this function, since it was needed
	to work around a bug in gnome-canvas.
	
2001-08-20  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_addressbook_create_ebook_table): Wrap our addressbook table
	adapter in an ETableWithout, so that we can make addresses appear
	and disappear when we remove/add them to the section lists
	(To/Cc/Bcc) on the right of the dialog.
	(real_add_address_cb): When we add an address, hide it in the main
	list.
	(e_select_names_init): Get pointer to our without table from the
	table's object data, and store it.
	(remove_address): When we remove an address, show it in the main
	list.
	(card_key): Added.  Allocate a unique key from an ECard.
	(esn_get_key_fn): Added.  Callback for ETableWithout.
	(esn_dup_key_fn): Added.  Callback for ETableWithout.
	(esn_free_gotten_key_fn): Added.  Callback for ETableWithout.
	(esn_free_duped_key_fn): Added.  Callback for ETableWithout.

	* backend/ebook/e-card-simple.c (e_card_simple_get): Changed
	E_CARD_SIMPLE_FIELD_NAME_OR_ORG to first try the FILE_AS
	type.  This allows the cards in the ESelectName dialog to
	appear in proper sort order (i.e. as 'Doe, John' rather than
	'John Doe').  Fixes ximian #6002.

2001-08-20  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-reflow-adapter.c
	(e_addressbook_reflow_adapter_class_init): fix arg info - we're
	only passing 1 GTK_TYPE_POINTER arg, not 2.

	* gui/widgets/e-minicard.c (e_minicard_event): lots of fixes for
	DnD.  For GDK_BUTTON_PRESS, we grab immediately.  For
	GDK_BUTTON_MOTION, we start the drag after a certain threshold,
	and connect to the "drag_end" signal on our canvas so we'll know
	when the drag is complete.  For GDK_BUTTON_RELEASE, we release the
	grab if we were dragging and get the event.
	(e_minicard_drag_end): new function, just remove the pointer/gtk
	grabs and disconnect.

	* gui/widgets/e-minicard.h (struct _EMinicard): add "gint
	drag_button"

2001-08-20  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_changes_foreach_key): use DB_NOTFOUND const
	
2001-08-20  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_get_changes): null out card_sexp so that
	we don't crash when copying

2001-08-20  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c: fix warnings, get compiling again

	* conduit/address-conduit-config.h: remove c/p typos

	* conduit/address-conduit.h: ditto

	* conduit/Makefile.am: link against the static camel

2001-08-20  Damon Chaplin  <damon@ximian.com>

	* gui/contact-editor/e-contact-editor.c: use bigger Save icon for
	toolbar. Used Delete icon in menu.

	* gui/component/addressbook.c: use 'Save As' icon rather than 'Save'
	as it seems more appropriate. Also added delete icon for menu.

2001-08-19  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c: Update the folder list to
	include a display name and a description.

2001-08-19  Damon Chaplin  <damon@ximian.com>

	* gui/component/addressbook.c: use new Cut/Copy/Paste/Save/Search
	icons.

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

	* gui/component/addressbook.c (set_folder_bar_label),
	gui/widgets/e-addressbook-model.c,
	gui/widgets/e-addressbook-model.h (update_folder_bar_message),
	gui/widgets/e-addressbook-view.c, gui/widgets/e-addressbook-view.h
	(folder_bar_message): Set the folder bar message here.  Fixes
	Ximian bug #4670.

	* gui/component/select-names/e-select-names-model.c (SEPLEN): Use
	strlen(SEPARATOR) here so that if the separator changes the length
	will work properly.

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

	* gui/contact-editor/fulladdr.glade: Added full country list.
	Fixes Ximian bug #5123.

2001-08-18  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c: Hook up `delete-message.png' as the
	icon for "ContactDelete".
	* gui/contact-editor/e-contact-editor.c: Likewise.

2001-08-17  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-storage.h: add prototype for
	addressbook_get_other_contact_storage.

	* gui/component/addressbook-storage.c
	(addressbook_get_other_contact_storage): rename register_storage
	to this, and return the EvolutionStorage.
	(load_source_data): register_storage =>
	addressbook_get_other_contact_storage.
	(addressbook_storage_add_source): register_storage =>
	addressbook_get_other_contact_storage.

2001-08-17  Chris Toshok  <toshok@ximian.com>

	* gui/contact-editor/e-contact-editor.c
	(set_entry_changed_signals): connect to the "changed" signal on
	"entry-web" to update command state.

2001-08-17  Chris Toshok  <toshok@ximian.com>

	* gui/contact-list-editor/e-contact-list-editor.c (list_added_cb):
	call e_card_set_id on the list's card so we can continue to use
	this dialog.  also, call command_state_changed if we aren't
	closing the dialog so the toolbar is properly sensitized.
	(list_deleted_cb): always close the dialog after we successfully
	delete a list.

	* gui/contact-editor/e-contact-editor.c (card_added_cb): call
	e_card_set_id on the card so we can continue to use this dialog
	(to modify or delete the card.)
	(card_deleted_cb): always close the dialog after we successfully
	delete a card.

2001-08-17  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (addressbook_query_changed): call
	e_sexp_encode_string on the search string the user types in so it
	doesn't break sexp parsing in the wombat.

2001-08-17  Damon Chaplin  <damon@ximian.com>

	* gui/component/addressbook.c: changed to new print icon.

2001-08-17  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names.c: (struct
	ESelectNamesFolder): rename physical_uri to uri, since it includes
	the addressbook.db for file: uris.
	(e_select_names_folder_free): physical_uri => uri.
	(e_select_names_option_activated): physical_uri => uri, and we
	don't need to strdup_printf "addressbook.db" onto the end anymore.
	(new_folder): if the physical_uri is a file: uri, append
	/addressbook.db onto it.
	(hookup_listener): new function, split out lots of code from
	e_select_names_hookup_shell_listener.
	(e_select_names_hookup_shell_listeners): rename
	e_select_names_hookup_shell_listener to this, and hookup both the
	local and "Other Contacts" listener, using hookup_listener.
	(e_select_names_destroy): disconnect from the
	other_contacts_listener and unref it.

	* gui/component/select-names/e-select-names.h (struct
	_ESelectNames): add a listener for Other Contacts, and rename
	"listener" to "local_listener."

2001-08-17  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_seq_complete_cb): If we get the
	"sequence_complete" signal when we aren't searching, it means the
	addressbook changed out from under us.  Clear the search cache, so
	that future completion requests won't use the out-of-date cached
	data.  Also, don't unref book_view... we leave the EBookView open
	so that we can catch these addressbook changes.
	(e_select_names_completion_do_query): Don't use the book_view
	being non-NULL as a sign that another query is still running.
	(e_select_names_completion_got_book_view_cb): Properly unref any
	previous value in book_view.

2001-08-17  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-reflow-adapter.c
	(e_addressbook_reflow_adapter_right_click),
	gui/widgets/e-addressbook-view.c (table_right_click): Changed the
	messages here in the right click menus.

2001-08-17  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (view_destroy): unref our
	card_sexp.
	(create_card_handler): make sure to set the id of the vcard so it
	gets properly transmitted back to the BookView, and notify all
	matching BookViews to add the created card.
	(remove_card_handler): notify all matching BookViews to remove the
	card.
	(modify_card_handler): notify all matching BookViews to modify the
	card.
	(pas_backend_ldap_process_get_book_view): init card_sexp based on
	the view's search.

2001-08-17  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_book_view_copy): use card_sexp.
	(pas_backend_file_book_view_free): same.
	(vcard_matches_search): use the new pas_backend_card_sexp_match_vcard call.
	(pas_backend_file_search): use card_sexp.
	(pas_backend_file_process_get_book_view): same.

	* backend/pas/Makefile.am (libpas_a_SOURCES): add
	pas-backend-card-sexp.[ch].

2001-08-17  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook-component.c (factory_fn): Added code
	so the user can create a new contact or contact list from anywhere
	in evolution.

2001-08-16  Jeffrey Stedfast  <fejj@ximian.com>

	* backend/pas/evolutionperson.schema: Added a closing paren.

2001-08-16  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_handle_request): Renamed from _begin to
	match changes in gal 0.10.99.3.

	* gui/contact-editor/e-contact-quick-add.c (e_contact_quick_add): 
	Check that name != NULL before we start messing with it.
	(Fixes bug #7329)

2001-08-16  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(match_nickname): Boost scoring on an exact nickname match.
	Manually addressify match.
	(match_name): Manually addressify matches.
	(book_query_score): Remove automatic addressification.

	* gui/component/addressbook.c (addressbook_query_changed): Minor
	tweak to avoid a crash if we have a negative subid with id
	ESB_CATEGORY.  This should never happen.
	(addressbook_menu_activated): Reset the entry/option when we
	select "Clear".
	Some changes to reflect renaming in ESearchBar.

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_set_property_fn): Cardify after importing destinations.
	This might fix a problem that Damon is having.
 
2001-08-15  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.glade: set title of initial
	dialog to Addressbook Sources (bug #6704).

2001-08-15  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-storage.c (create_ldap_folder): don't
	let people add subdirs in the ldap server storage - everything is
	toplevel there.

2001-08-14  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_get_vcard): implement using
	search_for_dn.

2001-08-14  Federico Mena Quintero  <federico@ximian.com>

	* gui/component/addressbook.c (addressbook_factory_new_control):
	Tell the search bar to translate the subitem texts.

2001-08-14  Jon Trowbridge  <trow@ximian.com>

	* gui/component/addressbook.c (addressbook_factory_new_control):
	Add "Any Category" option for category searches.
	(addressbook_query_changed): Do the right thing on an
	"Any Category" search.

2001-08-14  Dan Winship  <danw@ximian.com>

	* backend/pas/pas-backend-ldap.c: Fix up to match the
	pas_book_new/get_vcard changes.

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

	* gui/merging/e-card-merging-book-commit-duplicate-detected.glade:
	Got rid of an extraneous _ here.

	* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):
	Changed Canceled to Cancelled here.  Fixes Ximian bug #2465.

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

	* backend/pas/pas-book.c (pas_book_respond_get_vcard): Oops,
	forgot to write this function.

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

	* gui/contact-editor/contact-editor.glade: Added focus targets
	here.  Fixes part of Ximian bug #5843.

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

	* gui/contact-editor/e-contact-editor.c (e_contact_editor_init):
	Grab focus here.  Fixes Ximian bug #2265.

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

	* gui/component/addressbook.c (addressbook_factory_new_control): 
	(addressbook_query_changed): Fixed two const warnings here.

	* printing/e-contact-print-envelope.c,
	printing/e-contact-print-envelope.h: Fixed some missing includes
	here.

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

	* backend/ebook/e-book-view.c (add_book_iterator): Call
	e_card_set_book here.

	* backend/ebook/e-book.c (e_book_do_response_get_vcard): Call
	e_card_set_book here.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Pulled out the
	part where the uri is made part of the uid.  Made uri a separate
	field.  Fixes Ximian bug #6490.

	* backend/ebook/e-destination.c, backend/ebook/e-destination.h:
	Change this to use ECard's split uids and uris.

2001-08-13  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (add_to_supported_fields): don't
	g_strdup the stuff we're passing into e_list_append, since it does
	the copy for us.
	(check_schema_support): don't initialize supported_fields list
	here, since there's a gross case where the programmer/user can
	bring up the contact editor before the connection stuff is
	finished, and we don't want to crash.
	(pas_backend_ldap_init): move it here to we can guarantee it's
	there. (bug #6546).

2001-08-13  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c
	(addressbook_source_dialog_set_source): don't access source->auth
	if source == NULL (bug #7086).

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

	* backend/ebook/e-book-listener.c,
	backend/ebook/e-book-listener.h, backend/ebook/e-book.c,
	backend/ebook/e-book.h, backend/idl/addressbook.idl,
	backend/pas/pas-backend-file.c, backend/pas/pas-book.c,
	backend/pas/pas-book.h: Changed get_card to be asyncronous.

	* backend/ebook/e-card.c, backend/ebook/test-client.c: Changed
	these to deal with the new get_card functionality.

2001-08-11  Kjartan Maraas  <kmaraas@gnome.org>

	* gui/component/select-names/e-select-names.c: Mark a string for translation.
	* This fixes bug #7052
	* printing/e-contact-print.h: Add headers to make it stand on itw own.
	* printing/e-contact-print.c: Marked some strings for translation.
	* printing/e-contact-print-envelope.c: Same here.
	
2001-08-10  Jon Trowbridge  <trow@ximian.com>

	* gui/contact-editor/e-contact-quick-add.c (e_contact_quick_add):
	Remove single- or double-quotes from names before sticking them
	into the addressbook. (Bug #6499)

	* gui/component/addressbook.c (addressbook_query_changed):
	Properly handle "Category is" queries by checking the search bar
	suboption.
	(addressbook_factory_new_control): Attach subitems corresponding
	to all wombat categories to the "Category is" ESearchBarItem.

	* gui/component/addressbook.c: Set the ESearchBarItem
	subitems explicitly to NULL.

2001-08-10  Anna Marie Dirks <anna@ximian.com>
	 * gui/component/select-names/select-names.glade: did a little
	packing-magic to get the two tables at bottom of this dialog
	to seem to line up. 

	*gui/component/select-names/e-select-names.c: changed the title
	of this dialog to "Select Contacts from Addressbook". 

2001-08-09  Anna Marie Dirks <anna@ximian.com>
        * gui/component/select-names/select-names.glade: redesigned
        this dialog to fix bug #6815. 

	*gui/component/select-names/e-select-names.c: connected the
	widgets (or one of them anyway. clahey did the rest) for my
	new and lovely glade file.
	
2001-08-09  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c: remove passwd_cb.

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

	* gui/component/select-names/e-select-names-text-model.c
	This change is dedicated to Jacob Berkman.
	(e_select_names_text_model_insert_length): If the last character
	we inserted was a "magic comma", remember its position.
	(e_select_names_text_model_delete): If the last character we
	inserted was a "magic comma", and if the next thing we do is to
	hit backspace, delete both the comma and the extra whitespace we
	added.
	(e_select_names_text_model_init): Initialize our last magic comma
	position.

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

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_create_entry): Hook up some magic to
	(basically) cardify an entry on focus-out.  (What we do is actually
	more complicated than that.)

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_set_property_fn): After we set an entry's text, try to
	cardify it.  We need to do this so that (for example) reply
	e-mails get properly cardified.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_duplicate): Use e_select_names_model_append,
	rather than manipulating lists directly.
	(e_select_names_model_insert): Connect "changed" signal proxy for
	added EDestination.
	(e_select_names_model_append): Ditto.
	(e_select_names_model_replace): Ditto, and disconnect signals for
	replaced EDestination.
	(e_select_names_model_delete): Ditto on the disconnection.
	(e_select_names_model_delete_all): Ditto.
	(e_select_names_model_cardify): Added.  Try to cardify a specified
	EDestination.
	(e_select_names_model_cancel_cardify): Added.  Cancel the pending
	cardification of a single EDestination.
	(e_select_names_model_cardify_all): Added.  Cardify all of the
	EDestinations in the model.
	(e_select_names_model_cancel_cardify_all): Added.  Cancel's any
	and all pending cardifications.

	* backend/ebook/e-destination.c (e_destination_class_init): Added
	"changed" and "cardified" signals.
	(e_destination_freeze): Added (static).
	(e_destination_thaw): Added (static).
	(e_destination_clear_card): Reset allow_cardify and
	cannot_cardify, cancel any pending cardifications, and emit the
	"changed" signal.
	(e_destination_clear_strings): Emit the "changed" signal.
	(e_destination_clear): Do freeze/thaw to prevent multiple signal
	emissions.
	(e_destination_set_card): Check that the card we are setting is
	not equal to the current card, and emit the "changed" signal if we
	are actually changing.
	(e_destination_set_card_uri): Emit "changed" signal, if necessary.
	(e_destination_set_name): Emit "changed" signal, if necessary.
	(e_destination_set_email): Emit "changed" signal, if necessary.
	(e_destination_set_html_mail_pref): Emit "changed" signal, if
	necessary.
	(use_card_cb): If we've just loaded/set the ECard, emit the
	"changed" signal.
	(e_destination_set_raw): Emit "changed" signal, if necessary.
	(e_destination_allow_cardification): Added.
	(e_destination_set_allow_cardification): Added.
	(e_destination_cardify): Added.  Tries to automatically convert
	a string-based EDestination to one based on an ECard.
	(e_destination_cardify_delayed): Added.  Cardifies in a timeout.
	(e_destination_cancel_cardify): Added.  Cancels any pending
	cardifications.
	(e_destination_xml_decode): Added freeze/thaw.

	* backend/ebook/e-book-util.c (e_book_nickname_query): Added.  A
	canned simple query for nicknames.

	* backend/ebook/e-card.c (e_card_email_find_number): Added.  Given
	a card and an string containing an email address, return the index
	number of the address inside of the card, or -1 if the address is
	not found.

2001-08-09  Chris Toshok  <toshok@ximian.com>

	[ Fixes ximian bugs #5080, #6021, #6704, #6705 ] 
	
	* gui/component/addressbook.c (book_open_cb): create our own
	dialog that prompts for both the email address and the password.
	the email address is stored in the source and filled in for the
	user after the first time they enter one and press OK.

	* gui/component/addressbook-storage.c (create_ldap_folder): has a
	return value, not a int* parameter.
	(create_ldap_folder): new function, we can create ldap servers
	from the File->New->Folder menu item now.
	(register_storage): hook up the "create_folder" signal.
	(addressbook_storage_init_source_uri): remove the file case, we
	only build ldap uris here.
	(load_source_data): remove the file source stuff, and handle
	"emailaddr".
	(save_source_data): call ldap_source_foreach directly.
	(addressbook_source_free): remove file source stuff.
	(addressbook_source_copy): same.

	* gui/component/addressbook-storage.h: get rid of all the file
	source stuff from AddressbookSource, since this is only being used
	for ldap servers.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_authenticate_user): look up the ldap
	entry based on the provided email address and use the resulting
	DN/passwd to authenticate.

	* gui/component/addressbook-config.c: pretty much gutted to make
	it work with the new UI.

	* gui/component/addressbook-config.glade: new version from anna.
	
2001-08-09  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c (SPEC): Upped the minimum width
	on all addressbook columns to 75.  Fixes Ximian bug #2773.

2001-08-08  Chris Toshok  <toshok@ximian.com>

	* gui/contact-editor/e-contact-quick-add.c (ce_have_book): mark
	the dialog as changed so the save button is immediately available.

	* gui/contact-editor/e-contact-editor.c (card_modified_cb): once
	we save reset the change flag to false if we aren't closing the
	dialog.
	(card_added_cb): same.
	(e_contact_editor_class_init): add a "changed" arg.
	(e_contact_editor_set_arg): add setter for "changed".
	(e_contact_editor_get_arg): add getter for "changed".

2001-08-08  Chris Toshok  <toshok@ximian.com>

	* gui/contact-editor/e-contact-quick-add.c (ce_have_book): better
	to assume that we can write to the local addressbook than that we
	can't write to it :)

2001-08-08  Chris Toshok  <toshok@ximian.com>

	* gui/contact-list-editor/e-contact-list-editor.c (create_ui):
	call e_pixmap_update so we can use the same save/save-as pixmaps
	as the contact editor.

2001-08-08  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-reflow-adapter.c (open_card): new
	function, used by the context menu.
	(e_addressbook_reflow_adapter_right_click): put "Open" at the top
	of the menu.  also, disable "Delete" if the addressbook isn't
	writable.

2001-08-08  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (rfc2254_escape): escape *, \, (,
	and ), as per rfc2254.
	(func_contains): escape the string.
	(func_is): same.
	(func_beginswith): same.
	(func_endswith): same.

2001-08-08  Nat Friedman  <nat@ximian.com>

	* gui/widgets/e-addressbook-reflow-adapter.c (print_envelope): If 0'd out
	since Envelope printing is disabled for 1.0.	
	* gui/widgets/e-addressbook-view.c (print_envelope): Likewise.
	* gui/contact-editor/e-contact-editor.c (print_envelope_cb): Likewise.

	* gui/widgets/e-addressbook-reflow-adapter.c
	(e_addressbook_reflow_adapter_right_click): Removed "Print
	Envelope" menu item.
	* gui/widgets/e-addressbook-view.c (table_right_click): Likewise.
	* gui/contact-editor/e-contact-editor.c	(verbs): Likewise.

2001-08-07  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-storage.c (remove_ldap_folder): ifdef
	this HAVE_LDAP.

2001-08-07  Chris Toshok  <toshok@ximian.com>

	* gui/search/e-addressbook-search-dialog.c
	(e_addressbook_search_dialog_init): set the title of the window to
	"Advanced Search".

2001-08-07  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (search_cb): pass view->view instead
	of the EBook.
	(addressbook_search_menu_items): remove E_FILTERBAR_ADVANCED.
	(addressbook_menu_activated): remove E_FILTERBAR_ADVANCED.
	(addressbook_search_option_items): add "Advanced..." here.
	(addressbook_query_changed): add special handling for Advanced...

	* gui/search/e-addressbook-search-dialog.h (struct
	_EAddressbookSearchDialog): add EAddressbookView and remove the
	model/adapter fields.  Also fix prototype of
	e_addressbook_search_dialog_new.

	* gui/search/e-addressbook-search-dialog.c
	(e_addressbook_search_dialog_class_init): get rid of
	set_arg/get_arg.
	(button_press): set the query on the EAddressbookView, and always
	close the dialog.
	(e_addressbook_search_dialog_init): get rid of the minicard view,
	and pack the other widgets accordingly.
	(e_addressbook_search_dialog_new): pass EAddressbookView instead
	of EBook.
	(e_addressbook_search_dialog_destroy): remove model/adapter stuff.

2001-08-07  Chris Toshok  <toshok@ximian.com>

	[ Fixes bug #5066 ]
	* gui/component/addressbook-storage.c (remove_ldap_folder): new
	function, remove the source.
	(register_storage): connect to the "remove_folder" signal so we
	know when to remove the folder.

2001-08-07  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (build_card_from_entry): use
	g_strcasecmp since ldap attribute names are not case sensitive.

2001-08-07  Chris Toshok  <toshok@ximian.com>

	* gui/contact-list-editor/e-contact-list-editor.c
	(table_drag_data_received_cb): make sure we update the changed
	state if a successful drop happens.

2001-08-07  Jason Leach  <jleach@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_init): Make the OK button the keyboard default
	instead of Cancel.  Bug #4942.

2001-08-06  Radek Doulik  <rodo@ximian.com>

	* backend/ebook/e-book.c (e_book_op_free): new EBookOp destructor
	(e_book_unqueue_op): use e_book_op_free
	(e_book_do_response_create_card): ditto
	(e_book_do_response_generic): ditto
	(e_book_do_response_get_cursor): ditto
	(e_book_do_response_get_view): ditto
	(e_book_do_response_get_changes): ditto
	(e_book_do_response_open): ditto
	(e_book_do_response_get_supported_fields): ditto

2001-08-05  Radek Doulik  <rodo@ximian.com>

	* backend/ebook/e-book.c (e_book_do_response_get_view): set
	op->listener to NULL to catch possible use of freed op
	(e_book_do_response_get_changes): ditto

	* backend/ebook/e-book-view-listener.c
	   (e_book_view_listener_check_queue): this callback could be (and
	   indeed is) called from signal emited above, 
	   signal handler could call e_book_view_listener_stop, so we need to check
	   if idle is still set and if not we don't want to unref again

2001-08-04  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-compare.c (e_card_compare_name): Made it so
	that if there's one less match than possible compares are
	considered more VAGUE.  Fixes Ximian bug #3400.

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

	* gui/component/select-names/e-select-names.c
	(e_select_names_hookup_shell_listener): Check for storage != NULL
	here.  This shouldn't come up unless addressbook has crashed
	previously within this session of evolution, but this is just a
	bit of insurance.  Fixes Ximian bug #3699.

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

	* backend/ebook/e-card.c (e_card_name_match_string): Changed the
	criteria of whether the first part of each iteration matched or
	the second one did.  Before it got it wrong sometimes and caused
	the pointer to jump off the end of the array.  Fixes Ximian bug
	#4674.

2001-08-03  Jason Leach  <jleach@ximian.com>

	* gui/component/addressbook-storage.c (load_source_data): Update
	for EvolutionStorage API changes.
	(addressbook_storage_add_source): Ditto.

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

	* gui/widgets/e-addressbook-view.c (jump_to_letter): Made this
	change the query based on which letter is clicked.  Fixes Ximian
	bug #2202.

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

	* gui/component/addressbook.c (addressbook_factory_new_control):
	Fixed warnings here.

	* gui/component/select-names/e-select-names-completion.c
	(hash_cleanup_fn): Removed this unused function.

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

	* backend/ebook/e-card-simple.c (e_card_simple_sync_card,
	fill_in_info): Made the list of E_CARD_PHONE types in
	phone_correspondences more complete by adding the new 5
	E_CARD_PHONE types.  Also, made it a bit less restrictive for some
	types (E_CARD_PHONE_HOME will actually match
	E_CARD_SIMPLE_PHONE_ID_HOME now.)  Made e_card_simple_sync_card
	and fill_in_info search for an exact match in the list of
	phone_correspondences and then look for a partial match.  Got rid
	of not going forward when doing a remove from an EList since EList
	handles this case automatically.

	* backend/ebook/e-card-types.h: Added E_CARD_PHONE types for
	assistant, callback, radio, telex, and ttytdd.

	* backend/ebook/e-card.c (get_phone_flags, set_phone_flags):
	Handle the new E_CARD_PHONE types.

2001-08-02  Jon Trowbridge  <trow@ximian.com>

	* printing/Makefile.am (ecpsdir): Add camel dependency.

	* gui/component/Makefile.am: Add camel dependency.

	* backend/ebook/Makefile.am: Add camel dependency.

	* gui/component/addressbook-factory.c (main): Properly init camel.

	* backend/ebook/e-destination.c (e_destination_clear_strings):
	Clear ->raw.
	(e_destination_is_empty): We aren't empty if ->raw is set..
	(e_destination_set_raw): Replaces e_destination_set_string.
	(e_destination_get_name): Use camel's parser to extract the name
	from ->raw.
	(e_destination_get_email): Use camel's parser to extract the email
	address from ->raw.
	(e_destination_get_address): Use camel to produce properly quoted,
	RFC-compliant addresses.  Thanks camel! (Bug #5860)

	* gui/component/select-names/e-select-names-completion.c
	(emailify_match): Always append an e-mail address, as long as it
	doesn't have one already at it's beginning or end.  Don't limit
	self to just emailifying entries tied to cards with multiple
	addresses.  (I didn't really want to do this, but people seem to
	like keeping multiple cards for the same person, and other
	solutions (like scanning all matches for duplicate names, and only
	emailifying those) just seemed like way too much work for such a
	limited payoff.)

	* gui/component/select-names/e-select-names-text-model.c:
	s/e_destination_set_string/e_destination_set_raw/.

	* gui/component/select-names/e-select-names-popup.c
	(popup_menu_card): Quote _'s in our popup menus, so that "foo_bar"
	doesn't get displayed as "foobar" w/ the 'b' underlined. (Bug
	#5558)
	(popup_menu_nocard): Ditto.

2001-08-02  Jason Leach  <jleach@ximian.com>

	* gui/component/addressbook.c (addressbook_factory_new_control):
	Removed some extra padding and pack the addressbook view into a
	frame with inward shadowing, just because it looks prettier.

	* gui/contact-editor/e-contact-editor.c: Use the updated Save,
	Save As, and Print icons for the menus and toolbar.

2001-08-02  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook.c: Added ContactsSaveAsVCard,
	ContactsSendContactToOther, and ContactsSendMessageToContact verbs
	here.

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h (e_addressbook_view_save_as,
	e_addressbook_view_send, e_addressbook_view_send_to): New
	functions to allow outside users to cause the addressbook to save,
	send, or send a message to its selection.

2001-08-01  Christopher James Lahey  <clahey@ximian.com>

	* contact-editor/.cvsignore: Removed this file from this unused
	directory.

2001-08-01  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/Makefile.am: Added file-exists.glade.

	* gui/contact-editor/e-contact-save-as.c (file_exists),
	gui/contact-editor/file-exists.glade: Added a dialog to ask the
	user whether to replace an already existing file.  Mostly from a
	patch by Jos Dehaes.  Fixes Ximian bug #2231.

2001-08-01  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_check_queue): Removed thrash checking code
	here since thrashing shouldn't happen now that we've cleaned this
	up some.

	* backend/ebook/e-book.c (e_book_do_response_get_view): Properly
	handle cases where construction fails.

2001-07-30  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/evolution-vcard-importer.c: Added #include
	<e-util/e-path.h>.

2001-07-23  Zbigniew Chyla  <cyba@gnome.pl>

	* gui/component/addressbook-config.c (addressbook_source_dialog):
	Convert translated string to UTF8 before calling put_html.

2001-07-30  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_do_query): Properly handle the case
	where our "cleaned" completion is the empty string.  This happens,
	for example, if the query text is the string "\"".  (Bug #5610).

	* backend/ebook/e-destination.c (e_destination_get_address_textv):
	Reassure fejj that I'm not doing something stupid here.
	(e_destination_get_address): Fix address quoting.  This is a
	stop-gap measure until I can change this code to use Camel's
	superior address-handling routines.  (Also Bug #5610)

2001-07-30  Jason Leach  <jleach@ximian.com>

	* gui/component/addressbook-storage.c (load_source_data): Fix a
	return value bug, to make it so if it fails to load an
	addressbook-sources.xml file (either a parse error or it doesn't
	exist for example), it deregisters the storage.
	(register_storage): Don't make a storage for users who don't have
	LDAP support built in.  Bug #1950.

2001-07-30  Frederic Crozat  <fcrozat@mandrakesoft.com>

	* addressbook/gui/component/addressbook-factory.c: Fix crashes
	when gtkhtml is compiled with gconf support

2001-07-27  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: Tidy ldadds

2001-07-26  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-bonobo.c: Fixing a
	small, stupid mistake; use e_select_names_model_get_textification
	for the getter for "text".

	* backend/ebook/e-card.c: Removed some debugging chatter.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_create_entry): Store the completion
	handler in the entry's object data.

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Added support for getting "destinations"
	and "allow_contact_lists" properties.
	(entry_set_property_fn): Added support for setting "destinations"
	and "allow_contact_lists" properties.
	(impl_SelectNames_get_entry_for_section): Added definitions for
	"destinations" and "allow_contact_lists" properties.

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_get_match_contact_lists): Added.
	(e_select_names_completion_set_match_contact_lists): Added.
	Controls whether contact lists are offered as options during
	completion.
	(book_query_process_card_list): Check if match_contact_lists
	is set before (duh!) matching on a contact list.
	(e_select_names_completion_init): Set match_contact_lists
	to TRUE by default.

2001-07-25  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (func_contains): change the way
	x-evolution-any-field is converted to an ldap query.  it used to
	be we'd nest queries like: (|(|(|(foo=*x*))(bar=*x*))(baz=*x*)).
	now we build it like: (|(foo=*x*)(bar=*x*)(baz=*x*)).  much more
	efficient (both in the building, and on the server side no doubt).

2001-07-25  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-destination.c (e_destination_get_name): Properly dup
	the results of e_destination_get_email.

	* gui/component/select-names/e-select-names-popup.c
	(e_select_names_popup): Check that our destination isn't empty
	before building our popup. (Bug #5250)

	* backend/ebook/e-destination.c (e_destination_is_empty): Made
	argument const.

2001-07-24  Jon Trowbridge  <trow@ximian.com>

	* gui/contact-list-editor/e-contact-list-model.c: Added checks
	for all of the args of the exposed functions, so that
	we won't crash on bad inputs.  (Related to bug #4856.)

2001-07-24  Jason Leach  <jleach@ximian.com>

	* gui/merging/e-card-duplicate-detected.glade: "_Add Anyway" to
	"Add Anyway".

2001-07-24  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-destination.c (e_destination_get_name): Added
	fallbacks for the name in the case of an e-card, to avoid the
	"nameless contact" bug.

2001-07-24  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard.c (remodel): need the EDestination magic
	here too for when we modify an already shown card.

	* gui/contact-list-editor/e-contact-list-model.c: make
	parent_class static, just to be anal.

	* gui/contact-list-editor/e-contact-list-editor.c
	(remove_entry_cb): removing entries changes the list, so flag it.
	(table_drag_data_received_cb): restrict cards we add to lists to
	be non-list cards.
	(extract_info): clear out the email list in the card before we
	repopulate it from the contact list model.
	(fill_in_info): set the checkbox to active/inactive based on
	thecard.

2001-07-24  Chris Toshok  <toshok@ximian.com>

	* gui/contact-editor/e-contact-editor.c (wants_html_changed): call
	widget_changed.
	(phone_entry_changed): same.
	(email_entry_changed): same.
	(address_text_changed): same.
	(name_entry_changed): same.
	(company_entry_changed): same.
	(widget_changed): new function that we can either call or set as a
	signal to change the "changed" flag on the dialog.
	(set_entry_changed_signals): connect lots of "changed" signals on
	widgets to widget_changed.
	(add_lists): connect "changed" to widget_changed.

2001-07-24  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_hookup_shell_listener): Check if
	evolution_shell_client_get_local_storage returns CORBA_OBJECT_NIL,
	which it should never do.  If it does, print a warning in a dialog
	and try to recover w/o crashing.  (Bug #5193)

2001-07-24  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-book-listener.c (e_book_listener_stop): Don't
	stop the idle_queue and unref from here, since this might be
	called from inside e_book_listener_check_queue, and we don't want
	to return to that function with the listener having been
	destroyed.
	(e_book_listener_check_queue): Don't exit early if the queue is
	stopped. Proceed through the check if the queue is NULL (which is
	must be if the queue is stopped), and then reach the existing code
	to remove the idle handler. Combined with the above, this fixes
	ximian #4485 (again). This is not a plot to boost my
	showstopper-bugfixing count by fixing the same bug over and over
	again.

2001-07-23  Dan Winship  <danw@ximian.com>

	Re-fix for my 07-18 not-quite-fix.

	* backend/ebook/e-book-listener.c: Add a "stopped" flag like
	EBookViewListener.
	(e_book_listener_check_queue): Don't emit signals if the listener
	is stopped.
	(e_book_listener_queue_generic_response, etc): Don't queue
	responses if the listener is stopped.
	(e_book_listener_stop): Flush the queue and stop queue/emitting
	further responses.

	* backend/ebook/e-book.c (e_book_unload_uri): Revert the previous
	change and call e_book_listener_stop() instead.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_stop): When removing an idle handler, unref
	the listener as well, since e_book_view_listener_queue_response
	will have ref'ed it.

2001-07-22  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (remove_folder): Add a
	@type arg.  If the type is not "contacts", report an
	`UNSUPPORTED_TYPE' error through the listener.  Also, remove
	`g_print()' debugging messages.
	(xfer_folder): Likewise.

2001-07-21  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c: Make the "contacts"
	folders user-creatable by setting `user_creatable' to %TRUE in the
	`EvolutionShellComponentFolderType's.

2001-07-18  Chris Toshok  <toshok@ximian.com>

	[ patch contributed by Jos Dehaes <jos.dehaes@bigfoot.com> ]
	
	* gui/component/addressbook-storage.c (register_storage): new
	function, register our evolution_storage.
	(addressbook_storage_setup): remove storage registration from
	here.
	(load_source_data): register the storage here before we load
	addressbook-sources.xml, and deregister it if there are no sources
	listed.
	(addressbook_storage_remove_source): unregister the storage if the
	list of sources hits 0 length.

2001-07-18  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-book.c (e_book_unload_uri): Flush the listener's
	queue before unreffing it to ensure that it doesn't emit any more
	"responses_queued" signals after the EBook is destroyed.

	* backend/ebook/e-book-listener.c (e_book_listener_check_queue,
	e_book_listener_queue_response, e_book_listener_new): Use
	bonobo_object_ref/unref rather than gtk_object_ref/unref.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_queue_response, e_book_view_listener_new):
	Likewise.

2001-07-18  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-card-compare.c (simple_query_cb): prune the list
	of cards that match our query using the avoid list here, instead
	of using the avoid list in the query itself, since ldap can't
	handle that.
	(use_common_book_cb): remove the block of code including the avoid
	list in the query sent to wombat.

2001-07-17  Chris Toshok  <toshok@ximian.com>

	[ Fixes bugs #4611 - crash searching in the name field at Bigfoot for "\"
	        and  #4554 - general ldap search crash ]
	
	* backend/pas/pas-backend-ldap.c (func_contains): the length of
	the big query string needs to take into account the length of the
	footer as well as the header - fix random memory corruption here.

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query):
	list can be NULL, specifically if there's a parsing error in the
	sexp, so deal with it.

2001-07-17  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_queue_response): Hold a reference to our
	listener while the idle function is active.
	(e_book_view_listener_check_queue): Only unref the listener when
	the idle function is finished.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_clicked): Instead of replacing section->model with
	source, copy source onto section->model with
	e_select_names_model_overwrite_copy.  #if 0/#endif out all of the
	stuff related to ETextModels, because it doesn't make any sense to
	me, and everything appears to work without it.
	(Die bug #2059.  Die! Die! Die!)

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_overwrite_copy): Added.  Copies the contents
	of one ESelectNamesModel onto another.

	* backend/ebook/e-destination.c (e_destination_copy): Made the argument
	const.

	* backend/ebook/e-destination.c (e_destination_set_string): Removed
	old, broken code and annoying g_messages.

	* backend/ebook/e-book-listener.c
	(e_book_listener_queue_response): Hold a reference to the listener
	while the idle function is active.
	(e_book_listener_check_queue): Only release our reference to the
	listener when the queue is empty.  These two changes fix a race
	condition, since the listener could be unrefed while the listener
	was still active. (Seems to fix bug #4485)

2001-07-17  Christopher James Lahey  <clahey@ximian.com>

	* gui/contact-editor/contact-editor.glade,
	gui/merging/e-card-duplicate-detected.glade,
	gui/merging/e-card-merging-book-commit-duplicate-detected.glade,
	printing/e-contact-print.glade: Patch from Taylor Hayward
	<thayward@gjpc.com>.  Added accelerators to a few dialogs.

2001-07-16  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/Evolution-Addressbook-SelectNames.idl:
	Added addSectionWithLimit to the SelectNames interface.

	* gui/component/select-names/e-select-names-bonobo.c
	(impl_SelectNames_add_section_with_limit): Added.  Implements
	addSectionWithLimit.
	(e_select_names_bonobo_construct): Set up as a BonoboEventSource.
	(init): Listen for "changed" signals from our manager.
	(manager_changed_cb): Notify our listeners if we get a changed
	signal from our manager.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_class_init): Added a "changed" signal".
	(section_copy): Propogate the signal connection.
	(section_free): Disconnect the changed handler.
	(e_select_names_manager_add_section_with_limit): Connect to the
	new section's model, listening for changes.
	(e_select_names_manager_activate_dialog): Connect to the "working
	copy" model, listening for changes.
	(e_select_names_manager_add_section_with_limit): Added.
	(e_select_names_manager_add_section): Changed to just be a special
	case of e_select_names_manager_add_section_with_limit.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_set_limit): Added.  Allows a max number of
	names allowed in the model.
	(e_select_names_model_get_limit): Added.  Returns the limit.
	(e_select_names_model_at_limit): Added.  Returns TRUE if the
	model is "full".
	(e_select_names_model_insert): Check that we aren't at the
	limit before inserting.  Silently return if we are.
	(e_select_names_model_append): Check that we aren't at the
	limit before appending.  Silently return if we are.

2001-07-16  Chris Toshok  <toshok@ximian.com>

	[ Fix bug #4705 - LDAP storage gets saved with corrupted binddn]
	
	* gui/component/addressbook-config.c (addressbook_dialog_apply):
	call addressbook_storage_write_sources here after we're done
	rebuilding them.

	* gui/component/addressbook-storage.c
	(addressbook_storage_clear_sources): don't write the source file
	here.
	(addressbook_storage_add_source): same.
	(addressbook_storage_remove_source): same.
	(addressbook_storage_write_sources): new function, write the
	source file out.
	(addressbook_source_copy): g_strdup the binddn so we don't end up
	free'ing it multiple times thanks to copies freeing theirs.

	* gui/component/addressbook-storage.h: add prototype for
	address_storage_write_sources.

2001-07-16  Iain Holmes  <iain@ximian.com>

	* backend/pas/evolution-vcard-importer.c (ebook_create): Don't just 
	use the default directory. Use the directory that is passed into the
	load file function.

2001-07-15  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-destination.c (e_destination_set_string):
	Commented out some unused variables and labels.
	(e_destination_importv): Check for the xml not parsing correctly
	and just return NULL here.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_import_destinationv): Handle a NULL destv
	here.

2001-07-15  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c (table_drag_data_get): Added a
	call to e_table_view_to_model_row here.
	(e_addressbook_view_can_print, e_addressbook_view_can_delete,
	e_addressbook_view_can_copy): If the selection model is NULL here,
	return NULL (this was done before in a g_return_val_if_fail which
	is only conditionally included.)

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

	* gui/contact-editor/contact-editor.glade: Changed Company to
	Organization here.

2001-07-12  JP Rosevear  <jpr@ximian.com>

	* backend/pas/Makefile.am: add ldap cflags

2001-07-12  Jeffrey Stedfast  <fejj@ximian.com>

	* backend/ebook/e-destination.c (e_destination_xml_decode):
	Oops. I introduced my own bug, accidently set `email' to a
	g_free'd pointer - eek!

2001-07-12  Jeffrey Stedfast  <fejj@ximian.com>

	* backend/ebook/e-destination.c (e_destination_importv): Optimized
	the same way I optimized g_strsplit. If you use a GPtrArray
	instead of a linked list, you save yourself from having to iterate
	through the list an extra 3 times.
	(e_destination_xml_decode): Do NOT, I repeat: do NOT!
	e_utf8_xml1_decode something which is already in UTF-8 or you'll
	corrupt it!! I smack thee who hath done this evil deed!

2001-07-12  Iain Holmes  <iain@ximian.com>

	* backend/e-book/evolution-vcard-importer.c (support_format_fn):
	Check for no extension. Actually same as Jason's fix below :) but
	also check the file contents.

2001-07-12  JP Rosevear  <jpr@ximian.com>

	* gui/component/addressbook-config.glade: add accelerators,
	taylor's patch

2001-07-12  Jason Leach  <jleach@ximian.com>

	* backend/ebook/evolution-vcard-importer.c (support_format_fn):
	Crash fix because strcmp() hates NULL arguments.  Bug #3777.

2001-07-11  Jason Leach  <jleach@ximian.com>

	* gui/component/select-names/e-select-names.c (remove_cb): Added
	some comments for clarity and fixed a pretty noticable bug with
	how right click "Remove" was deleting more than it should with
	consecutive runs.

2001-07-10  Chris Toshok  <toshok@ximian.com>

	* backend/pas/evolutionperson.schema: assign OID's to the schema
	entries, and add schema support for contact lists.

2001-07-10  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): Set
	bf->priv->file_db before calling do_create.

2001-07-06  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook-component.c (factory_fn): Fixed order
	of arguments to evolution_shell_component_new.

2001-07-08  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_insert_length): Check that str isn't
	the empty string before doing an insert.

	* backend/ebook/e-destination.c (e_destination_set_string): We were
	being too smart for our own good here, and causing problems for
	the completion code... (bug #4253, bug #4255, bug #4280)
	(e_destination_set_name): Clear any cached address.
	(e_destination_set_email): Clear any cached address.
	(e_destination_get_address): Handle the cases where the name
	contains some e-mail information.

2001-07-09  Kjartan Maraas  <kmaraas@gnome.org>

	* gui/contact-list-editor/e-contact-list-editor.c: Marked a
	string for translation. Also add the neccesary includes to make
	_() macros work.
	
2001-07-07  Jon Trowbridge  <trow@ximian.com>

	* gui/widgets/e-minicard.c (add_field): Detect the embedded
	EDestination XML, and convert it to a nice-looking e-mail address.

	* gui/contact-list-editor/e-contact-list-editor.c: Adjusted to
	reflect changes to EContactListModel.  (Yeah, this is vague,
	but the changes are _really_ obvious and boring.)

	* gui/contact-list-editor/e-contact-list-model.c: Revamped
	to make everything an EDestination, rather than storing either
	cards or strings.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_insert_length): Use
	e_destination_get_textrep.

	* gui/component/select-names/e-select-names-table-model.c
	(fill_in_info): Use e_destination_get_name and
	e_destination_get_email.

	* gui/component/select-names/e-select-names-popup.c
	(popup_menu_card): Use e_destination_get_name instead of
	e_card_name_to_string.
	(quick_add_cb): Use e_destination_get_address.
	(popup_menu_nocard): Use e_destination_get_name.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_changed): Removed obsolete debugging code.
	(e_select_names_model_get_textification): Use e_destination_get_textrep.
	(e_select_names_model_get_address_text): Use e_destination_get_address.
	(e_select_names_model_get_string): Use e_destination_get_textrep.
	(e_select_names_model_replace): Use e_destination_get_textrep.
	(e_select_names_model_name_pos): Use e_destination_get_textrep.

	* gui/component/select-names/e-select-names-completion.c
	(emailify_match): Match only if this isn't a contact list.
	(match_email): Match only if this isn't a contact list.
	(match_name): Do the right thing in the case of a contact list.
	(book_query_process_card_list): Don't construct a match for
	each possible e-mail address if this is a contact list.

	* backend/ebook/e-destination.c: Major-league de-crufting and
	rationalization, combined with lots of hacks to make things work
	properly with contact lists.
	(e_destination_copy): Copy contact list info.
	(e_destination_clear_card): Clear contact list info.
	(e_destination_is_empty): If we contain a contact list, we aren't
	empty.
	(e_destination_set_card_uri): Added.  Allows us to set a
	destination by card URI.
	(e_destination_set_name): Allows the contact's name only ("Jane
	Smith") to be set.
	(e_destination_set_email): Allows the contact's e-mail only
	("jane@assbarn.com") to be set.
	(e_destination_set_string): Takes a free-form string containing a
	contact's name and/or e-mail, and tries to do the right thing with
	it.
	(e_destination_contains_card): Renamed.  Used to be
	e_destination_has_card.
	(e_destination_from_card): Added.  Returns TRUE if the
	EDestination comes from either a ECard (which we presently hold)
	or is specified by an ECard URI.
	(e_destination_use_card): Allows an EDestination's ECard to be
	accessed, via a callback.  If we only are holding the URI, the
	card will be loaded and stored in the EDestination.
	(e_destination_get_name): Returns the name only ("Jane Smith"), or
	NULL.
	(e_destination_get_email): Returns the email only
	("jane@assbarn.com"), or NULL.
	(e_destination_get_address): Added.  Returns a "full address" if
	both the name & e-mail are available ("Jane Smith
	<jane@assbarn.com>"), or just the e-mail if the name is unknown
	("jane@assbarn.com>").  If the destination is a contact list,
	returns a comma-separated list of addresses.
	(e_destination_get_textrep): Added.  Returns a "text
	representation" of the EDestination.  This is what is now
	displayed for completed, "cardified" destinations in addressbook
	entries.
	(e_destination_is_evolution_list): Check to see if this
	destination is for a contact list.
	(e_destination_xml_encode): Added.  Build an XML data structure
	representing an EDestination.
	(e_destination_xml_decode): Added.  Parse an XML data structure,
	constructing an EDestination.
	(e_destination_export): Added.  Returns a null-terminated string
	containing an XML representation of the EDestination, with
	newlines and excess whitespace removed.
	(e_destination_import): Added.  Parses a string containing an XML
	representation of an EDestination.
	(e_destination_exportv): Added.  Returns a null-terminated string
	containing an XML representation of a collection of EDestinations,
	with newlines and excess whitespace removed.
	(e_destination_importv): Added.  Takes an XML representation of a
	collection of destinations, parses it, and returns a vector of
	EDestinations.

	* backend/ebook/e-card.c (e_card_duplicate): Copy the ->book
	pointer.
	(e_card_get_id): Check that the argument is valid.
	(e_card_set_id): Check that the argument is valid.
	(e_card_get_book): Added.  Return the EBook the ECard came from.
	(e_card_get_uri): Added.  Tries to returns a URI for the ECard,
	which is of the form (EBook URI)/(ECard unique ID).  Returns NULL
	if the EBook URI or the ID are unknown/not set.
	(e_card_get_vobject): If we have the URI, use it as the
	VCUniqueStringProp, rather than just the ID.  This is a hack to
	make DnD work properly.
	(parse_id): Detect if the unique ID we've been passed is a URI or
	just a plain card ID, and do the right thing in either case.
	(e_card_uri_extract_book_uri): Added.  Convenience function for
	parsing card URIs.
	(e_card_uri_extract_card_id): Added.  Convenience function for
	parsing card URIs.
	(e_card_load_uri): Added.  Allows an ECard to be loaded by its
	URI.

	* backend/ebook/e-book-view.c: Added a EBook * to the
	_EBookViewPrivate struct.  This is meant to contain the EBook the
	EBookView is associated with.
	(add_book_iterator): Added.  A convenience function for attaching
	the EBook to a GList of cards (if no EBook is already stored).
	(e_book_view_do_added_event): Record the EBook in the added
	ECards.
	(e_book_view_do_modified_event): Record the EBook in the modified
	ECards.
	(e_book_view_set_book): Added.  Stores a pointer to the
	EBookView's "parent" EBook.
	(e_book_view_init): Init book_view->priv->book to NULL.
	(e_book_view_destroy): Unref book_view->priv->book.

	* backend/ebook/e-book.c: Added a uri field to _EBookPrivate.
	(e_book_unqueue_op): Removed debugging spew.
	(e_book_do_response_get_view): Attach the current EBook to the
	created EBookView.
	(e_book_do_response_get_changes): Attach the current EBook to the
	created EBookView.
	(e_book_load_uri): Save a copy of the uri in the EBook.
	(e_book_get_uri): Added.  Just returns book->priv->uri.
	(e_book_get_card): Attach a pointer to the Ebook to the
	newly-loaded ECard.
	(e_book_add_card): Attach a pointer to the EBook to the
	newly-added ECard.
	(e_book_commit_card): Attach a pointer to the EBook to the
	committed ECard.
	(e_book_init): Initialize the uri to NULL.
	(e_book_destroy): Free the uri string on destruction.

2001-07-06  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (populate_context_menu):
	Removed.  [It was just bogus testing code for the right-click menu
	populating interface in the shell].
	(factory_fn): Pass NULL as the PopulateContextMenuFn.

2001-07-05  Anna Marie Dirks  <anna@ximian.com>

	* gui/contact-list-editor/contact-list-editor.glade: 
	Added some accelerators, padding, and a "memebers" frame;
	also fixed spacing and growth behaviour of this dialog. 

2001-07-05  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/pas-backend-file.c (compare_category): Fix a memory
	leak here.

2001-07-05  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-compare.c (match_search_info_free): Set
	info->avoid = NULL.  This shouldn't make a difference, but it
	can't hurt.

2001-07-05  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-table-adapter.c
	(addressbook_is_cell_editable): Check if the row is within our
	table and return from this function as if the card is a standard
	card, not a list.

2001-07-03  Damon Chaplin  <damon@ximian.com>

	* backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): 
	added $(BONOBO_CONF_LIBS) to get it to compile.

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

	* gui/component/Makefile.am (evolution_addressbook_LDADD): Added
	$(BONOBO_CONF_LIBS).

	* gui/component/select-names/e-select-names.c
	(e_select_names_create_categories),
	gui/contact-editor/e-contact-editor.c (categories_clicked):
	Switched to an ECategoriesMasterListWombat instead of an
	ECategoriesMasterListArray here.

2001-07-02  Peter Williams  <peterw@ximian.com>

	* gui/contact-editor/Makefile.am (INCLUDES): srcdir !=
	builddir compile fix.

	* gui/contact-list-editor/Makefile.am (INCLUDES): Same.

	* gui/widgets/Makefile.am (INCLUDES): Same.

	* gui/search/Makefile.am (INCLUDES): Same.

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

	* gui/contact-editor/e-contact-editor.c (categories_clicked):
	Turned off wombatification of the categories master list here.

2001-07-01  Chris Toshok  <toshok@ximian.com>

	* gui/contact-list-editor/e-contact-list-editor.c (fill_in_info):
	use ECARD_UID_LINK_PREFIX.

	* gui/contact-list-editor/e-contact-list-model.c
	(e_contact_list_model_get_email): use ECARD_UID_LINK_PREFIX.

	* backend/ebook/e-destination.h: add prototype for
	e_destination_importv_list.

	* backend/ebook/e-destination.c (e_destination_importv_list): new
	function, take an ECard corresponding to an address list and
	resolve any linked cards, returning an EDestination vector.

	* backend/ebook/e-card.h (ECARD_UID_LINK_PREFIX): #define this here,
	since we need to use it in a few places.

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

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added
	related_contacts field.

	* gui/component/select-names/e-select-names-model.c,
	gui/component/select-names/e-select-names-model.h
	(e_select_names_model_import_destinationv): Added this function.

	* gui/contact-editor/contact-editor.glade: Replaced the entry here
	for related contacts with a table which is filled in in the C code.

	* gui/contact-editor/e-contact-editor.c,
	gui/contact-editor/e-contact-editor.h (add_lists): Added a select
	names entry here for the related contacts field.

	* gui/widgets/Makefile.am: Removed all the test programs here
	since there are circular dependencies now.

2001-07-01  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-destination.c (e_destination_get_string): Fall
	back to use the name field if all else fails (which can happen
	with imported EDestinations).

	* backend/ebook/e-destination.c (e_destination_is_empty): Fix for the
	"recipient not specified" bug --- we were not correctly checking
	for whether or not an EDestination was actually empty.

2001-06-30  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-card.c (e_card_evolution_list): Check args.
	Somewhere in the code (somewhere in the minicard stuff) this can
	be called with a NULL arg, which was causing crashes.
	(e_card_evolution_list_show_addresses): Check args.

	* backend/ebook/e-destination.c (build_field): I was accidentally
	comparing characters and strings here, and didn't see the compiler
	warning.  Fixed.
	(e_destination_exportv): Don't export any empty destinations.
	(bug#3825).

2001-06-30  Zbigniew Chyla  <cyba@gnome.pl>

	* gui/component/e-address-popup.c (e_address_popup_construct): Marked
	strings for translation.

2001-06-30  Jon Trowbridge  <trow@ximian.com>

	* gui/merging/e-card-merging.c (match_query_callback): Make the
	standard for considering two cards to be match stricter.

	* gui/component/select-names/e-select-names-completion.c
	(make_match): Use the card's use-score to set the match's
	sort_major value.
	(match_name): Removed obsolete code.
	(e_select_names_completion_begin): Added (double) cast to make
	match->score calculation come out properly.

	* backend/ebook/e-card.c: Added X-EVOLUTION-LAST-USE and
	X-EVOLUTION-USE-SCORE to attribute_jump_array.
	(e_card_get_today): Added.  A convenience routine for getting
	today's date and putting it in a GDate.
	(e_card_get_use_score): Added.  Compute the current, time-decayed,
	use-score for the card.
	(e_card_touch): Increment the use-score by one; update the last
	used date.
	(e_card_date_to_string): Added as a convenience routine, getting
	rid of some code duplication.
	(e_card_get_vobject): Add handlers for X-EVOLUTION-USE-SCORE and
	X-EVOLUTION-LAST-USE.
	(parse_last_use): Added.
	(parse_use_score): Added.
	(e_card_class_init): Added args for last-use and use-score.
	(e_card_get_arg): Added handlers for last-use and use-score.
	o
	(e_card_set_arg): Added handlers for last-use and use-score.

	* backend/ebook/e-destination.c: Added pending_card_id to
	EDestinationPrivate struct.
	(e_destination_copy): Copy the pending_card_id.
	(e_destination_is_empty): Check for a pending_card_id.  We are
	non-empty if we have one.
	(e_destination_clear_card): Clear pending_card_id.
	(e_destination_set_card): Clear pending_card_id.
	(e_destination_has_pending_card): Added.
	(e_destination_use_card): Added.  An asynchronous way to load a
	pending card and then apply a callback to it.
	(build_field): Be paranoid, map our special characters to '_'.
	(e_destination_export): Use EXPORT_MAX_FIELDS symbol rather than a
	hard-wired array size.  Added the "card" entry.
	(e_destination_import): Fix bug in handling of the "name" field.
	Process the "card" field.
	(e_destination_touch): "Touch" and commit the ECard corresponding
	to the e-mail address in the destination.  (A query against the
	local addressbook is actually performed, in case the destination
	isn't cardified.

	* backend/ebook/e-card-compare.c (e_card_compare_name): Revamp the
	way E_CARD_MATCH_FOO results are mapped to comparison results.
	Report better matches when the family name is matched.

2001-06-29  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c (update_query):
	Added a search field to the query here.
	(e_select_names_init): Update the query on a number of signals here.

	* gui/component/select-names/e-select-names.h: Added search_entry
	here.

	* gui/component/select-names/select-names.glade: Added the search
	entry here.  Added some labels.  Removed the update button.

2001-06-29  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_option_activated): Change the uri here to have
	addressbook.db at the end.

	* gui/component/select-names/select-names.glade: Changed the name
	of the folder option menu here to match the name used in the code.

2001-06-29  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c (update_query):
	Change the query when the "Update List" button is pushed.

	* gui/component/select-names/e-select-names.h: Removed
	currently_selected field.  Added categories_entry field.

	* gui/component/select-names/select-names.glade: Added "Update
	List" button.

2001-06-29  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/Makefile.am (INCLUDES): add EVOLUTION_IMAGESDIR
	define.

	* gui/widgets/e-minicard.h (struct _EMinicard): add our pixbuf and
	pixbuf size.

	* gui/widgets/e-minicard.c (e_minicard_init): init the icon pixbuf
	and its size.
	(e_minicard_destroy): unref the list_icon_pixbuf.
	(e_minicard_realize): create the list_icon GnomeCanvasPixbuf.
	(e_minicard_resize_children): clip the header_text by the
	list_icon, and place the list_icon in the right spot.
	(remodel): show the list_icon if we're a list, and hide it
	otherwise.

2001-06-28  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-view.c (table_double_click): pop up
	list editor for lists, contact editor otherwise.

	* gui/widgets/e-minicard.c (e_minicard_event): same.

	* gui/widgets/e-minicard.h (struct _EMinicard): change "editor" to
	GtkOjbect, since it can be either a contact editor or contact list
	editor.

	* gui/widgets/e-addressbook-table-adapter.c
	(addressbook_is_cell_editable): don't allow editting of any fields
	except the name and file_as for lists.

2001-06-28  Chris Toshok  <toshok@ximian.com>

	* gui/contact-list-editor/Makefile.am (INCLUDES): remove ancient
	e-table include, and add include for contact-editor so we can
	reuse the confirm_delete dialog.

	* gui/contact-list-editor/e-contact-list-editor.h (struct
	_EContactListEditor): remove prototype for
	e_contact_list_editor_close, since the function no longer exists.

	* gui/contact-list-editor/e-contact-list-editor.c
	(list_deleted_cb): new function, emit our "list_deleted" signal.
	(delete_cb): new function, called from the Delete toolbar item.
	(e_contact_list_editor_raise): flesh out function.
	(extract_info): "evolution_list" => "list".
	(fill_in_info): same.

2001-06-28  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-card.c (e_card_get_vobject): add support for
	X-EVOLUTION-LIST and X-EVOLUTION-LIST-SHOW-ADDRESSES.
	(parse_list): new function, parse the boolean X-EVOLUTION-LIST.
	(parse_list_show_addresses): new function, parse the boolean
	X-EVOLUTION-LIST-SHOW-ADDRESSES.
	(e_card_class_init): add args for "list" and
	"list_show_addresses".
	(e_card_set_arg): add support for list and list_show_addresses.
	(e_card_get_arg): same.
	(e_card_init): init list and list_show_addresses.

2001-06-27  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (factory_fn): Pass NULL as
	the @external_uri_schemas argument to
	`evolution_shell_component_new()'.

2001-06-27  Chris Toshok  <toshok@ximian.com>

	* gui/contact-list-editor/e-contact-list-model.c
	(contact_list_row_count): track storage change - we're only using
	1 array now.
	(contact_list_value_at): same.
	(contact_list_model_destroy): same.
	(e_contact_list_model_init): same.
	(e_contact_list_model_add_email): same.
	(e_contact_list_model_add_card): same.
	(e_contact_list_model_remove_row): same.
	(e_contact_list_model_remove_all): new function - just free/unref
	all existing rows.
	(e_contact_list_model_get_email): new function, returns the
	alloc'ed string containing either an email address or an encoded
	ECardId.

	* gui/contact-list-editor/e-contact-list-model.h: remove the 2
	separate arrays for email and cards, and store them in the same
	array.

	* gui/contact-list-editor/e-contact-list-editor.h (struct
	_EContactListEditor): add the visible_addr_checkbutton widget.

	* gui/contact-list-editor/e-contact-list-editor.c
	(visible_addrs_toggled_cb): new function.
	(e_contact_list_editor_init): connect to "toggled" on
	visible_addrs_checkbutton.
	(file_save_cb): new function.
	(tb_save_and_close_cb): new function.
	(verbs): add Save and Save & Close.
	(list_added_cb): new function.
	(list_modified_cb): new function.
	(save_card): new function - we do *not* use e_card_merging_* calls
	here.
	(e_contact_list_editor_get_arg): un-#if 0 code in the "card"
	getter.
	(e_contact_list_editor_set_arg): same for the "card" setter.
	(extract_info): new function.
	(fill_in_info): new function.

	* gui/contact-list-editor/contact-list-editor.glade: add a
	checkbutton at the bottom to determine whether to visibly include
	mail addresses in mail sent to this list.

2001-06-26  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_create_categories): Oops.  Can't use the wombat
	version of the master categories list yet.

2001-06-26  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-table-adapter.c (create_card): memmove
	counts were off in this function.
	(remove_card, modify_card): Moved the table notifications around a
	bit here.

2001-06-26  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h,
	gui/component/select-names/select-names.glade
	(e_select_names_create_categories): Added a categories combo here.
	It's not used yet.

2001-06-26  Christopher James Lahey  <clahey@ximian.com>

	* gui/search/addresstypes.xml: Added category searching to the
	advanced search dialog here.
	
2001-06-26  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/pas-backend-file.c (compare_category): Added
	category searching to the file backend.

	* gui/component/addressbook.c (addressbook_query_changed): Added
	category searching to the search bar.

2001-06-25  Peter Williams  <peterw@ximian.com>

	* conduit/Makefile.am (INCLUDES): Fix for srcdir != builddir.

2001-06-25  Chris Toshok  <toshok@ximian.com>

	* gui/contact-list-editor/contact-list-editor.glade: change layout
	slightly, the icon no longer pushes everything to the left, and
	make the buttons on the right smaller and more in line with the
	other widgets.

	* gui/contact-list-editor/e-contact-list-model.c
	(contact_list_value_at): return the SimpleAndString->string
	instead of querying the ecardsimple.
	(e_contact_list_model_init): initially allocate 10 of each type
	(email and simple).
	(e_contact_list_model_add_email): realloc if need be.
	(e_contact_list_model_add_card): same, and initialize the string
	displayed to be "[Name] [<email>]".
	(e_contact_list_model_remove_row): change for SimpleAndString.
	(contact_list_model_destroy): free our 2 arrays.

	* gui/contact-list-editor/e-contact-list-model.h: add alloc counts
	and the SimpleAndString struct.

	* gui/contact-list-editor/e-contact-list-editor.c: Helix Code =>
	Ximian.
	(e_contact_list_editor_init): hook up d&d destination signals, and
	un-#if 0 the delete_event signal.
	(table_drag_motion_cb): new function.
	(table_drag_drop_cb): new function.
	(table_drag_data_received_cb): new function.
	(file_close_cb): new function.
	(verbs) uncomment the close verb.
	(close_dialog): new function.
	(app_delete_event_cb): new function.

	* gui/contact-list-editor/e-contact-list-editor.h: Helix Code =>
	Ximian.

2001-06-25  Jon Trowbridge  <trow@ximian.com>

	* gui/component/e-address-popup.c: Add a huge steaming pile of
	code to handle the case of single-address merging.  In other
	words, if you go to "harvest" an address by right-clicking on it
	in the mail viewer, and you already have a closely-matching
	contact (w/ a different e-mail address), this gives you the
	option of editting that contact's e-mail addresses to add the
	one you just clicked on.

	* backend/ebook/e-card-compare.c (match_search_info_free): It is
	amazing how much better things work when you don't try to
	dereference the pointer you just freed.

2001-06-24  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/Makefile.am (minicard_test_LDADD): correct path to
	libecontacteditor.a.
	(minicard_widget_test_LDADD): same.
	(INCLUDES): same, for the includes.

	* gui/widgets/e-minicard.h: correct e-contact-editor.h path.

	* gui/widgets/e-addressbook-util.h: correct path to
	e-contact-editor.h, and add e-contact-list-editor.h.  Add
	prototype for e_addressbook_show_contact_list_editor.

	* gui/widgets/e-addressbook-util.c: remove #include
	"e-contact-editor.h" (our header includes it.)
	(added_cb): rename card_added_cb to this, and make it so it can be
	reused in both the list and card cases.  remove the g_print too.
	(modified_cb): same for modified case.
	(deleted_cb): same for deleted case.
	(editor_closed_cb): change first arg to GtkObject* so we can reuse
	this for both list and card.
	(e_addressbook_show_contact_editor): use added_cb, modified_cb,
	deleted_cb, and pass FALSE as user_data.
	(e_addressbook_show_contact_list_editor): new function, same as
	above but creating a contact-list-editor, and pass TRUE as
	user_data.

	* gui/component/e-address-popup.c: correct path to contact-editor.

	* gui/component/e-address-widget.c: same.
	
	* gui/component/select-names/e-select-names-popup.c: same.

	* gui/component/select-names/e-select-names-text-model.c: same.

	* gui/component/addressbook.c (new_contact_list_cb): new function.
	(update_command_state): update ContactNewList command.
	(verbs): remove ViewAll from the toolbar from the verb list.  Add
	ContactNewList.
	(pixmaps): same for pixmaps.
	
	* gui/component/Makefile.am (evolution_addressbook_LDADD): new
	path for contact-editor.
	(INCLUDES): same.

	* gui/contact-list-editor/e-contact-list-model.h:
	* gui/contact-list-editor/e-contact-list-model.c:
	* gui/contact-list-editor/e-contact-list-editor.h:
	* gui/contact-list-editor/e-contact-list-editor.c:
	* gui/contact-list-editor/Makefile.am: Initial contact-list editor
	  commit.

	* gui/Makefile.am (SUBDIRS): add contact-editor.

	* Makefile.am: (SUBDIRS): remove contact-editor.

2001-06-21  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-popup.c
	(make_contact_editor_cb): Renamed.  (The old name,
	edit_contact_info_have_book_cb was a hold-over from before, when
	we weren't using e_book_use_local_address_book.)

	* gui/component/e-address-popup.c
	(e_address_popup_schedule_refresh): A Added.  We now do the name
	refreshes in an idle function, rather than in the setters.
	(e_address_popup_set_free_form): Added.  Properly handle inputs of
	the form "Foo <bar@zar.com>", extracting the name and e-mail
	address.
	(e_address_popup_set_name): Check to make sure that the free-form
	handler shouldn't be used to handle the input.  Schedule a refresh
	after making any changes.
	(e_address_popup_set_email): Check to make sure that the free-form
	handler shouldn't be used to handle the input.  Schedule a refresh
	after making any changes.
	(e_address_popup_name_only_matches): Temporary place-holder for
	handling name-only matches.
	(query_cb): If our initial query fails (and included e-mail
	information), do a name-only query.  This is to handle the case of
	adding new e-mail addresses to existing contacts.
	(e_address_popup_query): Eliminated the "common_book" crap; using
	e_book_use_local_address_book instead.

	* backend/ebook/e-card-compare.c (match_search_info_free): Make
	sure that the ->avoid list gets properly freed.

2001-06-20  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_get_supported_fields): fix a refcounting
	memleak.

2001-06-20  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-book-listener.c
	(e_book_listener_queue_get_supported_fields_response): fix memory
	leak.

2001-06-20  Chris Toshok  <toshok@ximian.com>

	* contact-editor/e-contact-editor.c: add prototype for
	close_dialog to remove warnings.

2001-06-20  Dave Camp  <dave@ximian.com>

	* backend/ebook/e-card.c (e_card_list_send): Changed attach_data
	to be a GNOME_Evolution_Composer_AttachmentData rather than a
	CORBA_char*.

2001-06-19  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-view.c (table_double_click): track
	change to e_addressbook_show_contact_editor signature.

	* gui/widgets/e-minicard-view.c (e_minicard_view_event): same.

	* gui/widgets/e-minicard.c (e_minicard_event): same.

	* gui/widgets/e-addressbook-util.c (e_addressbook_error_dialog):
	add an entry for "Card ID already exists".
	(e_addressbook_show_contact_editor): track the change to signal
	names and e_contact_editor_new signature here.

	* gui/widgets/e-addressbook-util.h: change
	e_addressbook_show_contact_editor's signature to match
	e_contact_editor_new more closely.

	* gui/widgets/e-addressbook-table-adapter.c (unlink_model): free
	up the simple mapping to plug a potentially sizeable memory leak.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_activate_obj): call
	e_addressbook_show_contact_editor here.

	* gui/component/select-names/e-select-names-popup.c
	(edit_contact_info_have_book_cb): remove the get_supported_fields
	stuff, since the contact editor handles it for us now, and call
	e_addressbook_show_contact_editor.

	* gui/component/e-address-popup.c (edit_contact_info_cb): same.

	* gui/component/addressbook.c (new_contact_cb): track change to
	e_addressbook_show_contact_editor.

2001-06-19  Chris Toshok  <toshok@ximian.com>

	* contact-editor/e-contact-quick-add.c (ce_have_book): rename
	ce_book_found_fields to this, remove the fetching of fields (the
	contact editor code handles that now.), and change the add_card
	signal to card_added.
	(card_added_cb): copied somewhat from merge_cb above.  we don't
	need to do the merge here, just call the callback.

	* contact-editor/e-contact-editor.c (e_contact_editor_class_init):
	track signal change.  add book arg, and is_read_only -> editable.
	(wants_html_changed): if the card isn't already changed, flag it
	as such (and update the commands.)
	(phone_entry_changed): same.
	(email_entry_changed): same.
	(address_text_changed): same.
	(name_entry_changed): same.
	(company_entry_changed): same.
	(full_name_clicked): is_read_only -> editable.
	(full_addr_clicked): same.
	(card_added_cb): new function, emit our card_added signal, and
	close the dialog if we're supposed to.  properly deal with error
	status here.
	(card_modified_cb): same, modulo card_added -> card_modified.
	(save_card): actually call e_card_merging_book_{add/commit}_card
	instead of using a signal.  Also, add a gboolean arg to tell
	whether or not to close the dialog after saving the card.
	(card_deleted_cb): new function, just emit our "card_deleted"
	signal.
	(delete_cb): actually call e_book_remove_card here, instead of
	using a signal.
	(tb_save_and_close_cb): call save_card with TRUE for should_close.
	(e_contact_editor_init): init changed = FALSE;
	(e_contact_editor_destroy): unref our book if we have one.
	(e_contact_editor_new): new signature, set the "book" arg, and
	call e_book_get_supported_fields here.
	(supported_fields_cb): new function, show the contact editor.
	(e_contact_editor_set_arg): initialize changed to FALSE when
	setting the card (but *after*, since the changed callbacks will
	set it to TRUE.)  also, call command_state_changed if editable
	changes.  also handle setting "book".  oh, and is_read_only ->
	editable.
	(command_state_changed): new function - set the state of the
	commands we care about.
	(e_contact_editor_get_arg): add "book" handling, and is_read_only
	-> editable.
	(_phone_arrow_pressed): is_read_only -> editable.
	(_email_arrow_pressed): same.
	(_address_arrow_pressed): same.
	(enable_writable_fields): same.
	(set_editable): rename set_read_only to this, and is_read_only ->
	editable.

	* contact-editor/e-contact-editor.h (struct _EContactEditor):
	is_read_only -> editable, add a "changed" flag so we can sensitize
	commands correctly, and add an EBook* arg to e_contact_editor_new
	and to the EContactEditor struct.  Also, change all the signals to
	past tense, and send the EBookStatus in them.

	* contact-editor/e-contact-editor-address.c
	(e_contact_editor_address_class_init): is_read_only -> editable.
	(e_contact_editor_address_set_arg): same.
	(e_contact_editor_address_get_arg): same.

	* contact-editor/e-contact-editor-address.h (struct
	_EContactEditorAddress): same.

	* contact-editor/e-contact-editor-fullname.c
	(e_contact_editor_fullname_class_init): same.
	(e_contact_editor_fullname_set_arg): same.
	(e_contact_editor_fullname_get_arg): same.

	* contact-editor/e-contact-editor-fullname.h (struct
	_EContactEditorFullname): same.

	* contact-editor/Makefile.am: don't build contact-editor-test now,
	until contact-editor gets moved to gui/ and we can more easily
	depend on the e_card_merging_* calls.

	* backend/pas/pas-backend-ldap.c (ldap_error_to_response): return
	CardIdAlreadyExists for LDAP_ALREADY_EXISTS.

	* backend/idl/addressbook.idl: Add CardIdAlreadyExists to the
	BookListener status enum.

	* backend/ebook/e-book-types.h: add
	E_BOOK_STATUS_CARD_ID_ALREADY_EXISTS.

	* backend/ebook/e-book-listener.c
	(e_book_listener_convert_status): add support for
	CardIdAlreadyExists.

2001-06-19  Jon Trowbridge  <trow@ximian.com>

	* contact-editor/e-contact-quick-add.c: Serious de-crufting,
	removal of gtk_object_set_data() hacks, simplified by using
	some of the newer ebook convenience routines, etc.
	(ce_book_found_fields):
	s/e_contact_editor_raise/e_contact_editor_show/, to accomodate the
	small changes in the contact editor API.

2001-06-18  Eskil Heyn Olsen  <eskil@eskil.dk>

	* conduit/address-conduit.c: (check_for_slow_setting),
	(conduit_get_gpilot_conduit):
	Tweaked for some gnome-pilot api changes

2001-06-15  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (search_for_dn): implement this
	properly, using base and (objectclass=*).

2001-06-14  Chris Toshok  <toshok@ximian.com>

	* contact-editor/e-contact-editor.c (delete_cb): save ourselves a
	function call - call close_dialog instead of file_close_cb.

2001-06-14  Jeffrey Stedfast  <fejj@ximian.com>

	* gui/component/addressbook-component.c: Set the
	"expoted_dnd_types" to NULL in the folder_types.

2001-06-11  Dan Winship  <danw@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(search_override_check): Add a workaround for an EText bug.
	(e_select_names_completion_begin): Fix up the match scoring in the
	search_override case so the lines are offered in the correct
	order.

2001-06-11  Christopher James Lahey  <clahey@ximian.com>

	* gui/merging/Makefile.am (glade_DATA): Added
	e-card-merging-book-commit-duplicate-detected.glade here.

	* gui/merging/e-card-merging-book-commit-duplicate-detected.glade:
	Added this file.  The GUI for asking whether to commit a modified
	card.

	* gui/merging/e-card-merging.c, gui/merging/e-card-merging.h
	(e_card_merging_book_commit_card): Added this function.

	* gui/widgets/e-addressbook-table-adapter.c
	(addressbook_set_value_at), gui/widgets/e-addressbook-util.c
	(commit_card_cb), gui/widgets/e-minicard.c (e_minicard_event): Use
	e_card_merging_book_commit_card instead of e_book_commit_card here.

2001-06-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Made e_card_simple_get_id return const char *.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Made
	e_card_get_id return const char *.

	* gui/component/e-cardlist-model.c (e_cardlist_model_add): Made id
	variable const here.  Added a break to make it slightly more
	efficient.

	* gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Made
	e_minicard_get_card_id return const char *.

2001-06-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/pas-backend-file.c (entry_compare): Made this handle
	the "id" property in searches.
	(pas_backend_file_process_modify_card): Made id variable const
	here.

	* backend/pas/pas-backend-ldap.c (modify_card_handler): Made id
	variable const here.

2001-06-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-book-listener.c,
	backend/ebook/e-book-listener.h, backend/ebook/e-book.c: Rolled
	back the change 2 ago, dated 06/11/2001 01:51 in CVS, involving
	e-book-listener.[ch] and e-book.c.

2001-06-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-book.c (e_book_load_uri,
	e_book_get_supported_fields, e_book_authenticate_user,
	e_book_remove_card_by_id, e_book_add_vcard, e_book_commit_vcard,
	e_book_get_cursor, e_book_get_book_view, e_book_get_changes): Made
	it so that all of these functions queue their ops before calling
	their CORBA functions.  This way, if the response is sent back
	before the CORBA function returns there's no problem.  Added
	e_book_unqueue_op so that the op could be unqueued if the CORBA
	call fails.

2001-06-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-book-listener.c, backend/ebook/e-book-listener.h
	(e_book_listener_unpop_response): Added this function to put a
	response back into the queue.

	* backend/ebook/e-book.c (e_book_check_listener_queue,
	e_book_queue_op): Handle the case where the op hasn't been queued
	yet when we get the response.  In this case we unpop the response.
	Also, when queueing an op, we check to see if there are any
	responses waiting.

	* This change has been reverted.

2001-06-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-compare.c, backend/ebook/e-card-compare.h
	(e_card_locate_match_full): Added this function to let you do
	slightly more complicated searches.

	* gui/merging/e-card-merging.c (e_card_merging_book_add_card): Use
	e_card_locate_match_full to check if the card exists in the book
	it's being added to instead of in the default book.

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

	* gui/component/select-names/e-select-names-completion.c
	(match_name): Removed unused email variable.

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

	* backend/ebook/e-card-compare.c (use_common_book_cb): Null
	terminate the strv here.
	(e_card_locate_match): ref here instead of unref.

	* backend/ebook/e-card-simple.c (e_card_simple_get): Handle a NULL
	card here.

	* contact-editor/Makefile.am (INCLUDES), gui/widgets/Makefile.am
	(INCLUDES): Added addressbook/gui/merging here.

	* contact-editor/e-contact-quick-add.c (book_ready_cb),
	gui/component/addressbook-component.c (dnd_drop_book_open_cb),
	gui/widgets/e-addressbook-table-adapter.c
	(addressbook_append_row), gui/widgets/e-addressbook-util.c
	(add_card_cb), gui/widgets/e-addressbook-view.c
	(selection_received), gui/widgets/e-minicard-control.c
	(book_open_cb): Use e_card_merging_book_add_card instead of
	e_book_add_card here.

	* gui/Makefile.am (SUBDIRS): Added merging.

	* gui/component/Makefile.am (evolution_addressbook_LDADD),
	gui/widgets/Makefile.am (minicard_test_LDADD,
	minicard_widget_test_LDADD): Added libecardmerging.a here.

	* gui/merging/, gui/merging/.cvsignore, gui/merging/Makefile.am:
	New addressbook library.

	* gui/merging/e-card-duplicate-detected.glade: Glade file for
	duplicate detected dialog.

	* gui/merging/e-card-merging.c, gui/merging/e-card-merging.h: New
	files for detecting duplicates before adding and putting up a
	dialog if duplicates are found.

	* gui/widgets/e-minicard-view.c: Include e-addressbook-util.h
	here.

2001-06-08  Chris Toshok  <toshok@ximian.com>

	* contact-editor/e-contact-editor.c (e_contact_editor_new): remove
	the gtk_widget_show call...
	(e_contact_editor_show): and put it here.

	* contact-editor/e-contact-editor.h: add prototype for
	e_contact_editor_show.

	* gui/widgets/e-minicard.c (e_minicard_event): call
	e_addressbook_show_contact_editor.
	(card_modified_cb): call e_addressbook_error_dialog if status !=
	SUCCESS.

	* gui/widgets/e-minicard-view.c (e_minicard_view_event): call
	e_addressbook_show_contact_editor.  also, use card_modified_cb as
	the commit_card callback.

	* gui/widgets/e-addressbook-view.c (table_double_click): clean
	this area up alot, call e_addressbook_show_contact_editor.
	(card_deleted_cb): call e_addressbook_error_dialog.

	* gui/widgets/e-addressbook-table-adapter.c
	(card_modified_cb): new function, call e_addressbook_error_dialog
	if the status != SUCCESS.
	(addressbook_set_value_at): use card_modified_cb as the callback
	for e_book_commit_card.

	* gui/widgets/Makefile.am (libeminicard_a_SOURCES): add
	e-addressbook-util.[ch].

	* gui/component/addressbook.c (new_contact_cb): use
	e_addressbook_show_contact_editor here.

2001-06-05  Christopher James Lahey  <clahey@ximian.com>

	* contact-editor/e-contact-editor.c (categories_clicked): Remove
	references to ECategoryMasterListWombat.

2001-06-05  Jason Leach  <jleach@ximian.com>

	* gui/component/select-names/e-select-names.c (remove_cb): Make
	this work when multiple names are selected then right
	click->Remove.

2001-06-05  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card.c (e_card_set_arg): Copy dates as they come
	in.

	* backend/pas/pas-backend-file.c
	(pas_backend_file_changes_foreach_key, pas_backend_file_changes,
	pas_backend_file_process_remove_card,
	pas_backend_file_process_modify_card,
	pas_backend_file_build_all_cards_list, pas_backend_file_get_vcard,
	pas_backend_file_maybe_upgrade_db): memset DBTs to 0 before using
	them.
	(pas_backend_file_build_all_cards_list): Reindented.

	* contact-editor/contact-editor.glade: Replaced GnomeDateEdits
	with a custom widget that creates an EDateEdit.

	* contact-editor/e-contact-editor.c: Use an EDateEdit here instead
	of a GnomeDateEdit.

2001-06-05  Jason Leach  <jleach@ximian.com>

	(Fix bug #655: SelectNames doesn't let you remove addresses after
	 you add them)
	
	* gui/component/select-names/e-select-names.c
	(section_right_click_cb): New function, provides a popup menu with
	just "Remove" in it.
	(remove_cb): New callback to do the remove.
	(e_select_names_add_section): Attach the "right_click" signal to
	the section_right_click_cb above.

2001-06-05  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-manager.c
	(completion_handler): Change the completion handler to use the
	ECompletionMatch.

	* gui/component/select-names/e-select-names-completion.c
	General changes to convert for ECompletionMatch use.
	(emailify_match): Use extra sort keys in ECompletionMatch to let
	us ensure that the primary email address is always the first
	option, the secondary comes second, etc.  There was no nice way to
	do this previously.
	(match_name): Removed code that adjusted score based on
	similarities between the "real name" and the e-mail address.  It
	seemed like a good idea at the time, but produced unexpected and
	confusing results.

2001-06-04  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-card-compare.c: Added.  Code for testing
	if two ECards appear to pertain to the same contact (using loose
	matching rules, as opposed to requiring exact equality) and to
	query the addressbook for the "best match" to ECard.

2001-06-03  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (set_status_message): remove spew,
	and don't call the ShellView CORBA method if the interface doesn't
	exist (for whatever reason.)

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_destroy):
	unref the EAddressbookModel.
	(create_minicard_view): unref the adapter.
	(card_added_cb): call e_book_error_dialog if status != SUCCESS.
	(card_modified_cb): same.
	(card_removed_cb): new function, and same.
	(delete_card_cb): pass card_removed_cb as the callback.
	(emit_status_message): new function, just emit status_message.
	(status_message): change to call emit_status_message.
	(card_deleted_cb): emit_status_message ("Done."), and call
	e_book_error_dialog if status != SUCCESS.
	(do_remove): pass view in the closure arg.
	(e_addressbook_view_delete_selection): emit status "Removing
	cards..." before starting the removal.
	(e_book_error_dialog): new function - pop up a (possibly) helpful
	message about why an operation failed.

	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_new): ref the EAddressbookReflowAdapter.
	(e_minicard_view_widget_destroy): unref the adapter.
	(e_minicard_view_widget_get_selection_model): if there isn't a
	minicard view return NULL.

	* gui/widgets/e-addressbook-table-adapter.c
	(e_addressbook_table_adapter_construct): ref the
	EAddressbookModel.

	* gui/widgets/e-addressbook-reflow-adapter.c
	(addressbook_finalize): rename this from addressbook_destroy, to
	reflect the method change.
	(e_addressbook_reflow_adapter_class_init): same.
	(e_addressbook_reflow_adapter_construct): ref the
	EAddressbookModel.

	* gui/widgets/e-addressbook-model.h: add editable_set flag.

	* gui/widgets/e-addressbook-model.c (writable_status): only record
	the writable state of the addressbook if the user hasn't set it.
	(e_addressbook_model_init): init editable_set to FALSE.
	(e_addressbook_model_set_arg): set editable_set to TRUE.

2001-06-03  Ettore Perazzoli  <ettore@ximian.com>

	* backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): Move
	`$(DB3_LDADD)' before libeutil.

2001-06-01  Ettore Perazzoli  <ettore@ximian.com>

	* backend/ebook/Makefile.am (evolution_vcard_importer_LDADD): Add
	$(DB3_LDADD)'.

2001-05-31  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/Makefile.am (INCLUDES): Added db3 cflags.

	* backend/pas/pas-backend-file.c: Updated this to use db3.

2001-05-31  Federico Mena Quintero  <federico@ximian.com>

	* gui/widgets/e-addressbook-view.h (EAddressbookView): Added
	fields for the GalViewMenus and GalViewCollection; we need to keep
	them around while the component is active.

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_setup_menus): Plug leak; unref the spec.
	Unref the factories.  Do not unref the collection, since we need
	it for the signal emission (okay, so the views object adds a
	reference to it, but if we are interested in it we should keep a
	reference anyways).
	(e_addressbook_view_setup_menus): Create the collection and views
	on the EAddressbookView's fields so that we can keep them around.
	(e_addressbook_view_discard_menus): New function; gets rid of the
	collection and views objects.

	* gui/component/addressbook.c (control_activate_cb): Call
	e_addressbook_view_discard_menus().

2001-05-31  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names.h (struct
	_ESelectNames): add the EAddressbookModel* and change the
	ETableModel's name to "adapter".

	* gui/component/select-names/e-select-names.c (set_book),
	(addressbook_model_set_uri): these two things take an
	EAddressbookModel* instead of an ETableModel now.
	(e_addressbook_create_ebook_table): don't case the
	EAddressbookModel* to ETableModel*, create an EAddressbookTableAdapter
	on the EAddressbookModel instead.
	(e_select_names_init): set e_select_names->adapter.

2001-05-31  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-model.c (remove_card): decrement
	data_count before emitting the card_removed signal, and break
	after we've removed the matching card.
	(e_addressbook_model_class_init): change signature of
	"card_removed" signal to match what we emit (and what is
	expected.)

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init): the
	signal name is "destroy", not "destroyed".
	(do_remove): new function, actually remove the card.
	(e_addressbook_view_delete_selection): get this working for both
	view types.

2001-05-31  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c: Print Preview =>
	ContactsPrintPreview.  Changed peter's change so that the node
	name is more in line with "Print.."'s

2001-05-30  Peter Williams  <peterw@ximian.com>

	* gui/component/addressbook.c: Use the correct path to the print
	preview menu item.

2001-05-30  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (cut_contacts_cb): new function, for
	the Cut verb.
	(copy_contacts_cb): new function, for the Copy verb.
	(paste_contacts_cb): new function, for the Paste verb.
	(select_all_contacts_cb): new function, for the Select All verb.
	(update_command_state): add handling for sensitivity of
	Cut/Copy/Paste/Select All.

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init): init
	the invisible and set up selection/destroy signals.
	(get_selection_model): new function, so we can get the
	ETableSelectionModel from either view type.  makes lots of the
	other functions easier, since we can get the list of selected
	cards using the same code regardless of view type.
	(invisible_destroyed): new function.
	(selection_get): new function.  convert the clipboard list to
	string.
	(selection_clear_event): new function - free up the list of
	ECards.
	(selection_received): if the selection data is valid and
	well-formed, add the corresponding cards to the ebook.
	(add_to_list): new function.
	(get_selected_cards): new function.
	(e_addressbook_view_cut): new function, implement in terms of
	_copy and _delete_selection.
	(e_addressbook_view_copy): claim ownership of the CLIPBOARD
	selection after saving the list of selected ECards.
	(e_addressbook_view_paste): call gtk_selection_convert.
	(e_addressbook_view_select_all): new function, using
	e_selection_model_select_all.
	(e_addressbook_view_can_print): re-implement in terms of
	get_selection_model.
	(e_addressbook_view_can_delete): same.
	(e_addressbook_view_can_cut): new function.
	(e_addressbook_view_can_copy): new function.
	(e_addressbook_view_can_paste): new function.  hmm, always return
	TRUE here.
	(e_addressbook_view_can_select_all): new function.

	* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add
	selection stuff - the list of selected cards, and the GtkInvisible
	selection owner, and add prototypes for
	e_addressbook_view_[can]_{cut,copy,paste,select_all}.
	
	* gui/widgets/e-minicard-view-widget.h: add a prototype for
	e_minicard_view_widget_get_selection_model.

	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_get_selection_model): new function.

2001-05-27  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook.c: #include
	"evolution-shell-component-utils.h" rather than "e-gui-utils.h"
	for e_pixmaps_update.

2001-05-25  Peter Williams  <peterw@ximian.com>

	* gui/component/Makefile.am: Reference libeshell.la instead of
	libeshell.a.

2001-05-25  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-reflow-adapter.c (addressbook_height):
	Correct the height calculation here to not include the
	E_CARD_SIMPLE_FIELD_FAMILY_NAME since it won't be displayed.

	* gui/widgets/e-minicard.c (remodel): Changed this to continue to
	be more consistent and simpler.

2001-05-23  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (view_destroy): fix strings such
	that ones that happening at the beginning or during an operation
	are followed by "..." and those that stop the operation are
	followed by "."
	(create_card_handler): same.
	(ldap_op_process_current): same, and also call _notify_complete if
	we can't connect to ldap server.
	(poll_ldap): same, and change "Polling for LDAP search result" to
	"Receiving LDAP search results"

	* backend/pas/pas-backend-file.c (pas_backend_file_search): call
	notify_status_message at the beginning of this function, and
	whenever we call _notify_complete.

2001-05-23  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-addressbook-model.h: add sequence_complete_id to
	EAddressbookModel and stop_state_changed to
	EAddressbookModelClass.  also, add prototype for
	e_addressbook_model_can_stop.

	* gui/widgets/e-addressbook-model.c (remove_book_view): disconnect
	from "sequence_complete", and set search_in_progress to FALSE.
	(sequence_complete): set search_in_progress to FALSE and emit
	"stop_state_changed."
	(e_addressbook_model_class_init): create the "stop_state_changed"
	signal.
	(e_addressbook_model_init): init stuff.
	(book_view_loaded): connect to "sequence_complete" signal.
	(book_view_loaded): set search_in_progress to TRUE and emit
	"stop_state_changed"
	(e_addressbook_model_stop): set search_in_progress to false, emit
	"stop_state_changed", and set our status to "Search Interrupted."
	(e_addressbook_model_can_stop): return search_in_progress.

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init):
	connect to the stop_state_changed signal on EAddressbookModel.
	(stop_state_changed): new function.
	(e_addressbook_view_can_stop): call e_addressbook_model_can_stop.

	* gui/component/addressbook.c (update_command_state): use
	e_addressbook_view_can_stop to set the sensitivity of the stop
	button.

2001-05-22  Dan Winship  <danw@ximian.com>

	* backend/ebook/e-book-listener.c (e_book_listener_check_queue):
	ref the listener for the duration of this function, since emitting
	"responses_queued" may cause it to be unreffed by its EBook in
	some cases, which could cause the second response_queue check to
	look at garbage data if it got destroyed.
	(e_book_listener_destroy): Call g_source_remove if idle_id is set.

2001-05-22  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c: track the change in
	evolution-addressbook.xml's bonobo ui path's.

2001-05-21  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (change_view_type): update_view_type
	is gone, since the menu item is gone.

	* gui/widgets/e-addressbook-table-adapter.c (create_card): use
	e_table_model_rows_inserted here.

2001-05-20  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook-config.c
	(addressbook_source_item_new): Removed an unused variable.

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Made text here non-const.

	* gui/component/select-names/e-select-names-popup.c
	(edit_contact_info_cb): Cast to a gpointer here.

	* gui/component/select-names/e-select-names.c
	(e_addressbook_create_ebook_table): Cast to E_TABLE_MODEL here.

2001-05-18  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(match_name): Do a better job constructing match strings, so we
	never try to use a segment of the name that isn't there (resulting
	in ugly (null)'s in the string).  Boost our score if some part of
	the name also matches the front part of the e-mail address, so the
	name match will always trump the e-mail match.

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Return the serialized EDestinations
	(rather than just a string w/ e-mail addresses) through the bonobo
	component's property bag.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_export_destinationv): Added.  A convenience routine
	for serializing the model's EDestinations into a string.

	* gui/component/select-names/e-select-names-popup.c
	(add_html_mail): Added.  Puts in a check menu item for whether or
	not the recipient wants HTML mail.
	(popup_menu_card): Add menu item for HTML mail.  Enable edit
	contact info item.
	(popup_menu_nocard): Add menu item for HTML mail.  Enable edit
	contact info item.

	* backend/ebook/e-book-util.c (e_book_use_local_address_book):
	Added.  Fetches the local addressbook and caches it on the first
	call.  This is meant to be an easy and efficient way to get at the
	local addressbook with the minimum of code.
	(e_book_query_address_locally): Added.  Convenience code that
	does an e-mail only e_book_name_and_email_query against the
	local address book.

	* backend/ebook/e-destination.c
	(e_destination_set_html_mail_pref): Added.  Allows the intended
	recipient's HTML mail preference to be manipulated.
	(e_destination_get_email_verbose): Added.  Cleaned up to use
	e_destination_get_name.
	(e_destination_get_html_mail_pref): Added.  Read the recipient's HTML mail
	preference.  If the destination is linked to a card, the
	preference is taken from the card (unless it has been explicitly
	overridden by a called to e_destination_set_html_mail_pref).
	(e_destination_get_address_textv): Added.  Form a unified address string
	from a NULL-terminated vector of EDestinations.
	(e_destination_export): Added.  Serialize an EDestination to a string.
	(e_destination_import): Added.  Unserialize a string to build an
	EDestination.
	(e_destination_exportv): Added.  Serialize a NULL-terminated vector of
	EDestinations to a string.
	(e_destination_importv): Added.  Unserialize a string to build a
	NULL-terminated vector of EDestinations.

	* gui/component/select-names/e-select-names-completion.c:
	Implemented local versions of g_strcasecmp and g_strncasecmp
	(which should really be in glib, I think...) for utf8, and used
	them to make this code utf8-safe.

2001-05-17  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (update_command_state): no more
	ContactFind command.

2001-05-17  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_class_init): add our selection_change
	signal.
	(e_minicard_view_widget_realize): connect to the ESelectionModel's
	selection_changed signal.
	(e_minicard_view_widget_selected_count): new function.
	(selection_change): new function - emit our "selection_change"
	signal.

	* gui/widgets/e-minicard-view-widget.h (struct
	_EMinicardViewWidgetClass): add selection_change signal.  also,
	add prototype for e_minicard_view_widget_selected_count.  

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_class_init): add our command_state_change
	signal.
	(e_addressbook_view_init): connect to the writable_status signal
	on the EAddressbookModel.
	(minicard_selection_change): new function - calls
	command_state_change.
	(create_minicard_view): connect to selection_change on the
	minicard_view so we know when to update command state.
	(table_selection_change): new function - calls
	command_state_change.
	(writable_status): new function - calls command_state_change.
	(command_state_change): new function - emits our
	"command_state_change" signal.
	(create_table_view): connect to the selection_change signal so we
	know to update the command state.
	(change_view_type): update the command state every time we change
	view types.
	(e_addressbook_view_can_create): new function.
	(e_addressbook_view_can_print): new function.
	(e_addressbook_view_can_delete): new function.
	(e_addressbook_view_can_stop): new function.

	* gui/widgets/e-addressbook-view.h (struct
	_EAddressbookViewClass): add command_state_change signal, and
	prototypes of functions the component can use to test the state of
	commands.

	* gui/widgets/e-addressbook-model.c (addressbook_destroy): unlink
	the writable_status signal on the EBook.
	(writable_status): new function.
	(e_addressbook_model_class_init): add our writable_status signal.
	(e_addressbook_model_init): init writable_status_id.
	(e_addressbook_model_set_arg): unlink the writable_status signal
	on the old EBook, and connect it on the new one.

	* gui/widgets/e-addressbook-model.h: add writable_status signal.

	* gui/component/addressbook.c (update_command_state): new
	function, set the sensitivity of the bonobo commands.
	(control_activate): update our command state immediately upon
	activating the control.
	(addressbook_factory_new_control): register command_state_change
	to update the commands.

2001-05-15  Chris Toshok  <toshok@ximian.com>

	* gui/search/e-addressbook-search-dialog.c
	(e_addressbook_search_dialog_init): initialize the model and
	adapter.
	(button_press): set on the model.
	(e_addressbook_search_dialog_new): same.
	(e_addressbook_search_dialog_set_arg): same.
	(e_addressbook_search_dialog_destroy): unref the model and
	adapter.

	* gui/search/e-addressbook-search-dialog.h (struct
	_EAddressbookSearchDialog): add our model and reflow adapter.

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

	* gui/widgets/e-minicard-view.c: (e_minicard_view_destroy): Fixed
	up the lifetime of the drag_data_get signal a bit.

2001-05-15  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard-view.c (add_to_list): MinicardViewModel
	-> ReflowAdapter name change.
	(get_card_list): same.
	(e_minicard_view_drag_begin): same.
	(supported_fields_cb): model -> adapter.
	(adapter_changed): hook up signals and set the empty message on
	our adapter.
	(e_minicard_view_set_arg): add support for "adapter", and set
	model -> adapter.
	(e_minicard_view_get_arg): same.
	(disconnect_signals): no more status_message.
	(do_remove): track to use adapter.
	(e_minicard_view_class_init): add adapter arg, and remove
	status_message.
	(e_minicard_view_init): all the code here is in adapter_changed
	now.

	* gui/widgets/e-minicard-view.h (struct _EMinicardView):
	EMinicardViewModel -> EAddressbookReflowAdapter.
	(struct _EMinicardViewClass): get rid of status_message.

	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_class_init): remove the status_message
	signal.
	(e_minicard_view_widget_new): take the adapter as our argument,
	and store it away for when we create the view.
	(e_minicard_view_widget_realize): when we create the view just set
	the adapter field on it.  also, don't connect to status_message.

	* gui/widgets/e-minicard-view-widget.h (struct
	_EMinicardViewWidget): add our adapter here, so we can pass it
	into the view when we create it.
	(struct _EMinicardViewWidgetClass): remove status_message.

	* gui/widgets/e-addressbook-view.c (status_message): new function,
	no more propagating status messages!
	(e_addressbook_view_init): create our model and conenct to its
	status_message signal.
	(book_writable_cb): set "editable" on the model, not our object.
	(e_addressbook_view_set_arg): same, but with "book" and "query" as
	well.
	(create_minicard_view): create our reflow adapter and pass it to
	the minicard view widget.  also, call e_reflow_model_changed so
	it'll pick up any already present cards.
	(table_double_click): ADDRESSBOOK_MODEL -> TABLE_ADAPTER.
	(get_card_list_1): remove the cast, since we don't need it any
	longer.
	(table_right_click): ADDRESSBOOK_MODEL -> TABLE_ADAPTER.
	(table_drag_data_get): same.
	(create_table_view): create the table adapter, and use it as our
	ETableModel.
	(change_view_type): remove the status_message hook up and setting
	of query/book/editable.
	(e_addressbook_view_stop): just call e_addressbook_model_stop here
	instead of switching on the view type.

	* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add
	our EAddressbookModel.

	* gui/widgets/Makefile.am (libeminicard_a_SOURCES): add the
	adapter files, and remove e-minicard-view-model.[ch].

	* gui/widgets/e-minicard-view-model.[ch]: removed.
	
	* gui/widgets/e-addressbook-table-adapter.c: new file.

	* gui/widgets/e-addressbook-table-adapter.h: new file.

	* gui/widgets/e-addressbook-reflow-adapter.c: new file.

	* gui/widgets/e-addressbook-reflow-adapter.h: new file.

	* gui/widgets/e-addressbook-model.c: rework this class to now
	subclass from ETableModel anymore.  It not subclasses from
	GtkObject, and we use table and reflow adapters to get at the
	data.

	* gui/widgets/e-addressbook-model.h: same.

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

	* gui/widgets/e-minicard-view-model.c (remove_card): Fix a small
	error not decreasing the data_count here.

2001-05-13  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.h: add prototype for
	addressbook_expand_uri.

	* gui/component/addressbook-component.c
	(destination_folder_handle_drop): create an EBook for
	@physical_uri.
	(dnd_drop_book_open_cb): actually add the dropped cards.

	* gui/component/addressbook.c (addressbook_expand_uri): abstract
	this code out from the set_prop method so we can use it in the
	component.
	(set_prop): call addressbook_expand_uri.

	* backend/ebook/e-card.c (e_card_load_cards_from_string): new
	function.

	* backend/ebook/e-card.h: add prototype for
	e_card_load_cards_from_string.

2001-05-12  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c
	(destination_folder_handle_drop): spew the data passed to us.
	(destination_folder_handle_motion): the suggested_action is not an
	ActionSet, but an Action, so don't or together multiple actions.

2001-05-11  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c (addressbook_source_dialog):
	correct bug causing the Ok button to never be enabled.

2001-05-11  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c (populate_context_menu):
	example.

2001-05-11  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard-view.c (e_minicard_view_drag_data_get):
	use e_card_list_get_vcard to build up the data to send.
	(e_minicard_view_init): connect to the model's drag_begin signal.
	(e_minicard_view_drag_begin): gather the list of cards being
	dragged and call gtk_drag_begin.
	(add_to_list): new function.
	(get_card_list): same.
	(disconnect_signals): disconnect the drag_data_get signal.
	(e_minicard_view_init): connect to the drag_begin signal on our
	model.

	* gui/widgets/e-minicard-view.h (struct _EMinicardView): change
	drag_card to drag_list.
	
	* gui/widgets/e-minicard-view-model.c (minicard_drag_begin): new
	function, emit our drag_begin signal.
	(addressbook_incarnate): connect to the item's drag_begin signal.
	(e_minicard_view_model_class_init): init our drag_begin signal.

	* gui/widgets/e-minicard-view-model.h: add drag_begin signal.

	* gui/component/addressbook-config.c (addressbook_source_dialog):
	always loop through all source types here, making LDAP first so
	it's forces as the first notebook item.
	(addressbook_config_auth_label): remove SASL case.
	(addressbook_source_edit_changed): same.
	(addressbook_source_item_new): flag the area of code that needs to
	go into the advanced dialog (if we add one before someone
	graciously redesigns the entire addressbook gui :)


	* gui/component/addressbook-storage.c (ldap_unparse_auth): remove
	SASL case.
	(ldap_parse_auth): same.

	* gui/component/addressbook-storage.h: make LDAP come first in our
	source type enumeration, and remove the SASL auth type.

2001-05-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card.c (e_card_set_arg): If the name is set and
	the full_name or file_as haven't been yet, set them.

2001-05-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/pas-backend-file.c: Reordered the includes here.
	(string_to_dbt): The sleepycat libdb documentation suggests
	memseting the DBT to 0 so we do that here.

	* gui/widgets/e-minicard-view-model.c (addressbook_height): Skip
	the E_CARD_SIMPLE_FIELD_FAMILY_NAME field.

	* gui/widgets/e-minicard.c (remodel): Skip the
	E_CARD_SIMPLE_FIELD_FAMILY_NAME field.

2001-05-11  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): only
	check schema support if we've connected.

2001-05-11  Chris Toshok  <toshok@ximian.com>

	* contact-editor/e-contact-editor.c (enable_writable_fields):
	don't leak the ECard or ECardSimple.

2001-05-08  Iain Holmes  <iain@ximian.com>

	* backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.oaf.in:
	Renamed the GnomeCard_Importer.oaf.in to this, and change the IID.

	* Makefile.am: Rename all the GnomeCard to VCard.

	* evolution-vcard-importer.c: Make the GnomeCard a generic 
	vcard importer.

2001-05-08  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/Makefile.am (libebookinclude_HEADERS): Removed
	e-card-pairs.h since we're not using it.

	* backend/ebook/e-book-view.c (e_book_view_check_listener_queue):
	Added break; to default: case here.

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Added changed variable so as to avoid sync_card when possible.
	(e_card_simple_destroy): Free all the data here properly.
	(e_card_simple_get_arg): Slight simplification here.
	(fill_in_info, e_card_simple_arbitrary_foreach,
	e_card_simple_get_arbitrary): Call e_card_free_empty_lists here to
	save a bit of memory.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Fixed up
	includes a bit.
	(e_card_list_get_vcard, e_card_list_send): Added these functions
	for acting on a group of cards.
	(parse_org): Cleaned up this function a bit.
	(e_card_free_empty_lists): Added this function to delete
	unnecessary ELists and save a bit of memory.
	(e_v_object_get_child_value): Made this return NULL if not found
	instead of g_strdup("").

	* contact-editor/e-contact-save-as.c,
	contact-editor/e-contact-save-as.h (e_contact_list_save_as): Added
	this function to save multiple contacts.

	* gui/widgets/Makefile.am: Commented out reflow test.
	(libeminicard_a_SOURCES): Added e-minicard-view-model.c and
	e-minicard-view-model.h.

	* gui/widgets/e-minicard-view-model.c,
	gui/widgets/e-minicard-view-model.h: Model for use in
	EMinicardView.

	* gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h:
	Reworked this to use the new EReflow stuff.

	* gui/widgets/e-minicard.c (e_minicard_event): Doesn't handle
	right click menus now.  Emits a signal on the parent canvas item
	instead.

	* printing/e-contact-print-envelope.c,
	printing/e-contact-print-envelope.h
	(e_contact_print_envelope_list_dialog_new): Added this function to
	print multiple envelopes (only prints first for now.)

	* printing/e-contact-print.c, printing/e-contact-print.h
	(e_contact_print_card_list_dialog_new): Added this function to
	print multiple cards.  Only prints the first for now.

2001-05-07  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c (remove_folder): flesh out
	the function more.  It should work now, but there's no way to
	invoke this method from the ui at the moment, heh.

2001-05-07  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook.c (book_open_cb): Use a different
	error message in the ldap support/no ldap support/file cases.

2001-05-07  Gediminas Paulauskas <menesis@delfi.lt>

	* gui/component/addressbook.c: use define from
	widgets/misc/e-filter-bar.h instead of own enumeration and search menu
	names.

	* gui/component/Makefile.am, gui/component/select-names/Makefile.am:
	removed EVOLUTION_VERSION.

2001-05-04  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c (remove_folder): un-#if 0
	this.
	(xfer_folder): add skeleton code to validate xfer request.  always
	notifies with PERMISSION_DENIED at present.
	(populate_context_menu): un-#if 0 this.
	(get_dnd_selection): same.
	(destination_folder_handle_motion): new function.
	(destination_folder_handle_drop): new function.
	(factory_fn): create a EvolutionShellComponentDndDestinationFolder
	interface, and add it to our shell component.

2001-05-04  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_get_book_view): init change_id to NULL

2001-05-02  JP Rosevear  <jpr@ximian.com>

	* gui/component/addressbook.c (addressbook_view_free): unref the
	book if the view is being destroyed

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_get_book_view): unref the book_view when
	we are finished, it is only interesting if someone else has reffed
	it now (weak reference)
	(pas_backend_file_add_client): unref the book for the same reason
	as above

	* Fixes bug #2255

2001-04-30  JP Rosevear  <jpr@ximian.com>

	* backend/pas/pas-backend-file.c (vcard_matches_search): if the
	view does not contain a search context, the result is by default
	false fixes #2470

2001-04-25  Dan Winship  <danw@ximian.com>

	* gui/component/addressbook-factory.c (main): Remove call to
	unicode_init.

2001-04-23  Jon Trowbridge  <trow@ximian.com>

	* gui/component/e-address-popup.c: Lots of code has been
	simplified here.
	(e_address_popup_factory_new_control): Rather than directly pop
	our control up in a window (via the e_address_popup_popup
	function, which is now gone), just return the widget and let the
	caller do the popping.  This works better, since it means we don't
	have to work around the vagaries of bonobo focus & event handling.
	(e_address_popup_set_name): Refresh when both name & email have
	been set, rather than checking a stupid counter.
	(e_address_popup_set_email): Ditto.

2001-04-22  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/addressbook-storage.c
	(addressbook_storage_clear_sources): Added save_source_data here.

2001-04-21  Jon Trowbridge  <trow@ximian.com>

	* contact-editor/e-contact-quick-add.c (clicked_cb): Properly
	convert to utf8. (Bug #2256)
	(build_quick_add_dialog): Properly convert from utf8. (Bug #2256)

2001-04-16  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-destination.c (e_destination_get_name): Added.

	* gui/component/select-names/e-select-names.c
	(real_add_address_cb): Use e_select_names_model_append.  It's
	nicer.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_append): Added.

	* gui/component/select-names/e-select-names-completion.c
	(book_query_process_card_list): Filter out completion matches that
	don't have an associated e-mail address.
	(book_query_score): Give a bonus to the primary address, so that
	it always comes up first in the completion results.

	* gui/component/e-address-popup.c (e_address_popup_refresh_names):
	Convert utf8 strings into gtk strings before displaying.

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

	* backend/ebook/e-book-view-listener.c,
	backend/ebook/e-book-view-listener.h: Added the function
	e_book_view_listener_stop to tell the book view listener to stop
	sending signals.

	* backend/ebook/e-book-view.c (e_book_view_destroy): Tell the
	EBookViewListener to stop when we're destroyed.

	* backend/pas/pas-backend-file.c (view_destroy,
	pas_backend_file_process_get_book_view,
	pas_backend_file_process_get_changes): Cleaned these up a bit
	using bonobo_object_ref and bonobo_object_unref.
	(pas_backend_file_process_get_book_view,
	pas_backend_file_process_get_changes): bonobo_object_release_unref
	the EBookListener here.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_get_book_view): Cleaned this up a bit
	using bonobo_object_ref.  Make sure to unref the listener when
	we're done with it.  Put the new book_view in the list before
	telling the book_listener that it's ready.

	* backend/pas/pas-book-view.c (pas_book_view_construct): Cleaned
	this up a bit using bonobo_object_dup_ref.
	(pas_book_view_destroy): Cleaned this up a bit using
	bonobo_object_release_unref.

	* backend/pas/pas-book.c (pas_book_queue_get_book_view,
	pas_book_queue_get_changes): bonobo_object_dup_ref here instead of
	just duplicating.

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

	* backend/ebook/e-book-listener.c
	(impl_BookListener_respond_get_cursor): Ref the cursor here when
	we receive it.
	(impl_BookListener_respond_get_view,
	impl_BookListener_respond_get_changes): Ref the book_view here
	when we receive it.
	(impl_BookListener_respond_open_book): Ref the book here when we
	receive it.
	(e_book_listener_destroy): Unref the objects in our queue here.

	* backend/ebook/e-book-view.c (e_book_view_construct): Cleaned
	this up using bonobo_object_dup_ref.
	(e_book_view_destroy): Cleaned this up using
	bonobo_object_release_unref.

	* backend/ebook/e-book.c (e_book_do_response_get_cursor,
	e_book_do_response_get_view, e_book_do_response_get_changes,
	e_book_unload_uri): Cleaned this up using
	bonobo_object_release_unref.

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

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Get the ESelectNamesModel from the
	widget's text model instead of storing it as a gtk_object_set_data
	since it may change.

2001-04-12  Jason Leach  <jasonleach@usa.net>

	* backend/pas/pas-backend-file.c (INITIAL_VCARD): Update the Voice
	and Fax phone numbers too, finishing off bug #1667.

2001-04-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/pas-backend-file.c (INITIAL_VCARD): Update the built
	in VCard.

2001-04-12  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (local_record_from_ecard): put the
	business address into the pilot record as that is what we put into
	the desktop record
	(ecard_from_remote_record): set both the address label and
	delivery address to avoid bad parser guessing, fixes #2143

	* backend/ebook/e-card-types.h: remove deprecated pilot code

	* backend/ebook/e-card.c: ditto

	* backend/ebook/e-card.h: ditto
	
2001-04-11  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (local_record_from_ecard): Don't add
	more than five phone numbers and set the remaining blank entries
	to some reasonable defaults

2001-04-11  Christopher James Lahey  <clahey@ximian.com>

	* backend/ebook/e-card-simple.h: Added
	E_CARD_SIMPLE_FIELD_LAST_SIMPLE_STRING.

	* gui/component/addressbook-component.c (accepted_dnd_types):
	Fixed a warning here.

	* gui/widgets/e-addressbook-model.c: Modified this to have more
	columns, but not let them be edited if they're not a simple
	string.

	* gui/widgets/e-minicard-view.c (e_minicard_view_init): Fixed a
	warning and a memory leak here.

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

	* backend/ebook/evolution-gnomecard-importer.c: added missing #include.
	* contact-editor/e-contact-editor.c (_arrow_pressed): popup menu items were
	not translated after selecting one of them.
	* gui/widgets/e-addressbook-view.c: mark popup menu items with N_().
	Updated list[] for translators.
	* gui/widgets/e-minicard.c: same.
	* gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_set_arg): fix warning
	for "editable" arg.
	* gui/widgets/e-minicard-view.c: convert "empty_message" to utf8.

2001-04-09  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-component.c (remove_folder): stubbed,
	#if 0'ed
	(xfer_folder): same.
	(populate_context_menu): same.
	(get_dnd_selection): same.
	(factory_fn): add the accepted drag types ("text/x-vard") to
	folder_types.

2001-04-09  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard.c (e_minicard_event): on BUTTON_PRESS: if
	it's button 1, store the button x, y, and set drag_button_down to
	TRUE.  on BUTTON_RELEASE: always set drag_button_down to FALSE.
	for MOTION_NOTIFY: initiate drag if the pointer has moved 3
	pixels.

	* gui/widgets/e-minicard.h (struct _EMinicard): add fields for
	button x, y, and a bit for if the button has been pressed so we
	can tell whether a motion should be a drag.
	(struct _EMinicardClass): add drag_begin signal.

	* gui/widgets/e-minicard-view.c (e_minicard_view_drag_begin): new
	function, starts the drag.
	(book_view_loaded): connect the "drag_data_get" signal.
	(e_minicard_view_drag_data_get): new function.

	* gui/widgets/e-minicard-view.h (struct _EMinicardView): add
	drag_card and id for canvas_drag_data_get_id.

	* gui/widgets/e-addressbook-view.c (table_drag_data_get): new
	function.
	(create_table_view): add d&d stuff.

2001-04-08  Chris Toshok  <toshok@ximian.com>

	* printing/e-contact-print.c: add #include <sys/types.h> since
	gnome-print.h uses time_t without including it.  this really
	should be fixed in gnome-print.

2001-04-08  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client):
	make sure to notify new clients to the writable status of an
	already open (and authenticated) book.

2001-04-04  Kjartan Maraas  <kmaraas@gnome.org>

	* contact-editor/e-contact-editor.[ch]: Fix headers.
	* component/addressbook-storage.c: Same here.
	* gui/search/e-addressbook-search-dialog.c: Same here.
	* gui/widgets/e-addressbook-view.c: Same here.
	* gui/widgets/e-minicard-label.c: Same here.
	* gui/widgets/e-minicard-view-widget.c: Same here.
	* gui/widgets/e-minicard-view.c: Same here.
	* gui/widgets/e-minicard-widget-test.c: Same here.
	* gui/widgets/e-minicard-widget.c: Same here.
	* gui/widgets/e-minicard.c: Same here.
	* gui/widgets/test-minicard-label.c: Same here.

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

	* gui/widgets/e-addressbook-view.c (table_double_click): Fixed a
	crash here.

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

	* gui/widgets/e-addressbook-model.c (COLS): Made this table model
	more consistent in the number of columns it has.
	(addressbook_append_row): Fixed this function.  We removed the col
	offset.

2001-04-02  Iain Holmes  <iain@ximian.com>

	* backend/ebook/evolution-gnomecard-importer.c (importer_init): Shut
	down and unregister the factory on exit. 

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

	* contact-editor/contact-editor.glade: changed icon to
	evolution-contacts-plain.png.
	* gui/component/addressbook.c: use new pixmap cache. Added icon for new
	contact, print, print preview, changed filenames of renamed icons.

2001-03-31  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names.c
	(real_add_address_cb): Call e_select_names_model_clean after
	adding address.  This should deal with the bug reports related
	to stray commas.

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_clean): Added.  Remove all empty destinations.

	* backend/ebook/e-destination.c (e_destination_is_empty): Added.  Check
	if an EDestination is in essentially a null state.

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

	* backend/pas/pas-backend-file.c (pas_backend_file_add_client):
	Tell new clients that are added whether they're writable.

2001-03-29  Jon Trowbridge  <trow@ximian.com>

	* printing/e-contact-print.c: Added #include <libgnome/gnome-paper.h>
	
	* printing/e-contact-print-envelope.c: Added #include <time.h>
	and #include <libgnome/gnome-paper.h>

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

	* gui/component/select-names/e-select-names-completion.c
	(match_email): Better handle matching of "nameless" contacts.

	* backend/ebook/e-destination.c (e_destination_get_string): Better
	handle the case of a "nameless" contact.

2001-03-29  Kjartan Maraas  <kmaraas@gnome.org>

	* *.*: Clean up #includes. Replace <gnome.h>, <bonobo.h> and
	<gtk/gtk.h> with more finegrained headers where needed.

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

	* backend/ebook/e-card.c (e_card_set_arg): Fixed some crashes.

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

	* gui/component/select-names/e-select-names-table-model.c
	(fill_in_info): Use E_CARD_SIMPLE_FIELD_NAME_OR_ORG instead of
	getting the NAME and then the ORG.  That way if we expand
	NAME_OR_ORG, this will use it.

	* gui/component/select-names/e-select-names.c
	(e_addressbook_create_ebook_table, SPEC): Use the correct column
	in the SPEC.

2001-03-25  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_seq_complete_cb): Rather than starting
	the pending query by directly calling
	e_select_names_completion_do_query, call
	e_completion_begin_search.  Circumventing the ECompletion API was
	causing it to get confused in some cases.

2001-03-23  Jon Trowbridge  <trow@ximian.com>

	* gui/widgets/e-minicard-widget.c (e_minicard_widget_set_card):
	Added.  Call me old-fashioned, but I just prefer to have a real
	API rather than doing everything via gtk_object_get/set-type
	calls.
	(e_minicard_widget_set_arg): Changed to call
	e_minicard_widget_set_card.

	* backend/ebook/e-book-util.c: Small changes to get rid of
	compiler warnings.  (Casting out const, removed unused variables,
	etc.)  Removed some debugging messages.

	* gui/component/addressbook-factory.c (main): Added call
	to e_address_popup_factory_init.

	* gui/component/e-address-popup.c: Added.  A popup gadget that is
	invoked (as a bonobo control) when an address is left-clicked in
	the mailer.  The addressbook is queries, and the address is either
	displayed as a minicard (if it already exists) or in a "generic
	format".  A button is provided for editting/adding the contact.
	Some of the semantics of this widget are a bit... non-standard,
	because of bonobo issues.  I can't really seem to replicate
	popup-menu behavior because of how bonobo propogates events, etc.
	so I've tried to produce something that I think is non-annoying.
	YMMV.

2001-03-22  Iain Holmes  <iain@ximian.com>

	* backend/ebook/evolution-gnomecard-importer.c: Update to the new
	IDL.

2001-03-20  Miguel de Icaza  <miguel@ximian.com>

	* gui/component/addressbook.c (update_pixmaps): Added artwork from
	Jakub. 

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

2001-03-17  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-completion.c: Brutally
	refactored to boost performance in large-addressbook situations.
	These fixes give accepable performance (even with the suboptimal
	pas-backend-file searching) using tigert's addressbook-of-death.

	* backend/pas/pas-backend-file.c (pas_backend_file_search): 
	Start feeding query matches back to the caller before the
	entire search is complete; this gives us some "instant feedback"
	rather than causing evolution to totally lock up...

	* backend/ebook/e-book.c (e_book_queue_op): Tag all queued ops.
	(e_book_cancel_op): Added.  Search for a pending op with a given
	tag, and mark it as inactive.
	(e_book_do_response_get_cursor): Don't execute callback if this
	operations has been cancelled.
	(e_book_do_response_get_view): Ditto.
	(e_book_do_response_get_changes): Ditto.
	(e_book_do_response_get_supported_fields): Ditto.
	(e_book_get_supported_fields): Return an operation tag (that can
	be used to cancel the operation) rather than just TRUE/FALSE.
	Zero is always an invalid tag and is returned in the case of an
	error, so this shouldn't break any code that looked at the return
	value (unless it did so in a particularly stupid way, of course).
	(e_book_get_cursor): Ditto.
	(e_book_get_book_view): Ditto.
	(e_book_get_changes): Ditto.
	(e_book_cancel): Added.  Cancel a pending operation.  (Basically
	a call to e_book_cancel_op with error checking, etc.)

	* backend/ebook/e-book-types.h: Added E_BOOK_STATUS_CANCELLED.

2001-03-17  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-book-listener.c
	(e_book_listener_queue_writable_status): new function.
	(impl_BookListener_report_writable): new function.
	(e_book_listener_get_epv): fill in epv->notifyWritable.

	* backend/ebook/e-book-listener.h: add writable status entries.

	* backend/ebook/e-book.c (e_book_do_writable_event): new function.
	(e_book_check_listener_queue): add WritableStatusEvent to the
	switch.
	(e_book_class_init): register writable_status signal.

	* backend/ebook/e-book.h: add writable_status signal.

	* backend/idl/addressbook.idl: add notifyWritable method to
	BookListener.

	* gui/widgets/e-minicard.c (e_minicard_class_init): add "editable"
	arg.
	(e_minicard_init): init editable.
	(e_minicard_set_arg): loop over the minicard fields setting their
	"editable".
	(e_minicard_get_arg): add editable.
	(supported_fields_cb): use editable when creating the
	contact_editor.
	(add_field): set "editable" when creatin the e_minicard.

	* gui/widgets/e-minicard.h (struct _EMinicard): add "editable".

	* gui/widgets/e-minicard-view.c (e_minicard_view_class_init): add
	editable arg.
	(e_minicard_view_init): init editable.
	(create_card): pass editable to e_minicard canvas item.
	(e_minicard_view_set_arg): bit of a hack - loop over all the
	canvas items setting their "editable."
	(e_minicard_view_get_arg): add editable.
	(supported_fields_cb): use editable when creating the contact
	editor.

	* gui/widgets/e-minicard-view.h (struct _EMinicardView): add
	"editable."

	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_class_init): add "editable" field.
	(e_minicard_view_widget_init): init editable to FALSE.
	(e_minicard_view_widget_set_arg): save editable, and pass it along
	the e-minicard-view.
	(e_minicard_view_widget_realize): same.
	(e_minicard_view_widget_get_arg): add editable.

	* gui/widgets/e-minicard-view-widget.h (struct
	_EMinicardViewWidget): add "editable" field.

	* gui/widgets/e-minicard-label.h (struct _EMinicardLabel): add
	"editable" field.

	* gui/widgets/e-minicard-label.c (e_minicard_label_class_init):
	add "editable" arg.
	(e_minicard_label_set_arg): editable, set it on the e_text too.
	(e_minicard_label_get_arg): editable.
	(e_minicard_label_construct): set the "editable" field when we
	create the e_text cavas item

	* gui/widgets/e-addressbook-view.c (e_addressbook_view_init):
	default editable to FALSE.
	(book_writable_cb): new function, set our editable field and
	gtk_object_set it on the active view.
	(e_addressbook_view_set_arg): set the active view's editable when
	we set the view's book, and connect the "writable_status" signal
	to book_writable_cb.
	(change_view_type): same.
	(supported_fields_cb): use our "editable" when creating the
	contact editor.

	* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add
	editable field.

	* gui/widgets/e-addressbook-model.c (e_addressbook_model_init):
	change the default of editable to FALSE.

	* backend/pas/pas-book.c (pas_book_report_writable): new function.

	* backend/pas/pas-book.h: prototype for pas_book_report_writable.

	* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): if
	we open the file O_RDWR (or create it) report it as writable.  if
	we can't open it as O_RDWR, try opening it read-only before we
	attempt to create it.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_authenticate_user): if we authenticate
	successfully, grant write permissions (this is lacking but there's
	really nothing we can do to determine the extent of the access
	afforded a user.)


2001-03-15  Jon Trowbridge  <trow@ximian.com>

	* gui/component/e-address-widget.c: Added addressbook querying and
	"cardification" functions, which are turned off by default for now
	because of addressbook bugs.  Added a popup menu option to turn
	queries on, so that others can enjoy the thrill of massive flaming
	death.

	* gui/component/addressbook-factory.c (main): Made warnings always
	be fatal.

	* backend/pas/pas-book-view.c: Added some debugging spew.

	* backend/pas/pas-backend-file.c (pas_backend_file_search): Added
	a little experimental code to try to make file searches scale
	better.  #if 0/#endif-ed out for now.

	* contact-editor/e-contact-quick-add.c: #included e-book-util.h.

	* backend/ebook/e-card.c (e_card_name_match_string): Added.
	Looser name-matching function.
	(e_card_email_match_string): Added.  Loose e-mail matching.

	* backend/ebook/e-book-view-listener.c
	(e_book_view_listener_check_queue): Added code to cause us to
	abort rather than get trapped in a 100%-CPU-consuming loop in
	certain situations.  Now we just need to figure out how to avoid
	these situations altogether.

	* backend/ebook/e-book-util.c: Added.  Now contains the simple
	query stuff and the open local addressbook functions.

	* backend/ebook/e-book.c: Moved simple query stuff and open local
	addressbook functions into e-book-util.c.

2001-03-15  Dan Winship  <danw@ximian.com>

	* gui/widgets/e-minicard-label.c (e_minicard_label_set_arg): 
	* gui/widgets/e-minicard.c (e_minicard_set_arg, e_minicard_event):
	Update arguments to e_canvas_item_grab_focus.

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

	* gui/component/addressbook.c (update_pixmaps): Fix a warning
	here.

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

	* gui/widgets/Makefile.am (minicard_label_test_LDADD): Change to
	ld order from Greg Williams.

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

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_get_book_view): Moved where we call
	pas_book_respond_get_book_view.

2001-03-12  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c: add E_STRING_PROP for
	categories.

	* backend/pas/evolutionperson.schema: add categories attribute.

	* backend/ebook/e-card-simple.c (field_data): add
	E_CARD_SIMPLE_FIELD_CATEGORIES.

	* backend/ebook/e-card-simple.h: add
	E_CARD_SIMPLE_FIELD_CATEGORIES.

2001-03-12  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard.c (supported_fields_cb): add is_read_only
	param.

	* gui/widgets/e-minicard-view.c (supported_fields_cb): add
	is_read_only param.

	* gui/widgets/e-addressbook-view.c (supported_fields_cb): add
	is_read_only param.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_activate_obj): add is_read_only param.
	also, include a little policy here and make it TRUE, as the user
	shouldn't be editting in this context anyway (imo).

	* gui/component/addressbook.c (supported_fields_cb): add
	is_read_only param.

	* contact-editor/test-editor.c (main): add is_read_only param.

	* contact-editor/e-contact-editor.c (set_read_only): new function,
	that either enables or disables all the text fields, combo boxes,
	and some buttons, depending on the state of is_read_only.
	(e_contact_editor_class_init): add read/write arg "is_read_only".
	(full_name_clicked): set the is_read_only of the fullname dialog
	to the editor's.
	(full_addr_clicked): same.
	(e_contact_editor_new): add is_read_only param, that gets set
	along with the other params.
	(e_contact_editor_set_arg): add setter for is_read_only.
	(e_contact_editor_get_arg): add getter for is_read_only.
	(_phone_arrow_pressed): change TRUE to !editor->is_read_only for
	entry.
	(_email_arrow_pressed): same.
	(_address_arrow_pressed): same.
	(enable_writable_fields): same.

	* contact-editor/e-contact-editor-fullname.c
	(e_contact_editor_fullname_class_init): add read/write arg
	"is_read_only".
	(e_contact_editor_fullname_set_arg): add setter for is_read_only
	that enables/disables all the entries/combos.
	(e_contact_editor_fullname_get_arg): add getter for is_read_only.

	* contact-editor/e-contact-editor-fullname.h (struct
	_EContactEditorFullname): add is_read_only flag.

	* contact-editor/e-contact-editor-address.c
	(e_contact_editor_address_class_init): add read/write arg
	"is_read_only".
	(e_contact_editor_address_set_arg): add setter for is_read_only
	that disables/enables all the entries/combos.
	(e_contact_editor_address_get_arg): add getter for is_read_only.

	* contact-editor/e-contact-editor-address.h (struct
	_EContactEditorAddress): add is_read_only flag.

2001-03-13  Iain Holmes  <iain@ximian.com>

	* backend/ebook/Makefile.am: Change the importer includes around a bit.

	* backend/ebook/evolution-gnomecard-importer.c: Correctly add the includes.

2001-03-09  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: PISOCK_INCLUDEDIR has become
	PISOCK_CFLAGS in gnome-pilot.m4 and remove capplet foo

2001-03-11  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book.c (e_book_simple_query): Added. A
	simplified, cancellable query mechanism that lets you avoid
	dealing with EBookView.
	(e_book_simple_query_cancel): Added. Cancels a running query.

	* backend/ebook/e-book-types.h: Add enum EBookSimpleQueryStatus.

2001-03-08  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-popup.c
	(quick_add_cb): Switched to use e_contact_quick_add_free_form.
	Removed debugging code, hopefully without introducing any bugs
	in the process.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_insert_length): Fix bug with commas
	inside of name/address combos.  As long as the comma is inside of
	quotes, it will be treated as part of the name rather than as a
	break between addresses.

	* gui/component/select-names/e-select-names-completion.c
	(match_nickname): Use e_card_name_to_string for nickname match
	strings.
	(match_email): Use e_card_name_to_string for email match strings.
	(e_select_names_completion_begin): Strip quotes out of query text,
	so we don't produce malformed sexps.
	Added William Blake quote easter egg.

	* contact-editor/e-contact-quick-add.c: Further attempts to fix...
	mostly unsuccessful.
	(e_contact_quick_add_free_form): Added.  Takes a single string
	and tries to parse out (using some simple, loose rules) the
	name and e-mail -- then calls e_contact_quick_add.  An attempt to 
	get the computer to automatically Do The Right Thing.

	* backend/ebook/e-book.c: Fixed some broken indentation.  Yes, I'm
	anal.

	* gui/component/GNOME_Evolution_Addressbook.oafinfo: Added oaf_server
	info for EAddressWidget.

	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Added oaf_server
	info for EAddressWidget.

	* gui/component/addressbook-factory.c (main): Add call to
	e_address_widget_factory_init.

	* gui/component/e-address-widget.h: 
	* gui/component/e-address-widget.c: Added.  A little widget (and a
	Bonobo control, BTW) for displaying addresses, with a left-click
	menu.  Used to display addresses in the mail viewer (as embedded
	GtkHTML objects, replacing the text previously used).  Still quite
	incomplete.

2001-03-08  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook-component.c (factory_fn): Specify a
	NULL `EvolutionShellComponentGetDndSelectionFn'.

2001-03-06  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_insert_length): Fix glitch with
	inserting comma-delimited stuff when length > 1.

2001-03-06  Jon Trowbridge  <trow@ximian.com>

	* backend/ebook/e-book.c (e_book_load_local_address_book): Added.
	Just encapsulates opening
	file://~username/evolution/local/Contactes/addressbook.db, so that
	path doesn't need to be hardwired in throughout the code.

2001-03-06  Benjamin Kahn  <xkahn@cybersites.com>

	* contact-editor/e-contact-quick-add.c (clicked_cb): 
	Added the third argument to e_contact_editor_new.  (Cheated
	and send NULL for the field argument, which is probably
	troublesome.  It will be fixed soon by either clahey or 
	toshok.)

2001-03-06  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-model.c
	(e_select_names_model_replace): Fix a reference counting bug.

	* gui/component/select-names/e-select-names-manager.c (popup_cb):
	A callback for creating the appropriate popup by calling
	e_select_names_popup.
	(e_select_names_manager_create_entry): Connect popup_cb to the
	entry's popup signal

	* gui/component/select-names/e-select-names-popup.c: Added.  Code
	for popup right-click menus for recipient entries.  Still a bit
	incomplete.

	* backend/ebook/e-destination.c (e_destination_get_email_num):
	Added.

	* contact-editor/e-contact-quick-add.c: Added.  Some code and a
	dialog for very quickly adding entries to the address book.
	Still not fully working.

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

	* backend/ebook/e-card-simple.c: Cleaned up the formatting in this
	file a bit.

	* contact-editor/e-contact-editor.c (e_contact_editor_set_arg):
	Made it so that passing in NULL to the writable_fields arg sets
	the set of writable fields to the empty set.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_activate_obj): Pass NULL as the
	writable_fields argument here.

	* gui/widgets/e-addressbook-model.c: Don't offset by one here.
	This way we will get the file_as field as one of our
	ETableColumns.

	* gui/widgets/e-addressbook-view.c (SPEC): Updated this for the
	changes in ECardSimple.

	* gui/widgets/e-minicard.c (remodel): Don't remodel if the item
	isn't realized.

2001-03-02  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c: doh, track renaming of
	objectclass from evolvePerson to evolutionPerson.

2001-03-02  Chris Toshok  <toshok@ximian.com>

	* backend/pas/evolutionperson.schema: rename evolveperson.schema
	to this, and add remaining attributes.

	* backend/pas/pas-backend-ldap.c: add remaining fields, and fix up
	ones that were incorrent (either the ldap_attr or the query prop).

2001-03-02  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: update sed script

	* conduit/e-address.conduit.in: update for new pilot foo

2001-03-02  Chris Toshok  <toshok@ximian.com>

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_activate_obj): track change to
	e_contact_editor_new.

2001-03-02  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (add_objectclass_mod): add
	objectclasses for "person", "organizationalPerson", and "top" as
	well, just to be complete.
	(check_schema_support): rename check_for_evolve_person to this, to
	reflect that we're doing more than just checking for that
	objectClass.
	(add_oc_attributes_to_supported_fields): new function.
	(add_to_supported_fields): new function.
	(pas_backend_ldap_destroy): unref supported_fields.

2001-03-02  Chris Toshok  <toshok@ximian.com>

	* gui/widgets/e-minicard-view.c (supported_fields_cb): new
	function.
	(e_minicard_view_event): split out the creation of the contact
	editor to the supported_fields callback.

	* gui/widgets/e-minicard.c (supported_fields_cb): new function.
	(e_minicard_event): split out the creation of the contact editor
	to the supported_fields callback.

	* gui/widgets/e-addressbook-view.c (table_double_click): split
	function into two functions, since e_book_get_supported_fields
	requires a callback now.
	(supported_fields_cb): new function.

	* gui/component/addressbook.c (new_contact_cb): split this into
	two functions, since e_book_get_supported_fields requires a
	callback now.
	(supported_fields_cb): new function.

	* contact-editor/test-editor.c (main): track change to
	e_contact_editor_new (pass NULL for the writable_fields arg.)

	* contact-editor/contact-editor.glade: fix several labels so they
	make better sense (since we look them up in e-contact-editor.c.)

	* contact-editor/e-contact-editor.h (struct _EContactEditor): add
	writable_fields.  also, add it to e_contact_editor_new.
	
	* contact-editor/e-contact-editor.c (e_contact_editor_class_init):
	add writable_fields arg.
	(e_contact_editor_destroy): unref the writable_fields list.
	(e_contact_editor_new): pass @fields as the writable_fields arg.
	(e_contact_editor_set_arg): add writable_fields support.
	(enable_writable_fields): new (very hairy) function, to disable
	everything and reenable just the fields listed in the
	writable_fields list.
	(_email_arrow_pressed): set label-email1, entry-email1, and
	checkbutton-htmlmail to be sensitive since the only way to get
	here is to activate a writable field in the menu.
	(_address_arrow_pressed): set label-address, button-fulladdr, and
	text-address to be sensitive for the same reason.
	(_phone_arrow_pressed): sensitize the label and entry for the same
	reason.

2001-03-02  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-card-simple.c (field_data): add new entries for
	phone enums, and fill in the ecard_field with (bogus in all but a
	few cases) strings.  these are the strings sent from wombat to
	evolution-addressbook for supported_fields.
	(e_card_simple_get_ecard_field): new function.
	(e_card_simple_map_phone_to_field): new function.
	(e_card_simple_map_email_to_field): new function.
	(e_card_simple_map_address_to_field): new function.

	* backend/ebook/e-card-simple.h: add a few phone entries to the
	ECardSimpleField enum, and add prototypes for mapping the list
	types (phone, email, address) to ECardSimpleField.  Also, add
	prototype for e_card_simple_get_ecard_field.

	* backend/ebook/e-book.c
	(e_book_do_response_get_supported_fields): don't build the EList
	here, it's already built.

	* backend/ebook/e-book-listener.h: change fields from the CORBA
	sequence to the EList in our reponse struct.

	* backend/ebook/e-book-listener.c
	(e_book_listener_queue_get_supported_fields_response): we make the
	EList here, since after we return the CORBA list is freed up.

2001-03-02  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_get_supported_fields): implement
	properly, we support everything.

2001-03-01  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_set_property_fn): Oops, we do need to be able to write to
	"text" after all (for things like Reply-to: to work properly).
	Fixed.
	(impl_SelectNames_get_entry_for_section): Made "text" a writeable
	property again.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_insert_length): Increment pos so that
	we don't reverse strings when length > 1 (a particularly amusing
	bug).

	* gui/component/select-names/e-select-names-completion.c
	(e_select_names_completion_destroy): Check for NULL before calling
	gtk_object_unref (GTK_OBJECT (---)), to get rid of annoying error
	messages.

2001-03-01  Jon Trowbridge  <trow@ximian.com>
	
	* gui/component/select-names/e-select-names-completion.c: I am an
	idiot.

2001-03-01  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-table-model.c
	(fill_in_info): Change for new EDestination/ESelectNamesModel API.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_get_source): Added.  A function for
	looking up the ESelectNamesModel by id.  (I didn't end up using
	this function, but it might come in handy later.)
	(e_select_names_manager_get_cards): #if 0/#endif out this
	function.
	(e_select_names_manager_create_entry): Modified to attach an
	ESelectNamesCompletion to the entry we create.
	(completion_handler): A post-completion handler for our EEntry, to
	take the completion's extra data (an EDestination) and properly
	stick it into our ESelectNamesModel.

	* gui/component/select-names/e-select-names.c
	(real_add_address_cb): Changed to operate on EDestinations rather
	than ECards and to use the new ESelectNamesModel API.  This leads
	to a rather nice code simplication.
	(remove_address): Changed for new ESelectNamesModel API.

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): Rather than just passing the entry's text
	through the property bag, get the "address text" from the model.
	This returns a nice, verbose string of addresses with names
	expanded when the address is tied to an ECard (i.e. "Jon
	Trowbridge <trow@ximian.com>").
	(impl_SelectNames_get_entry_for_section): Make the text property
	read-only.
	(entry_set_property_fn): ...and since it is read-only now, chop
	out the setter code.
	
	* gui/component/select-names/e-select-names-text-model.h: 
	* gui/component/select-names/e-select-names-text-model.c: Again,
	this code has been (pretty much) totally rewritten to convert all
	text operations into changes on the ESelectNamesModel.  This lets
	us give the associated EEntry some (IMHO) nice semantics regarding
	whitespace, etc.  Includes object activation, so destinations tied
	to ECards are underlined and can be double-clicked to bring up a
	contact editor.

	* gui/component/select-names/e-select-names-model.h: 
	* gui/component/select-names/e-select-names-model.c: I've heavily
	modified this object to both hide all implementation details
	(which the old version exposed a bit too much for my peculiar
	tastes) and to act as an EDestination container.  The old code put
	the text model operations here.  I've moved them all to
	ESelectNamesTextModel --- so the text model actions (insert,
	delete, etc.) are all done through the API rather than operating on
	ESelectNamesModel internals.

	* gui/component/select-names/e-select-names-completion.c: Added.  A
	fairly complicated object derived from ECompletion that searches
	our local addressbook in various and sundry ways.

	* gui/component/select-names/e-select-names-completion.h: 

	* backend/ebook/e-destination.h: 
	* backend/ebook/e-destination.c: Added.  This object encapsulates
	a place to sent an email to, which can either be just a address as
	a string ("trow@ximian.com"), a fancier string ("Jon Trowbridge
	<trow@ximian.com>"), or an ECard and a specific address within
	that ECard.

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

	* gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h,
	gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Used
	ESelectionModelSimple and the changes to EReflow and EReflowSorted
	to get multiple selection in the minicard view.

	* gui/widgets/test-reflow.c: Changed this to get it to compile
	with the changes to EReflow.

2001-02-21  Christopher James Lahey  <clahey@ximian.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_search): Made
	this pay attention to the return value of e_sexp_parse.

	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_activate_obj): Fixed a const
	inconsistency here.

2001-02-21  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-book.c (pas_book_queue_get_supported_fields):
	new function.
	(impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): track
	change to idl.
	(pas_book_respond_get_supported_fields): new function.

	* backend/pas/pas-book.h: add GetSupportedFields to the
	PASOperation enum.  Also, add a stringlist field to the PASRequest
	struct.  lastly, add a prototype for
	pas_book_respond_get_supported_fields.
	
	* backend/pas/pas-backend.h: remove prototype for
	pas_backend_get_supported_fields, and remove it from the vtable.

	* backend/pas/pas-backend.c (pas_backend_get_supported_fields):
	remove.
	(pas_backend_class_init): no vtable entry for get_supported_fields
	anymore.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_get_supported_fields): new function.
	(pas_backend_ldap_process_client_requests): add case for
	GetSupportedFields.
	(pas_backend_ldap_class_init): get_supported_fields isn't in
	vtable anymore.

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_get_supported_fields): new function.
	(pas_backend_file_process_client_requests): add case for
	GetSupportedFields.
	(pas_backend_file_class_init): get_supported_fields isn't in
	vtable anymore.

	* backend/idl/addressbook.idl: Book::getSupportedFields now
	returns void and add BookListener::notifySupportedFields.

	* backend/ebook/test-client.c (get_fields_cb): new function.
	(auth_user_cb): track change to e_book_get_supported_fields.

	* backend/ebook/e-book.c
	(e_book_do_response_get_supported_fields): new function.
	(e_book_check_listener_queue): add case
	GetSupportedFieldsResponse.
	(e_book_get_supported_fields): switch to async model.

	* backend/ebook/e-book.h: switch e_book_get_supported_fields to an
	async model.

	* backend/ebook/e-book-listener.c
	(e_book_listener_queue_get_supported_fields_response): new
	function.
	(impl_BookListener_response_get_supported_fields): new function.
	(e_book_listener_get_epv): fill in epv's "notifySupportedFields"

	* backend/ebook/e-book-listener.h: add an async response for
	GetSupportedFields and add a stringlist member to the
	EBookListenerResponse struct.

2001-02-20  Federico Mena Quintero  <federico@ximian.com>

	* backend/pas/pas-book-factory.c (pas_book_factory_activate):
	Moved the register_factory() code to here, since it was the only
	thing being called anyways.
	(PasBookFactoryPrivate): Added a "registered" flag.
	(pas_book_factory_activate): Set the registered flag.
	(pas_book_factory_destroy): Deactivate the factory when we go away.

2001-02-20  Chris Toshok  <toshok@ximian.com>

	* backend/ebook/e-book.c (e_book_get_supported_fields): new function.

	* backend/ebook/e-book.h: add e-book interface to getting
	supported fields.

	* backend/ebook/test-client.c (auth_user_cb): shoe-horn in some
	spew about supported fields.

2001-02-19  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: Remove PISOCK_LIBDIR

2001-02-19  Jon Trowbridge  <trow@ximian.com>

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_create_entry): When creating the entry,
	open up an ebook (corresponding to the local addressbook) and make
	the entry use an EAddressCompletion.
	(completion_handler): Added; this is the actual completion
	handler, which manipulates the entry when the user selects
	something from the drop-down.

	* gui/component/select-names/e-select-names-model.c: Various hacks
	by clahey to unbreak e_select_names_model_add_item,
	e_select_names_model_replace_item (which I added) and
	e_select_names_model_remove_item.
	
	* gui/component/select-names/e-select-names-text-model.c
	(e_select_names_text_model_obj_count,
	e_select_names_text_model_get_nth_obj): Make chunks of text that
	correspond to ECards in the ESelectNamesModel be embedded objects.
	(e_select_names_text_model_activate_obj): On activation, pop up a
	contact editor for the embedded object's card.
	(e_select_names_text_model_model_changed): Fixed to work with
	ETextModel API changes.
	(e_select_names_text_model_set_text): Make const correct.
	(e_select_names_text_model_insert): Make const correct.
	(e_select_names_text_model_insert_length): Make const correct.

	* backend/ebook/e-address-completion.h,
	backend/ebook/e-address-completion.c: Added.  EAddressCompletion
	is a derived class of ECompletion that does asynchronous address
	lookups for completions.

2001-02-17  Chris Toshok  <toshok@ximian.com>

	* backend/idl/addressbook.idl: add sequence<string> typedef, and
	add getSupportedFields method.

	* backend/pas/pas-book.c
	(impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): new
	function.

	* backend/pas/pas-backend.c (pas_backend_class_init): init
	get_supported_fields = NULL.
	(pas_backend_get_supported_fields): new function.

	* backend/pas/pas-backend.h: add prototype for
	pas_backend_get_supported_fields.

	* backend/pas/pas-backend-file.c
	(pas_backend_file_get_supported_fields): new function.
	(pas_backend_file_class_init): fill in get_supported_fields.

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_get_supported_fields): new function.
	(pas_backend_ldap_class_init): fill in get_supported_fields.

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

	* backend/pas/pas-backend-ldap.c: Undefine E_STRING_PROP and
	E_LIST_PROP here.

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h (e_contact_editor_raise): Added
	this function.

	* gui/widgets/e-minicard.c, gui/widgets/e-minicard.h
	(e_minicard_event): Added an editor field to the EMinicard object.
	Made it so that if you double click on the same card twice, it
	doesn't open a new window, but instead raises the old.

2001-02-08  Iain Holmes  <iain@ximian.com>

	* gui/component/addressbook-storage.c (addressbook_source_free):
	Free the ldap.binddn.

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_setup_menus): Free the dir strings.

2001-02-08  Christopher James Lahey  <clahey@ximian.com>

	* contact-editor/e-contact-editor.c (categories_clicked): Set the
	header on the category dialog we pop up.

2001-02-12  Kjartan Maraas  <kmaraas@gnome.org>

	* backend/ebook/GNOME_Evolution_Addressbook_GnomeCard_Importer.oaf.in: Translations.
	* gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.oaf.in:
	Marked strings for translation in this newly created file.
	* gui/component/select-names/Makefile.am: Hook up the .oaf.in files in the
	xml-i18n-tools framework.
	* gui/component/Makefile.am: Same as above.
	* gui/component/GNOME_Evolution_Addressbook.oaf.in: Marked stuff for translation here
	too.
	
2001-02-11  Jason Leach  <jasonleach@usa.net>

	* gui/component/addressbook.c: Removed an ancient #include
	<libgnorba/gnorba.h>

2001-02-11  Gediminas Paulauskas <menesis@delfi.lt>

	Really use xml-i18n-tools.
	
	* conduit/e-address-conduit-control-applet.desktop: removed.
	* conduit/e-address-conduit-control-applet.desktop.in: added empty.
	* conduit/Makefile.am: reflect above changes, merge translations.
	
	* contact-editor/e-contact-editor-strings.h,
	contact-editor/fulladdr.glade.h, contact-editor/fullname-strings.h,
	contact-editor/e-contact-editor-confirm-delete.glade.h,
	gui/component/select-names/select-names.glade.h:
	removed these files, xml-i18n-extract takes care of strings itself.
	
	* contact-editor/*.glade,
	gui/component/select-names/select-names.glade,
	gui/widgets/alphabet.glade, printing/e-contact-print.glade:
	changed project options to not output_translatable_strings.
	
	* contact-editor/Makefile.am, gui/widgets/Makefile.am,
	gui/component/select-names/Makefile.am, printing/Makefile.am:
	do not include removed files in EXTRA_DIST.

2001-02-07  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (check_for_evolve_person): flesh
	out this check.  #ifdef the entire thing OPENLDAP2, as it only
	works with the new schema stuff in openldap 2.x (both on server
	and client, so upgrade your server.)
	
2001-02-07  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/e-addressbook-view.c: Added N_("* Click here to add
	a contact *").

2001-02-07  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): only
	set the DEBUG_LEVEL if we're OPENLDAP2.

2001-02-06  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (email_compare): return TRUE if
	equal, FALSE otherwise.
	(business_compare): same.
	(homephone_compare): same.
	(email_ber): return NULL if there are no elements in our list.
	(homephone_ber): same.
	(business_ber): same.
	(build_mods_from_ecards): add smarts to handle list elements
	properly (like email, business_phone, home_phone.)  now we'll
	properly send updates if any element in the list changes.

2001-02-06  Christopher James Lahey  <clahey@ximian.com>

	* gui/widgets/Makefile.am (INCLUDES): Added
	-DEVOLUTION_DATADIR=\""$(datadir)"\".

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_setup_menus): Changed the local and system
	directories.

2001-02-06  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (create_card_handler): doh,
	didn't mean to commit this.
	
2001-02-06  Chris Toshok  <toshok@ximian.com>

	* backend/pas/evolveperson.schema: new file.  this will eventually
	form the suggested additions to an existing openldap server that,
	along with support for inetorgperson, will allow people to store
	all evolution attributes in ldap.
	
2001-02-06  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_init): don't
	need the = NULL's since we g_new0.
	(check_for_evolve_person): new function.
	(pas_backend_ldap_connect): check to see if the evolvePerson
	objectclass is there.
	(build_mods_from_ecards): right now, just silently skip the extra
	attributes if we don't support evolvePerson.
	(add_objectclass_mod): new function, add both inetOrgPerson and
	(if it's available) evolvePerson as objectclasses.
	(pas_backend_ldap_process_authenticate_user): also check to see if
	evolvePerson is there, if we couldn't do it (due to auth reasons)
	in the connect method.
	(prop_info): change the telephoneNumber LDAP attribute to be used
	for evolution's business phone numbers.  the primary phone number
	will be a single valued attribute on evolvePerson.
	(business_populate): new function.
	(business_ber): new function.
	(business_compare): new function.

2001-02-05  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (create_card_handler): err,
	allocate 2 char*s when i assign 2 char*s.

2001-02-05  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (modify_card_handler): switch to
	ldap_modify_ext_s if OPENLDAP2, as ldap_modify_s is deprecated.
	(build_mods_from_ecards): don't include the mod if the value is ""
	- this isn't valid on schema checking ldap servers.
	(homephone_populate): new function.
	(homephone_ber): new function.
	(homephone_compare): new function.
	(create_card_handler): add spew when adding cards so I can see
	what's going on.
2001-02-05  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook-config.c (table_add_elem): Save the
	help_text in the closure.

2001-02-05  Christopher James Lahey  <clahey@helixcode.com>

	* gui/widgets/Makefile.am (libeminicard_a_SOURCES): Added
	gal-view-factory-minicard.c, gal-view-factory-minicard.h,
	gal-view-minicard.c, and gal-view-minicard.h.

	* gui/widgets/gal-view-factory-minicard.c,
	gui/widgets/gal-view-factory-minicard.h,
	gui/widgets/gal-view-minicard.c, and
	gui/widgets/gal-view-minicard.h: New classes for minicard view
	type.

	* gui/widgets/e-addressbook-view.c: Deploy gal-view stuff
	properly.
	
2001-02-05  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c (e_card_get_vcard): Make the Note field
	be quoted printable.

2001-01-27  Christopher James Lahey  <clahey@helixcode.com>

	* gui/search/e-addressbook-search-dialog.c
	(e_addressbook_search_dialog_init): This should be a close button,
	not a cancel button.

2001-02-04  Christopher James Lahey  <clahey@ximian.com>

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_activate_dialog): Call
	e_select_names_set_default when appropriate.

	* gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h: Added support for
	double clicking sending the selected contacts to the default
	section.  Added a set_default function.  Made multiple selection
	work.

2001-01-29  Chris Toshok  <toshok@ximian.com>

	* gui/component/addressbook-config.c
	(addressbook_config_source_label): #ifdef INCLUDE_FILE_SOURCE.
	(table_add_elem): add help_text parameter and set up focus_in
	events to display the help in the dialog's html area.
	(focus_help): new function, calls put_html on the help text.
	(addressbook_ldap_auth_item_new): add help texts.
	(addressbook_source_item_new): add help texts.
	(addressbook_source_dialog): add help texts.

2001-01-27  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_add_section): Remove the butt-ugly arrow icon and
	replace it with a less invasive "->" icon.

2001-01-25  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (build_mods_from_ecards): add
	comment about the else block here.
	(prop_info): add home_address, business_address, business_fax,
	assistant, and isdn.

2001-01-25  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): Made
	this only add the initial VCard if it finds a file
	"create-initial" in the directory it's creating the database in.

	* gui/component/addressbook-component.c (factory_fn): Added a
	create_folder function.

	* gui/search/e-addressbook-search-dialog.c
	(e_addressbook_search_dialog_init): Fixed an unused variable
	warning.

2001-01-25  Christopher James Lahey  <clahey@helixcode.com>

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_setup_menus): Setup the view collection
	properly and handle the "display_view" signal.

2001-01-25  Ettore Perazzoli  <ettore@ximian.com>
	
	* gui/component/addressbook.c (update_pixmaps): Consider the
	placeholder in the path for the "Print" item.

2001-01-25  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c (update_pixmaps): Set the icon for
	"/Toolbar/Find" to "24_find_contact.xpm".

2001-01-25  Ettore Perazzoli  <ettore@ximian.com>

	* gui/component/addressbook.c (set_pixmap): New.
	(update_pixmaps): New function, setting the pixmaps for the items
	of type "pixbuf", using `set_pixmap'.
	(control_activate): Call it.

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

	* backend/pas/pas-backend-ldap.c: esexp api change fixes.

	* backend/pas/pas-backend-file.c (entry_compare): Fix for e_sexp api changes.
	(vcard_matches_search): esexp api fixes.
	(pas_backend_file_search): Ouch, unref the e-sexp properly (not gtk object).

2001-01-24  Chris Toshok  <toshok@ximian.com>

	* backend/pas/pas-backend-ldap.c (email_ber_func): make sure to
	add the lengths here (include the \0?  anyone?).
	(build_mods_from_ecards): if we're filling in mod->mod_bvalues,
	set mod_op |= LDAP_MOD_BVALUES.

2001-01-23  Jason Leach  <jasonleach@usa.net>
	
	(Fix #1225: advanced search cancel/close)
	
	* gui/search/e-addressbook-search-dialog.c
	(e_addressbook_search_dialog_init): Set it up with Search and a
	Cancel button, Search is still the default.

2001-01-23  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (local_record_from_ecard): properly ref
	the ecard. still need to kill some memory leaks.

2001-01-22  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: remove vfs dependency

2001-01-21  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (delete_record):  Remove
	deleted records from the pilot map so we don't have dupes in the future
	
2001-01-19  Dan Winship  <danw@ximian.com>

	* gui/widgets/e-addressbook-view.c (table_right_click): 
	* gui/widgets/e-minicard.c (e_minicard_event): Update for
	e_popup_menu_run prototype change.

2001-01-19  Jason Leach  <jasonleach@usa.net>

	(Adding a boolean "entry_changed" BonoboPropertyBag arg)
	
	* gui/component/select-names/e-select-names-bonobo.c
	(entry_set_property_fn): Use a gtk_object_set_data to set the
	property to TRUE here.

	(entry_changed): New function, calls bonobo_control_set_property
	if entry_changed hasn't been set to TRUE yet.
	
	(impl_SelectNames_get_entry_for_section): Connect "changed" on
	each entry_widget to the new entry_changed() func.

2001-01-19  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (ecard_from_remote_record): always free 
	the delivery elements and correct embarrassingly stupid memory error 
	that was causing the addressbook conduit problems.

	* backend/ebook/e-book-view-listener.c 
	(e_book_view_listener_check_queue): ref/unref ourself when processing 
	in case someone we signal unrefs us.

	* conduit/address-conduit.c (sequence_complete): disconnect signals
	when complete

2001-01-17  Federico Mena Quintero  <federico@ximian.com>

	* backend/pas/pas-book-factory.c (pas_book_factory_activate): Made
	it return a gboolean; it was completely ignoring the return value
	from register_factory().

2001-01-17  Larry Ewing  <lewing@helixcode.com>

	* backend/ebook/.cvsignore: add evolution-gnomecard-importer.

	* backend/ebook/Makefile.am (oaf_DATA): don't require the pine
	oainfo file until it is actually added to the repository.  We need
	to keep the build working for nightlies to work.

2001-01-16  Jason Leach  <jasonleach@usa.net>

	* backend/pas/pas-backend-file.c (INITIAL_VCARD): s/Helix
	Code/Ximian/ for the initial contact card.

2001-01-15  JP Rosevear  <jpr@ximian.com>

	* conduit/address-conduit.c (print_local): prevent segfaults and 
	buffer overflows
	(print_remote): ditto

2001-01-14  JP Rosevear  <jpr@ximian.com>

	* conduit/Makefile.am: pass -module and -avoid-version to conduit
	linker

2001-01-12  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook-component.c (factory_fn): Pass NULL as
	the @copy_folder_fn arg to `evolution_shell_component_new'.

2001-01-12  Miguel de Icaza  <miguel@ximian.com>

	* gui/widgets/e-addressbook-view.c: added i18n for etable.

2001-01-11  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_process_create_card): get a book view from
	somewhere so we can give status messages - choose the first one in
	the list.
	(pas_backend_ldap_process_modify_card): same.
	(pas_backend_ldap_process_remove_card): same.
	(prop_info): add more properties, like home_phone, mobile, pager,
	uri, org_unit, office, title, and manager.

2001-01-09  Miguel de Icaza  <miguel@gnu.org>

	* gui/widgets/Makefile.am (minicard_widget_test_LDADD): Put GNOME
	libraries at the end to make the thing compile.

	* printing/Makefile.am: Order LDADD flags correctly so it compiles.

2001-01-09  Chris Toshok  <toshok@helixcode.com>

	* gui/component/addressbook.c (addressbook_factory_new_control):
	connect with the EAddressbookView's status_message signal.
	(set_status_message): set the status message on the ShellView
	Interface associated with our control.
	(retrieve_shell_view_interface_from_control): new function.  get
	the shell view inteface associated with a control.

	* gui/widgets/e-addressbook-view.c
	(e_addressbook_view_class_init): register status_message signal.
	(status_message): new function, emit our status_message signal.
	(change_view_type): connect with the view->object's
	"status_message" signal.

	* gui/widgets/e-addressbook-view.h (struct
	_EAddressbookViewClass): add status_message signal.

2001-01-09  Chris Toshok  <toshok@helixcode.com>

	* gui/widgets/e-minicard-view-widget.c
	(e_minicard_view_widget_class_init): register our status_message
	signal.
	(status_message): new function, emit our status_message signal.
	(e_minicard_view_widget_realize): connect to the EMinicardView's
	status_message signal.

	* gui/widgets/e-minicard-view-widget.h: add status_message signal.

	* gui/widgets/e-minicard-view.c (e_minicard_view_class_init):
	register our status_message signal.
	(e_minicard_view_init): init status_message_id.
	(status_message): new function, emit our status_message signal.
	(book_view_loaded): connect to the EBookView's status_message
	signal.
	(disconnect_signals): disconnect status_message_id.

	* gui/widgets/e-minicard-view.h: add status_mesage_id, and
	status_message signal.

	* gui/widgets/e-addressbook-model.c (status_message): new
	function, emit our status_message.
	(e_addressbook_model_class_init): register our "status_message"
	signal.
	(book_view_loaded): connect to the EBookView's status_message
	signal, so we can chain it to our parent.
	(e_addressbook_model_init): init status_message_id.
	(remove_book_view): disconnect status_message_id.

	* gui/widgets/e-addressbook-model.h: add status_message_id, and
	status_message signal.

	* backend/pas/pas-backend-ldap.c change the objectclass we create
	objects with to "inetOrgPerson" as it encompasses the fields we
	use.
	(create_dn_from_ecard): remove the mail/org handling from
	here.  we just prepend cn=$cn onto the base dn.
	(create_card_handler): remove the NULL that build_mods_from_ecards
	adds at the end, and insert our objectClass.
	(modify_card_handler): call search_for_dn to get the ECardSimple
	of the old card, since it might (and does in the current code)
	doing a brute force search.
	(search_for_dn): new function, to search for an entry by its dn.
	right now we brute force (objectclass=*) under the base dn and
	compare dn's.  going to add a first pass that explodes the dn and
	searches that way, using (objectclass=*) as a last resort.  also,
	here's where we'd put the extensibleMatch code if we want to go
	that route.

	* backend/ebook/e-card.c (e_card_set_arg): if we're setting the
	full name regenerate ecard->name.

2001-01-04  Chris Toshok  <toshok@helixcode.com>

	* backend/ebook/e-book-listener.c
	(e_book_listener_queue_authentication_response): new function.
	(impl_BookListener_respond_authentication_result): new function.
	(e_book_listener_get_epv): fill in
	epv->notifyAuthenticationResult.

	* backend/ebook/e-book-listener.h: add AuthenticationResponse to
	EBookListenerOperation.

	* backend/ebook/e-book.c (e_book_authenticate_user): new function.

	* backend/ebook/e-book.h: add prototype for
	e_book_authenticate_user.

	* backend/idl/addressbook.idl (GNOME:Evolution:Addressbook:Book):
	add authenticateUser method.
	(GNOME:Evolution:Addressbook:BookListener): add
	AuthenticationFailed and AuthenticationRequired to CallStatus.
	also add notifyAuthenticationResult method.

	* backend/pas/pas-backend-file.c
	(pas_backend_file_process_authenticate_user): dummy
	authenticate_user function that always succeeds.
	(pas_backend_file_process_client_requests): respond to the
	AuthenticateUser request.

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query):
	gtk_object_unref(sexp) => s_exp_unref(sexp).
	(pas_backend_ldap_process_authenticate_user): fill in to use
	ldap_simple_bind_s.
	(pas_backend_ldap_process_client_requests): respond to the
	AuthenticateUser request.

	* backend/pas/pas-book.c (pas_book_queue_authenticate_user): new
	function.
	(impl_GNOME_Evolution_Addressbook_Book_authenticateUser): new
	function.
	(pas_book_respond_authenticate_user): new function.
	(pas_book_get_epv): fill in epv->authenticateUser.

	* backend/pas/pas-book.h: add AuthenticateUser operation type, and
	add user/passwd to the PASRequest struct.

	* gui/component/addressbook-storage.c
	(addressbook_storage_get_source_by_uri): new function.  should use
	a hashtable, perhaps, but the lists will generally be small
	anyway.

	* gui/component/addressbook-storage.h: add prototype for
	addressbook_storage_get_source_by_uri.

	* gui/component/addressbook-config.c
	(addressbook_source_dialog_set_source): fill in the binddn if the
	auth page is shown.

	* gui/component/addressbook.c (book_open_cb): shoe-horn
	authentication in here.  if the source was configured to use
	authentication, authenticate the user after opening the ebook.
	also, be paranoid and clear out the password after authenticating.
	(book_auth_cb): callback for auth.  set the "book" arg on the
	view->view here.
	(passwd_cb): set the view's passwd that'll be used in
	book_open_cb.
	(addressbook_view_free): g_free view->passwd.

2001-01-04  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook-component.c,
	gui/component/addressbook-component.h
	(addressbook_component_get_shell_client): Added this function.

	* gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h: Added code for the
	ability to switch between different folders.  This doesn't work
	yet.

	* gui/component/select-names/select-names.glade,
	gui/component/select-names/select-names.glade.h: Added an option
	menu to this dialog.

2001-01-04  JP Rosevear  <jpr@helixcode.com>

	* conduit/Makefile.am: Fix hard coded library names that were 
	accidentally committed (i'm looking at you miggie)

	* contact-editor/e-contact-editor.c (categories_clicked): Reflect
	renaming.

	* contact-editor/e-contact-editor-categories.[hc]: These are
	living in gal now
	
2001-01-04  JP Rosevear  <jpr@helixcode.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_free): 
	Need to e_sexp_unref the the sexp, not gtk_object_unref it.

2001-01-03  Michael Meeks  <michael@helixcode.com>

	* gui/widgets/e-addressbook-model.c (get_view): check
	capabilities is valid before doing a strstr.

2001-01-03  Michael Meeks  <michael@helixcode.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_search):
	g_strdup things we g_free.

2001-01-02  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c (delete_cb): Make sure this
	won't crash if the given contact is removed from the database
	while this function is being called.

	* gui/widgets/e-minicard.c: Made sure this won't crash if the
	given contact is removed from the database while the right click
	menu is being displayed.

2000-12-30  Chris Toshok  <toshok@helixcode.com>

	* gui/component/addressbook-config.c (edit_source_clicked): copy
	the dialog's source, destroy the dialog after we're done, and make
	sure to update both columns in the clist.
	(add_source_clicked): copy the dialog's source, and destroy the
	dialog when we're done.
	(addressbook_source_dialog_destroy): free up all the dialog's
	memory.

	* gui/component/addressbook.c (set_prop): allow file: uri's that
	point to files, not just dirs that contain addressbook.db.  The
	rule is the addressbook file has to end in .db.

	* gui/component/addressbook-storage.c (file_source_foreach):
	contactserver => contactfile.  cut and paste error.
	(addressbook_storage_init_source_uri): use file://%s to build the
	uri.

	* gui/component/e-ldap-server-dialog.[ch]: forgot to remove these
	in my last commit.

2000-12-29  Chris Toshok  <toshok@helixcode.com>

	* gui/component/addressbook.c (config_cb): new function, calling
	our new config ui code.
	(control_activate): no longer load evolution-addressbook-ldap.xml,
	as it's not there.

	* gui/component/addressbook-component.c (owner_set_cb):
	setup_ldap_storage => addressbook_storage_setup.

	* gui/component/Makefile.am (evolution_addressbook_SOURCES):
	remove e-ldap-storage.[ch] and add addressbook-storage.[ch].
	(glade_DATA): remove ldap-server-dialog.glade and add
	addressbook-config.glade.
	(EXTRA_DIST): same.

	* gui/component/addressbook-config.[ch]: add another dialog to
	give a list of our sources and offer the Add/Delete/Edit
	interface.  This plugs into the previous dialog work (the source
	editor.)

	* gui/component/addressbook-storage.[ch]: new files, containing
	the remains of e-ldap-storage.[ch] and adding the new
	AddressbookSource type and it's subordinates.  Also, the xml
	format has changed slightly and the file name is no longer
	~/evolution/ldap-servers.xml - it's
	~/evolution/addressbook-sources.xml.

	* gui/component/addressbook-config.glade: new file, new config
	interface.

	* gui/component/ldap-server-dialog.glade: removed.

	* gui/component/e-ldap-storage.[ch]: removed.

2000-12-28  Chris Toshok  <toshok@helixcode.com>

	* gui/component/Makefile.am (evolution_addressbook_SOURCES): add
	addressbook-config.[ch].

	* gui/component/addressbook-config.c,
	gui/component/addressbook-config.h: new files, containing at the
	moment a beautiful "new/edit source dialog" inspired by the
	mail-config-gui code.  It'll be ready for prime time after rev'ing
	the .xml file the addressbook uses to store it's "other sources"
	to include files, and the addition of the ldap auth stuff.

2000-12-25  Miguel de Icaza  <miguel@helixcode.com>

	* gui/widgets/e-minicard.c (e_minicard_realize): Set draw
	background to FALSE.
	
	* gui/widgets/e-minicard-label.c (e_minicard_label_construct): ditto.
	(e_minicard_label_construct): ditto

2000-12-23  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/fullname-strings.h,
	contact-editor/fullname.glade: Added Ms. and Miss to the prefix
	drop down box.  Patch submitted by Martin Hicks <mort@bork.org>.

2000-12-21  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.c (cursor_cb): Ref the cards that get put
	in the change list
	(next_changed_item): util function to get the real next changed item
	(compute_status): really compute the status of the record
	(local_record_from_uid): Set the id of the temporary card
	(check_for_slow_setting): Make this check a little saner
	(card_added): Only record the CardObjectChange if the card is not
	archived
	(card_changed): ditto
	(card_removed): ditto
	(set_status_cleared): actually clear the status
	(for_each_modified): Clean out cruft and use next_changed_item
	(add_record): Set the new id properly in our local card copy
	(replace_record): handle the case where the record has been deleted
	and we need to call add.  need to update the changed_hash entry
	(delete_record): Don't panic if the card is not found, its already
	been deleted.

	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): 
	The change_context no longer has a del_cards member
	(pas_backend_file_book_view_free): ditto
	(pas_backend_file_process_get_changes): ditto
	(pas_backend_file_changes_foreach_key): just record the id
	(pas_backend_file_changes): notify_remove needs an id not a vcard

2000-12-20  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.c (match): Use my own wrapper
	functions instead of trying to *directly* access the the data 
	structures my self
	(post_sync): Put in hack to prevent syncing the same records twice
	(local_record_from_uid): set the card id when creating a blank one
	(add_record): Set the id of the card we have and don't go to the
	server to get the latest version

2000-12-19  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.c (ecard_from_remote_record): Convert
	pilot strings to utf for the e-cards.
	
2000-12-19  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.c (local_record_from_ecard): Convert ecard
	strings to pilot encodings

2000-12-19  Christopher James Lahey  <clahey@helixcode.com>

	* gui/widgets/e-addressbook-view.c (delete): Made it so that if
	you select multiple contacts, the right click menu to delete
	deletes them all.

2000-12-18  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c (ldap_error_to_response): always
	use LDAP_NAME_ERROR (in the openldap1 case it's #defined to
	NAME_ERROR).
	(build_card_from_entry): ldap_get_values can return NULL.  also,
	openldap2 keeps us from getting at ldap->ld_errno, so we can't
	tell if there was a decoding error like we used to.  the double
	free problem where ldap would free the ber if there was a decoding
	problem might be fixed now..  further investigation is needed.
	for now we leak in openldap2.
	(ldap_search_handler): the ldap structure is opaque, so use
	ldap_search_ext to give the extra information (the max responses,
	timeout, etc.) in the openldap2 case.

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

	* backend/pas/pas-backend-ldap.c (ldap_error_to_response): Test
	for the existance of LDAP_NAME_ERROR and if it exists as a macro,
	use it instead of NAME_ERROR.

2000-12-14  Michael Meeks  <michael@helixcode.com>

	* gui/component/GNOME_Evolution_Addressbook.oafinfo: update cut
	and paste description error.

2000-12-13  Dan Winship  <danw@helixcode.com>

	* gui/widgets/e-minicard-control.c (stream_read): NULL-terminate
	the returned vcard so we don't sometimes end up with trailing
	junk that makes libversit unhappy.

2000-12-13  Iain Holmes  <iain@helixcode.com>

	* gui/component/select-names/e-select-names.c 
	(e_select_names_add_section): Make the -> into a GNOME stock image.

2000-12-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_init): Connect to the "cursor_change" signal on
	the ETable here instead of the ETableScrolled.
	(remove_address): Added the col and event parameters to this
	callback to match the added parameters to the double click signal.
	(e_select_names_add_section): Connect to the "double_click" signal
	on the ETable here instead of the ETableScrolled.

2000-12-09  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c (e_card_set_arg): When setting the "name"
	argument, copy the incoming name.  This fixes a crash.

2000-12-09  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Made editing the name using
	the full name button set the file as entry properly.  Made it
	so that the address parse that the user chooses after
	clicking on the Full Address... button gets saved.

2000-12-08  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c (full_name_clicked): Made it
	so that the editor->name is set after the entry is changed.  This
	means that the reparse that the person chose is saved.

2000-12-07  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/e-ldap-storage.c (setup_ldap_storage): Pass NULL
	as the @toplevel_node_handler_id argument to
	`evolution_storage_new'.

2000-12-08  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c: Fixed some formatting.

	* contact-editor/e-contact-editor-categories.h: Removed an
	unneeded #include.

	* gui/widgets/e-addressbook-view.c: Connect to the signals on the
	ETable instead of the ETableScrolled.

2000-12-07  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.c (local_record_from_uid): Pass "" rather
	than NULL to e_card_new.
	(local_record_from_ecard): Make sure ecard->name is valid
	(check_for_slow_setting): Remove hard coded test value
	(card_added): g_strdup the resul of e_card_get_id
	(card_changed): ditto

2000-12-07  Christopher James Lahey  <clahey@helixcode.com>

	* gui/widgets/e-addressbook-view.c: Got rid of code referencing
	the ETableScrolled proxy functions.

2000-12-06  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Moved the gal view menu stuff from
	here to EAddressbookView.

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h: New function to set up the menus
	for the EAddressbookView.

2000-12-06  JP Rosevear  <jpr@helixcode.com>

	* conduit/Makefile.am: Another conduit build fix

2000-12-05  JP Rosevear  <jpr@helixcode.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_changes_foreach_key): 
	Create an empty vcard with the appropriate id for deleted cards

	* conduit/address-conduit.c (ecard_from_remote_record): Ensure the
	address fields are added sensibly

2000-12-05  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/e-ldap-storage.c (setup_ldap_storage): Updated the
	call to `evolution_storage_new()': pass NULL for
	@toplevel_node_uri.

2000-11-28  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.c (local_record_to_pilot_record): Return
	a struct rather than a pointer to a struct
	(view_cb): kill warning
	(compare): local_record_to_pilot_record now returns a struct
	(prepare): ditto
	(free_prepare): remove as per gnome-pilot changes
	(conduit_get_gpilot_conduit): don't listen for free_prepare signal

2000-11-27  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.h: Remove "complete" field

	* conduit/address-conduit.c (print_local): Make it print useful debug
	info
	(print_remote): ditto
	(local_record_from_ecard): Make sure phone numbers get out to the pilot
	(ecard_from_remote_record): Set phone strings to "" if they are null
	(sequence_complete): unref the book view
	(view_cb): ref the book view
	(free_prepare): do nothing

	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_free): 
	Destroy the card lists with the rest of the view.
	(pas_backend_file_changes): Don't destroy the card lists here
	(pas_backend_file_book_view_free): Free the card/id lists in the
	change context here, the correct place.
	(pas_backend_file_changes): instead of here...

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

	* backend/pas/pas-backend-file.c: Set view.change_context to NULL
	in pas_backend_file_process_get_book_view.  Changed
	pas_backend_file_book_view_copy a bit.

	* backend/pas/pas-backend-ldap.c: Got rid of a warning.

2000-11-18  Matt Bissiri  <matt@bissiri.org>

	* gui/component/Makefile.am:
	Add widgets/menus/libmenus.la to evolution_addressbook_LDADD
	so that it will link properly now that gal-view-menus.[ch]
	was moved from gal into evolution.

2000-11-15  JP Rosevear  <jpr@helixcode.com>

	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): 
	Initialize destination struct with '0's.

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

	* backend/ebook/e-card.c: Changed the mime type from "text/vcard"
	to "text/x-vcard".

2000-11-11  Matt Bissiri  <bissiri@eecs.umich.edu>

	* backend/ebook/.cvsignore: Add idl-generated files.
	* backend/ebook/e-book.c: (e_book_do_response_get_changes):
	* backend/ebook/e-card.c: (e_card_send):
	s/Evolution_/GNOME_Evolution_/g;

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

	* backend/ebook/Makefile.am: Link in composer bonobo code.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added code to
	send mail to an ECard or send an ECard as a VCard attachment.

	* contact-editor/e-contact-editor.c: Add verbs to send the contact
	as a VCard or send mail to the contact.

	* gui/search/e-addressbook-search-dialog.c: Removed some unused
	variables.

	* gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c:
	Added menu items to send the contact as a VCard or send mail to
	the contact.

2000-11-11  Matt Bissiri  <bissiri@eecs.umich.edu>

	* gui/component/addressbook.oafinfo:
	* gui/component/select-names/evolution-addressbook-select-names.oafinfo:
	Update the remaining "IDL:Evolution*" to "IDL:GNOME/Evolution*"
	to sync up with yesterday's IDL re-scoping.

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

	* backend/pas/pas-backend-ldap.c: Fixed a warning.

	* gui/component/addressbook.c: Put in gal view menus for testing
	purposes.

	* printing/e-contact-print-envelope.c: Fixed up envelope printing
	a bit.  Added code for printing return addresses.

2000-11-09  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.h: Add changed_hash, change list and complete bool

	* conduit/address-conduit.c (local_record_from_ecard): Add empty field checks
	(card_added): callback for book view
	(card_changed): ditto
	(card_removed): ditto
	(sequence_complete): ditto
	(view_cb): callback for the get changes call
	(pre_sync): force synchronous loading of book view
	(for_each): we already have the card so create the local record directly
	(for_each_modified): Uncomment and fix
	(delete_record): ditto

	* conduit/Makefile.am: link against gal for ebook - needs fixing

	* backend/ebook/e-book.c (e_book_do_response_get_changes): Properly respond
	to a get_changes call
	(e_book_check_listener_queue): define the get changes response operation

	* backend/ebook/e-book-listener.c (e_book_listener_queue_get_changes_response):
	Queue up a get changes response
	(impl_BookListener_respond_get_changes): Implement the get_changes method
	(e_book_listener_get_epv): add get_changes implementation to epv

	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): Only
	copy the search_context and change_context elements if they actually exist
	(pas_backend_file_changes): Hard code a path for now, only notify if
	there is something to notify about

2000-11-07  JP Rosevear  <jpr@helixcode.com>

	* backend/pas/pas-book.h: Update PASRequest structure

	* backend/pas/pas-book.c (impl_Evolution_Book_get_changes): update param name
	(pas_book_queue_get_changes): Use PASRequest change_id slot

	* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy): 
	Properly copy change_id and change_context
	(pas_backend_file_book_view_free): Free change_id/change_context
	(pas_backend_file_changes_foreach_key): Callback to figure out the
	deleted cards
	(pas_backend_file_changes): Use new e-dbhash stuff to implement.
	Write out updated hash

	* backend/idl/addressbook.idl: Rename get_changes param

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

	* gui/component/addressbook.c: Switched from EAddressbookSearch to
	ESearchBar.

	* gui/widgets/Makefile.am, gui/widgets/e-addressbook-search.c,
	gui/widgets/e-addressbook-search.h: Removed EAddressbookSearch.
	This has been moved to filter/ and renamed ESearchBar.

	* printing/e-contact-print-envelope.c: Forgot to set the font.
	This works for me now.

2000-11-06  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(impl_SelectNames_get_entry_for_section): Duplicate the object
	reference before returning.

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

	* contact-editor/e-contact-editor.c,
	gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c: Add
	menus items to the envelope printing stuff.

	* gui/component/addressbook.c: Hook up the search menu.

	* gui/widgets/e-addressbook-search.c,
	gui/widgets/e-addressbook-search.h: Add the search menu.

	* printing/Makefile.am: Add e-contact-print-envelope.c and
	e-contact-print-envelope.h.

	* printing/e-contact-print-envelope.c,
	printing/e-contact-print-envelope.h: Added envelope printing.

2000-11-03  Federico Mena Quintero  <federico@helixcode.com>

	* gui/component/select-names/Makefile.am: Clean the idl-generated
	files properly.

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

	* ename/.cvsignore, gui/minicard/.cvsignore: Removed these
	unnecessary .cvsignores.

	* gui/component/addressbook.c: Switch to using EAddressbookSearch
	instead of custom quick search widget.

	* gui/component/select-names/e-select-names.c: Made this do a
	slightly better job of rendering names.

	* gui/widgets/Makefile.am: Added e-addressbook-search.c and
	e-addressbook-search.h.

	* gui/widgets/e-addressbook-search.c,
	gui/widgets/e-addressbook-search.h: New class that puts up an
	entry and a combo box.

2000-11-01  Dan Winship  <danw@helixcode.com>

	* gui/component/e-ldap-storage.c (load_ldap_data): 
	(e_ldap_storage_add_server): Add "highlighted" flag to
	evolution_storage_new_folder

2000-10-31  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.c (cursor_cb): Let the warning make sense
	(compute_pid): remove
	(local_record_from_ecard): Create local record from ecard - not finished
	(local_record_from_uid): Obtain local_record from uid with the proper
	e-book way
	(set_status_cleared): Add empty callback
	(add_archive_record): kill
	(delete_archive_record): kill
	(archive_record): Add empty callback
	(conduit_get_gpilot_conduit): Update signal connects

	* backend/pas/pas-backend-file.c (vcard_change_type): Function to determine
	the type of change - not finished
	(pas_backend_file_search_changes): Create a view and callback based on 
	how the cards have changed
	(pas_backend_file_process_get_changes): Implement the get changes operation
	for files
	(pas_backend_file_process_client_requests): Add GetChanges method for
	processing

	* backend/pas/pas-book.c (pas_book_queue_get_changes): Add changes to
	the list
	(impl_Evolution_Book_get_changes): implement object method
	(pas_book_get_epv): Add get changes to epv
	(pas_book_respond_get_changes): Respond to the get changes operation

	* backend/pas/pas-book.h: Add GetChanges PASOperation

	* backend/idl/addressbook.idl: add get_changes and respond_get_changes
	methods

	* backend/ebook/e-book.c (e_book_get_changes): Client function
	to a view of the changed objects

	* backend/ebook/e-book.h: New prototype

2000-10-30  Kjartan Maraas  <kmaraas@gnome.org>

	* backend/e-book/e-card.c: Fixed marking of strings
	for translation. Use "_(" instead of "_ (".
	* gui/component/addressbook-factory.c: Add missing
	calls to bindtextdomain() and textdomain noticed by
	Dan Winship.
	* gui/component/addressbook.c: Marked string for translation.
	
2000-10-27  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/Makefile.am, gui/search/Makefile.am,
	printing/Makefile.am: Fixed these to include EXTRA_GNOME_CFLAGS.

	* gui/component/select-names/e-select-names-manager.c: Turned off
	newlines in header fields.

2000-10-26  Michael Meeks  <michael@helixcode.com>

	* printing/e-contact-print.c (e_contact_print_letter_tab),
	(complete_sequence, e_contact_do_print_phone_list, lowify):
	unsigned charness.

2000-10-25  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c (ldap_op_process_current): only
	call the handler if the if we're connected, and if we fail to
	connect finish the op and post a message.
	(pas_backend_ldap_connect): add debug spew if DEBUG is defined.
	(modify_card_handler): LDAP_RES_SEARCH_ENTRY => LDAP_SUCCESS.
	(modify_card_handler): only perform the ldap_modify_s if we have a
	list of modifications.
	(get_cursor_handler): use ldap_error_to_response here.
	(pas_backend_ldap_load_uri): use LDAP_PORT instead of the constant
	389.

2000-10-23  Dan Winship  <danw@helixcode.com>

	* gui/component/select-names/Makefile.am (INCLUDES): 
	* gui/component/Makefile.am (INCLUDES): Update EVOLUTION_LOCALEDIR

	* backend/pas/Makefile.am (INCLUDES): 
	* backend/ebook/Makefile.am (INCLUDES): Update GNOMELOCALEDIR.

2000-10-23  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.h: Use new libeconduit calls and
	abstraction

	* conduit/address-conduit.c: ditto
	
2000-10-23  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.c (pre_sync): Use e_pilot_map_read
	(post_sync): Use e_pilot_map_write

	* conduit/Makefile.am: Link libeconduit and not libical

2000-10-20  Michael Meeks  <michael@helixcode.com>

	* contact-editor/e-contact-editor.c (tb_save_and_close_cb): 

	* gui/component/addressbook.c (toggle_view_as_cb): 

2000-10-20  JP Rosevear  <jpr@helixcode.com>

	* conduit/address-conduit.h: New structure of file - similar
	to calendar/todo conduits

	* conduit/address-conduit.c: ditto

	* conduit/address-conduit-config.h: Config stuff for conduit

	* conduit/.cvsignore: Update

	* conduit/Makefile.am: Build fixes

	* conduit/address-conduit-control-applet.desktop: Renamed
	to e-address-conduit-control-applet.desktop

	* conduit/address.conduit.in: Renamed to e-address.conduit.in

2000-10-19  Christopher James Lahey  <clahey@helixcode.com>

	* gui/widgets/e-addressbook-view.c (SPEC): Remove Family name
	column since it's a bit weird.  This also fixes the initial state
	since all of the column choices were off by one.

2000-10-19  Ettore Perazzoli  <ettore@helixcode.com>

	* printing/Makefile.am (glade_DATA): Remove
	`e-contact-print.glade.h'.
	(EXTRA_DIST): Move here.

	* gui/component/Makefile.am (glade_DATA): Remove
	`ldap-server-dialog.glade.h'.
	(EXTRA_DIST): Move here.

2000-10-19  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c: Change how the extension field acts when
	converting delivery addresses to labels.

2000-10-18  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added the
	function e_card_delivery_address_to_label.

	* contact-editor/e-contact-editor-address.c: Fixed a potential
	crash.

	* contact-editor/e-contact-editor.c: Made this save the changed
	data to the string version of the address.

2000-10-19  Michael Meeks  <michael@helixcode.com>

	* gui/component/addressbook.c (change_view_type): update to new
	UI handler.
	(update_view_type): split from (change_view_type).
	(control_activate): add an update_view_type.

2000-10-18  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c: Change NAME_OR_ORG to return the
	email address if both name and organization are taken.

	* gui/component/select-names/e-select-names.c: Fixed up the spec
	strings in this class.  Removed the "cursor_mode" argument to
	ETable since it's part of the spec now.

2000-10-17  Iain Holmes  <iain@helixcode.com>

	* contact-editor/contact-editor.glade: Change the initial dialog 
	visibility to FALSE
	so the contact editor doesn't flash when it appears.

2000-10-16  Iain Holmes  <iain@helixcode.com>

	* gui/component/select-names/e-select-names-manager.c 
	(e_select_names_manager_activate_dialog): Only allow one dialog
	per manager.

2000-10-16  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/fulladdr.glade: Fixed a typo.  Made this look a
	bit better.

2000-10-15  Dan Winship  <danw@helixcode.com>

	* gui/component/select-names/Makefile.am:
	* gui/component/Makefile.am: Remove CPPFLAGS since they just
	duplicate flags that were already in INCLUDES.

	* printing/Makefile.am (ecpsdir): 
	* gui/widgets/Makefile.am:
	* contact-editor/Makefile.am: Move -D flags from CPPFLAGS to
	INCLUDES so they don't override any CPPFLAGS set at configure
	time.

2000-10-14  Michael Meeks  <michael@helixcode.com>

	* gui/component/addressbook.c (control_activate): if we are in
	LDAP mode then merge in the extra few items, otherwise just merge
	the standard thing; saves duplication.

2000-10-14  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook.oafinfo: Added
	"evolution:shell-component-icon" property.

2000-10-14  Iain Holmes  <iain@helixcode.com>

	* gui/component/select-names/e-select-names.c 
	(e_select_names_manager_activate_dialog): Only allow one dialog
	per id.
	(e_select_names_manager_destroy): Destroy the hashtable.
	(e_select_names_manager_init): Init the hashtable.

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

	* contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h:
	Rearranged these fields a bit more.

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

	* contact-editor/e-contact-editor-categories.c,
	gui/component/select-names/e-select-names.c,
	gui/widgets/e-addressbook-view.c: Changed these for boolean
	ascending attribute instead of int ascending attribute.  Fixed
	e-select-names to not use a column past the end of its array.

	* contact-editor/e-contact-editor-address.c,
	contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h:
	Rearranged the address editor dialog.

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

	* contact-editor/e-contact-editor-categories.c: Fixed the column
	elements, the no-headers attribute and added a cursor-mode=line
	attribute.

	* gui/component/select-names/e-select-names.c,
	gui/widgets/e-addressbook-view.c: Fixed the column elements here.

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

	* contact-editor/e-contact-editor-categories.c,
	gui/component/select-names/e-select-names.c,
	gui/widgets/e-addressbook-view.c: Updated these to the new style
	ETables.

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

	* gui/search/e-addressbook-search-dialog.c (get_widget): Removed
	ondemand callback nonsense from rule_context_load().

2000-10-05  Michael Meeks  <michael@helixcode.com>

	* contact-editor/e-contact-editor.c (create_ui): upd.
	(e_contact_editor_init): upd.

	* gui/component/addressbook.c (control_activate_cb): upd.
	(control_deactivate): kill.
	(control_activate): upd.

2000-09-22  Michael Meeks  <michael@helixcode.com>

	* gui/component/addressbook.c (control_activate): update.

	* contact-editor/e-contact-editor.c (create_ui): upd.

Fri Sep 29 07:33:54 2000  Christopher James Lahey  <clahey@helixcode.com>

	* gui/widgets/e-minicard.c, gui/widgets/e-minicard.h: Made it so
 	that minicard doesn't write out changes to the backend unless
 	something's actually changed.

Tue Sep 26 16:28:47 2000  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c: Make sure that card->name and
 	card->full_name are always valid.

	* contact-editor/e-contact-editor.c: Removed some unused
 	variables.

2000-09-22  Matt Bissiri  <bissiri@eecs.umich.edu>

	* contact-editor/e-contact-editor-fullname.c (extract_info): If
	(editor->name == NULL), store ptr to newly allocated ECardName in
 	editor->name, not just in a stack variable.  This fixes a crash
 	which happened when you click "New", then click "Full Name...",
 	then enter name, then click "OK".

	* backend/ebook/e-card.c (e_card_name_to_string): Add
 	g_return_val_if_fail.

2000-09-25  Jeffrey Stedfast  <fejj@helixcode.com>

	* gui/widgets/Makefile.am:
	* gui/component/Makefile.am:
	* contact-editor/Makefile.am:
	* printing/Makefile.am: Look for ename in /e-util/ename instead of
	/addressbook/ename
	
	* backend/ebook/e-card.c: Updated to include e-util/ename/*.h

	* ename: Moved to /e-util so it could be shared

	* Makefile.am (SUBDIRS): took out ename

2000-09-25  Nat Friedman  <nat@helixcode.com>

	* ename/e-name-western-tables.h: Added a ton of new prefixes and
	suffixes.

2000-09-22  Michael Meeks  <michael@helixcode.com>

	* gui/component/addressbook.c (control_activate): update.

	* contact-editor/e-contact-editor.c (create_ui): upd.

2000-09-22  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c: lots of changes.  flesh out the
 	remove/modify/create functions.  add another flag for the property
 	table, PROP_DN, which makes it easy for us to determine when we
 	need to create a new DN for a record when we're modifying.  also
 	add a ber_func to the table for PROP_TYPE_LIST fields, which fills
 	in the list of bvalues that we send to the ldap server.  The
 	add/modify/delete stuff hasn't been tested yet, and it hopelessly
 	complex (yay ldap).
	(ldap_search_handler): act synchronous when ldap_search responds
 	with -1.
	(view_destroy): use pas_book_view_notify_status_message.
	(ldap_op_process_current): same
	(ldap_op_process): same
	(poll_ldap): same
	(ldap_search_handler): same

2000-09-22  Chris Toshok  <toshok@helixcode.com>

	* backend/ebook/e-card-simple.h: add
 	E_CARD_SIMPLE_FIELD_FAMILY_NAME to the enum.

	* backend/ebook/e-card-simple.c (field_data): add
 	E_CARD_SIMPLE_FIELD_FAMILY_NAME.
	(e_card_simple_get): add getter for FAMILY_NAME.

2000-09-22  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c: Made addresses be quoted printable again
 	so that they will encode properly if they have carriage returns in
 	them.  This is possible now because of a fix in libversit.

2000-09-22  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-book-view-listener.c,
 	backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c,
 	backend/ebook/e-book-view.h, backend/idl/addressbook.idl,
 	backend/pas/pas-book-view.c, backend/pas/pas-book-view.h: Added a
 	function to set the status message associated with a given view.
  	This is not yet implemented in the gui.

2000-09-22  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-book.c, backend/ebook/e-book.h,
	backend/idl/addressbook.idl, backend/pas/pas-backend-file.c,
	backend/pas/pas-backend-ldap.c, backend/pas-backend.c,
	backend/pas/pas-backend.h, backend/pas/pas-book.c,
	backend/pas/pas-book.h: Added a function to query static
	capabilities (capabilities that can be reported immediately) and
	implemented them in the 2 servers.

	* gui/component/addressbook.c: Added a View All button and a Stop
	button.  Sorted out the new directory server stuff a bit.

	* gui/widgets/e-addressbook-model.c,
	gui/widgets/e-addressbook-model.h: Cleaned up a bit.  Added a stop
	function.  Check for capabilities before deciding whether to load
	all cards when initially viewed.

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h: Added stop and view all
	functions.

	* gui/widgets/e-minicard-view-widget.c,
	gui/widgets/e-minicard-view-widget.h,
	gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h:
	Added a stop function.  Check for capabilities before deciding
	whether to load all cards when initially viewed.

2000-09-21  Michael Meeks  <michael@helixcode.com>

	* gui/component/addressbook.c (control_activate): remove _UIHandler

2000-09-21  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/load-pine-addressbook.c: Added a missing include
	of ctype.h.

	* backend/pas/pas-backend-file.c: Fixed a problem where using a
	GList was causing us to not be reentrant.  We now use an EList
	here and so now this is reentrant.  This should fix the "wombat
	crashes every time you run evolution" bug.

	* contact-editor/e-contact-editor.c: Fixed a type mismatch.

2000-09-21  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/load-pine-addressbook.c: Make this work when a
	field is spread across multiple lines.

2000-09-20  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added a
	wants_html field to cards.  Uses "x-mozilla-html".

	* contact-editor/Makefile.am: Added definition of
	EVOLUTION_DATADIR.

	* contact-editor/contact-editor.glade: Make Wants HTML check
	button visible.

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h: Make Wants HTML check button
	active.  Fix UI stuff to use XML.  Set parent window of
	confirm_delete dialog.

	* gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard.c: Set
	the parent window of the confirm_delete dialog.
	
2000-09-20  Christopher James Lahey  <clahey@helixcode.com>

	* gui/widgets/e-addressbook-view.c: Fixed display of the minicards
	when the addressbook was first loading.  (It was overwriting a
	string with NULL during init.)

2000-09-19  Dan Winship  <danw@helixcode.com>

	* gui/search/Makefile.am (ruledir): Use $(datadir), not
	$(prefix)/share

2000-09-18  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/Makefile.am, contact-editor/Makefile.am,
	ename/Makefile.am, gui/component/Makefile.am,
	gui/widgets/Makefile.am: Added $(EXTRA_GNOME_CFLAGS) and
	$(EXTRA_GNOME_LIBS).  Removed unneeded libraries.

	* backend/ebook/e-card.c, backend/pas/pas-backend-file.c,
	contact-editor/e-contact-editor-address.c,
	contact-editor/e-contact-editor-categories.c,
	contact-editor/e-contact-editor-categories.h,
	contact-editor/e-contact-editor-fullname.c,
	contact-editor/e-contact-editor.c,
	contact-editor/e-contact-save-as.c, ename/e-address-western.c,
	ename/test-ename-western-gtk.c,
	gui/component/addressbook-factory.c, gui/component/addressbook.c,
	gui/component/e-cardlist-model.h, gui/component/e-ldap-storage.c,
	gui/component/select-names/e-select-names-bonobo.c,
	gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names-model.c,
	gui/component/select-names/e-select-names-table-model.c,
	gui/component/select-names/e-select-names-table-model.h,
	gui/component/select-names/e-select-names-text-model.h,
	gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h,
	gui/search/e-addressbook-search-dialog.c,
	gui/widgets/e-addressbook-model.h,
	gui/widgets/e-addressbook-view.c, gui/widgets/e-minicard-label.c,
	gui/widgets/e-minicard-view-widget.c,
	gui/widgets/e-minicard-view-widget.h,
	gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h,
	gui/widgets/e-minicard-widget.h, gui/widgets/e-minicard.c,
	gui/widgets/test-minicard-label.c, gui/widgets/test-reflow.c,
	printing/e-contact-print.c: Fixed the #include lines to deal
	properly with gal.
	
2000-09-15  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.h,
	contact-editor/e-contact-save-as.h,
	gui/widgets/e-addressbook-model.h,
	gui/widgets/e-minicard-view-widget.h,
	gui/widgets/e-minicard-view.h, gui/widgets/e-minicard.c,
	gui/widgets/e-minicard.h: Fixed the paths of some .h #includes.

	* gui/component/addressbook.c: Removed all of the code to actually
	create and display the correct view of the addressbook and moved
	it to the new class gui/widgets/e-addressbook-view.c.

	* gui/widgets/Makefile.am: Added everything necessary for
	e-addressbook-view.c and e-addressbook-view.h.

	* gui/widgets/e-addressbook-view.c,
	gui/widgets/e-addressbook-view.h: New class to deal with actual
	display of addresses and switching between card view and table
	view.

	* gui/widgets/e-minicard-view-widget.c: Made this deal more
	gracefully with having the book set to NULL.

2000-09-16  Michael Meeks  <michael@helixcode.com>

	* gui/component/select-names/e-select-names.c: fix broken include.

	* gui/component/Makefile.am (INCLUDES): define datadir.
	(evolution_addressbook_SOURCES): remove e-addressbook-model.[ch]

	* gui/component/addressbook.c (control_activate): use datadir.

2000-09-16  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/widgets/Makefile.am (gladedir): Define.
	(glade_DATA): Install `alphabet.glade'.
	(EXTRA_DIST): Define.

	* gui/component/Makefile.am (glade_DATA): Remove `alphabet.glade'.
	(EXTRA_DIST): Remove `alphabet.glade.h'.

	* gui/widgets/Makefile.am (libeminicard_a_SOURCES): Add
	`e-addressbook-model.c' and `e-addressbook-model.h'.  I hope this
	is what Chris meant to do.

	* gui/component/Makefile.am (INCLUDES): Add
	`-I$(top_srcdir)/addressbook/gui/widgets'.
	(evolution_addressbook_SOURCES): Remove `e-addressbook-model.c'
	and `e-addressbook-model.h'.

	* gui/component/select-names/e-select-names.c: #include
	"e-addressbook-model.h" from "addressbook/gui/widgets" instead of
	"addressbook/gui/component", as it has been moved there.

2000-09-15  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c: split all the ldap operations
	into 2 halves, a handler, and destructor, and create a structure
	containing two function pointers and any data they need.  this
	allows us queue up pending operations (since the LDAP*'s are no
	longer view specific.  there's one per backend.)  also, add
	support for restarting async operations if the SERVER DOWN error
	isn't communicated until sometime after the handler is called (as
	is the case with the async search stuff.)

2000-09-14  Dan Winship  <danw@helixcode.com>

	* gui/component/addressbook-factory.c (main): Call unicode_init
	for e-font stuff.

2000-09-14  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/Makefile.am, gui/widgets/Makefile.am: Added
	$(GNOME_PRINT_LIBS) to all of the test files in these directories.

2000-09-14  Michael Meeks  <michael@helixcode.com>

	* gui/component/Makefile.am (evolution_addressbook_LDADD): fix path.

	* gui/component/addressbook.c: update include.

	* gui/component/addressbook-factory.c: update include.

	* gui/widgets/e-minicard-view.h: update include.

	* gui/search/e-addressbook-search-dialog.c: update include path.

2000-09-13  Michael Meeks  <michael@helixcode.com>

	* contact-editor/e-contact-editor.c (e_contact_editor_init): hack.
	(create_toolbar): ditto.

2000-09-07  Michael Meeks  <michael@helixcode.com>

	* gui/component/addressbook.c: Radicaly update UI handler code.

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

	* gui/widgets/*, gui/minicard/*: Moved gui/minicard to
	gui/widgets, except for e-reflow.c, e-reflow.h, e-reflow-sorted.c,
	and e-reflow-sorted.h.

	* gui/widgets/Makefile.am: Added e-reflow to the INCLUDES list and
	libereflow.a to a bunch of LDADD lines.

	* gui/component/Makefile.am (evolution_addressbook_LDADD): Added
	libereflow.a here.

	* gui/Makefile.am (SUBDIRS): Replaced minicard with widgets.

2000-09-12  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/select-names/Makefile.am: Add space after `-I'
	when invoking `orbit-idl'.

2000-09-12  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/Makefile.am (EXTRA_DIST): Remove `ui.xml'.

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

	* contact-editor/e-contact-editor.c: Fixed a crash error.

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

	* ename/e-address-western.c: Fixed some warnings.

2000-09-11  Jesse Pavel <jpavel@helixcode.com>

	* ename/e-address-western.c: fixed certain address parsing
	problems.

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

	* contact-editor/fulladdr.glade: Made this a bit better balanced.

	* gui/component/addressbook.c: Make the toolbar button for find do
	the same thing that the menu item for search does.

	* gui/search/e-addressbook-search-dialog.c: Made the top half of
	this not expand.

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

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Removed a bunch of redundant code.  Made it so that when you set
	an address label, it sets the delivery address as well.  Added
	functions to set and get the delivery address.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added code to
	convert and address label to a delivery address.

	* contact-editor/Makefile.am: Added e-contact-editor-address.[ch],
	fulladdr.glade, fulladdr.glade.h.

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor-strings.h: Switched from a label
	to a button to show the parsed address.

	* contact-editor/e-contact-editor-address.c,
	contact-editor/e-contact-editor-address.h: New class to implement
	the parsed address dialog.

	* contact-editor/e-contact-editor-fullname.c,
	contact-editor/e-contact-editor-fullname.h: Added const to the
	_new function.

	* contact-editor/e-contact-editor.c: Implemented clicking on the
	address button.

	* contact-editor/fulladdr.glade, contact-editor/fulladdr.glade.h:
	New glade files for the parsed address dialog.

	* contact-editor/fullname-strings.h, fullname.glade: Changed these
	accellabels to labels.

	* ename/Makefile.am: Added e-address-western.c.

	* ename/e-address-western.c: Fixed some warnings.

2000-09-10  Christopher James Lahey  <clahey@helixcode.com>

	* ename/e-address-western.c: Added by Jesse.

2000-09-08  Lauris Kaplinski  <lauris@helixcode.com>

	* gui/minicard/e-minicard-label.c (e_minicard_label_construct):
	Use canvas default font

	* gui/minicard/e-minicard.c (e_minicard_realize): Ditto
	(get_left_width): Ditto

2000-09-08  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c: Fixed a few warnings.

2000-09-02  Lauris kaplinski  <lauris@helixcode.com>

	* contact-editor/e-contact-editor-categories.c: e_utf8 wrappers

	* contact-editor/e-contact-editor.c: e_utf8 wrappers

2000-09-01  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/e-ldap-storage.c (load_ldap_data): Updated for the
	extra arg now needed by `evolution_storage_new_folder()'.
	(e_ldap_storage_add_server): Likewise.

2000-08-31  Ettore Perazzoli  <ettore@helixcode.com>

	* conduit/Makefile.am (INCLUDES): Add `BONOBO_GNOME_CFLAGS' and
	`-I$(top_srcdir)'.

2000-08-31  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/Makefile.am: Install load-gnomecard-addressbook
	and load-pine-addressbook.

2000-08-30  Lauris Kaplinski  <lauris@helixcode.com>

	* printing/e-contact-print.c: Countless small changes for gnome-print 0.21+

2000-08-30  Dan Winship  <danw@helixcode.com>

	* gui/component/addressbook.oafinfo: Add a name to the minicard
	viewer.

2000-08-29  Dan Winship  <danw@helixcode.com>

	* backend/ebook/e-book.c: 
	* backend/ebook/test-client.c: 
	* backend/ebook/test-client-list.c: 
	* backend/ebook/load-gnomecard-addressbook.c: 
	* backend/ebook/load-pine-addressbook.c: 
	* backend/pas/pas-book-factory.c: 
	* conduit/address-conduit.h: Remove USING_OAF checks

2000-08-28  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Use the right argument name to turn
	on grid lines.

2000-08-26  JP Rosevear  <jpr@helixcode.com>

	* gui/minicard/Makefile.am: Comment out minicard-view-test
	since its gnorba dependent
	
2000-08-26  JP Rosevear  <jpr@helixcode.com>

	* gui/component/addressbook-component.c: Remove gnorba stuff

	* gui/minicard/e-minicard-control.c (e_minicard_control_factory_init):
	ditto

	* gui/component/addressbook.c: ditto

	* gui/component/addressbook-factory.c: ditto

2000-08-25  Christopher James Lahey  <clahey@helixcode.com>

	* demo/* Removed the demo directory since it's no longer used.

2000-08-26  JP Rosevear  <jpr@helixcode.com>

	* gui/minicard/Makefile.am: Remove gnorba stuff

	* gui/minicard/e-minicard-control.gnorba: Kill
	
2000-08-26  JP Rosevear  <jpr@helixcode.com>

	* gui/component/addressbook.gnorba: Kill

	* gui/component/Makefile.am:  Remove gnorba stuff

2000-08-25  Dan Winship  <danw@helixcode.com>

	* gui/component/Makefile.am (evolution_addressbook_LDFLAGS): Add
	-export-dynamic so libglade will be able to resolve custom widget
	callbacks.

2000-08-23  Lauris Kaplinski  <lauris@helixcode.com>

	* backend/pas/pas-backend-file.c (func_contains): Use e_utf8_strstrcase

	* contact-editor/e-contact-editor-fullname.c (fill_in_field): Use e_utf8 wrapper
	(extract_field): Same

	* contact-editor/e-contact-editor.c (full_name_clicked): Don't crash

	* ename/Makefile.am: Link demo with libeutil.la

	* ename/test-ename-western-gtk.c (full_changed_cb): Use e_utf8 wrapper

	* gui/component/addressbook.c (find_contact_cb): Use e_utf8 wrapper
	(search_entry_activated): Same

2000-08-22  Christopher James Lahey  <clahey@helixcode.com>

	* gui/search/e-addressbook-search-dialog.c: Fix an error in the
	arguments to rule_context_load.

	* backend/ebook/e-card.c: Fix this to not mess up if the person
	passes a VCard with a carriage return in the mailing address.

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

	* gui/search/addresstypes.xml: Fixed fullname->full_name for
	search field.

	* gui/search/e-addressbook-search-dialog.c (get_widget): Check we
	actually got any parts to build the dialogue with.

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

	* gui/component/addressbook-component.c (owner_set_cb): Set the
	global_shell_client nastyhack when we know it.
	This is only required to link with the filter code ...

	* gui/component/Makefile.am (evolution_addressbook_LDADD): Added
	libfilter.a to the link line.

	* gui/search/Makefile.am (noinst_LIBRARIES): Change library name
	from libaddressbooksearchdialog to libaddressbooksearch, as used
	elsewhere.

	* gui/search/e-addressbook-search-dialog.c (get_widget):
	Implement.
	(get_query): Likewise.
	(e_addressbook_search_dialog_destroy): Unref filter stuff when
	done.

	* gui/component/addressbook.c (control_deactivate): Added chris's
	patch to put the meny in

2000-08-22  Lauris Kaplinski  <lauris@helixcode.com>

	* contact-editor/e-contact-editor.c: Use e_utf8 wrappers everywhere

2000-08-22  Christopher James Lahey  <clahey@helixcode.com>

	* backend/e-card.h: Started adding a time zone field to ECard.

	* gui/component/e-addressbook-model.c: Added
	e_table_model_pre_change where appropriate.

	* gui/minicard/e-minicard-control.c: Added a ref and unref pair.

2000-08-22  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Linked in the search dialog again.
	It looks like some changes in the shell made this not work.

2000-08-19  Christopher James Lahey  <clahey@helixcode.com>

	* conduit/address-conduit.c, conduit/address-conduit.h: Changed
	this to use ECardSimple.

	* contact-editor/e-contact-editor.c: Fixed a memory leak.

	* gui/component/addressbook.c: Added stuff to the right click
	menu.  Activated the new search dialog that doesn't quite work
	yet.

	* gui/minicard/e-minicard-view.c: Fixed some run time warnings.

2000-08-15  Larry Ewing  <lewing@helixcode.com>

	* gui/minicard/e-minicard.c (e_minicard_event): use style colors
	for the selected state.  This doesn't properly redraw the minicard
	when there is a style_change event, that is next.
	(e_minicard_realize): use style colors.

2000-08-14  Peter Williams  <peterw@helixcode.com>

	* backend/pas/pas-backend-file.c: Include the proper db1/db.h
	as in RedHat 7.0 -- patch from Kenny Graunke <kwg@teleport.com>

2000-08-13  Chris Toshok  <toshok@helixcode.com>

	* conduit/Makefile.am (libaddress_conduit_la_SOURCES): add
	address-conduit.h

	* Makefile.am (CONDUIT_SUBDIR): only set subdir if
	ENABLE_PILOT_CONDUITS is set.

2000-08-13  Chris Toshok  <toshok@helixcode.com>

	* Makefile.am (SUBDIRS): add conduit subdir.

2000-08-13  Chris Toshok  <toshok@helixcode.com>

	* conduit/address-conduit.c (conduit_get_gpilot_conduit): add
	special oaf initialization hack so conduit can find wombat, and
	accept all cookies so that we can actually talk to oaf.

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

	* backend/pas/pas-backend-file.c: Fixed a typo that cause the
	wrong field to be searched.

	* gui/component/select-names/e-select-names.c: Made the select
	names dialog only display entries with email addresses.

2000-08-12  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/contact-editor.glade: Fixed a typo in the name of
	the first phone entry.

2000-08-12  Christopher James Lahey  <clahey@helixcode.com>

	* gui/search/Makefile.am,
	gui/search/e-addressbook-search-dialog.c,
	gui/search/e-addressbook-search-dialog.h: A few small interface
	fixes.

	* gui/component/Makefile.am: Link in the addressbook search
	dialog.

2000-08-12  Christopher James Lahey  <clahey@helixcode.com>

	* gui/Makefile.am: Added the search directory.

	* backend/ebook/e-book.c: Fixed a potential crash.

	* gui/minicard/e-reflow-sorted.h: Fixed an include line.

	* gui/search/.cvsignore, gui/search/Makefile.am: New files.

	* gui/search/e-addressbook-search-dialog.c: Fixed compilation.

2000-08-12  Christopher James Lahey  <clahey@helixcode.com>

	* printing/Makefile.am: Ettore fixed compilation.

2000-08-12  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/.cvsignore: Added load-gnomecard-addressbook.

2000-08-12  Christopher James Lahey  <clahey@helixcode.com>

	* gui/search/e-addressbook-search-dialog.c,
	gui/search/e-addressbook-search-dialog.h: Made this into a Gtk
	object.

2000-08-12  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-book-view.c: Ref our book view listener.

	* gui/component/addressbook.c: Updated to use new minicard view
	widget.

	* gui/minicard/Makefile.am: Added e-minicard-view-widget.c and
	e-minicard-view-widget.h.

	* gui/minicard/e-minicard-view-widget.c,
	gui/minicard/e-minicard-view-widget.h: New class that's just a
	minicard view in an ECanvas.

	* gui/search/e-addressbook-search-dialog.c: New file for
	implementing a search dialog.

2000-08-11  Chris Toshok  <toshok@helixcode.com>

	* conduit/address-conduit.c (transmit): implement code to encode
	the first email address and send to the pilot.
	(get_phone_label_by_flag): rename find_phone_label_for_flags to
	this, and implement by calling get_phone_label_by_name.

2000-08-11  Chris Toshok  <toshok@helixcode.com>

	* conduit/address-conduit.c (ecard_from_remote_record): add code
	for handling email addresses from pilot (which stores it as a
	phone number entry.  go figure.)
	(check_for_slow_setting): #if 0 out, since we don't use it (yet).
	(update_record): un #if 0 the code to handle the case where the
	pilot info has changed for a local record.
	(merge_ecard_with_remote_record): implement function, but for now
	just return the existing (desktop) record - we still don't allow
	merge from the pilot.


2000-08-10  Christopher James Lahey  <clahey@helixcode.com>

	* gui/search/addresstypes.xml: Changed a couple of input field
	names.

2000-08-10  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook-component.c: Remove prototype for
	`setup_ldap_storage()', which shouldn't be here anyway.

2000-08-10  Christopher James Lahey  <clahey@helixcode.com>

	* gui/search/, gui/search/addresstypes.xml: New search dialog for
	addressbook.

2000-08-10  Dan Winship  <danw@helixcode.com>

	* gui/component/addressbook-component.c (owner_set_cb): Update for
	changed prototype, pass evolution_homedir arg to
	setup_ldap_storage.

	* gui/component/e-ldap-storage.c (setup_ldap_storage): Now takes
	an evolution_homedir arg, uses that to generate the path to the
	ldapservers.xml file, and stores the result in a static variable.
	(e_ldap_storage_add_server, e_ldap_storage_remove_server): Use that
	static variable rather than hardcoding the path to the file.

2000-08-10  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-backend-file.c: Fixed any search to not crash on
	missing phone numbers or email addresses.

2000-08-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard-control.c: Added a button to save to
	your addressbook.

2000-08-09  Cody Russell  <bratsche@gnome.org>

	* gui/component/addressbook.c: Make the toolbar honor the user's
	gnomecc settings for detachable toolbars.

2000-08-09  Nat Friedman  <nat@helixcode.com>

	* ename/e-name-western-tables.h: Added some military prefixes.

2000-08-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Fixed a warning.

2000-08-09  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook.c (control_activate): Add the stock
	print icon to the print item.

2000-08-09  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook.c (control_activate): Put the print
	item in the right placeholder so that it gets the right position
	in the "File" menu.
	(control_deactivate): Updated accordingly.

2000-08-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c, gui/minicard/e-minicard.c: Changed
	e_popup_menu_run call to match the new arguments.

	* gui/component/addressbook.oafinfo: Fixed this file to work
	properly.

	* gui/minicard/e-minicard-control.c: Use the correct oafinfo ID
	here.  Also cleaned up the code a bit with the help of Michael
	Meeks.

2000-08-08  Chris Toshok  <toshok@helixcode.com>

	* gui/component/e-addressbook-model.c (e_addressbook_model_init):
	use x-evolution-any-field.

	* gui/component/addressbook.c (search_entry_activated): use
	x-evolution-any-field.
	(change_view_type): same.

	* gui/minicard/e-minicard-view.c (e_minicard_view_init): set query
	to x-evolution-any-field.

	* backend/pas/pas-backend-ldap.c (func_contains): support
	x-evolution-any-field for matching any evolution supported field.

	* backend/pas/pas-backend-file.c (compare_email): switch to using
	ECardSimple calls.
	(compare_phone): same.
	(compare_address): same.
	(entry_compare): switch to using ECardSimple calls, and support a
	'x-evolution-any-field' wildcard field.
	(vcard_matches_search): use an ECardSimple.

2000-08-07  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Removed the next and prev
	toolbar buttons since they don't do anything.

2000-08-07  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor.c: Fixed the tab order to not
	repeat the web page address field.

2000-08-07  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Fixed the tab order for this
	dialog.

2000-08-05  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c: Fixed a warning.

	* backend/ebook/e-card.c: Cast to (char *) in
	e_card_load_cards_from_file since libversit isn't const correct.

	* backend/pas/pas-backend-file.c: Fixed a warning.

2000-08-04  Michael Meeks  <michael@helixcode.com>

	* gui/component/addressbook.c (control_activate): unref.

	* demo/addressbook.c (control_activate): unref.

2000-08-02  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c,
	gui/component/e-addressbook-model.c: Emit "model_pre_change"
	signal as appropriate.

2000-08-02  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/e-addressbook-model.c: Adapted this to supply the
	new append_row API of ETableModel.

2000-07-31  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Changed the default set of columns.

2000-07-29  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/Makefile.am: Added load-gnomecard-addressbook
	compilation.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added
	e_card_load_cards_from_file helper function to load multiple cards
	from a single file.

	* backend/ebook/load-gnomecard-addressbook.c: New file to load
	vcard files.  I think this is the format that gnomecard uses so if
	you copy your gnomecard file to gnomecard.vcf and then run this
	program in the same directory, it'll copy all your gnome contacts
	into evolution.  It needs to be changed to take a filename as a
	parameter.  Some fields (phone and address information, for
	example) aren't displayed properly, but are saved.  This is new
	code, so some other than phone and address may be lost.

2000-07-28  Ettore Perazzoli  <ettore@helixcode.com>

	* backend/pas/Makefile.am: Add `pas-backend-ldap.c' and
	`pas-backend-ldap.h' to `EXTRA_DIST' so they get distributed even
	if the OpenLDAP support is not enabled.

2000-07-27  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/load-pine-addressbook.c: Changed the URI to load
	to.

2000-07-26  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard-widget-test.c: Fixed a warning.

2000-07-26  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c (view_destroy): wait to free the
	view until we've taken care of freeing its internals.  also, close
	the ldap connection here.
	(pas_backend_ldap_connect): rename p_b_l_ensure_connected to this,
	since it's always called when we create a view.
	(pas_backend_ldap_build_all_cards_list): open an ldap connection
	in this function and close it at the end.
	(poll_ldap): make sure to call ldap_unbind to close the view's
	connection here.
	(pas_backend_ldap_search): call pas_backend_ldap_connect here -
	ldap_unbind will either be called from poll_ldap or from
	view_destroy.
	(pas_backend_ldap_get_vcard): the PASBackendLDAP no longer has an
	LDAP*.

2000-07-26  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_build_all_cards_list): add support for user settable scope.
	(pas_backend_ldap_search): same.
	(pas_backend_ldap_load_uri): same.

2000-07-26  Dan Winship  <danw@helixcode.com>

	* gui/component/addressbook.oafinfo: lowercasify the
	supported_mime_types

2000-07-25  Chris Toshok  <toshok@helixcode.com>

	* backend/ebook/e-card-types.h: add enum for e-card pilot status.

	* conduit/address-conduit.c: #ifdef out all the archiving code with SUPPORT_ARCHIVING.
	(purge): implement correctly - deleting ecards whose pilot status is DELETED.
	(set_status): implement.
	(set_pilot_id): add gtk_main call here to change commit_card into a synchronous
	(delete_all): implement correctly - don't delete the records, just set their status to DELETED.
	(local_record_from_ecard): get the current status from the ecard.

	* backend/ebook/e-card.c (e_card_get_vcard): add vcard support for pilot status.
	(parse_pilot_status): new function.
	(e_card_class_init): add pilot status object arg.
	(e_card_set_arg): add pilot status support.
	(e_card_get_arg): same.
	(e_card_init): initialize pilot_status to 0.

2000-07-25  Chris Toshok  <toshok@helixcode.com>

	* conduit/address-conduit.c: add comment headers to signals that
	didn't have any.
	
2000-07-25  Chris Toshok  <toshok@helixcode.com>

	* conduit/address-conduit.c (start_address_server): use the user's
	Contact db.  not toshok's.

2000-07-25  Michael Meeks  <michael@helixcode.com>

	* backend/ebook/load-pine-addressbook.c (book_open_cb): check we
	opened ok.

2000-07-25  Seth Alves  <alves@hungry.com>

	* ename/Makefile.am (libename_static_la_LDFLAGS): build static
	version of the library for address conduit to use

	* backend/ebook/Makefile.am: build a static version of the library
	to link into the conduit

2000-07-25  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c: Added a #define for
	"X-EVOLUTION-PILOTID".  Added a parse_pilot_id to read pilot id's
	in properly from VCards.  Rearranged some field orders.  Added a
	get_arg case for ARG_PILOTID.  Initialize pilot_id field to 0.

2000-07-24  Chris Toshok  <toshok@helixcode.com>

	* backend/ebook/e-card.h: add pilot_id.

	* backend/ebook/e-card.c (e_card_get_vcard): add support for
	X-EVOLUTION-PILOTD vcard field.
	(e_card_class_init): add pilot_id arg.
	(e_card_set_arg): handle pilot_id arg.

2000-07-23  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-book-view-listener.c: Remove the idle handler
	when we're destroyed.

	* printing/e-contact-print.c: Fixed the spacing on the card
	header.

2000-07-20  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.oafinfo: Fixed the oaf info.

	* gui/minicard/.cvsignore, gui/minicard/Makefile.am,
	gui/minicard/e-minicard-widget-test.c: Added a test for the
	minicard widget.

	* gui/minicard/e-minicard-control.c: Fixed the mime type.

	* gui/minicard/e-minicard.c: Fixed some crashes if your parent
	isn't a minicard view.

	* gui/minicard/e-minicard-control.oafinfo: Removed.

2000-07-20  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook-component.c (factory_fn): Update for
	the new `evolution_shell_component_new()'.

2000-07-19  Fatih Demir	<kabalak@gmx.net>
	
	* conduit/address-conduit-control-applet.desktop:
		Added the Turkish desktop entry.

2000-07-18  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard-control.c: Added "text/vCard" to the
	list of mime types we support.

2000-07-18  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/Makefile.am: Added
	gui/minicard/e-minicard-control.c,
	gui/minicard/e-minicard-control.h,
	gui/minicard/e-minicard-widget.c, and
	gui/minicard/e-minicard-widget.h.

	* gui/minicard/e-minicard-control.c,
	gui/minicard/e-minicard-control.h,
	gui/minicard/e-minicard-widget.c,
	gui/minicard/e-minicard-widget.h: Got these to compile.

	* gui/minicard/e-minicard-control.gnorba,
	gui/minicard/e-minicard-control.oafinfo: Copied directly from
	bonobo-clock-control.  These aren't done yet.

2000-07-18  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard-control.c,
	gui/minicard/e-minicard-control.h,
	gui/minicard/e-minicard-widget.c,
	gui/minicard/e-minicard-widget.h: New files for using a minicard
	as a widget or a bonobo control.

2000-07-14  Chris Toshok  <toshok@helixcode.com>

	* gui/component/e-ldap-storage.c (ldap_server_foreach): duh.
	don't save the port in the host slot either.

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

	* contact-editor/e-contact-editor-confirm-delete.glade,
	contact-editor/e-contact-editor-confirm-delete.glade.h: Added
	these.

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

	* Makefile.am: Switched the order of compilation of printing and
	contact-editor.

	* contact-editor/Makefile.am: Added printing libraries and a
	confirm delete dialog glade file.

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h: Enabled the delete and print
	functions as well as providing a confirm delete dialog to the
	outside world.

	* gui/component/addressbook.c: Made the delete button on new cards
	active.

	* gui/minicard/Makefile.am: Added printing libraries to a number
	of test programs.

	* gui/minicard/e-minicard.c: Added print and delete to the right
	click menu.  Made the delete button on the card editor active.

	* printing/e-contact-print.c, printing/e-contact-print.h: Added a
	function to print a single card.

2000-07-12  Chris Toshok  <toshok@helixcode.com>

	* gui/component/e-ldap-storage.c (ldap_server_foreach): oops.  fix
	typo that was saving the port in the rootdn spot.
	(save_ldap_data): make this a bit safer - writing to a new file
	and renaming it.
	(load_ldap_data): make this a bit smarter - if parsing the
	ldapservers.xml file fails and there's a .new file there,
	rename it.
	
2000-07-12  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-backend-file.c: Do case insensitive compares.

	* addressbook/gui/component/addressbook.c: Make quick search
	search both name and company name.

2000-07-12  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Add icons to the toolbars.

2000-07-12  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/Makefile.am: Added installation of arrow.png.

	* contact-editor/e-contact-editor.c: Use EVOLUTIONDIR #define.

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

	* gui/component/addressbook.c: Removed an unused function

2000-07-10  Dan Winship  <danw@helixcode.com>

	* gui/component/select-names/Makefile.am (EXTRA_DIST): add idl
	file to EXTRA_DIST

2000-07-10  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook.c (control_activate): Remove the
	SelectNames test.

2000-07-10  Peter Williams  <peterw@curious-george.helixcode.com>

	* gui/component/select-names/e-select-names-model.c: (Clahey's fix)
	Make multiple addresses be concatenated correctly.

2000-07-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c,
	gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h: Switched from ETable
	to ETableScrolled.

	* addressbook/gui/minicard/e-minicard.c: Don't display mailer or
	"name or org" fields.

2000-07-09  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Added a field that gives the name if it exists and the company
	name otherwise.

	* gui/component/e-addressbook-model.c: Formatting changes.

	* gui/component/select-names/e-select-names-table-model.c: Added
	stripping of names and display of company name if name doesn't
	exist.

	* gui/component/select-names/e-select-names.c: Fixed up the
	display so that we display both name and email address.

2000-07-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/select-names/e-select-names-model.c: Fixed a small
	off by one error that was causing an extra character to get
	deleted sometimes.

2000-07-09  Anders Carlsson  <andersca@gnu.org>

	* gui/minicard/test-reflow.c (allocate_callback): Fix off by one bug with
	scroll region setting.
	(resize): Likewise.
	(main): Put the contacts list in an EScrolledFrame instead of using a
	separate GtkScrollbar.

	* gui/minicard/e-reflow.c (e_reflow_event): Don't change mouse cursor and
	don't allow drags on dividers that aren't visible.

	* gui/component/addressbook.c (allocate_callback): Fix off by one bug with
	scroll region setting.
	(resize): Likewise.
	(create_minicard_view): Put the contacts list in an EScrolledFrame instead of
	using a separate GtkScrollbar.

2000-07-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Removed unused do_nothing_cb
	function.

	* gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names-manager.h: Made the OK
	and Cancel buttons in the ESelectNames dialog we create work
	properly.
	
	* gui/component/select-names/e-select-names-model.c,
	gui/component/select-names/e-select-names-model.h: Added
	e_select_names_model_duplicate.

	* gui/component/select-names/e-select-names-text-model.c: Made the
	text be set correctly if there's already data in the source when
	the text model is created.

	* gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h: Removed handling of
	the buttons (the user of this dialog will have to handle them.)
	Added e_select_names_get_source.  Fixed some typos.

2000-07-09  Not Zed  <NotZed@HelixCode.com>

	* gui/component/addressbook.c: Link the toolbar print button to
	the print callback.

2000-07-08  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/select-names/e-select-names.c
	(e_select_names_clicked): Hitting OK or Cancel at least closes the
	dialog now.

2000-07-08  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_create_entry): Set the returned entry to
	use the ellipsis.

2000-07-08  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook-factory.c: Include
	e-select-names-factory.h.

	* gui/component/select-names/e-select-names-model.c: Handle a NULL
	iterator properly in the replace function.

	* gui/component/select-names/e-select-names-table-model.c: Fill in
	info properly in the value_at function.

	* gui/component/select-names/e-select-names-text-model.c: Don't
	strlen a NULL text object.

	* gui/component/select-names/e-select-names.c: Close if the person
	hits ok or cancel (doesn't yet actually undo changes if Cancel is
	hit.)  Handle removing addresses when they're double clicked on.

	* gui/component/select-names/select-names.glade,
	gui/component/select-names/select-names.glade.h: Hid some unused
	fields and changed the text at the top of the dialog.

2000-07-08  Jeffrey Stedfast  <fejj@helixcode.com>

	* gui/component/select-names/.cvsignore: Ignore dynamically 
	created source files

2000-07-08  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/select-names/e-select-names-bonobo.c
	(entry_get_property_fn): New function to set the properties.

2000-07-08  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook-factory.c (main): Start up the factory
	for `Evolution::Addressbook::SelectNames'.

	* gui/component/select-names/evolution-addressbook-select-names.oafinfo:
	New.

	* gui/component/select-names/e-select-names-factory.c: New.
	* gui/component/select-names/e-select-names-factory.h: New.

	* gui/component/select-names/e-select-names-bonobo.c: New.
	* gui/component/select-names/e-select-names-bonobo.h: New.

	* gui/component/addressbook-factory.c (main): Call
	`e_select_names_factory_init()'.

	* gui/component/select-names/e-select-names-manager.c
	(e_select_names_manager_add_section): Made const-aware.
	(e_select_names_manager_create_entry): Made const-aware.
	(e_select_names_manager_activate_dialog): Made const-aware.

	* gui/component/select-names/Evolution-Addressbook-SelectNames.idl:
	New.

2000-07-08  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/e-addressbook-model.c,
	gui/component/e-addressbook-model.h: Added an "editable" argument.

	* gui/component/select-names/e-select-names.c: Set our
	EAddressModel to not be editable.

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

	* gui/component/select-names/e-select-names.c: Changed to line
	mode.

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

	* gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names-model.c: Implemented the
	get_cards function.

	* gui/component/select-names/e-select-names.c: Implemented adding
	cards through the interface.

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

	* gui/component/select-names/e-select-names-manager.c: Make the
	entry widgets we create editable.

	* gui/component/select-names/e-select-names-model.c: Use
	e_strsplit instead of g_strsplit.  Fixed an off by 1 error.

	* gui/component/select-names/e-select-names-table-model.c: When
	the model changes, send a model changed signal.

	* gui/component/select-names/e-select-names-text-model.c: Made
	changing this work correctly if it's empty.  Made change signals
	propagate properly.  Is a bit better about freeing iterators when
	done.

	* gui/component/select-names/e-select-names.c: Made the finished
	lists be in order instead of being sorted.

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

	* gui/component/addressbook.c (new_server_cb): Since
	ELDAPServer->port is a char *, allocate a string with the number
	389 contained.

	* gui/component/addressbook.c: Make the select names test test the
	new code instead of the old way of getting to an ESelectNames
	dialog.

	* gui/component/select-names/e-select-names-manager.c: Coded
	storing the model for each section, creating an entry and
	returning it, and for activating the dialog.  Wrote a bit of the
	get_cards code, but not all of it.

	* gui/component/select-names/e-select-names-model.c,
	gui/component/select-names/e-select-names-model.h: Coded all of
	the code needed to make ESelectNamesTextModel work (it doesn't
	yet, but all the code should be there.)  Removed
	E_SELECT_NAMES_MODEL_DATA_TYPE_SEPARATION_MATERIAL.

	* gui/component/select-names/e-select-names-table-model.c,
	gui/component/select-names/e-select-names-text-model.c: Changed
	these to compensate for removal of
	E_SELECT_NAMES_MODEL_DATA_TYPE_SEPARATION_MATERIAL.

	* gui/component/select-names/e-select-names-table-model.h,
	gui/component/select-names/e-select-names-text-model.h: Fixed some
	silly typos.

	* gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h: Added a parameter to
	add_section that lets you specify the source ESelectNamesModel.
	
2000-07-06  Chris Toshok  <toshok@helixcode.com>

	* gui/component/e-ldap-storage.h: add scope to ELDAPServer, and
	make port a string.

	* gui/component/e-ldap-storage.c (load_ldap_data): don't load a
	uri, load all the bits and pieces and build up the uri when
	creating the folder, according to the openldap url format.
	(ldap_server_foreach): store out each of the individual uri
	pieces.
	(e_ldap_storage_remove_server): free the new fields.
	(get_string_value): if the text is empty, return the empty string
	instead of NULL.

	* gui/component/e-ldap-server-dialog.c (extract_server_info): port is a string now.
	(fill_in_server_info): port is a string now.

2000-07-06  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Changed "FIXME: Save and
	Close" to "Save and Close".  Removed some toolbar items that will
	never be used.

	* gui/component/select-names/e-select-names-model.c,
	gui/component/select-names/e-select-names-model.h: Added functions
	to allow you to modify the model (not implemented yet.)

	* gui/component/select-names/e-select-names-table-model.c,
	gui/component/select-names/e-select-names-table-model.h: Finished
	this.  Doesn't support changing the model at all.

	* gui/component/select-names/e-select-names-text-model.c: Finished
	this.  Changing the model by typing is done, but doesn't work
	since none of the functions in the base model are implemented.

2000-07-05  Chris Toshok  <toshok@helixcode.com>

	* gui/component/addressbook.c (new_server_cb): call
	e_ldap_storage_add_server call.

	* gui/component/ldap-server-dialog.glade: add name row.

	* gui/component/e-ldap-server-dialog.h: remove the ELDAPServer type.

	* gui/component/e-ldap-server-dialog.c (extract_server_info): add
	support for the name-entry.

	* gui/component/e-ldap-server-dialog.c (fill_in_server_info): same.

	* gui/component/e-ldap-storage.h: add ELDAPServer type, and add
	prototypes for e_ldap_storage_add_server and
	e_ldap_storage_remove_server.

	* gui/component/e-ldap-storage.c (e_ldap_storage_add_server): new
	function, add it to our hash table, add a shell folder, and save
	out the metadata.
	(ldap_server_foreach): add the ldap server info under a
	"contactserver" node.
	(setup_ldap_storage): create our hashtable.

2000-07-05  Chris Toshok  <toshok@helixcode.com>

	* gui/component/addressbook.c (set_prop): remove hack to read
	"uri" file from local directory.

	* gui/component/Makefile.am (evolution_addressbook_SOURCES): add
	e-ldap-storage.{c,h}

	* gui/component/addressbook-component.c (owner_set_cb): call
	setup_ldap_storage.

	* gui/component/e-ldap-storage.c (setup_ldap_storage): Register
	the LDAP storage and load the .xml file.
	(load_ldap_data): function to load our xml file.
	(save_ldap_data): function to save our xml file.

	* gui/component/e-ldap-storage.h: new file.

2000-07-03  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names-text-model.c,
	gui/component/select-names/e-select-names.c: Fixed more compile
	errors.

2000-07-03  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/select-names/Makefile.am: Fixed compile error.

2000-07-03  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/Makefile.am: Removed e-card-iterator.c,
	e-card-iterator.h, e-card-list-iterator.c, e-card-list-iterator.h,
	e-card-list.c, e-card-list.h.

	* backend/ebook/e-card-iterator.c,
	backend/ebook/e-card-iterator.h,
	backend/ebook/e-card-list-iterator.c,
	backend/ebook/e-card-list-iterator.h, backend/ebook/e-card-list.c,
	backend/ebook/e-card-list.h: Removed in favor or versions without
	the -card in the e-util directory since these classes are not
	specific to cards at all.

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h,
	backend/ebook/e-card.c, backend/ebook/e-card.h,
	backend/ebook/load-pine-addressbook.c, backend/ebook/test-card.c,
	backend/pas/pas-backend-file.c: Changed the references to
	e-card-list.c and friends to e-list.c and friends.

	* contact-editor/e-contact-editor.c: Added #include
	<e-contact-save-as.h> to fix a warning.

	* gui/component/Makefile.am: Moved a number of classes associated
	with the select-names object to the new select-names directory.

	* gui/component/addressbook.c: Changed the reference to
	e-select-names.h.

	* gui/component/e-select-names.c, gui/component/e-select-names.h,
	gui/component/select-names.glade,
	gui/component/select-names.glade.h: Moved these files into
	select-names/.

	* gui/component/select-names/.cvsignore,
	gui/component/select-names/Makefile.am,
	gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names-manager.h,
	gui/component/select-names/e-select-names-model.c,
	gui/component/select-names/e-select-names-model.h,
	gui/component/select-names/e-select-names-table-model.c,
	gui/component/select-names/e-select-names-table-model.h,
	gui/component/select-names/e-select-names-text-model.c,
	gui/component/select-names/e-select-names-text-model.h,
	gui/component/select-names/e-select-names.c,
	gui/component/select-names/e-select-names.h,
	gui/component/select-names/recipient.glade,
	gui/component/select-names/select-names.glade,
	gui/component/select-names/select-names.glade.h: New files for
	select names dialog (e-select-names.c, e-select-names.h,
	select-names.glade, select-names.glade.h and recipient.glade moved
	from gui/component/.)

2000-06-29  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook-component.c (owner_set_cb): Get an
	EvolutionShellClient instead of an Evolution_Shell to match the
	changes in libeshell.

2000-06-28  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/select-names/,
	gui/component/select-names/e-select-names-manager.c,
	gui/component/select-names/e-select-names-manager.h: New select
	names manager interface (Not complete.)

2000-06-26  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c,
	addressbook/gui/component/e-cardlist-model.c: Added
	value_to_string handlers.

	* demo/addressbook-widget.c, demo/demo.c: Removed usage of "x" and
	"y" arguments.

	* addressbook/gui/component/addressbook.c: Activated Click To Add
	and set the click to add message.

	* addressbook/gui/component/e-addressbook-model.c: Added
	value_to_string and append_row handlers.

	* addressbook/gui/component/e-select-names.c: Added a column.

2000-06-26  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c (poll_ldap): remove spew.
	(pas_backend_ldap_ensure_connected): duh, don't access a pointer
	we know to be NULL.
	(query_prop_to_ldap): rename map_e_card_prop_to_ldap to this.
	easier to type.

2000-06-21  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/test-minicard-label.c,
	gui/minicard/test-minicard.c, gui/minicard/test-reflow.c: Remove
	usage of "x" and "y" arguments.

2000-06-18    <ettore@helixcode.com>

	* contact-editor/Makefile.am (INCLUDES): Use
	`$(BONOBO_GNOME_CFLAGS)' so that we compile when Bonobo is not in
	the default GNOME prefix.

2000-06-17  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard-label.c,
	gui/minicard/e-minicard-label.h, gui/minicard/e-minicard.c: Made
	the left column of minicards not get any wider than the widest
	possible name.

2000-06-13  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/Makefile.am (SHELL_OBJS): Removed.
	(evolution_addressbook_LDADD): Link with
	`$(top_builddir)/shell/libeshell.a'.

2000-06-12  Federico Mena Quintero  <federico@helixcode.com>

	* contact-editor/e-contact-editor-categories.c: Removed the
	ETableModel thaw handler.
	* gui/component/e-cardlist-model.c: Likewise.

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

	* gui/component/e-select-names.c: Fixed the widget reparenting.

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

	* gui/component/Makefile.am: Added glade files.

	* gui/component/addressbook.c: Added a test of the Select Names
	functionality.

	* gui/component/e-addressbook-model.c: Made this class_init
	function a bit cleaner.

	* gui/component/e-select-names.c: Tested this and fixed some
	obvious errors.

	* gui/component/select-names.glade: The main window shouldn't be
	visible by default.

2000-06-11  Ettore Perazzoli  <ettore@helixcode.com>

	* contact-editor/Makefile.am (contact_editor_test_LDADD): Link
	with libemiscwidgets.a.
	* gui/component/Makefile.am (evolution_addressbook_LDADD): Likewise.
	* gui/minicard/Makefile.am (minicard_test_LDADD): Likewise.
	(reflow_test_LDADD): Likewise.
	(minicard_view_test_LDADD): Likewise.

2000-06-10  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/e-cardlist-model.c: Renamed a bunch of functions
	for better readability.

	* gui/component/e-select-names.c, gui/component/e-select-names.h:
	This should be a working dialog now.

	* gui/component/select-names.glade: Changed the name & creation
	function of the ETable here.

2000-06-10  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/select-names.glade,
	gui/component/select-names.glade.h: Glade files for Select Names
	dialog.

2000-06-10  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Do e_card_simple_sync and
	extract_info more often.

	* gui/component/addressbook.c: Added table printing code.

2000-06-09  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook-component.c (factory_fn): Pass NULL
	for the new args @create_folder_fn and @remove_folder_fn.

2000-06-08  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook-component.c (create_view): Updated for
	the new `EvolutionShellComponentCreateViewFn'.  Return
	`EVOLUTION_SHELL_COMPONENT_UNSUPPORTEDTYPE' if @type is not
	"contacts".

2000-06-08  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Bind Save As to save the
	current view of the contact as a vcard.

2000-06-08  Federico Mena Quintero  <federico@helixcode.com>

	* contact-editor/e-contact-editor.c (save_card): Doh, sync the
	card simple and extract the card info.

2000-06-08  Federico Mena Quintero  <federico@helixcode.com>

	* contact-editor/e-contact-editor.h (EContactEditor): Now this
	derives from GtkObject.  It follows the same strategy as the
	EventEditor in the calendar.
	(EContactEditor): Added an is_new_card field so that we can know
	whether to add() or commit() the card.

	* contact-editor/e-contact-editor.c (e_contact_editor_get_type):
	Derive from GtkObject.
	(e_contact_editor_class_init): Likewise.
	(e_contact_editor_class_init): Added an "is_new_card" argument.
	(e_contact_editor_set_arg): Handle ARG_IS_NEW_CARD.
	(e_contact_editor_get_arg): Likewise.
	(e_contact_editor_new): Take in an is_new_arg argument and set it
	on the object.
	(e_contact_editor_init): Load the app widget into the app field of
	the EContactEditor structure.  Create its UIHandler as well.
	(e_contact_editor_class_init): New "add_card", "commit_card", and
	"editor_closed" signals.

	* contact-editor/test-editor.c (main): Modified for the new API.
	(editor_closed_cb): Tweaked for the new API.
	Since this test program does not use Bonobo, it doesn't work,
	though.

	* gui/component/addressbook.c (new_contact_cb): Use the new
	contact editor API.
	(table_double_click): Ditto.

	* gui/minicard/e-minicard-view.c (e_minicard_view_event): Use the
	new contact editor API.

	* gui/minicard/e-minicard.c (e_minicard_event): Use the new
	contact editor API.

2000-06-08  Ettore Perazzoli  <ettore@helixcode.com>

	* contact-editor/Makefile.am (contact_editor_test_LDADD): Remove
	the `$(srcdir)/' prefix from `libecontacteditor.a' because [of
	course] the library is built in the build directory, not in the
	source directory.
	* gui/minicard/Makefile.am (minicard_test_LDADD): Likewise with
	`libeminicard.a'.
	(minicard_label_test_LDADD): Likewise.
	(reflow_test_LDADD): Likewise.
	(minicard_view_test_LDADD): Likewise.

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

	* gui/component/addressbook.c: Bind right click on the ETable to
	"Save to VCard."

2000-06-02  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Made phone/email/address
	labels change correctly again.

2000-06-02  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook-component.c: Made
	evolution-addressbook shut down when the shell is done with it.

2000-06-02  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard-view.c, gui/minicard/e-minicard.c: Made
	double click only work on the first button.

2000-06-01  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard.c: return TRUE if opening a contact
	editor so that we don't get a "new dialog" contact editor.

2000-06-01  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook.c (new_contact_cb): Use the stock
	cancel button for the dialog.
	(table_double_click): Likewise.
	(find_contact_cb): Likewise.

2000-05-31  Miguel de Icaza  <miguel@helixcode.com>

	* contact-editor/contact-editor.glade: Added accelerators for
	the remaining items.

	Add spacing, beautify the dialogs.

2000-06-01  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook.c (control_activate): Put the toolbar
	into a frame to make it look like standard GNOME toolbars.  Also,
	set `GNOME_DOCK_ITEM_BEH_NEVER_VERTICAL' so that it does not do
	evil things when its moved to the left or the right of the window.

2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/e-cardlist-model.c,
	gui/component/e-cardlist-model.h: New files for card list.

2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Fixed a memory leak.

2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/alphabet.glade: Made the alphabet buttons not
	focusable.

	* gui/minicard/e-minicard-view.c: Made the "123" button work.

	* gui/minicard/e-reflow-sorted.c: Made all buttons past the last
	letter available work.

2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/alphabet.glade: Added a bit of space around the
	alphabet bar.

2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/Makefile.am: Added alphabet.glade and
	alphabet.glade.h.

	* gui/component/addressbook.c, gui/component/alphabet.glade,
	gui/component/alphabet.glade.h: Added an alphabet bar.

	* gui/minicard/e-minicard-view.c, gui/minicard/e-minicard-view.h,
	gui/minicard/e-reflow-sorted.c, gui/minicard/e-reflow-sorted.h:
	Added the ability to just to a particular spot in the reflow.

2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* printing/Makefile.am: Added BONOBO_GNOME_CFLAGS to CPPFLAGS.

2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard-view.c: Made double clicking create a
	new card.  Set the empty message.

	* gui/minicard/e-minicard.c: Made sorting be case insensitive.

	* gui/minicard/e-reflow-sorted.c, e-reflow.c, e-reflow.h: Added a
	message for when the reflow is empty.

	* printing/e-contact-print.c, printing/medbook.ecps: Made the
	default printout be full page.  Made sorting case insensitive.

2000-05-30  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-book-view-listener.c,
	backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c,
	backend/ebook/e-book-view.h, backend/idl/addressbook.idl,
	backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c,
	backend/pas/pas-book-factory.c, backend/pas/pas-book-view.c,
	backend/pas/pas-book-view.h: Added "sequence_complete" signal.

	* printing/e-contact-print.c: Made printing wait for
	"sequence_complete" signal and made it sort.

2000-05-25  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c,
	gui/component/e-addressbook-model.c,
	gui/component/e-addressbook-model.h: Added double click to open
	contact editor.

2000-05-25  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Removed some columns.

2000-05-25  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/component/addressbook.c (addressbook_factory_new_control):
	New function.
	(addressbook_factory): Use it.

	* Makefile.am (evolution_addressbook_LDADD): Link with
	`evolution-shell-component.o' from the shell directory.

	* gui/component/addressbook-component.c: New.
	* gui/component/addressbook-component.h: New.

2000-05-23  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Switched printing and gui.

	* backend/ebook/e-book-view-listener.h,
	backend/ebook/e-book-view.h, backend/ebook/e-book.h,
	backend/ebook/e-card-cursor.h, backend/ebook/e-card-list.h,
	backend/ebook/e-card-simple.h, backend/ebook/e-card.h: Fixed the
	#defines to work elsewhere in evolution.

	* gui/component/Makefile.am: Added linking to libecontactprint.

	* gui/component/addressbook.c: Added a menu item to print the
	current query.

	* printing/Makefile.am: Add linking to libebook and requirements.
	Add installation of ecps files.

	* printing/e-contact-print.c, printing/e-contact-print.h: Changed
	this to use real data from an EBook.

	* printing/test-print.c: Made this pass NULL, NULL to
	e_contact_print_dialog_new so that it will compile.

2000-05-23  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-save-as.c: Fixed some memory leaks.

2000-05-23  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/Makefile.am: Added e-contact-editor-save-as.c and
	e-contact-editor-save-as.h.

	* contact-editor/e-contact-save-as.c,
	contact-editor/e-contact-save-as.h: New files that display a save
	as dialog and then save the given card to that file.

	* gui/minicard/e-minicard.c: Call e_contact_save_as in a right
	click menu.

2000-05-19  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c,
	gui/component/e-addressbook-model.c: Added initialize_value and
	value_is_empty callbacks.

2000-05-19  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Fixed a bug that broke
	address field support.

2000-05-19  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h: Added support for arbitrary
	fields in the contact editor.

2000-05-18  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c: Fixed e_card_name_copy and
	e_card_arbitrary_copy to deal correctly with a passed NULL.

	* contact-editor/Makefile.am: Removed imagesdir stuff.

	* contact-editor/arrow.png: Made this transparent.

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor-strings.h: Renamed some widgets
	and added custom widgets for all of the images.

	* contact-editor/e-contact-editor.c: Worked on making this work
	decently well with messed up glade files.  Cleaned up a lot of code.

2000-05-18  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c: Fixed the code to write out and read in
	arbitrary fields.

2000-05-18  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h,
	backend/ebook/e-card-types.h, backend/ebook/e-card.c,
	backend/ebook/e-card.h: Implemented "MAILER" field.  Added
	arbitrary field support.

	* contact-editor/e-contact-editor-categories.c: Fixed a warning.

2000-05-16  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Added E_CARD_SIMPLE_FIELD_MAILER.  Not implemented yet.

2000-05-16  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c (construct_email_list): convert to use ECardSimple.
	(poll_ldap): same.

2000-05-16  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-book.h: add typedefs for the can_write
	functions, and add parameters to pas_book_new.

	* backend/pas/pas-book.c (pas_book_construct): add can_write/can_write_card params.
	(pas_book_new): same.
	(impl_Evolution_Book_can_write): new function.
	(impl_Evolution_Book_can_write_card): same.
	(pas_book_get_epv): assign the can_write/can_write_card slots in the epv.

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_can_write): new function.
	(pas_backend_ldap_can_write_card): same.
	(pas_backend_ldap_add_client): add can_write/can_write_card to pas_book_new call.

	* backend/pas/pas-backend-file.c (pas_backend_file_can_write_card): new function, calls can_write.
	(pas_backend_file_can_write): same.
	(can_write): return TRUE if we can write to the addressbook file.
	(pas_backend_file_add_client): add can_write/can_write_card to pas_book_new call.

	* backend/idl/addressbook.idl (Evolution): add can_write and
	can_write_card permission requests.

2000-05-16  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c (e_card_get_vcard): Fixed a large memory leak.

2000-05-16  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c (add_list_unique): Fixed another memory
	leak.

2000-05-16  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c, backend/pas/pas-backend-file.c,
	contact-editor/e-contact-editor.c, ename/e-name-western.c,
	gui/component/addressbook.c, gui/minicard/e-minicard-view.c: Fixed
	some memory leaks.

	* backend/ebook/e-card.c: Rearranged some code.

2000-05-16  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c: Fixed a reference
	leak.

2000-05-16  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c: Fixed a compile
	error.

2000-05-16  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c: Got rid of a
	memory leak.  Rearranged a couple functions.
	
	* gui/minicard/e-minicard-view.c, gui/minicard/e-minicard-view.h:
	Added some code to stop watching the EBook when the canvas is
	destroyed (apparently the canvas is destroyed before our widget is
	destroyed.)

2000-05-14  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-categories.c: Use the correct
	policy for resize.

2000-05-14  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/Makefile.am: Added libeutil for e-card's support
	for categories.

	* backend/ebook/e-card-list.c, backend/ebook/e-card-list.h: Added
	a function to get the length.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added categories
	support (accessible either as "categories" or "category_list".)

	* contact-editor/Makefile.am: Added e-table and all of the
	categories files.

	* contact-editor/categories.glade,
	contact-editor/categories-strings.h,
	contact-editor/e-contact-editor-categories.c,
	contact-editor/e-contact-editor-categories.h:

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor-strings.h: Rearranged this dialog.

	* contact-editor/e-contact-editor.c: Rearranged dialog a bit.
	Added opening of categories dialog.

	* gui/component/Makefile.am: Rearranged libraries so that
	libetable would be available for the contact editor categories
	dialog.

	* gui/component/addressbook.c: Fix for new ETable resizing.  Make
	contact editor dialog resizable.

	* gui/minicard/Makefile.am: Added libetable contact editor
	categories dialog.

	* gui/minicard/e-minicard.c: Make contact editor dialog resizable.

2000-05-12  Miguel de Icaza  <miguel@gnu.org>

	* contact-editor/fulname.glade: Use accelerators here.

2000-05-13  Valek Filippov  <frob@df.ru>

	* gui/component/ldap-server-dialog.glade: save translatable strings
	* gui/component/ldap-server-dialog.glade.h: file with strings
	* printing/e-contact-print.glade: save translatable strings
	* printing/e-contact-print.glade.h: file with strings
		
2000-05-11  Dan Winship  <danw@helixcode.com>

	* gui/component/addressbook.c (control_activate): Now that we
	depend on recent gnome-libs we can make the toolbar detachable
	again.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Make the table view be sorted by
	name initially.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-book-factory.c: Send a proper response when you
	can't find the ldap URI.

	* gui/component/addressbook.c: Cleaned up the open error dialog a
	bit.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Added a dialog for when you can't
	open an addressbook.

2000-05-10  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/Makefile.am: Added e-book-types.h, e-card-pairs.h,
	e-card-types.h.

	* backend/pas/Makefile.am: Added pas-backend-ldap.h.

	* contact-editor/Makefile.am: Added a proper EXTRA_DIST section.
	Removed some old defines.

	* ename/Makefile.am: Added e-name-western-tables.h.

	* gui/component/Makefile.am: Added e-ldap-server-dialog.h.  Added
	a proper EXTRA_DIST section.

	* gui/minicard/e-reflow.c: Added a missed cast.

	* printing/Makefile.am: Added a proper EXTRA_DIST section.
	
2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Make sure that the canvas
	doesn't intercept keyboard focus.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Use new art.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor-strings.h: Replaced the Address
	button with a label and rearranged the address area a bit.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard.c: Reenable editting.

	* gui/minicard/e-reflow-sorted.c: Make reflow flow on deletion.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Destroy the view object when
	leaving the minicard view.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-reflow-sorted.c: Fixed reflow sorting to call
	reflow_request when sorting on an item changes.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c: Make File As change if name or
	company are changed pretty much anywhere.

	* gui/minicard/e-minicard.c: Turned off having minicard editing
	effect anything since it's so crashy.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-backend-ldap.c: Enabled a couple more fields

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-backend-file.c: Added a default card to all new
	file backends.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/e-addressbook-model.c: Rearranged order of things
	getting destroyed.

	* gui/minicard/e-minicard-view.c: Rearranged order of things
	getting destroyed.  Don't set attributes of non-null or destroyed
	items.  Destroy parent object when destroyed.  Maintain ref_count
	of items in list.

	* gui/minicard/e-minicard.c: Don't set attributes of non-null
	items.

	* gui/minicard/e-reflow-sorted.c: Maintain ref_count of items in
	list.

	* gui/minicard/e-reflow.c: Maintain ref_count of items in list.
	Destroy parent object when destroyed.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c: Fixed some indentation.

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor-strings.h: Changed Email to
	Primary Email.

	* contact-editor/e-contact-editor.c: Added checkmarks to indicate
	if data exists in the pull down menus for the phone, address, and
	email fields.

2000-05-09  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c: Fixed the string duplication
	problem.  Fixed the business/home address string mix up.

	* gui/component/addressbook.c: Made the minicard view the default
	view.

2000-05-08  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c: Fixed this up a bit.  Syncing
	should work better now.

2000-05-08  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard-view.c, gui/minicard/e-minicard.c,
	gui/minicard/e-minicard.h, gui/minicard/e-reflow-sorted.c,
	gui/minicard/e-reflow-sorted.h: Made a minimal number of things be
	destroyed and recreated when updating a field.

2000-05-07    <toshok@the-dot-in.helixcode.com>

	* gui/minicard/e-minicard.c (remodel): make sure to free the
	return value of e_card_simple_get.

	* gui/component/addressbook.c (teardown_table_view): destroy the
	ECardSimple here, plug memory leak.
	(create_table_view): use view->simple so we can destroy the
	ECardSimple later on.

2000-05-07  Chris Toshok  <toshok@helixcode.com>

	* ename/e-name-western.c (e_name_western_extract_middle): comment
	function, and fix an ABR.

2000-05-07  Chris Toshok  <toshok@helixcode.com>

	* ename/e-name-western.c (e_name_western_cleanup_string): comment
	function, and fix an ABR.

2000-05-08  Christopher James Lahey  <clahey@helixcode.com>

	* gui/minicard/e-minicard.c: Added saving in minicard view.

2000-05-07  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-backend-file.c: Fixed an off by 2 error.

2000-05-07  Chris Toshok  <toshok@helixcode.com>

	* gui/component/addressbook.c (set_prop): don't create a new
	ebook.  instead, unload the current uri (if there is one) and load
	the new one.
	(addressbook_factory): create the ebook once.

2000-05-07  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/e-addressbook-model.c: Replaced some model_changed
	calls with row_inserted calls.

2000-05-07  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c:
	Removed some code that was notifying too many clients at the wrong
	times.

	* gui/component/addressbook.c: Set view->book.  Unreffed
	view->book.  Unreffed the model instead of destroying it.  Removed
	the /tmp/test.db stuff.

2000-05-07  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Make the addressbook create the
	correct file uri.  Added a default query.  Initialize view->model
	and view->view to NULL.

	* gui/component/e-addressbook-model.c,
	gui/minicard/e-minicard-view.c: Only call get_book_view if both
	book and query and non-null.

2000-05-06  Chris Toshok  <toshok@helixcode.com>

	* gui/component/addressbook.c (control_deactivate): remove the
	separator and toggle view items as well.
	(toggle_view_as_cb): callback for the "/View/Toggle View" menu
	item.
	(get_query): getter for the query string that takes into account
	the two view types.
	(set_query): setter for the query string that takes into account
	the two view types.
	(set_book): setter for the EBook type - not really a setter, since
	the book is kept in the AddressbookView, but this method actually
	sets the "book" property on the current view.
	(find_contact_cb): make use of get/set_query
	(search_entry_activated): make use of set_query.
	(control_activate): add a menu separator and an item to toggle
	between view types.
	(book_open_cb): make use of set_book.
	(ebook_create): no longer needs to return the EBook, since we set
	the book field in our view.
	(teardown_minicard_view): destructor function for the minicard
	specific ui.
	(create_minicard_view): constructor function for the minicard
	specific ui.
	(teardown_table_view): destructor function for the e-table
	specific ui.
	(create_table_view): constructor function for the e-table specific
	ui.
	(change_view_type): destroy the old and create the new view ui,
	change the label of the Toggle View menu item, and reset the book
	and query on the new view type.
	(addressbook_factory): create an all-encompassing vbox that the
	view uses to create the bonobo control, which contains 1 widget
	per ui specific view (the e-table in the table case, and another
	vbox in the minicard case.)  use change_view_type to create the
	initial view.

2000-05-07  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-book.c: Made a NULL callback just mean to not
	call back.

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Reordered fields.  Added a get_const function to get a constant
	string that persists until the simple is destroyed.

	* gui/component/Makefile.am: Added e-addressbook-model.c and
	e-addressbook-model.h and all of the libraries and includes that
	they are dependent on.

	* gui/component/addressbook-factory.c: Initialize e cursors.

	* gui/component/addressbook.c: Added inactive code to display an
	ETable view of the addressbook.

	* gui/component/e-addressbook-model.c,
	gui/component/e-addressbook-model.h: New files to implement an
	ETable model with a EBook back end.
	
2000-05-06  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	Mostly finished ECardSimple.

	* contact-editor/e-contact-editor.c: Changed this to match with
	some of the changes to ECardSimple.

	* gui/component/addressbook.c: Changed this to look for
	"addressbook.db" in the given directory if it doesn't find the
	file "uri".

	* gui/minicard/e-minicard.c, gui/minicard/e-minicard.h: Changed
	this to use ECardSimple.

2000-05-06  Chris Toshok  <toshok@helixcode.com>
	
	* gui/component/.cvsignore: ignore evolution-addressbook.pure

	* gui/component/Makefile.am: add support for generating 
	evolution-addressbook.pure.

2000-05-06  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_load_uri): if a
	port isn't specified in the uri default to 389.

2000-05-06  Christopher James Lahey  <clahey@helixcode.com>

	* gui/component/addressbook.c: Made this take a uri through its
	property bag.

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

	* backend/ebook/Makefile.am: Added e-card-simple.c and
	e-card-simple.h.

	* backend/ebook/e-card-simple.c, backend/ebook/e-card-simple.h:
	New card wrapper class to simplify things.

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h: Changed e-contact-editor to use
	ECardSimple a bit.

2000-05-03  Chris Toshok  <toshok@helixcode.com>

	* gui/component/addressbook.c (control_deactivate): #ifdef
	HAVE_LDAP the ldap specific stuff.
	(null_cb): same.
	(control_activate): same.

2000-05-02  Ettore Perazzoli  <ettore@helixcode.com>

	* backend/ebook/Makefile.am (INCLUDES): Add
	`-I$(top_srcdir)/addressbook/ename'.

2000-05-02  Matt Loper  <matt@helixcode.com>

	* demo/Makefile.am: set G_LOG_DOMAIN.
	* printing/Makefile.am: same.

2000-05-01  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-book-factory.c: Add back in the
	CORBA_Object_release.

	* backend/pas/pas-book.c: Properly duplicate and release the
	listener passed to us.

2000-05-01  Christopher James Lahey  <clahey@helixcode.com>

	* backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c:
	Made uri slightly better managed.
	
	* backend/pas/pas-book-factory.c
	(pas_book_factory_process_request): Remove this
	CORBA_Object_release that causes things not to work.  This is just
	a temporary fix until we figure out what's actually wrong.

	* backend/pas/pas-book.c: Fixed a copy and paste error in a warning.
	
2000-05-01  Christopher James Lahey  <clahey@helixcode.com>

	* Makefile.am: Switched the subdirs order since backend depends on
	ename.

2000-05-01  Larry Ewing  <lewing@helixcode.com>

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_remove_client):
	fix a typo in the for loop.

2000-05-01  Michael Meeks  <michael@helixcode.com>

	* backend/pas/pas-book-factory.c: include gtk.

2000-04-30  Federico Mena Quintero  <federico@helixcode.com>

	* backend/ebook/e-book-types.h (EBookStatus): Added new status
	values for the IDL stuff.

	* backend/pas/pas-book-factory.h (PASBookFactoryClass): New
	"last_book_gone" signal.

	* backend/pas/pas-book-factory.c
	(pas_book_factory_launch_backend): Better error handling.
	(pas_book_factory_process_queue): Let
	pas_book_factory_process_request() free the request.
	(pas_book_factory_process_request): Free the request here.
	Perform better error handling.
	(free_active_server_map_entry): Free an active server map entry;
	free the URI key and unref the backend value.  This function was
	renamed; the old one was trying to CORBA_Object_unref() a GTK+
	object!
	(remove_backends_entry): Free a backend table entry; free the URI
	key.
	(backend_last_client_gone_cb): Remove the backend from the active
	server map and emit the "last_book_gone" signal if appropriate.
	(pas_book_factory_get_n_backends): New function to query the
	number of running backends in an addressbook factory.

	* backend/idl/addressbook.idl (BookListener::CallStatus): Added a
	ProtocolNotSupported code.  This is for when the addressbook
	factory cannot find a provider for the requested URI.

	* backend/pas/pas-backend.h (PASBackendClass): New
	"last_client_gone" signal.
	(PASBackendClass): New get_uri virtual method.

	* backend/pas/pas-backend.c (pas_backend_load_uri): Return a
	gboolean success code.
	(pas_backend_add_client): Return a gboolean success code.
	(pas_backend_last_client_gone): New function used by backend
	implementations to notify upwards when the backend's last client
	is destroyed.
	(pas_backend_get_uri): New function to get the URI of a backend.

	* backend/pas/pas-backend-file.c (pas_backend_file_add_client):
	Pass the backend as the closure data to the "destroy" handler of
	the book.  We cannot call pas_book_get_backend() in the callback
	since the book's private data has already been destroyed when the
	callback is invoked.  Alternatively, we could move the private
	data destruction step to the book's ::finalize() method.
	(pas_backend_file_book_destroy_cb): Get the backend from the
	callback's data, not from the book.
	(pas_backend_file_remove_client): Remove the book from the list of
	clients.  When all clients go away, call
	pas_backend_last_client_gone().
	(PASBackendFilePrivate): Added an uri field.
	(pas_backend_file_get_uri): Implement the get_uri method.
	(pas_backend_file_load_uri): Return a gboolean success code.
	Also, store the URI in the private structure.
	(pas_backend_file_add_client): Return a gboolean success code.
	Also, call pas_backend_last_client_gone() if appropriate.
	(pas_backend_file_destroy): Free the bf->priv->uri.

	* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client):
	Pass the backend as the closure data to the "destroy" handler of
	the book.  See above for rationale.
	(pas_backend_ldap_book_destroy_cb): Get the backend from the
	callback's data.
	(pas_backend_ldap_remove_client): Remove the book from the list of
	clients.  When all clients go away, call
	pas_backend_last_client_gone().
	(pas_backend_ldap_load_uri): Return a gboolean success code.
	(pas_backend_ldap_add_client): Return a gboolean success code.
	Also, call pas_backend_last_client_gone() if appropriate.
	(PASBackendLDAPPrivate): New uri field.
	(pas_backend_ldap_get_uri): Implement the get_uri method.
	(pas_backend_ldap_load_uri): Store the uri in the private
	structure.
	(pas_backend_ldap_destroy): Free the bl->priv->uri.

2000-04-30  Chris Toshok  <toshok@helixcode.com>

	* gui/component/Makefile.am (evolution_addressbook_SOURCES): added
	e-ldap-server-dialog.c
	(glade_DATA): added ldap-server-dialog.glade

	* gui/component/ldap-server-dialog.glade: new file.

	* gui/component/e-ldap-server-dialog.h: new file.

	* gui/component/e-ldap-server-dialog.c: new file, contains logic
	associated with ldap server dialog.

	* gui/component/addressbook.c (control_deactivate): remove the
	directory server menu item.
	(null_cb): do nothing callback for e_book_load_uri call.  should
	change to (at the very least) pop up a dialog if there was an
	error.
	(new_server_cb): new function - really just switches to a
	particular ldap server, since the information isn't saved
	anywhere.
	(control_activate): add directory server menu item.

2000-04-30  Chris Toshok  <toshok@helixcode.com>

	* backend/ebook/e-book.c (e_book_load_uri): create the book
	listener here, since it's destroyed in unload_uri.
	(e_book_construct): remove the book listener construction here.

2000-04-30  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/.cvsignore: Added load-pine-addressbook.

2000-04-30  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor.c, gui/minicard/e-minicard.c: Made
	some fields invisible that were visible before.

2000-04-30  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c: Make file as not have the : after it if
	it's empty.  If there's no name, or file_as, fill in these fields
	with defaults based on full_name or name respectively.

	* backend/ebook/load-pine-addressbook.c: New file to do import of
	pine .addressbook files.

	* backend/pas/pas-backend-file.c: Made empty fields act as the
	empty string for searches.

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h: Made the File As field update
	properly as you edit the name and company fields.  Added the pull
	down list of File As choices.  Made sure that all fields will
	be set to NULL if they are deleted to the empty string.

	* gui/minicard/e-minicard.c: Use the File As field instead of the
	Full Name field for the header.  Make identical compares on the
	File As field do a compare on the uid.

2000-04-30  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor-fullname.c,
	contact-editor/fullname.glade: Fixed a string mismatch.

2000-04-30  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/Makefile.am: Added ename includes and libs.

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added
	e_card_name_from_string.  Added header for
	e_card_delivery_address_from_string, even though it's not
	implemented yet.

	* contact-editor/Makefile.am: Removed the ename includes since we
	no longer use ename directly here.

	* contact-editor/e-contact-editor.c: Fixed this to properly save
	the address labels displayed.  Updated this to use the function
	e_card_name_from_string instead of doing it by hand.

	* contact-editor/fullname-strings.h,
	contact-editor/fullname.glade: Deleted an unused field.  Changed
	the set of prefixes and suffixes.

2000-04-30  Chris Toshok  <toshok@helixcode.com>

	* backend/pas/pas-backend-ldap.c
	(pas_backend_ldap_ensure_connected): add support for a rootdn in
	the uri.
	(pas_backend_ldap_build_all_cards_list): make use of the rootdn in
	the call to ldap_search_s.
	(pas_backend_ldap_search): same.
	(pas_backend_ldap_load_uri): get the rootdn out of the passed in uri.

2000-04-29  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added
	e_card_phone_new e_card_delivery_address_new,
	e_card_delivery_address_to_string, e_card_name_copy,
	e_card_name_new, e_card_name_to_string, and made e_card_name_free
	public.  Removed some unused code.

	* backend/pas/pas-backend-file.c: Fixed a warning.

	* contact-editor/Makefile.am: Added e-contact-editor-fullname.[ch]
	and fullname.glade.  Added e-name libs and includes.

	* contact-editor/e-contact-editor-fullname.c,
	contact-editor/e-contact-editor-fullname.h,
	contact-editor/fullname-strings.h, contact-editor/fullname.glade:
	New dialog for editing the fields of a name separately.

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h: Create an
	EContactEditorFullname when you click on the Full Name button.
	Maintain a parsed name at all times.

	* gui/component/Makefile.am, gui/minicard/Makefile.am: Added
	e-name libs.

2000-04-28  Larry Ewing  <lewing@helixcode.com>

	* backend/pas/pas-book-factory.c (register_factory): fix the
	`USING_OAF' changes so that they work for when we are not using
	oaf.

2000-04-27  Ettore Perazzoli  <ettore@helixcode.com>

	* ename/Makefile.am
	(gnome_libs): Use `BONOBO_GNOME_LIBS'.
	(INCLUDES): Add `-I$(srcdir)/..'.

	* backend/pas/pas-book-factory.c
	(register_factory): New function to register the factory.
	Implementation different according to `USING_OAF'.
	(pas_book_factory_activate): Use `register_factory()'.

	* gui/component/addressbook.c: New #define `CONTROL_FACTORY_ID',
	varying depending on whether we are `USING_OAF'.
	(addressbook_factory_init): Use `CONTROL_FACTORY_ID'.

	* backend/ebook/test-client.c (init_corba): New function,
	implemented differently according to the `USING_OAF' #define.

	* backend/ebook/e-book.c: New #define `CARDSERVER_OAF_ID'.
	(e_book_construct): Work with OAF #if `USING_OAF'.

	* backend/ebook/Makefile.am (gnome_libs): Removed.
	(corbadir): Removed.
	(ebook_libs): Removed.
	(test_client_LDADD): Just add `libebook.la'.
	(test_card_LDADD): Likewise.
	(test_client_list_LDADD): Likewise.

	* gui/component/addressbook-factory.c
	(init_corba): New helper function, implemented differently
	according to `USING_OAF'.
	(main): Call `init_corba()'.

2000-04-27  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card.c, backend/ebook/e-card.h: Added file as,
	office, manager, assistant, spouse, and anniversary fields.  These
	all use "X-EVOLUTION-" fields in the VCards.

	* backend/pas/pas-backend-file.c: Added all the new fields (except
	anniversary) to the list of fields.

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor-strings.h: Fixed some misnamed
	fields and fixed the placement of the comments field.

	* contact-editor/e-contact-editor.c: Made the newly added fields
	display properly.

	* Makefile.am: Added ename.

	* ename/e-name-western.h, ename/test-ename-western-gtk.c,
	ename/test-ename-western.c: Fixed up some #includes.

	* ename/.cvsignore: Added .cvsignore.

2000-04-26  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-types.h, backend/ebook/e-card.c,
	backend/ebook/e-card.h: Added an address label field.

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor-strings.h: Got rid of some unused
	fields.

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h: Added the address label field.
	Load only.  Editing these fields seems to mess things up.

2000-04-26  Christopher James Lahey  <clahey@helixcode.com>

	* contact-editor/e-contact-editor.c: Added proper handling of the
	email field.

2000-04-26  Christopher James Lahey  <clahey@helixcode.com>

	* backend/ebook/e-card-types.h, backend/ebook/e-card.c,
	gui/minicard/e-minicard.c: Prefixed the ADDR_ flags.

	* contact-editor/contact-editor.glade,
	contact-editor/e-contact-editor-strings.h: Edited the glade file.
	Removed all the fields that we don't use.

	* contact-editor/e-contact-editor.c,
	contact-editor/e-contact-editor.h: Made the phone fields work
	properly.  The address and email fields are temporarily turned off
	until they can be made to work as the phone fields do.

2000-04-25  Ettore Perazzoli  <ettore@helixcode.com>

	* gui/minicard/Makefile.am (INCLUDES): Use
	`$(BONOBO_GNOME_CFLAGS)'.

	* backend/pas/Makefile.am (idl_flags): Add `-I $(datadir)/idl' to
	pick up IDL files in the installation prefix as well.
	(INCLUDES): Use `$(BONOBO_GNOME_CFLAGS)'.

	* backend/ebook/Makefile.am (ORBIT_IDL): Use `-I $(datadir)/idl'
	to get the IDLs from the installation prefix as well.
	(INCLUDES): Add `$(BONOBO_GNOME_CFLAGS)'.
	(test_client_LDADD): Use `$(BONOBO_GNOME_LIBS)' instead of
	hardcoding `-lbonobo'!  Also get rid of some other useless flags,
	as `$(BONOBO_GNOME_LIBS)' really has all what we need.
	(test_client_list_LDADD): Likewise.
	(test_card_LDADD): Likewise.

2000-04-18  Federico Mena Quintero  <federico@helixcode.com>

	* gui/minicard/Makefile.am (INCLUDES): Use "e-minicard" as the log
	domain.

	* gui/component/Makefile.am (INCLUDES): Use
	"evolution-addressbook" as the log domain.

	* backend/pas/Makefile.am: Build libpas.a, not a shared library.
	Do not install any header files.
	(INCLUDES): Remove spurious include paths.

	* backend/pas/*.[ch]: Fix includes.

	* backend/ebook/Makefile.am: Do not install the test programs.
	Fixed some include weirdness.

	* backend/ebook/*.[ch]: Fix includes.

	* contact-editor/Makefile.am (INCLUDES): Set the log domain to
	"contact-editor".
	(INCLUDES): Fix.

	* contact-editor/*.[ch]: Fix includes.

	* gui/minicard/*.[ch]: Fix includes.

	* ChangeLog: Started a ChangeLog here.
