[evolution-data-server/openismus-work: 3/5] Forward the 'requested_fields' of e_book_get_book_view() through dbus apis.
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server/openismus-work: 3/5] Forward the 'requested_fields' of e_book_get_book_view() through dbus apis.
- Date: Wed, 15 Jun 2011 23:58:51 +0000 (UTC)
commit 8c0028dc339bf05012b8def39e7cdade9756ffa5
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Wed Jun 15 20:43:59 2011 +0900
Forward the 'requested_fields' of e_book_get_book_view() through dbus apis.
Create an array of strings from the passed GList and pass the array
through the newly added parameter of the getBookView dbus api.
addressbook/libebook/e-book.c | 47 ++++++++++++++++++++++++++++++++++------
1 files changed, 40 insertions(+), 7 deletions(-)
---
diff --git a/addressbook/libebook/e-book.c b/addressbook/libebook/e-book.c
index b747bcc..fbfac59 100644
--- a/addressbook/libebook/e-book.c
+++ b/addressbook/libebook/e-book.c
@@ -1780,6 +1780,24 @@ e_book_remove_contacts_async (EBook *book,
return TRUE;
}
+static gchar **
+string_array_from_list (GList *list)
+{
+ gchar **array = NULL;
+ gint size, i;
+ GList *l;
+
+ if (list) {
+ size = g_list_length (list);
+ array = g_new0 (gchar *, size + 1);
+
+ for (l = list, i = 0; l; l = l->next, i++)
+ array[i] = (gchar *)l->data;
+ }
+
+ return array;
+}
+
/**
* e_book_get_book_view:
* @book: an #EBook
@@ -1806,17 +1824,21 @@ e_book_get_book_view (EBook *book,
GError *err = NULL;
EGdbusBookView *gdbus_bookview;
gchar *sexp, *view_path;
+ gchar **fields_array = NULL;
gboolean ret = TRUE;
e_return_error_if_fail (E_IS_BOOK (book), E_BOOK_ERROR_INVALID_ARG);
e_return_error_if_fail (book->priv->gdbus_book, E_BOOK_ERROR_REPOSITORY_OFFLINE);
- sexp = e_book_query_to_string (query);
+ sexp = e_book_query_to_string (query);
+ fields_array = string_array_from_list (requested_fields);
- if (!e_gdbus_book_call_get_book_view_sync (book->priv->gdbus_book, sexp, max_results, &view_path, NULL, &err)) {
+ if (!e_gdbus_book_call_get_book_view_sync (book->priv->gdbus_book, sexp,
+ (const gchar * const *)fields_array,
+ max_results, &view_path, NULL, &err)) {
*book_view = NULL;
g_free (sexp);
-
+ g_free (fields_array);
return unwrap_gerror (err, error);
}
@@ -1838,6 +1860,7 @@ e_book_get_book_view (EBook *book,
g_free (view_path);
g_free (sexp);
+ g_free (fields_array);
return ret;
}
@@ -1911,6 +1934,7 @@ e_book_async_get_book_view (EBook *book,
gpointer closure)
{
AsyncData *data;
+ gchar **fields_array = NULL;
gchar *sexp;
e_return_async_error_val_if_fail (E_IS_BOOK (book), E_BOOK_ERROR_INVALID_ARG);
@@ -1922,11 +1946,15 @@ e_book_async_get_book_view (EBook *book,
data->callback = cb;
data->closure = closure;
- sexp = e_book_query_to_string (query);
+ sexp = e_book_query_to_string (query);
+ fields_array = string_array_from_list (requested_fields);
- e_gdbus_book_call_get_book_view (book->priv->gdbus_book, sexp, max_results, NULL, get_book_view_reply, data);
+ e_gdbus_book_call_get_book_view (book->priv->gdbus_book, sexp,
+ (const gchar * const *)fields_array,
+ max_results, NULL, get_book_view_reply, data);
g_free (sexp);
+ g_free (fields_array);
return 0;
}
#endif
@@ -1956,6 +1984,7 @@ e_book_get_book_view_async (EBook *book,
gpointer closure)
{
AsyncData *data;
+ gchar **fields_array = NULL;
gchar *sexp;
e_return_ex_async_error_val_if_fail (E_IS_BOOK (book), E_BOOK_ERROR_INVALID_ARG);
@@ -1967,11 +1996,15 @@ e_book_get_book_view_async (EBook *book,
data->excallback = cb;
data->closure = closure;
- sexp = e_book_query_to_string (query);
+ sexp = e_book_query_to_string (query);
+ fields_array = string_array_from_list (requested_fields);
- e_gdbus_book_call_get_book_view (book->priv->gdbus_book, sexp, max_results, NULL, get_book_view_reply, data);
+ e_gdbus_book_call_get_book_view (book->priv->gdbus_book, sexp,
+ (const gchar * const *)fields_array,
+ max_results, NULL, get_book_view_reply, data);
g_free (sexp);
+ g_free (fields_array);
return TRUE;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]