2005-01-10  Rodrigo Moya <rodrigo@novell.com>

	* e-categories-dialog.c (delete_button_clicked_cb): added missing
	implementation.

2005-01-10  Rodrigo Moya <rodrigo@novell.com>

	* e-categories-dialog.glade: replaced the 'Edit master ...' button
	with buttons for adding, editing and removing categories.
	Added the category properties dialog.

	* e-categories-dialog.c (e_categories_dialog_init): load the buttons
	from the Glade file.
	(new_button_clicked_cb, edit_button_clicked_cb,
	delete_button_clicked_cb): added callbacks for the new buttons in the
	dialog.

2005-01-10  Hans Petter Jansson  <hpj@novell.com>

	* e-contact-store.c (e_contact_store_find_contact): Implement.

	* e-name-selector-model.c (e_name_selector_model_init): Set up UID hash
	field.
	(emit_destination_uid_changes_cb): Implement.
	(destinations_changed): Instead of re-filtering everything, calculate
	the differences between former and current destination UIDs, and
	emit the change signal for the affected contacts, so they can be
	re-filtered.
	(e_name_selector_model_add_section): Call destinations_changed ()
	instead of re-filtering.
	(e_name_selector_model_remove_section): Ditto.

2005-01-07  Rodrigo Moya <rodrigo@novell.com>

	* e-categories-config.c (e_categories_dialog_init): set default response
	and disable on startup the OK button.
	(category_toggled_cb, entry_changed_cb): enable OK button on changes.

2005-01-07  Rodrigo Moya <rodrigo@novell.com>

	* e-categories-config.c (e_categories_dialog_init): set the "active"
	property on the GtkTreeViewColumn.
	(e_categories_dialog_set_categories): process correctly the strings
	array we get from g_strsplit.

2005-01-07  Rodrigo Moya <rodrigo@novell.com>

	* e-categories-dialog.c (e_categories_dialog_set_categories): added
	missing code to set the widgets to the specificied categories list.
	(e_categories_dialog_init): set dialog's title and connect to "toggled"
	signal on the GtkCellRendererToggle.
	(category_toggled_cb): callback for the "toggled" signal.

2005-01-05  Rodrigo Moya <rodrigo@novell.com>

	* e-categories-dialog.h: fixed class structure.

	* e-categories-dialog.c (e_categories_dialog_set_categories): init
	correctly the private pointer before using it.
	(e_categories_dialog_dispose): unref the GladeXML object.
	(e_categories_dialog_init): add the main widget and some buttons to
	the dialog. Set the correct properties to the category column in the
	treeview widget.

2005-01-05  Rodrigo Moya <rodrigo@novell.com>

	* e-categories-dialog.[ch]:
	* e-categories-dialog.glade:
	* Makefile.am: added categories dialog implementation, to replace
	the dialog in GAL.

2005-01-04  Hans Petter Jansson  <hpj@novell.com>

	* e-contact-store.c (e_contact_store_add_book): Add precondition.
	(e_contact_store_remove_book): Add precondition.

	* e-name-selector-dialog.c (escape_sexp_string): Implement.
	(source_selected): If the book cannot be created, don't try to
	load it.
	(search_changed): Escape the query string.

	* e-name-selector-entry.c (setup_default_contact_store): Only load
	true completion sources. Don't try to load books that can't be
	created.

2004-12-30  JP Rosevear  <jpr@novell.com>

	* Makefile.am (INCLUDES): include the addressbook builddir as well
	for generated files

2004-12-24  Hans Petter Jansson  <hpj@novell.com>

	* e-name-selector-entry.c (find_destination_by_index): Return NULL on
	failure.
	(generate_attribute_list): Temporarily disable an assertion.
	(setup_destination_store): Add previously existing destinations to
	the store.

2004-12-23  Hans Petter Jansson  <hpj@novell.com>

	* e-name-selector-entry.c (escape_sexp_string): Implement as a wrapper
	for e_sexp_encode_string ().
	(set_completion_query): Encode strings. Free all strings after use.
	(entry_activate): Implement.
	(e_name_selector_entry_init): Connect to our own activation signal.

2004-12-22  Hans Petter Jansson  <hpj@novell.com>

	* e-destination-store.c (e_destination_store_insert_destination): Don't
	push entries past end of array, ever.

	* e-name-selector-dialog.c (e_name_selector_dialog_dispose): Disconnect
	from model and clear out the books we're holding.
	(remove_books): Convenience function that removes all boks from our
	watch list.
	(source_selected): Use remove_books ().

	* e-name-selector.c (add_section): Don't take a destination store, we
	don't need it here.
	(e_name_selector_dialog): Connect to the window's delete-event, so we
	can hide it instead of destroying.
	(e_name_selector_peek_section_entry): Simplify this code a bit. Set the
	common destination store for the relevant section, on the entry.

	* e-name-selector-entry.c (build_textrep_for_contact): Use just the name
	for completion, not name + email.
	(contact_match_cue): Implement.
	(find_existing_completion): Use contact_match_cue ().
	(generate_attribute_list): Implement.
	(expose_event): Implement, applies attribute list.
	(type_ahead_complete): Rebuild the attribute list if we complete a
	contact.
	(modify_destination_at_position): Rebuild attributes as necessary.
	(sync_destination_at_position): Update cursor position for caller.
	Rebuild attribute list after sync.
	(insert_unichar): Clean up handling of comma insertion.
	(completion_match_selected): Implement.
	(destination_row_changed): Don't insert the email address. Clear the
	completion model so we don't get odd completion suggestions. Rebuild
	the attribute list.
	(destination_row_inserted): Don't insert the email address.
	(destination_row_deleted): Clear the completion model. Rebuild the
	attribute list.
	(e_name_selector_entry_init): Connect to the expose signal so we can
	apply attributes.
