aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend
Commit message (Collapse)AuthorAgeFilesLines
* reflect prior column additionJP Rosevear2003-03-055-2/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-03-04 JP Rosevear <jpr@ximian.com> * gui/component/select-names/e-select-names.etspec: reflect prior column addition * gui/component/select-names/e-select-names-bonobo.c (entry_get_property_fn): set the arg properly * gui/component/select-names/Evolution-Addressbook-SelectNames.idl: add Icscalendar to field list * backend/pas/pas-backend-ldap.c: add icscalendar to prop list * backend/ebook/e-card.h: add icscalendar data member * backend/ebook/e-card.c: add icscalendar to list and its parse routine (e_card_get_vobject): add icscalendar prop value (parse_icscalendar): parse routine (e_card_class_init): add icscalendar arg (e_card_destroy): destroy icscalendar member (e_card_set_arg): set icscalendar (e_card_init): init icscalendar (e_card_get_arg): return icscalendar * backend/ebook/e-card-simple.c (field_data): add icscalendar * backend/ebook/e-card-simple.h: ditto svn path=/trunk/; revision=20153
* Remove these from here; talking to the mailer doesn't really belong at theDan Winship2003-03-014-299/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | * backend/ebook/e-card.c (e_card_list_send, e_card_send): Remove these from here; talking to the mailer doesn't really belong at the libebook level anyway. * backend/ebook/Makefile.am: Remove Evolution-Composer CORBA stuff, which fixes some linking problems on OS X. * gui/widgets/e-addressbook-util.c (e_addressbook_send_card_list, e_addressbook_send_card): Move from e-card.c and rename. * gui/widgets/Makefile.am: move Evolution-Composer CORBA stuff here * gui/widgets/e-addressbook-view.c (send_as, send_to, e_addressbook_view_send, e_addressbook_view_send_to): Update for new function names. * gui/contact-list-editor/e-contact-list-editor.c (file_send_as_cb, file_send_to_cb): Likewise * gui/contact-editor/e-contact-editor.c (file_send_as_cb, file_send_to_cb): Likewise svn path=/trunk/; revision=20103
* Fix for server files from Antonio XuRodney Dawes2003-02-281-1/+1
| | | | | | | | 2003-02-27 Rodney Dawes <dobey@ximian.com> * backend/ebook/Makefile.am: Fix for server files from Antonio Xu svn path=/trunk/; revision=20087
* if we fail to activate factories for a given protocol, return.Chris Toshok2003-02-271-0/+1
| | | | | | | | | | | | 2003-02-26 Chris Toshok <toshok@ximian.com> * backend/ebook/e-book.c (e_book_load_uri): if we fail to activate factories for a given protocol, return. * gui/component/ldap-config.glade: remove the two unused custom widgets to cut down on gtk warning spam. svn path=/trunk/; revision=20080
* Make libversit a shared library, update stuff for that, and clean upDan Winship2003-02-221-35/+12
| | | | | | some LDADDs in the process svn path=/trunk/; revision=19994
* add .server.in filesDan Winship2003-02-201-0/+2
| | | | svn path=/trunk/; revision=19944
* move the bulk of the non-summary searching stuff here. we aggregate up toChris Toshok2003-02-171-61/+111
| | | | | | | | | | | | | | | 2003-02-16 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-file.c (pas_backend_file_search_timeout): move the bulk of the non-summary searching stuff here. we aggregate up to our threshold, then send them to the front end and register a timeout to do another batch. This keeps us from totally spamming the UI, making things a bit more responsive. (pas_backend_file_search): set up the closure and call the timeout in an idle func. svn path=/trunk/; revision=19920
* Install load-pine-addressbook and load-gnomecard-addressbook intoEttore Perazzoli2003-02-113-9/+17
| | | | | | | | | | | | | | | | | | | | | * backend/ebook/Makefile.am: Install load-pine-addressbook and load-gnomecard-addressbook into ${privdatadir}/tools. Install evolution-vcard-importer and evolution-ldif-importer into ${privlibexecdir}. * backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.server.in: Removed. * backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.server.in: Removed. * backend/ebook/GNOME_Evolution_Addressbook_VCard_Importer.server.in.in: New. Specify an absolute path for the executable, using @LIBEXECDIR@. * backend/ebook/GNOME_Evolution_Addressbook_LDIF_Importer.server.in.in: Likewise. svn path=/trunk/; revision=19870
* gone. (match_initials): gone. (book_query_sexp): remove the primaryChris Toshok2003-02-103-5/+8
| | | | | | | | | | | | | | | | | | | | | | | 2003-02-09 Chris Toshok <toshok@ximian.com> * gui/component/select-names/e-select-names-completion.c (sexp_initials): gone. (match_initials): gone. (book_query_sexp): remove the primary handling. (book_query_score): same. * backend/ebook/e-card.c (e_card_set_property): g_value_get_pointer => g_value_get_object for "category_list". * backend/ebook/e-book.c (struct _EBookPrivate): add a comment. * backend/pas/pas-backend-ldap.c (func_beginswith): performance at the cost of a tiny bit of correctness. If the ldap server doesn't support evolutionPerson don't query on fileAs, use sn (since that's effectively what gets used in the display when fileAs isn't supported.) svn path=/trunk/; revision=19863
* [ huge change, all for 1 little performance problem :) fixes #18207 ] useChris Toshok2003-02-0812-89/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-08 Chris Toshok <toshok@ximian.com> [ huge change, all for 1 little performance problem :) fixes #18207 ] * gui/widgets/e-addressbook-model.c (get_view): use e_book_check_static_capability here to make things a little prettier. (remove_card): complain about my life, and add code to use one "model_changed" signal if we get back a list of cards instead of multiple "card_removed" signals. * gui/widgets/e-addressbook-model.h: little clean up. * gui/widgets/e-addressbook-view.c (delete): write a bulk-remove case for this. if the backend supports it, send all the ids at once. otherwise loop over the ids. (e_addressbook_view_delete_selection): fake a CardAndBook structure and call delete, instead of duplicating the code in 2 places. * gui/component/addressbook.c (delete_contact_cb): don't call e_contact_editor_confirm_delete here, it's handled by the EAddressbookView. * backend/pas/pas-card-cursor.c (pas_card_cursor_construct): fix a compiler warning about a stupid crash. * backend/pas/pas-book.h (PASOperation): RemoveCard -> RemoveCards. (PASRemoveCardsReques): char *id -> GList *ids. (PASRequest): PASRemoveCardRequest -> PASRemoveCardsRequest. * backend/pas/pas-book.c (pas_book_queue_remove_cards): build up a GList from the id sequence. (pas_book_respond_remove): notifyCardRemoved -> notifyCardsRemoved. (impl_GNOME_Evolution_Addressbook_Book_removeCards): rename. (pas_book_free_request): free the idlist for RemoveCards. (pas_book_class_init): removeCard -> removeCards. * backend/pas/pas-book-view.h: change prototype for pas_book_view_notify_remove, and add prototype for pas_book_view_notify_remove_1. * backend/pas/pas-book-view.c (pas_book_view_notify_remove_1): build up a list and call pas_book_view_notify_remove. (pas_book_view_notify_remove): build up the corba id sequence and call BookViewListener::notifyCardsRemoved. * backend/pas/pas-backend.h: remove_card -> remove_cards. * backend/pas/pas-backend.c (pas_backend_remove_cards): rename from _remove_card. (process_client_requests): RemoveCard -> RemoveCards and _remove_card -> _remove_cards. * backend/pas/pas-backend-ldap.c (check_schema_support): g_strcasecmp -> g_ascii_strcasecmp. (remove_card_handler): _remove => _remove_1. (modify_card_modify_handler): same. (pas_backend_ldap_process_remove_cards): rename from _remove_card. (pas_backend_ldap_class_init): _remove_card -> _remove_cards. * backend/pas/pas-backend-file.c (pas_backend_file_class_init): remove_card -> remove_cards. (pas_backend_file_get_static_capabilities): add "bulk-removes". (pas_backend_file_process_remove_cards): rewrite this function largely, so that it handles lists of ids. first we loop through and for every successful deletion we build a list of deleted ECards. Then for each view we build a list (a subset of the deleted ECard list) and pass back that list to the view. (pas_backend_file_process_modify_card): use _remove_1 instead of _remove. (ecard_matches_search): new function. * backend/pas/pas-backend-card-sexp.c (pas_backend_card_sexp_match_vcard): rewrite in terms of _match_ecard. (pas_backend_card_sexp_match_ecard): new function, the guts from _match_vcard. * backend/pas/pas-backend-card-sexp.h: add prototype for pas_backend_card_sexp_match_ecard. * backend/idl/addressbook.idl: the card removal stuff now takes CardIdList. * backend/ebook/e-book.c (e_book_get_static_capabilities): cache successful capability queries (since they're static). (e_book_check_static_capability): new, convenience function to check if a particular capability is supported. (e_book_remove_card_by_id): build a single element GList and call e_book_remove_cards. (e_book_remove_cards): build up a CORBA sequence from the GList and call Book::removeCards. (e_book_dispose): free the cached capabilities string. * backend/ebook/e-book.h: add new prototypes for e_book_check_static_capability and e_book_remove_cards. * backend/ebook/e-book-view.h (struct _EBookViewClass): rename "card_removed" signal to "cards_removed". * backend/ebook/e-book-view.c (e_book_view_do_removed_event): id -> ids, and free the id list. (e_book_view_check_listener_queue): CardRemovedEvent -> CardsRemovedEvent. * backend/ebook/e-book-view-listener.c (e_book_view_listener_queue_response): free the id list. (e_book_view_listener_queue_idlist_event): new function, used for cards_removed. (e_book_view_listener_queue_status_event): id -> ids. (e_book_view_listener_queue_sequence_event): same. (e_book_view_listener_queue_message_event): same. (impl_BookViewListener_notify_cards_removed): call queue_idlist_event. (e_book_view_listener_dispose): free the id list. (e_book_view_listener_class_init): track change to idl call. * backend/ebook/e-book-view-listener.h (EBookViewListenerOperation): CardRemovedEvent -> CardsRemovedEvent. (EBookViewListenerResponse): char *id -> GList *ids. * backend/ebook/e-book-listener.c (impl_BookListener_respond_r svn path=/trunk/; revision=19854
* [ huge change, all for 1 little performance problem :) fixes #18207 ] useChris Toshok2003-02-087-46/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-08 Chris Toshok <toshok@ximian.com> [ huge change, all for 1 little performance problem :) fixes #18207 ] * gui/widgets/e-addressbook-model.c (get_view): use e_book_check_static_capability here to make things a little prettier. (remove_card): complain about my life, and add code to use one "model_changed" signal if we get back a list of cards instead of multiple "card_removed" signals. * gui/widgets/e-addressbook-model.h: little clean up. * gui/widgets/e-addressbook-view.c (delete): write a bulk-remove case for this. if the backend supports it, send all the ids at once. otherwise loop over the ids. (e_addressbook_view_delete_selection): fake a CardAndBook structure and call delete, instead of duplicating the code in 2 places. * gui/component/addressbook.c (delete_contact_cb): don't call e_contact_editor_confirm_delete here, it's handled by the EAddressbookView. * backend/pas/pas-card-cursor.c (pas_card_cursor_construct): fix a compiler warning about a stupid crash. * backend/pas/pas-book.h (PASOperation): RemoveCard -> RemoveCards. (PASRemoveCardsReques): char *id -> GList *ids. (PASRequest): PASRemoveCardRequest -> PASRemoveCardsRequest. * backend/pas/pas-book.c (pas_book_queue_remove_cards): build up a GList from the id sequence. (pas_book_respond_remove): notifyCardRemoved -> notifyCardsRemoved. (impl_GNOME_Evolution_Addressbook_Book_removeCards): rename. (pas_book_free_request): free the idlist for RemoveCards. (pas_book_class_init): removeCard -> removeCards. * backend/pas/pas-book-view.h: change prototype for pas_book_view_notify_remove, and add prototype for pas_book_view_notify_remove_1. * backend/pas/pas-book-view.c (pas_book_view_notify_remove_1): build up a list and call pas_book_view_notify_remove. (pas_book_view_notify_remove): build up the corba id sequence and call BookViewListener::notifyCardsRemoved. * backend/pas/pas-backend.h: remove_card -> remove_cards. * backend/pas/pas-backend.c (pas_backend_remove_cards): rename from _remove_card. (process_client_requests): RemoveCard -> RemoveCards and _remove_card -> _remove_cards. * backend/pas/pas-backend-ldap.c (check_schema_support): g_strcasecmp -> g_ascii_strcasecmp. (remove_card_handler): _remove => _remove_1. (modify_card_modify_handler): same. (pas_backend_ldap_process_remove_cards): rename from _remove_card. (pas_backend_ldap_class_init): _remove_card -> _remove_cards. * backend/pas/pas-backend-file.c (pas_backend_file_class_init): remove_card -> remove_cards. (pas_backend_file_get_static_capabilities): add "bulk-removes". (pas_backend_file_process_remove_cards): rewrite this function largely, so that it handles lists of ids. first we loop through and for every successful deletion we build a list of deleted ECards. Then for each view we build a list (a subset of the deleted ECard list) and pass back that list to the view. (pas_backend_file_process_modify_card): use _remove_1 instead of _remove. (ecard_matches_search): new function. * backend/pas/pas-backend-card-sexp.c (pas_backend_card_sexp_match_vcard): rewrite in terms of _match_ecard. (pas_backend_card_sexp_match_ecard): new function, the guts from _match_vcard. * backend/pas/pas-backend-card-sexp.h: add prototype for pas_backend_card_sexp_match_ecard. * backend/idl/addressbook.idl: the card removal stuff now takes CardIdList. * backend/ebook/e-book.c (e_book_get_static_capabilities): cache successful capability queries (since they're static). (e_book_check_static_capability): new, convenience function to check if a particular capability is supported. (e_book_remove_card_by_id): build a single element GList and call e_book_remove_cards. (e_book_remove_cards): build up a CORBA sequence from the GList and call Book::removeCards. (e_book_dispose): free the cached capabilities string. * backend/ebook/e-book.h: add new prototypes for e_book_check_static_capability and e_book_remove_cards. * backend/ebook/e-book-view.h (struct _EBookViewClass): rename "card_removed" signal to "cards_removed". * backend/ebook/e-book-view.c (e_book_view_do_removed_event): id -> ids, and free the id list. (e_book_view_check_listener_queue): CardRemovedEvent -> CardsRemovedEvent. * backend/ebook/e-book-view-listener.c (e_book_view_listener_queue_response): free the id list. (e_book_view_listener_queue_idlist_event): new function, used for cards_removed. (e_book_view_listener_queue_status_event): id -> ids. (e_book_view_listener_queue_sequence_event): same. (e_book_view_listener_queue_message_event): same. (impl_BookViewListener_notify_cards_removed): call queue_idlist_event. (e_book_view_listener_dispose): free the id list. (e_book_view_listener_class_init): track change to idl call. * backend/ebook/e-book-view-listener.h (EBookViewListenerOperation): CardRemovedEvent -> CardsRemovedEvent. (EBookViewListenerResponse): char *id -> GList *ids. * backend/ebook/e-book-listener.c (impl_BookListener_respond_remove_cards): rename from remove_card. svn path=/trunk/; revision=19853
* check the status, not the book, and unref the book here.Chris Toshok2003-02-0710-75/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-02-06 Chris Toshok <toshok@ximian.com> * gui/component/e-address-popup.c (email_table_save_card_cb): check the status, not the book, and unref the book here. (contact_editor_cb): same. (start_query): unref the book in the failure case. (add_card_idle_cb): addressbook_load_default_book returns void now. (edit_contact_info_cb): same. (e_address_popup_query): same. * gui/component/addressbook.c (control_activate_cb): track change to addressbook_load_uri return type. (set_prop): same. (addressbook_load_uri): return type is void now. (addressbook_load_default_book): same. * gui/component/addressbook.h: addressbook_load_uri/addressbook_load_default_book return void now. * conduit/address-conduit.c (start_addressbook_server): e_book_load_default_book returns void now. * backend/ebook/e-book-util.h: track changes to return types. * backend/ebook/e-book-util.c (e_book_load_address_book_by_uri): fallout from change to e_book_load_uri. return type for this function is void now too. (e_book_use_address_book_by_uri): same. (e_book_use_default_book): same. (e_book_load_default_book): same. (got_uri_book_cb): if unsuccessful and book is non-NULL, unref it here. (got_default_book_cb): same. * backend/ebook/e-book.c (e_book_load_uri): no longer return a gboolean. any error is communicated to the callback. * backend/ebook/e-book.h: e_book_load_uri no longer returns a gboolean (it's void.) * backend/ebook/evolution-ldif-importer.c (ebook_create): track change to the e_book_load_uri family of functions. * backend/ebook/test-client-list.c (ebook_create): same. * backend/ebook/test-client.c (ebook_create): same. * backend/ebook/load-pine-addressbook.c (ebook_create): same. * backend/ebook/evolution-vcard-importer.c (ebook_create): same. svn path=/trunk/; revision=19839
* Use different tmp file names so these rules can be executed in parallelEttore Perazzoli2003-02-072-19/+45
| | | | | | | | | | | | | | | * backend/ebook/Makefile.am (e-book-marshal.c, e-book-marshal.h): Use different tmp file names so these rules can be executed in parallel without interfering with each otehr. * backend/pas/Makefile.am: Make the ORBit compilation work properly with parallel makes (i.e. make sure it does not spawn multiple orbit-idl processes on the same IDL file at the same time). * gui/component/select-names/Makefile.am: Likewise. * backend/ebook/Makefile.am: Likewise. svn path=/trunk/; revision=19834
* Remove cruft (ldapschemadir): Use privdatadir (pasincludedir): UseDan Winship2003-02-063-5/+2
| | | | | | | | | | | | * backend/pas/Makefile.am (INCLUDES): Remove cruft (ldapschemadir): Use privdatadir (pasincludedir): Use privincludedir. * backend/pas/pas-book-factory.c (pas_book_factory_activate): Remove unused variable. * backend/pas/pas-book-view.c (pas_book_view_new): Likewise svn path=/trunk/; revision=19779
* Remove cruft. (libebookincludedir): Use privincludedir.Dan Winship2003-02-069-20/+33
| | | | | | | | | | | | | | | | | | | | | | | | * backend/ebook/Makefile.am (INCLUDES): Remove cruft. (libebookincludedir): Use privincludedir. * backend/ebook/e-book-util.c: #include <string.h> * backend/ebook/e-card-compare.c: Likewise * backend/ebook/load-pine-addressbook.c: Likewise * backend/ebook/test-client.c: Likewise * backend/ebook/evolution-vcard-importer.c: #include <e-book-util.h> (factory_fn): Fix this to actually return the importer. * backend/ebook/evolution-ldif-importer.c (parseLine): #include <e-book-util.h> and <bonobo/bonobo-main.h>. Use g_ascii_strcmp. * backend/ebook/e-card.c (e_card_email_match_single_string): (e_card_email_find_number): s/g_str/g_ascii_str/ * backend/ebook/e-destination.c (e_destination_equal): Likewise. Also, add an "else return FALSE;" svn path=/trunk/; revision=19778
* [ fixes bug #36375 ] use PHONE_OTHER_FAX instead of PHONE_OTHER forSean Gao2003-01-241-1/+1
| | | | | | | | | | 2003-01-23 Sean Gao <Sean.Gao@Sun.COM> [ fixes bug #36375 ] * backend/pas/pas-backend-ldap.c: use PHONE_OTHER_FAX instead of PHONE_OTHER for "other_fax". svn path=/trunk/; revision=19602
* [ fixes bug #31014, roll this in from the 1.2 branch ] use "categories"Chris Toshok2003-01-241-1/+1
| | | | | | | | | | | 2003-01-23 Chris Toshok <toshok@ximian.com> [ fixes bug #31014, roll this in from the 1.2 branch ] * backend/pas/pas-backend-ldap.c: use "categories" instead of "category" for the ECard field so the UI/get_supported_fields stuff actually thinks its usable in the contact editor.. svn path=/trunk/; revision=19599
* fix for bug 34883 broke ssl transactions (at least those where we wereChris Toshok2003-01-241-0/+11
| | | | | | | | | | 2003-01-23 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): fix for bug 34883 broke ssl transactions (at least those where we were connecting to port 636). Move it to after the SSL stanza. svn path=/trunk/; revision=19598
* Version using $(BASE_VERSION). (etspecdir): Likewise. (iconsdir):Ettore Perazzoli2003-01-232-4/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | * gui/component/select-names/Makefile.am (gladedir): Version using $(BASE_VERSION). (etspecdir): Likewise. (iconsdir): Likewise. * gui/contact-list-editor/Makefile.am (iconsdir): Version using $(BASE_VERSION). (gladedir): Likewise. * gui/merging/Makefile.am (gladedir): Version using $(BASE_VERSION). * gui/search/Makefile.am (ruledir): Version using $(BASE_VERSION). * gui/component/Makefile.am (INCLUDES): Update EVOLUTION_IMAGESDIR to be versioned through $(BASE_VERSION). * gui/widgets/e-addressbook-view.c (init_collection): Use EVOLUTION_GALVIEWSDIR. * gui/widgets/Makefile.am (INCLUDES): Define EVOLUTION_GALVIEWSDIR and update EVOLUTION_IMAGESDIR. svn path=/trunk/; revision=19551
* reenable all the importers/loaders.Chris Toshok2003-01-165-175/+101
| | | | | | | | | | | | | | | | 2003-01-15 Chris Toshok <toshok@ximian.com> * backend/ebook/Makefile.am (bin_PROGRAMS): reenable all the importers/loaders. * backend/ebook/evolution-ldif-importer.c, backend/ebook/evolution-vcard-importer.c: Finish gnome2 port issues, and get these to compile. * backend/ebook/load-gnomecard-addressbook.c, backend/ebook/load-pine-addressbook.c: same. svn path=/trunk/; revision=19485
* try to load the uri again if it failed previously. (book_open_cb): setChris Toshok2003-01-102-1/+2
| | | | | | | | | | | | | | | | | | | | | | 2003-01-09 Chris Toshok <toshok@ximian.com> * gui/component/addressbook.c (control_activate_cb): try to load the uri again if it failed previously. (book_open_cb): set failed_to_load based on the response. (set_prop): initialize failed_to_load to FALSE before we kick off the first load. * backend/pas/pas-book-factory.c (pas_book_factory_process_request): if the load_uri fails, remove it from the hashtable and free it, so we'll try to load it again from scratch the next time it's requested instead of serving up a backend that doesn't function. * backend/pas/pas-backend.c (pas_backend_get_uri): we need to be able to get the uri from backends that aren't loaded (so we can remove them from the hashtable.) svn path=/trunk/; revision=19392
* doh, fix build error.Chris Toshok2003-01-101-2/+2
| | | | | | | | | 2003-01-09 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-ldap.c (query_ldap_root_dse): doh, fix build error. svn path=/trunk/; revision=19388
* build up the list of supported auth_methods.Chris Toshok2003-01-1010-66/+356
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2003-01-09 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-ldap.c (query_ldap_root_dse): build up the list of supported auth_methods. (pas_backend_ldap_process_get_supported_auth_methods): respond with the list of auth methods we've built up. (pas_backend_ldap_dispose): unref the auth_method list. (pas_backend_ldap_class_init): hook up pas_backend_ldap_process_get_supported_auth_methods. * backend/pas/pas-backend.c (pas_backend_get_supported_auth_methods): new function. (process_client_requests): add clause for GetSupportedAuthMethods. * backend/pas/pas-backend.h: add prototype for pas_backend_get_supported_auth_methods, and add it to the class vtable. * backend/pas/pas-book.h: add GetSupportedAuthMethods enum member and PASGetSupportedAuthMethodsRequest. and add prototype for pas_book_respond_get_supported_auth_methods. * backend/pas/pas-book.c (pas_book_queue_get_supported_auth_methods): new function. (impl_GNOME_Evolution_Addressbook_Book_getSupportedAuthMethods): new function. (pas_book_respond_get_supported_auth_methods): new function. (pas_book_free_request): add clause for GetSupportedAuthMethods. (pas_book_class_init): hook up getSupportedAuthMethods. * backend/ebook/e-book-listener.c (e_book_listener_queue_get_supported_fields_response): fields -> list. (e_book_listener_queue_get_supported_auth_methods_response): new function. (impl_BookListener_response_get_supported_auth_methods): new function. (e_book_listener_class_init): hook up epv->notifySupportedAuthMethods. * backend/ebook/e-book-listener.h: add GetSupportedAuthMethodsResponse enum member, and change the field name from "fields" to list (and use it for both GetSupportedFields and GetSupportedAuthMethods) * backend/ebook/e-book.c (e_book_get_supported_auth_methods): new function. (e_book_do_response_get_supported_auth_methods): new function. * backend/ebook/e-book.h: add prototype for e_book_get_supported_auth_methods. * backend/idl/addressbook.idl: add getSupportedAuthMethods IDL call. svn path=/trunk/; revision=19386
* deal with backends that might not have loaded successfully (they'll have aChris Toshok2003-01-101-12/+13
| | | | | | | | | | 2003-01-09 Chris Toshok <toshok@ximian.com> * backend/pas/pas-book-factory.c (backend_last_client_gone_cb): deal with backends that might not have loaded successfully (they'll have a NULL uri). svn path=/trunk/; revision=19385
* Fix to build.Jeffrey Stedfast2003-01-091-1/+1
| | | | | | | | | 2003-01-08 Jeffrey Stedfast <fejj@ximian.com> * backend/pas/pas-backend-ldap.c (pas_backend_ldap_process_authenticate_user): Fix to build. svn path=/trunk/; revision=19302
* make it buildJeffrey Stedfast2003-01-091-1/+1
| | | | svn path=/trunk/; revision=19297
* Move PASBook request handling into PASBackend itself since allDan Winship2003-01-094-395/+518
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | existing backends do it exactly the same way. (Part of 32866). * backend/pas/pas-backend.h (PASBackendClass): add new methods for the various pas book requests. * backend/pas/pas-backend.c: Add a clients list to PASBackendPrivate. (pas_backend_create_card, etc): Add these to invoke the new methods. (process_client_requests, book_destroy_cb): Moved here and slightly rewritten from pas-backend-file. (last_client_gone): Now static. (add_client, remove_client): Default implementations, based on pas-backend-file, that add the client to/remove it from the backend's clients list and connect to its requests_queued signal. (pas_backend_init, pas_backend_dispose): Deal with the clients list. * backend/pas/pas-backend-file.c (struct _PASBackendFilePrivate): Remove GList *clients. (pas_backend_file_process_client_requests, pas_backend_file_book_destroy_db, pas_backend_file_add_client, pas_backend_file_remove_client): Gone. (pas_backend_file_class_init): Remove add_client/remove_client method initializations, add initializations for processing the various book requests. * backend/pas/pas-backend-ldap.c (struct _PASBackendLDAPPrivate): Remove GList *clients. (pas_backend_ldap_process_create_card, etc): Make these take the specific PAS*Request types rather than a generic PASRequest. (pas_backend_ldap_process_client_requests, pas_backend_ldap_book_destroy_db, pas_backend_ldap_add_client, pas_backend_ldap_remove_client): Gone. (pas_backend_ldap_class_init): Remove add_client/remove_client method initializations, add initializations for processing the various book requests. svn path=/trunk/; revision=19287
* fix the SYNTAX for the telephone attributes, and make the fax attributesChris Toshok2003-01-081-13/+9
| | | | | | | | | | 2003-01-07 Chris Toshok <toshok@ximian.com> * backend/pas/evolutionperson.schema: fix the SYNTAX for the telephone attributes, and make the fax attributes more closely mirror those from core.schema. Fixes the schema for openldap-2.1. svn path=/trunk/; revision=19268
* remove idldir definition. (It's defined in configure.in now)Dan Winship2003-01-061-2/+0
| | | | | | | * Makefile.am: remove idldir definition. (It's defined in configure.in now) svn path=/trunk/; revision=19242
* drop use of "font" arg. (get_left_width): use pango to calculate thisChris Toshok2002-12-193-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-12-18 Chris Toshok <toshok@ximian.com> * gui/widgets/e-minicard.c (e_minicard_realize): drop use of "font" arg. (get_left_width): use pango to calculate this instead of a GdkFont. * gui/widgets/e-minicard-view.c: drop include of e-unicode.h. * gui/widgets/e-minicard-label.c (e_minicard_label_construct): don't need to create the font anymore. * gui/search/Makefile.am (INCLUDES): add -D*_DISABLE_DEPRECATED. * gui/search/e-addressbook-search-dialog.c (e_addressbook_search_dialog_new): use g_object_new instead of gtk_type_new. * gui/merging/Makefile.am (INCLUDES): add -D*_DISABLE_DEPRECATED. * gui/contact-list-editor/Makefile.am (INCLUDES): add -D*_DISABLE_DEPRECATED. * gui/contact-list-editor/e-contact-list-editor.c (is_named): strdup (or not, if we don't need to save the value) instead of using the e_utf8 functions. (fill_in_info): same. * gui/contact-editor/Makefile.am (INCLUDES): add -D*_DISABLE_DEPRECATED. * gui/contact-editor/e-contact-save-as.c (e_contact_save_as): strdup (or not, if we don't need to save the value) instead of using the e_utf8 functions. (e_contact_list_save_as): same. * gui/contact-editor/e-contact-quick-add.c (clicked_cb): strdup (or not, if we don't need to save the value) instead of using the e_utf8 functions. (build_quick_add_dialog): same. * gui/contact-editor/e-contact-editor.c (phone_entry_changed): strdup (or not, if we don't need to save the value) instead of using the e_utf8 functions. (file_as_set_style): same. (name_entry_changed): same. (full_name_clicked): same. (categories_clicked): same. (set_field): same. (fill_in_field): same. (fill_in_single_field): same. (extract_field): same. (extract_single_field): same. * gui/contact-editor/e-contact-editor-fullname.c (extract_field): just strdup, it's already utf8. * gui/contact-editor/e-contact-editor-address.c (extract_field): they're all entries, use GTK_ENTRY foo here. * gui/component/select-names/Makefile.am (INCLUDES): add -D*_DISABLE_DEPRECATED. * gui/component/select-names/e-select-names.c (e_select_names_add_section): remove the extra utf8_from_locale_string stuff. * gui/component/select-names/e-select-names-popup.c (set_uiinfo_label): gtk_container_children -> gtk_container_get_children, and remove the extra utf8 stuff. * gui/component/Makefile.am (INCLUDES): add -D*_DISABLE_DEPRECATED. * gui/component/addressbook-storage.c (addressbook_storage_init_source_uri): g_string_sprintfa -> g_string_append_printf. * gui/component/addressbook-config.c (focus_help): gtk_notebook_set_page -> gtk_notebook_set_current_page. (addressbook_source_dialog_set_source): same. (auth_optionmenu_activated): gtk_container_children -> gtk_container_get_children. (ssl_optionmenu_activated): same. (ssl_optionmenu_selected): same, and gtk_notebook_set_page -> gtk_notebook_set_current_page. (scope_optionmenu_activated): same. (set_advanced_button_state): same. (addressbook_ldap_init): hook "response" to gtk_widget_destroy to make the dialog go away when clicked. (addressbook_ldap_auth): same. (addressbook_root_dse_query): same. (do_ldap_root_dse_query): same. (addressbook_config_control_new): fix return type and cast. (main): remove call to gtk_widget_push_visual. * gui/component/addressbook-config.h: addressbook_config_control_new returns a BonoboObject, not a BonoboControl. * gui/component/addressbook.c: remove e-unicode.h include. * backend/pas/Makefile.am (INCLUDES): Add -DLIBGNOME_DISABLE_DEPRECATED. * backend/ebook/Makefile.am (INCLUDES): Add -DLIBGNOME_DISABLE_DEPRECATED. * backend/ebook/e-card.c (e_card_get_property): remove misleading comment. svn path=/trunk/; revision=19160
* g_strcasecmp -> g_ascii_strcasecmp. (FIND_INSERT): same.Chris Toshok2002-12-184-3/+5
| | | | | | | | | | | | | | | | | | | 2002-12-17 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-ldap.c (build_card_from_entry): g_strcasecmp -> g_ascii_strcasecmp. (FIND_INSERT): same. * backend/pas/pas-backend-file.c (pas_backend_file_load_uri): g_dirname -> g_path_get_dirname. * backend/pas/Makefile.am (INCLUDES): add -DG_DISABLE_DEPRECATED. * backend/ebook/Makefile.am (INCLUDES): add -DG_DISABLE_DEPRECATED. svn path=/trunk/; revision=19156
* [ Fixes bug #35135 ] don't free the default_book_uri here, it's done inChris Toshok2002-12-181-9/+36
| | | | | | | | | | | | | | | | 2002-12-17 Chris Toshok <toshok@ximian.com> [ Fixes bug #35135 ] * backend/ebook/e-book-util.c (set_default_book_uri_local): don't free the default_book_uri here, it's done in set_default_book_uri. (set_default_book_uri): break some stuff out from set_default_book_uri_from_bonobo_conf to here so it can be used both from that function and the bonobo listener. (default_folder_listener): set the new default book uri. (set_default_book_uri_from_bonobo_conf): install the bonobo conf listener so we'll get updates. svn path=/trunk/; revision=19148
* use e_card_set_book instead of basically duplicating its code here.Chris Toshok2002-12-071-8/+2
| | | | | | | | | | 2002-12-06 Chris Toshok <toshok@ximian.com> * backend/ebook/e-book.c (e_book_commit_card): use e_card_set_book instead of basically duplicating its code here. (e_book_add_card): same. svn path=/trunk/; revision=19052
* only enable the LDAPv3 stuff if TLS is being used. Also, deal with namingChris Toshok2002-12-031-30/+42
| | | | | | | | | | | | 2002-11-30 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-ldap.c (pas_backend_ldap_connect): only enable the LDAPv3 stuff if TLS is being used. Also, deal with naming errors returned from query_ldap_root_dse, as some servers (older openldap servers among others i'm sure) don't have a root dse at all. svn path=/trunk/; revision=18989
* [ roll forward from 1.2 branch ] never pass NULL as the vcard to the corbaChris Toshok2002-11-271-1/+1
| | | | | | | | | | | | | 2002-11-26 Chris Toshok <toshok@ximian.com> [ roll forward from 1.2 branch ] * backend/pas/pas-backend-file.c (pas_backend_file_process_get_vcard): never pass NULL as the vcard to the corba call, it causes a crash. This particular bug bit us when we opened a card that contained an unresolvable related contact. svn path=/trunk/; revision=18944
* [ roll forward from 1.2 branch, Fixes addressbook bug #28945 ] if theChris Toshok2002-11-271-1/+9
| | | | | | | | | | | 2002-11-26 Chris Toshok <toshok@ximian.com> [ roll forward from 1.2 branch, Fixes addressbook bug #28945 ] * backend/ebook/e-card.c (e_card_get_vobject): if the email property is xml, get the real address from the e-destination. Fixes saving contact lists. svn path=/trunk/; revision=18942
* [ roll forward from the 1.2 branch. fixes #25540, part of #29630, as wellChris Toshok2002-11-251-2/+34
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-23 Chris Toshok <toshok@ximian.com> [ roll forward from the 1.2 branch. fixes #25540, part of #29630, as well as other selection issues in the contact editor and ACL issues in the ldap backend ] * backend/pas/pas-backend-ldap.c (check_schema_support): reset the schema check state to FALSE if the read returned nothing (and the user had not authenticated). we'll requery if/when they auth. (query_ldap_root_dse): free the schema dn before assigning over it. (pas_backend_ldap_connect): added a diagnostic warning about the root dse query failing in anonymous mode (if it in fact did fail.) (pas_backend_ldap_process_authenticate_user): if we successfully authed, requery the root dse to pick up any attributes that might be protected, and retry the schema query if that failed before. * gui/contact-editor/e-contact-editor.c (full_name_clicked): set the dialog's editable state based on the new field "fullname_editable", and only do the Ok button handling if this flag is TRUE. (full_addr_clicked): set the dialog's editable state based on the editable state for the particular address (from editor->address_editable[]). also, only do the Ok button handling if this flag is TRUE. (_address_arrow_pressed): use the address_editable array to determine whether the address text and the mailing address checkbutton are sensitive. (enable_writable_fields): figure out if fullname_editable is TRUE/FALSE, also, init the address_editable flags based on the field list, and handle the address checkbutton. * gui/contact-editor/fulladdr.glade: change the label names to label-<name> to match {entry,combo}-<name>. * gui/contact-editor/fullname.glade: same. * gui/contact-editor/e-contact-editor-fullname.c (e_contact_editor_fullname_class_init): rename ARG_IS_READ_ONLY to ARG_EDITABLE, to reflect the correct sense of the flag. (e_contact_editor_fullname_set_arg): same, and make the labels sensitive/insensitive depending on the editable state of the dialog. * gui/contact-editor/e-contact-editor-address.c (e_contact_editor_address_class_init): rename ARG_IS_READ_ONLY to ARG_EDITABLE, to reflect the correct sense of the flag. (e_contact_editor_address_set_arg): same, and make the labels sensitive/insensitive depending on the editable state of the dialog. svn path=/trunk/; revision=18910
* [ roll forward Sean.Gao@sun.com's fix for #16870 from the 1.2 branch ]Chris Toshok2002-11-231-1/+1
| | | | | | | | | | | 2002-11-22 Chris Toshok <toshok@ximian.com> [ roll forward Sean.Gao@sun.com's fix for #16870 from the 1.2 branch ] * backend/ebook/evolution-ldif-importer.c (getNextLDIFEntry): check for both LR and CRLF as empty line markers. svn path=/trunk/; revision=18899
* [ rolling forward fix for #34254 from 1.2 branch ] use g-ascii_strncasecmpChris Toshok2002-11-231-1/+1
| | | | | | | | | | | 2002-11-22 Chris Toshok <toshok@ximian.com> [ rolling forward fix for #34254 from 1.2 branch ] * backend/ebook/evolution-vcard-importer.c (check_file_is_vcard): use g-ascii_strncasecmp instead of strncmp. (support_format_fn): use g_ascii_strcasecmp instead of strcmp. svn path=/trunk/; revision=18898
* [ rolling forward fix for #34254 from 1.2 branch ] use g-ascii_strncasecmpChris Toshok2002-11-231-2/+2
| | | | | | | | | | | 2002-11-22 Chris Toshok <toshok@ximian.com> [ rolling forward fix for #34254 from 1.2 branch ] * backend/ebook/evolution-vcard-importer.c (check_file_is_vcard): use g-ascii_strncasecmp instead of strncmp. (support_format_fn): use g_ascii_strcasecmp instead of strcmp. svn path=/trunk/; revision=18896
* guard against multiple invocations.Chris Toshok2002-11-125-38/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-11 Chris Toshok <toshok@ximian.com> * backend/pas/pas-card-cursor.c (pas_card_cursor_dispose): guard against multiple invocations. * backend/pas/pas-backend-ldap.c (view_destroy): change signature to that of a weak ref notify function. (cursor_destroy): same. (pas_backend_ldap_book_destroy_cb): same. (get_cursor_handler): ::destroy -> weak_ref. (pas_backend_ldap_process_get_book_view): same. (pas_backend_ldap_add_client): same. * backend/pas/pas-backend-file.c (cursor_destroy): change signature to that of a weak ref notify function. (view_destroy): same. (pas_backend_file_book_destroy_cb): same. (pas_backend_file_process_get_cursor): ::destroy -> weak_ref. (pas_backend_file_process_get_book_view): same. (pas_backend_file_process_get_completion_view): same. (pas_backend_file_process_get_changes): same. (pas_backend_file_add_client): same. * backend/ebook/test-client.c (get_cursor_cb): unref the book and exit here. (get_card_cb): pass a query string to get_cursor. * backend/ebook/e-book-view.c (e_book_view_class_init): correct marshaller for "card_added". svn path=/trunk/; revision=18720
* guard against multiple invocations.Chris Toshok2002-11-1014-229/+301
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-10 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-card-sexp.c (pas_backend_card_sexp_dispose): guard against multiple invocations. * backend/pas/pas-card-cursor.c (pas_card_cursor_dispose): same. * backend/pas/pas-book.c (pas_book_dispose): same. * backend/pas/pas-book-view.c (pas_book_view_dispose): same. * backend/pas/pas-book-factory.c (pas_book_factory_dispose): same. * backend/pas/pas-backend-summary.c (pas_backend_summary_dispose): same. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_dispose): same. * backend/pas/pas-backend-file.c (pas_backend_file_dispose): same. * backend/ebook/e-book-listener.c (e_book_listener_dispose): guard against multiple invocations. * backend/ebook/e-card.c (e_card_dispose): same. * backend/ebook/e-card-simple.c (e_card_simple_dispose): same. * backend/ebook/e-card-cursor.c (e_card_cursor_dispose): same. * backend/ebook/e-book.c (e_book_dispose): same. * backend/ebook/e-book-view-listener.c (e_book_view_listener_dispose): same. svn path=/trunk/; revision=18687
* prepend /apps/Evolution to config db paths.Chris Toshok2002-11-081-1/+1
| | | | | | | | | | | | | 2002-11-08 Chris Toshok <toshok@ximian.com> * backend/ebook/e-book-util.c (set_default_book_uri_from_config_db): prepend /apps/Evolution to config db paths. * gui/component/select-names/e-select-names-manager.c (read_completion_books_from_db): same. (uris_listener): same. svn path=/trunk/; revision=18664
* tests are linking now, and link in libcamel.la.Chris Toshok2002-11-083-77/+40
| | | | | | | | | | | | | | | | | | | | 2002-11-07 Chris Toshok <toshok@ximian.com> * backend/ebook/Makefile.am: tests are linking now, and link in libcamel.la. * backend/ebook/e-destination.c (e_destination_get_name): un-ifdef since camel is compiling. (e_destination_get_email): same. (e_destination_get_address): same. (e_destination_get_textrep): same. * backend/ebook/e-card-compare.c (name_fragment_match): use e_utf8_casefold_*. (name_fragment_match_with_synonyms): same. (e_card_compare_name_to_string_full): same. (e_card_compare_name): same. svn path=/trunk/; revision=18655
* add prototypes for e_utf8_casefold_collate{_len}Chris Toshok2002-11-082-0/+26
| | | | | | | | | | | | 2002-11-07 Chris Toshok <toshok@ximian.com> * backend/ebook/e-book-util.h: add prototypes for e_utf8_casefold_collate{_len} * backend/ebook/e-book-util.c (e_utf8_casefold_collate_len): move utf8_casefold_collate_len here. (e_utf8_casefold_collate): move utf8_casefold_collate here. svn path=/trunk/; revision=18654
* use g_type_class_peek_parent.Chris Toshok2002-11-0710-30/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-06 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-card-sexp.c (pas_backend_card_sexp_class_init): use g_type_class_peek_parent. * backend/pas/pas-card-cursor.c (pas_card_cursor_class_init): same. * backend/pas/pas-book-view.c (pas_book_view_class_init): same. * backend/pas/pas-book-factory.c (pas_book_factory_class_init): same. * backend/pas/pas-backend-summary.c (pas_backend_summary_class_init): same. * backend/pas/pas-backend-ldap.c (pas_backend_ldap_class_init): same. * backend/pas/pas-backend-file.c (pas_backend_file_class_init): same. * backend/ebook/e-book-marshal.list: ENUM -> INT. * backend/ebook/e-book-view.c (e_book_view_dispose): guard against this being called multiple times. (e_book_view_class_init): ENUM -> INT in the sequence_complete signal. * backend/ebook/e-book.c (e_book_do_response_open): un-ifdef the component_died signal stuff. svn path=/trunk/; revision=18623
* call g_build_filename, not g_build_path.Chris Toshok2002-11-061-1/+1
| | | | | | | | | 2002-11-06 Chris Toshok <toshok@ximian.com> * backend/ebook/e-book-util.c (e_book_expand_uri): call g_build_filename, not g_build_path. svn path=/trunk/; revision=18600
* fix the gnome-xml headers.Chris Toshok2002-11-062-3/+4
| | | | | | | | 2002-11-06 Chris Toshok <toshok@ximian.com> * backend/ebook/e-destination.[ch]: fix the gnome-xml headers. svn path=/trunk/; revision=18599
* ignore the generated marshaller files.Chris Toshok2002-11-066-51/+62
| | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-05 Chris Toshok <toshok@ximian.com> * backend/ebook/.cvsignore: ignore the generated marshaller files. * backend/ebook/e-destination.c (e_destination_dispose): rename e_destination_destroy. (e_destination_equal): ifdef this out for now, PENDING_PORT_WORK. (e_destination_get_name): same. (e_destination_get_email): same. (e_destination_get_address): same. (e_destination_get_textrep): same. * backend/ebook/Makefile.am: don't build the executables (importers and loaders) for now. Also, s/oaf/server, and use INTLTOOL_SERVER_RULE. * backend/ebook/e-book-util.c (e_book_get_config_database): un-#ifdef this. (e_book_default_book_open): un-#ifdef ths code in here that relies on the e_config_listener. svn path=/trunk/; revision=18586
* copy a memleak fix from pas-backend-ad.Dan Winship2002-11-051-0/+1
| | | | | | | * backend/pas/pas-backend-ldap.c (send_pending_adds): copy a memleak fix from pas-backend-ad. svn path=/trunk/; revision=18552
* g_date_* => g_date_get_*, fixes G_DISABLE_DEPRECATED build.Chris Toshok2002-11-0513-742/+116
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-05 Chris Toshok <toshok@ximian.com> * backend/ebook/e-card.c: g_date_* => g_date_get_*, fixes G_DISABLE_DEPRECATED build. * backend/ebook/e-book-listener.[ch]: remove the servant crap i'd c&p'ed and put in here. * backend/ebook/e-book-view-listener.[ch]: remove the servant crap i'd c&p'ed and put in here. * backend/pas/pas-book-factory.[ch]: subclass from BonoboObject, and remove the servant crap from here too. whee. * backend/pas/pas-card-cursor.[ch]: remove the servant crap i'd c&p'ed and put in here. * backend/pas/pas-book.[ch]: remove the servant crap i'd c&p'ed and put in here. * backend/pas/pas-book-view.[ch]: remove the servant crap i'd c&p'ed and put in here. svn path=/trunk/; revision=18548
* port to gnome 2.Chris Toshok2002-11-0521-715/+857
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-05 Chris Toshok <toshok@ximian.com> * backend/pas/pas-backend-card-sexp.[ch]: port to gnome 2. * backend/pas/pas-backend-file.[ch]: same. * backend/pas/pas-backend-file.[ch]: same. * backend/pas/pas-backend-ldap.[ch]: same. * backend/pas/pas-backend-summary.[ch]: same. * backend/pas/pas-backend.[ch]: same. * backend/pas/pas-book-factory.[ch]: same. * backend/pas/pas-book-view.[ch]: same. * backend/pas/pas-book.[ch]: same. * backend/pas/pas-card-cursor.[ch]: same. * backend/pas/pas-marshal.list: list of marshallers. * backend/pas/Makefile.am (libpas_a_SOURCES): add pas-marshal.c also add the marshal building foo. * backend/pas/.cvsignore: ignore pas-marshal.[ch] svn path=/trunk/; revision=18544
* don't call bonobo_activation_init directly.Chris Toshok2002-11-058-65/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-05 Chris Toshok <toshok@ximian.com> * backend/ebook/test-client-list.c (main): don't call bonobo_activation_init directly. * backend/ebook/test-client.c (get_card_cb): don't unref the card here since we never reffed it. (main): no need to call bonobo_activation_init, as gnome_program_init did it for us. * backend/ebook/e-card-simple.c (e_card_simple_get_property): s/g_value_{set,get}_pointer/g_value_{set,get}_object * backend/ebook/e-book-util.c (set_default_book_uri_local): make sure to terminate args with NULL for g_build_filename. * backend/ebook/e-book-listener.c: nuke e_book_listener_get_type and use the BONOBO_TYPE_FUNC_FULL macro. * backend/ebook/e-book-listener.h: add the epv to EBookListenerClass so BONOBO_TYPE_FUNC_FULL works. * backend/ebook/e-book-view-listener.c: nuke e_book_view_listener_get_type and use the BONOBO_TYPE_FUNC_FULL macro. * backend/ebook/e-book-view-listener.h: add the epv to EBookViewListenerClass so BONOBO_TYPE_FUNC_FULL works. svn path=/trunk/; revision=18543
* just include glib.h instead of the gtk stuff.Chris Toshok2002-11-0330-1205/+1498
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2002-11-02 Chris Toshok <toshok@ximian.com> * backend/ebook/e-book-types.h: just include glib.h instead of the gtk stuff. * backend/ebook/e-book-listener.[ch]: convert to GObject/bonobo-activation/etc/etc. * e-book-util.[ch]: same. * e-book-view-listener.[ch]: same. * e-book-view.[ch]: same. * e-book.[ch]: same. * e-card-compare.[ch]: same. * e-card-cursor.[ch]: same. * e-card-simple.[ch]: same. * e-card.[ch]: same. * e-destination.[ch]: same. * evolution-ldif-importer.c: same. * evolution-vcard-importer.c: same. * load-gnomecard-addressbook.c: same. * load-pine-addressbok.c: same. * test-card.c: same. * test-client-list.c: same. * test-client.c: same. * backend/ebook/Makefile.am: add e-book-marshal.c to SOURCES, add e-book-marshal.[ch] to CLEANFILES, and add e-book-marshal.list to EXTRA_DIST. Also, remove the camel libs from the test LDADD's, and leave e-destination.[ch] out of the build. * backend/ebook/.cvsignore: ignore e-book-marshal.[ch] * backend/ebook/e-book-marshal.list: marshallers for e-book. svn path=/trunk/; revision=18505
* never set the charset on an item without also encoding it. Mime messagesLarry Ewing2002-10-281-6/+2
| | | | | | | | | | 2002-10-28 Larry Ewing <lewing@ximian.com> * backend/ebook/e-card.c (addPropValueUTF8): never set the charset on an item without also encoding it. Mime messages don't like parts with multiple charsets. svn path=/trunk/; revision=18451
* install evolutionperson.schema to $(datadir)/evolution.Chris Toshok2002-10-261-0/+4
| | | | | | | | | 2002-10-24 Chris Toshok <toshok@ximian.com> * backend/pas/Makefile.am: install evolutionperson.schema to $(datadir)/evolution. svn path=/trunk/; revision=18444
* [ fixes #29067 ] we need to create a card_sexp even when doing summaryChris Toshok2002-10-221-7/+7
| | | | | | | | | | | 2002-10-20 Chris Toshok <toshok@ximian.com> [ fixes #29067 ] * backend/pas/pas-backend-file.c (pas_backend_file_search): we need to create a card_sexp even when doing summary queries since it's used to check modifications of cards in the view. svn path=/trunk/; revision=18404
* [ 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