aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend
Commit message (Collapse)AuthorAgeFilesLines
* [ probable fix for #25477, and memory leak fix ] if the dialog isn't inChris Toshok2002-10-211-0/+2
| | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=18396
* Return right away rather than crashing if card->email is NULL.Dan Winship2002-10-161-0/+6
| | | | | | | | * 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. svn path=/trunk/; revision=18370
* [ Fixes #31321 ] add VERSION:2.1 to exported vCards.Chris Toshok2002-10-011-0/+2
| | | | | | | | | | 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. svn path=/trunk/; revision=18274
* [ Fixes #31434 ] always retrieve the card from the db. use the summaryChris Toshok2002-10-011-0/+8
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=18271
* update for Composer_setHeaders change.Dan Winship2002-09-301-2/+2
| | | | | | | * backend/ebook/e-card.c (e_card_list_send): update for Composer_setHeaders change. svn path=/trunk/; revision=18261
* set the timeout to 30 seconds. (query_ldap_root_dse): same, and alsoChris Toshok2002-09-281-23/+33
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=18251
* [ Fixes bug #30250 ] handle "Unnamed Lists" here by setting their name toChris Toshok2002-09-132-3/+12
| | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=18059
* return g_strdup("true"), not "true".Dan Winship2002-09-131-1/+1
| | | | | | | * backend/ebook/e-card-simple.c (e_card_simple_get): return g_strdup("true"), not "true". svn path=/trunk/; revision=18056
* add QueryRefused, for when the backend refuses to perform a query. (partDan Winship2002-08-313-0/+4
| | | | | | | | | | | | | | * 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. svn path=/trunk/; revision=17934
* [ fixes #27923] up the version to 4_0 (4000).Chris Toshok2002-08-301-4/+32
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17932
* [ fixes #20347 ] hook up the backend_died signal. (backend_died): newChris Toshok2002-08-292-0/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17918
* use strcasecmp here, since all the other helpers use case insensitiveChris Toshok2002-08-292-2/+2
| | | | | | | | | | | | 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. svn path=/trunk/; revision=17917
* return NULL if the list is empty. (pas_backend_ldap_connect): always tryChris Toshok2002-08-291-17/+18
| | | | | | | | | | | 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. svn path=/trunk/; revision=17916
* spew the filter we're using for the search.Chris Toshok2002-08-291-0/+2
| | | | | | | | | 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. svn path=/trunk/; revision=17914
* [ fixes #20348 ] deprecate "categories" in favor of "category". evolutionChris Toshok2002-08-282-2/+90
| | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17885
* [ Fixes #14835 ] notify_complete with InvalidQuery if the parse fails.Chris Toshok2002-08-281-2/+2
| | | | | | | | | | 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. svn path=/trunk/; revision=17883
* [ Fixes (almost certainly) #24649, #25494, #27351, and other LDAP searchChris Toshok2002-08-271-74/+127
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17870
* take and pass the CallStatus to our listener.Chris Toshok2002-08-2011-28/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17814
* add "cache-completions" here, since file completion results are blanketChris Toshok2002-08-202-3/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17811
* Import into the default book not the local oneIain Holmes2002-08-162-1/+12
| | | | svn path=/trunk/; revision=17788
* new function to save a little typing. (find_book_view): same.Chris Toshok2002-08-161-96/+150
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17785
* [ fix 27333 ] "local" -> "do-initial-query".Chris Toshok2002-08-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17782
* If invoked from a non-contact folder, add the contact to the defaultDan Winship2002-08-137-81/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. svn path=/trunk/; revision=17764
* initialize summary->upgraded to quiet valgrind.Chris Toshok2002-08-091-0/+1
| | | | | | | | | 2002-08-08 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-summary.c (pas_backend_summary_init): initialize summary->upgraded to quiet valgrind. svn path=/trunk/; revision=17749
* Use "\r" rather than including literal CRs in the string, which confusesDan Winship2002-08-072-54/+28
| | | | | | | | | * 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. svn path=/trunk/; revision=17722
* [ roll in the following change from the 1.0 branch.] change the CALURI andChris Toshok2002-08-012-27/+41
| | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17657
* (activate_factories_for_uri): Don'tEttore Perazzoli2002-07-311-2/+0
| | | | | | double free protocol and query. svn path=/trunk/; revision=17653
* don't save empty strings. (pas_backend_summary_save): print out the errnoChris Toshok2002-07-281-2/+3
| | | | | | | | | | 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. svn path=/trunk/; revision=17623
* Split pas-backend-file and pas-backend-ldap out of libpas and build themDan Winship2002-07-231-11/+15
| | | | | | | | | | | * 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. svn path=/trunk/; revision=17528
* Install libversit.a so that people compiling against the addressbook canPeter Williams2002-07-182-22/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-07-09 Peter Williams <peterw@ximian.com> * libversit/Makefile.am (privlib_LIBRARIES): Install libversit.a so that people compiling against the addressbook can do so successfully. * Makefile.am: create our *Conf.sh files and dist them and install them. * configure.in: Define and subst some variables that the Conf.sh file need. 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> * cal-util/Makefile.am: Install libcal-util-static.la and fix the -all-static flag to make it install statically. * pcs/Makefile.am: Install libpcs.a and its headers. * pcs/cal-backend-util.h: Same sort of include namespacing fix, but for pcs. * pcs/cal.h: * pcs/query.h: * pcs/cal-factory.h: * pcs/cal-backend.h: * pcs/cal-backend-file.h: Same. 2002-07-17 Peter Williams <peterw@ximian.com> * calendar/cal-util/Makefile.am (GTKDOC_LIBS): Because we're using libtool as our LD, we can reference .la's and libtool will DTRT for us. * calendar/cal-client/Makefile.am (GTKDOC_LIBS): Same here. 2002-07-03 Peter Williams <peterw@ximian.com> * Makefile.am: Install libeutil, libeconduit, and libedb3util and their headers. 2002-07-08 Peter Williams <peterw@ximian.com> * Makefile.am: Reference the new libefilterbar.a. 2002-07-12 Peter Williams <peterw@ximian.com> * Makefile.am (INCLUDES): Add -I$(builddir)/libical/src/libical for the generated ical.h (some headers rely on this because they too get installed.) 2002-07-09 Peter Williams <peterw@ximian.com> * e-timezone-dialog/Makefile.am: Add -I$(top_builddir)/libical/src/libical; some headers that we rely on get installed, so they point to the ical.h that gets generated and installed; consequently we need to be able to find the generated ical.h * misc/Makefile.am: Install libemiscwidgets.a and its headers. However, break EFilterBar into a separate libefilterbar.a because we don't want the installed library to depend on libfilter. svn path=/trunk/; revision=17496
* free the full_name (as well as given_name. oops.)Chris Toshok2002-07-131-31/+34
| | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17447
* actually remove the items from the pointer array too, so an error whileChris Toshok2002-07-111-17/+47
| | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17416
* Oops, missed this one.Peter Williams2002-07-112-2/+3
| | | | | | | | | | | 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. svn path=/trunk/; revision=17412
* Add include lines to get ebook headers relative to <ebook/foo.h>, notPeter Williams2002-07-116-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-07-09 Peter Williams <peterw@ximian.com> * tools/Makefile.am (INCLUDES): Add include lines to get ebook headers relative to <ebook/foo.h>, not "foo.h". addressbook: 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 * 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. calendar: 2002-07-08 Peter Williams <peterw@ximian.com> * gui/Makefile.am (INCLUDES): Change the -I flags to get it to play nicely with the new Ebook header paradigm. * gui/dialogs/Makefile.am: Same. * gui/e-meeting-model.c: More of the same. * gui/dialogs/e-delegate-dialog.c: * gui/dialogs/e-meeting-model.c: * gui/dialogs/comp-editor-util.c: Fix include lines to get ebook headers. * pcs/Makefile.am: Same. composer: 2002-07-08 Peter Williams <peterw@ximian.com> * Makefile.am (INCLUDES): Fix cflags for ebook header namespacing. importers: 2002-07-08 Peter Williams <peterw@ximian.com> * Makefile.am: Fix cflags to get at ebook headers correctly. * pine-importer.c: Fix include lines to get ebook headers the "right" way. * evolution-gnomecard-importer.c: Same. mail: 2002-07-08 Peter Williams <peterw@ximian.com> * Makefile.am (INCLUDES): Add -I flags to get the ebook headers. svn path=/trunk/; revision=17411
* bleah, i hate this keyboard.Chris Toshok2002-07-101-1/+1
| | | | svn path=/trunk/; revision=17403
* add Book.getCompletionView.Chris Toshok2002-07-109-110/+398
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17402
* add pas-backend-summary.[ch].Chris Toshok2002-06-304-68/+1200
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17330
* use ldap_unbind_ext. (create_card_handler): don't leak the new vcard.Chris Toshok2002-06-161-6/+15
| | | | | | | | | | | 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. svn path=/trunk/; revision=17197
* up the max threshold to 3000 cards from 1000 cards.. seems to improveChris Toshok2002-06-161-4/+5
| | | | | | | | | | | | 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. svn path=/trunk/; revision=17196
* Made "" compare as not equal to "" for addresses. (use_common_book_cb):Christopher James Lahey2002-06-151-4/+6
| | | | | | | | | | | | 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. svn path=/trunk/; revision=17191
* [ fixes bug #17332 ] we shouldn't ever return NULL here. in error cases weChris Toshok2002-06-121-1/+1
| | | | | | | | | | | 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(""); svn path=/trunk/; revision=17173
* Made expand_uri a bit more robust and readable.Christopher James Lahey2002-06-111-18/+18
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=17159
* [ #24189 ] ifdef out the body of this because it only works with a singleChris Toshok2002-05-242-22/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16999
* make sure we map status -> string correctly (add missing strings).Chris Toshok2002-05-212-2/+5
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16958
* Removed an incorrect comment here.Christopher James Lahey2002-05-141-2/+1
| | | | | | | | 2002-05-13 Christopher James Lahey <clahey@ximian.com> * backend/idl/addressbook.idl: Removed an incorrect comment here. svn path=/trunk/; revision=16775
* finally remove the #if 0's and use the oaf query stuff to get backendsChris Toshok2002-05-041-2/+0
| | | | | | | | | | 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. svn path=/trunk/; revision=16681
* Changed this to set a subject when sending a contact. This makes theChristopher James Lahey2002-05-011-1/+58
| | | | | | | | | | 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. svn path=/trunk/; revision=16648
* oops, should have done a search to make sure I had gotten all of the libibexesJeffrey Stedfast2002-04-271-6/+0
| | | | svn path=/trunk/; revision=16614
* Don't link to libibex anymore.Jeffrey Stedfast2002-04-271-1/+0
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16612
* fill in source->ssl. (addressbook_source_dialog_set_source): set upChris Toshok2002-04-191-29/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16529
* fix memory leaks.Chris Toshok2002-04-191-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16524
* Append /addressbook.db to the end of the default URI if it starts withDan Winship2002-04-192-3/+10
| | | | | | | | | | | * 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. svn path=/trunk/; revision=16519
* Update for new-and-improved consistent default folder uri.Dan Winship2002-04-101-1/+1
| | | | | | | | | | | | | * 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. svn path=/trunk/; revision=16409
* Fix spelling of E_CARD_SIMPLE_PHONE_ID_TTYTDD andDan Winship2002-04-023-7/+7
| | | | | | | | | | | | * 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 svn path=/trunk/; revision=16321
* don't free req->vcard. it's freed in pas_book_free_request.Chris Toshok2002-03-281-19/+0
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16265
* make sure to call ldap_value_free (values);, and ldap_msgfree (resp).Chris Toshok2002-03-281-12/+23
| | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16262
* Update for libversit change: Use .a rather than .la now.Dan Winship2002-03-201-7/+7
| | | | | | | | | | | * backend/ebook/Makefile.am: Update for libversit change: Use .a rather than .la now. * printing/Makefile.am: Likewise * gui/component/Makefile.am: Likewise svn path=/trunk/; revision=16210
* add TLSNotAvailable to BookLister_CallStatus.Chris Toshok2002-03-104-16/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16005
* since I've gone ahead and made the file backend (by way ofChris Toshok2002-03-101-3/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=16004
* track union/struct change. (pas_book_queue_remove_card): same.Chris Toshok2002-03-084-713/+1097
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-03-07 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. svn path=/trunk/; revision=15987
* don't ref the view here, since it keeps the view alive until the search isChris Toshok2002-03-011-4/+0
| | | | | | | | | | | | | | | | 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.) svn path=/trunk/; revision=15877
* i2002-02-26 Chris Toshok <toshok@ximian.com>Chris Toshok2002-03-011-2/+1
| | | | | | | | * 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). svn path=/trunk/; revision=15872
* [fixes bug #20690] the data arg is not GList** anymore, it'sChris Toshok2002-03-011-52/+65
| | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15871
* [ Fixes bugs 20740, 16680, and god knows what else :) ] double theChris Toshok2002-02-232-43/+155
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15807
* track change to signature, and (for now) just change all the returnChris Toshok2002-02-217-17/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15779
* if the load_uri fails, notify the listener that the repository is offline.Chris Toshok2002-02-191-1/+17
| | | | | | | | | | | 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) svn path=/trunk/; revision=15758
* escape commas in the dn, since they're used by ldap to specify the node'sChris Toshok2002-02-191-7/+22
| | | | | | | | | | | 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. svn path=/trunk/; revision=15756
* New functions that take a file:// url ending in the directory name andChristopher James Lahey2002-02-144-38/+164
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15710
* New function to find out if a destination was one which was auto-maticallyJeffrey Stedfast2002-02-022-273/+304
| | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15550
* Made this preserve addressbook flags other than the first three.Christopher James Lahey2002-02-024-1638/+87
| | | | | | | | | | | | | | | | | 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". svn path=/trunk/; revision=15546
* compute the change db filename based on our contact db filename.Chris Toshok2002-01-311-6/+16
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=15529
* Revert my previous change as trow says this will break auto-completionJeffrey Stedfast2002-01-291-1/+1
| | | | | | | | | | 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. svn path=/trunk/; revision=15496
* Don't check for an @ in the email address. This is to fix bug #10960.Jeffrey Stedfast2002-01-261-1/+6
| | | | | | | | | 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. svn path=/trunk/; revision=15477
* [ fixes bug 16097 ] gui love for the new auth stuff.Chris Toshok2002-01-257-36/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15467
* Clean up some of the Makefiles so we dont' link every library multipleEttore Perazzoli2002-01-252-48/+30
| | | | | | times, causing big libtool 1.4 pain. svn path=/trunk/; revision=15461
* [ fixes bug # 16864 ] create and return a GString here, instead of writingChris Toshok2002-01-231-24/+25
| | | | | | | | | | | 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. svn path=/trunk/; revision=15427
* Set the number of cards to return to the value specified in the ldap uri,Christopher James Lahey2002-01-211-2/+36
| | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15415
* Made username match with no domain match be vague instead of partial.Christopher James Lahey2002-01-181-1/+1
| | | | | | | | | | 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. svn path=/trunk/; revision=15356
* ChangeLog change.Chris Lahey2002-01-111-0/+3
| | | | svn path=/trunk/; revision=15293
* Add a test for getting arbitrary fields.Joe Shaw2002-01-103-2/+44
| | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15275
* go slow and clear the map if the last uri and the current uri do not matchJP Rosevear2001-12-192-0/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=15178
* Used g_strdup_printf to dup a string. Doh! Changed to g_strdup. (BugJon Trowbridge2001-12-141-1/+1
| | | | | | | | | | 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) svn path=/trunk/; revision=15031
* move search_for_dn's contents here, and add an "existing_objectclasses"Chris Toshok2001-12-071-40/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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). svn path=/trunk/; revision=14909
* we need to be able to disable non-labels here as well. since we're usingChris Toshok2001-12-072-3/+19
| | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14908
* Make address comparisons case-insensitive. (Fixes 11776)Jon Trowbridge2001-12-042-6/+7
| | | | | | | | | | | | 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) svn path=/trunk/; revision=14856
* Clean ESelectNamesModel on focus-out. (Half of a fix for 15656)Jon Trowbridge2001-12-041-3/+5
| | | | | | | | | | | | 2001-12-03 Jon Trowbridge <trow@ximian.com> * 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) svn path=/trunk/; revision=14855
* check against LDAP_SUCCESS as the return value, not -1.Chris Toshok2001-11-151-7/+9
| | | | | | | | | | | 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. svn path=/trunk/; revision=14724
* [ Fixes Ximian bug #14843 ] don't crash if a subexpression wasn't filledChris Toshok2001-11-131-8/+11
| | | | | | | | | | | | 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. svn path=/trunk/; revision=14678
* [ Fixes Ximian bug #14687 ] backend/pas/pas-backend-file.cChris Toshok2001-11-103-16/+4
| | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14655
* [ Fixes Ximian bug #14646 ] new function. if the default_book failed toChris Toshok2001-11-101-0/+4
| | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14654
* Check for NULL dates before converting them to strings. Fixes Ximian bugChristopher James Lahey2001-11-031-10/+14
| | | | | | | | | | 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. svn path=/trunk/; revision=14579
* Require gal 0.15.99.8Joe Shaw2001-10-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-10-29 Joe Shaw <joe@ximian.com> * configure.in: Require gal 0.15.99.8 * addressbook/backend/ebook/e-card-simple.c, addressbook/gui/component/addressbook-storage.c, addressbook/gui/widgets/e-addressbook-view.c, calendar/gui/e-calendar-table.c, calendar/gui/e-itip-control.c, calendar/gui/e-meeting-model.c, calendar/gui/itip-utils.c, calendar/gui/print.c, calendar/gui/alarm-notify/alarm-notify-dialog.c, filter/rule-editor.c, mail/mail-config.c, mail/mail-folder-cache.c, mail/mail-format.c, mail/mail-local.c, mail/mail-ops.c, mail/mail-vfolder.c, shell/e-local-storage.c, shell/e-summary-storage.c: Change includes of e-util/e-unicode-i18n.h to gal/util/e-unicode-i18n.h svn path=/trunk/; revision=14427
* overload this function for modifying objectclasses too, so we can makeChris Toshok2001-10-301-5/+16
| | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14402
* add prototype for pas_book_factory_dump_active_backends.Chris Toshok2001-10-302-0/+25
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=14371
* Use the actual ECardName in the ECard instead of parsing the full_nameChristopher James Lahey2001-10-291-14/+7
| | | | | | | | | | 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. svn path=/trunk/; revision=14338
* New function to set the ECardName on this card and fix the file_as ifChristopher James Lahey2001-10-292-0/+13
| | | | | | | | | | 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. svn path=/trunk/; revision=14337
* Handle returning dates here. (e_card_simple_get_allow_newlines): NewChristopher James Lahey2001-10-292-1/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14335
* Expose this function. (e_card_date_to_string): ...and this one. FixesJon Trowbridge2001-10-282-4/+7
| | | | | | | | | | | 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. svn path=/trunk/; revision=14284
* [ bug #12979 ] new function. (anniversary_ber): new function.Chris Toshok2001-10-281-19/+161
| | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14277
* Don't leak stuff. (Bug #13709)Jon Trowbridge2001-10-281-10/+15
| | | | | | | | | 2001-10-27 Jon Trowbridge <trow@ximian.com> * backend/ebook/e-book.c (activate_factories_for_uri): Don't leak stuff. (Bug #13709) svn path=/trunk/; revision=14267
* Fix the address of the FSF in the licensing comments.Ettore Perazzoli2001-10-281-3/+4
| | | | svn path=/trunk/; revision=14243
* Set book_uri when cardification occurs.Christopher James Lahey2001-10-281-12/+25
| | | | | | | | | 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. svn path=/trunk/; revision=14230
* That should be a bonobo_object_unref, not a gtk_object_unref.Jon Trowbridge2001-10-281-2/+12
| | | | | | | | | | | | | | | 2001-10-27 Jon Trowbridge <trow@gnu.org> * 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. svn path=/trunk/; revision=14218
* Fixing the license text.Ettore Perazzoli2001-10-281-4/+3
| | | | svn path=/trunk/; revision=14214
* Fixing the license text.Ettore Perazzoli2001-10-286-6/+0
| | | | svn path=/trunk/; revision=14211
* Added paranoid reentrancy guards. (pas_book_queue_request): Changed ourJon Trowbridge2001-10-271-5/+17
| | | | | | | | | | | | 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. svn path=/trunk/; revision=14202
* Return on cancellation. (simple_query_sequence_complete_cb): Act if notJon Trowbridge2001-10-271-4/+16
| | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=14199
* Update the licensing information to require version 2 of the GPLEttore Perazzoli2001-10-276-12/+12
| | | | | | explicitly. svn path=/trunk/; revision=14188
* Fix command paths when we specify our pixmaps, so we don't get a lot ofJon Trowbridge2001-10-241-1/+5
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=13973
* We shouldn't leak the info returned by oaf_query.Jon Trowbridge2001-10-211-0/+2
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13834
* Filter out empty destinations. (also Bug #13036)Jon Trowbridge2001-10-211-5/+16
| | | | | | | | | | | | | | | | | | | | | 2001-10-20 Jon Trowbridge <trow@ximian.com> * 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) svn path=/trunk/; revision=13826
* Made this take a const GList.Christopher James Lahey2001-10-192-4/+4
| | | | | | | | | 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. svn path=/trunk/; revision=13773
* Lag our cardification on focus-out. This seems to help with the unintendedJon Trowbridge2001-10-191-4/+0
| | | | | | | | | | | | | | 2001-10-18 Jon Trowbridge <trow@ximian.com> * 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. svn path=/trunk/; revision=13757
* Did a bit of clean up here. Might fix some crashes, specifically XimianChristopher James Lahey2001-10-171-9/+11
| | | | | | | | | | | | 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. svn path=/trunk/; revision=13721
* add upgrade from 0.1 to 0.2, where we make sure id dbt's match vcard id's,Chris Toshok2001-10-171-29/+92
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13720
* Check for no extensionIain Holmes2001-10-171-0/+4
| | | | svn path=/trunk/; revision=13710
* If card->id is NULL, return an empty string. (e_card_set_id): Don't allowJon Trowbridge2001-10-171-3/+3
| | | | | | | | | | | | | 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) svn path=/trunk/; revision=13705
* unref the book after we pass it off to evolution-addressbook.Chris Toshok2001-10-161-0/+18
| | | | | | | | | 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. svn path=/trunk/; revision=13691
* unref op->view. (pas_backend_ldap_process_create_card): ref op->view.Chris Toshok2001-10-161-3/+27
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13690
* make sure to unref the book_view here so we don't leak them.Chris Toshok2001-10-161-1/+4
| | | | | | | | | | 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. svn path=/trunk/; revision=13680
* Properly decide whether a property needs to be marked as QP by searchingChristopher James Lahey2001-10-151-9/+100
| | | | | | | | | | 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. svn path=/trunk/; revision=13675
* commit the importer originally from Michael M. Morrison, with fixups byChris Toshok2001-10-136-4/+676
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13627
* Added a boolean type here.Christopher James Lahey2001-10-132-0/+30
| | | | | | | | | 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. svn path=/trunk/; revision=13624
* On second thought, that should be a less-than-or-equal... :)Jon Trowbridge2001-10-121-1/+1
| | | | svn path=/trunk/; revision=13612
* Added. Heuristic for whether or not we want to revert to an earlierJon Trowbridge2001-10-121-6/+38
| | | | | | | | | | | | 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) svn path=/trunk/; revision=13610
* Changed these to use the new ref and unref functions for ECard auxillaryChristopher James Lahey2001-10-125-132/+190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13604
* Check that view->view != NULL. (save_contact_cb): Check that view->view !=Jon Trowbridge2001-10-112-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13578
* for some reason, matching on protocol is causing problems for me.Chris Toshok2001-10-051-2/+5
| | | | | | | | | | 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. svn path=/trunk/; revision=13415
* Strip out commas before forming our query. (match_name): UseJon Trowbridge2001-10-043-45/+132
| | | | | | | | | | | | | | | | | | | | | | 2001-10-02 Jon Trowbridge <trow@gnu.org> * 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. svn path=/trunk/; revision=13384
* remove most of the oaf stuff from here. we do it in load_uri, where we'llChris Toshok2001-10-031-35/+162
| | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13358
* if there is a db error, assume deletion (pas_backend_file_changes): writeJP Rosevear2001-10-021-7/+2
| | | | | | | | | | | 001-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 svn path=/trunk/; revision=13267
* g_strdup (pas_backend_file_changes): ditto, make sure to free all data andJP Rosevear2001-09-291-24/+39
| | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=13232
* use priv->iid instead of the hardcoded string here.Chris Toshok2001-09-272-9/+23
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13180
* Use camel_address_format, not camel_address_encode.Jon Trowbridge2001-09-271-1/+1
| | | | | | | | | 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. svn path=/trunk/; revision=13173
* Properly handle names when the individual elements (given, addition,Jon Trowbridge2001-09-272-30/+70
| | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13158
* set the last_use and use_score fields of the card to known values so theJP Rosevear2001-09-271-2/+12
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13153
* add evolutionperson.schema (EXTRA_DIST): add LDAP_SCHEMA to the dist (butChris Toshok2001-09-251-1/+4
| | | | | | | | | | 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). svn path=/trunk/; revision=13107
* add getters for the additional name fields. (field_data): move FAMILY_NAMEChris Toshok2001-09-232-2/+32
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=13082
* I'm slowly losing my mind.Jon Trowbridge2001-09-201-1/+0
| | | | | | OK, maybe it isn't such a slow process after all. svn path=/trunk/; revision=13006
* Yikes... fixing accidental breakage.Jon Trowbridge2001-09-201-1/+1
| | | | svn path=/trunk/; revision=13005
* Use the default e-mail address if we have nothing else to go on.Jon Trowbridge2001-09-206-167/+108
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=13003
* Freeing name[i] instead of namev[i] is a bad idea. (bug #10270)Jon Trowbridge2001-09-201-1/+1
| | | | | | | | | 2001-09-19 Jon Trowbridge <trow@ximian.com> * 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) svn path=/trunk/; revision=12980
* add caluri field dataJP Rosevear2001-09-194-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=12945
* create a sexp and check if the cards match before adding them to the listJP Rosevear2001-09-191-7/+21
| | | | | | | | | | | 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 svn path=/trunk/; revision=12940
* use g_strfreev. (match_name): s/g_free/g_strfreev. (match_file_as):Larry Ewing2001-09-182-6/+6
| | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12936
* We want to assume that a destination that comes from a card isJon Trowbridge2001-09-181-1/+1
| | | | | | | | | | | | 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) svn path=/trunk/; revision=12930
* Do the right thing if the card we are trying to send to has no validJon Trowbridge2001-09-181-53/+56
| | | | | | | | | | 2001-09-17 Jon Trowbridge <trow@ximian.com> * 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) svn path=/trunk/; revision=12927
* fix syntax errors (which are broken, imo...)Chris Toshok2001-09-171-2/+2
| | | | | | | | | 2001-09-16 Chris Toshok <toshok@ximian.com> * backend/pas/evolutionperson.schema: fix syntax errors (which are broken, imo...) svn path=/trunk/; revision=12866
* No loose name matches on family names. (#8802)Jon Trowbridge2001-09-151-1/+2
| | | | | | | | | 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) svn path=/trunk/; revision=12857
* Make "stop" do nothing but set the stopped flag, as inJon Trowbridge2001-09-157-208/+184
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-15 Jon Trowbridge <trow@ximian.com> * 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. svn path=/trunk/; revision=12851
* [Automake 1.5 fixes pointed out by Richard BoultonEttore Perazzoli2001-09-152-5/+5
| | | | | | | | | | | | <richard@tartarus.org>, as per #9258.] * backend/pas/Makefile.am: Rename `LDAP_BACKEND_SOURCES' to `LDAP_BACKEND_FILES'. * backend/ebook/Makefile.am: Set CLEANFILES directly instead of using `+='. svn path=/trunk/; revision=12839
* use ldap_init. ldap_open is deprecated in openldap 2.x.Chris Toshok2001-09-141-1/+1
| | | | | | | | | 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. svn path=/trunk/; revision=12820
* Fix vcard importingIain Holmes2001-09-131-1/+3
| | | | svn path=/trunk/; revision=12784
* free the values that are being leaked here.Larry Ewing2001-09-131-4/+15
| | | | | | | | | 2001-09-12 Larry Ewing <lewing@ximian.com> * backend/ebook/e-destination.c: free the values that are being leaked here. svn path=/trunk/; revision=12783
* See e_book_listener_check_queue below.Jon Trowbridge2001-09-094-91/+248
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-09-08 Jon Trowbridge <trow@ximian.com> * 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. svn path=/trunk/; revision=12709
* add -DEVOLUTION_IMAGESDIR.Chris Toshok2001-09-072-16/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12663
* Check if the file is a VCard before importingIain Holmes2001-09-051-0/+4
| | | | svn path=/trunk/; revision=12610
* I18n fixes (mainly making buttons on the right side less Anglocentric :-)Chyla Zbigniew2001-09-031-47/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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. svn path=/trunk/; revision=12563
* Use e_card_get_vcard_assume_utf8 instead of e_card_get_vcard here sinceChristopher James Lahey2001-09-0213-299/+423
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12558
* Use e_select_names_model_merge to combine the selected names with anyJon Trowbridge2001-08-303-2/+41
| | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12526
* This function can be re-entrant during the signal emission; Added extraJon Trowbridge2001-08-301-4/+14
| | | | | | | | | | | | 2001-08-29 Jon Trowbridge <trow@ximian.com> * 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) svn path=/trunk/; revision=12523
* Added ref/unref pair to make sure that our listener doesn't get finalizedJon Trowbridge2001-08-281-2/+14
| | | | | | | | | | | 2001-08-27 Jon Trowbridge <trow@ximian.com> * 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) svn path=/trunk/; revision=12493
* Removed some debugging spew that I left in by mistake.Jon Trowbridge2001-08-281-2/+0
| | | | | | | | | | | | 2001-08-27 Jon Trowbridge <trow@ximian.com> * 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. svn path=/trunk/; revision=12492
* Do the right thing if the card we are trying to send to is a contact list.Jon Trowbridge2001-08-281-23/+86
| | | | | | | | | 2001-08-27 Jon Trowbridge <trow@ximian.com> * 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) svn path=/trunk/; revision=12491
* Put a freeze/thaw around our the set of operations that changes theJon Trowbridge2001-08-251-14/+18
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12466
* In the GUI, the toggle is labelled "hide addresses", not "show addresses"Jon Trowbridge2001-08-232-2/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Jon Trowbridge <trow@ximian.com> * e-msg-composer-hdrs.c (set_recipients_from_destv): Added. Try to properly handle contact lists in which the addresses of the list members should be hidden. (e_msg_composer_hdrs_to_message): Changed to extract the destination data from the entries and pass it along to set_recipients_from_destv. 2001-08-22 Jon Trowbridge <trow@ximian.com> * mail-callbacks.c (ask_confirm_for_only_bcc): Provide alternative text for this dialog for the case when a message has only Bcc recipients because of a hidden contact list's addresses being moved from To/Cc to Bcc. (composer_get_message): Try to detect when our message has only Bcc recipients because of moving addresses around due to a hidden contact list, and show the dialog with the revised wording in this case. svn path=/trunk/; revision=12414
* make sure we don't get into a situation where priv->email == NULL.Chris Toshok2001-08-231-12/+20
| | | | | | | | | 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. svn path=/trunk/; revision=12393
* Wrap our addressbook table adapter in an ETableWithout, so that we canJon Trowbridge2001-08-211-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12334
* use DB_NOTFOUND constJP Rosevear2001-08-211-2/+2
| | | | | | | | | 2001-08-20 JP Rosevear <jpr@ximian.com> * backend/pas/pas-backend-file.c (pas_backend_file_changes_foreach_key): use DB_NOTFOUND const svn path=/trunk/; revision=12311
* null out card_sexp so that we don't crash when copyingJP Rosevear2001-08-201-1/+2
| | | | | | | | | | 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 svn path=/trunk/; revision=12290
* unref our card_sexp. (create_card_handler): make sure to set the id of theChris Toshok2001-08-171-34/+120
| | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=12151
* use card_sexp. (pas_backend_file_book_view_free): same.Chris Toshok2001-08-174-324/+449
| | | | | | | | | | | | | | | | 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]. svn path=/trunk/; revision=12150
* Added a closing paren.Jeffrey Stedfast2001-08-171-0/+1
| | | | | | | | 2001-08-16 Jeffrey Stedfast <fejj@ximian.com> * backend/pas/evolutionperson.schema: Added a closing paren. svn path=/trunk/; revision=12142
* implement using search_for_dn.Chris Toshok2001-08-151-4/+13
| | | | | | | | | | 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. svn path=/trunk/; revision=12043
* Fix up to match the pas_book_new/get_vcard changes.Dan Winship2001-08-141-37/+22
| | | | | | | * backend/pas/pas-backend-ldap.c: Fix up to match the pas_book_new/get_vcard changes. svn path=/trunk/; revision=12009
* Oops, forgot to write this function.Christopher James Lahey2001-08-141-0/+23
| | | | | | | | | 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. svn path=/trunk/; revision=11999
* Call e_card_set_book here.Christopher James Lahey2001-08-146-172/+177
| | | | | | | | | | | | | | | | | | | 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. * backend/ebook/e-destination.c, backend/ebook/e-destination.h: Change this to use ECard's split uids and uris. svn path=/trunk/; revision=11991
* don't g_strdup the stuff we're passing into e_list_append, since it doesChris Toshok2001-08-141-8/+8
| | | | | | | | | | | | | | | | 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). svn path=/trunk/; revision=11989
* Changed get_card to be asyncronous.Christopher James Lahey2001-08-1410-239/+207
| | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11984
* Hook up some magic to (basically) cardify an entry on focus-out. (What weJon Trowbridge2001-08-106-26/+441
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11837
* [ Fixes ximian bugs #5080, #6021, #6704, #6705 ]Chris Toshok2001-08-101-8/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11834
* escape *, \, (, and ), as per rfc2254. (func_contains): escape the string.Chris Toshok2001-08-081-4/+47
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=11789
* use g_strcasecmp since ldap attribute names are not case sensitive.Chris Toshok2001-08-081-1/+1
| | | | | | | | | 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. svn path=/trunk/; revision=11734
* new EBookOp destructor (e_book_unqueue_op): use e_book_op_freeRadek Doulik2001-08-071-16/+22
| | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=11696
* set op->listener to NULL to catch possible use of freed opRadek Doulik2001-08-052-1/+8
| | | | | | | | | | | | | | | | | 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 svn path=/trunk/; revision=11692
* Made it so that if there's one less match than possible compares areChristopher James Lahey2001-08-051-1/+1
| | | | | | | | | | 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. svn path=/trunk/; revision=11685
* Changed the criteria of whether the first part of each iteration matchedChristopher James Lahey2001-08-041-29/+25
| | | | | | | | | | | 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. svn path=/trunk/; revision=11641
* Made the list of E_CARD_PHONE types in phone_correspondences more completeChristopher James Lahey2001-08-033-51/+86
| | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11612
* Add camel dependency.Jon Trowbridge2001-08-033-129/+102
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 Jon Trowbridge <trow@ximian.com> * Makefile.am: Added camel dependency (now needed by ebook). 2001-08-02 Jon Trowbridge <trow@ximian.com> * gui/Makefile.am: Added camel dependency (now needed by ebook). 2001-08-02 Jon Trowbridge <trow@ximian.com> * Makefile.am: Added camel dependency (now needed by ebook). svn path=/trunk/; revision=11602
* Removed thrash checking code here since thrashing shouldn't happen nowChristopher James Lahey2001-08-012-83/+78
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11539
* Added #include <e-util/e-path.h>.Christopher James Lahey2001-07-311-0/+2
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11496
* Properly handle the case where our "cleaned" completion is the emptyJon Trowbridge2001-07-311-19/+81
| | | | | | | | | | | | | | | | | 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) svn path=/trunk/; revision=11487
* Removed some debugging chatter.Jon Trowbridge2001-07-261-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-07-26 Jon Trowbridge <trow@ximian.com> * 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-26 Jon Trowbridge <trow@ximian.com> * e-msg-composer-hdrs.c (set_recipients): Get "destinations", rather than "text" from the entry_widget. (The getters/setters in the control have been made more symmetric.) svn path=/trunk/; revision=11422
* change the way x-evolution-any-field is converted to an ldap query. itChris Toshok2001-07-261-14/+4
| | | | | | | | | | | | 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). svn path=/trunk/; revision=11407
* Properly dup the results of e_destination_get_email.Jon Trowbridge2001-07-252-3/+3
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11395
* Added fallbacks for the name in the case of an e-card, to avoid theJon Trowbridge2001-07-251-1/+13
| | | | | | | | | | 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. svn path=/trunk/; revision=11358
* Don't stop the idle_queue and unref from here, since this might be calledDan Winship2001-07-251-11/+0
| | | | | | | | | | | | | | | | | * 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. svn path=/trunk/; revision=11346
* Re-fix for my 07-18 not-quite-fix.Dan Winship2001-07-244-8/+63
| | | | | | | | | | | | | | | | | | | | | * 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. svn path=/trunk/; revision=11306
* Flush the listener's queue before unreffing it to ensure that it doesn'tDan Winship2001-07-193-5/+8
| | | | | | | | | | | | | | | | * 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. svn path=/trunk/; revision=11216
* prune the list of cards that match our query using the avoid list here,Chris Toshok2001-07-191-17/+20
| | | | | | | | | | | | | 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. svn path=/trunk/; revision=11211
* [ Fixes bugs #4611 - crash searching in the name field at Bigfoot for "\"Chris Toshok2001-07-181-6/+12
| | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11192
* Hold a reference to our listener while the idle function is active.Jon Trowbridge2001-07-183-10/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11165
* Removed old, broken code and annoying g_messages.Jon Trowbridge2001-07-182-50/+9
| | | | | | | | | | | | | | | | | 2001-07-17 Jon Trowbridge <trow@ximian.com> * 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) svn path=/trunk/; revision=11164
* Use other folders to import intoIain Holmes2001-07-171-2/+9
| | | | svn path=/trunk/; revision=11135
* Commented out some unused variables and labels. (e_destination_importv):Christopher James Lahey2001-07-151-0/+7
| | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=11112
* add ldap cflagsJP Rosevear2001-07-131-0/+1
| | | | | | | | 2001-07-12 JP Rosevear <jpr@ximian.com> * backend/pas/Makefile.am: add ldap cflags svn path=/trunk/; revision=11076
* Oops. I introduced my own bug, accidently set `email' to a g_free'dJeffrey Stedfast2001-07-131-1/+1
| | | | | | | | | | 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! svn path=/trunk/; revision=11073
* Optimized the same way I optimized g_strsplit. If you use a GPtrArrayJeffrey Stedfast2001-07-131-94/+63
| | | | | | | | | | | | | | 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! svn path=/trunk/; revision=11069
* Check the file even if the extension is NULLIain Holmes2001-07-131-6/+3
| | | | svn path=/trunk/; revision=11066
* Crash fix because strcmp() hates NULL arguments. Bug #3777.Jason Leach2001-07-121-1/+9
| | | | | | | | | 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. svn path=/trunk/; revision=11034
* assign OID's to the schema entries, and add schema support for contactChris Toshok2001-07-111-24/+49
| | | | | | | | | 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. svn path=/trunk/; revision=10979
* Set bf->priv->file_db before calling do_create.Christopher James Lahey2001-07-101-1/+4
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10949
* Check that str isn't the empty string before doing an insert.Jon Trowbridge2001-07-091-11/+41
| | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10901
* Detect the embedded EDestination XML, and convert it to a nice-lookingJon Trowbridge2001-07-079-374/+774
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10882
* Fix a memory leak here.Christopher James Lahey2001-07-051-3/+9
| | | | | | | | | 2001-07-05 Christopher James Lahey <clahey@ximian.com> * backend/pas/pas-backend-file.c (compare_category): Fix a memory leak here. svn path=/trunk/; revision=10803
* Set info->avoid = NULL. This shouldn't make a difference, but it can'tChristopher James Lahey2001-07-051-0/+1
| | | | | | | | | | 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. svn path=/trunk/; revision=10802
* added $(BONOBO_CONF_LIBS) to get it to compile.Damon Chaplin2001-07-031-0/+1
| | | | | | | | | 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. svn path=/trunk/; revision=10734
* use ECARD_UID_LINK_PREFIX.Chris Toshok2001-07-023-0/+52
| | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10667
* Added related_contacts field.Christopher James Lahey2001-07-022-6/+30
| | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10666
* Fall back to use the name field if all else fails (which can happen withJon Trowbridge2001-07-021-0/+6
| | | | | | | | | | 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). svn path=/trunk/; revision=10665
* Fix for the "recipient not specified" bug --- we were not correctlyJon Trowbridge2001-07-021-1/+7
| | | | | | | | | | 2001-07-01 Jon Trowbridge <trow@ximian.com> * 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. svn path=/trunk/; revision=10664
* Check args. Somewhere in the code (somewhere in the minicard stuff) thisJon Trowbridge2001-07-011-0/+2
| | | | | | | | | | | 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. svn path=/trunk/; revision=10644
* I was accidentally comparing characters and strings here, and didn't seeJon Trowbridge2001-07-011-13/+21
| | | | | | | | | | | | 2001-06-30 Jon Trowbridge <trow@ximian.com> * 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). svn path=/trunk/; revision=10635
* Make the standard for considering two cards to be match stricter.Jon Trowbridge2001-06-305-46/+361
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10626
* sJose Maria Celorio2001-06-291-0/+1
| | | | svn path=/trunk/; revision=10593
* add support for X-EVOLUTION-LIST and X-EVOLUTION-LIST-SHOW-ADDRESSES.Chris Toshok2001-06-292-0/+81
| | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10585
* Added category searching to the file backend.Christopher James Lahey2001-06-271-0/+25
| | | | | | | | | | | | 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. svn path=/trunk/; revision=10520
* Add a huge steaming pile of code to handle the case of single-addressJon Trowbridge2001-06-251-4/+7
| | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10469
* Update the copyrights, replacing Helix Code with Ximian andEttore Perazzoli2001-06-2333-62/+62
| | | | | | helixcode.com with ximian.com all over the place. svn path=/trunk/; revision=10440
* Renamed. (The old name, edit_contact_info_have_book_cb was a hold-overJon Trowbridge2001-06-221-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10374
* fix a refcounting memleak.Chris Toshok2001-06-211-3/+6
| | | | | | | | | | 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. svn path=/trunk/; revision=10351
* fix memory leak.Chris Toshok2001-06-211-1/+1
| | | | | | | | | | 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. svn path=/trunk/; revision=10350
* Changed attachData to accept a sequence of chars rather than a string.Dave Camp2001-06-211-3/+7
| | | | | | | | | | | | | | | | | | | | | | | | | 2001-06-20 Dave Camp <dave@ximian.com> * Evolution-Composer.idl: Changed attachData to accept a sequence of chars rather than a string. * evolution-composer.c (impl_Composer_attach_data): Changed the 'data' argument to a GNOME_Evolution_Composer_AttachmentData, and pass data->_buffer and data->_length to camel_mime_part_set_content(). 2001-06-20 Dave Camp <dave@ximian.com> * gui/itip-utils.c (itip_send_comp): Changed attach_data to be a GNOME_Evolution_Composer_AttachmentData rather than a CORBA_char*. 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*. svn path=/trunk/; revision=10343
* rename ce_book_found_fields to this, remove the fetching of fields (theChris Toshok2001-06-204-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10317
* implement this properly, using base and (objectclass=*).Chris Toshok2001-06-151-19/+9
| | | | | | | | | 2001-06-15 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-ldap.c (search_for_dn): implement this properly, using base and (objectclass=*). svn path=/trunk/; revision=10249
* Made e_card_simple_get_id return const char *.Christopher James Lahey2001-06-114-4/+4
| | | | | | | | | | | | | | | | | | | 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 *. svn path=/trunk/; revision=10183
* Made this handle the "id" property in searches.Christopher James Lahey2001-06-112-4/+20
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10182
* Rolled back the change 2 ago, dated 06/11/2001 01:51 in CVS, involvingChristopher James Lahey2001-06-113-101/+62
| | | | | | | | | | | 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. svn path=/trunk/; revision=10181
* Made it so that all of these functions queue their ops before callingChristopher James Lahey2001-06-111-16/+58
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10180
* Added this function to put a response back into the queue.Christopher James Lahey2001-06-113-62/+101
| | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10179
* Added this function to let you do slightly more complicated searches.Christopher James Lahey2001-06-112-5/+59
| | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10178
* Null terminate the strv here. (e_card_locate_match): ref here instead ofChristopher James Lahey2001-06-092-26/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10170
* Copy dates as they come in.Christopher James Lahey2001-06-062-28/+48
| | | | | | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=10125
* Added. Code for testing if two ECards appear to pertain to the sameJon Trowbridge2001-06-053-0/+513
| | | | | | | | | | | 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. svn path=/trunk/; revision=10114
* Fix linking order for `$(DB3_LDADD)'s so that we avoid pullingEttore Perazzoli2001-06-031-3/+3
| | | | | | | functions from a different Berkeley DB library when we really don't mean to. svn path=/trunk/; revision=10105
* Add a bunch of missing `$(DB3_LDADD)'s.Ettore Perazzoli2001-06-021-8/+9
| | | | svn path=/trunk/; revision=10085
* Included information about db3.Christopher James Lahey2001-06-012-93/+166
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-05-31 Christopher James Lahey <clahey@ximian.com> * README: Included information about db3. * acconfig.h: Added HAVE_DB_H and HAVE_DB3_DB_H. * configure.in: Added various checks for db3 libraries and includes. Of note are the new configure options --with-db3-includes=PREFIX and --with-db3-libs=PREFIX to specify the location for your db3 library. From addressbook/ChangeLog: 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. From e-util/ChangeLog: 2001-05-31 Christopher James Lahey <clahey@ximian.com> * Makefile.am (INCLUDES): Added db3 cflags. * e-dbhash.c: Made this use db3. * e-db3-utils.c, e-db3-utils.h: New files with some helper functions. From wombat/ChangeLog: 2001-05-31 Christopher James Lahey <clahey@ximian.com> * Makefile.am (wombat_LDADD): Added db3 libs. svn path=/trunk/; revision=10077
* fix strings such that ones that happening at the beginning or during anChris Toshok2001-05-232-8/+15
| | | | | | | | | | | | | | | | | | | | 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. svn path=/trunk/; revision=9941
* ref the listener for the duration of this function, since emittingDan Winship2001-05-231-0/+6
| | | | | | | | | | | * 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. svn path=/trunk/; revision=9935
* Return the serialized EDestinations (rather than just a string w/ e-mailJon Trowbridge2001-05-184-16/+409
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2001-05-18 Jon Trowbridge <trow@ximian.com> * 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-18 Jon Trowbridge <trow@ximian.com> * Makefile.am (evolution_mail_LDADD): Added libebook.la (which is now required by the composer.) 2001-05-18 Jon Trowbridge <trow@ximian.com> * e-msg-composer-hdrs.c (set_recipients): Properly unserialize the string returned by the "text" property of the bonobo control, convert it into EDestinations, and use them to get the e-mail addresses of our recipients. 22001-05-18 Jon Trowbridge <trow@ximian.com> * Makefile.am (SUBDIRS): Changed build order. Now addressbook gets built before mail. svn path=/trunk/; revision=9878