diff options
Diffstat (limited to 'addressbook/ChangeLog')
-rw-r--r-- | addressbook/ChangeLog | 2073 |
1 files changed, 2071 insertions, 2 deletions
diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index ed3992ba42..881c16f422 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,893 @@ +2003-10-20 Dan Winship <danw@ximian.com> + + * backend/pas/pas-book-view.c: Queue up removes and modifies as + well as adds, and remove the calls that took a list of changes + rather than a single change, since no one was really using the + list versions. Keep a list of IDs currently in the view so we can + more easily figure out what changes count as adds, modifies, and + removes. + (send_pending_adds): Don't reset next_threshold if it's being + called from notify_add. + (send_pending_changes, send_pending_removes): New + (pas_book_view_notify_update): Simplified add/change interface. + Takes an EContact and figures out if it's new, modified, or + removed relative to this view. + (pas_book_view_notify_change, pas_book_view_notify_change_1, + pas_book_view_notify_add, pas_book_view_notify_add_1): Gone. + (pas_book_view_notify_remove): Now does what remove_1 used to do. + (pas_book_view_vcard_matches): Remove this; no longer used. + + * backend/pas/pas-backend.c (pas_backend_notify_update): New. + Calls pas_book_view_notify_update() on each of the backend's views. + (pas_backend_notify_remove): Likewise for notify_remove(). + (pas_backend_notify_complete): And notify_complete(). + + * backend/pas/pas-book.c (pas_book_respond_create): Take an + EContact instead of an id and a vcard. Use + pas_backend_notify_update. + (pas_book_respond_remove_contacts): Use pas_backend_notify_remove. + (pas_book_respond_modify): Take a single EContact instead of two + vcards. Use pas_backend_notify_update. + + * backend/pas/pas-backend-sync.c + (pas_backend_sync_create_contact): Return an EContact rather than + an id. + (pas_backend_sync_modify_contact): Return an EContact rather than + the old_vcard. + (_pas_backend_create_contact, _pas_backend_modify_contact): Update + + * backend/pas/pas-backend-file.c (do_summary_query): Use + pas_book_view_notify_update. + (pas_backend_file_search_timeout): Likewise + (pas_backend_file_create_contact): Update for API changes + (pas_backend_file_modify_contact): Likewise. + + * backend/pas/pas-backend-ldap.c (create_contact_handler, + pas_backend_ldap_process_create_contact): Update for API changes + (modify_contact_modify_handler, modify_contact_search_handler, + pas_backend_ldap_process_modify_contact): Likewise + (ldap_search_handler): Use pas_book_view_notify_update + + * backend/pas/pas-backend-vcf.c (foreach_search_compare): Use + pas_book_view_notify_update. + (pas_backend_vcf_process_create_contact): Update for API changes + (pas_backend_vcf_process_modify_contact): Likewise + + * backend/pas/pas-backend-summary.c + (pas_backend_summary_add_contact): Take an EContact instead of a + const char *vcard. + + * backend/ebook/e-contact.c (photo_getter): s/malloc/g_malloc/ + + * backend/ebook/tests/ebook/Makefile.am: + * backend/ebook/tests/vcard/Makefile.am: Make these automake-1.7 + compliant + +2003-10-20 JP Rosevear <jpr@ximian.com> + + * backend/pas/pas-backend-vcf.c (pas_backend_vcf_search): compiler + with non-c99 compilers + +2003-10-17 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-contact.c (fn_getter): new function, just return + the full name value. + (fn_setter): rather distasteful hack. set the N attribute if it's + not already present. + (n_setter): set the X-EVOLUTION-FILE-AS attribute if it's not + already set. + + * backend/pas/pas-backend-ldap.c (prop_info): add PROP_WRITE_ONLY + flag for properties (right now just 'sn') that we don't want to + use when building the EContact - we only use it when storing the + contact out to the ldap server. + (build_contact_from_entry): skip WRITE_ONLY properties. + +2003-10-17 Chris Toshok <toshok@ximian.com> + + * gui/widgets/e-addressbook-view.c (init_collection): add the + minicard factory back in. + (display_view): add the minicard case back in. + (get_selection_model): same. + (minicard_right_click): resurrect. + (create_minicard_view): same. + (change_view_type): add the minicard case back in. + (eab_view_print): same. + (eab_view_print_preview): same. + + * gui/widgets/e-addressbook-view.h (EABViewType): add MINICARD + back in. + + * gui/widgets/e-addressbook-model.c (eab_model_new): + E_TYPE_AB_MODEL -> EAB_TYPE_MODEL. + + * gui/widgets/e-addressbook-model.h: rename E_TYPE_AB_MODEL to + EAB_TYPE_MODEL. + + * gui/widgets/Makefile.am (libeabwidgets_la_SOURCES): add the + minicard stuff back into the build. + + * gui/widgets/e-addressbook-reflow-adapter.[ch], + gui/widgets/e-minicard-label.[ch], + gui/widgets/e-minicard-view-widget.[ch], + gui/widgets/e-minicard-view.[ch], gui/widgets/e-minicard.[ch], + gui/widgets/gal-view-factory-minicard.[ch], gal-view-minicard.h: + resurrect the minicard stuff, in a new uneditable, + EContact-friendly state. no in-place editing anymore. + + +2003-10-10 Chris Toshok <toshok@ximian.com> + + * gui/contact-editor/e-contact-editor.c (fill_in_info): un-ifdef + the date handling code. + (extract_info): same. + + * backend/pas/pas-backend-ldap.c (prop_info): add the address + labels and dates to the build. + (anniversary_populate): un-ifdef and get this working. + (anniversary_ber): same. + (anniversary_compare): same. + (birthday_populate): same. + (birthday_ber): same. + (birthday_compare): same. + + * backend/ebook/tests/ebook/.cvsignore, + backend/ebook/tests/ebook/Makefile.am + backend/ebook/tests/ebook/test-date.c: add a test for EContactDate + getting/setting. + + * backend/ebook/e-vcard.h: add EVC_BDAY. + + * backend/ebook/e-contact.h: add prototypes for the + e_contact_date_* functions. + + * backend/ebook/e-contact.c (field_info): add + BIRTH_DATE/ANNIVERSARY fields. + (date_getter): new + (date_setter): new + (e_contact_date_new): new + (e_contact_date_from_string): new + (e_contact_date_to_string): new + (e_contact_date_free): new + +2003-10-10 Not Zed <NotZed@Ximian.com> + + * + gui/component/select-names/GNOME_Evolution_Addressbook_SelectNames.server.in.in: + Use the main factory on the .so file, so it can be found. + +2003-10-08 Chris Toshok <toshok@ximian.com> + + * gui/component/select-names/e-select-names.c (contact_key): add a + descriptive comment about this "#if notyet". + + * gui/component/select-names/e-select-names-model.h + (e_select_names_model_thaw): add prorotype for + e_select_names_model_cancel_all_contact_load. + + * gui/component/select-names/e-select-names-bonobo.c + (_EntryPropertyID): remove the SIMPLE_CARD_LIST property. + (entry_get_property_fn): same. + (impl_SelectNames_get_entry_for_section): same. + + * backend/ebook/e-contact.h: add prototype for + e_contact_name_to_string. + +2003-10-07 Chris Toshok <toshok@ximian.com> + + * util/eab-book-util.c: remove a bunch of ifdef'ed code (that's + going to be living in e-book.c) + + * backend/pas/pas-backend-summary.c + (pas_backend_summary_add_contact): un-ifdef some code. + (pas_backend_summary_get_summary_vcard): same. + + * backend/pas/pas-backend-ldap.c (prop_info): remove the + query_prop field since we can get it from e_contact_field_name. + also remove it from all the macros and their uses. + (homephone_populate): un-ifdef. + (homephone_ber): same. + (homephone_compare): same. + (business_populate): same. + (business_ber): same. + (business_compare): same. + (query_prop_to_ldap): use e_contact_field_name to get the query + prop for a given attribute. + (add_oc_attributes_to_supported_fields): same. + + * backend/pas/pas-backend-card-sexp.c (compare_phone): use the new + EContactField constants to iterate over the phone list. + + * backend/ebook/e-contact.h (EContactField): add some useful + constants for those pieces of code that iterate over + email/phones/addresses. + +2003-10-07 Chris Toshok <toshok@ximian.com> + + * gui/widgets/eab-vcard-control.c (book_open_cb): un-ifdef this. + (eab_vcard_control_new): put the buttons above the vcard so they + don't move when it's expanded. + + * gui/widgets/eab-popup-control.h: remove prototypes for + eab_popup_control_set_name and eab_popup_control_set_email. + + * gui/widgets/eab-popup-control.c (email_table_ok_cb): remove the + stupid idle function and do the work here. + (eab_popup_control_set_name): make this static - noone uses it. + (eab_popup_control_set_email): same. + + * gui/widgets/eab-gui-util.c (eab_show_contact_editor): + e_contact_editor_new is what we use for the time being. + + * gui/widgets/eab-contact-display.c (render_string): abstract this + code out. + (render_url): same. + (eab_contact_display_render_normal): make use of render_string and + render_url. + + * gui/widgets/e-addressbook-view.c (delete): un-ifdef this and get + it working. + (selection_received): same. + + * gui/widgets/e-addressbook-model.c (get_view): nuke some code + that was moved to another function. + (eab_model_set_property): get the writable state when we set the + book - don't rely on the timing of signals. + + * gui/contact/editor/contact-editor.glade: add the blog field + below the homepage url field. + + * gui/contact/editor/e-contact-editor-address.[ch]: get this + building with the new stuff. + + * gui/contact/editor/e-contact-editor-fullname.[ch]: get this + building with the new stuff. + + * gui/contact-editor/e-contact-editor.[ch]: get this most of the + way there. + + * gui/contact-editor/e-contact-quick-add.[ch]: get this building + with the new stuff. + + * gui/contact-editor/Makefile.am (libecontacteditor_la_SOURCES): + remove e-contact-save-as.[ch]. They're in + addressbook/widgets/eab-gui-util.[ch] now. + + * gui/merging/Makefile.am: track all the naming changes. + + * gui/merging/*.glade: gratuitous renaming. + + * gui/merging/eab-contact-compare.[ch]: gratuitous renaming, and + move this from the old ebook/ + + * gui/merging/eab-contact-merging.[ch]: gratuitous renaming. + + * backend/ebook/e-contact.[ch]: lots of overly complicated changes + for an overly complicated piece of code. + + * backend/ebook/e-book-view.c (e_book_view_do_added_event): remove + some ifdef'ed code. + (e_book_view_do_modified_event): same. + + * backend/ebook/e-vcard.c (parse): plug a memory leak. + (escape_string): deal with @s being NULL. + (e_vcard_remove_attribute): new function. + (e_vcard_attribute_remove_params): same. + (e_vcard_attribute_param_free): same. + (e_vcard_attribute_param_remove_values): same. + + * backend/ebook/e-vcard.h: add prototypes for + e_vcard_remove_attribute, e_vcard_attribute_remove_params, and + e_vcard_attribute_param_remove_values. + + * backend/ebook/e-book.c (e_book_handle_response): cache the + writable state of the ebook before generating the signal. + (e_book_unload_uri): initialize cap to NULL and writable to FALSE. + + * backend/ebook/e-book.h: add prototype for e_book_is_writable. + + * backend/ebook/e-book-async.c (_get_fields_response_handler): + don't call the callback if it's NULL. + (_get_methods_response_handler): same. + (_auth_user_response_handler): same. + (_get_contact_response_handler): same. + (_remove_contacts_response_handler): same. + (_add_contact_response_handler): same. + (_commit_contact_response_handler): same. + (_get_book_view_response_handler): same. + (_get_contacts_response_handler): same. + (_remove_contacts_dtor): free the list. + (e_book_async_remove_contacts): duplicate the list. + + * backend/pas/pas-backend.c (pas_backend_open): if we successfully + load the uri, report the writable status back. + + * backend/pas/pas-backend-sync.c (_pas_backend_remove_contacts): + free the list of ids. + + * backend/pas/pas-backend-file.c (do_create): return the contact + we create here. + (pas_backend_file_create_contact): format the newly created + contact as a string to add to the summary. + (pas_backend_file_remove_contacts): don't free the list of removed + cards here - it happens in pas-backend-sync. + (pas_backend_file_load_uri): pass NULL for @contact to do_create. + +2003-10-01 Chris Toshok <toshok@ximian.com> + + * gui/widgets/eab-contact-display.c (render_address): move the :'s + inside the <b>'s. Thanks for pointing this out, guenther. :) + (eab_contact_display_render_normal): same. + (eab_contact_display_render_compact): same. + + * gui/widgets/eab-vcard-control.c (save_in_addressbook): track + change to address_load_default_book. + +2003-10-01 Chris Toshok <toshok@ximian.com> + + * gui/component/Makefile.am: remove some commented out crap about + e-address-popup.[ch]. + + * gui/component/component-factory.c (factory): use + eab_popup_control_new for the AddressPopup iid. + + * gui/widgets/Makefile.am (libeabwidgets_la_SOURCES): add + eab-popup-control.[ch]. + + * backend/ebook/e-book.c (e_book_get_default_addressbook): hack + this so it at least sorta works - hardcode the + ~/evolution/local/Contacts uri for now. + + * gui/component/addressbook.[ch] (addressbook_load_default_book): + remove the EBook argument, and call + e_book_async_get_default_addressbook. + + * gui/component/e-address-popup.[ch]: nuke. + + * gui/widgets/eab-popup-control.c: rename + gui/component/e-address-popup.c to this. + + * gui/widgets/eab-popup-control.h: rename + gui/component/e-address-popup.h to this. + + * backend/ebook/e-book-async.h: add prototype for + e_book_async_get_default_addressbook. + + * backend/ebook/e-book-async.c + (e_book_async_get_default_addressbook): new function. + +2003-10-01 Chris Toshok <toshok@ximian.com> + + * gui/widgets/e-addressbook-view.c (eab_view_new): create the + scrolled window to embed the EABContactDisplay widget inside of. + + * gui/widgets/e-addressbook-view.h (struct _EABView): add scrolled; + + * gui/widgets/eab-contact-display.h: add + EABContactDisplayRenderMode enum, and add @render_mode arg to + eab_contact_display_render. + + * gui/widgets/eab-contact-display.c + (eab_contact_display_render_compact): new function, render a + compact format suitable for inclusion in the mail display. + (eab_contact_display_render_normal): move the previouw contents of + eab_contact_display_render here. + (eab_contact_display_render): render in either compact or normal + mode depending on @mode. + (eab_contact_display_new): remove the scrolled window stuff from + here, as in the compact mode we don't want it present. push it up + into the e-addressbook-view.c code. + + * gui/widgets/eab-vcard-control.[ch]: bonobo control that wraps up + the EABContactDisplay stuff and lets us display vcards in a pretty + format in mail messages. + + * gui/component/component-factory.c (factory): replace the #if + notyet'ed minicard control code with the new vcard control. + + * gui/component/Makefile.am (INCLUDES): remove gui/minicard. + + * gui/component/GNOME_Evolution_Addressbook.server.in.in: remove + the MiniCard_Control iid, and replace it with VCard_Control. + +2003-10-01 Chris Toshok <toshok@ximian.com> + + * gui/component/addressbook-component.c + (destination_folder_handle_drop): use + eab_contact_list_from_string, and un-"#if notyet" this. + + * gui/component/addressbook.c: remove #include + "e-contact-save-as.h" + + * gui/contact-list-editor/e-contact-list-editor.c + (file_save_as_cb): use eab_contact_save. + (file_send_as_cb): use eab_send_contact, un-"#if notyet" this. + (file_send_to_cb): same. + (table_drag_data_received_cb): use eab_contact_list_from_string. + + * gui/widgets/e-addressbook-reflow-adapter.[ch]: nuke. last + vestiges of the minicard view. + + * gui/widgets/e-addressbook-view.c (eab_view_init): + s/clipboard_cards/cliboard_contacts. + (eab_view_dispose): same. + (get_contact_list_1): s/card/contact + (get_contact_list): same. + (save_as): same, and use eab_contact_list_save. + (send_as): reenable this code, s/card/contact, and use + eab_send_contact_list. + (send_to): same. + (print): s/card/contact. + (delete): same. + (new_card): same, and un-"#if notyet" some code. + (selection_get): use eab_contact_list_to_string. + (selection_clear_event): s/card/contact + (selection_received): same. + (get_selected_contacts): same. + (eab_view_save_as): same, and use eab_contact_list_save. + (eab_view_view): same, and use eab_show_multiple_contacts. + (eab_view_send): reenable this code, s/card/contact, and use + eab_send_contact_list. + (eab_view_send_to): same. + (eab_view_copy): s/card/contact. + (view_transfer_contacts): same. + (eab_view_copy_to_folder): same. + (eab_view_move_to_folder): same. + + * gui/widgets/e-addressbook-view.h (struct _EABView): rename + clipboard_cards to clipboard_contacts. + + * gui/widgets/eab-gui-util.c (view_contacts): un-"#if notyet" + (file_exists): moved from e-contact-save-as.c + (save_it): same. + (close_it): same. + (destroy_it): same. + (make_safe_filename): same. + (eab_contact_save): same, and renamed from e_contact_save_as. + (eab_contact_list_save): same, and renamed from + e_contact_list_save_as. + (contact_deleted_cb): s/card/contact. + (do_delete): same, and use e_book_async. + (delete_contacts): s/card/contact. + (process_unref): same. + (contact_added_cb): same. + (do_copy): same, and use e_book_async. + (got_book_cb): same. + (eab_transfer_contacts): same, and use e_book_async. + (eab_send_contact_list): s/card/contact + (eab_send_contact): same. + + * gui/widgets/eab-gui-util.h: some random s/card/contact work, and + move the contents of e-contact-save-as.h here. + + * util/eab-book-util.c (eab_contact_list_from_string): rename + eab_load_contacts_from_string to this. + (eab_contact_list_to_string): new function. + + * util/eab-book-util.h: add prototype for + eab_contact_list_to_string, and rename + eab_load_contacts_from_string to eab_contact_list_from_string. + + * gui/contact-editor/e-contact-save-as.[ch]: nuke. the contents + of these files has been wrapped up in + gui/widgets/eab-gui-util.[ch]. + +2003-09-30 Chris Toshok <toshok@ximian.com> + + * gui/component/Makefile.am (libevolution_addressbook_la_LIBADD): + add libecontactlisteditor.la back into the build. + + * gui/component/addressbook-component.c (new_item_cb): enable the + contact list editor portion. + + * util/eab-book-util.c (eab_load_contacts_from_string): new + function, return a GList of EContact*'s parsed from the string. + + * util/eab-book-util.h: add prototype for + eab_load_contacts_from_string. + + * gui/contact-list-editor/contact-list-editor.glade: set the id of + the list-image widget. + + * gui/contact-list-editor/e-contact-list-editor.c + (e_contact_list_editor_class_init): PROP_CARD -> PROP_CONTACT. + (e_contact_list_editor_init): initialize image_buf to null and + card -> contact. also, hook up the dnd signals on the list_image + widget so we can drop images. + (e_contact_list_editor_dispose): free the image_buf. + (list_added_cb): card -> contact. + (list_modified_cb): same. + (save_contact): same, and use the ebook-async api. + (prompt_to_save_changes): card -> contact. + (file_save_cb): same. + (file_save_as_cb): same. + (file_send_as_cb): #if notyet for now. + (file_send_to_cb): same. + (tb_save_and_close_cb): card -> contact. + (list_deleted_cb): same. + (delete_cb): same. + (delete_cb): same, and use ebook-async. + (e_contact_list_editor_new): card -> contact. + (e_contact_list_editor_set_property): same. + (table_drag_motion_cb): use GDK_POINTER_TO_ATOM instead of + casting. + (table_drag_data_received_cb): use eab_load_contacts_from_string, + and card -> contact. + (set_image_from_data): new function. create a pixbuf from the + image data and composite it in an image that's the same size as + the initial list_image widget. + (image_drag_motion_cb): new function. + (image_drag_drop_cb): new function. + (image_drag_data_received_cb): new function. + (extract_info): port to EContact, and add support for the image. + (fill_in_info): same. + + * gui/contact-list-editor/e-contact-list-editor.h (struct + _EContactListEditor): add image stuff, and ECard -> EContact. + + * gui/contact-list-editor/e-contact-list-model.c + (contact_list_value_at): e_destination -> eab_destination. + (e_contact_list_model_init): same. + (e_contact_list_model_add_destination): same. + (e_contact_list_model_add_email): same. + (e_contact_list_model_add_contact): same, and card -> contact. + (e_contact_list_model_remove_row): e_destination -> + eab_destination. + (e_contact_list_model_get_destination): same. + + * gui/contact-list-editor/e-contact-list-model.h: card -> contact, + and e-destination -> eab-destination. + + * gui/widgets/e-addressbook-view.etspec: fix a couple of + fields.. this needs a completely once-over at some point soon. + + * gui/widgets/e-addressbook-view.c (table_double_click): reenable + all of this. + + * gui/widgets/eab-contact-display.c (render_address): use + e_text_to_html to convert the \n's to <br>'s. + (on_url_requested): get PHOTO if there is one, otherwise LOGO. + (eab_contact_display_render): escape all the text we're sending to + gtkhtml with e_text_to_html. also, if it's a contact list, output + _("List Members") with the contents of _EMAIL. + + * gui/widgets/eab-gui-util.h: rename eab_send_card{_list} to + eab_send_contact{_list}. + +2003-09-30 Chris Toshok <toshok@ximian.com> + + * backend/ebook/tests/ebook/Makefile.am (noinst_PROGRAMS): add + test-string. + + * backend/ebook/tests/ebook/test-string.c: test setting/getting a + string attribute. + + * backend/ebook/e-contact.c (photo_setter): do gnome-vfs mime type + sniffing before we set the attribute value. + (e_contact_set_property): implement setting of MULTI list + attributes (like MAIL). + (e_contact_get_property): rework the ATTR_TYPE attribute handling + so we aren't calling g_value_set_pointer on a value that holds a + string (and vice versa). + + * backend/ebook/e-vcard.c (e_vcard_remove_attributes): implement. + (e_vcard_attribute_add_param): use g_ascii_strcasecmp. + + * backend/ebook/e-vcard.h: rename e_vcard_remove_attribute to + e_vcard_remove_attributes, since it removes all matching + attributes. + + * backend/ebook/e-book.c (e_book_response_add_contact): we need to + strdup the id here since the listener frees it. + (e_book_handle_response): implement the WritableStatusEvent part + of the switch. + + * backend/ebook/e-book-listener.c + (impl_BookListener_report_writable): un-"#if notyet" this. + + * backend/ebook/e-book-async.c (_add_contact_handler): fill in + response->id. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * printing/e-contact-print-envelope.c: card -> contact. + + * printing/e-contact-print-envelope.h: card -> contact. + + * printing/e-contact-print.c: card -> contact. + + * printing/e-contact-print.h: card -> contact. + + * printing/Makefile.am (contact_print_test_LDADD): add + libeabutil.la and reorder things so it links. + (contact_print_style_editor_test_LDADD): same. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * gui/component/select-names/e-select-names-text-model.c: + e-addressbook-util.h -> eab-gui-util.h. + + * gui/component/select-names/e-select-names-popup.c: + e-addressbook-util.h -> eab-gui-util.h. + + * gui/component/e-address-popup.c: e-addressbook-util.h -> + eab-gui-util.h. + + * gui/component/component-factory.c: #if notyet the minicard + control stuff, since it's been completely nuked from the tree. + + * gui/component/addressbook.c: e-addressbook-util.h -> + eab-gui-util.h. + + * gui/component/addressbook-component.c: e-addressbook-util.h -> + eab-gui-util.h. + + * gui/component/Makefile.am (libevolution_addressbook_la_LIBADD): + rename libeminicard to libeabwidgets. + + * Makefile.am (SUBDIRS): add util/ to the build. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * gui/widgets/e-addressbook-treeview-adapter.c: + e-addressbook-util.h -> eab-gui-util.h, and convert some + EDestination code to EABDestination. + + * gui/widgets/e-addressbook-table-adapter.c: e-addressbook-util.h + -> eab-gui-util.h, and include util/eab-destination.h. + (addressbook_value_at): un-#if 0 some code. + + * gui/widgets/e-addressbook-model.c: e-addressbook-util.h -> + eab-gui-util.h + + * gui/widgets/e-addressbook-view.c: e-addressbook-util.h -> + eab-gui-util.h + + * gui/widgets/e-minicard-control.c, + gui/widgets/e-minicard-control.h, gui/widgets/e-minicard-label.c, + gui/widgets/e-minicard-label.h, + 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-test.c, + gui/widgets/e-minicard-widget.c, gui/widgets/e-minicard-widget.h, + gui/widgets/e-minicard.c, gui/widgets/e-minicard.h, + test-minicard-label.c, test-minicard-view.c, test-minicard.c: nuke + all of the old minicard stuff. + + * gui/widgets/eab-gui-util.[ch]: rename e-addressbook-util.[ch] to + this and nuke e-addressbook-util.[ch]. + + * gui/widgets/Makefile.am (INCLUDES): change G_LOG_DOMAIN to + eab-widgets, and add -I$(top_srcdir)/addressbook. + (noinst_LTLIBRARIES): rename to libeabwidgets.la + (libeabwidgets_la_SOURCES): rename e-addressbook-util.[ch] to + eab-gui-util.[ch]. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * gui/widgets/eab-contact-display.c (eab_contact_display_new): + track change from E_TYPE_AB_CONTACT_DISPLAY to + EAB_TYPE_CONTACT_DISPLAY. + + * gui/widgets/eab-contact-display.h: change from E_* type foo to + EAB_* type foo. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * gui/search/e-addressbook-search-dialog.[ch]: convert everything + from e_addressbook_search_dialog to eab_search_dialog, and + EAddressbookSearchDialog to EABSearchDialog. + + * gui/component/addressbook.c (search_cb): + e_addressbook_search_dialog -> eab_search_dialog. + (addressbook_search_activated): same. + (addressbook_query_changed): same. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-book.c (pas_book_respond_get_supported_fields): + don't free the fields here - the backends hold onto them. + (pas_book_respond_get_supported_auth_methods): don't free the + auth_methods here - the backends hold onto them. + + * backend/pas/pas-backend-file.c + (pas_backend_file_get_supported_fields): fields go from 1 to + E_CONTACT_FIELD_LAST, not 0. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * gui/component/addressbook.c: e-book-util.h -> eab-book-util.h + + * gui/component/addressbook-component.c: e-book-util.h -> + eab-book-util.h. + (new_item_cb): enable the contact editor portion of this. + (user_create_new_item_cb): convert to async_load_uri api, and + ifdef the _use_default_book crap. + (ensure_completion_uris_exist): e_book_get_config_database -> + eab_get_config_database. + + * gui/component/e-address-widget.h: e-book-util.h -> + eab-book-util.h. + + * gui/component/Makefile.am (libevolution_addressbook_la_LIBADD): + add selectnames back in, and add util/libeabutil.la. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-contact.c: my head explodes from so many + changes. + + * backend/ebook/e-contact.h: reorder fields such that all the + string fields are first in the enum (and add a + E_CONTACT_LAST_SIMPLE_STRING value, ala the old e-card-simple + stuff.) Also, add E_CONTACT_LOGO, WANTS_HTML, IS_LIST, and + LIST_SHOW_ADDRESSES. remove E_CONTACT_PHOTO_URI. + + * backend/ebook/e-vcard.c (e_vcard_remove_attribute): rename from + e_card_remove_attribute, and add a g_assert_not_reached. + (_evc_base64_encode_simple): make this not static (we need it for + a test.) + (_evc_base64_decode_simple): same. + + * backend/ebook/e-vcard.h: add LOGO, X-MOZILLA-HTML, + X-EVOLUTION-LIST, and X-EVOLUTION-LIST-SHOW_ADDRESSES #defines. + + * backend/ebook/e-book.c (EBookLoadState): change from + UriNotLoaded to E_BOOK_URI_NOT_LOADED, etc. + (e_book_add_contact): track _URI_ change. + (e_book_get_supported_fields): same. + (e_book_get_supported_auth_methods): same. + (e_book_authenticate_user): same. + (e_book_get_contact): same. + (e_book_response_get_contact): remove the ifdefed call to + e_contact_set_book. + (e_book_remove_contacts): track _URI_ change. + (e_book_get_book_view): same. + (e_book_get_contacts): same. + (e_book_get_changes): same. + (e_book_remove): same. + (e_book_unload_uri): same. + (e_book_load_uri): same. + (e_book_load_uri): same. + (e_book_get_self): start the implementation of this. + (e_book_get_default_addressbook): ifdef out a possible + implementation of this (it's broken.) + (e_book_init): track _URI_ change. + (e_book_dispose): same. + + * backend/ebook/e-book.h: move get_default_addressbook out of the + ifdef, and change get_default_addressbook/get_addressbooks to be + more like the rest of the api. + + * backend/ebook/e-book-util.[ch]: nuke. + + * backend/ebook/e-card-compare.[ch]: nuke. + + * backend/ebook/e-destination.[ch]: nuke. + + * backend/ebook/e-book-query.c (func_and): fix valgrind error. + (func_or): same. + + * backend/ebook/e-book-listener.h: drop #include of e-list.h + + * backend/ebook/e-book-async.c (_get_contacts_response_handler) + (_get_contacts_response_dtor, _get_contacts_handler) + (_get_contacts_dtor, e_book_async_get_contacts): new functions, + implementing e_book_async_get_contacts. + + * backend/ebook/e-book-async.h: add e_book_async_get_contacts. + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * util/eab-marshal.list: new file. + + * util/eab-destination.[ch]: rename + backend/ebook/e-destination.[ch] to this, and change all the entry + point names too. + + * util/eab-book-util.[ch]: rename backend/ebook/e-book-util.[ch] + to this, and change all the entry point names too. + + * util/Makefile.am: new file, build libeabutil.la + +2003-09-29 Chris Toshok <toshok@ximian.com> + + * gui/component/select-names/e-select-names.c + (addressbook_model_set_uri): e_addressbook_model -> eab_model. + (contact_key): e-contactify this, and remove the call to + e_contact_get_book since we don't have it. + (sync_one_model): card -> contact. + (real_add_address_cb): track various name changes. + (esn_get_key_fn): same. + (e_addressbook_create_ebook_table): same. + (folder_selected): same. + (select_entry_changed): same. + (e_select_names_new): same. + + * gui/component/select-names/e-select-names-text-model.c + (dump_model): s/card/contact. + (e_select_names_text_model_insert_length): e-destination -> + eab-destination. + (e_select_names_text_model_delete): same. + (e_select_names_text_model_obj_count): same. + (nth_obj_index): same. + (e_select_names_text_model_activate_obj): ifdef this out since we + don't have e_contact_get_book in the new api. + + * gui/component/select-names/e-select-names-table-model.c + (fill_in_info): convert to e_contact/eab_destination. + + * gui/component/select-names/e-select-names-popup.c + (change_email_num_cb): e_destination -> eab_destination. + (populate_popup_contact): same, and ECard -> EContact. Also, the + email attribute is a GList, not an EList. lastly, rename from + populate_popup_card. + (populate_popup_nocontact): same, and rename from + populate_popup_nocard. + (e_select_names_populate_popup): same. + + * gui/component/select-names/e-select-names-model.h: track changes + to e_destination, and rename the cardify methods to something mode + descriptive. + + * gui/component/select-names/e-select-names-model.c + (e_select_names_model_duplicate): e_destination -> + eab_destination. + (e_select_names_model_get_textification): same. + (e_select_names_model_get_address_text): same. + (e_select_names_model_get_destination): same. + (e_select_names_model_export_destinationv): same. + (send_changed): same. + (e_select_names_model_import_destinationv): same. + (e_select_names_model_get_contact): same, and rename from + _get_card + (e_select_names_model_get_string): same. + (connect_destination): same. + (disconnect_destination): same. + (e_select_names_model_contains): same. + (e_select_names_model_insert): same. + (e_select_names_model_append): same. + (e_select_names_model_replace): same. + (e_select_names_model_delete): same. + (e_select_names_model_clean): same. + (delete_all_iter): same. + (e_select_names_model_overwrite_copy): same. + (e_select_names_model_merge): same. + (e_select_names_model_name_pos): same. + (e_select_names_model_text_pos): same. + (e_select_names_model_cardify): nuke. + (e_select_names_model_uncardify): nuke. + (e_select_names_model_cancel_cardify): nuke. + (e_select_names_model_load_all_contacts): rename _cardify_all to + this. + (e_select_names_model_cancel_all_contact_load): rename + _cancel_cardify to this. + + * gui/component/select-names/e-select-names-manager.c + (focus_in_cb): cancel_cardify_all -> cancel_all_contact_load + (focus_out_cb): cardify_all -> load_all_contacts. + (completion_popup_cb): same. + (load_completion_books): no e_book_expand_uri anymore. + (e_select_names_manager_new): e_book_get_config_database -> + eab_get_config_database. + (e_select_names_manager_dispose): same. + + * gui/component/select-names/e-select-names-completion.h: e-book.h + -> e-book-async.h + + * gui/component/select-names/e-select-names-completion.c: + EContactify this. + + * gui/component/select-names/e-select-names-bonobo.c + (entry_get_property_fn): ifdef out the SIMPLE_CARD_LIST getter, + and cardify_all -> load_all_contacts. + + * gui/component/select-names/Evolution-Addressbook-SelectNames.idl: + nuke all the SimpleCard stuff. It's a horribly inefficient way to + deal with vcards, and since ebook is platform level now, we can + (and should) promote just linking to ebook to do this. + 2003-09-19 Gilbert Fang <gilbert.fang@sun.com> * addressbook/gui/component/addressbook-component.c (xfer_folder): @@ -12,17 +902,715 @@ non-static versions of libraries: the static ones were only needed for libtool 1.3. +2003-09-07 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-contact.c (e_contact_get_property): implement + getters for the address labels. they aren't really synthetic, but + we can't handle them as normal strings because they switch off the + TYPE parameter, not the attribute name (go go vcard.) Also add + getters for the structured address fields (ADR). Also fix a spot + where we were using strcmp instead of strcasecmp. + (e_contact_address_free): new function. + + * backend/ebook/e-contact.h: Add EContactAddress structure, which + will probably go away once i merge in my cool spiffy address + editor. Add LABEL fields for the address labels, and add + prototype for e_contact_address_free. + + * backend/ebook/e-vcard.h: add EVC_LABEL and EVC_X_BLOG_URL. + + * backend/ebook/e-vcard.c (read_attribute_value): step to the next + character after unescaping \-escaped characters. keeps commas + from multiplying. + + * gui/widgets/eab-contact-display.c (render_address): new function + (eab_contact_display_render): display email, delivery addresses, + and the blog url. + +2003-09-06 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-contact.c (e_contact_set_property): implement + E_CONTACT_EMAIL_*. + + * backend/pas/pas-backend-ldap.c (email_ber): EContact-ify and + re-enable this code. + (email_compare): same. + (email_populate): same. + + * backend/pas/pas-backend-vcf.c (pas_backend_vcf_load_uri): use + XIMIAN_VCARD. + + * backend/pas/pas-backend-file.c (pas_backend_file_load_uri): use + XIMIAN_VCARD, and don't fail if the directory already exists. + just try to create the db anyway. + + * backend/pas/Makefile.am (libpas_a_SOURCES): add ximian-vcard.h + + * backend/pas/ximian-vcard.h (XIMIAN_VCARD): put the initial vcard + here, so we can share 1 #define between file/vcf backends. Also, + add a jpeg photo. + +2003-09-06 Chris Toshok <toshok@ximian.com> + + * gui/widgets/Makefile.am (libeminicard_la_SOURCES): add + eab-contact-display.[ch] + + * gui/widgets/e-addressbook-view.c (eab_view_init): just init + everything to NULL. + (eab_view_new): move a bunch of stuff that was in eab_view_init + here. create a vpaned to hold the contact display, and create the + contact display. + (render_contact): render the selected contact to the + contact_display. + (selection_changed): add logic to display the currently selected + contact in the preview pane. + (create_table_view): add the table to the paned. + (create_treeview_view): add the scrolled to the paned. + (change_view_type): remove view->widget from the paned. + + * gui/widgets/e-addressbook-view.h: switch from using a GtkTable + to a GtkEventBox - we don't need the table logic anymore. + + * gui/widgets/e-addressbook-model.c (create_contact): indent + (eab_model_get_contact): same. + + * gui/widgets/eab-contact-display.[ch]: new files - this + implements the preview pane. + +2003-09-06 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend-ldap.c (BINARY_PROP): new type of + property, for specifying data coming back from the ldap server + with both data/length (like photos). + (photo_populate): set the contact's photo. + (build_contact_from_entry): add PROP_TYPE_BINARY handling. + + * backend/ebook/e-vcard.c (EVCardEncoding): new enum for use with + the ENCODING attribute parameter. Right now, just "raw", + "base64", and "quoted-printable". + (struct _EVCardAttribute): add a "decoded_values" list of + GString*'s, as well as fields to hold encoding/encoding_set. + (e_vcard_class_init): call _evc_base64_init. + (e_vcard_attribute_add_value_decoded): based on what encoding the + attribute uses, add the value properly. + (e_vcard_attribute_add_param): if the parameter is ENCODING, work + our magic. + (e_vcard_attribute_get_values_decoded): spit out properly decoded + values depending on the decoding type. + (_evc_base64*): copy the camel base64 routines here. + + * backend/ebook/e-vcard.h: add prototypes for + e_vcard_attribute_add_value_decoded and + e_vcard_attribute_get_values_decoded. + + * backend/ebook/e-contact.c (e_contact_get_first_attr): move this + to above _set_property so we can make use of it there. + (e_contact_set_property): fix up the generic STRING field handler, + and implement E_CONTACT_PHOTO setting. + (e_contact_get_property): add handling for + E_CONTACT_PHOTO/E_CONTACT_PHOTO_URI. + (e_contact_photo_free): new function. + + * backend/ebook/e-contact.h: add EContactPhoto struct, a prototype + for e_contact_photo_free, and two new EContactField elements (PHOTO and + PHOTO_URI). + + * backend/ebook/tests/ebook/.cvsignore: ignore test-photo + + * backend/ebook/tests/ebook/Makefile.am (noinst_PROGRAMS): add test-photo + + * backend/ebook/tests/ebook/test-photo.c: test for the photo + set/get routines (which do base64 encoding/decoding). + +2003-09-02 Chris Toshok <toshok@ximian.com> + + * gui/component/Makefile.am: comment out a buncha stuff just to + get this building. + + * gui/component/select-names/e-select-names.c: #include + e-book-async.h + (search_result): EAddressbookModel -> EABModel. + (addressbook_model_set_uri): same, and don't use + e_book_expand_uri, as it's dead. + (esn_get_key_fn): EAddressbookModel -> EABModel. + (e_addressbook_create_ebook_table): same. + (status_message): same. + + * gui/component/select-names/e-select-names.h (struct + _ESelectNames): EAddressbookModel -> EABModel. + + * gui/component/addressbook-component.c (new_item_cb): ifdef out + for now. + (dnd_drop_book_open_cb): s/card/contact. + (destination_folder_handle_drop): ifdef out. + (request_quit): same. + + * gui/component/addressbook.c: track api changes - e_addressbook_ + -> eab_, and e_book_* becomes e_book_async_*. + + * gui/component/addressbook.h: #include e-book-async.h + + * gui/component/e-address-widget.c (query_results_cb): + e/EBookSimpleQueryStatus/EBookStatus + + * gui/component/e-address-widget.h: s/ECard/EContact. + + * gui/component/e-cardlist-model.[ch]: nuke. + + * gui/component/e-address-popup.c: s/e-book.h/e-book-async.h + + * gui/component/e-address-popup.h: s/ECard/EContact + +2003-09-02 Chris Toshok <toshok@ximian.com> + + * backend/ebook/Makefile.am (libebook_la_SOURCES): remove + e-card.c,e-card.simple.c + + * backend/ebook/tests/ebook/test-ebook.c: remove #include of + e-card-simple.h + + * backend/ebook/tests/ebook/test-changes.c: remove #include of + e-card-simple.h + + * backend/ebook/e-card.[ch], backend/ebook/e-card-simple.[ch]: + nuke. + + * backend/ebook/e-book-util.h: s/card/contact. + + * backend/ebook/e-book-util.c: ifdef out an #include. + + * backend/ebook/e-book-async.[ch]: stop doing the stupid #define + renaming trick, and just rename all the prototypes from e_book_* + to e_book_async_*. Also, get rid of the *_vcard variants. + +2003-09-02 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend-card-sexp.[ch] + (pas_backend_card_sexp_match_contact): rename + pas_backend_card_sexp_match_card, and it takes an EContact now. + Also, port this file to use EContact instead of ECard, and ifdef + out lots of stuff. + + * backend/pas/pas-backend-ldap.c: convert this to use EContact + instead of ECard, and ifdef great swaths of code to make it + compile. + + * backend/pas/pas-book.c (pas_book_respond_modify): convert this + from ECard to EContact. + +2003-09-02 Chris Toshok <toshok@ximian.com> + + * gui/widgets/Makefile.am (libeminicard_la_SOURCES): remove all + the reflow/minicard stuff from the build. + (e-addressbook-marshal.[ch]): change the prefix on the marshallers to + eab_marshal. + + * gui/widgets/e-addressbook-view.etspec: bring this more in line + with the field ids for EContact, and comment out a ton of them + that aren't there yet. + + * gui/widgets/e-addressbook-view.[ch]: big renaming - rename + e_addressbook_view to eab_view, and EAddressbookView to EABView. + + * gui/widgets/e-addressbook-util.c (eab_error_dialog): rename, and + change a few of the error strings s/Card/Contact. + (added_cb): E_BOOK_STATUS_SUCCESS => E_BOOK_ERROR_OK. + (modified_cb): same. + (e_addressbook_show_contact_editor): this takes an EContact now, + and track the change to the contact editor signal names. + (e_addressbook_show_contact_list_editor): this takes an EContact + now. + (view_contacts): rename view_cards to this, and ifdef the body. + (e_addressbook_show_multiple_contacts): rename + e_addressbook_show_multiple_cards to this, and s/card/contact. + + * gui/widgets/e-addressbook-util.h: ifdef some things out, and + rename e_addressbook_error_dialog to eab_error_dialog. + + * gui/widgets/e-addressbook-table-adapter.[ch]: big renaming - + rename e_addressbook_table_adapter to eab_table_adapter, and + EAddressbookTableAdapter to EABTableAdapter. Also, remove the + simple mapping - we can do ECardSimple-like operations directly on + the EContacts from the EABModel. + + * gui/widgets/e-addressbook-model.[ch]: big renaming - rename + e_addressbook_model to eab_model, and EAddressbookModel to + EABModel. Also, convert everything from ECard to EContact. + +2003-09-01 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-vcard.c (e_vcard_new_from_string): omg i'm dumb. + don't call e_vcard_new here since it just turns around and calls + e_vcard_new_from_string again. + +2003-09-01 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-book-view.c (pas_book_view_notify_change): guard + pending adds foo. + (pas_book_view_notify_remove): same. + (pas_book_view_notify_add): same. + (pas_book_view_notify_complete): same. + (pas_book_view_construct): init mutex + (pas_book_view_dispose): free mutex + + * backend/pas/pas-backend-ldap.c (func_exists): new function. + (send_pending_adds): remove + (ldap_search_handler): let the BookView stuff handle the pending + adds for us. + (ldap_search_dtor): remove pending adds stuff. + (pas_backend_ldap_search): same + + * backend/pas/pas-backend-card-sexp.c (func_exists): new function. + + * backend/ebook/tests/ebook/test-ebook.c (print_all_emails): use + an exists query. + +2003-08-31 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-book-query.c (func_and, func_or, func_not) + (func_contains, func_is, func_beginswith, func_endswith) + (e_book_query_from_string): adapt the pas ldap backend sexp + parsing code to this, build up an EBookQuery that represents the + sexp. + + * backend/ebook/e-contact.h (e_contact_field_id): add prototype. + + * backend/ebook/e-contact.c (e_contact_field_id): new function. + + * backend/ebook/Makefile.am (libebook_la_SOURCES): add + e-book-util.c back into the build, if only for the config_database + thingy. + +2003-08-31 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-contact.c (e_contact_duplicate): new function. + + * backend/ebook/e-contact.h: add prototype for + e_contact_duplicate. + + * backend/ebook/e-book-util.[ch]: massive ifdeffing. most of this + is either gone or will be unnecessary soon. + + * backend/ebook/e-book-query.c (e_book_query_from_string): hack + this so it'll at least generate a query. + + * backend/ebook/e-book-listener.c + (impl_BookListener_respond_get_view): add some debug spew and + remove a c&p'ed comment. + + * backend/ebook/e-book-async.h: add prototype for + e_book_async_unload_uri. + + * backend/ebook/e-book-async.c (e_book_async_unload_uri): new + function. + + * backend/pas/pas-book-view.c (pas_book_view_construct): switch to + CORBA_Object_duplicate, ala pas_book. + + * backend/pas/pas-backend-sync.c (pas_backend_sync_class_init): + fix typo and the build. + +2003-08-29 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend-ldap.c (ldap_error_to_response): + s/card/contact. + (pas_backend_ldap_process_create_contact): same. + (remove_contact_handler): same. + (remove_contact_dtor): same. + (pas_backend_ldap_process_remove_contacts): same. + (modify_contact_modify_handler): same. + (modify_contact_dtor): same. + (pas_backend_ldap_process_modify_contact): same. + (get_contact_handler): same. + (get_contact_dtor): same. + (pas_backend_ldap_process_get_contact): same. + (pas_backend_ldap_class_init): same. + + * backend/pas/pas-backend-summary.c + (pas_backend_summary_add_contact): s/card/contact, and mostly + switch from ECard{Simple} to EContact. + (pas_backend_summary_get_summary_vcard): same. + (pas_backend_summary_remove_contact): s/card/contact + + * backend/pas/pas-backend-summary.h: s/card/contact. + + * backend/pas/pas-backend-file.c (build_summary): fix g_warning, + and return immediately if the db->cursor call fails. + (pas_backend_file_create_contact): s/card/contact + (pas_backend_file_remove_contacts): same. + (pas_backend_file_modify_contact): same. + (pas_backend_file_get_contact): same. + (pas_backend_file_get_contact_list): same. + (pas_backend_file_class_init): same. + + * backend/pas/pas-backend-vcf.c + (pas_backend_vcf_process_create_contact): s/card/contact. + (pas_backend_vcf_process_remove_contacts): same. + (pas_backend_vcf_process_modify_contact): same. + (pas_backend_vcf_process_get_contact): same. + (pas_backend_vcf_process_get_contact_list): same. + (pas_backend_vcf_class_init): same. + + * backend/pas/pas-backend-sync.c (pas_backend_sync_create_contact): s/card/contact. + (pas_backend_sync_remove_contacts): same. + (pas_backend_sync_modify_contact): same. + (pas_backend_sync_get_contact): same. + (pas_backend_sync_get_contact_list): same. + (_pas_backend_create_contact): same. + (_pas_backend_remove_contacts): same. + (_pas_backend_modify_contact): same. + (_pas_backend_get_contact): same. + (_pas_backend_get_contact_list): same. + (pas_backend_sync_class_init): same. + + * backend/pas/pas-backend-sync.h: s/card/contact. + + * backend/pas/pas-backend.c (pas_backend_create_contact): s/card/contact. + (pas_backend_remove_contacts): same. + (pas_backend_modify_contact): same. + (pas_backend_get_contact): same. + (pas_backend_get_contact_list): same. + (pas_backend_change_add_new): same. + (pas_backend_change_modify_new): same. + (pas_backend_change_delete_new): same. + + * backend/pas/pas-backend.h: s/card/contact. + + * backend/pas/pas-book-view.c (send_pending_adds): s/card/contact + (pas_book_view_notify_change): same. + (pas_book_view_notify_remove): same. + + * backend/pas/pas-book.c + (impl_GNOME_Evolution_Addressbook_Book_getContact): s/card/contact + (impl_GNOME_Evolution_Addressbook_Book_getContactList): same. + (impl_GNOME_Evolution_Addressbook_Book_addContact): same. + (impl_GNOME_Evolution_Addressbook_Book_removeContacts): same. + (impl_GNOME_Evolution_Addressbook_Book_modifyContact): same. + (pas_book_respond_create): same. + (pas_book_respond_remove_contacts): same. + (pas_book_respond_modify): same. + (pas_book_respond_get_contact): same. + (pas_book_respond_get_contact_list): same. + (pas_book_respond_get_changes): same. + (pas_book_class_init): same. + + * backend/pas/pas-book.h: s/card/contact + + * backend/ebook/tests/vcard/dump-vcard.c: #include + "ebook/e-vcard.h" + + * backend/ebook/tests/vcard/Makefile.am (TEST_LIBS): use + top_builddir. + (CFLAGS): same. + + * backend/ebook/tests/ebook/Makefile.am (TEST_LIBS): use + top_builddir. + (CFLAGS): use srcdir + + * backend/ebook/test-card.c, backend/ebook/test-client-list.c, + backend/ebook/test-client.c, backend/ebook/test-ebook.c: remove. + + * backend/ebook/e-card-cursor.[ch]: remove. + + * backend/ebook/e-card-pairs.h: remove. + + * backend/ebook/e-book.c (e_book_add_contact): s/Card/Contact. + (e_book_commit_contact): same + (e_book_get_contact): same. + (e_book_remove_contacts): same. + (e_book_get_contacts): same. + (e_book_handle_response): same. + + * backend/ebook/e-book-view.c (e_book_view_do_added_event): + s/card/contact + (e_book_view_do_modified_event): same. + (e_book_view_do_removed_event): same. + (e_book_view_handle_response): same. + (e_book_view_class_init): same. + + * backend/ebook/e-book-view.h: s/card/contact and pad the class + struct. + + * backend/ebook/e-book-view-listener.c + (e_book_view_listener_queue_response): s/Card/Contact. + (e_book_view_listener_queue_status_event): no need to assign + things to NULL, we g_new0. + (e_book_view_listener_queue_idlist_event): s/Card/Contact, and no + need to assign things to NULL, we g_new0. + (e_book_view_listener_queue_sequence_event): same. + (e_book_view_listener_queue_message_event): same. + (impl_BookViewListener_notify_contacts_added): s/Card/Contact. + (impl_BookViewListener_notify_contacts_removed): same. + (impl_BookViewListener_notify_contacts_changed): same. + (e_book_view_listener_class_init): same. + + * backend/ebook/e-book-view-listener.h: s/Card/Contact + + * backend/ebook/e-book-types.h: s/CARD/CONTACT + + * backend/ebook/e-book-listener.c + (e_book_listener_convert_status): s/Card/Contact + (impl_BookListener_respond_create_contact): same. + (impl_BookListener_respond_remove_contacts): same. + (impl_BookListener_respond_modify_contact): same. + (impl_BookListener_respond_get_contact): same. + (impl_BookListener_respond_get_contact_list): same. + (impl_BookListener_respond_get_changes): same. + (e_book_listener_class_init): same. + + * backend/ebook/e-book-listener.h: pad the class struct, and + s/Card/Contact. + + * backend/ebook/e-book-async.c (_load_uri_handler): GError + changes. + (_get_fields_handler): same. + (_get_methods_handler): same. + (_auth_user_handler): same. + (_get_card_handler): same. + (_remove_cards_handler): same. + (_add_vcard_handler): same. + (_commit_vcard_handler): same. + (_get_book_view_handler): same. + (e_book_async_get_book_view): use an EBookQuery instead of a char*. + + * backend/ebook/Makefile.am: remove the test handling. + (SUBDIRS): set to ". tests" + (libebook_la_SOURCES): add e-book-async.c + + * backend/idl/addressbook.idl: possibly gratuitous renaming, but i + was sick of seeing "Card" being used everywhere. "Contact" is the + new "Card". + +2003-08-28 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-book.c (e_book_op_free): rename from + e_book_free_op. + (e_book_op_remove): rename from e_book_remove_op. + (e_book_clear_op): new function, remove the op, unlock its mutex, + and free it. + (e_book_add_contact): use e_book_clear_op. + (e_book_commit_contact): same. + (e_book_get_supported_fields): same. + (e_book_get_supported_auth_methods): same. + (e_book_authenticate_user): same. + (e_book_get_contact): same. + (e_book_remove_contacts): same. + (e_book_get_book_view): same. + (e_book_get_contacts): same. + (e_book_get_changes): same. + (e_book_load_uri): same. + (e_book_remove): new function. + (e_book_response_remove): new function. + (e_book_handle_response): add handling for RemoveBookResponse. + (e_book_load_local_addressbook): pass TRUE for e_book_load_uri + @only_if_exists. + + * backend/ebook/e-book.h: add @only_if_exists arg to + e_book_load_uri so we can support folder creation at load_uri + time, and add prototype for e_book_remove. + + * backend/ebook/e-book-types.h: add an "id" slot in EBookChange. + + * backend/ebook/e-book-listener.c + (impl_BookListener_respond_get_changes): handle union in idl. + (impl_BookListener_respond_open_book): remove unnecessary + exception check. + (impl_BookListener_respond_remove_book): new function. + (impl_BookListener_respond_get_supported_fields): rename this from + _response_. + (impl_BookListener_respond_get_supported_auth_methods): same. + (e_book_listener_class_init): add _remove_book and track change to + get_supported_fields/get_supported_auth_methods names. + + * backend/ebook/e-book-listener.h: add RemoveBookResponse to + EBookListenerOperation enum. + + * backend/idl/addressbook.idl: make BookChangeItem a union that + switches over BookChangeType. + + * backend/pas/pas-backend.c (pas_backend_change_add_new): new + function, create a BookChangeItem representing the addition of a + contact. + (pas_backend_change_modify_new): same, but for modifications. + (pas_backend_change_delete_new): same, but for deletions. + + * backend/pas/pas-backend.h: add prototypes for + pas_backend_change_{add,modify,delete}_new + + * backend/pas/pas-backend-file.c (pas_backend_file_changes): nuke. + (do_create): fix memory corruption. + (pas_backend_file_get_changes): copy the body of + pas_backend_file_changes here, and rework so that it's synchronous + and return a list instead of the book view hack. + (pas_backend_file_load_uri): mkdir the directory (we need a mkdir + -p here). + (select_changes): new function, scandir helper. + (pas_backend_file_remove): NULL out bf->priv->summary to quiet + valgrind, and call scandir to accumulate the .changes.db files + then unlink them. + + * backend/pas/pas-book.c (pas_book_respond_remove): new function. + (pas_book_respond_get_supported_fields): unifdef this, and make it + use a glist. + (pas_book_respond_get_supported_auth_methods): same. + (pas_book_respond_get_changes): this code is kinda gross... lots + of copying going on, there's got to be a better way. but it + works. + +2003-08-26 Chris Toshok <toshok@ximian.com> + + * backend/idl/addressbook.idl: add oneway void Book::remove() and + oneway void notifyBookRemoved() + +2003-08-26 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend.c (pas_backend_remove): new function. + (pas_backend_add_book_view): new function. + (pas_backend_add_client): move the "real_add_client" code here. + (pas_backend_remove_client): move the "real_remove_client" code + here. + (pas_backend_class_init): remove assignments of add_client and + remove_client vtable entries. + (pas_backend_is_removed): new function. + (pas_backend_set_is_removed): new function. + (pas_backend_init): init clients_mutex and views_mutex. + + * backend/pas/pas-backend.h: remove the vtable entries for + add/remove_client, since these are fully handled in PASBackend. + Add prototypes for + pas_backend_is_removed/pas_backend_add_book_view/pas_backend_set_is_removed. + + * backend/pas/pas-book.c + (impl_GNOME_Evolution_Addressbook_Book_remove): new function. + (impl_GNOME_Evolution_Addressbook_Book_getBookView): clean things + up a bit, and don't use pas_backend_get_book_views as it can't + lock the list of views. + (pas_book_respond_get_supported_auth_methods): remove the extra + unnecessary arg from the corba call. + (pas_book_respond_get_changes): same. + (pas_book_class_init): fill in epv "remove" slot. + + * backend/pas/pas-book.h: rename pas_book_respond_remove to + pas_book_respond_remove_cards, and add a new + pas_book_respond_remove for use with removing books. + + * backend/pas/pas-backend-sync.c (pas_backend_sync_remove): new + function. + (_pas_backend_remove): new function. + (pas_backend_sync_class_init): fill in the "remove" vtable entry. + (_pas_backend_remove_cards): track change to + pas_book_respond_remove_cards (pas_book_respond_remove is used for + removing the book, not the cards.) + + * backend/pas/pas-backend-sync.h: add pas_backend_sync_remove + prototype and add remove_sync virtual function. + +2003-08-26 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend-file.c (pas_backend_file_create_card, + pas_backend_file_remove_cards, pas_backend_file_modify_card, + pas_backend_file_get_vcard, pas_backend_file_get_card_list, + pas_backend_file_start_book_view, pas_backend_file_get_changes, + pas_backend_file_authenticate_user, + pas_backend_file_get_supported_fields): rename from + pas_backend_file_process_* + (pas_backend_file_load_uri): save off the dirname/summary + filename. + (pas_backend_file_remove): new function, unlink all the files we + know about. + (pas_backend_file_class_init): track changes to functions, and add + pas_backend_file_remove. + 2003-08-26 JP Rosevear <jpr@ximian.com> - * conduit/address-conduit.c (ecard_from_remote_record): duplicate + * conduit/address-conduit.c (ecard_from_remote_record): duplicate the extra address lines +2003-08-22 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-book.[ch]: switch from using the PASRequest + union and a central PASBackend dispatch function. just call the + pas_backend methods directly and expand the args out. + + * backend/pas/pas-backend.[ch]: same. + + * backend/pas/pas-backend-sync.[ch]: same. + + * backend/pas/pas-backend-vcf.c, backend/pas/pas-backend-file.c, + backend/pas/pas-backend-ldap.c: same, and get these all compiling + against the rest of the current pas/ebook code. + +2003-08-21 Chris Toshok <toshok@ximian.com> + + * backend/ebook/test-ebook.c: track GError case. + + * backend/ebook/e-book.[ch]: GError-ify the api, and clean up some + cases where we weren't removing the current op. + + * backend/ebook/e-book-view-listener.c + (e_book_view_listener_convert_status): track change from + E_BOOK_VIEW_STATUS_* to E_BOOK_VIEW_ERROR_*. + + * backend/ebook/e-book-types.h: track change from E_BOOK_STATUS_* + to E_BOOK_ERROR_*, and some E_BOOK_VIEW_STATUS_* to + E_BOOK_VIEW_ERROR_*. + + * backend/ebook/e-book-listener.c + (e_book_listener_convert_status): track change from + E_BOOK_STATUS_* to E_BOOK_ERROR_*. + + * backend/ebook/e-book-query.c (e_book_query_any_field_contains): + new function. + (e_book_query_unref): handle the any_field_contains case. + (e_book_query_to_string): same. + + * backend/ebook/e-book-query.h: add prototype for + e_book_query_any_field_contains. + + * backend/ebook/e-card.c (e_card_load_uri): ifdef this out for + now. + + * backend/ebook/e-contact.[ch] (e_contact_get_const): new + function/prototype. + 2003-08-20 Gilbert Fang <gilbert.fang@sun.com> - * gui/widgets/e-addressbook-util.c + * gui/widgets/e-addressbook-util.c (e_addressbook_send_card_list): use memcpy to assign CORBA_char_sequence instead of strcpy. (#46706) +2003-08-18 Ettore Perazzoli <ettore@ximian.com> + + * gui/component/component-factory.c: Update OAFIIDs. + + * gui/widgets/e-addressbook-util.c (e_addressbook_transfer_cards): + Removed extern declaration for global_shell_client [yuck]. + (e_addressbook_transfer_cards): #if 0 the invocation for + evolution_shell_client_user_select_folder(), we need to + reimplement this component-side now. + + * gui/component/component-factory.c (factory): Call + addressbook_component_peek() here instead of + addressbook_component_init() [since the latter is no more]. + + * gui/component/addressbook.c (set_status_message): Don't create + the activity client for now. + + * gui/component/addressbook-config.c: Removed member shell from + struct AddressbookDialog. + (ldap_dialog_new): Do not take a shell arg anymore. + (ldap_config_control_new): Likewise. + (addressbook_config_control_new): No need to get the global shell + pointer here anymore. + + * gui/component/addressbook-component.c: Rewritten to support the + new ::Component interface. + * gui/component/addressbook-component.h: Likewise. + + * gui/component/GNOME_Evolution_Addressbook.server.in.in: Version + factory's OAFIID. Remove ShellComponent server, add Component + server. + 2003-08-12 Rodrigo Moya <rodrigo@ximian.com> * backend/ebook/e-book.c (e_book_dispose): unref the @@ -70,6 +1658,487 @@ * printins/e-contact-print-style-editor.c (e_contact_print_stule_editor_destroy): Chain. Prevent double unref. +2003-08-07 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-vcard.c (e_vcard_to_string_vcard_21): new, + unimplemented, function. + (e_vcard_to_string_vcard_30): move the 3.0 vcard export code here. + (e_vcard_to_string): call e_vcard_to_string_vcard_21 or + e_vcard_to_string_vcard_30 based on @format. + (e_vcard_attribute_remove_values): new function. + + * backend/ebook/e-vcard.h: add @format to e_vcard_to_string, and + add prototype for e_vcard_attribute_remove_values. also, add + prototype for e_vcard_decode_b_encoding. + +2003-08-07 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-book-listener.c + (impl_BookListener_respond_open_book): remove the book arg. + + * backend/ebook/e-book-listener.h (struct _EBookListenerResponse): + remove the corba book. + + * backend/ebook/e-book-async.c (_get_book_view_dtor): free the + query string. + (e_book_async_get_book_view): dup the query string. + + * backend/ebook/e-book.h: change e_book_get_book_view and + e_book_get_contacts to take a const char * query string instead of + an EBookQuery. + + * backend/ebook/e-book.c (e_book_add_contact): pass + EVC_FORMAT_VCARD_30 to e_vcard_to_string. + (e_book_commit_contact): same. + (e_book_get_book_view): take a const char* query string instead of + an EBookQuery. + (e_book_get_contacts): same. + (e_book_response_open): track change - the Book is no longer + communicated back here. + (listener_cb): nuke. + (e_book_handle_response): track change to e_book_response_open. + (e_book_load_uri): rework this from using BookFactory::openBook to + BookFactory::getBook + Book::open. + (e_book_get_uri): new function, reimplement from old api. + (e_book_get_static_capabilities): same. + (e_book_check_static_capability): same. + (startup_mainloop): new function, run bonobo_main. + (e_book_activate): start up a thread with startup_mainloop as the + start func. + (e_book_new): call e_book_activate. + + * backend/idl/addressbook.idl: Add Book::open, remove the Book + from notifyBookOpened's args, and change BookFactory::openBook to + BookFactory::getBook. + + * backend/pas/pas-backend-file.c (pas_backend_file_load_uri): add + only_if_exists - stop using the "create-initial" special file. + + * backend/pas/pas-backend-vcf.c (pas_backend_vcf_load_uri): add + only_if_exists - stop using the "create-initial" special file. + + * backend/pas/pas-backend.c (pas_backend_load_uri): add + @only_if_exists, and pass it along to the virtual method. + (pas_backend_open): new function, lock the mutex so only one + PASBook can actually call load_uri. call load_uri with + pas_book_get_uri, and req->only_if_exists. + (pas_backend_handle_request): rename process_client_request to + this, and expose it publicly. Also add a case statement for + "Open". + (real_add_client): gut this function, we don't need to create the + book anymore, just add the client to the list and do the weak + ref/ORBit small stuff. + (pas_backend_add_client): track change to signature - BookListener + -> PASBook. + (pas_backend_init): init open_mutex. + (pas_backend_dispose): free open_mutex. + + * backend/pas/pas-backend.h (PASBackendClass): add @only_if_exists + to the load_uri virtual method, and change the add_client virtual + method to take a PASBook instead of a BookListener. add the same + args to _load_uri and add_client. Also, add prototypes for + pas_backend_handle_request and pas_backend_open. + + * backend/pas/pas-book-factory.c + (_pas_book_factory_send_open_book_response): nuke. + (pas_book_factory_launch_backend): just return NULL, don't call + _pas_book_factory_send_open_book_response, in the error case. + (start_backend): nuke + (impl_GNOME_Evolution_Addressbook_BookFactory_getBook): rename + _openBook to this. clean up the code a bit. Create the PASBook + here, and always track change to pas_backend_add_client's type (we + pass the book now, not the listener). + (pas_book_factory_class_init): openBook -> getBook. + + * backend/pas/pas-book.c + (impl_GNOME_Evolution_Addressbook_Book_open): new function, call + pas_backend_open. + (impl_GNOME_Evolution_Addressbook_Book_getVCard): get rid of the + signal crap, just call pas_backend_handle_request. + (impl_GNOME_Evolution_Addressbook_Book_getCardList): same. + (impl_GNOME_Evolution_Addressbook_Book_authenticateUser): same. + (impl_GNOME_Evolution_Addressbook_Book_addCard): same. + (impl_GNOME_Evolution_Addressbook_Book_removeCards): same. + (impl_GNOME_Evolution_Addressbook_Book_modifyCard): same. + (impl_GNOME_Evolution_Addressbook_Book_getChanges): same. + (impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): same. + (impl_GNOME_Evolution_Addressbook_Book_getSupportedAuthMethods): + same. + (impl_GNOME_Evolution_Addressbook_Book_cancelOperation): same. + (pas_book_get_backend): aggregate some g_return_if_fail's. + (pas_book_get_listener): new function. + (pas_book_get_uri): new function. + (pas_book_respond_open): just call BookListener::notifyBookOpened. + (pas_book_construct): add @uri, and g_strdup it. + (pas_book_new): add @uri, and pass it to pas_book_construct. + (pas_book_class_init): remove the "request" signal stuff, and fill + in epv->open. + + * backend/pas/pas-book.h: add PASOpenRequest struct/enum entry. + Also, add @uri to the pas_book_new args, and add a prototype for + pas_book_get_uri. Also, remove the "request" signal. + +2003-08-07 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-book-factory.c + (pas_book_factory_get_n_backends): lock map_mutex around hash + table work. + (pas_book_factory_dump_active_backends): same. + (backend_last_client_gone_cb): same. + (_pas_book_factory_send_open_book_response): track CallStatus idl + change. + (start_backend): simplify this greatly, since the factory is + tagged with HINT_PER_THREAD. + (impl_GNOME_Evolution_Addressbook_BookFactory_openBook): lock + around hash table. + (pas_book_factory_init): initialize map_mutex. + (pas_book_factory_dispose): free map_mutex. + +2003-08-06 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend-file.c + (pas_backend_file_book_view_copy): nuke. + (pas_backend_file_book_view_free): same. + (view_destroy): same. + (pas_backend_file_changes): #if notyet + (do_create): e-card -> e-contact. + (pas_backend_file_process_create_card): remove view handling from + here. + (pas_backend_file_process_remove_cards): same. + (pas_backend_file_process_modify_card): convert to e-contact, and + remove view handling. + (pas_backend_file_get_book_view): nuke. + (pas_backend_file_process_get_supported_fields): e-card-simple -> + e-contact. + (pas_backend_file_upgrade_db): e-card -> e-contact. + (pas_backend_file_cancel_operation): implement, just return + CouldNotCancel. + (pas_backend_file_class_init): assign cancel_operation, and remove + get_book_view assignment. + (pas_backend_file_init): remove book_views assignment. + +2003-08-06 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend-vcf.c (pas_backend_vcf_book_view_copy): + nuke. + (pas_backend_vcf_book_view_free): same. + (view_destroy): same. + (insert_contact): new function, insert the contact into our hash + table. + (load_file): reimplement without the e_card stuff. + (foreach_build_list): e_card -> e_contact. + (save_file): mostly reimplement in terms of e-contact. more error + case work needs doing. + (do_create): e-card -> e-contact. + (pas_backend_vcf_process_create_card): remove the view handling + from here. + (pas_backend_vcf_process_remove_cards): implement this, just + remove it from the hash table and set ourselves to dirty. + (pas_backend_vcf_process_modify_card): remove the view handling + from here. + (pas_backend_vcf_process_get_book_view): nuke. + (pas_backend_vcf_process_get_supported_fields): reimplement in + terms of e-contact. + (INITIAL_VCARD): add in a FN attribute, and remove the quoted + printable encoding. + (pas_backend_vcf_cancel_operation): implement, just always return + CouldNotCancel. + (pas_backend_vcf_class_init): fill in cancel_operation, and remove + get_book_view_sync. + (pas_backend_vcf_init): remove book_views handling. + + * backend/pas/pas-backend-vcf.h: update copyright. + +2003-08-06 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend-sync.c (pas_backend_sync_remove_cards): + add out param @ids, so we can call pas_book_respond_remove + properly. + (_pas_backend_remove_cards): the other half of the change - pass + the ids on to pas_book_response_remove. + (pas_backend_sync_modify_card): add out param @old_vcard so we can + call pas_book_respond_modify properly. + (_pas_backend_modify_card): the other half of the change, pass the + old_vcard on to pas_book_respond_modify. + (pas_backend_sync_get_book_view): nuke. + (pas_backend_sync_get_changes): track change (book view -> GList) + (_pas_backend_is_threaded): nuke. + (_pas_backend_create_card): indent. + (_pas_backend_remove_cards): same. + (_pas_backend_modify_card): same. + (_pas_backend_get_card_list): same. + (_pas_backend_get_changes): same. + (_pas_backend_authenticate_user): same. + (_pas_backend_get_supported_fields): same. + (_pas_backend_get_supported_auth_methods): same. + (_pas_backend_get_book_view): nuke. + (pas_backend_sync_class_init): remove assignment to is_threaded + and get_book_view. + + * backend/pas/pas-backend-sync.h: add out-params @ids to + remove_cards_sync, @old_vcard to modify_card_sync. + get_changes_sync's out-param is a GList instead of a book view, + and remove get_book_view_sync. + + * backend/pas/pas-backend.c (pas_backend_get_book_view): nuke. + (pas_backend_is_threaded): nuke. + (pas_backend_start_threaded): nuke. + (pas_backend_init): initialize priv->views. + (pas_backend_dispose): free priv->views. + (pas_backend_get_book_views): new function, return priv->views. + + * backend/pas/pas-backend.h: remove the get_book_view virtual + method, and the pas_backend_get_book_view prototype. Also, track + the CallStatus change, and add a cancel_operation virtual method + and prototype, and add pas_backend_get_book_views function, so the + PASBook's can get ahold of the list. + + * backend/pas/pas-book-view.h: track collapsing of + Addressbook::BookListenerCallStatus and + Addressbook::BookView::CallStatus enums into + Addressbook::CallStatus. + + * backend/pas/pas-book-view.c: same. + + * backend/pas/pas-card-cursor.[ch]: nuke + + * backend/pas/pas-book.c: track collapsing of + Addressbook::BookListenerCallStatus and + Addressbook::BookView::CallStatus enums into + Addressbook::CallStatus. + (impl_GNOME_Evolution_Addressbook_Book_getBookView): implement + this all here, instead of farming it out to the backends. + (impl_GNOME_Evolution_Addressbook_Book_getChanges): track change + to signature. this is no longer a book view, it'll return an + actual list. + (impl_GNOME_Evolution_Addressbook_Book_cancelOperation): new + function, implement. + (pas_book_respond_create): iterate over the views, notifying them + if the new card matches their query. + (pas_book_respond_remove): iterate over the views, telling them to + delete the card matching the id. + (pas_book_respond_modify): iterate over the views, notifying them + if they need to change/add/remove that card. + (view_destroy): move this here from the backends. + (pas_book_respond_get_book_view): weak-ref the book view. + (pas_book_new): remove the is_threaded switch on POA hints, and + always use PER_REQUEST. + (pas_book_class_init): fill in cancelOperation. + + * backend/pas/pas-book.h: track collapsing of + Addressbook::BookListenerCallStatus and + Addressbook::BookView::CallStatus enums into + Addressbook::CallStatus. + +2003-08-01 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-book-async.c: mostly finished. + +2003-08-01 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-book-async.[ch]: new files, create async methods + similar to the old ebook api that use GThread/GAsyncQueue to + simulate the old async behavior. + +2003-07-29 Chris Toshok <toshok@ximian.com> + + * backend/idl/addressbook.idl: collapse + Addressbook::BookListenerCallStatus and + Addressbook::BookView::CallStatus enums into + Addressbook::CallStatus. + +2003-07-29 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-book-types.h: add EBookChangeType/EBookChange. + +2003-07-29 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-book-view-listener.c: track collapsing of + Addressbook::BookListenerCallStatus and + Addressbook::BookView::CallStatus enums into + Addressbook::CallStatus. + + * backend/ebook/e-book-listener.c track collapsing of + Addressbook::BookListenerCallStatus and + Addressbook::BookView::CallStatus enums into + Addressbook::CallStatus. + (response_free): nuked + (e_book_listener_check_queue): nuked + (e_book_listener_queue_response): nuked + (e_book_listener_queue_progress): nuked + (e_book_listener_queue_get_view_response): nuked + (e_book_listener_queue_get_changes_response): nuked + (e_book_listener_queue_writable_status): nuked + (e_book_listener_queue_authentication_response): nuked + (e_book_listener_queue_get_supported_fields_response): nuked + (e_book_listener_queue_get_supported_auth_methods_response): nuked + (e_book_listener_dispose): nuked + + * backend/ebook/e-book-listener.h: remove prototypes for + check_pending and pop_response. + + * backend/ebook/e-book.c (e_book_get_changes): new function. + implement this as more of a getCardList type function, instead of + getBookView. + (e_book_response_get_changes): new function. + (e_book_free_change_list): new function. + + * backend/ebook/e-book.h: add prototype for + e_book_free_change_list. + +2003-07-23 Chris Toshok <toshok@ximian.com> + + * backend/ebook/e-book.c (e_book_get_book_view): new function, + implement this. + (e_book_response_get_book_view): same. + (e_book_get_contacts): remove the op so we don't see BUSY after + this request. + (e_book_handle_response): unifdef a few things. + (e_book_unload_uri): fix the assertion about URI_NOT_LOADED, and + unifdef some code. + (e_book_dispose): fix a typo. + + * backend/ebook/e-book-view.c (e_book_view_handle_response): + rename _check_listener_queue to this. we don't need to pop the + response either, it's passed as an arg. + (e_book_view_construct): "response_queued" -> "response" + (e_book_view_start): new function, call BookView.start. + (e_book_view_dispose): track the signal id change. + + * backend/ebook/e-book-view.h: add prototype for + e_book_view_start. + + * backend/ebook/e-book-view-listener.c + (e_book_view_listener_check_queue): remove. + (e_book_view_listener_queue_response): just emit the signal. + (impl_BookViewListener_notify_card_added): spew. + (impl_BookViewListener_notify_card_changed): spew. + (impl_BookViewListener_notify_sequence_complete): spew. + (impl_BookViewListener_notify_progress): spew. + (e_book_view_listener_check_pending): remove + (e_book_view_listener_check_pop_response): remove + (e_book_view_listener_new): use the ALL_AT_IDLE poa policy. + (e_book_view_listener_init): remove the queue/timeout stuff. + (e_book_view_listener_dispose): remove the queue/timeout stuff. + + * backend/ebook/e-book-view-listener.h: remove _check_pending and + _pop_response. + +2003-07-23 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-backend-file.c (do_summary_query): remove the + completion_search argument, and remove the aggregating stuff. + just call pas_book_view_notify_add_1. + (pas_backend_file_book_view_copy): remove card_sexp crap. + (pas_backend_file_book_view_free): same. + (get_length): remove + (get_nth): remove + (cursor_destroy): remove + (vcard_matches_search): remove + (ecard_matches_search): remove + (pas_backend_file_search_timeout): remove the aggregating stuff. + just call pas_book_view_notify_add_1. + (pas_backend_file_search): simplify this a bunch. + (do_create): use pas_book_view_vcard_matches. + (pas_backend_file_process_get_card_list): add some more error + checks. + (pas_backend_file_process_get_book_view): unifdef this, and + implement it. + (pas_backend_file_start_book_view): kick off the search. + (pas_backend_file_get_uri): remove. + (pas_backend_file_class_init): remove get_uri, add + start_book_view. + + * backend/pas/pas-backend-ldap.c (view_destroy): don't need to + unref the card_sexp, as the PASBookView owns it now. + (create_card_handler): use pas_book_view_vcard_matches. + (modify_card_modify_handler): same. + (ldap_get_view): initialize the view properly. + (pas_backend_ldap_get_uri): remove. + (pas_backend_ldap_class_init): remove the get_uri assignment. + + * backend/pas/pas-backend-sync.c (_pas_backend_get_card_list): + don't free this, it's freed in the pas_book code. + + * backend/pas/pas-backend-sync.h: make use of pas-types.h and + remove some typedefs. + + * backend/pas/pas-backend-summary.h: same. + + * backend/pas/pas-backend-card-sexp.h: same. + +2003-07-23 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-book.c + (impl_GNOME_Evolution_Addressbook_Book_getBookView): spew. + (pas_book_respond_create): unifdef this. + (pas_book_respond_remove): same. + (pas_book_respond_modify): same. + (pas_book_respond_authenticate_user): same. + (pas_book_respond_get_supported_fields): unref the iterator. + (pas_book_respond_get_book_view): unifdef, and add spew. + + * backend/pas/pas-book.h: make use of pas-types.h and remove some + typedefs. + +2003-07-23 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-types.h: new file, all the typedefs shared + between files here. + +2003-07-23 Chris Toshok <toshok@ximian.com> + + * backend/pas/pas-book-view.c (send_pending_adds): abstract all + the aggregating code to the book view. backends just call + notify_card_added and the superclass does all the aggregating. + (pas_book_view_notify_change): if there are pending adds, send + them before we send the change. + (pas_book_view_notify_remove): same. + (pas_book_view_notify_add): the other part of the aggregating + code. + (pas_book_view_notify_complete): send pending adds if there are + any. + (impl_GNOME_Evolution_Addressbook_BookView_start): new function, + call pas_backend_start_book_view. + (pas_book_view_get_card_query): new function. + (pas_book_view_get_card_sexp): new function. + (pas_book_view_get_backend): new function. + + * backend/pas/pas-book-view.h: add a PASBackend arg to the + constructor, as well as the char* query and PASBackendCardSExp + form. also add accessors for card_query, card_sexp, and backend. + + * backend/idl/addressbook.idl + (GNOME::Evolution::Addressbook::BookView): add start() method. + (GNOME::Evolution::Addressbook::BookListener): remove the oneway + tag from notifyBookOpened, notifyViewRequested, and + notifyChangesRequested so the call doesn't return until the remote + object has gotten the method call. + + * backend/pas/pas-backend.c (pas_backend_load_uri): fill in the + uri slot if the load was successful. + (pas_backend_get_uri): return the uri, remove the virtual method + call. + (pas_backend_start_book_view): new function. + (process_client_request): ifdef out the threaded foo, since i'm + not certain it's at all necessary. + (real_add_client): remove the bonobo_object_unref of the book, + since it's immortal. + (pas_backend_dispose): free the uri. + + * backend/pas/pas-backend.h: remove the get_uri virtual method, + and add the start_book_view virtual method and + pas_backend_start_book_view prototype. + +2003-07-23 Chris Toshok <toshok@ximian.com> + + * backend/pas/Makefile.am (libpasvcf_a_SOURCES): new. + (noinst_LIBRARIES): add libpasvcf.a + + * backend/pas/pas-backend-vcf.[ch]: new files, implement a vcard + file backend. the backend api still needs a little work, but it's + getting easier to write backends. + 2003-07-23 Chris Toshok <toshok@ximian.com> * printing/e-contact-print.c (e_contact_print_response): deal with |