| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
svn path=/trunk/; revision=23206
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
003-10-21 JP Rosevear <jpr@ximian.com>
* conduit/address-conduit.c: make it work with the new ebook api
* backend/pas/pas-book.c (pas_book_respond_get_changes): put the
vcard in for every change
* backend/pas/pas-backend.c (pas_backend_change_add_new): just use
the vcard field
(pas_backend_change_modify_new): ditto
(pas_backend_change_delete_new): ditto
* backend/pas/pas-backend-file.c
(pas_backend_file_changes_foreach_key): create a fake contact with
the uid
(pas_backend_file_get_changes): add the card to the changes
* backend/ebook/tests/ebook/test-changes.c (main): just print the
uid
* backend/ebook/e-book.c (e_book_free_change_list): unref the
contact
* backend/ebook/e-book-types.h: the change struct contains an
EContact now
* backend/ebook/e-book-listener.c
(impl_BookListener_respond_get_changes): create the contact from
the vcard string
* backend/idl/addressbook.idl: Book change item is no longer a
union, it always gives back a card
svn path=/trunk/; revision=23031
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2003-10-21 Chris Toshok <toshok@ximian.com>
* tools/evolution-addressbook-abuse.c: use the synchronous api for
this. simplifies it a bunch.
2003-10-21 Chris Toshok <toshok@ximian.com>
* backend/pas/pas-book.c
(impl_GNOME_Evolution_Addressbook_Book_remove): we can ill afford
bad debug spew.
(view_listener_died_cb): implement.
(impl_GNOME_Evolution_Addressbook_Book_getBookView): hook up an
ORBit_small connection listener on the view's listener.
(pas_book_respond_create): use e_contact_get_const instead of
e_contact_get here. fixes a leak.
* backend/pas/pas-book-view.c
(impl_GNOME_Evolution_Addressbook_BookView_stop): implement, call
pas_backend_stop_book_view.
(pas_book_view_get_listener): return the book view's listener.
(pas_book_view_class_init): fill in epv->stop.
(pas_book_view_init): use a #define for THRESHOLD_MAX instead of
the constant.
* backend/pas/pas-book-view.h: add prototype for
pas_book_view_get_listener.
* backend/pas/pas-backend.c (pas_backend_stop_book_view):
implement.
(pas_backend_remove_book_view): implement.
* backend/pas/pas-backend.h: add prototype for stop_book_view and
remove_book_view.
* backend/pas/pas-backend-vcf.c (load_file): pass in the fd and
use fdopen here.
(foreach_build_list): don't creat EContacts here, because we'll
just be converting them back to vcards anyway.
(save_file): use char*'s instead of EContacts, and split entries
with 2 blank lines. Also, hold the lock over the entire function.
(do_create): hold the lock around uid generation and touching the
hash table.
(pas_backend_vcf_process_remove_contacts): same.
(pas_backend_vcf_process_modify_contact): same.
(pas_backend_vcf_stop_book_view): new function, but leave
unimplemented for now.
(pas_backend_vcf_load_uri): the uri contains the directory name,
not the filename.
(pas_backend_vcf_dispose): grab the lock here just for sanity's
sake. Also reorder things a bit, and free the hashtable and
mutex.
(pas_backend_vcf_init): init the mutex.
* backend/pas/pas-backend-summary.c
(pas_backend_summary_add_contact): don't unref the contact here.
* backend/pas/pas-backend-ldap.c
(pas_backend_ldap_process_stop_book_view): new function, but leave
unimplemented for now.
* backend/pas/pas-backend-file.c (build_summary): use an EContact
for this call.
(do_summary_query): nuke, the contents of this has been moved to
start_book_view.
(pas_backend_file_search_timeout): same.
(pas_backend_file_search): same.
(pas_backend_file_start_book_view): glom everything into here
involving searching. This function could (and should) be renamed
and reused from both this function and _get_contact_list.
(pas_backend_file_stop_book_view): new function.
(pas_backend_file_class_init): fill in backend->stop_book_view.
* backend/pas/Makefile.am (LDAP_BACKEND): libpasldap.a ->
libpasldap.la
(noinst_LTLIBRARIES): *.a -> *.la.
(libpas_la_SOURCES): same.
(libpasfile_la_SOURCES): same.
(libpasvcf_la_SOURCES): same.
(libpasldap_la_SOURCES): same.
* backend/idl/addressbook.idl: add BookView::stop.
* backend/ebook/e-vcard.c (read_attribute_value): fix GString
related leaks.
(read_attribute_params): same.
(parse): don't leak the EVCardAttributes corresponding to
BEGIN/END:vCard.
(free_gstring): new function
(e_vcard_attribute_remove_values): free the decoded_values list,
using free_gstring.
* backend/ebook/e-book.c (e_book_response_get_book_view): ref the
listener here.
* backend/ebook/e-book-view.h: add prototype for e_book_view_stop.
* backend/ebook/e-book-view.c (e_book_view_stop): new function.
* backend/ebook/e-book-async.c (_get_book_view_response_dtor):
unref the book view.
svn path=/trunk/; revision=23000
|
|
|
|
| |
svn path=/trunk/; revision=22965
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
* Makefile.am: remove idldir definition. (It's defined in
configure.in now)
svn path=/trunk/; revision=19242
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
2002-05-13 Christopher James Lahey <clahey@ximian.com>
* backend/idl/addressbook.idl: Removed an incorrect comment here.
svn path=/trunk/; revision=16775
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
helixcode.com with ximian.com all over the place.
svn path=/trunk/; revision=10440
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-06-19 Chris Toshok <toshok@ximian.com>
* contact-editor/e-contact-quick-add.c (ce_have_book): rename
ce_book_found_fields to this, remove the fetching of fields (the
contact editor code handles that now.), and change the add_card
signal to card_added.
(card_added_cb): copied somewhat from merge_cb above. we don't
need to do the merge here, just call the callback.
* contact-editor/e-contact-editor.c (e_contact_editor_class_init):
track signal change. add book arg, and is_read_only -> editable.
(wants_html_changed): if the card isn't already changed, flag it
as such (and update the commands.)
(phone_entry_changed): same.
(email_entry_changed): same.
(address_text_changed): same.
(name_entry_changed): same.
(company_entry_changed): same.
(full_name_clicked): is_read_only -> editable.
(full_addr_clicked): same.
(card_added_cb): new function, emit our card_added signal, and
close the dialog if we're supposed to. properly deal with error
status here.
(card_modified_cb): same, modulo card_added -> card_modified.
(save_card): actually call e_card_merging_book_{add/commit}_card
instead of using a signal. Also, add a gboolean arg to tell
whether or not to close the dialog after saving the card.
(card_deleted_cb): new function, just emit our "card_deleted"
signal.
(delete_cb): actually call e_book_remove_card here, instead of
using a signal.
(tb_save_and_close_cb): call save_card with TRUE for should_close.
(e_contact_editor_init): init changed = FALSE;
(e_contact_editor_destroy): unref our book if we have one.
(e_contact_editor_new): new signature, set the "book" arg, and
call e_book_get_supported_fields here.
(supported_fields_cb): new function, show the contact editor.
(e_contact_editor_set_arg): initialize changed to FALSE when
setting the card (but *after*, since the changed callbacks will
set it to TRUE.) also, call command_state_changed if editable
changes. also handle setting "book". oh, and is_read_only ->
editable.
(command_state_changed): new function - set the state of the
commands we care about.
(e_contact_editor_get_arg): add "book" handling, and is_read_only
-> editable.
(_phone_arrow_pressed): is_read_only -> editable.
(_email_arrow_pressed): same.
(_address_arrow_pressed): same.
(enable_writable_fields): same.
(set_editable): rename set_read_only to this, and is_read_only ->
editable.
* contact-editor/e-contact-editor.h (struct _EContactEditor):
is_read_only -> editable, add a "changed" flag so we can sensitize
commands correctly, and add an EBook* arg to e_contact_editor_new
and to the EContactEditor struct. Also, change all the signals to
past tense, and send the EBookStatus in them.
* contact-editor/e-contact-editor-address.c
(e_contact_editor_address_class_init): is_read_only -> editable.
(e_contact_editor_address_set_arg): same.
(e_contact_editor_address_get_arg): same.
* contact-editor/e-contact-editor-address.h (struct
_EContactEditorAddress): same.
* contact-editor/e-contact-editor-fullname.c
(e_contact_editor_fullname_class_init): same.
(e_contact_editor_fullname_set_arg): same.
(e_contact_editor_fullname_get_arg): same.
* contact-editor/e-contact-editor-fullname.h (struct
_EContactEditorFullname): same.
* contact-editor/Makefile.am: don't build contact-editor-test now,
until contact-editor gets moved to gui/ and we can more easily
depend on the e_card_merging_* calls.
* backend/pas/pas-backend-ldap.c (ldap_error_to_response): return
CardIdAlreadyExists for LDAP_ALREADY_EXISTS.
* backend/idl/addressbook.idl: Add CardIdAlreadyExists to the
BookListener status enum.
* backend/ebook/e-book-types.h: add
E_BOOK_STATUS_CARD_ID_ALREADY_EXISTS.
* backend/ebook/e-book-listener.c
(e_book_listener_convert_status): add support for
CardIdAlreadyExists.
svn path=/trunk/; revision=10317
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-03-17 Chris Toshok <toshok@ximian.com>
* backend/ebook/e-book-listener.c
(e_book_listener_queue_writable_status): new function.
(impl_BookListener_report_writable): new function.
(e_book_listener_get_epv): fill in epv->notifyWritable.
* backend/ebook/e-book-listener.h: add writable status entries.
* backend/ebook/e-book.c (e_book_do_writable_event): new function.
(e_book_check_listener_queue): add WritableStatusEvent to the
switch.
(e_book_class_init): register writable_status signal.
* backend/ebook/e-book.h: add writable_status signal.
* backend/idl/addressbook.idl: add notifyWritable method to
BookListener.
* gui/widgets/e-minicard.c (e_minicard_class_init): add "editable"
arg.
(e_minicard_init): init editable.
(e_minicard_set_arg): loop over the minicard fields setting their
"editable".
(e_minicard_get_arg): add editable.
(supported_fields_cb): use editable when creating the
contact_editor.
(add_field): set "editable" when creatin the e_minicard.
* gui/widgets/e-minicard.h (struct _EMinicard): add "editable".
* gui/widgets/e-minicard-view.c (e_minicard_view_class_init): add
editable arg.
(e_minicard_view_init): init editable.
(create_card): pass editable to e_minicard canvas item.
(e_minicard_view_set_arg): bit of a hack - loop over all the
canvas items setting their "editable."
(e_minicard_view_get_arg): add editable.
(supported_fields_cb): use editable when creating the contact
editor.
* gui/widgets/e-minicard-view.h (struct _EMinicardView): add
"editable."
* gui/widgets/e-minicard-view-widget.c
(e_minicard_view_widget_class_init): add "editable" field.
(e_minicard_view_widget_init): init editable to FALSE.
(e_minicard_view_widget_set_arg): save editable, and pass it along
the e-minicard-view.
(e_minicard_view_widget_realize): same.
(e_minicard_view_widget_get_arg): add editable.
* gui/widgets/e-minicard-view-widget.h (struct
_EMinicardViewWidget): add "editable" field.
* gui/widgets/e-minicard-label.h (struct _EMinicardLabel): add
"editable" field.
* gui/widgets/e-minicard-label.c (e_minicard_label_class_init):
add "editable" arg.
(e_minicard_label_set_arg): editable, set it on the e_text too.
(e_minicard_label_get_arg): editable.
(e_minicard_label_construct): set the "editable" field when we
create the e_text cavas item
* gui/widgets/e-addressbook-view.c (e_addressbook_view_init):
default editable to FALSE.
(book_writable_cb): new function, set our editable field and
gtk_object_set it on the active view.
(e_addressbook_view_set_arg): set the active view's editable when
we set the view's book, and connect the "writable_status" signal
to book_writable_cb.
(change_view_type): same.
(supported_fields_cb): use our "editable" when creating the
contact editor.
* gui/widgets/e-addressbook-view.h (struct _EAddressbookView): add
editable field.
* gui/widgets/e-addressbook-model.c (e_addressbook_model_init):
change the default of editable to FALSE.
* backend/pas/pas-book.c (pas_book_report_writable): new function.
* backend/pas/pas-book.h: prototype for pas_book_report_writable.
* backend/pas/pas-backend-file.c (pas_backend_file_load_uri): if
we open the file O_RDWR (or create it) report it as writable. if
we can't open it as O_RDWR, try opening it read-only before we
attempt to create it.
* backend/pas/pas-backend-ldap.c
(pas_backend_ldap_process_authenticate_user): if we authenticate
successfully, grant write permissions (this is lacking but there's
really nothing we can do to determine the extent of the access
afforded a user.)
svn path=/trunk/; revision=8787
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-02-21 Chris Toshok <toshok@ximian.com>
* backend/pas/pas-book.c (pas_book_queue_get_supported_fields):
new function.
(impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): track
change to idl.
(pas_book_respond_get_supported_fields): new function.
* backend/pas/pas-book.h: add GetSupportedFields to the
PASOperation enum. Also, add a stringlist field to the PASRequest
struct. lastly, add a prototype for
pas_book_respond_get_supported_fields.
* backend/pas/pas-backend.h: remove prototype for
pas_backend_get_supported_fields, and remove it from the vtable.
* backend/pas/pas-backend.c (pas_backend_get_supported_fields):
remove.
(pas_backend_class_init): no vtable entry for get_supported_fields
anymore.
* backend/pas/pas-backend-ldap.c
(pas_backend_ldap_process_get_supported_fields): new function.
(pas_backend_ldap_process_client_requests): add case for
GetSupportedFields.
(pas_backend_ldap_class_init): get_supported_fields isn't in
vtable anymore.
* backend/pas/pas-backend-file.c
(pas_backend_file_process_get_supported_fields): new function.
(pas_backend_file_process_client_requests): add case for
GetSupportedFields.
(pas_backend_file_class_init): get_supported_fields isn't in
vtable anymore.
* backend/idl/addressbook.idl: Book::getSupportedFields now
returns void and add BookListener::notifySupportedFields.
* backend/ebook/test-client.c (get_fields_cb): new function.
(auth_user_cb): track change to e_book_get_supported_fields.
* backend/ebook/e-book.c
(e_book_do_response_get_supported_fields): new function.
(e_book_check_listener_queue): add case
GetSupportedFieldsResponse.
(e_book_get_supported_fields): switch to async model.
* backend/ebook/e-book.h: switch e_book_get_supported_fields to an
async model.
* backend/ebook/e-book-listener.c
(e_book_listener_queue_get_supported_fields_response): new
function.
(impl_BookListener_response_get_supported_fields): new function.
(e_book_listener_get_epv): fill in epv's "notifySupportedFields"
* backend/ebook/e-book-listener.h: add an async response for
GetSupportedFields and add a stringlist member to the
EBookListenerResponse struct.
svn path=/trunk/; revision=8316
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-02-17 Chris Toshok <toshok@ximian.com>
* backend/idl/addressbook.idl: add sequence<string> typedef, and
add getSupportedFields method.
* backend/pas/pas-book.c
(impl_GNOME_Evolution_Addressbook_Book_getSupportedFields): new
function.
* backend/pas/pas-backend.c (pas_backend_class_init): init
get_supported_fields = NULL.
(pas_backend_get_supported_fields): new function.
* backend/pas/pas-backend.h: add prototype for
pas_backend_get_supported_fields.
* backend/pas/pas-backend-file.c
(pas_backend_file_get_supported_fields): new function.
(pas_backend_file_class_init): fill in get_supported_fields.
* backend/pas/pas-backend-ldap.c
(pas_backend_ldap_get_supported_fields): new function.
(pas_backend_ldap_class_init): fill in get_supported_fields.
svn path=/trunk/; revision=8270
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2001-01-04 Chris Toshok <toshok@helixcode.com>
* backend/ebook/e-book-listener.c
(e_book_listener_queue_authentication_response): new function.
(impl_BookListener_respond_authentication_result): new function.
(e_book_listener_get_epv): fill in
epv->notifyAuthenticationResult.
* backend/ebook/e-book-listener.h: add AuthenticationResponse to
EBookListenerOperation.
* backend/ebook/e-book.c (e_book_authenticate_user): new function.
* backend/ebook/e-book.h: add prototype for
e_book_authenticate_user.
* backend/idl/addressbook.idl (GNOME:Evolution:Addressbook:Book):
add authenticateUser method.
(GNOME:Evolution:Addressbook:BookListener): add
AuthenticationFailed and AuthenticationRequired to CallStatus.
also add notifyAuthenticationResult method.
* backend/pas/pas-backend-file.c
(pas_backend_file_process_authenticate_user): dummy
authenticate_user function that always succeeds.
(pas_backend_file_process_client_requests): respond to the
AuthenticateUser request.
* backend/pas/pas-backend-ldap.c (pas_backend_ldap_build_query):
gtk_object_unref(sexp) => s_exp_unref(sexp).
(pas_backend_ldap_process_authenticate_user): fill in to use
ldap_simple_bind_s.
(pas_backend_ldap_process_client_requests): respond to the
AuthenticateUser request.
* backend/pas/pas-book.c (pas_book_queue_authenticate_user): new
function.
(impl_GNOME_Evolution_Addressbook_Book_authenticateUser): new
function.
(pas_book_respond_authenticate_user): new function.
(pas_book_get_epv): fill in epv->authenticateUser.
* backend/pas/pas-book.h: add AuthenticateUser operation type, and
add user/passwd to the PASRequest struct.
* gui/component/addressbook-storage.c
(addressbook_storage_get_source_by_uri): new function. should use
a hashtable, perhaps, but the lists will generally be small
anyway.
* gui/component/addressbook-storage.h: add prototype for
addressbook_storage_get_source_by_uri.
* gui/component/addressbook-config.c
(addressbook_source_dialog_set_source): fill in the binddn if the
auth page is shown.
* gui/component/addressbook.c (book_open_cb): shoe-horn
authentication in here. if the source was configured to use
authentication, authenticate the user after opening the ebook.
also, be paranoid and clear out the password after authenticating.
(book_auth_cb): callback for auth. set the "book" arg on the
view->view here.
(passwd_cb): set the view's passwd that'll be used in
book_open_cb.
(addressbook_view_free): g_free view->passwd.
svn path=/trunk/; revision=7265
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
this script + some grunt approximates the work:
s/Evolution_MessageList/GNOME_Evolution_MessageList/g;
s/GNOME_Evolution_MessageList_select_message/GNOME_Evolution_MessageList_selectMessage/g;
s/GNOME_Evolution_MessageList_open_message/GNOME_Evolution_MessageList_openMessage/g;
s/Evolution_Folder([ \t])/GNOME_Evolution_Folder$1/g;
s/Evolution_FolderTypeList/GNOME_Evolution_FolderTypeList/g;
s/Evolution_FolderBrowser/GNOME_Evolution_FolderBrowser/g;
s/GNOME_Evolution_FolderBrowser_get_message_list/GNOME_Evolution_FolderBrowser_getMessageList/g;
s/Evolution_LocalStorage/GNOME_Evolution_LocalStorage/g;
s/GNOME_Evolution_LocalStorage_update_folder/GNOME_Evolution_LocalStorage_updateFolder/g;
s/Evolution_ShellView/GNOME_Evolution_ShellView/g;
s/GNOME_Evolution_ShellView_set_message/GNOME_Evolution_ShellView_setMessage/g;
s/GNOME_Evolution_ShellView_unset_message/GNOME_Evolution_ShellView_unsetMessage/g;
s/GNOME_Evolution_ShellView_change_current_view/GNOME_Evolution_ShellView_changeCurrentView/g;
s/Evolution_StorageSetViewListener/GNOME_Evolution_StorageSetViewListener/g;
s/GNOME_Evolution_StorageSetViewListener_folder_selected/GNOME_Evolution_StorageSetViewListener_notifyFolderSelected/g;
s/GNOME_Evolution_StorageSetViewListener_storage_selected/GNOME_Evolution_StorageSetViewListener_notifyStorageSelected/g;
s/Evolution_StorageSetView/GNOME_Evolution_StorageSetView/g;
s/GNOME_Evolution_StorageSetView_add_listener/GNOME_Evolution_StorageSetView_addListener/g;
s/GNOME_Evolution_StorageSetView_remove_listener/GNOME_Evolution_StorageSetView_removeListener/g;
s/Evolution_Shell/GNOME_Evolution_Shell/g;
s/GNOME_Evolution_Shell_get_component_for_type/GNOME_Evolution_Shell_getComponentByType/g;
s/GNOME_Evolution_Shell_user_select_folder/GNOME_Evolution_Shell_selectUserFolder/g;
s/GNOME_Evolution_Shell_get_local_storage/GNOME_Evolution_Shell_getLocalStorage/g;
s/GNOME_Evolution_Shell_create_storage_set_view/GNOME_Evolution_Shell_createStorageSetView/g;
s/Evolution_FolderSelectionListener/GNOME_Evolution_FolderSelectionListener/g;
s/GNOME_Evolution_FolderSelectionListener_selected/GNOME_Evolution_FolderSelectionListener_notifySelected/g;
s/GNOME_Evolution_FolderSelectionListener_cancel/GNOME_Evolution_FolderSelectionListener_notifyCanceled/g;
s/Evolution_Storage/GNOME_Evolution_Storage/g;
s/GNOME_Evolution_Storage_add_listener/GNOME_Evolution_Storage_addListener/g;
s/GNOME_Evolution_Storage_remove_listener/GNOME_Evolution_Storage_removeListener/g;
s/GNOME_Evolution_StorageListener_destroyed/GNOME_Evolution_StorageListener_notifyDestroyed/g;
s/GNOME_Evolution_StorageListener_new_folder/GNOME_Evolution_StorageListener_notifyFolderCreated/g;
s/GNOME_Evolution_StorageListener_update_folder/GNOME_Evolution_StorageListener_notifyFolderUpdated/g;
s/GNOME_Evolution_StorageListener_removed_folder/GNOME_Evolution_StorageListener_notifyFolderRemoved/g;
s/GNOME_Evolution_StorageRegistry_register_storage/GNOME_Evolution_StorageRegistry_addStorage/g;
s/GNOME_Evolution_StorageRegistry_unregister_storage/GNOME_Evolution_StorageRegistry_removeStorageByName/g;
s/Evolution_ShellComponent/GNOME_Evolution_ShellComponent/g;
s/GNOME_Evolution_ShellComponent_set_owner/GNOME_Evolution_ShellComponent_setOwner/g;
s/GNOME_Evolution_ShellComponent_unset_owner/GNOME_Evolution_ShellComponent_unsetOwner/g;
s/GNOME_Evolution_ShellComponent_create_view/GNOME_Evolution_ShellComponent_createView/g;
s/GNOME_Evolution_ShellComponent_async_create_folder/GNOME_Evolution_ShellComponent_addFolderAsync/g;
s/GNOME_Evolution_ShellComponent_async_remove_folder/GNOME_Evolution_ShellComponent_removeFolderAsync/g;
s/GNOME_Evolution_ShellComponent_populate_folder_context_menu/GNOME_Evolution_ShellComponent_populateFolderContextMenu/g;
s/GNOME_Evolution_ShellComponentListener_report_result/GNOME_Evolution_ShellComponentListener_notifyResult/g;
s/Evolution_Session/GNOME_Evolution_Session/g;
s/GNOME_Evolution_Session_save_configuration/GNOME_Evolution_Session_saveConfiguration/g;
s/GNOME_Evolution_Session_load_configuration/GNOME_Evolution_Session_loadConfiguration/g;
s/Evolution_Calendar_Cal/GNOME_Evolution_Calendar_Cal/g;
s/GNOME_Evolution_Calendar_Cal_get_n_objects/GNOME_Evolution_Calendar_Cal_countObjects/g;
s/GNOME_Evolution_Calendar_Cal_get_object/GNOME_Evolution_Calendar_Cal_getObject/g;
s/GNOME_Evolution_Calendar_Cal_get_uids/GNOME_Evolution_Calendar_Cal_getUIds/g;
s/GNOME_Evolution_Calendar_Cal_get_changed_uids/GNOME_Evolution_Calendar_Cal_getChangedUIds/g;
s/GNOME_Evolution_Calendar_Cal_get_objects_in_range/GNOME_Evolution_Calendar_Cal_getObjectsInRange/g;
s/GNOME_Evolution_Calendar_Cal_get_alarms_in_range/GNOME_Evolution_Calendar_Cal_getAlarmsInRange/g;
s/GNOME_Evolution_Calendar_Cal_get_alarms_for_object/GNOME_Evolution_Calendar_Cal_getAlarmsForObject/g;
s/GNOME_Evolution_Calendar_Cal_update_object/GNOME_Evolution_Calendar_Cal_updateObject/g;
s/GNOME_Evolution_Calendar_Cal_remove_object/GNOME_Evolution_Calendar_Cal_removeObject/g;
s/Evolution_Calendar_Listener/GNOME_Evolution_Calendar_Listener/g;
s/GNOME_Evolution_Calendar_Listener_cal_loaded/GNOME_Evolution_Calendar_Listener_notifyCalLoaded/g;
s/GNOME_Evolution_Calendar_Listener_obj_updated/GNOME_Evolution_Calendar_Listener_notifyObjUpdated/g;
s/GNOME_Evolution_Calendar_Listener_obj_removed/GNOME_Evolution_Calendar_Listener_notifyObjRemoved/g;
s/Evolution_Calendar_CalFactory/GNOME_Evolution_Calendar_CalFactory/g;
s/GNOME_Evolution_Calendar_CalFactory_load/GNOME_Evolution_Calendar_CalFactory_load/g;
s/GNOME_Evolution_Calendar_CalFactory_create/GNOME_Evolution_Calendar_CalFactory_create/g;
s/Evolution_Composer/GNOME_Evolution_Composer/g;
s/GNOME_Evolution_Composer_set_headers/GNOME_Evolution_Composer_setHeaders/g;
s/GNOME_Evolution_Composer_set_body_text/GNOME_Evolution_Composer_setBodyText/g;
s/GNOME_Evolution_Composer_attach_MIME/GNOME_Evolution_Composer_attachMIME/g;
s/GNOME_Evolution_Composer_attach_data/GNOME_Evolution_Composer_attachData/g;
s/GNOME_Evolution_Composer_show/GNOME_Evolution_Composer_show/g;
s/Evolution_Addressbook_SelectNames/GNOME_Evolution_Addressbook_SelectNames/g;
s/GNOME_Evolution_Addressbook_SelectNames_add_section/GNOME_Evolution_Addressbook_SelectNames_addSection/g;
s/GNOME_Evolution_Addressbook_SelectNames_get_entry_for_section/GNOME_Evolution_Addressbook_SelectNames_getEntryBySection/g;
s/GNOME_Evolution_Addressbook_SelectNames_activate_dialog/GNOME_Evolution_Addressbook_SelectNames_activateDialog/g;
s/Evolution_CardCursor/GNOME_Evolution_Addressbook_CardCursor/g;
s/GNOME_Evolution_Addressbook_CardCursor_get_length/GNOME_Evolution_Addressbook_CardCursor_getLength/g;
s/GNOME_Evolution_Addressbook_CardCursor_get_nth/GNOME_Evolution_Addressbook_CardCursor_getNth/g;
s/Evolution_BookViewListener/GNOME_Evolution_Addressbook_BookViewListener/g;
s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_added/GNOME_Evolution_Addressbook_BookViewListener_notifyCardAdded/g;
s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_removed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardRemoved/g;
s/GNOME_Evolution_Addressbook_BookViewListener_signal_card_changed/GNOME_Evolution_Addressbook_BookViewListener_notifyCardChanged/g;
s/GNOME_Evolution_Addressbook_BookViewListener_signal_sequence_complete/GNOME_Evolution_Addressbook_BookViewListener_notifySequenceComplete/g;
s/GNOME_Evolution_Addressbook_BookViewListener_signal_status_message/GNOME_Evolution_Addressbook_BookViewListener_notifyStatusMessage/g;
s/Evolution_BookView/GNOME_Evolution_Addressbook_BookView/g;
s/Evolution_Book/GNOME_Evolution_Addressbook_Book/g;
s/GNOME_Evolution_Addressbook_Book_get_vcard/GNOME_Evolution_Addressbook_Book_getVCard/g;
s/GNOME_Evolution_Addressbook_Book_can_write/GNOME_Evolution_Addressbook_Book_isWriteable/g;
s/GNOME_Evolution_Addressbook_Book_can_write_card/GNOME_Evolution_Addressbook_Book_isCardWriteable/g;
s/GNOME_Evolution_Addressbook_Book_create_card/GNOME_Evolution_Addressbook_Book_addCard/g;
s/GNOME_Evolution_Addressbook_Book_remove_card/GNOME_Evolution_Addressbook_Book_removeCard/g;
s/GNOME_Evolution_Addressbook_Book_modify_card/GNOME_Evolution_Addressbook_Book_modifyCard/g;
s/GNOME_Evolution_Addressbook_Book_get_cursor/GNOME_Evolution_Addressbook_Book_getCursor/g;
s/GNOME_Evolution_Addressbook_Book_get_book_view/GNOME_Evolution_Addressbook_Book_getBookView/g;
s/GNOME_Evolution_Addressbook_Book_get_changes/GNOME_Evolution_Addressbook_Book_getChanges/g;
s/GNOME_Evolution_Addressbook_Book_check_connection/GNOME_Evolution_Addressbook_Book_checkConnection/g;
s/GNOME_Evolution_Addressbook_Book_get_static_capabilities/GNOME_Evolution_Addressbook_Book_getStaticCapabilities/g;
s/GNOME_Evolution_Addressbook_Book_get_name/GNOME_Evolution_Addressbook_Book_getName/g;
s/Evolution_BookListener/GNOME_Evolution_Addressbook_BookListener/g;
s/GNOME_Evolution_Addressbook_BookListener_respond_create_card/GNOME_Evolution_Addressbook_BookListener_notifyCardCreated/g;
s/GNOME_Evolution_Addressbook_BookListener_respond_remove_card/GNOME_Evolution_Addressbook_BookListener_notifyCardRemoved/g;
s/GNOME_Evolution_Addressbook_BookListener_respond_modify_card/GNOME_Evolution_Addressbook_BookListener_notifyCardModified/g;
s/GNOME_Evolution_Addressbook_BookListener_report_open_book_progress/GNOME_Evolution_Addressbook_BookListener_notifyOpenBookProgress/g;
s/GNOME_Evolution_Addressbook_BookListener_respond_open_book/GNOME_Evolution_Addressbook_BookListener_notifyBookOpened/g;
s/GNOME_Evolution_Addressbook_BookListener_respond_get_cursor/GNOME_Evolution_Addressbook_BookListener_notifyCursorRequested/g;
s/GNOME_Evolution_Addressbook_BookListener_respond_get_view/GNOME_Evolution_Addressbook_BookListener_notifyViewRequested/g;
s/GNOME_Evolution_Addressbook_BookListener_respond_get_changes/GNOME_Evolution_Addressbook_BookListener_notifyChangesRequested/g;
s/GNOME_Evolution_Addressbook_BookListener_report_connection_status/GNOME_Evolution_Addressbook_BookListener_notifyConnectionStatus/g;
s/Evolution_BookFactory/GNOME_Evolution_Addressbook_BookFactory/g;
s/GNOME_Evolution_Addressbook_BookFactory_open_book/GNOME_Evolution_Addressbook_BookFactory_openBook/g;
s/Evolution_SummaryComponent/GNOME_Evolution_Summary_Component/g;
s/GNOME_Evolution_Summary_SummaryComponent_set_owner/GNOME_Evolution_Summary_Component_setOwner/g;
s/GNOME_Evolution_Summary_SummaryComponent_unset_owner/GNOME_Evolution_Summary_Component_unsetOwner/g;
s/GNOME_Evolution_Summary_SummaryComponent_create_view/GNOME_Evolution_Summary_Component_createView/g;
s/GNOME_Evolution_Summary_SummaryComponent_destroy_view/GNOME_Evolution_Summary_Component_destroyView/g;
s/Evolution_Summary([ \t])/GNOME_Evolution_Summary_ViewFrame$1/g;
s/Evolution_Summary_set_title/GNOME_Evolution_Summary_ViewFrame_setTitle/g;
s/Evolution_Summary_set_icon/GNOME_Evolution_Summary_ViewFrame_setIcon/g;
s/Evolution_Summary_update_component/GNOME_Evolution_Summary_ViewFrame_updateComponent/g;
s/GNOME_GNOME/GNOME/g;
s/GNOME_GNOME/GNOME/g;
s/GNOME_GNOME/GNOME/g;
svn path=/trunk/; revision=6535
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-11-07 JP Rosevear <jpr@helixcode.com>
* Makefile.am: Build e-dbhash.[hc]
* e-dbhash.[hc]: New routines to manage a db database on disk that
contains md5 hashed data and indexed by uids. Provides comparison
functions and such so the caller does not have to do the md5 bits.
2000-11-07 JP Rosevear <jpr@helixcode.com>
* backend/pas/pas-book.h: Update PASRequest structure
* backend/pas/pas-book.c (impl_Evolution_Book_get_changes): update param name
(pas_book_queue_get_changes): Use PASRequest change_id slot
* backend/pas/pas-backend-file.c (pas_backend_file_book_view_copy):
Properly copy change_id and change_context
(pas_backend_file_book_view_free): Free change_id/change_context
(pas_backend_file_changes_foreach_key): Callback to figure out the
deleted cards
(pas_backend_file_changes): Use new e-dbhash stuff to implement.
Write out updated hash
* backend/idl/addressbook.idl: Rename get_changes param
svn path=/trunk/; revision=6489
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-10-31 JP Rosevear <jpr@helixcode.com>
* conduit/address-conduit.c (cursor_cb): Let the warning make sense
(compute_pid): remove
(local_record_from_ecard): Create local record from ecard - not finished
(local_record_from_uid): Obtain local_record from uid with the proper
e-book way
(set_status_cleared): Add empty callback
(add_archive_record): kill
(delete_archive_record): kill
(archive_record): Add empty callback
(conduit_get_gpilot_conduit): Update signal connects
* backend/pas/pas-backend-file.c (vcard_change_type): Function to determine
the type of change - not finished
(pas_backend_file_search_changes): Create a view and callback based on
how the cards have changed
(pas_backend_file_process_get_changes): Implement the get changes operation
for files
(pas_backend_file_process_client_requests): Add GetChanges method for
processing
* backend/pas/pas-book.c (pas_book_queue_get_changes): Add changes to
the list
(impl_Evolution_Book_get_changes): implement object method
(pas_book_get_epv): Add get changes to epv
(pas_book_respond_get_changes): Respond to the get changes operation
* backend/pas/pas-book.h: Add GetChanges PASOperation
* backend/idl/addressbook.idl: add get_changes and respond_get_changes
methods
* backend/ebook/e-book.c (e_book_get_changes): Client function
to a view of the changed objects
* backend/ebook/e-book.h: New prototype
2000-10-31 JP Rosevear <jpr@helixcode.com>
* conduits/todo/todo-conduit.h: Remove add/del/mod hashes and
add changed_hash.
* conduits/calendar/calendar-conduit.h: ditto
* conduits/todo/todo-conduit.c (next_changed_item): Utility function
to get the next "really" changed item (changed status can be cleared now)
(compute_status): Compute status based on changed_hash
(pre_sync): Fill changed_hash and counts adds/mods/dels
(set_status_cleared): New callback handler - avoid double syncing
(for_each_modified): Use next_changed_item to iterate
(add_archive_record): kill
(delete_archive_record): kill
(archive_record): New callback handler - mark/unmark archive status
(conduit_get_gpilot_conduit): Adjust signal connects
* conduits/calendar/calendar-conduit.c: ditto
svn path=/trunk/; revision=6297
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-09-22 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/e-book-view-listener.c,
backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c,
backend/ebook/e-book-view.h, backend/idl/addressbook.idl,
backend/pas/pas-book-view.c, backend/pas/pas-book-view.h: Added a
function to set the status message associated with a given view.
This is not yet implemented in the gui.
svn path=/trunk/; revision=5549
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-09-22 Christopher James Lahey <clahey@helixcode.com>
* ui/Makefile.am: Added evolution-addressbook-ldap.xml.
* ui/evolution-addressbook-ldap.xml: New file. (A Variation on
evolution-addressbook.xml)
* ui/evolution-addressbook.xml: Added View All and Stop buttons.
From addressbook/ChangeLog:
2000-09-22 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/e-book.c, backend/ebook/e-book.h,
backend/idl/addressbook.idl, backend/pas/pas-backend-file.c,
backend/pas/pas-backend-ldap.c, backend/pas-backend.c,
backend/pas/pas-backend.h, backend/pas/pas-book.c,
backend/pas/pas-book.h: Added a function to query static
capabilities (capabilities that can be reported immediately) and
implemented them in the 2 servers.
* gui/component/addressbook.c: Added a View All button and a Stop
button. Sorted out the new directory server stuff a bit.
* gui/widgets/e-addressbook-model.c,
gui/widgets/e-addressbook-model.h: Cleaned up a bit. Added a stop
function. Check for capabilities before deciding whether to load
all cards when initially viewed.
* gui/widgets/e-addressbook-view.c,
gui/widgets/e-addressbook-view.h: Added stop and view all
functions.
* gui/widgets/e-minicard-view-widget.c,
gui/widgets/e-minicard-view-widget.h,
gui/widgets/e-minicard-view.c, gui/widgets/e-minicard-view.h:
Added a stop function. Check for capabilities before deciding
whether to load all cards when initially viewed.
svn path=/trunk/; revision=5547
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-05-30 Christopher James Lahey <clahey@helixcode.com>
* backend/ebook/e-book-view-listener.c,
backend/ebook/e-book-view-listener.h, backend/ebook/e-book-view.c,
backend/ebook/e-book-view.h, backend/idl/addressbook.idl,
backend/pas/pas-backend-file.c, backend/pas/pas-backend-ldap.c,
backend/pas/pas-book-factory.c, backend/pas/pas-book-view.c,
backend/pas/pas-book-view.h: Added "sequence_complete" signal.
* printing/e-contact-print.c: Made printing wait for
"sequence_complete" signal and made it sort.
svn path=/trunk/; revision=3279
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* backend/pas/pas-book.h: add typedefs for the can_write
functions, and add parameters to pas_book_new.
* backend/pas/pas-book.c (pas_book_construct): add can_write/can_write_card params.
(pas_book_new): same.
(impl_Evolution_Book_can_write): new function.
(impl_Evolution_Book_can_write_card): same.
(pas_book_get_epv): assign the can_write/can_write_card slots in the epv.
* backend/pas/pas-backend-ldap.c (pas_backend_ldap_can_write): new function.
(pas_backend_ldap_can_write_card): same.
(pas_backend_ldap_add_client): add can_write/can_write_card to pas_book_new call.
* backend/pas/pas-backend-file.c (pas_backend_file_can_write_card): new function, calls can_write.
(pas_backend_file_can_write): same.
(can_write): return TRUE if we can write to the addressbook file.
(pas_backend_file_add_client): add can_write/can_write_card to pas_book_new call.
* backend/idl/addressbook.idl (Evolution): add can_write and
can_write_card permission requests.
svn path=/trunk/; revision=3093
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-04-30 Federico Mena Quintero <federico@helixcode.com>
* backend/ebook/e-book-types.h (EBookStatus): Added new status
values for the IDL stuff.
* backend/pas/pas-book-factory.h (PASBookFactoryClass): New
"last_book_gone" signal.
* backend/pas/pas-book-factory.c
(pas_book_factory_launch_backend): Better error handling.
(pas_book_factory_process_queue): Let
pas_book_factory_process_request() free the request.
(pas_book_factory_process_request): Free the request here.
Perform better error handling.
(free_active_server_map_entry): Free an active server map entry;
free the URI key and unref the backend value. This function was
renamed; the old one was trying to CORBA_Object_unref() a GTK+
object!
(remove_backends_entry): Free a backend table entry; free the URI
key.
(backend_last_client_gone_cb): Remove the backend from the active
server map and emit the "last_book_gone" signal if appropriate.
(pas_book_factory_get_n_backends): New function to query the
number of running backends in an addressbook factory.
* backend/idl/addressbook.idl (BookListener::CallStatus): Added a
ProtocolNotSupported code. This is for when the addressbook
factory cannot find a provider for the requested URI.
* backend/pas/pas-backend.h (PASBackendClass): New
"last_client_gone" signal.
(PASBackendClass): New get_uri virtual method.
* backend/pas/pas-backend.c (pas_backend_load_uri): Return a
gboolean success code.
(pas_backend_add_client): Return a gboolean success code.
(pas_backend_last_client_gone): New function used by backend
implementations to notify upwards when the backend's last client
is destroyed.
(pas_backend_get_uri): New function to get the URI of a backend.
* backend/pas/pas-backend-file.c (pas_backend_file_add_client):
Pass the backend as the closure data to the "destroy" handler of
the book. We cannot call pas_book_get_backend() in the callback
since the book's private data has already been destroyed when the
callback is invoked. Alternatively, we could move the private
data destruction step to the book's ::finalize() method.
(pas_backend_file_book_destroy_cb): Get the backend from the
callback's data, not from the book.
(pas_backend_file_remove_client): Remove the book from the list of
clients. When all clients go away, call
pas_backend_last_client_gone().
(PASBackendFilePrivate): Added an uri field.
(pas_backend_file_get_uri): Implement the get_uri method.
(pas_backend_file_load_uri): Return a gboolean success code.
Also, store the URI in the private structure.
(pas_backend_file_add_client): Return a gboolean success code.
Also, call pas_backend_last_client_gone() if appropriate.
(pas_backend_file_destroy): Free the bf->priv->uri.
* backend/pas/pas-backend-ldap.c (pas_backend_ldap_add_client):
Pass the backend as the closure data to the "destroy" handler of
the book. See above for rationale.
(pas_backend_ldap_book_destroy_cb): Get the backend from the
callback's data.
(pas_backend_ldap_remove_client): Remove the book from the list of
clients. When all clients go away, call
pas_backend_last_client_gone().
(pas_backend_ldap_load_uri): Return a gboolean success code.
(pas_backend_ldap_add_client): Return a gboolean success code.
Also, call pas_backend_last_client_gone() if appropriate.
(PASBackendLDAPPrivate): New uri field.
(pas_backend_ldap_get_uri): Implement the get_uri method.
(pas_backend_ldap_load_uri): Store the uri in the private
structure.
(pas_backend_ldap_destroy): Free the bl->priv->uri.
svn path=/trunk/; revision=2705
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-04-03 Christopher James Lahey <clahey@helixcode.com>
* addressbook/backend/ebook/e-card-cursor.h,
addressbook/backend/ebook/e-card.c: A bit of clean up.
* addressbook/backend/ebook/e-book-types.h,
addressbook/backend/ebook/e-book-view-listener.c,
addressbook/backend/ebook/e-book-view-listener.h,
addressbook/backend/ebook/e-book-view.c,
addressbook/backend/ebook/e-book-view.h,
addressbook/backend/pas/pas-book-view.c,
addressbook/backend/pas/pas-book-view.h: New files for live views.
* addressbook/backend/ebook/Makefile.am,
addressbook/backend/ebook/e-book-listener.c,
addressbook/backend/ebook/e-book-listener.h,
addressbook/backend/ebook/e-book.c,
addressbook/backend/ebook/e-book.h,
addressbook/backend/ebook/test-client-list.c,
addressbook/backend/ebook/test-client.c,
addressbook/backend/pas/pas-backend-file.c,
addressbook/backend/pas/pas-book.c,
addressbook/backend/pas/pas-book.h,
addressbook/backend/idl/addressbook.idl: Added live views and
searching to the interface (neither is working yet.)
svn path=/trunk/; revision=2280
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-03-27 Christopher James Lahey <clahey@helixcode.com>
* addressbook/backend/ebook/test-card.c: Fixed some warnings.
* addressbook/backend/ebook/test-client.c: Added a section to test
cursors and returning an id when adding.
* addressbook/backend/ebook/e-card-pairs.h: Removed the address
pairs since they were added to e-card.c.
* addressbook/backend/ebook/e-card.c,
addressbook/backend/ebook/e-card.h: Made the set_id function take
a const char *.
* addressbook/backend/ebook/e-book-listener.c,
addressbook/backend/ebook/e-book-listener.h,
addressbook/backend/ebook/e-book.c,
addressbook/backend/ebook/e-book.h,
addressbook/backend/idl/addressbook.idl,
addressbook/backend/pas/pas-backend-file.c,
addressbook/backend/pas/pas-book.c,
addressbook/backend/pas/pas-book.h: Added a get_all_cards function
and made the response to the create_card function include the card
id.
* addressbook/backend/ebook/Makefile.am: Added e-card-cursor.c and
e-card-cursor.h.
* addressbook/backend/ebook/e-card-cursor.c,
addressbook/backend/ebook/e-card-cursor.h: New class for proxying
to an Evolution_CardCursor.
* addressbook/backend/pas/Makefile.am: Added pas-card-cursor.c and
pas-card-cursor.h.
* addressbook/backend/pas/pas-card-cursor.c,
addressbook/backend/pas/pas-card-cursor.h: New bonobo class for
making an Evolution_CardCursor server.
svn path=/trunk/; revision=2205
|
|
|
|
| |
svn path=/trunk/; revision=2151
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2000-03-22 Christopher James Lahey <clahey@helixcode.com>
* addressbook/Makefile.am, configure.in: Added the
addressbook/backend directory.
* addressbook/backend/Makefile.am: Removed the libversit directory
as it's now included in the base evolution directory.
* addressbook/backend/ebook/e-card-pairs.h,
addressbook/backend/ebook/Makefile.am: Changed the place where
libversit is looked for.
* addressbook/backend/ebook/e-book-listener.c: Fixed some
indentation.
* addressbook/backend/ebook/e-card-pairs.h,
addressbook/backend/ebook/e-card-types.h: Commented out some code
to get this to compile.
* addressbook/backend/ebook/e-card.c,
addressbook/backend/ebook/e-card.h: Turned this into a GTK+
object.
* addressbook/backend/pas/pas.c,
addressbook/backend/ebook/test-client.c: Include gnome.h and
gnorba.h.
* addressbook/backend/idl/addressbook.idl: Include Bonobo.idl
instead of bonobo-unknown.idl.
* addressbook/backend/pas/pas-backend-file.c,
addressbook/backend/pas/pas-book.c,
addressbook/contact-editor/test-editor.c,
addressbook/contact-editor/e-contact-editor.c,
addressbook/printing/e-contact-print.c,
addressbook/printing/test-contact-print-style-editor.c,
addressbook/printing/test-print.c: Killed some warnings.
svn path=/trunk/; revision=2150
|
|
|
|
| |
svn path=/trunk/; revision=2127
|
|
|
|
| |
svn path=/trunk/; revision=1626
|
|
svn path=/trunk/; revision=1584
|