Add a test for getting arbitrary fields.
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
This commit is contained in:
@ -1,3 +1,16 @@
|
||||
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.
|
||||
|
||||
2001-12-27 Jon Trowbridge <trow@ximian.com>
|
||||
|
||||
* gui/component/select-names/e-select-names.c
|
||||
|
||||
@ -643,6 +643,8 @@ activate_factories_for_uri (EBook *book, const char *uri)
|
||||
|
||||
if (info_list->_length == 0) {
|
||||
g_warning ("Can't find installed BookFactory that handles protocol '%s'.", protocol);
|
||||
g_free (protocol);
|
||||
g_free (query);
|
||||
CORBA_exception_free (&ev);
|
||||
goto shutdown;
|
||||
}
|
||||
@ -766,7 +768,6 @@ e_book_unload_uri (EBook *book)
|
||||
CORBA_exception_init (&ev);
|
||||
|
||||
bonobo_object_release_unref (book->priv->corba_book, &ev);
|
||||
|
||||
if (ev._major != CORBA_NO_EXCEPTION) {
|
||||
g_warning ("e_book_unload_uri: Exception releasing "
|
||||
"remote book interface!\n");
|
||||
|
||||
@ -78,6 +78,7 @@ main (int argc, char **argv)
|
||||
EList *address;
|
||||
EList *phone;
|
||||
EList *email;
|
||||
EList *arbitrary;
|
||||
EIterator *iterator;
|
||||
ECardDate *bday;
|
||||
|
||||
@ -112,6 +113,7 @@ main (int argc, char **argv)
|
||||
"role", &role,
|
||||
"nickname", &nickname,
|
||||
"fburl", &fburl,
|
||||
"arbitrary", &arbitrary,
|
||||
"birth_date", &bday,
|
||||
NULL);
|
||||
if ( fname ) {
|
||||
@ -148,7 +150,15 @@ main (int argc, char **argv)
|
||||
}
|
||||
if ( fburl ) {
|
||||
printf("Free Busy URL : %s\n", fburl);
|
||||
}
|
||||
}
|
||||
if ( arbitrary ) {
|
||||
iterator = e_list_get_iterator(arbitrary);
|
||||
for (; e_iterator_is_valid(iterator); e_iterator_next(iterator)) {
|
||||
ECardArbitrary *arbitrary = (ECardArbitrary *) e_iterator_get(iterator);
|
||||
printf("Arbitrary : %s, %s\n", arbitrary->key, arbitrary->value);
|
||||
}
|
||||
gtk_object_unref(GTK_OBJECT(iterator));
|
||||
}
|
||||
if ( bday ) {
|
||||
printf("BDay : %4d-%02d-%02d\n", bday->year, bday->month, bday->day);
|
||||
}
|
||||
|
||||
@ -90,6 +90,36 @@ compare_category (ECardSimple *card, const char *str,
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
compare_arbitrary (ECardSimple *card, const char *str,
|
||||
char *(*compare)(const char*, const char*))
|
||||
{
|
||||
EList *list;
|
||||
EIterator *iterator;
|
||||
ECard *ecard;
|
||||
gboolean ret_val = FALSE;
|
||||
|
||||
gtk_object_get (GTK_OBJECT (card),
|
||||
"card", &ecard,
|
||||
NULL);
|
||||
gtk_object_get (GTK_OBJECT (ecard),
|
||||
"arbitrary", &list,
|
||||
NULL);
|
||||
|
||||
for (iterator = e_list_get_iterator(list); e_iterator_is_valid (iterator); e_iterator_next (iterator)) {
|
||||
const ECardArbitrary *arbitrary = e_iterator_get (iterator);
|
||||
|
||||
if (compare(arbitrary->key, str)) {
|
||||
ret_val = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
gtk_object_unref (GTK_OBJECT (iterator));
|
||||
e_card_free_empty_lists (ecard);
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
static struct prop_info {
|
||||
ECardSimpleField field_id;
|
||||
const char *query_prop;
|
||||
@ -127,6 +157,7 @@ static struct prop_info {
|
||||
LIST_PROP ( "phone", "phone", compare_phone ),
|
||||
LIST_PROP ( "address", "address", compare_address ),
|
||||
LIST_PROP ( "category", "category", compare_category ),
|
||||
LIST_PROP ( "arbitrary", "arbitrary", compare_arbitrary )
|
||||
};
|
||||
static int num_prop_infos = sizeof(prop_info_table) / sizeof(prop_info_table[0]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user