aboutsummaryrefslogtreecommitdiffstats
path: root/addressbook/backend/ebook/e-book.c
diff options
context:
space:
mode:
Diffstat (limited to 'addressbook/backend/ebook/e-book.c')
-rw-r--r--addressbook/backend/ebook/e-book.c37
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)
{