diff options
Diffstat (limited to 'addressbook/backend/ebook/e-book.c')
-rw-r--r-- | addressbook/backend/ebook/e-book.c | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/addressbook/backend/ebook/e-book.c b/addressbook/backend/ebook/e-book.c index 65ea7a595d..873aa77805 100644 --- a/addressbook/backend/ebook/e-book.c +++ b/addressbook/backend/ebook/e-book.c @@ -522,6 +522,43 @@ e_book_get_static_capabilities (EBook *book) return ret_val; } +EList * +e_book_get_supported_fields (EBook *book) +{ + CORBA_Environment ev; + GNOME_Evolution_Addressbook_stringlist *stringlist; + EList *list; + int i; + + CORBA_exception_init (&ev); + + if (book->priv->load_state != URILoaded) { + g_warning ("e_book_unload_uri: No URI is loaded!\n"); + return NULL; + } + + stringlist = GNOME_Evolution_Addressbook_Book_getSupportedFields(book->priv->corba_book, &ev); + + if (ev._major != CORBA_NO_EXCEPTION) { + g_warning ("e_book_get_supported_fields: Exception " + "during get_supported_fields!\n"); + CORBA_exception_free (&ev); + return NULL; + } + + list = e_list_new ((EListCopyFunc)g_strdup, (EListFreeFunc)g_free, NULL); + + for (i = 0; i < stringlist->_length; i ++) { + e_list_append (list, g_strdup (stringlist->_buffer[i])); + } + + CORBA_free (stringlist); + + CORBA_exception_free (&ev); + + return list; +} + static gboolean e_book_construct (EBook *book) { |